| | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.example.erp.common.RabbitMQUtil; |
| | | import com.example.erp.entity.pp.*; |
| | | import com.example.erp.entity.sd.Delivery; |
| | |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.sql.Date; |
| | | import java.text.DecimalFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | import java.util.concurrent.TimeoutException; |
| | | import java.util.stream.Collectors; |
| | |
| | | try { |
| | | Map<String, Object> objectMap = (Map<String, Object>) object.get("inputValues"); |
| | | String projectNo = objectMap.get("project_no").toString(); |
| | | String userName = object.get("userName").toString(); |
| | | Map<String, Object> optimizeProjectMap = glassOptimizeMapper.selectProjectCount(projectNo); |
| | | glassOptimizeMapper.addSimulation(object); |
| | | glassOptimizeMapper.addratioResult(object); |
| | | glassOptimizeMapper.addratioProjectResult(object); |
| | | |
| | | if(Integer.valueOf(object.get("state").toString())==3){ |
| | | List<Map<String, Object>> flowCardList = glassOptimizeMapper.selectProjectComputeMp(projectNo); |
| | | int index=0; |
| | | for (Map<String, Object> flowCard:flowCardList){ |
| | | List<Map<String, Object>> glassDetailList=new ArrayList<>(); |
| | | if(Integer.valueOf(flowCard.get("patch_state").toString())==0){ |
| | | glassDetailList = glassOptimizeMapper.selectComputeDetailMp(flowCard.get("processId").toString(), |
| | | Integer.valueOf(flowCard.get("technologyNumber").toString())); |
| | | |
| | | }else{ |
| | | glassDetailList = glassOptimizeMapper.selectComputeDetailMpPatchState(flowCard.get("processId").toString(), |
| | | Integer.valueOf(flowCard.get("technologyNumber").toString())); |
| | | } |
| | | for (Map<String, Object> glassDetail:glassDetailList){ |
| | | for(int i=0;i<Integer.valueOf(glassDetail.get("quantity").toString());i++){ |
| | | index+=1; |
| | | glassOptimizeMapper.insertOptimizeHeatDetail( |
| | | projectNo,flowCard.get("processId").toString(), |
| | | Integer.valueOf(flowCard.get("technologyNumber").toString()), |
| | | Integer.valueOf(flowCard.get("patch_state").toString()), |
| | | Integer.valueOf(glassDetail.get("order_number").toString()), |
| | | Double.valueOf(glassDetail.get("width").toString()), |
| | | Double.valueOf(glassDetail.get("height").toString()),index,userName |
| | | ); |
| | | |
| | | } |
| | | } |
| | | glassOptimizeMapper.updateProjectTemperingStateMp(projectNo,1); |
| | | } |
| | | }else{ |
| | | List<Map<String, Object>> objectList = (List<Map<String, Object>>) object.get("projectdetail"); |
| | | for (Map<String, Object> objectMap1:objectList){ |
| | | Integer count = glassOptimizeMapper.selectPatchLogState(objectMap1.get("process_id").toString(), |
| | | Integer.valueOf(objectMap1.get("layers_number").toString()),Integer.valueOf(objectMap1.get("order_number").toString()),projectNo); |
| | | if(count>0){ |
| | | objectMap1.put("patchState",1); |
| | | }else { |
| | | objectMap1.put("patchState",0); |
| | | } |
| | | } |
| | | glassOptimizeMapper.addSimulation(object); |
| | | glassOptimizeMapper.addratioResult(object); |
| | | glassOptimizeMapper.addratioProjectResult(object); |
| | | |
| | | |
| | | if(Integer.valueOf(object.get("state").toString())==2){ |
| | | List<Map<String, Object>> flowCardList = glassOptimizeMapper.selectProjectComputeMp(projectNo); |
| | | List<String> rackinfosList = (List<String>) object.get("rackinfos"); |
| | | Iterator<Map<String, Object>> iterator = flowCardList.iterator(); |
| | | while (iterator.hasNext()) { |
| | | Map<String, Object> map = iterator.next(); |
| | | for(String rackinfos:rackinfosList){ |
| | | String processId=rackinfos.substring(0,14); |
| | | String processId1=map.get("processId").toString(); |
| | | Integer technologyNumber= Integer.valueOf(rackinfos.substring(15)); |
| | | Integer technologyNumber1= Integer.valueOf(map.get("technologyNumber").toString()); |
| | | if(map.get("processId").toString().equals(processId) && Integer.valueOf(map.get("technologyNumber").toString())==technologyNumber){ |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | } |
| | | |
| | | int index=0; |
| | | for (Map<String, Object> flowCard:flowCardList){ |
| | | List<Map<String, Object>> glassDetailList=new ArrayList<>(); |
| | | if(flowCard.get("patch_state").toString()=="0"){ |
| | | glassDetailList = glassOptimizeMapper.selectComputeDetailMp(flowCard.get("processId").toString(), |
| | | Integer.valueOf(flowCard.get("technologyNumber").toString())); |
| | | |
| | | }else{ |
| | | glassDetailList = glassOptimizeMapper.selectComputeDetailMp(flowCard.get("processId").toString(), |
| | | Integer.valueOf(flowCard.get("technologyNumber").toString())); |
| | | } |
| | | for (Map<String, Object> glassDetail:glassDetailList){ |
| | | for(int i=0;i<Integer.valueOf(glassDetail.get("quantity").toString());i++){ |
| | | index+=1; |
| | | glassOptimizeMapper.insertOptimizeHeatDetail( |
| | | projectNo,flowCard.get("processId").toString(), |
| | | Integer.valueOf(flowCard.get("technologyNumber").toString()), |
| | | Integer.valueOf(flowCard.get("patch_state").toString()), |
| | | Integer.valueOf(glassDetail.get("order_number").toString()), |
| | | Double.valueOf(glassDetail.get("width").toString()), |
| | | Double.valueOf(glassDetail.get("height").toString()),index,userName |
| | | ); |
| | | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | if(Integer.valueOf(optimizeProjectMap.get("optimize_state").toString())==1){ |
| | | List<OptimizeHeatDetail> optimizeHeatDetail = glassOptimizeMapper.selectOptimizeHeatDetail(projectNo); |
| | | for (OptimizeHeatDetail projectdetail:optimizeHeatDetail){ |
| | | OptimizeDetail optimizeDetail=glassOptimizeMapper.selectOptimizeDetailById(projectNo,projectdetail.getProcessId(), |
| | | projectdetail.getOrderSort(),projectdetail.getLayer()); |
| | | glassOptimizeMapper.updateOptimizeDetail(optimizeDetail.getId(),projectdetail.getLayoutId(),projectdetail.getSort()); |
| | | } |
| | | } |
| | | |
| | | return true; |
| | | } catch (Exception e) { |
| | |
| | | |
| | | |
| | | //优化设置保存 |
| | | public Boolean optimizeParmsSave(Map<String, Object> object) { |
| | | public Boolean optimizeParmsSave(Map<String, Object> object,String username) { |
| | | try { |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | String jsonString = mapper.writeValueAsString(object); |
| | | |
| | | glassOptimizeMapper.optimizeParmsSave(jsonString); |
| | | glassOptimizeMapper.optimizeParmsSave(jsonString,username); |
| | | return true; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | |
| | | |
| | | //优化调整结果保存 |
| | | public Boolean saveOptimizeResult(Map<String, Object> object) { |
| | | public Boolean saveOptimizeResult(Map<String, Object> object,String projectId) { |
| | | try { |
| | | Map<String, Object> optimalResults = (Map<String, Object>) object.get("optimalResults"); |
| | | List<Map<String, Object>> originalFilm = (List<Map<String, Object>>) object.get("originalFilm"); |
| | | glassOptimizeMapper.addOptimizeUse(originalFilm,projectId,"admin"); |
| | | |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | String jsonString = mapper.writeValueAsString(object); |
| | | glassOptimizeMapper.optimizeResultSave(jsonString); |
| | | String json = mapper.writeValueAsString(optimalResults); |
| | | glassOptimizeMapper.addOptimizeProjectFile(json,projectId,"admin"); |
| | | |
| | | List<Map<String, Object>> objectMapList = (List<Map<String, Object>>) optimalResults.get("layouts"); |
| | | glassOptimizeMapper.addOptimizeLayout(objectMapList,projectId); |
| | | for(Map<String, Object> objectMap:objectMapList){ |
| | | List<Map<String, Object>> objectMap2 = (List<Map<String, Object>>) objectMap.get("glassDetails"); |
| | | //迭代玻璃明细集合删除余料 |
| | | Iterator<Map<String, Object>> iterator = objectMap2.iterator(); |
| | | while (iterator.hasNext()) { |
| | | Map<String, Object> map = iterator.next(); |
| | | if (map.get("isRemain").toString()=="true") { |
| | | iterator.remove(); |
| | | } |
| | | } |
| | | |
| | | glassOptimizeMapper.addOptimizeDetail(objectMap2,projectId); |
| | | } |
| | | glassOptimizeMapper.updateProjectOptimizeStateMp(projectId,1); |
| | | return true; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | public Map<String, Object> projectInfoSv(String projectNo) { |
| | | Map<String, Object> stringObjectMap = glassOptimizeMapper.selectProjectCount(projectNo); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | if(Integer.parseInt(stringObjectMap.get("state").toString())<10){ |
| | | map.put("data", glassOptimizeMapper.firstOptimization(projectNo)); |
| | | map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming()); |
| | | }else if(stringObjectMap.get("state").equals(10)){ |
| | | if(Integer.parseInt(stringObjectMap.get("optimize_state").toString())==1||Integer.parseInt(stringObjectMap.get("tempering_state").toString())==1){ |
| | | map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString())); |
| | | map.put("data", glassOptimizeMapper.analogComputationOptimization(projectNo)); |
| | | map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming()); |
| | | }else{ |
| | | map.put("data", glassOptimizeMapper.analogComputationOptimization(projectNo)); |
| | | map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString())); |
| | | map.put("data", glassOptimizeMapper.firstOptimization(projectNo)); |
| | | map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming()); |
| | | } |
| | | return map; |
| | |
| | | public Map<String, Object> materialStoreSv(String thickness, String model, String projectNumber,Integer type) { |
| | | Map<String, Object> stringObjectMap = glassOptimizeMapper.selectProjectCount(projectNumber); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | if(Integer.parseInt(stringObjectMap.get("state").toString())<10){ |
| | | if(type==1){ |
| | | map.put("data", glassOptimizeMapper.materialStoreMp(thickness,model)); |
| | | }else if(type==2){ |
| | | map.put("data", glassOptimizeMapper.surplusMaterialsMp(thickness,model)); |
| | | }else{ |
| | | map.put("data", glassOptimizeMapper.materialStoreSurplusMp(thickness,model)); |
| | | } |
| | | map.put("edgeTrimming", glassOptimizeMapper.getEdgeTrimming()); |
| | | }else if(Integer.parseInt(stringObjectMap.get("state").toString())==10){ |
| | | if(Integer.parseInt(stringObjectMap.get("optimize_state").toString())==0){ |
| | | if(type==1){ |
| | | map.put("data", glassOptimizeMapper.materialStoreMp(thickness,model)); |
| | | }else if(type==2){ |
| | |
| | | } |
| | | |
| | | //修改排版状态 |
| | | public Boolean updateProjectState(String projectNumber, Integer state, Integer code) { |
| | | public Boolean updateProjectState(String projectNumber, Integer state,Integer states, Integer code) { |
| | | if (!projectNumber.isEmpty()) { |
| | | //撤销模拟计算 |
| | | if(code==1){ |
| | | glassOptimizeMapper.deleteOptimizeHeatDetail(projectNumber); |
| | | glassOptimizeMapper.deleteOptimizeHeatLayout(projectNumber); |
| | | glassOptimizeMapper.updateProjectStateMp(projectNumber, state); |
| | | glassOptimizeMapper.updateProjectTemperingStateMp(projectNumber, states); |
| | | } |
| | | //撤销优化排版 |
| | | else if(code==2){ |
| | | glassOptimizeMapper.deleteOptimizeHeatDetail(projectNumber); |
| | | glassOptimizeMapper.deleteOptimizeHeatDetail(projectNumber); |
| | | glassOptimizeMapper.deleteOptimizeHeatLayout(projectNumber); |
| | | glassOptimizeMapper.updateProjectStateMp(projectNumber, state); |
| | | glassOptimizeMapper.deleteOptimizeDetail(projectNumber); |
| | | glassOptimizeMapper.deleteOptimizeLayout(projectNumber); |
| | | glassOptimizeMapper.deleteOptimizeProjectFile(projectNumber); |
| | | glassOptimizeMapper.updateOptimizeUse(projectNumber); |
| | | glassOptimizeMapper.updateProjectOptimizeStateMp(projectNumber, states); |
| | | } |
| | | //允许生产 |
| | | else if(code==3){ |
| | |
| | | //删除工程 |
| | | public boolean deleteProject(String projectNumber,Integer type) { |
| | | Map<String, Object> stringObjectMap = glassOptimizeMapper.selectProjectCount(projectNumber); |
| | | if(stringObjectMap.get("state").equals(10)){ |
| | | if(stringObjectMap.get("tempering_state").equals(1)){ |
| | | glassOptimizeMapper.deleteOptimizeHeatDetail(projectNumber); |
| | | glassOptimizeMapper.deleteOptimizeHeatLayout(projectNumber); |
| | | }else if(stringObjectMap.get("state").equals(20)){ |
| | | } |
| | | if(stringObjectMap.get("optimize_state").equals(1)){ |
| | | glassOptimizeMapper.deleteOptimizeDetail(projectNumber); |
| | | glassOptimizeMapper.deleteOptimizeLayout(projectNumber); |
| | | glassOptimizeMapper.deleteOptimizeLayout(projectNumber); |
| | | glassOptimizeMapper.updateOptimizeUse(projectNumber); |
| | | glassOptimizeMapper.deleteOptimizeHeatDetail(projectNumber); |
| | | glassOptimizeMapper.deleteOptimizeHeatLayout(projectNumber); |
| | | } |