From 3f89227042fb51e4806fffb5f1831c8c7ec027f5 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期四, 28 八月 2025 09:37:46 +0800
Subject: [PATCH] 修改仓库基础数据

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java |  114 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 86 insertions(+), 28 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
index b0570b2..f75c8ed 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -10,20 +10,16 @@
 import com.example.erp.common.Constants;
 import com.example.erp.dto.pp.OrderNumberTransferDTO;
 import com.example.erp.entity.pp.*;
-import com.example.erp.entity.sd.Order;
-import com.example.erp.entity.sd.OrderDetail;
-import com.example.erp.entity.sd.OrderProcessDetail;
+import com.example.erp.entity.sd.*;
 import com.example.erp.entity.userInfo.Log;
 import com.example.erp.entity.userInfo.SysError;
 import com.example.erp.exception.ServiceException;
 import com.example.erp.mapper.mm.FinishedOperateLogMapper;
 import com.example.erp.mapper.pp.*;
 import com.baomidou.dynamic.datasource.annotation.DS;
-import com.example.erp.mapper.sd.OrderDetailMapper;
-import com.example.erp.mapper.sd.OrderGlassDetailMapper;
-import com.example.erp.mapper.sd.OrderMapper;
-import com.example.erp.mapper.sd.OrderProcessDetailMapper;
+import com.example.erp.mapper.sd.*;
 import com.example.erp.mapper.userInfo.LogMapper;
+import com.example.erp.service.mm.FinishedGoodsInventoryService;
 import com.example.erp.service.sd.OrderProcessDetailService;
 import com.example.erp.service.userInfo.LogService;
 import com.example.erp.service.userInfo.SysErrorService;
@@ -71,6 +67,8 @@
     private final RestTemplate restTemplate;
     private final PatchLogMapper patchLogMapper;
     private final ReworkMapper reworkMapper;
