From aab67ca92a0d41bf72b98adbc7edcd7c127e0e37 Mon Sep 17 00:00:00 2001 From: philip <244793088@qq.com> Date: Thu, 19 Aug 2021 21:45:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=81=9C=E5=BC=80=E5=A7=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- meapi/src/main/resources/mapper/SfcMapper.xml | 2 +- .../controller/SfcHoldLogController.java | 141 ++++++ .../production/mapper/SfcHoldLogMapper.java | 18 + .../mesnac/production/model/SfcHoldLog.java | 201 +++++++++ .../production/service/SfcHoldLogService.java | 30 ++ .../service/impl/PodTemplateServiceImpl.java | 5 +- .../service/impl/SfcHoldLogServiceImpl.java | 127 ++++++ .../resources/mapper/SfcHoldLogMapper.xml | 402 ++++++++++++++++++ 8 files changed, 921 insertions(+), 5 deletions(-) create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/controller/SfcHoldLogController.java create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/mapper/SfcHoldLogMapper.java create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/model/SfcHoldLog.java create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/service/SfcHoldLogService.java create mode 100644 production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcHoldLogServiceImpl.java create mode 100644 production/src/main/resources/mapper/SfcHoldLogMapper.xml diff --git a/meapi/src/main/resources/mapper/SfcMapper.xml b/meapi/src/main/resources/mapper/SfcMapper.xml index 6614df35..d9507fb1 100644 --- a/meapi/src/main/resources/mapper/SfcMapper.xml +++ b/meapi/src/main/resources/mapper/SfcMapper.xml @@ -668,7 +668,7 @@ JOIN Z_SFC_DISPATCH zsd ON S.SFC=zsd.SFC AND S.SITE=zsd.SITE JOIN Z_PROD_READY_TASK zprt ON ZPRT.SFC_DISPATCH_BO=zsd.HANDLE WHERE S.SITE=#{ew.entity.site} AND ZSD.RESRCE=#{ew.entity.resrce} AND ZSD.DISPATCH_STATUS!='CANCEL' AND ZSD.DISPATCH_STATUS!='COMPLETE' - AND S.STATUS_BO IN ('StatusBO:'||#{ew.entity.site}||',401','StatusBO:'||#{ew.entity.site}||',402','StatusBO:'||#{ew.entity.site}||',403') + AND S.STATUS_BO IN ('StatusBO:'||#{ew.entity.site}||',401','StatusBO:'||#{ew.entity.site}||',402','StatusBO:'||#{ew.entity.site}||',403','StatusBO:'||#{ew.entity.site}||',404') AND zprt.STATUS='FINISH' AND ZPRT."RESULT"='OK' diff --git a/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcHoldLogController.java b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcHoldLogController.java new file mode 100644 index 00000000..49618826 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/controller/SfcHoldLogController.java @@ -0,0 +1,141 @@ +package com.foreverwin.mesnac.production.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.foreverwin.mesnac.production.model.SfcHoldLog; +import com.foreverwin.mesnac.production.service.SfcHoldLogService; +import com.foreverwin.modular.core.util.FrontPage; +import com.foreverwin.modular.core.util.R; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * + * @author Philip + * @since 2021-08-19 + */ +@RestController +@RequestMapping("/Z-SFC-HOLD-LOG") +public class SfcHoldLogController { + + @Autowired + public SfcHoldLogService sfcHoldLogService; + + /** + * 查询所有数据 + * + * @return + */ + @ResponseBody + @PostMapping("/sfcHold") + public R sfcHold(@RequestBody Map map){ + List sfcHoldLogList = (List) map.get("sfcHoldLogList"); + ObjectMapper mapper = new ObjectMapper(); + sfcHoldLogList = mapper.convertValue(sfcHoldLogList, new TypeReference>() { + }); + sfcHoldLogService.sfcHold(sfcHoldLogList); + return R.ok(); + } + /** + * 根据id查询 + * + * @param id 主键 + * @return + */ + @ResponseBody + @GetMapping("/{id:.+}") + public R getSfcHoldLogById(@PathVariable String id) { + return R.ok( sfcHoldLogService.getById(id)); + } + + /** + * 查询所有数据 + * + * @return + */ + @ResponseBody + @GetMapping("") + public R getSfcHoldLogList(SfcHoldLog sfcHoldLog){ + List result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcHoldLog); + result = sfcHoldLogService.list(queryWrapper); + return R.ok(result); + } + + /** + * 分页查询数据 + * + * @param frontPage 分页信息 + * @return + */ + @ResponseBody + @GetMapping("/page") + public R page(FrontPage frontPage, SfcHoldLog sfcHoldLog){ + IPage result; + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcHoldLog); + if (frontPage.getGlobalQuery() != null && !"".equals(frontPage.getGlobalQuery().trim())) { + //TODO modify global query + queryWrapper.lambda().and(wrapper -> wrapper + .like(SfcHoldLog::getHandle, frontPage.getGlobalQuery()) + .or().like(SfcHoldLog::getSite, frontPage.getGlobalQuery()) + .or().like(SfcHoldLog::getSfcDispatchBo, frontPage.getGlobalQuery()) + .or().like(SfcHoldLog::getSfc, frontPage.getGlobalQuery()) + .or().like(SfcHoldLog::getStepId, frontPage.getGlobalQuery()) + .or().like(SfcHoldLog::getOperation, frontPage.getGlobalQuery()) + .or().like(SfcHoldLog::getType, frontPage.getGlobalQuery()) + .or().like(SfcHoldLog::getCreateUser, frontPage.getGlobalQuery()) + ); + } + result = sfcHoldLogService.page(frontPage.getPagePlus(), queryWrapper); + return R.ok(result); + } + + /** + * 新增 + * @param sfcHoldLog 传递的实体 + * @return null 失败 实体成功 + */ + @PostMapping + public R save(@RequestBody SfcHoldLog sfcHoldLog) { + return R.ok(sfcHoldLogService.save(sfcHoldLog)); + } + + /** + * 修改 + * @param sfcHoldLog 传递的实体 + * @return null 失败 实体成功 + */ + @PutMapping + public R updateById(@RequestBody SfcHoldLog sfcHoldLog) { + return R.ok(sfcHoldLogService.updateById(sfcHoldLog)); + } + + /** + * 根据id删除对象 + * @param id 实体ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.DELETE, value = "/{id:.+}") + public R removeById(@PathVariable("id") String id){ + return R.ok(sfcHoldLogService.removeById(id)); + } + + /** + * 批量删除对象 + * @param ids 实体集合ID + * @return 0 失败 1 成功 + */ + @ResponseBody + @RequestMapping(method = RequestMethod.POST, value = "/delete-batch") + public R removeByIds(List ids){ + return R.ok(sfcHoldLogService.removeByIds(ids)); + } +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/mapper/SfcHoldLogMapper.java b/production/src/main/java/com/foreverwin/mesnac/production/mapper/SfcHoldLogMapper.java new file mode 100644 index 00000000..abe4ce6f --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/mapper/SfcHoldLogMapper.java @@ -0,0 +1,18 @@ +package com.foreverwin.mesnac.production.mapper; + +import com.foreverwin.mesnac.production.model.SfcHoldLog; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springframework.stereotype.Repository; + +/** + *

