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