| | |
| | | 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 com.example.erp.entity.userInfo.SysError; |
| | | import com.example.erp.mapper.pp.GlassOptimizeMapper; |
| | | import com.example.erp.service.userInfo.SysErrorService; |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | 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"); |
| | | |
| | | Map<String, Object> glassInfo = glassOptimizeMapper.getGlassInfo(projectId); |
| | | |
| | | 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(); |
| | | // 修改isRemain判断逻辑,支持数字0/1和字符串"0"/"1" |
| | | boolean isRemain = false; |
| | | if (map.containsKey("isRemain")) { |
| | | Object isRemainObj = map.get("isRemain"); |
| | | if (isRemainObj != null) { |
| | | if (isRemainObj instanceof Number) { |
| | | // 数字类型: 1表示true,0表示false |
| | | isRemain = ((Number) isRemainObj).intValue() == 1; |
| | | } else { |
| | | // 字符串类型: "1"表示true,"0"表示false |
| | | isRemain = "1".equals(isRemainObj.toString()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (isRemain) { |
| | | System.out.println( map); |
| | | if (glassInfo != null) { |
| | | String glassType = (String) glassInfo.get("glass_type"); |
| | | String glassThickness = (String) glassInfo.get("glass_thickness"); |
| | | // 余料存入optimizeoffcut |
| | | glassOptimizeMapper.addOptimizeOffcut(map, projectId, glassType, glassThickness); |
| | | } |
| | | iterator.remove(); // 从原列表中移除 |
| | | }else { |
| | | // 处理isRotate字段转换 (现在是0/1) |
| | | if (map.containsKey("isRotate")) { |
| | | Object isRotateObj = map.get("isRotate"); |
| | | if (isRotateObj != null) { |
| | | if (isRotateObj instanceof Number) { |
| | | // 直接使用数字值 |
| | | map.put("isRotate", ((Number) isRotateObj).intValue()); |
| | | } else { |
| | | // 字符串形式的"0"/"1" |
| | | String isRotateStr = isRotateObj.toString(); |
| | | if ("1".equals(isRotateStr)) { |
| | | map.put("isRotate", 1); |
| | | } else { |
| | | map.put("isRotate", 0); |
| | | } |
| | | } |
| | | } else { |
| | | map.put("isRotate", 0); // 默认值 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | glassOptimizeMapper.addOptimizeDetail(objectMap2,projectId); |
| | | } |
| | | glassOptimizeMapper.updateProjectOptimizeStateMp(projectId,1); |
| | | return true; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | public Map<String, Object> selectOptimizeResult(String processId) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", glassOptimizeMapper.selectOptimizeResult(processId)); |
| | | map.put("optimizeUse", glassOptimizeMapper.materialStoreOptimizeUse(processId)); |
| | | return map; |
| | | } |
| | | |
| | | //工程信息 |
| | | public Map<String, Object> projectInfoSv(String projectNo) { |
| | | public Map<String, Object> projectInfoSv(String projectNo,String username) { |
| | | 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)){ |
| | | map.put("data", glassOptimizeMapper.analogComputationOptimization(projectNo)); |
| | | map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming()); |
| | | }else{ |
| | | map.put("data", glassOptimizeMapper.analogComputationOptimization(projectNo)); |
| | | map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming()); |
| | | // if(Integer.parseInt(stringObjectMap.get("optimize_state").toString())==1){ |
| | | // map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString())); |
| | | // map.put("data", glassOptimizeMapper.getOptimizeDetail(projectNo)); |
| | | // map.put("project", glassOptimizeMapper.selectProjectCount(projectNo)); |
| | | // map.put("grindingTrimming", null); |
| | | // } else if (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("project", glassOptimizeMapper.selectProjectCount(projectNo)); |
| | | // map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username)); |
| | | // } else{ |
| | | // map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString())); |
| | | // map.put("data", glassOptimizeMapper.firstOptimization(projectNo)); |
| | | // map.put("project", glassOptimizeMapper.selectProjectCount(projectNo)); |
| | | // map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username)); |
| | | // } |
| | | map.put("optimizeState", Integer.parseInt(stringObjectMap.get("optimize_state").toString())); |
| | | map.put("data", glassOptimizeMapper.firstOptimization(projectNo)); |
| | | map.put("project", glassOptimizeMapper.selectProjectCount(projectNo)); |
| | | map.put("grindingTrimming", glassOptimizeMapper.getGrindingTrimming(username)); |
| | | return map; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | public Object optimizeInfoSv(String projectNo, String username) { |
| | | Map<String, Object> stringObjectMap = glassOptimizeMapper.selectProjectCount(projectNo); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | List<Map<String, Object>> dataList = null; |
| | | if (Integer.parseInt(stringObjectMap.get("tempering_state").toString())==1){ |
| | | dataList = glassOptimizeMapper.computeAndOptimization(projectNo); |
| | | } else { |
| | | dataList = glassOptimizeMapper.directOptimization(projectNo); |
| | | } |
| | | |
| | | // 获取磨量配置数据 |
| | | List<Map<String, Object>> grindingTrimmingList = glassOptimizeMapper.getGrindingOptimize(username); |
| | | // 将磨量配置数据拼接到每条主数据后面 |
| | | if (dataList != null && !dataList.isEmpty() && grindingTrimmingList != null && !grindingTrimmingList.isEmpty()) { |
| | | // 获取第一条磨量配置数据(通常只有一条记录) |
| | | Map<String, Object> grindingConfig = grindingTrimmingList.get(0); |
| | | // 将磨量配置添加到每条主数据中 |
| | | for (Map<String, Object> dataItem : dataList) { |
| | | // 将磨量配置的字段添加到每条数据中 |
| | | for (Map.Entry<String, Object> entry : grindingConfig.entrySet()) { |
| | | // 避免覆盖原有字段 |
| | | if (!dataItem.containsKey(entry.getKey())) { |
| | | dataItem.put(entry.getKey(), entry.getValue()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | map.put("data", dataList); |
| | | return map; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | //库存信息 |
| | | public Map<String, Object> materialStoreSv(String thickness, String model, String projectNumber,Integer type) { |
| | | public Map<String, Object> materialStoreSv(String thickness, String model, String projectNumber,Integer type,String username) { |
| | | Map<String, Object> stringObjectMap = glassOptimizeMapper.selectProjectCount(projectNumber); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | 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){ |
| | |
| | | }else{ |
| | | map.put("data", glassOptimizeMapper.materialStoreSurplusMp(thickness,model)); |
| | | } |
| | | map.put("edgeTrimming", glassOptimizeMapper.getEdgeTrimming()); |
| | | }else 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()); |
| | | map.put("edgeTrimming", glassOptimizeMapper.getEdgeTrimming(username)); |
| | | }else{ |
| | | map.put("data", glassOptimizeMapper.materialStoreOptimizeUse(projectNumber)); |
| | | map.put("edgeTrimming", null); |
| | | } |
| | | map.put("state", Integer.parseInt(stringObjectMap.get("state").toString())); |
| | | |
| | | return map; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | //修改排版状态 |
| | | 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); |
| | | } |
| | |
| | | if(projectType.equals("2")){ |
| | | deleteProject(projectId,2); |
| | | } |
| | | |
| | | // 创建一个映射来存储 (processId-technologyNumber) 组合到 rack 编号的映射 |
| | | Map<String, Integer> rackMap = new HashMap<>(); |
| | | int rackCounter = 1; |
| | | |
| | | for (FlowCard flowCard : flowCardList) { |
| | | // 为每个唯一的 processId-technologyNumber 组合分配 rack 编号 |
| | | String key = flowCard.getProcessId() + "-" + flowCard.getTechnologyNumber(); |
| | | if (!rackMap.containsKey(key)) { |
| | | rackMap.put(key, rackCounter++); |
| | | } |
| | | int rackValue = rackMap.get(key); |
| | | |
| | | if(flowCard.getPatchState().equals(0)){ |
| | | state1=1; |
| | | //给流程卡表添加对应的工程号 |
| | | Boolean a=glassOptimizeMapper.updateFlowCardProject(flowCard.getProcessId(),flowCard.getTechnologyNumber(),projectId); |
| | | Boolean a = glassOptimizeMapper.updateFlowCardProject(flowCard.getProcessId(),flowCard.getTechnologyNumber(),projectId); |
| | | // 更新流程卡的rack字段 |
| | | glassOptimizeMapper.updateFlowCardRack(flowCard.getProcessId(), flowCard.getTechnologyNumber(), rackValue); |
| | | area = glassOptimizeMapper.getSelectArea(flowCard.getProcessId(),flowCard.getTechnologyNumber()).doubleValue(); |
| | | sumArea = sumArea.add(BigDecimal.valueOf(area)); |
| | | sumQuantity +=flowCard.getQuantity(); |
| | |
| | | |
| | | } |
| | | |
| | | public Map<String, Object> getConfiguration(String type) { |
| | | public Map<String, Object> getConfiguration(String type,String username) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | if(type.equals("钢化")){ |
| | | map.put("data", glassOptimizeMapper.getTemperedConfiguration()); |
| | | map.put("data", glassOptimizeMapper.getTemperedConfiguration(username)); |
| | | }else if(type.equals("磨量")){ |
| | | map.put("data", glassOptimizeMapper.getGrindingTrimming()); |
| | | map.put("data", glassOptimizeMapper.getGrindingTrimming(username)); |
| | | }else if(type.equals("修边")){ |
| | | map.put("data", glassOptimizeMapper.getEdgeTrimming()); |
| | | map.put("data", glassOptimizeMapper.getEdgeTrimming(username)); |
| | | } |
| | | |
| | | return map; |
| | | } |
| | | |
| | | public Boolean saveConfiguration(Map<String,Object> object,String type) { |
| | | public Boolean saveConfiguration(Map<String,Object> object,String type,String username) { |
| | | String json = ""; |
| | | if (object.get("json") != null) { |
| | | json = object.get("json").toString(); |
| | | } |
| | | if(type.equals("钢化")){ |
| | | glassOptimizeMapper.updateOptimizeConfig(json,1); |
| | | glassOptimizeMapper.updateOptimizeConfig(json,1,username); |
| | | } else if (type.equals("修边")) { |
| | | glassOptimizeMapper.updateOptimizeConfig(json,5); |
| | | glassOptimizeMapper.updateOptimizeConfig(json,5,username); |
| | | }else if (type.equals("磨量")) { |
| | | glassOptimizeMapper.updateOptimizeConfig(json,4); |
| | | glassOptimizeMapper.updateOptimizeConfig(json,4,username); |
| | | } |
| | | return true; |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | public Map<String, Object> getProjectByProjectNoSv(String projectNo) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", glassOptimizeMapper.getProjectByProjectNoSv(projectNo)); |
| | | return map; |
| | | } |
| | | |
| | | |
| | | public Boolean issuingProjects(String projectNo) throws JsonProcessingException { |
| | | boolean saveState=false; |
| | | try { |
| | | // 1. 创建URL对象 |
| | | URL url = new URL("http://localhost:88/api/loadGlass/engineering/importEngineer"); |
| | | |
| | | // 2. 打开连接 |
| | | HttpURLConnection conn = (HttpURLConnection) url.openConnection(); |
| | | conn.setRequestMethod("POST"); |
| | | conn.setRequestProperty("Content-Type", "application/json"); |
| | | conn.setRequestProperty("Accept", "application/json"); |
| | | conn.setDoOutput(true); |
| | | |
| | | // 3. 准备请求体 |
| | | Map<String, Object> optimizeProject=glassOptimizeMapper.selectOptimizeProject(projectNo); |
| | | optimizeProject.put("engineeringRawQueueList", glassOptimizeMapper.selectOptimizeLayout(projectNo)); |
| | | optimizeProject.put("glassInfolList", glassOptimizeMapper.selectOptimizeDetail(projectNo)); |
| | | optimizeProject.put("flowCardInfoList", glassOptimizeMapper.selectFlowCardInfoList(projectNo)); |
| | | ObjectMapper mapper = new ObjectMapper(); |
| | | mapper.registerModule(new JavaTimeModule()); |
| | | String jsonInputString = mapper.writeValueAsString(optimizeProject); |
| | | |
| | | //发送请求 |
| | | try(OutputStream os = conn.getOutputStream()) { |
| | | byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8); |
| | | os.write(input, 0, input.length); |
| | | } |
| | | |
| | | // 获取响应 |
| | | try(BufferedReader br = new BufferedReader( |
| | | new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8))) { |
| | | StringBuilder response = new StringBuilder(); |
| | | String responseLine; |
| | | while ((responseLine = br.readLine()) != null) { |
| | | response.append(responseLine.trim()); |
| | | } |
| | | System.out.println("Response: " + response.toString()); |
| | | JSONObject obj = JSONObject.parseObject(response.toString()); |
| | | if(obj.get("code").equals(200)&&obj.get("data").equals(true)){ |
| | | saveState=true; |
| | | } |
| | | |
| | | } |
| | | |
| | | //关闭连接 |
| | | conn.disconnect(); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | saveState= false; |
| | | } |
| | | return saveState; |
| | | } |
| | | |
| | | } |