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 05a530c..c639343 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 @@ -56,13 +56,14 @@ public class MesConstants /** - * 工单状态(0未开始 1执行中 2执行完成 3取消 4待执行) + * 工单状态(0未开始 1执行中 2执行完成 3取消 4待执行 5删除) */ public static final String MES_PLAN_STATUS_NOT = "0"; public static final String MES_PLAN_STATUS_IN = "1"; public static final String MES_PLAN_STATUS_FINISH = "2"; public static final String MES_PLAN_STATUS_CANCEL = "3"; public static final String MES_PLAN_STATUS_WAIT = "4"; + public static final String MES_PLAN_STATUS_DELETE = "5"; /** * ERP任务进度 diff --git a/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java b/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java index 7af1949..8283155 100644 --- a/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java +++ b/os-mes/src/main/java/com/os/mes/api/service/IERPPortService.java @@ -66,4 +66,9 @@ public interface IERPPortService { */ void getProdPlanPersonalDetailsTask(ERPParamDto paramDto); + /** + * 定时清理ERP已删除的生产计划 + * @param paramDto + */ + void ERPProdDeleteTask(ERPParamDto paramDto); } 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 6c31aca..4c22c65 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 @@ -29,6 +29,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.*; @@ -388,4 +389,60 @@ public class ERPPortServiceImpl implements IERPPortService { } } + /** + * 定时清理ERP已删除的生产计划 + * @param paramDto + */ + @Override + @Transactional(rollbackFor = Exception.class) + public void ERPProdDeleteTask(ERPParamDto paramDto) { + ProdPlanInfo prodPlanInfo = new ProdPlanInfo(); + HashMap paramMap = new HashMap<>(); + paramMap.put("beginBeginTime", "2020-01-01 00:00:00"); + paramMap.put("endBeginTime", paramDto.getPlanEndTime()); + prodPlanInfo.setParams(paramMap); + prodPlanInfo.setPlanStatus(MesConstants.MES_PLAN_STATUS_WAIT); + List planInfoList = prodPlanInfoService.selectProdPlanInfoList(prodPlanInfo); + String requestParam = null; + String result = null; + ERPParamDto erpParamDto = new ERPParamDto(); + erpParamDto.setAppCode(ERPConstants.planAppCode); + erpParamDto.setController(ERPConstants.planController); + erpParamDto.setActionName(ERPConstants.planActionName); + for (ProdPlanInfo planInfo : planInfoList) { + if (StringUtils.isEmpty(planInfo.getOrderCode())){ + continue; + } + erpParamDto.setTaskCode(planInfo.getOrderCode()); + try { + // 创建ObjectMapper实例 对象转JSON字符串 + ObjectMapper objectMapper = new ObjectMapper(); + objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.UPPER_CAMEL_CASE); + requestParam = objectMapper.writeValueAsString(erpParamDto); + result = ApiUtils.sendERPHttpPost(ERPConstants.ERP_URL, requestParam); + // 处理接口返回消息 + ObjectMapper resMapper = new ObjectMapper(); + HashMap map = resMapper.readValue(result, new TypeReference>() { + }); + HashMap returnData = (HashMap) map.get("ReturnData"); + List dataList = resMapper.convertValue(returnData.get("data"), new TypeReference>() { + }); + boolean SuccessFlag = true; + for (ProdPlanErpInfo prodPlanErpInfo : dataList) { + if (prodPlanErpInfo.getSeqNo().equals(planInfo.getPlanCode())){ + SuccessFlag = false; + break; + } + } + if (SuccessFlag) {ProdPlanInfo insetInfo = new ProdPlanInfo(); + insetInfo.setObjId(planInfo.getObjId()); + insetInfo.setPlanStatus(MesConstants.MES_PLAN_STATUS_DELETE); + prodPlanInfoService.updateProdPlanInfo(insetInfo); + } + } catch (Exception e) { + logger.warn("定时清理ERP已删除的生产计划异常:" + requestParam + "|" + result + "|" + e); + } + } + } + } 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 c4ee80f..ba6713f 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 @@ -133,7 +133,7 @@ public class ProdPlanErpInfoServiceImpl implements IProdPlanErpInfoService { List planInfoList = prodPlanInfoService.selectProdPlanInfoList(prodPlanInfo); ProdPlanInfo planInfo = planInfoList.get(0); if (planInfo.getUploadFlag().equals(MesConstants.MES_IS_ERP_YES) || planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_FINISH) - || planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_IN)) { + || planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_IN) || planInfo.getPlanStatus().equals(MesConstants.MES_PLAN_STATUS_DELETE)) { continue; } planInfo.setPlanCode(seqNo); diff --git a/os-mes/src/main/resources/mapper/mes/prod/ProdOrderInfoMapper.xml b/os-mes/src/main/resources/mapper/mes/prod/ProdOrderInfoMapper.xml index a109485..29d9bf0 100644 --- a/os-mes/src/main/resources/mapper/mes/prod/ProdOrderInfoMapper.xml +++ b/os-mes/src/main/resources/mapper/mes/prod/ProdOrderInfoMapper.xml @@ -249,7 +249,6 @@ and pod.OrderDate between #{params.beginOrderDate} and #{params.endOrderDate} - order by poi.order_code desc