From 569c889395ebe14caf48820e7bfb0551357ec0d2 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 10 九月 2025 08:59:52 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override

---
 north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGlassShelfService.java |  274 ++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 262 insertions(+), 12 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGlassShelfService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGlassShelfService.java
index bc0cd8b..2211818 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGlassShelfService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGlassShelfService.java
@@ -215,7 +215,7 @@
 
                 oddNumber = emitId;
                 finishedGlassShelfMapper.updateFinishedGlassShelfEmit(finishedGlassShelfEmit, oddNumber);
-                log.setFunction("insertDelivery淇敼:"+oddNumber);
+                log.setFunction("insertEmit淇敼:"+oddNumber);
             } else {
                 //鑾峰彇鍗曞彿
                 oddNumber = orderNumberSetting("鍑哄簱");
@@ -231,7 +231,18 @@
                     finishedGlassShelfEmitDetails.setMoney(finishedGlassShelfEmitDetails.getPrice()*finishedGlassShelfEmitDetails.getQuantity());
                     finishedGlassShelfMapper.updateInformationAvailableQuantityOut(finishedGlassShelfEmitDetails);
                     finishedGlassShelfMapper.insertFinishedGlassShelfEmitDetails(oddNumber,index,finishedGlassShelfEmitDetails);
-                    finishedGlassShelfMapper.insertFinishedGlassShelfEmitDetailsLog(oddNumber,index,finishedGlassShelfEmitDetails);
+                    finishedGlassShelfMapper.insertFinishedGlassShelfEmitDetailsLog(
+                            oddNumber,
+                            index,
+                            1,
+                            finishedGlassShelfEmitDetails.getGlassShelfNumber(),
+                            finishedGlassShelfEmitDetails.getGlassShelfName(),
+                            finishedGlassShelfEmitDetails.getQuantity(),
+                            finishedGlassShelfEmitDetails.getPrice(),
+                            finishedGlassShelfEmitDetails.getMoney(),
+                            finishedGlassShelfEmitDetails.getUnit(),
+                            finishedGlassShelfEmitDetails.getRemarks()
+                    );
                     index++;
                 }
                 logService.saveLog(log);
@@ -243,7 +254,7 @@
             //灏嗗紓甯镐紶鍏ユ暟鎹簱
             SysError sysError = new SysError();
             sysError.setError(e+Arrays.toString(e.getStackTrace()));
-            sysError.setFunc("insertDelivery");
+            sysError.setFunc("insertFinishedGlassShelfEmit");
             sysErrorService.insert(sysError);
             saveState = "false4";
 