+    private final BasicDataMapper basicDataMapper;
+    private final FinishedGoodsInventoryService finishedGoodsInventoryService;
 
 
     /*public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService, OrderMapper orderMapper, FlowCardMapper flowCardMapper, LogService logService, LogMapper logMapper, OrderGlassDetailMapper orderGlassDetailMapper, SysErrorService sysErrorService, OrderDetailMapper orderDetailMapper, FinishedOperateLogMapper finishedOperateLogMapper, ReportingWorkTransferMapper reportingWorkTransferMapper) {
@@ -253,6 +251,8 @@
         reportingWork.setReportingWorkId(reportingWorkId);
         String[] processIdStr = reportingWork.getProcessId().split("/");
         reportingWork.setProcessId(processIdStr[0]);
+        reportingWork.setThisWornQuantity(0);
+        reportingWork.setThisCompletedQuantity(0);
 
         int reviewState = (int) reportingWorkJson.get("type");
         if (reviewState == 1) {//瀹℃牳閫氳繃
@@ -268,16 +268,23 @@
         //鏄惁绾胯ˉ 1鐜拌ˉ 0鏈幇琛�
         int isPatch = (reportingWorkJson.get("isPatch") != null) ? (int) reportingWorkJson.get("isPatch") : 0;
 
-        reportingWork.setNextProcess(orderProcessDetailMapper.selectNextProcess(processIdStr[0],processIdStr[1],reportingWork.getThisProcess()));
         //涓昏〃鎻掑叆
         reportingWorkMapper.insert(reportingWork);
         //鍓〃寰幆鎻掑叆锛屽苟涓旀彃鍏ユ鐮翠俊鎭〃銆傚啀鏍规嵁娆$牬淇℃伅淇敼璁㈠崟鐜荤拑娴佺▼琛ㄧ殑瀹屽伐鏁伴噺涓庡埡鐮存暟閲�
+        final Integer[] maxTechnologyNumber = {0,0};
         reportingWorkDetails.forEach(reportingWorkDetail -> {
+            //鍚堢墖鏁伴噺姹囨�诲噺灏�
+            if(Integer.parseInt(reportingWorkDetail.getTechnologyNumber()) > maxTechnologyNumber[0]){
+                maxTechnologyNumber[0] = Integer.valueOf(reportingWorkDetail.getTechnologyNumber());
+                maxTechnologyNumber[1]+=1;
+            }
             reportingWork.setThisCompletedQuantity(reportingWork.getThisCompletedQuantity() + reportingWorkDetail.getCompletedQuantity());
             reportingWork.setThisWornQuantity(reportingWork.getThisWornQuantity() + reportingWorkDetail.getBreakageQuantity());
             int qualityInsStatus = (int) reportingWorkJson.get("qualityInsStatus");
             reportingWorkDetail.setReportingWorkId(reportingWorkId);
             List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails();
+            reportingWork.setNextProcess(orderProcessDetailMapper.selectNextProcess(processIdStr[0],processIdStr[1],reportingWork.getThisProcess(),reportingWorkDetail.getOrderNumber()));
+
             //娆$牬鏄庣粏琛ㄦ彃鍏ユ暟鎹�
             if (damageDetails != null && !damageDetails.isEmpty()) {
                 damageDetails.forEach(damageDetail -> {
@@ -366,7 +373,7 @@
             }
 
             //鏇存柊娴佺▼鍗¤〃鐨勬姤宸ユ暟閲�
-            if (Objects.equals(reportingWork.getNextProcess(), "")|| Objects.equals(reportingWork.getNextProcess(), null)) {
+            if (reportingWork.getNextProcess() == null || reportingWork.getNextProcess().isEmpty()) {
                 LambdaUpdateWrapper<FlowCard> flowCardLambdaUpdateWrapper =
                         new LambdaUpdateWrapper<>();
                 flowCardLambdaUpdateWrapper
@@ -379,6 +386,11 @@
 
 
         });
+        //鑾峰彇鎶ュ伐宸ュ簭鏄惁涓哄鍚堝伐绋�
+
+        reportingWork.setThisCompletedQuantity(reportingWork.getThisCompletedQuantity()/maxTechnologyNumber[1]);
+
+
         reportingWorkMapper.update(reportingWork, new LambdaUpdateWrapper<ReportingWork>()
                 .eq(ReportingWork::getId, reportingWork.getId()));
 
@@ -434,6 +446,7 @@
                 orderMapper.selectOne(new LambdaQueryWrapper<Order>()
                         .eq(Order::getOrderId, reportingWork.getOrderId())));
         reportingWork.setFlowCard(new FlowCard());
+
 
 
 
@@ -572,15 +585,29 @@
     }
 
     //鎶ュ伐绠$悊鏌ヨ
-    public Map<String, Object> selectReportingWorkSv(Integer pageNum, Integer pageSize, java.sql.Date selectTime1, java.sql.Date selectTime2, String orderId, ReportingWork reportingWork) {
+    public Map<String, Object> selectReportingWorkSv(Integer pageNum, Integer pageSize, List<String> selectDate, String orderId, ReportingWork reportingWork) {
         Integer offset = (pageNum - 1) * pageSize;
         if ("null".equals(orderId)) {
             orderId = "";
         }
+        String endDate = LocalDate.now().toString();
+        String startDate = LocalDate.now().minusDays(3).toString();
+        if(selectDate !=null && selectDate.size()==2){
+            if(!selectDate.get(0).isEmpty()){
+                startDate = selectDate.get(0);
+            }
+            if(!selectDate.get(1).isEmpty()){
+                endDate = selectDate.get(1);
+            }
+        }
         Map<String, Object> map = new HashMap<>();
-        map.put("data", reportingWorkMapper.selectReportingWorkMp(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork));
+        map.put("data", reportingWorkMapper.selectReportingWorkMp(offset, pageSize, startDate, endDate, orderId, reportingWork));
        // map.put("total", reportingWorkMapper.getPageTotal(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork));
-        map.put("total" ,reportingWorkMapper.getFootSum(offset, pageSize, selectTime1, selectTime2, orderId, reportingWork));
+        map.put("total" ,reportingWorkMapper.getFootSum(offset, pageSize, startDate, endDate, orderId, reportingWork));
+        List<String> list = new ArrayList<>();
+        list.add(startDate);
+        list.add(endDate);
+        map.put("selectDate",list);
         return map;
     }
 
@@ -600,6 +627,17 @@
             if (transferState !=3){
                 //鍒ゆ柇鏄惁鏈夎ˉ鐗囪繑宸ユ暟鎹�
                 if (countStates==0){
+                    //褰撲笅宸ュ簭鏈鏍稿垯鍒犻櫎鏈伐搴�
+                    ReportingWork reportingWork = reportingWorkMapper.selectOne(new LambdaQueryWrapper<ReportingWork>()
+                            .eq(ReportingWork::getReportingWorkId, reportingWorkId));
+                    //淇濆瓨鏃ュ織
+                    Log log = new Log();
+                    log.setContent(reportingWorkId+"-"+processId+"-"+thisProcess);
+                    log.setFunction("deleteWork鎶ュ伐鍒犻櫎");
+                    log.setOperatorId(userId);
+                    log.setOperator(userName);
+
+
                     //鍒ゆ柇鏄惁鏄叆搴撳伐搴�
                     if (lastProcess.equals(thisProcess)) {//鏄叆搴撳伐搴�
                         //鏌ヨ璇ユ祦绋嬪崱鏁伴噺銆佸彲鍏ュ簱鏁伴噺銆佸凡鍏ュ簱鏁伴噺
@@ -626,12 +664,6 @@
                                 }
                                 //鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
                                 reportingWorkMapper.deleteWork(reportingWorkId);
-                                //淇濆瓨鏃ュ織
-                                Log log = new Log();
-                                log.setContent(reportingWorkId+"-"+processId+"-"+thisProcess);
-                                log.setFunction("deleteWork鎶ュ伐鍏ュ簱鍒犻櫎");
-                                log.setOperatorId(userId);
-                                log.setOperator(userName);
                                 logService.saveLog(log);
                                 return true;
                             } else {
@@ -640,6 +672,19 @@
                         }
 
                     } else {//涓嶆槸鍏ュ簱宸ュ簭
+                        if(reportingWork.getReviewedState()==0){
+                            //鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
+                            List<Map<String, Object>> workDateList = reportingWorkMapper.reportingWorkDate(reportingWorkId);
+                            for (Map<String, Object> item : workDateList) {
+                                //鏇存柊鎶ュ伐娴佺▼琛ㄦ暟鎹�
+                                reportingWorkMapper.updateWorkProcess(processId, item.get("order_number"), item.get("technology_number"), item.get("completed_quantity"), item.get("breakage_quantity"), thisProcess);
+                            }
+                            //鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
+                            reportingWorkMapper.deleteWork(reportingWorkId);
+                            logService.saveLog(log);
+                            return true;
+                        }
+
                         if (count == 0) {
                             //鏌ヨ褰撳墠鎶ュ伐缂栧彿瀹屽伐娆$牬鏁伴噺鐨勬暟鎹�
                             List<Map<String, Object>> workDateList = reportingWorkMapper.reportingWorkDate(reportingWorkId);
@@ -650,12 +695,7 @@
                             //鍒犻櫎鎶ュ伐锛屽皢瀹℃牳鐘舵�佹敼涓�-1
                             reportingWorkMapper.deleteWork(reportingWorkId);
 
-                            //淇濆瓨鏃ュ織
-                            Log log = new Log();
-                            log.setContent(reportingWorkId+"-"+processId+"-"+thisProcess);
-                            log.setFunction("deleteWork鎶ュ伐鍒犻櫎");
-                            log.setOperatorId(userId);
-                            log.setOperator(userName);
+
                             logService.saveLog(log);
                             return true;
                         } else {
@@ -1165,7 +1205,12 @@
         date.add(startDate);
         date.add(endDate);
         Map<String, Object> result = new HashMap<>();
-        result.put("data",orderProcessDetailMapper.selectShiftQuantitySv(creatorId, startDate, endDate));
+        BasicData basicData = basicDataMapper
+                .selectOne(new QueryWrapper<BasicData>()
+                        .eq("basic_name", reportingWork.get("process"))
+                        .last("limit 1")
+                );
+        result.put("data",orderProcessDetailMapper.selectShiftQuantitySv(creatorId, startDate, endDate,basicData==null?null:basicData.getNickname()));
         result.put("date",date);
         return result;
     }
@@ -1184,19 +1229,32 @@
         date.add(startDate);
         date.add(endDate);
         Map<String, Object> result = new HashMap<>();
-        result.put("data",reportingWorkMapper.selectList(
+        List<ReportingWork> reportingWorkList = reportingWorkMapper.selectList(
                 new QueryWrapper<ReportingWork>().nested(
                                 reportingWork.get("process")!=null,
                                 wrapper-> wrapper.eq("creator_id",reportingWork.get("userId"))//褰撳伐搴忎负绌烘椂锛屾煡璇㈡墍鏈夋姤宸ヤ俊鎭�
                         )
                         .gt("reviewed_state",-1)
                         .between("date(reporting_work_time)",startDate,endDate)
-                        .orderByDesc("id")));
+                        .orderByDesc("id"));
+        reportingWorkList.forEach(reportingWork1 -> {
+            String Plies =  reportingWorkDetailMapper.getGlassPliesCount(reportingWork1.getReportingWorkId());
+            reportingWork1.setProcessId(reportingWork1.getProcessId()+'/'+Plies);
+        });
+
+        result.put("data",reportingWorkList);
         result.put("date",date);
 
          return result;
 
     }
 
+    public List<BasicDataProduce> selectEquipmentByProcessSv(String process) {
+           return reportingWorkMapper.SelectWorkBasicDeviceMp(process);
+        }
 
-}
+    public String saveWorkStorage(Map<String, Object> object) {
+            //List<Map<String, Object>> flowCard = reportingWorkMapper.getStorageData();
+            //finishedGoodsInventoryService.addSelectWarehousing(object);
+            return null;
+        }}

--
Gitblit v1.8.0