diff --git a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java index 9f0a30e3..31f2d293 100644 --- a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java +++ b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java @@ -46,9 +46,9 @@ public class RyTask { remoteSapService.shopOrderSync(sapProOrder); } - /**每天23点执行 - * 今天凌晨16点出明天的领料单 - * 0 0 23 * * ? + /**每天22点执行 + * 理论今天16点出明天的领料单 + * 0 00 22 * * ? */ public void getMesPrepareTask(){ System.out.println("++同步领料单+开始++getMesPrepareTask+++++"); @@ -62,8 +62,8 @@ public class RyTask { remoteSapService.sapProRouteProcess(); } - /**每天30点23更新明日订单执行 - * 0 30 23 * * ? + /**每天21点00更新明日订单执行 + * 0 00 21 * * ? */ public void getTOrderTask(){ System.out.println("++同步今日订单+开始++getTOrderTask+++++"); diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java index 84834e57..145a36bd 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java @@ -159,7 +159,7 @@ public class MesPrepareServiceImpl implements IMesPrepareService { //获取T+1天的所有母工单 MesPrepare qo = new MesPrepare(); Calendar cal = Calendar.getInstance(); - cal.add(Calendar.DATE, -1);//这里改为1 + cal.add(Calendar.DATE, 1);//这里改为1 Date time = cal.getTime(); qo.setDayStr(new SimpleDateFormat("yyyy-MM-dd").format(time)); List parents = mesPrepareMapper.getParentWorkOrderT1(qo); @@ -167,7 +167,7 @@ public class MesPrepareServiceImpl implements IMesPrepareService { System.out.println("T+1无母工单数据"); } for (MesPrepare mesPrepare : parents) { - List sapMaterialPreparationList = remoteSapService.materialPreparation(mesPrepare.getWorkorderCode()).getData(); + List sapMaterialPreparationList = remoteSapService.materialPreparation(mesPrepare.getWorkorderCodeSap()).getData(); if (CollectionUtils.isEmpty(sapMaterialPreparationList)) { System.out.println("sap无领料单数据"); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java index e7871597..4c3e75e8 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/mapper/ProOrderWorkorderMapper.java @@ -132,5 +132,7 @@ public interface ProOrderWorkorderMapper { void createPrepareDetails(@Param("list") List list); List selectProOrderWorkerderByWorkerIds(String[] ids); + + public void updateWorkOrderCodeSap(ProOrderWorkorder oworkSap); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index 01b485ec..e7a3aedd 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -486,7 +486,7 @@ public class ProOrderServiceImpl implements IProOrderService { DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key SapProOrder sapqo = new SapProOrder();//proOrderMapper.getMaxCreatetime(); Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DAY_OF_MONTH,-1); + calendar.add(Calendar.DAY_OF_MONTH,1); sapqo.setCreateTime(calendar.getTime()); sapqo.setFactoryCode(poolName.replace("ds_","")); diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java index ed725c1a..21590aa1 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderWorkorderServiceImpl.java @@ -201,7 +201,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { } } } - List sapList = new ArrayList<>();//回传给sap的工单 + List sapList = null;//回传给sap的工单 //如果是白坯生成备料单 for(String workorderId:workorderIds){ ProOrderWorkorder whiteOrder = proOrderWorkorderMapper.selectProOrderWorkorderByWorkorderId(workorderId); @@ -233,6 +233,7 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { details.add(detail); proOrderWorkorderMapper.createPrepareDetails(details); }else if(whiteOrder!=null){//成品的母工单回传sap + sapList = new ArrayList<>(); SapCreateOrder sap = new SapCreateOrder(); sap.setWerks(whiteOrder.getFactoryCode());//工厂编码 sap.setAufpar(whiteOrder.getProdType());//订单类型 @@ -241,16 +242,41 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { sap.setDates(DateUtils.parseDateToStr("yyyy-MM-dd",whiteOrder.getProductDate()));//开始时间 sap.setDatee(DateUtils.parseDateToStr("yyyy-MM-dd",whiteOrder.getProductDate()));//完成时间 sapList.add(sap); + R> r = remoteSapService.SapCreateOrder(sapList); + logger.info("sap工单回传:"+r.getMsg()); + if(500==r.getCode()){ + logger.error("sap工单回传:"+r.getMsg()); + return 0; + } + List returnCodes = r.getData(); + if(!CollectionUtils.isEmpty(returnCodes)){ + for(String sapCode:returnCodes){ + ProOrderWorkorder oworkSap = new ProOrderWorkorder(); + oworkSap.setWorkorderCodeSap(sapCode); + oworkSap.setWorkorderId(workorderId);//工单编码 + oworkSap.setUpdateTime(DateUtils.getNowDate()); + /**pro_order_workorder**/ + proOrderWorkorderMapper.updateWorkOrderCodeSap(oworkSap); + + ProOrder order = this.getTopOrder(workorderId); + ProOrderWorkorder oworkSapParent = new ProOrderWorkorder(); + oworkSapParent.setWorkorderCodeSap(sapCode); + oworkSapParent.setWorkorderId(order.getOrderCode());//母工单编码 + oworkSapParent.setUpdateTime(DateUtils.getNowDate()); + proOrderWorkorderMapper.updateWorkOrderCodeSap(oworkSapParent); + + logger.info("sap工单回传sap虚拟工单号:"+sapCode); + } + + } } } - if(!CollectionUtils.isEmpty(sapList)){ - R r = remoteSapService.SapCreateOrder(sapList); - logger.info("sap工单回传:"+r.getMsg()); - } //下达工单 - return proOrderWorkorderMapper.downProOrderWorkorderByWorkorderIds(workorderIds); + //return proOrderWorkorderMapper.downProOrderWorkorderByWorkorderIds(workorderIds); + return 1; } + // //获取最低级材料 // private void getLastChildren(List all, List allChildren , BaseBomComponentDTO bc) { // List cList = all.stream().filter(item -> item.getCumc().equals(bc.getComponent())) @@ -290,14 +316,16 @@ public class ProOrderWorkorderServiceImpl implements IProOrderWorkorderService { // // return bomdtos; // } -// //根据工单子单获取最顶级订单的母单 -// private ProOrder getTopOrder(String workorderId){ -// ProOrder topOrder = proOrderWorkorderMapper.getOrderCodeById(workorderId); -// while(!"0".equals(topOrder.getParentOrder())&& com.op.common.core.utils.StringUtils.isNotEmpty(topOrder.getParentOrder())){ -// topOrder = proOrderWorkorderMapper.getOrderCodeBySonCode(topOrder.getParentOrder()); -// } -// return topOrder; -// } + //根据工单子单编码获取最顶级订单的母单 + private ProOrder getTopOrder(String workorderId){ + //pro_order_workorder + ProOrder topOrder = proOrderWorkorderMapper.getOrderCodeById(workorderId); + while(!"0".equals(topOrder.getParentOrder())&& StringUtils.isNotEmpty(topOrder.getParentOrder())){ + //pro_order_workorder + topOrder = proOrderWorkorderMapper.getOrderCodeById(topOrder.getParentOrder()); + } + return topOrder; + } /** diff --git a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml index 412d8733..64e529e6 100644 --- a/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml +++ b/op-modules/op-plan/src/main/resources/mapper/plan/ProOrderWorkorderMapper.xml @@ -81,10 +81,7 @@