From b13c552870d145f287dfd93a502e91cf9efc8ec3 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期三, 13 三月 2024 10:05:37 +0800
Subject: [PATCH] 修改界面中英文

---
 north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java |  297 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 297 insertions(+), 0 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
new file mode 100644
index 0000000..9e5daf6
--- /dev/null
+++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java
@@ -0,0 +1,297 @@
+package com.example.erp.service.pp;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
+import com.example.erp.common.Constants;
+import com.example.erp.entity.pp.DamageDetails;
+import com.example.erp.entity.pp.FlowCard;
+import com.example.erp.entity.pp.ReportingWork;
+import com.example.erp.entity.pp.ReportingWorkDetail;
+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.exception.ServiceException;
+import com.example.erp.mapper.pp.*;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.example.erp.mapper.sd.OrderMapper;
+import com.example.erp.mapper.sd.OrderProcessDetailMapper;
+import com.example.erp.service.sd.OrderProcessDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+@Service
+@DS("pp")
+public class ReportingWorkService {
+    final
+    ReportingWorkMapper reportingWorkMapper;
+    final
+    BasicDateProduceMapper basicDateProduceMapper;
+    final
+    DamageDetailsMapper damageDetailsMapper;
+    final
+    OrderProcessDetailMapper orderProcessDetailMapper;
+    final
+    ReportingWorkDetailMapper
+    reportingWorkDetailMapper;
+    final OrderMapper
+    orderMapper;
+
+    final
+    FlowCardMapper flowCardMapper;
+
+    final
+    OrderProcessDetailService orderProcessDetailService;
+
+
+
+    public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService, OrderMapper orderMapper, FlowCardMapper flowCardMapper) {
+        this.reportingWorkMapper = reportingWorkMapper;
+        this.basicDateProduceMapper = basicDateProduceMapper;
+        this.damageDetailsMapper = damageDetailsMapper;
+        this.reportingWorkDetailMapper = reportingWorkDetailMapper;
+        this.orderProcessDetailMapper = orderProcessDetailMapper;
+        this.orderProcessDetailService = orderProcessDetailService;
+        this.orderMapper = orderMapper;
+        this.flowCardMapper = flowCardMapper;
+    }
+
+    public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process) {
+        Map<String, Object> map = new HashMap<>();
+        //鏌ヨ娴佺▼鍗″伐鑹烘祦绋�
+        String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(processIdStr);
+
+        int index = technologicalProcess.indexOf("-");
+        //鑾峰彇宸ヨ壓娴佺▼绗竴涓伐搴�
+        String interceptProcess = technologicalProcess.substring(0, index);
+        String[] processList = technologicalProcess.split("->");
+        int length = processList.length;
+
+        //瀹氫箟褰撳墠宸ュ簭涓婁笅宸ュ簭
+        String previousProcess = "";
+        String nextProcess = "";
+
+        //寰幆璇ユ祦绋嬪崱宸ヨ壓娴佺▼
+        for (int i = 0; i < length; i++) {
+            //褰撳埌褰撳墠宸ュ簭鏃�
+            if (processList[i].equals(process)) {
+                //鑾峰彇褰撳墠宸ュ簭鐨勪笂涓�閬撳伐搴�
+                if (i - 1 < 0) {
+                    previousProcess = "";
+                } else {
+                    previousProcess = processList[i - 1];
+                }
+                //鑾峰彇褰撳墠宸ュ簭鐨勪笅涓�閬撳伐搴�
+                if (i + 1 > length - 1) {
+                    nextProcess = "";
+                } else {
+                    nextProcess = processList[i + 1];
+                }
+                //System.out.println("褰撳墠宸ュ簭锛�" + process + " 涓婁竴閬撳伐搴忥細" + previousProcess + " 涓嬩竴閬撳伐搴忥細" + nextProcess);
+                //鏌ヨ褰撳墠宸ュ簭鐨勮〃澶存暟鎹�
+               //System.out.println(reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process));
+                map.put("data", reportingWorkMapper.AddSelectLastWorkMp(processIdStr, technologyStr,previousProcess,nextProcess,process));
+                map.put("thisProcess", processList);
+                break;
+            }
+        }
+
+        //璁惧涓嬫媺妗�
+        map.put("device", reportingWorkMapper.SelectWorkBasicDeviceMp(process));
+        //鐝粍涓嬫媺妗�
+        map.put("teams", reportingWorkMapper.SelectWorkBasicTeamsMp(process));
+
+        map.put("breakageType",reportingWorkMapper.selectBasicNameByType("breakagetype"));
+        map.put("breakageReason",reportingWorkMapper.selectBasicNameByType("breakagereason"));
+
+        //鏌ヨ鏈伐搴忔姤宸ラ渶瑕佸摢鍑犲眰锛屼笂宸ュ簭鏄粈涔�
+        String  obtainTechnology = reportingWorkMapper.SelectWorkTechnologyMp(processIdStr);
+
+        //鍒ゆ柇鏈伐搴忔槸涓嶆槸绗竴閬撳伐搴�
+        if (interceptProcess.equals(process)) {
+            //鏄涓�閬撳伐搴忥紝鏌ヨ娴佺▼鍗℃暟鎹�
+            map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr,technologyStr,process));
+        }
+        else {
+            //涓嶆槸绗竴閬撳伐搴忥紝鏌ヨ鎶ュ伐鏁版嵁
+            map.put("Detail", reportingWorkMapper.SelectReworlDetailMp(processIdStr,technologyStr,process));
+        }
+
+        // 绗竴閬撳伐搴忥紙娴佺▼鍗℃暟+琛ョ墖鏁伴噺-瀹屽伐鏁�-娆$牬鏁�-杩斿伐鏈畬鎴愭暟-绂佺敤鏁伴噺锛�
+
+        // 鍚庣画宸ュ簭锛堜笂宸ュ簭鎶ュ伐鏁�-瀹屽伐鏁�-娆$牬鏁�-杩斿伐鏈畬鎴愭暟锛�
+
+        //鑾峰彇璇ユ祦绋嬪崱鍙峰巻鍙叉姤宸ュ伐搴�
+        String historyProcess =reportingWorkMapper.historyProcessMp(processIdStr);
+        //鍘嗗彶鎶ュ伐宸ュ簭璁惧
+        map.put("historyDevice",reportingWorkMapper.historyDeviceMp(historyProcess,process));
+        //鍘嗗彶鎶ュ伐宸ュ簭鐝粍
+        map.put("historyTeams",reportingWorkMapper.historyTeamsMp(processIdStr,process));
+        //鍘嗗彶宸ュ簭
+        map.put("historyProcess",reportingWorkMapper.SelectHistoryProcessMp(historyProcess,process));
+
+
+
+        return map;
+    }
+
+    public Map<String, Object> SelectProcessSv() {
+        Map<String, Object> map = new HashMap<>();
+        map.put("process", reportingWorkMapper.SelectProcessMp());
+        return map;
+    }
+
+    //鎶ュ伐鏂板
+    @Transactional(rollbackFor = Exception.class)
+    public boolean SaveReportingWorkSv(Map<String, Object> reportingWorkMap) {
+        //鎺ユ敹瑙f瀽涓婚檮琛ㄤ俊鎭�
+        JSONObject reportingWorkJson = new JSONObject(reportingWorkMap);
+        ReportingWork reportingWork = JSONObject.parseObject(JSONObject.toJSONString(reportingWorkJson.get("title")), ReportingWork.class);
+        List<ReportingWorkDetail> reportingWorkDetails = JSONArray.parseArray(JSONObject.toJSONString(reportingWorkJson.get("detail")), ReportingWorkDetail.class);
+        //鑾峰彇褰撳墠鏈�澶ф姤宸ュ崟鍙风敓鎴愭姤宸ュ崟鍙�
+        String formattedNumber = String.format("%04d", reportingWorkMapper.selectMaxReportingWorkId()+1);
+        //鏍煎紡鍖栧綋鍓嶆棩鏈�
+        Date currentDate = new Date();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd");
+        String formattedDate = dateFormat.format(currentDate);
+        String reportingWorkId =  "BG"+formattedDate+formattedNumber;
+        reportingWork.setReportingWorkId(reportingWorkId);
+        reportingWork.setProcessId(reportingWork.getProcessId().substring(0,13));
+
+        int reviewState = (int) reportingWorkJson.get("type");
+        if(reviewState==1){
+            reportingWork.setReviewed(reportingWork.getCreator());
+            reportingWork.setReviewedState(1);
+        }else{
+            reportingWork.setReviewedState(0);
+        }
+        //涓昏〃鎻掑叆
+        reportingWorkMapper.insert(reportingWork);
+
+        //鍓〃寰幆鎻掑叆锛屽苟涓旀彃鍏ユ鐮翠俊鎭〃銆傚啀鏍规嵁娆$牬淇℃伅淇敼璁㈠崟鐜荤拑娴佺▼琛ㄧ殑瀹屽伐鏁伴噺涓庡埡鐮存暟閲�
+        reportingWorkDetails.forEach(reportingWorkDetail -> {
+            reportingWorkDetail.setReportingWorkId(reportingWorkId);
+            List<DamageDetails> damageDetails = reportingWorkDetail.getDamageDetails();
+            if(damageDetails!=null && !damageDetails.isEmpty()){
+                damageDetails.forEach(damageDetail ->{
+                    damageDetail.setReportingWorkId(reportingWorkId);
+                    damageDetail.setOrderNumber(reportingWorkDetail.getOrderNumber());
+                    damageDetail.setProcessId(reportingWork.getProcessId());
+                    damageDetail.setTechnologyNumber(reportingWorkDetail.getTechnologyNumber());
+                    damageDetailsMapper.insert(damageDetail);
+                });
+            }
+            //鏌ヨ娴佺▼鍗″伐鑹烘祦绋�
+            String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(reportingWork.getProcessId());
+
+            int index = technologicalProcess.indexOf("-");
+            //鑾峰彇宸ヨ壓娴佺▼绗竴涓伐搴�
+            String interceptProcess = technologicalProcess.substring(0, index);
+
+            //鍒ゆ柇褰撳墠宸ュ簭鏄惁涓虹涓�閬撳伐搴忓伐搴忥紝浣跨敤娴佺▼鍗¤〃鏁伴噺鎴栬�呭皬鐗囨祦绋嬭〃涓婂伐搴忔暟閲�
+            int processNum = 0;
+            if (interceptProcess.equals(reportingWork.getThisProcess())) {
+                processNum = reportingWorkMapper.selectFlowCardNum(
+                        reportingWorkDetail.getOrderNumber(),
+                        reportingWorkDetail.getTechnologyNumber(),
+                        reportingWork.getProcessId(),
+                        reportingWork.getThisProcess()
+                );
+            }else{
+                processNum = reportingWorkMapper.selectGlassProcessNum(
+                        reportingWorkDetail.getOrderNumber(),
+                        reportingWorkDetail.getTechnologyNumber(),
+                        reportingWork.getProcessId(),
+                        reportingWork.getThisProcess()
+                );
+            }
+
+
+            //鍒ゆ柇鏄惁澶т簬褰撳墠鏁伴噺骞朵笖鎶涘嚭寮傚父
+            if(processNum<(reportingWorkDetail.getBreakageQuantity()+reportingWorkDetail.getCompletedQuantity())){
+                Map<String,Object> map = new HashMap<>();
+                map.put("orderNumber",reportingWorkDetail.getOrderNumber());
+                map.put("technologyNumber",reportingWorkDetail.getOrderNumber());
+                map.put("processNum",processNum);
+                map.put("sumNum",reportingWorkDetail.getBreakageQuantity()+reportingWorkDetail.getCompletedQuantity());
+                String msg = JSON.toJSONString(map);
+                throw new ServiceException(Constants.Code_600,msg);
+            }
+
+            OrderProcessDetail orderProcessDetail = new OrderProcessDetail();
+            orderProcessDetail.setBrokenNum(reportingWorkDetail.getBreakageQuantity());
+            orderProcessDetail.setReportingWorkNum(reportingWorkDetail.getCompletedQuantity());
+            orderProcessDetail.setReportingWorkNumCount(reportingWorkDetail.getCompletedQuantity());
+
+            //鏍规嵁璁㈠崟id锛岃鍗曞簭鍙凤紝浠ュ強灏忕墖搴忓彿 鏇存柊灏忕墖娴佺▼鐨勫畬宸ユ暟閲忎互鍙婂埡鐮存暟閲�
+            LambdaUpdateWrapper<OrderProcessDetail> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.eq(OrderProcessDetail::getOrderNumber, reportingWorkDetail.getOrderNumber())
+                    .eq(OrderProcessDetail::getProcessId, reportingWork.getProcessId().substring(0,13))
+                    .eq(OrderProcessDetail::getOrderId, reportingWork.getOrderId())
+                    .eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess())
+                    .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
+                    .setSql("reporting_work_num_count = reporting_work_num_count +"+orderProcessDetail.getReportingWorkNum())
+                    .setSql("reporting_work_num =reporting_work_num +"+orderProcessDetail.getReportingWorkNum())
+                    .setSql("broken_num =broken_num +"+orderProcessDetail.getBrokenNum());
+            orderProcessDetailMapper.update(null,updateWrapper);
+            reportingWorkDetailMapper.insert(reportingWorkDetail);
+            //鏇存柊娴佺▼鍗¤〃鐨勬姤宸ユ暟閲�
+            if(Objects.equals(reportingWork.getNextProcess(), "")){
+                LambdaUpdateWrapper<FlowCard> flowCardLambdaUpdateWrapper =
+                        new LambdaUpdateWrapper<>();
+                flowCardLambdaUpdateWrapper
+                        .eq(FlowCard::getProcessId, reportingWork.getProcessId())
+                        .eq(FlowCard::getOrderNumber, reportingWorkDetail.getOrderNumber())
+                        .eq(FlowCard::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber())
+                        .setSql("inventory_quantity = inventory_quantity +"+orderProcessDetail.getReportingWorkNum());
+                flowCardMapper.update(null,flowCardLambdaUpdateWrapper);
+            }
+
+
+        });
+        return  true;
+    }
+
+    //涓嬪伐搴忓鏍告柟娉�
+    public boolean ReviewReportingWorkSv(Map<String, String> reportingWork) {
+
+       String processId = reportingWork.get("processId");
+
+        LambdaUpdateWrapper
+                <ReportingWork> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper
+                .eq(ReportingWork::getProcessId, processId.substring(0,13))
+                .eq(ReportingWork::getThisProcess,reportingWork.get("process"))
+                .eq(ReportingWork::getReviewedState,0)
+                .setSql("reviewed_state =1");
+        reportingWorkMapper.update(null,updateWrapper);
+
+
+        return  true;
+    }
+
+    public Map<String,Object> selectUpdateReportingWorkSv(String reportingWorkId) {
+        ReportingWork reportingWork =reportingWorkMapper.selectOne(new LambdaQueryWrapper<ReportingWork>()
+                                        .eq(ReportingWork::getReportingWorkId,reportingWorkId));
+        reportingWork.setOrder(
+            orderMapper.selectOne(new LambdaQueryWrapper<Order>()
+                                        .eq(Order::getOrderId,reportingWork.getOrderId())));
+        reportingWork.setFlowCard(new FlowCard());
+
+        List<ReportingWorkDetail> reportingWorkDetails = reportingWorkDetailMapper.selectByreportingWorkId(reportingWorkId);
+
+
+        Map<String,Object> map = new HashMap<>();
+        map.put("reportingWork",reportingWork);
+        map.put("reportingWorkDetails",reportingWorkDetails);
+        return map;
+
+    }
+}

--
Gitblit v1.8.0