From e37f464ea8a4bd619b27347c2fa879858ec287b6 Mon Sep 17 00:00:00 2001 From: zhaoxiaolin Date: Thu, 29 Feb 2024 16:52:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=95=E5=B1=82=E6=8A=A5=E5=B7=A5=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op/mes/mapper/MesReportWorkMapper.java | 2 + .../service/impl/IWCInterfaceServiceImpl.java | 85 +++++++++++++------ .../mapper/mes/MesReportWorkMapper.xml | 25 ++++++ 3 files changed, 84 insertions(+), 28 deletions(-) diff --git a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java index a5189bd3c..d4dd9335e 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/mapper/MesReportWorkMapper.java @@ -136,4 +136,6 @@ public interface MesReportWorkMapper { List getPutInOrderList(MesReportWork mesReportWorks); ProOrderWorkorder getSonWorkOrder(String workorderCode); + + public MesReportWork getReportWorkHz1(MesReportWork mesReportWork); } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java index 1f90b4aa5..7985689a8 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/IWCInterfaceServiceImpl.java @@ -287,6 +287,24 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { /**** * 报工顺序:先子单报工,然后母单报工 * 关闭母工单,关闭子工单 + * * 一层---------------------------------------- + * * 工单进行报工的时候公式调整如下(数值单位不用管): + * * 机器=开机时长 + * * 人工 = 用人数*机器(开机时长) + * * 折旧 = 机器 + * * 其它 = 人工 + * * 二层---------------------------------------- + * * 子单进行报工的时候公式调整如下(数值单位不用管): + * * 机器=sum(工时数/用人数) + * * 人工 = 用人数*机器 + * * 折旧 = 机器 + * * 其它 = 人工 + * *

+ * * 母单进行报工的时候公式调整如下: + * * 机器=子单机器 + * * 人工 = 管理系统维护的用人数*机器 + * * 折旧 = 机器 + * * 其它 = 人工 * @param mesReportWork * @return */ @@ -303,49 +321,60 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService { return R.fail("子母工单信息缺失"); } R sapRson = null; - /**子工单先报工,然后母工单报工:workOrders内容就是-子子母**/ - for(MesReportWork workOrder:workOrders){ + if(workOrders.size()==1){ + /**(一层报工)工单报工**/ mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 mesReportWork.setProdType("prod"); - mesReportWork.setWorkorderCode(workOrder.getWorkorderCode()); - MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork); - if (sHzWorks == null) { - return R.fail(workOrder.getWorkorderCode()+"未查询到报工单"); + mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); + MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz1(mesReportWork); + if(sHzWorks==null){ + return R.fail("未查询到一层报工单"); } //子工单报工 - logger.info("==========================工单("+sHzWorks.getWorkorderCodeSap()+")报工开始"); + logger.info("==========================一层工单报工开始"); sapRson = this.reportHzToSap(sHzWorks); - logger.info("==========================工单("+sHzWorks.getWorkorderCodeSap()+")报工结束:" - + JSONObject.toJSONString(sapRson)); - if (sapRson.getCode() == 200) { + logger.info("==========================一层工单报工结束:"+JSONObject.toJSONString(sapRson)); + }else if(workOrders.size()==2){ + /**(两层报工)子工单先报工,然后母工单报工**/ + mesReportWork.setUploadStatus("1");//除了1报工成功的,都需要报工 + mesReportWork.setProdType("prod"); + mesReportWork.setWorkorderCode(workOrders.get(1).getWorkorderCode()); + MesReportWork sHzWorks = mesReportWorkMapper.getReportWorkHz(mesReportWork); + if(sHzWorks==null){ + return R.fail("未查询到子报工单"); + } + //子工单报工 + logger.info("==========================子工单报工开始"); + sapRson = this.reportHzToSap(sHzWorks); + logger.info("==========================子工单报工结束:"+JSONObject.toJSONString(sapRson)); + if(sapRson.getCode()== 200){ + //一定是子单报工成功返回后,再母单报工 + mesReportWork.setWorkorderCode(workOrders.get(0).getWorkorderCode()); + MesReportWork pHzWork = mesReportWorkMapper.getReportWorkHz(mesReportWork); + if(pHzWork==null){ + return R.fail("未查询到母报工单"); + } try { Thread.sleep(3000); - } catch (Exception e) { + }catch (Exception e){ e.printStackTrace(); } - //最终报工标识且sap报工成功:关闭子母工单 - //MesReportWork endReport = mesReportWorkMapper.getEndReport(pHzWork); - }else{ - //报工不成功跳出循环 - break; + //母工单报工 + logger.info("==========================母工单报工开始"); + pHzWork.setQuantityFeedback(sHzWorks.getQuantityFeedback()); + pHzWork.setSac1(sHzWorks.getSac1()); + R sapR = this.reportHzToSap(pHzWork); + logger.info("==========================母工单报工结束"+JSONObject.toJSONString(sapR)); + return sapR; } - } + }else if(workOrders.size()==3){ + //20240301 TODO; + } return sapRson; } /** - * 子单进行报工的时候公式调整如下(数值单位不用管): - * 机器=sum(工时数/用人数) - * 人工 = 用人数*机器 - * 折旧 = 机器 - * 其它 = 人工 - *

- * 母单进行报工的时候公式调整如下: - * 机器=子单机器 - * 人工 = 管理系统维护的用人数*机器 - * 折旧 = 机器 - * 其它 = 人工 * * @param workOrder * @return diff --git a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml index 9bbf13593..1fa5cbf0e 100644 --- a/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml +++ b/op-modules/op-mes/src/main/resources/mapper/mes/MesReportWorkMapper.xml @@ -588,6 +588,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join pro_order_workorder ow on mrw.workorder_code = ow.workorder_code +