From de18cca83738bdf6b279046e34b910ccd5b73a84 Mon Sep 17 00:00:00 2001 From: chenlu <1320612696@qq.com> Date: 星期四, 07 三月 2024 08:17:50 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override --- north-glass-erp/src/main/java/com/example/erp/service/pp/ReportingWorkService.java | 103 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 98 insertions(+), 5 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 ce97908..65d8dc1 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 @@ -1,23 +1,60 @@ package com.example.erp.service.pp; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper; +import com.example.erp.entity.pp.DamageDetails; 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.mapper.pp.BasicDateProduceMapper; +import com.example.erp.mapper.pp.DamageDetailsMapper; +import com.example.erp.mapper.pp.ReportingWorkDetailMapper; import com.example.erp.mapper.pp.ReportingWorkMapper; import com.baomidou.dynamic.datasource.annotation.DS; +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.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; @Service @DS("pp") public class ReportingWorkService { - @Autowired + final ReportingWorkMapper reportingWorkMapper; - + final BasicDateProduceMapper basicDateProduceMapper; + final + DamageDetailsMapper damageDetailsMapper; + final + OrderProcessDetailMapper orderProcessDetailMapper; + final + ReportingWorkDetailMapper + reportingWorkDetailMapper; + + final + OrderProcessDetailService orderProcessDetailService; + + + + public ReportingWorkService(ReportingWorkMapper reportingWorkMapper, BasicDateProduceMapper basicDateProduceMapper, DamageDetailsMapper damageDetailsMapper, ReportingWorkDetailMapper reportingWorkDetailMapper, OrderProcessDetailMapper orderProcessDetailMapper, OrderProcessDetailService orderProcessDetailService) { + this.reportingWorkMapper = reportingWorkMapper; + this.basicDateProduceMapper = basicDateProduceMapper; + this.damageDetailsMapper = damageDetailsMapper; + this.reportingWorkDetailMapper = reportingWorkDetailMapper; + this.orderProcessDetailMapper = orderProcessDetailMapper; + this.orderProcessDetailService = orderProcessDetailService; + } public Map<String, Object> AddSelectLastWorkSv(String processIdStr, String technologyStr, String process) { Map<String, Object> map = new HashMap<>(); @@ -52,6 +89,7 @@ } //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; @@ -63,6 +101,8 @@ //鐝粍涓嬫媺妗� map.put("teams", reportingWorkMapper.SelectWorkBasicTeamsMp(process)); + map.put("breakageType",reportingWorkMapper.selectBasicNameByType("breakagetype")); + map.put("breakageReason",reportingWorkMapper.selectBasicNameByType("breakagereason")); //鏌ヨ鏈伐搴忔姤宸ラ渶瑕佸摢鍑犲眰锛屼笂宸ュ簭鏄粈涔� String obtainTechnology = reportingWorkMapper.SelectWorkTechnologyMp(processIdStr); @@ -70,7 +110,7 @@ //鍒ゆ柇鏈伐搴忔槸涓嶆槸绗竴閬撳伐搴� if (interceptProcess.equals(process)) { //鏄涓�閬撳伐搴忥紝鏌ヨ娴佺▼鍗℃暟鎹� - map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr,technologyStr)); + map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr,technologyStr,process)); } else { //涓嶆槸绗竴閬撳伐搴忥紝鏌ヨ鎶ュ伐鏁版嵁 @@ -83,11 +123,10 @@ //鑾峰彇璇ユ祦绋嬪崱鍙峰巻鍙叉姤宸ュ伐搴� String historyProcess =reportingWorkMapper.historyProcessMp(processIdStr); - //鍘嗗彶鎶ュ伐宸ュ簭璁惧 map.put("historyDevice",reportingWorkMapper.historyDeviceMp(historyProcess,process)); //鍘嗗彶鎶ュ伐宸ュ簭鐝粍 - map.put("historyTeams",reportingWorkMapper.historyTeamsMp(historyProcess,process)); + map.put("historyTeams",reportingWorkMapper.historyTeamsMp(processIdStr,process)); //鍘嗗彶宸ュ簭 map.put("historyProcess",reportingWorkMapper.SelectHistoryProcessMp(historyProcess,process)); @@ -101,4 +140,58 @@ map.put("process", reportingWorkMapper.SelectProcessMp()); return map; } + + //鎶ュ伐鏂板 + @Transactional + 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)); + //涓昏〃鎻掑叆 + 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); + }); + } + //System.out.println(reportingWorkDetail); + 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::getOrderId, reportingWork.getOrderId()) + .eq(OrderProcessDetail::getProcess, reportingWork.getThisProcess()) + .eq(OrderProcessDetail::getTechnologyNumber, reportingWorkDetail.getTechnologyNumber()) + .setSql("reporting_work_num_count =reporting_work_num_count +"+orderProcessDetail.getReportingWorkNumCount()) + .setSql("reporting_work_num =reporting_work_num +"+orderProcessDetail.getReportingWorkNum()) + .setSql("broken_num =broken_num +"+orderProcessDetail.getBrokenNum()); + + orderProcessDetailMapper.update(null,updateWrapper); + reportingWorkDetailMapper.insert(reportingWorkDetail); + }); + return false; + } } -- Gitblit v1.8.0