From 6c96fe99ccfab3b730b648e7b2ebf918969062c2 Mon Sep 17 00:00:00 2001 From: philip <244793088@qq.com> Date: Thu, 26 Aug 2021 20:59:33 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E6=97=B6=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/SfcDispatchCommonService.java | 4 +++- .../dispatch/mapper/SfcDispatchMapper.java | 7 ++++--- .../service/impl/SfcDispatchServiceImpl.java | 5 +++-- .../main/resources/mapper/SfcDispatchMapper.xml | 2 +- .../service/impl/PodTemplateServiceImpl.java | 17 +++++++++++++++-- .../impl/WorkShopTransferServiceImpl.java | 5 +++-- 6 files changed, 29 insertions(+), 11 deletions(-) diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/SfcDispatchCommonService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/SfcDispatchCommonService.java index da3078b0..12d95b2c 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/SfcDispatchCommonService.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/SfcDispatchCommonService.java @@ -2,6 +2,8 @@ package com.foreverwin.mesnac.common.service; import com.foreverwin.mesnac.common.dto.SfcDispatchDto; +import java.math.BigDecimal; + /** * 派工公用接口 * @@ -34,7 +36,7 @@ public interface SfcDispatchCommonService { * @param dispatchNo * @param dispatchStatus */ - void updateSfcDispatchStatus(String site, String user, String dispatchNo, String dispatchStatus); + void updateSfcDispatchStatus(String site, String user, String dispatchNo, String dispatchStatus, BigDecimal workHour); /** * 根据sfc查询设备 diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/SfcDispatchMapper.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/SfcDispatchMapper.java index 7fded5a0..044d3c0f 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/SfcDispatchMapper.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/mapper/SfcDispatchMapper.java @@ -6,6 +6,7 @@ import com.foreverwin.mesnac.dispatch.model.SfcDispatch; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; import java.util.Map; @@ -33,18 +34,18 @@ public interface SfcDispatchMapper extends BaseMapper { /** * 修改派工单状态 - * - * @param site + * @param site * @param dispatchNo * @param dispatchStatus * @param modifyUser * @param modifiedDateTime + * @param workHour */ void updateSfcDispatchStatus(@Param("site") String site, @Param("dispatchNo") String dispatchNo, @Param("dispatchStatus") String dispatchStatus, @Param("modifyUser") String modifyUser, - @Param("modifiedDateTime") LocalDateTime modifiedDateTime); + @Param("modifiedDateTime") LocalDateTime modifiedDateTime, @Param("workHour")BigDecimal workHour); SfcDispatchDto findResrceBySfc(@Param("sfcDispatch")SfcDispatchDto sfcDispatch, @Param("site") String site, @Param("array") String[] array); diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java index 3f657297..d31e9e7f 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/SfcDispatchServiceImpl.java @@ -37,6 +37,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.io.IOException; import java.io.InputStream; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -684,9 +685,9 @@ public class SfcDispatchServiceImpl extends ServiceImpl UPDATE Z_SFC_DISPATCH SET DISPATCH_STATUS = #{dispatchStatus}, MODIFY_USER = #{modifyUser}, MODIFIED_DATE_TIME = #{modifiedDateTime} - , ACTUAL_COMPLETE_DATE = #{modifiedDateTime} + , ACTUAL_COMPLETE_DATE = #{modifiedDateTime} , ACTUAL_PROD_HOURS = #{workHour} , ACTUAL_START_DATE = #{modifiedDateTime} 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 b24ba775..7bab45bc 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 @@ -30,9 +30,11 @@ import com.foreverwin.mesnac.meapi.service.*; import com.foreverwin.mesnac.production.mapper.SfcCrossMapper; import com.foreverwin.mesnac.production.mapper.SfcDataAssembleMapper; import com.foreverwin.mesnac.production.model.LoadInventory; +import com.foreverwin.mesnac.production.model.SfcHoldLog; import com.foreverwin.mesnac.production.service.LoadInventoryService; import com.foreverwin.mesnac.production.service.PodTemplateService; import com.foreverwin.mesnac.production.service.SfcCrossService; +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; @@ -88,6 +90,8 @@ public class PodTemplateServiceImpl implements PodTemplateService { private SfcDispatchCommonService sfcDispatchCommonService; @Autowired private LoadInventoryService loadInventoryService; + @Autowired + private SfcHoldLogService sfcHoldLogService; @Override public Map resrceEnter(WorkCenterDto workCenterDto) { @@ -235,7 +239,7 @@ public class PodTemplateServiceImpl implements PodTemplateService { ExceptionUtil.throwException(e); } //更改派工单状态 - sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dispatchNo, DispatchStatusEnum.START.getCode()); + sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dispatchNo, DispatchStatusEnum.START.getCode(),null); }); } @@ -309,9 +313,18 @@ public class PodTemplateServiceImpl implements PodTemplateService { LocalDateTime startTime = sfcService.getSfcStartTime(HandleEnum.SFC.getHandle(site, sfc)); long workHourSeconds = Duration.between(startTime, LocalDateTime.now()).getSeconds(); BigDecimal workHour = new BigDecimal(workHourSeconds).divide(BigDecimal.valueOf(3600), 2, RoundingMode.HALF_UP); + //减去暂停时间 + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.eq(SfcHoldLog.SFC,sfc); + queryWrapper.eq(SfcHoldLog.STEP_ID,stepId); + List list = sfcHoldLogService.list(queryWrapper); + if (!list.isEmpty()){ + BigDecimal holdTime = list.stream().map(SfcHoldLog::getHoldDuration).reduce(BigDecimal.ZERO, BigDecimal::add); + workHour=workHour.subtract(holdTime); + } sfcCrossService.completeAction(site, currentRevisionRef.getHandle(), resrce, sfcServiceById.getHandle(), qty); //更改派工单状态 - sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dispatchNo, DispatchStatusEnum.COMPLETE.getCode()); + sfcDispatchCommonService.updateSfcDispatchStatus(site, CommonMethods.getUser(), dispatchNo, DispatchStatusEnum.COMPLETE.getCode(),workHour); //报工 //sendErp(sfc, stepId, qty, BigDecimal.ZERO, workHour); } catch (Exception e) { diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java index eee5765c..c3749a3d 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/WorkShopTransferServiceImpl.java @@ -28,6 +28,7 @@ import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.ArrayList; @@ -152,7 +153,7 @@ public class WorkShopTransferServiceImpl extends ServiceImpl