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.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> getSelectReplenish(Integer pageNum, Integer pageSize) { Integer offset = (pageNum - 1) * pageSize; return patchMapper.getSelectReplenish(offset,pageSize); } public Map SelectReplenish(Integer pageNum, Integer pageSize,List selectDate,PatchLog patchLog) { 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 map = new HashMap<>(); map.put("data",patchMapper.SelectReplenish(offset,pageSize,startDate,endDate,patchLog)); map.put("total",patchMapper.SelectReplenishPageTotal(offset,pageSize,startDate,endDate,patchLog)); List list = new ArrayList<>(); list.add(startDate); list.add(endDate); map.put("selectDate",list); return map; } public Boolean saveReplenish(Map 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 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 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 patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class); if (!patchLoglist.isEmpty()){ for (PatchLog patchLog : patchLoglist) { PatchLog patchLog1=patchMapper.selectOne(new QueryWrapper().eq("id",patchLog.getId())); //判断是否已经审核 if(patchLog1.getReviewStatus()==0){ ReportingWork reportingWork = reportingWorkMapper .selectOne(new QueryWrapper().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"; } //查询当天的最大数量 Integer maximum=patchMapper.getMaximum(); //设置两位不够补0 String formattedNumber = String.format("%02d", maximum+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 map = new HashMap<>(); map.put("data", flowCardMapper.selectReplenishPrintMp(selectTime1,selectTime2,flowCard)); map.put("type", flowCardMapper.selectType()); return map; } public Map getSelectPrintCustomLabelSv(String type, Integer lableType, Map object) { Map map = new HashMap<>(); List> list = new ArrayList>();//最终结果 List flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); if (!flowCardList.isEmpty()) { for (FlowCard flowCard : flowCardList) { if (lableType != 2){ Map itemmap = new HashMap<>(); itemmap.put("data", flowCardMapper.getRepairPrintCustomData(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getReportingWorkId())); list.add(itemmap); } else{ Map itemmap = new HashMap<>(); itemmap.put("data", flowCardMapper.getRepairPrintCustomDataSemi(flowCard.getProcessId(),flowCard.getTechnologyNumber(),flowCard.getReportingWorkId())); list.add(itemmap); } } } map.put("data", list); map.put("title", flowCardMapper.getPrintTitle(type)); return map; } public Boolean deleteReplenishSv(Map 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 patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class); if (!patchLoglist.isEmpty()){ for (PatchLog patchLog : patchLoglist) { PatchLog patchLog1=patchMapper.selectOne(new QueryWrapper().eq("id",patchLog.getId())); //判断是否已经审核 if(patchLog1.getReviewStatus()==0){ //删除补片表对应补片id数据 patchMapper.deleteReplenishMp(patchLog.getPatchId()); //修改次破明细表补片数量和状态 patchMapper.updatePatchDdMp(patchLog.getReportingWorkId(),patchLog.getOrderSort(),patchLog.getTechnologyNumber(),patchLog.getPatchNum()); //修改报工明细表状态 patchMapper.updatePatchBgMp(patchLog.getReportingWorkId(),patchLog.getOrderSort(),patchLog.getTechnologyNumber()); } else{ saveState = false; } } } } catch (Exception e) { TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); //将异常传入数据库 SysError sysError = new SysError(); sysError.setError(e.toString()); sysError.setFunc("saveOrder"); sysErrorService.insert(sysError); saveState = false; } return saveState; } public Boolean updateCancelReviewSv(Map 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 patchLoglist = JSONArray.parseArray(JSONObject.toJSONString(object.get("patchLog")), PatchLog.class); if (!patchLoglist.isEmpty()){ for (PatchLog patchLog : patchLoglist) { //查询流程卡工艺流程 String technologicalProcess = reportingWorkMapper.SelectTechnologicalProcess(patchLog.getProcessId(), String.valueOf(patchLog.getTechnologyNumber())); 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().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); } } // } catch (Exception e) { // TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); // //将异常传入数据库 // SysError sysError = new SysError(); // sysError.setError(e.toString()); // sysError.setFunc("updateCancelReviewSv"); // sysErrorService.insert(sysError); // saveState = false; // // } return saveState; } }