From fdb1ff8d82a6ce11cf648dcf5123a683f36f6894 Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 15 May 2024 14:02:51 +0800 Subject: [PATCH 1/2] =?UTF-8?q?40757=20MES-PC=EF=BC=9A=E7=89=A9=E6=96=99?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=EF=BC=9A=E6=96=B0=E5=A2=9E=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E3=80=90=E7=89=A9=E6=96=99=E7=B1=BB=E5=9E=8B=E3=80=91=E4=B8=8E?= =?UTF-8?q?WMS=E7=89=A9=E6=96=99=E7=B1=BB=E5=9E=8B=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E4=B8=80=E8=87=B4=EF=BC=8C=E6=96=B0=E5=A2=9E=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E4=B8=8B=E6=8B=89=E9=80=89=E6=8B=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../serviceimpl/base/MesWorkOrderService.java | 13 +++- .../i3plus/ext/mes/pojo/util/MesExtEnumUtil.java | 83 ++++++++++++++++++++++ 2 files changed, 95 insertions(+), 1 deletion(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 8b9967f..78d8004 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -285,7 +285,17 @@ public class MesWorkOrderService extends BaseMesService implements mesWorkOrder.getPartNo(), mesProductVersion.getProductVersion()); } //更新工单状态 - mesWorkOrder.setCompleteQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty())); + if(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()){ + mesWorkOrder.setCompleteQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty())); + }else{ + //冲销数量大于工单完成数量报错 + if(mesWorkOrder.getNum() > mesWorkOrder.getCompleteQty()){ + MesException.throwMesBusiException("冲销数量【%s】大于工单完成数量【%s】", + mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty()); + } + mesWorkOrder.setCompleteQty(MathOperation.sub(mesWorkOrder.getCompleteQty(),mesWorkOrder.getNum())); + } + double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getCompleteQty()); mesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0); if (mesWorkOrder.getCompleteQty() >= mesWorkOrder.getQty()) { @@ -321,6 +331,7 @@ public class MesWorkOrderService extends BaseMesService implements newMesProductOffLine.setWorkOrderNo(mesWorkOrder.getOrderNo()); newMesProductOffLine.setWorkCenterCode(mesWorkOrder.getWorkCenterCode()); newMesProductOffLine.setWorkCellCode(mesWorkOrder.getWorkCellCode()); + newMesProductOffLine.setReportType(mesWorkOrder.getReportType()); ConvertBean.serviceModelInitialize(newMesProductOffLine, mesWorkOrder.getCreateUser()); mesProductOffLineList.add(newMesProductOffLine); diff --git a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java index 3b4ad5f..d14c0ab 100644 --- a/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java +++ b/modules/i3plus-ext-mes-pojo/src/main/java/cn/estsh/i3plus/ext/mes/pojo/util/MesExtEnumUtil.java @@ -2036,4 +2036,87 @@ public class MesExtEnumUtil { } } + /** + * 生产工单-报工类型 + */ + @JsonFormat( + shape = JsonFormat.Shape.OBJECT + ) + public static enum REPORT_TYPE { + REPORT(10, "报工"), + WRITE_OFF(20, "冲销"); + + private int value; + private String description; + + private REPORT_TYPE(int value, String description) { + this.value = value; + this.description = description; + } + + public static String valueOfDescription(int val) { + String tmp = null; + + for (int i = 0; i < values().length; ++i) { + if (values()[i].value == val) { + tmp = values()[i].description; + } + } + + return tmp; + } + + public int getValue() { + return this.value; + } + + public String getDescription() { + return this.description; + } + } + + public enum MES_PART_TYPE { + RAW_MATERIAL("10", "原材料"), + PARTIALLY_PREPARED_PRODUCTS("20", "半成品"), + FINISHED_PRODUCT("30", "成品"), + CONTAINER_PRODUCT("40", "容器"), + UTENSIL("50", "器具"), + WORKING_HOURS("60", "工时"); + private String value; + private String description; + + MES_PART_TYPE(String value, String description) { + this.value = value; + this.description = description; + } + + public String getValue() { + return value; + } + + public String getDescription() { + return description; + } + + public static String valueOfDescription(String val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].value.equals(val)) { + tmp = values()[i].description; + } + } + return tmp; + } + + public static String descriptionOfValue(String val) { + String tmp = null; + for (int i = 0; i < values().length; i++) { + if (values()[i].description.equals(val)) { + tmp = values()[i].value; + } + } + return tmp; + } + } + } From e24580595dca2fed9a35736c4cb8e7b879c38163 Mon Sep 17 00:00:00 2001 From: jun Date: Wed, 15 May 2024 14:30:11 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=8A=A5=E5=B7=A5=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E5=8D=A1=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apiservice/serviceimpl/base/MesWorkOrderService.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java index 78d8004..8da8999 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/base/MesWorkOrderService.java @@ -284,23 +284,26 @@ public class MesWorkOrderService extends BaseMesService implements MesException.throwMesBusiException("物料【%s】生产版本【%s】对应bom信息不存在", mesWorkOrder.getPartNo(), mesProductVersion.getProductVersion()); } - //更新工单状态 + //报工类型 if(MesExtEnumUtil.REPORT_TYPE.REPORT.getValue() == mesWorkOrder.getReportType()){ mesWorkOrder.setCompleteQty(MathOperation.add(mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty())); }else{ //冲销数量大于工单完成数量报错 if(mesWorkOrder.getNum() > mesWorkOrder.getCompleteQty()){ - MesException.throwMesBusiException("冲销数量【%s】大于工单完成数量【%s】", + MesException.throwMesBusiException("冲销数量【%s】大于工单完成数量【%s】,不允许冲销", mesWorkOrder.getNum(), mesWorkOrder.getCompleteQty()); } mesWorkOrder.setCompleteQty(MathOperation.sub(mesWorkOrder.getCompleteQty(),mesWorkOrder.getNum())); } - + //更新工单状态 double unCompleteQty = MathOperation.sub(mesWorkOrder.getQty(), mesWorkOrder.getCompleteQty()); mesWorkOrder.setUnCompleteQty(unCompleteQty > 0 ? unCompleteQty : 0); - if (mesWorkOrder.getCompleteQty() >= mesWorkOrder.getQty()) { + if (mesWorkOrder.getCompleteQty() > mesWorkOrder.getQty()) { + MesException.throwMesBusiException("工单报工数量【%s】大于工单数量【%s】,不允许报工", + mesWorkOrder.getCompleteQty(), mesWorkOrder.getQty()); + }else if(Objects.equals(mesWorkOrder.getCompleteQty(),mesWorkOrder.getQty())){ mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.COMPLETE.getValue()); - } else { + }else { mesWorkOrder.setWorkOrderStatus(MesExtEnumUtil.ORDER_STATUS.process.getValue()); } update(mesWorkOrder);