@@ -289,18 +300,23 @@
             FinishedGlassShelfEmit finishedGlassShelfEmit2 = finishedGlassShelfMapper.getSelectFinishedGlassShelfEmitByemitId(emitId);
 
             if (finishedGlassShelfEmit2 != null) {
-                //缂栬緫杩樺師鏁版嵁
-                List<FinishedGlassShelfEmitDetails> finishedGlassShelfEmitDetailsList2 = finishedGlassShelfMapper.getSelectFinishedGlassShelfEmitDetailsByemitId1(emitId);
-                if (!finishedGlassShelfEmitDetailsList2.isEmpty()) {
-                    for (FinishedGlassShelfEmitDetails finishedGlassShelfEmitDetails : finishedGlassShelfEmitDetailsList2) {
-                        finishedGlassShelfMapper.updateInformationAvailableQuantityInt(finishedGlassShelfEmitDetails);
-                        finishedGlassShelfMapper.deleteFinishedGlassShelfEmitDetailsLog(emitId);
+
+                if(finishedGlassShelfEmit2.getState()==0){
+                    //缂栬緫杩樺師鏁版嵁
+                    List<FinishedGlassShelfEmitDetails> finishedGlassShelfEmitDetailsList2 = finishedGlassShelfMapper.getSelectFinishedGlassShelfEmitDetailsByemitId1(emitId);
+                    if (!finishedGlassShelfEmitDetailsList2.isEmpty()) {
+                        for (FinishedGlassShelfEmitDetails finishedGlassShelfEmitDetails : finishedGlassShelfEmitDetailsList2) {
+                            finishedGlassShelfMapper.updateInformationAvailableQuantityInt(finishedGlassShelfEmitDetails);
+                            finishedGlassShelfMapper.deleteFinishedGlassShelfEmitDetailsLog(emitId);
+                        }
+                        finishedGlassShelfMapper.deleteFinishedGlassShelfEmitDetails(emitId);
+                        finishedGlassShelfMapper.deleteFinishedGlassShelfEmit(emitId);
                     }
+                }else{
+                    saveState = "false1";
                 }
 
             }
-            finishedGlassShelfMapper.deleteFinishedGlassShelfEmitDetails(emitId);
-            finishedGlassShelfMapper.deleteFinishedGlassShelfEmit(emitId);
 
 
             Log log = new Log();
@@ -310,7 +326,6 @@
             log.setFunction("deleteFinishedGlassShelfEmit鍒犻櫎:"+emitId);
             logService.saveLog(log);
 
-            return "true";
         }catch (Exception e) {
             TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
             //灏嗗紓甯镐紶鍏ユ暟鎹簱
@@ -326,6 +341,241 @@
     }
 
 
+    public String insertFinishedGlassShelfWithdraw(Map<String,Object> object) {
+
+        String saveState = "true";
+        //璁剧疆鍥炴粴鐐�
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+
+        try {
+            String withdrawId="";
+            String oddNumber = null;
+            if (object.get("withdrawId") != null) {
+                withdrawId = object.get("withdrawId").toString();
+            } else {
+                withdrawId = "";
+            }
+            FinishedGlassShelfWithdraw finishedGlassShelfWithdraw = JSONObject.parseObject(JSONObject.toJSONString(object.get("title")), FinishedGlassShelfWithdraw.class);
+            List<FinishedGlassShelfWithdrawDetails> finishedGlassShelfWithdrawDetailsList = JSONArray.parseArray(JSONObject.toJSONString(object.get("withdrawDetails")), FinishedGlassShelfWithdrawDetails.class);
+            //鏌ヨ鍏ュ簱鍗曟槸鍚﹀瓨鍦�
+            FinishedGlassShelfWithdraw finishedGlassShelfWithdraw2 = finishedGlassShelfMapper.getSelectFinishedGlassShelfWithdrawByemitId(withdrawId);
+
+            Log log = new Log();
+            log.setOperator(object.get("userName").toString());
+            log.setOperatorId(object.get("userId").toString());
+            log.setContent(object.toString());
+
+            if (finishedGlassShelfWithdraw2 != null) {
+                //缂栬緫杩樺師鏁版嵁
+                List<FinishedGlassShelfWithdrawDetails> finishedGlassShelfWithdrawDetailsList2 = finishedGlassShelfMapper
+                        .getSelectFinishedGlassShelfWithdrawDetailsBywithdrawId1(withdrawId);
+                if (!finishedGlassShelfWithdrawDetailsList2.isEmpty()) {
+                    for (FinishedGlassShelfWithdrawDetails finishedGlassShelfWithdrawDetails : finishedGlassShelfWithdrawDetailsList2) {
+                        finishedGlassShelfMapper.updateEmitDetailsWithdrawQuantityOut(finishedGlassShelfWithdrawDetails);
+                        finishedGlassShelfMapper.deleteFinishedGlassShelfWithdrawDetails(withdrawId);
+                        finishedGlassShelfMapper.updateFinishedGlassShelfEmitDetailsLog(withdrawId);
+                    }
+                }
+
+                oddNumber = withdrawId;
+                finishedGlassShelfMapper.updateFinishedGlassShelfWithdraw(finishedGlassShelfWithdraw, oddNumber);
+                log.setFunction("insertWithdraw淇敼:"+oddNumber);
+            } else {
+                //鑾峰彇鍗曞彿
+                oddNumber = orderNumberSetting("鍏ュ簱");
+                //鏂板鍑哄簱鏁版嵁
+                finishedGlassShelfMapper.insertFinishedGlassShelfWithdraw(finishedGlassShelfWithdraw, oddNumber);
+                log.setFunction("insertFinishedGlassShelfWithdraw鏂板:"+oddNumber);
+            }
+
+            //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼
+            if (finishedGlassShelfWithdrawDetailsList.size()>0) {
+                int index=1;
+                for (FinishedGlassShelfWithdrawDetails finishedGlassShelfWithdrawDetails:finishedGlassShelfWithdrawDetailsList){
+                    if(finishedGlassShelfWithdrawDetails.getQuantity()>0){
+                        finishedGlassShelfWithdrawDetails.setMoney(finishedGlassShelfWithdrawDetails.getPrice()*finishedGlassShelfWithdrawDetails.getQuantity());
+                        finishedGlassShelfMapper.updateEmitDetailsWithdrawQuantityInt(finishedGlassShelfWithdrawDetails);
+                        finishedGlassShelfMapper.insertFinishedGlassShelfWithdrawDetails(oddNumber,index,finishedGlassShelfWithdrawDetails);
+                        finishedGlassShelfMapper.insertFinishedGlassShelfEmitDetailsLog(
+                                oddNumber,
+                                index,
+                                2,
+                                finishedGlassShelfWithdrawDetails.getGlassShelfNumber(),
+                                finishedGlassShelfWithdrawDetails.getGlassShelfName(),
+                                finishedGlassShelfWithdrawDetails.getQuantity(),
+                                finishedGlassShelfWithdrawDetails.getPrice(),
+                                finishedGlassShelfWithdrawDetails.getMoney(),
+                                finishedGlassShelfWithdrawDetails.getUnit(),
+                                finishedGlassShelfWithdrawDetails.getRemarks()
+                        );
+                        index++;
+                    }
+
+                }
+                getUpdateFinishedGlassShelfEmitState(finishedGlassShelfWithdrawDetailsList.get(0).getEmitId());
+                logService.saveLog(log);
+            } else {
+                return "false3";
+            }
+        }catch (Exception e) {
+            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+            //灏嗗紓甯镐紶鍏ユ暟鎹簱
+            SysError sysError = new SysError();
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("insertFinishedGlassShelfWithdraw");
+            sysErrorService.insert(sysError);
+            saveState = "false4";
+
+        }
+
+        return saveState;
+    }
+
+    public void getUpdateFinishedGlassShelfEmitState(String emitId) {
+        List<FinishedGlassShelfEmitDetails> finishedGlassShelfEmitDetailsList2 = finishedGlassShelfMapper
+                .getSelectFinishedGlassShelfEmitDetailsByemitId1(emitId);
+        int sumWithdrawQuantity=0;
+        finishedGlassShelfMapper.updateFinishedGlassShelfEmitState(2,emitId);
+        for(FinishedGlassShelfEmitDetails finishedGlassShelfEmitDetails:finishedGlassShelfEmitDetailsList2){
+            sumWithdrawQuantity+=finishedGlassShelfEmitDetails.getWithdrawQuantity();
+            if(finishedGlassShelfEmitDetails.getQuantity()!=finishedGlassShelfEmitDetails.getWithdrawQuantity()){
+                finishedGlassShelfMapper.updateFinishedGlassShelfEmitState(1,emitId);
+            }
+        }
+        if(sumWithdrawQuantity==0){
+            finishedGlassShelfMapper.updateFinishedGlassShelfEmitState(0,emitId);
+        }
+    }
+
+
+    public Map<String, Object> getSelectFinishedGlassShelfWithdraw(Integer pageNum, Integer pageSize,List<String> selectDate,
+                                                                   FinishedGlassShelfWithdraw finishedGlassShelfWithdraw) throws JsonProcessingException {
+        Integer offset = (pageNum - 1) * pageSize;
+        String endDate = LocalDate.now().toString();
+        String startDate = LocalDate.now().minusDays(15).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", finishedGlassShelfMapper.getSelectFinishedGlassShelfWithdraw(offset, pageSize,startDate,endDate, finishedGlassShelfWithdraw));
+        map.put("total", finishedGlassShelfMapper.getSelectFinishedGlassShelfWithdrawPageTotal(offset, pageSize,startDate,endDate, finishedGlassShelfWithdraw));
+        List<String> list = new ArrayList<>();
+        list.add(startDate);
+        list.add(endDate);
+        map.put("selectDate",list);
+        return map;
+    }
+
+    public Map<String, Object> getSelectFinishedGlassShelfWithdrawDetails(Integer pageNum, Integer pageSize, String withdrawId) {
+        if (withdrawId.startsWith("\"") && withdrawId.endsWith("\"")) {
+            withdrawId = withdrawId.substring(1, withdrawId.length() - 1); // 鍘婚櫎棣栧熬寮曞彿
+        }
+        Map<String, Object> map = new HashMap<>();
+        map.put("withdraw", finishedGlassShelfMapper.getSelectFinishedGlassShelfWithdrawByemitId(withdrawId));
+        map.put("data", finishedGlassShelfMapper.getSelectFinishedGlassShelfWithdrawDetailsBywithdrawId(withdrawId));
+        return map;
+    }
+
+
+    public String deleteFinishedGlassShelfWithdraw(Map<String,Object> object) {
+        String saveState = "true";
+        //璁剧疆鍥炴粴鐐�
+        Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
+        try {
+            String withdrawId = "";
+            if (object.get("withdrawId") != null) {
+                withdrawId = object.get("withdrawId").toString();
+            }
+            FinishedGlassShelfWithdraw finishedGlassShelfWithdraw2 = finishedGlassShelfMapper.getSelectFinishedGlassShelfWithdrawByemitId(withdrawId);
+
+            if (finishedGlassShelfWithdraw2 != null) {
+                //缂栬緫杩樺師鏁版嵁
+                List<FinishedGlassShelfWithdrawDetails> finishedGlassShelfWithdrawDetailsList2 = finishedGlassShelfMapper
+                        .getSelectFinishedGlassShelfWithdrawDetailsBywithdrawId1(withdrawId);
+                if (!finishedGlassShelfWithdrawDetailsList2.isEmpty()) {
+                    for (FinishedGlassShelfWithdrawDetails finishedGlassShelfWithdrawDetails : finishedGlassShelfWithdrawDetailsList2) {
+                        finishedGlassShelfMapper.updateEmitDetailsWithdrawQuantityOut(finishedGlassShelfWithdrawDetails);
+                        finishedGlassShelfMapper.deleteFinishedGlassShelfEmitDetailsLog(withdrawId);
+                    }
+
+                    finishedGlassShelfMapper.deleteFinishedGlassShelfWithdrawDetails(withdrawId);
+                    finishedGlassShelfMapper.deleteFinishedGlassShelfWithdraw(withdrawId);
+                    getUpdateFinishedGlassShelfEmitState(finishedGlassShelfWithdrawDetailsList2.get(0).getEmitId());
+                }
+
+
+            }
+
+
+            Log log = new Log();
+            log.setOperatorId(object.get("userId").toString());
+            log.setOperator(object.get("userName").toString());
+            log.setContent(object.toString());
+            log.setFunction("deleteFinishedGlassShelfWithdraw鍒犻櫎:"+withdrawId);
+            logService.saveLog(log);
+
+            return "true";
+        }catch (Exception e) {
+            TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);
+            //灏嗗紓甯镐紶鍏ユ暟鎹簱
+            SysError sysError = new SysError();
+            sysError.setError(e+Arrays.toString(e.getStackTrace()));
+            sysError.setFunc("deleteFinishedGlassShelfWithdraw");
+            sysErrorService.insert(sysError);
+            saveState = "false";
+
+        }
+        return saveState;
+
+    }
+
+
+    public Map<String, Object> getFinishedGlassShelfLogReport(String type,Integer pageNum, Integer pageSize,
+                                                              List<String> selectDate, FinishedGlassShelfLog finishedGlassShelfLog) {
+        Integer offset = (pageNum-1)*pageSize;
+        String endDate = LocalDate.now().toString();
+        String startDate = LocalDate.now().minusDays(15).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);
+            }
+        }
+        int state=0;
+        if(type.equals("鏂欐灦鍑哄簱")){
+            state=1;
+        }else if(type.equals("鏂欐灦鍏ュ簱")){
+            state=2;
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        System.out.println(finishedGlassShelfLog.getDocumentId());
+        map.put("data", finishedGlassShelfMapper.getFinishedGlassShelfLogReport(offset, pageSize,startDate, endDate, finishedGlassShelfLog,state));
+        map.put("total", finishedGlassShelfMapper.getFinishedGlassShelfLogReportTotal(offset, pageSize,startDate, endDate, finishedGlassShelfLog,state));
+        List<String> list = new ArrayList<>();
+        list.add(startDate);
+        list.add(endDate);
+        map.put("selectDate",list);
+        return map;
+    }
+
+    public List<FinishedGlassShelfLog> exportFinishedGlassShelfLogReport(List<LocalDate> dates, String type) {
+        int state=0;
+        if(type.equals("鏂欐灦鍑哄簱")){
+            state=1;
+        }else if(type.equals("鏂欐灦鍏ュ簱")){
+            state=2;
+        }
+        return finishedGlassShelfMapper.exportFinishedGlassShelfLogReport(dates,state);
+    }
+
 
 
 

--
Gitblit v1.8.0