From 18c043f11b876ef4d7a8d95e785449ac70ef1824 Mon Sep 17 00:00:00 2001
From: yangwl <1726150332@qq.com>
Date: Sun, 24 Apr 2022 17:11:38 +0800
Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E6=97=A5=E7=94=9F=E4=BA=A7=E7=8A=B6?=
=?UTF-8?q?=E6=80=81=E6=8A=A5=E8=A1=A8=E5=A2=9E=E5=8A=A0=E4=B8=8A=E5=B7=A5?=
=?UTF-8?q?=E5=BA=8F=E6=93=8D=E4=BD=9C=E5=91=98=E3=80=81=E4=B8=8B=E6=96=99?=
=?UTF-8?q?=E5=B0=BA=E5=AF=B8=E3=80=81=E6=9D=90=E6=96=99=E5=90=8D=E7=A7=B0?=
=?UTF-8?q?=E3=80=81=E6=89=B9=E9=87=8F=E4=BF=AE=E6=94=B9=E5=B7=A5=E8=89=BA?=
=?UTF-8?q?=E8=B7=AF=E7=BA=BF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
common/common.iml | 233 ++++++++++++++++++
.../controller/ReportDataController.java | 5 +
.../resources/mapper/ReportDataMapper.xml | 29 ++-
.../ShopOrderReleaseController.java | 17 +-
.../service/ShopOrderReleaseService.java | 2 +-
.../impl/ShopOrderReleaseServiceImpl.java | 100 ++++----
6 files changed, 337 insertions(+), 49 deletions(-)
create mode 100644 common/common.iml
diff --git a/common/common.iml b/common/common.iml
new file mode 100644
index 00000000..07c82ac7
--- /dev/null
+++ b/common/common.iml
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/common/src/main/java/com/foreverwin/mesnac/common/controller/ReportDataController.java b/common/src/main/java/com/foreverwin/mesnac/common/controller/ReportDataController.java
index cec06d68..475a7d21 100644
--- a/common/src/main/java/com/foreverwin/mesnac/common/controller/ReportDataController.java
+++ b/common/src/main/java/com/foreverwin/mesnac/common/controller/ReportDataController.java
@@ -6,6 +6,8 @@ package com.foreverwin.mesnac.common.controller;
* @Since 2021-08-23
*/
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
import com.foreverwin.mesnac.common.mapper.ReportDataMapper;
import com.foreverwin.mesnac.common.service.ReportDataService;
import com.foreverwin.modular.core.util.CommonMethods;
@@ -13,6 +15,8 @@ import com.foreverwin.modular.core.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -108,6 +112,7 @@ public class ReportDataController {
return R.failed(e.getMessage());
}
}
+
/**
* 每日生产状态报表
*
diff --git a/common/src/main/resources/mapper/ReportDataMapper.xml b/common/src/main/resources/mapper/ReportDataMapper.xml
index 51d5e34d..f821e9a1 100644
--- a/common/src/main/resources/mapper/ReportDataMapper.xml
+++ b/common/src/main/resources/mapper/ReportDataMapper.xml
@@ -350,8 +350,18 @@
ZSD.SFC , ZSD.WORK_CENTER , WCT.DESCRIPTION WORK_CENTER_DESCRIPTION , RU.ROUTER_TYPE , ZSD.STEP_ID , ZSD.OPERATION ,CF.VALUE CHECK_USR,
OT.DESCRIPTION OPERATION_DESCRIPTION, ZSD.RESRCE , R.DESCRIPTION RESOURCE_DESCRIPTION , ZSD.DISPATCH_STATUS OPERATION_STATUS ,
ZSD.PROD_HOURS ,ZSD.ACTUAL_PROD_HOURS , ZSD.PLANNED_START_DATE , ZSD.PLANNED_COMP_DATE , ZSD.ACTUAL_START_DATE , ZSD.ACTUAL_COMPLETE_DATE,
- ROUND(TO_NUMBER(ZSD.ACTUAL_COMPLETE_DATE- ZSD.PLANNED_COMP_DATE)) TARDINESS_TIME
+ CASE WHEN ZSD.ACTUAL_COMPLETE_DATE IS NOT NULL THEN ROUND(TO_NUMBER(ZSD.ACTUAL_COMPLETE_DATE -ZSD.PLANNED_COMP_DATE))
+ ELSE ROUND(TO_NUMBER(sysdate -ZSD.PLANNED_COMP_DATE)) END TARDINESS_TIME,CASE WHEN TO_NUMBER(zsd.DISPATCH_SEQ)=1 THEN NULL
+ WHEN SS.STEP_SEQUENCE>TO_NUMBER(zsd.DISPATCH_SEQ)-1 THEN '已完成'
+ ELSE '未完成' END LAST_OPERATION_STATUS,PREZSD.EMPLOYEE_DESCRIPTION,CT.DESCRIPTION COMPONENT_DESCRIPTION,ZSD.BLANKING_SIZE
FROM Z_SFC_DISPATCH ZSD
+ INNER JOIN SFC SC ON SC.SITE = ZSD.SITE AND SC.SFC = ZSD.SFC
+ INNER JOIN SFC_BOM SB ON SB.SFC_BO = SC.HANDLE
+ INNER JOIN BOM_COMPONENT BC ON BC.BOM_BO = SB.BOM_BO
+ LEFT JOIN ITEM CP ON CP.HANDLE = BC.COMPONENT_GBO
+ LEFT JOIN ITEM_T CT ON CT.ITEM_BO = CP.HANDLE AND CT.LOCALE = 'zh'
+ LEFT JOIN Z_SFC_DISPATCH PREZSD
+ ON zsd.SFC=PREZSD.SFC AND PREZSD.DISPATCH_SEQ=TO_NUMBER(zsd.DISPATCH_SEQ)-1 AND zsd.ROUTER_BO=PREZSD.ROUTER_BO
LEFT JOIN SHOP_ORDER SO ON SO.SHOP_ORDER = ZSD.SHOP_ORDER
LEFT JOIN CUSTOM_FIELDS CFA ON CFA.HANDLE = SO.HANDLE AND CFA."ATTRIBUTE" = 'WORK_ORDER'
LEFT JOIN CUSTOM_FIELDS CFB ON CFB.HANDLE = SO.HANDLE AND CFB."ATTRIBUTE" = 'ITEM_NUMBER'
@@ -366,6 +376,10 @@
LEFT JOIN ROUTER RU ON RU.HANDLE = ZSD.ROUTER_BO
LEFT JOIN RESRCE R ON R.RESRCE = ZSD.RESRCE AND R.SITE = ZSD.SITE
LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = R.HANDLE AND CF."ATTRIBUTE" = 'CHECK_USR'
+ JOIN SFC S ON S.SFC=ZSD.SFC AND S.SITE=ZSD.SITE
+ JOIN SFC_ROUTING SR ON SR.SFC_BO=S.HANDLE
+ JOIN SFC_ROUTER SR2 ON SR.HANDLE =SR2.SFC_ROUTING_BO AND SR2.IN_USE = 'true'
+ LEFT JOIN SFC_STEP SS ON SR2.HANDLE =SS.SFC_ROUTER_BO AND (SS.QTY_IN_QUEUE>0 or SS.QTY_IN_WORK>0)
WHERE ZSD.SITE = #{site}
AND CFB.VALUE LIKE '%'||#{itemNumber}||'%'
@@ -388,6 +402,9 @@
AND ZSD.OPERATION = #{operation}
+
+ AND OT.DESCRIPTION = #{operationDescription}
+
AND I.ITEM = #{item}
@@ -404,6 +421,16 @@
+
+
+
+ AND zsd.DISPATCH_SEQ = SS.STEP_SEQUENCE
+
+
+ AND zsd.DISPATCH_SEQ != SS.STEP_SEQUENCE
+
+
+
diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java
index 8eefbdd0..2f65260b 100644
--- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java
+++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/controller/ShopOrderReleaseController.java
@@ -199,13 +199,20 @@ public class ShopOrderReleaseController {
@ResponseBody
@PostMapping("/UpdateWorkmanship")
public R updateWorkmanship(@RequestBody UpdateWKSBparam updateWKSBparam){
+ Boolean flag = true;
+ StringBuffer message = new StringBuffer();
try{
- for (ShopOrderRelease shopOrderRelease:updateWKSBparam.getShopOrderList()){
- shopOrderReleaseService.changerouterRevision(shopOrderRelease,updateWKSBparam.getType());
- }
+ flag = shopOrderReleaseService.changerouterRevision(updateWKSBparam.getShopOrderList(),message,updateWKSBparam.getType());
}catch (Exception e){
- return R.failed(e.getMessage());
+ flag = false;
+ message.append(e.getMessage());
+ }
+ if (flag){
+ message.insert(0, "更新成功");
+ return R.ok(message.toString());
+ }else {
+ message.insert(0, "已是最新版本:");
+ return R.failed(message.toString());
}
- return R.ok("更改成功!");
}
}
diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java
index f32c6bd3..49d7c79e 100644
--- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java
+++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/ShopOrderReleaseService.java
@@ -99,7 +99,7 @@ public interface ShopOrderReleaseService {
*/
void sfcDispatch(String site, String user, ShopOrder shopOrderModel, Sfc sfcModel, List routerList) throws IOException;
- void changerouterRevision(ShopOrderRelease shopOrderRelease,String type);
+ Boolean changerouterRevision(List shopOrderRelease,StringBuffer message,String type);
// void changeBomRevision(ShopOrderRelease shopOrderRelease) ;
}
diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java
index 264cf76a..f24bef10 100644
--- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java
+++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java
@@ -370,55 +370,71 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService {
}
@Override
- public void changerouterRevision(ShopOrderRelease shopOrderRelease,String type) {
+ public Boolean changerouterRevision(List shopOrderReleaseList,StringBuffer message,String type) {
ChangeProductionServiceInterface changeProductionService = null;
ChangeProductionContext changeProductionContext = new ChangeProductionContext();
ChangeProductionRequest changeProductionRequest = new ChangeProductionRequest();
List sfcList = new ArrayList<>();
- String shopOrderBo = shopOrderRelease.getShopOrderBo();
- ShopOrder shopOrderModel = shopOrderService.getById(shopOrderBo);
- /**
- * 通过工单号找SFC
- */
- List stringList = shopOrderReleaseMapper.findSfc(shopOrderModel.getShopOrder());
- if (!stringList.isEmpty()){
- for (int j = 0; j < stringList.size(); j++) {
- sfcList.add(stringList.get(j));
+ Boolean flag = true;
+ for (ShopOrderRelease shopOrderRelease:shopOrderReleaseList){
+ String shopOrderBo = shopOrderRelease.getShopOrderBo();
+ ShopOrder shopOrderModel = shopOrderService.getById(shopOrderBo);
+ /**
+ * 通过工单号找SFC
+ */
+ List stringList = shopOrderReleaseMapper.findSfc(shopOrderModel.getShopOrder());
+ if (!stringList.isEmpty()){
+ for (int j = 0; j < stringList.size(); j++) {
+ sfcList.add(stringList.get(j));
+ }
+ }
+ /**
+ * 通过工单号找目前最新的工艺路线、版本号
+ */
+ RouterDTO routerDTO=shopOrderReleaseMapper.findNewRouter(shopOrderModel.getShopOrder());
+
+ if (routerDTO.getRevision().equals(shopOrderRelease.getRevision())){
+ flag = false;
+ message.append("工单[" + shopOrderRelease.getShopOrder() + "]工艺路线是最新的,无需更新!");
+ continue;
+ }
+ if (routerDTO!=null&&type.equals("A")){
+ changeProductionContext.setNewRouter(routerDTO.getRouter());
+ changeProductionContext.setNewRouterRevision(routerDTO.getRevision());
+ changeProductionRequest.setOperationPlacementType(OperationPlacementTypeEnum.CURRENT_OPERATION);
+ }
+ /**
+ * 通过工单号找目前最新的BOM号、版本
+ */
+ Bom bom=shopOrderReleaseMapper.findNewBom(shopOrderModel.getShopOrder());
+ if (bom.getRevision().equals(shopOrderRelease.getBomrevision())){
+ flag = false;
+ message.append("工单[" + shopOrderRelease.getShopOrder() + "]BOM版本是最新的,无需更新!");
+ continue;
+ }
+ if (bom!=null&&type.equals("B")){
+ changeProductionContext.setNewBom(bom.getBom());
+ changeProductionContext.setNewBomRevision(bom.getRevision());
}
- }
- /**
- * 通过工单号找目前最新的工艺路线、版本号
- */
- RouterDTO routerDTO=shopOrderReleaseMapper.findNewRouter(shopOrderModel.getShopOrder());
- if (routerDTO!=null&&type.equals("A")){
- changeProductionContext.setNewRouter(routerDTO.getRouter());
- changeProductionContext.setNewRouterRevision(routerDTO.getRevision());
- changeProductionRequest.setOperationPlacementType(OperationPlacementTypeEnum.CURRENT_OPERATION);
- }
- /**
- * 通过工单号找目前最新的BOM号、版本
- */
- Bom bom=shopOrderReleaseMapper.findNewBom(shopOrderModel.getShopOrder());
- if (bom!=null&&type.equals("B")){
- changeProductionContext.setNewBom(bom.getBom());
- changeProductionContext.setNewBomRevision(bom.getRevision());
- }
- try {
- changeProductionService = MEServices.create("com.sap.me.production", "ChangeProductionService", CommonMethods.getSite());
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- changeProductionRequest.setAllowDoneSfcs(true);
- changeProductionRequest.setSfcList(sfcList);
- changeProductionRequest.setChangeProductionContextType(changeProductionContext);
- try {
- changeProductionService.changeProduction(changeProductionRequest);
- } catch (com.sap.me.frame.domain.BusinessException e) {
- throw com.foreverwin.modular.core.exception.BusinessException.build(Exceptions.convert(e).toString());
- } catch (Exception e) {
- throw com.foreverwin.modular.core.exception.BusinessException.build(Exceptions.getRootCauseException(e).getMessage());
+ try {
+ changeProductionService = MEServices.create("com.sap.me.production", "ChangeProductionService", CommonMethods.getSite());
+ } catch (ClassNotFoundException e) {
+ e.printStackTrace();
+ }
+ changeProductionRequest.setAllowDoneSfcs(true);
+ changeProductionRequest.setSfcList(sfcList);
+ changeProductionRequest.setChangeProductionContextType(changeProductionContext);
+
+ try {
+ changeProductionService.changeProduction(changeProductionRequest);
+ } catch (com.sap.me.frame.domain.BusinessException e) {
+ throw com.foreverwin.modular.core.exception.BusinessException.build(Exceptions.convert(e).toString());
+ } catch (Exception e) {
+ throw com.foreverwin.modular.core.exception.BusinessException.build(Exceptions.getRootCauseException(e).getMessage());
+ }
}
+ return flag;
}