package com.example.erp.service.pp; import com.example.erp.entity.pp.ReportingWork; import com.example.erp.entity.sd.OrderProcessDetail; import com.example.erp.mapper.pp.BasicDateProduceMapper; import com.example.erp.mapper.pp.ReportingWorkMapper; import com.baomidou.dynamic.datasource.annotation.DS; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; @Service @DS("pp") public class ReportingWorkService { @Autowired ReportingWorkMapper reportingWorkMapper; BasicDateProduceMapper basicDateProduceMapper; public Map AddSelectLastWorkSv(String processIdStr, String technologyStr, String process) { Map 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); //查询当前工序的表头数据 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)); //查询本工序报工需要哪几层,上工序是什么 String obtainTechnology = reportingWorkMapper.SelectWorkTechnologyMp(processIdStr); //判断本工序是不是第一道工序 if (interceptProcess.equals(process)) { //是第一道工序,查询流程卡数据 map.put("Detail", reportingWorkMapper.SelectTechnologicalNumMp(processIdStr,technologyStr)); } else { //不是第一道工序,查询报工数据 map.put("Detail", reportingWorkMapper.SelectReworlDetailMp(processIdStr,technologyStr,previousProcess)); } // 第一道工序(流程卡数+补片数量-完工数-次破数-返工未完成数-禁用数量) // 后续工序(上工序报工数-完工数-次破数-返工未完成数) return map; } public Map SelectProcessSv() { Map map = new HashMap<>(); map.put("process", reportingWorkMapper.SelectProcessMp()); return map; } }