+ * 产品条码保留记录 Mapper 接口 + *

+ * + * @author Philip + * @since 2021-08-19 + */ +@Repository +public interface SfcHoldLogMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/model/SfcHoldLog.java b/production/src/main/java/com/foreverwin/mesnac/production/model/SfcHoldLog.java new file mode 100644 index 00000000..dc93cf05 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/model/SfcHoldLog.java @@ -0,0 +1,201 @@ +package com.foreverwin.mesnac.production.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +/** + *

+ * 产品条码保留记录 + *

+ * + * @author Philip + * @since 2021-08-19 + */ + +@TableName("Z_SFC_HOLD_LOG") + +public class SfcHoldLog extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "HANDLE", type = IdType.INPUT) + private String handle; + /** + * 站点 + */ + @TableField("SITE") + private String site; + /** + * 派工单主键 + */ + @TableField("SFC_DISPATCH_BO") + private String sfcDispatchBo; + /** + * 产品条码 + */ + @TableField("SFC") + private String sfc; + /** + * 步骤 + */ + @TableField("STEP_ID") + private String stepId; + /** + * 工序 + */ + @TableField("OPERATION") + private String operation; + /** + * 保留时长 + */ + @TableField("HOLD_DURATION") + private BigDecimal holdDuration; + /** + * 类型:暂停取消 + */ + @TableField("TYPE") + private String type; + /** + * 创建人 + */ + @TableField("CREATE_USER") + private String createUser; + /** + * 创建时间 + */ + @TableField("CREATED_DATE_TIME") + private LocalDateTime createdDateTime; + + + public String getHandle() { + return handle; + } + + public void setHandle(String handle) { + this.handle = handle; + } + + public String getSite() { + return site; + } + + public void setSite(String site) { + this.site = site; + } + + public String getSfcDispatchBo() { + return sfcDispatchBo; + } + + public void setSfcDispatchBo(String sfcDispatchBo) { + this.sfcDispatchBo = sfcDispatchBo; + } + + public String getSfc() { + return sfc; + } + + public void setSfc(String sfc) { + this.sfc = sfc; + } + + public String getStepId() { + return stepId; + } + + public void setStepId(String stepId) { + this.stepId = stepId; + } + + public String getOperation() { + return operation; + } + + public void setOperation(String operation) { + this.operation = operation; + } + + public BigDecimal getHoldDuration() { + return holdDuration; + } + + public void setHoldDuration(BigDecimal holdDuration) { + this.holdDuration = holdDuration; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getCreateUser() { + return createUser; + } + + public void setCreateUser(String createUser) { + this.createUser = createUser; + } + + public LocalDateTime getCreatedDateTime() { + return createdDateTime; + } + + public void setCreatedDateTime(LocalDateTime createdDateTime) { + this.createdDateTime = createdDateTime; + } + +public static final String HANDLE = "HANDLE"; + +public static final String SITE = "SITE"; + +public static final String SFC_DISPATCH_BO = "SFC_DISPATCH_BO"; + +public static final String SFC = "SFC"; + +public static final String STEP_ID = "STEP_ID"; + +public static final String OPERATION = "OPERATION"; + +public static final String HOLD_DURATION = "HOLD_DURATION"; + +public static final String TYPE = "TYPE"; + +public static final String CREATE_USER = "CREATE_USER"; + +public static final String CREATED_DATE_TIME = "CREATED_DATE_TIME"; + + + @Override + protected Serializable pkVal() { + return this.handle; + } + + @Override + public String toString() { + return "SfcHoldLog{" + + "handle = " + handle + + ", site = " + site + + ", sfcDispatchBo = " + sfcDispatchBo + + ", sfc = " + sfc + + ", stepId = " + stepId + + ", operation = " + operation + + ", holdDuration = " + holdDuration + + ", type = " + type + + ", createUser = " + createUser + + ", createdDateTime = " + createdDateTime + + "}"; + } +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/SfcHoldLogService.java b/production/src/main/java/com/foreverwin/mesnac/production/service/SfcHoldLogService.java new file mode 100644 index 00000000..f409190a --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/SfcHoldLogService.java @@ -0,0 +1,30 @@ +package com.foreverwin.mesnac.production.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.production.model.SfcHoldLog; +import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.modular.core.util.FrontPage; + +import java.util.List; + +/** + *

+ * 产品条码保留记录 服务类 + *

+ * + * @author Philip + * @since 2021-08-19 + */ +public interface SfcHoldLogService extends IService { + + /** + * 分页查询 + * @param frontPage + * @return + */ + IPage selectPage(FrontPage frontPage, SfcHoldLog sfcHoldLog); + + List selectList(SfcHoldLog sfcHoldLog); + + void sfcHold(List sfcHoldLogList); +} \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java index 54df6b0d..142b35a4 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java @@ -126,14 +126,11 @@ public class PodTemplateServiceImpl implements PodTemplateService { throw new BaseException("产品条码" + sfc + "不存在"); } String status = StringUtil.trimHandle(sfcById.getStatusBo()); - if (!status.equals("403") && !status.equals("401") && !status.equals("402")) { + if (!status.equals("404")&&!status.equals("403") && !status.equals("401") && !status.equals("402")) { throw new BaseException("产品条码" + sfc + "不在工作中或排队中"); } //校验产品条码是否在当前工序排队 Operation operationBySfcBo = commonService.getOperationBySfcBo(sfcById.getHandle()); - /* if (StringUtil.notBlank(operation)&&!operationBySfcBo.getOperation().equals(operation)){ - throw new BaseException("产品条码"+sfc+"在"+operationBySfcBo.getOperation()+"/"+operationBySfcBo.getDescription()+"工序"); - }*/ //校验SFC+工序+设备+STEP_ID是否与当前设备确认的派工单匹配 String sfcDispatchStatus = sfcCrossMapper.getSfcDispatch(site, sfc, operationBySfcBo.getOperation(), operationBySfcBo.getStepId(), resrce); if (StringUtil.isBlank(sfcDispatchStatus)) { diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcHoldLogServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcHoldLogServiceImpl.java new file mode 100644 index 00000000..aa18f993 --- /dev/null +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/SfcHoldLogServiceImpl.java @@ -0,0 +1,127 @@ +package com.foreverwin.mesnac.production.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.foreverwin.mesnac.common.dto.SfcDispatchDto; +import com.foreverwin.mesnac.common.enums.HandleEnum; +import com.foreverwin.mesnac.common.service.SfcDispatchCommonService; +import com.foreverwin.mesnac.common.util.ExceptionUtil; +import com.foreverwin.mesnac.meapi.dto.SfcDto; +import com.foreverwin.mesnac.production.mapper.SfcHoldLogMapper; +import com.foreverwin.mesnac.production.mapper.SplitSfcMapper; +import com.foreverwin.mesnac.production.model.SfcHoldLog; +import com.foreverwin.mesnac.production.service.SfcHoldLogService; +import com.foreverwin.modular.core.exception.BaseException; +import com.foreverwin.modular.core.meext.MEServices; +import com.foreverwin.modular.core.util.CommonMethods; +import com.foreverwin.modular.core.util.FrontPage; +import com.sap.me.production.SfcStateServiceInterface; +import com.sap.me.production.UpdateSfcStatusRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.time.Duration; +import java.time.LocalDateTime; +import java.util.List; +import java.util.UUID; + +/** + *

+ * 产品条码保留记录 服务实现类 + *

+ * + * @author Philip + * @since 2021-08-19 + */ +@Service +@Transactional(rollbackFor = Exception.class) +public class SfcHoldLogServiceImpl extends ServiceImpl implements SfcHoldLogService { + + @Autowired + private SfcDispatchCommonService sfcDispatchCommonService; + @Autowired + private SfcHoldLogMapper sfcHoldLogMapper; + @Autowired + private SplitSfcMapper splitSfcMapper; + @Override + public IPage selectPage(FrontPage frontPage, SfcHoldLog sfcHoldLog) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcHoldLog); + return super.page(frontPage.getPagePlus(), queryWrapper); + } + + @Override + public List selectList(SfcHoldLog sfcHoldLog) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.setEntity(sfcHoldLog); + return super.list(queryWrapper); + } + + @Override + public void sfcHold(List sfcHoldLogList) { + for (SfcHoldLog sfcHoldLog:sfcHoldLogList){ + String site = CommonMethods.getSite(); + LocalDateTime now = LocalDateTime.now(); + String sfc = sfcHoldLog.getSfc(); + String type = sfcHoldLog.getType(); + String sfcBo = HandleEnum.SFC.getHandle(site, sfc); + SfcDto sfcData = splitSfcMapper.getSfcData(sfcBo); + if (sfcData==null){ + throw new BaseException("未找到产品条码信息"); + } + if (sfcHoldLog.getType().equals("HOLD")&&!sfcData.getStatus().equals("403")){ + throw new BaseException("产品状态不可暂停"); + } + if (sfcHoldLog.getType().equals("CANCEL")&&!sfcData.getStatus().equals("404")){ + throw new BaseException("产品状态不可取消暂停"); + } + String stepId = sfcData.getStepId(); + String operation = sfcData.getOperation(); + SfcDispatchDto sfcDispatchDto = new SfcDispatchDto(); + sfcDispatchDto.setSfc(sfc); + sfcDispatchDto.setStepId(stepId); + sfcDispatchDto.setOperation(operation); + SfcDispatchDto sfcDispatchBySfc = sfcDispatchCommonService.findSfcDispatchBySfc(sfcDispatchDto); + SfcStateServiceInterface sfcStateServiceInterface = null; + BigDecimal holdDuration=null; + try { + sfcStateServiceInterface = MEServices.create("com.sap.me.production", "SfcStateService", CommonMethods.getSite()); + UpdateSfcStatusRequest updateSfcStatusRequest = new UpdateSfcStatusRequest(); + updateSfcStatusRequest.setSfcRef(sfcBo); + if (type.equals("HOLD")){ + updateSfcStatusRequest.setStatusRef(HandleEnum.STATUS.getHandle(site,"404")); + }else { + updateSfcStatusRequest.setStatusRef(HandleEnum.STATUS.getHandle(site,"403")); + //计算保留时长 + QueryWrapper ueryWrapper=new QueryWrapper<>(); + ueryWrapper.eq(SfcHoldLog.STEP_ID,stepId); + ueryWrapper.eq(SfcHoldLog.SFC,sfc); + List list = list(ueryWrapper); + LocalDateTime holdTime = list.get(0).getCreatedDateTime(); + long workHourSeconds = Duration.between(holdTime, now).getSeconds(); + holdDuration = new BigDecimal(workHourSeconds).divide(BigDecimal.valueOf(3600), 2, RoundingMode.HALF_UP); + } + sfcStateServiceInterface.updateSfcStatus(updateSfcStatusRequest); + } catch (Exception e) { + ExceptionUtil.throwException(e); + } + sfcHoldLog.setHandle(UUID.randomUUID().toString()); + sfcHoldLog.setSite(site); + sfcHoldLog.setSfcDispatchBo(sfcDispatchBySfc.getHandle()); + sfcHoldLog.setStepId(stepId); + sfcHoldLog.setOperation(operation); + sfcHoldLog.setHoldDuration(holdDuration); + sfcHoldLog.setCreateUser(CommonMethods.getUser()); + sfcHoldLog.setCreatedDateTime(now); + save(sfcHoldLog); + + } + + } + + +} \ No newline at end of file diff --git a/production/src/main/resources/mapper/SfcHoldLogMapper.xml b/production/src/main/resources/mapper/SfcHoldLogMapper.xml new file mode 100644 index 00000000..6b3a29bd --- /dev/null +++ b/production/src/main/resources/mapper/SfcHoldLogMapper.xml @@ -0,0 +1,402 @@ + + + + + + + + + + + + + + + + + + + + + HANDLE, SITE, SFC_DISPATCH_BO, SFC, STEP_ID, OPERATION, HOLD_DURATION, TYPE, CREATE_USER, CREATED_DATE_TIME + + + + + + + + + + + + + + + + + + + + + + + + + INSERT INTO Z_SFC_HOLD_LOG + + HANDLE, + SITE, + SFC_DISPATCH_BO, + SFC, + STEP_ID, + OPERATION, + HOLD_DURATION, + TYPE, + CREATE_USER, + CREATED_DATE_TIME, + VALUES + + #{handle}, + #{site}, + #{sfcDispatchBo}, + #{sfc}, + #{stepId}, + #{operation}, + #{holdDuration}, + #{type}, + #{createUser}, + #{createdDateTime}, + + + + + INSERT INTO Z_SFC_HOLD_LOG + + + VALUES + + #{handle}, + #{site}, + #{sfcDispatchBo}, + #{sfc}, + #{stepId}, + #{operation}, + #{holdDuration}, + #{type}, + #{createUser}, + #{createdDateTime}, + + + + + + UPDATE Z_SFC_HOLD_LOG + SITE=#{et.site}, + SFC_DISPATCH_BO=#{et.sfcDispatchBo}, + SFC=#{et.sfc}, + STEP_ID=#{et.stepId}, + OPERATION=#{et.operation}, + HOLD_DURATION=#{et.holdDuration}, + TYPE=#{et.type}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} + + + + + UPDATE Z_SFC_HOLD_LOG + SITE=#{et.site}, + SFC_DISPATCH_BO=#{et.sfcDispatchBo}, + SFC=#{et.sfc}, + STEP_ID=#{et.stepId}, + OPERATION=#{et.operation}, + HOLD_DURATION=#{et.holdDuration}, + TYPE=#{et.type}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + WHERE HANDLE=#{et.handle} and ${et.MP_OPTLOCK_VERSION_COLUMN}=#{et.MP_OPTLOCK_VERSION_ORIGINAL} + + + + + UPDATE Z_SFC_HOLD_LOG + SITE=#{et.site}, + SFC_DISPATCH_BO=#{et.sfcDispatchBo}, + SFC=#{et.sfc}, + STEP_ID=#{et.stepId}, + OPERATION=#{et.operation}, + HOLD_DURATION=#{et.holdDuration}, + TYPE=#{et.type}, + CREATE_USER=#{et.createUser}, + CREATED_DATE_TIME=#{et.createdDateTime}, + + + + + HANDLE=#{ew.entity.handle} + AND SITE=#{ew.entity.site} + AND SFC_DISPATCH_BO=#{ew.entity.sfcDispatchBo} + AND SFC=#{ew.entity.sfc} + AND STEP_ID=#{ew.entity.stepId} + AND OPERATION=#{ew.entity.operation} + AND HOLD_DURATION=#{ew.entity.holdDuration} + AND TYPE=#{ew.entity.type} + AND CREATE_USER=#{ew.entity.createUser} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + DELETE FROM Z_SFC_HOLD_LOG WHERE HANDLE=#{handle} + + + + DELETE FROM Z_SFC_HOLD_LOG + + + + + ${k} = #{cm[${k}]} + + + + + + + + DELETE FROM Z_SFC_HOLD_LOG + + + + + HANDLE=#{ew.entity.handle} + + AND SITE=#{ew.entity.site} + AND SFC_DISPATCH_BO=#{ew.entity.sfcDispatchBo} + AND SFC=#{ew.entity.sfc} + AND STEP_ID=#{ew.entity.stepId} + AND OPERATION=#{ew.entity.operation} + AND HOLD_DURATION=#{ew.entity.holdDuration} + AND TYPE=#{ew.entity.type} + AND CREATE_USER=#{ew.entity.createUser} + AND CREATED_DATE_TIME=#{ew.entity.createdDateTime} + + + ${ew.sqlSegment} + + + + + ${ew.sqlSegment} + + + + + DELETE FROM Z_SFC_HOLD_LOG WHERE HANDLE IN ( + #{item} + ) + + + +