From d5bb894f9be2e0a3b62d475b60b44f2ab138528c Mon Sep 17 00:00:00 2001 From: guoyujie <guoyujie@ng.com> Date: 星期四, 12 六月 2025 16:48:35 +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/ReplenishService.java | 349 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 349 insertions(+), 0 deletions(-) diff --git a/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java new file mode 100644 index 0000000..8bf6888 --- /dev/null +++ b/north-glass-erp/src/main/java/com/example/erp/service/pp/ReplenishService.java @@ -0,0 +1,349 @@ +package com.example.erp.service.pp; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.example.erp.dto.pp.PatchLogAddDTO; +import com.example.erp.dto.pp.PatchLogDTO; +import com.example.erp.entity.pp.FlowCard; +import com.example.erp.entity.pp.PatchLog; +import com.example.erp.entity.pp.ReportingWork; +import com.example.erp.entity.userInfo.Log; +import com.example.erp.entity.userInfo.SysError; +import com.example.erp.mapper.pp.FlowCardMapper; +import com.example.erp.mapper.pp.PatchLogMapper; +import com.example.erp.mapper.pp.ReportingWorkMapper; +import com.example.erp.service.userInfo.LogService; +import com.example.erp.service.userInfo.SysErrorService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.interceptor.TransactionAspectSupport; + +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.*; + + +@Service +@DS("pp") +@Transactional(rollbackFor = Exception.class) +public class ReplenishService { + final + PatchLogMapper patchMapper; + + final + SysErrorService sysErrorService; + + final + ReportingWorkMapper reportingWorkMapper; + + final + FlowCardMapper flowCardMapper; + + final LogService logService; + + public ReplenishService(PatchLogMapper patchMapper, SysErrorService sysErrorService, ReportingWorkMapper reportingWorkMapper,FlowCardMapper flowCardMapper,LogService logService) { + this.patchMapper = patchMapper; + this.sysErrorService = sysErrorService; + this.reportingWorkMapper = reportingWorkMapper; + this.flowCardMapper = flowCardMapper; + this.logService = logService; + } + + + public List<PatchLogAddDTO> getSelectReplenish(Integer pageNum, Integer pageSize,PatchLogAddDTO patchLogAddDTO) { + Integer offset = (pageNum - 1) * pageSize; + return patchMapper.getSelectReplenish(offset,pageSize,patchLogAddDTO); + + } + + public Map<String, Object> SelectReplenish(Integer pageNum, Integer pageSize, List<String> selectDate, PatchLogDTO patchLogDTO) { + 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",patchMapper.SelectReplenish(offset,pageSize,startDate,endDate,patchLogDTO)); + map.put("total",patchMapper.SelectReplenishPageTotal(offset,pageSize,startDate,endDate,patchLogDTO)); + + List<String> list = new ArrayList<>(); + list.add(startDate); + list.add(endDate); + map.put("selectDate",list); + return map; + } + + public Boolean saveReplenish(Map<String,Object> object) { + boolean saveState = true; + Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); + try { + String userName = ""; + String userId = ""; + if (object.get("userName") != null) { + userName = object.get("userName").toString(); + } + if (object.get("userId") != null) { + userId = object.get("userId").toString(); + } + String oddNumber=orderNumberSetting("琛ョ墖"); + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + List<PatchLog> patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class); + if (!patchLoglist.isEmpty()){ + for (PatchLog patchLog : patchLoglist) { + //娣诲姞杩斿伐璁板綍锛屼慨鏀规鐮存槑缁嗘暟閲� + patchMapper.insertReplenish(patchLog,oddNumber); + patchMapper.updateDamageDetails(patchLog); + patchMapper.updateReportingWorkDetail(patchLog.getReportingWorkId(), Integer.valueOf(patchLog.getOrderSort()),patchLog.getTechnologyNumber()); + } + } + + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); + //灏嗗紓甯镐紶鍏ユ暟鎹簱 + SysError sysError = new SysError(); + sysError.setError(e.toString()); + sysError.setFunc("saveOrder"); + sysErrorService.insert(sysError); + saveState = false; + + } + + //淇濆瓨鏃ュ織 + Log log = new Log(); + log.setContent(object.toString()); + log.setFunction("saveReplenish琛ョ墖鏂板"); + log.setOperatorId((String) object.get("userId")); + log.setOperator((String) object.get("userName")); + logService.saveLog(log); + + return saveState; + + } + + public Boolean updateReplenish(Map<String,Object> object) { + boolean saveState = true; + Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); + try { + String userName = ""; + String userId = ""; + if (object.get("userName") != null) { + userName = object.get("userName").toString(); + } + if (object.get("userId") != null) { + userId = object.get("userId").toString(); + } + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + List<PatchLog> patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class); + if (!patchLoglist.isEmpty()){ + for (PatchLog patchLog : patchLoglist) { + PatchLog patchLog1=patchMapper.selectOne(new QueryWrapper<PatchLog>().eq("id",patchLog.getId())); + //鍒ゆ柇鏄惁宸茬粡瀹℃牳 + if(patchLog1.getReviewStatus()==0){ + ReportingWork reportingWork = reportingWorkMapper + .selectOne(new QueryWrapper<ReportingWork>().eq("reporting_work_id",patchLog.getReportingWorkId())); + //淇敼灏忕墖娴佺▼鍗℃暟閲� + patchMapper.updateOrderProcessDetail(patchLog,reportingWork); + //瀹℃牳 + patchMapper.updateReplenish(patchLog,userName); + }else{ + saveState = false; + } + + Log log = new Log(); + log.setContent(object.toString()); + log.setFunction("updateReplenish琛ョ墖瀹℃牳"); + log.setOperatorId((String) object.get("userId")); + log.setOperator((String) object.get("userName")); + logService.saveLog(log); + } + } + + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); + //灏嗗紓甯镐紶鍏ユ暟鎹簱 + SysError sysError = new SysError(); + sysError.setError(e.toString()); + sysError.setFunc("updateReplenish"); + sysErrorService.insert(sysError); + saveState = false; + + } + + return saveState; + + } + + public String orderNumberSetting(String type) { + //鏍规嵁绫诲瀷鑷姩鐢熸垚涓嶅悓鐨勬搷浣滃崟鍙� + String alias=""; + if(Objects.equals(type, "琛ョ墖")){ + alias="BP"; + } + //鏌ヨ褰撳ぉ鏈�鏂扮殑缂栧彿 + String str=patchMapper.getMaximum(); + if (str == null){ + str="00"; + } + String maximum = str.substring(str.length() - 2); + int lastTwoInteger = Integer.parseInt(maximum); + //璁剧疆涓や綅涓嶅琛�0 + String formattedNumber = String.format("%02d", lastTwoInteger+1); + //鏍煎紡鍖栧綋鍓嶆棩鏈� + Date currentDate = new Date(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyMMdd"); + String formattedDate = dateFormat.format(currentDate); + String oddNumbers = alias+formattedDate+formattedNumber; + return oddNumbers; + } + + public Object selectPrintSv(java.sql.Date selectTime1, java.sql.Date selectTime2, FlowCard flowCard) { + Map<String, Object> map = new HashMap<>(); + map.put("data", flowCardMapper.selectReplenishPrintMp(selectTime1,selectTime2,flowCard)); + map.put("type", flowCardMapper.selectType()); + return map; + } + + public Map<String, Object> getSelectPrintCustomLabelSv(String type, Integer lableType, Map<String, Object> object) { + Map<String, Object> map = new HashMap<>(); + List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//鏈�缁堢粨鏋� + List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); + if (!flowCardList.isEmpty()) { + for (FlowCard flowCard : flowCardList) { + if (lableType != 2){//鎴愬搧鏍囩 + Map<String, Object> itemmap = new HashMap<>(); + itemmap.put("data", flowCardMapper.getRepairPrintCustomData(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getReportingWorkId(),flowCard.getOrderNumber())); + list.add(itemmap); + } + else{//灏忕墖鏍囩 + Map<String, Object> itemmap = new HashMap<>(); + itemmap.put("data", flowCardMapper.getRepairPrintCustomDataSemi(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getReportingWorkId(),flowCard.getOrderNumber())); + list.add(itemmap); + } + + + + } + } + map.put("data", list); + map.put("title", flowCardMapper.getPrintTitle(type)); + return map; + } + + public Boolean deleteReplenishSv(Map<String, Object> object) { + boolean saveState = true; + Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); + try { + String userName = ""; + String userId = ""; + if (object.get("userName") != null) { + userName = object.get("userName").toString(); + } + if (object.get("userId") != null) { + userId = object.get("userId").toString(); + } + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + List<PatchLog> patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class); + if (!patchLoglist.isEmpty()){ + for (PatchLog patchLog : patchLoglist) { + PatchLog patchLog1=patchMapper.selectOne(new QueryWrapper<PatchLog>().eq("id",patchLog.getId())); + //鍒ゆ柇鏄惁宸茬粡瀹℃牳 + if(patchLog1.getReviewStatus()==0){ + //鍒犻櫎琛ョ墖琛ㄥ搴旇ˉ鐗噄d鏁版嵁 + patchMapper.deleteReplenishMp(patchLog1.getId()); + //鍒犻櫎娆$牬鏄庣粏琛� + patchMapper.updatePatchDdMp(patchLog1.getReportingWorkId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber(),patchLog1.getPatchNum(),patchLog1.getPatchReason()); + //淇敼鎶ュ伐鏄庣粏琛ㄧ姸鎬� + patchMapper.updatePatchBgMp(patchLog1.getReportingWorkId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber()); + //淇敼鎶ュ伐涓昏〃娆$牬鏁伴噺 + reportingWorkMapper.updateRWPatchNum(patchLog1.getReportingWorkId(),patchLog1.getPatchNum()); + //淇敼鎶ュ伐鍓〃娆$牬鏁伴噺 + reportingWorkMapper.updateRWDPatchNum(patchLog1.getReportingWorkId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber(),patchLog1.getPatchNum()); + //鏇存柊鎶ュ伐娴佺▼琛ㄦ暟鎹� + reportingWorkMapper.updateReplenishWorkProcess(patchLog1.getProcessId(),patchLog1.getOrderSort(),patchLog1.getTechnologyNumber(),patchLog1.getPatchNum(),patchLog1.getPatchProcesses()); + } + else{ + saveState = false; + } + } + } + + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); + //灏嗗紓甯镐紶鍏ユ暟鎹簱 + SysError sysError = new SysError(); + sysError.setError(e.toString()); + sysError.setFunc("deleteReplenishSv"); + sysErrorService.insert(sysError); + saveState = false; + + } + + return saveState; + } + + public Boolean updateCancelReviewSv(Map<String, Object> object) { + boolean saveState = true; + Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); + //try { + String userName = ""; + String userId = ""; + if (object.get("userName") != null) { + userName = object.get("userName").toString(); + } + if (object.get("userId") != null) { + userId = object.get("userId").toString(); + } + //鑾峰彇瀵硅薄闆嗗悎寰幆杩涜鏂板淇敼 + List<PatchLog> patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class); + if (!patchLoglist.isEmpty()){ + for (PatchLog patchLog : patchLoglist) { + //鏌ヨ鏄惁宸茬敓鎴愬伐绋嬪彿 + Integer projectCount = patchMapper.selectProjectCount(patchLog.getProcessId(),patchLog.getPatchId(),patchLog.getTechnologyNumber()); + //鏌ヨ娴佺▼鍗″伐鑹烘祦绋� + String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(patchLog.getProcessId(), String.valueOf(patchLog.getTechnologyNumber())); + if (projectCount == 0){ + if (technologicalProcess!=null || !technologicalProcess.equals("")) { + String[] processList = technologicalProcess.split("->"); + //鑾峰彇宸ヨ壓娴佺▼绗竴涓伐搴� + String interceptProcess = processList[0]; + Integer firstStep=reportingWorkMapper.getFirstStep(patchLog.getProcessId(),patchLog.getOrderSort(),patchLog.getTechnologyNumber(),interceptProcess); + if (firstStep>=patchLog.getPatchNum()){ + ReportingWork reportingWork = reportingWorkMapper + .selectOne(new QueryWrapper<ReportingWork>().eq("reporting_work_id",patchLog.getReportingWorkId())); + //淇敼灏忕墖娴佺▼鍗℃暟閲� + patchMapper.updateOrderProcessDetailCancel(patchLog,reportingWork); + //瀹℃牳 + patchMapper.updateReplenishCancel(patchLog); + } + else { + saveState = false; + } + }else{ + saveState = false; + } + + Log log = new Log(); + log.setContent(object.toString()); + log.setFunction("updateCancelReviewSv琛ョ墖鍙嶅"); + log.setOperatorId((String) object.get("userId")); + log.setOperator((String) object.get("userName")); + logService.saveLog(log); + } else { + saveState = false; + } + + } + } + + return saveState; + } +} + -- Gitblit v1.8.0