diff --git a/os-common/src/main/java/com/os/common/constant/MesConstants.java b/os-common/src/main/java/com/os/common/constant/MesConstants.java index 43d0809..05a530c 100644 --- a/os-common/src/main/java/com/os/common/constant/MesConstants.java +++ b/os-common/src/main/java/com/os/common/constant/MesConstants.java @@ -64,4 +64,8 @@ public class MesConstants public static final String MES_PLAN_STATUS_CANCEL = "3"; public static final String MES_PLAN_STATUS_WAIT = "4"; + /** + * ERP任务进度 + */ + public static final String MES_PLAN_ERP_STATUS_FINISH = "已完成"; } diff --git a/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java b/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java index f7da722..6c31aca 100644 --- a/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java +++ b/os-mes/src/main/java/com/os/mes/api/service/impl/ERPPortServiceImpl.java @@ -24,15 +24,12 @@ import com.os.mes.prod.service.IProdOrderInfoService; import com.os.mes.prod.service.IProdPlanErpInfoService; import com.os.mes.prod.service.IProdPlanExecuteUserService; import com.os.mes.prod.service.IProdPlanInfoService; -import com.os.mes.prod.service.impl.ProdOrderInfoServiceImpl; import com.os.mes.record.domain.RecordStaffSalary; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.math.BigDecimal; -import java.math.RoundingMode; import java.util.*; diff --git a/os-mes/src/main/java/com/os/mes/prod/controller/ProdOrderInfoController.java b/os-mes/src/main/java/com/os/mes/prod/controller/ProdOrderInfoController.java index f84517e..68ff6dd 100644 --- a/os-mes/src/main/java/com/os/mes/prod/controller/ProdOrderInfoController.java +++ b/os-mes/src/main/java/com/os/mes/prod/controller/ProdOrderInfoController.java @@ -1,8 +1,10 @@ package com.os.mes.prod.controller; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletResponse; +import com.os.mes.api.domain.ERPParamDto; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -108,4 +110,24 @@ public class ProdOrderInfoController extends BaseController { return success(prodOrderInfoService.generateWorkOrder(prodOrderInfo)); } + /** + * 获取生产计划管理 + * @param objIds + * @return + */ + @GetMapping("/getERPProductionPlan/{objIds}") + public AjaxResult getERPProductionPlan(@PathVariable Long[] objIds) { + return AjaxResult.success(prodOrderInfoService.getERPProductionPlan(objIds)); + } + + /** + * 获取ERP生产订单 + * @param orderCode + * @return + */ + @GetMapping("/getERPWorkOrder/{orderCode}") + public AjaxResult getERPWorkOrder(@PathVariable String orderCode) { + return AjaxResult.success(prodOrderInfoService.getERPWorkOrder(orderCode)); + } + } diff --git a/os-mes/src/main/java/com/os/mes/prod/domain/ProdPlanErpInfo.java b/os-mes/src/main/java/com/os/mes/prod/domain/ProdPlanErpInfo.java index 7aab324..ae6b044 100644 --- a/os-mes/src/main/java/com/os/mes/prod/domain/ProdPlanErpInfo.java +++ b/os-mes/src/main/java/com/os/mes/prod/domain/ProdPlanErpInfo.java @@ -24,6 +24,11 @@ public class ProdPlanErpInfo extends BaseEntity /** 主键标识 */ private Long objId; + /** 任务进度 */ + @Excel(name = "任务进度") + private String taskProgress; + + @Excel(name = "工作量") private BigDecimal workload; @@ -304,6 +309,14 @@ public class ProdPlanErpInfo extends BaseEntity private String processCode; private String stationCode; + public String getTaskProgress() { + return taskProgress; + } + + public void setTaskProgress(String taskProgress) { + this.taskProgress = taskProgress; + } + public BigDecimal getWorkload() { return workload; } diff --git a/os-mes/src/main/java/com/os/mes/prod/service/IProdOrderInfoService.java b/os-mes/src/main/java/com/os/mes/prod/service/IProdOrderInfoService.java index 6c3f452..7d044d3 100644 --- a/os-mes/src/main/java/com/os/mes/prod/service/IProdOrderInfoService.java +++ b/os-mes/src/main/java/com/os/mes/prod/service/IProdOrderInfoService.java @@ -76,4 +76,18 @@ public interface IProdOrderInfoService { */ HashMap generateWorkOrder(ProdOrderInfo prodOrderInfo); + /** + * 获取生产计划管理 + * @param objIds + * @return + */ + public int getERPProductionPlan(Long[] objIds); + + /** + * 获取ERP生产订单 + * @param orderCode + * @return + */ + public int getERPWorkOrder(String orderCode); + } diff --git a/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdOrderInfoServiceImpl.java b/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdOrderInfoServiceImpl.java index 88241f5..3c9a1b4 100644 --- a/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdOrderInfoServiceImpl.java +++ b/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdOrderInfoServiceImpl.java @@ -9,12 +9,13 @@ import java.util.List; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.PropertyNamingStrategy; +import com.os.common.exception.ServiceException; import com.os.common.utils.DateUtils; +import com.os.common.utils.StringUtils; import com.os.common.utils.uuid.PlanCodeUtils; -import com.os.mes.api.domain.Material; -import com.os.mes.api.domain.RecordData; -import com.os.mes.api.domain.ResponseData; -import com.os.mes.api.domain.UpperLowerGlue; +import com.os.mes.api.domain.*; +import com.os.mes.api.service.IERPPortService; +import com.os.mes.api.utils.ERPConstants; import com.os.mes.prod.domain.ProdOrderDetail; import com.os.mes.prod.domain.ProdPlanInfo; import com.os.mes.prod.service.IProdOrderDetailService; @@ -25,6 +26,7 @@ import org.springframework.stereotype.Service; import com.os.mes.prod.mapper.ProdOrderInfoMapper; import com.os.mes.prod.domain.ProdOrderInfo; import com.os.mes.prod.service.IProdOrderInfoService; +import org.springframework.transaction.annotation.Transactional; /** * 订单信息Service业务层处理 @@ -43,6 +45,9 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { @Autowired private IProdOrderDetailService prodOrderDetailService; + @Autowired + private IERPPortService portService; + /** * 查询订单信息 * @@ -298,4 +303,43 @@ public class ProdOrderInfoServiceImpl implements IProdOrderInfoService { result.put("planInfoList", planInfoList); return result; } + + /** + * 获取生产计划管理 + * @param objIds + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int getERPProductionPlan(Long[] objIds) { + for (Long objId : objIds) { + ProdOrderInfo prodOrderInfo = prodOrderInfoMapper.selectProdOrderInfoByObjId(objId); + ERPParamDto paramDto = new ERPParamDto(); + paramDto.setTaskCode(prodOrderInfo.getOrderCode()); + portService.getERPProductionPlan(paramDto); + } + return 1; + } + + /** + * 获取ERP生产订单 + * @param orderCode + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public int getERPWorkOrder(String orderCode) { + if (StringUtils.isEmpty(orderCode)) { + throw new ServiceException("请输出订单编号"); + } + ERPParamDto paramDto = new ERPParamDto(); + paramDto.setAppCode(ERPConstants.orderAppCode); + paramDto.setController(ERPConstants.orderController); + paramDto.setActionName(ERPConstants.orderActionName); + for (String orderCodeStr : orderCode.split(",")) { + paramDto.setSeqNo(orderCodeStr); + portService.getERPOrderData(paramDto); + } + return 1; + } } diff --git a/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanErpInfoServiceImpl.java b/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanErpInfoServiceImpl.java index ee0bc4b..c4ee80f 100644 --- a/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanErpInfoServiceImpl.java +++ b/os-mes/src/main/java/com/os/mes/prod/service/impl/ProdPlanErpInfoServiceImpl.java @@ -1,5 +1,6 @@ package com.os.mes.prod.service.impl; +import java.math.BigDecimal; import java.util.List; import com.os.common.constant.MesConstants; @@ -108,11 +109,12 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService { * @return 结果 */ @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void insertOrUpdateProdPlanErpInfoList(List dataList) { for (ProdPlanErpInfo planErpInfo : dataList) { String equipmentNo = planErpInfo.getEquipmentNo(); String processStage = planErpInfo.getProcessStage(); + String taskProgress = planErpInfo.getTaskProgress(); if (StringUtils.isNotEmpty(equipmentNo)) { BaseDeviceLedger deviceLedger = deviceLedgerService.selectBaseDeviceLedgerByDeviceCode(equipmentNo, processStage); if (StringUtils.isNotNull(deviceLedger)) { @@ -144,6 +146,11 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService { planInfo.setStationCode(planErpInfo.getStationCode()); planInfo.setTeamCode(planErpInfo.getTeamNo()); planInfo.setMaterialName(planErpInfo.getConveyorLengthSpecification()); + BigDecimal completeAmount = planInfo.getCompleteAmount(); + if (MesConstants.MES_PLAN_ERP_STATUS_FINISH.equals(taskProgress) && + completeAmount != null && completeAmount.compareTo(BigDecimal.ZERO) == 0) { + planInfo.setPlanStatus(MesConstants.MES_PLAN_STATUS_CANCEL); + } prodPlanInfoService.updateProdPlanInfo(planInfo); ProdPlanErpInfo prodPlanErpInfo = infoList.get(0); planErpInfo.setObjId(prodPlanErpInfo.getObjId()); @@ -160,7 +167,11 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService { planInfo.setPlanEndTime(planErpInfo.getPlanEndTime()); planInfo.setTeamCode(planErpInfo.getTeamNo()); planInfo.setMaterialName(planErpInfo.getConveyorLengthSpecification()); - planInfo.setPlanStatus("4"); + if (MesConstants.MES_PLAN_ERP_STATUS_FINISH.equals(taskProgress)){ + planInfo.setPlanStatus(MesConstants.MES_PLAN_STATUS_CANCEL); + } else { + planInfo.setPlanStatus(MesConstants.MES_PLAN_STATUS_WAIT); + } planInfo.setImportFlag("1"); prodPlanInfoService.insertProdPlanInfo(planInfo); this.insertProdPlanErpInfo(planErpInfo); diff --git a/os-mes/src/main/resources/mapper/mes/prod/ProdPlanErpInfoMapper.xml b/os-mes/src/main/resources/mapper/mes/prod/ProdPlanErpInfoMapper.xml index 66b8a95..374fb8a 100644 --- a/os-mes/src/main/resources/mapper/mes/prod/ProdPlanErpInfoMapper.xml +++ b/os-mes/src/main/resources/mapper/mes/prod/ProdPlanErpInfoMapper.xml @@ -77,6 +77,7 @@ + @@ -148,6 +149,7 @@ teamName, groupLeader, workload, + taskProgress, create_by, create_time, update_by, @@ -175,6 +177,7 @@ #{workingEfficiency} and equipmentNo = #{equipmentNo} + and taskProgress = #{taskProgress} and preparationDuration = #{preparationDuration} and windUpDuration = #{windUpDuration} and clothMinimumSpeed = #{clothMinimumSpeed} @@ -330,6 +333,7 @@ update_by, update_time, workload, + taskProgress, #{hardware}, @@ -403,6 +407,7 @@ #{updateBy}, #{updateTime}, #{workload}, + #{taskProgress}, @@ -487,6 +492,7 @@ update_by = #{updateBy}, update_time = #{updateTime}, workload = #{workload}, + taskProgress = #{taskProgress}, where obj_id = #{objId}