guoyujie
2025-04-08 a4259cfa901bb4cc79f6e091f941792c05310e85
north-glass-erp/src/main/java/com/example/erp/service/pp/GlassOptimizeService.java
@@ -14,6 +14,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.math.BigDecimal;
import java.sql.Date;
import java.util.HashMap;
import java.util.List;
@@ -149,7 +150,14 @@
    //工程查询流程卡
    public Map<String, Object> getFlowCardList(String optionVal, Integer radio) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", glassOptimizeMapper.getFlowCardListMp(optionVal, radio));
        if(radio==1){
            map.put("data", glassOptimizeMapper.getFlowCardListWhole(optionVal));
        }else if(radio==2){
            map.put("data", glassOptimizeMapper.getFlowCardListNormal(optionVal));
        }else{
            map.put("data", glassOptimizeMapper.getFlowCardListPatch(optionVal));
        }
        return map;
    }
@@ -162,9 +170,33 @@
    }
    //修改排版状态
    public Boolean updateProjectState(String projectNumber, Integer state) {
    public Boolean updateProjectState(String projectNumber, Integer state, Integer code) {
        if (!projectNumber.isEmpty()) {
            glassOptimizeMapper.updateProjectStateMp(projectNumber, state);
            //撤销模拟计算
            if(code==1){
                glassOptimizeMapper.deleteOptimizeHeatDetail(projectNumber);
                glassOptimizeMapper.deleteOptimizeHeatLayout(projectNumber);
                glassOptimizeMapper.updateProjectStateMp(projectNumber, state);
            }
            //撤销优化排版
            else if(code==2){
                glassOptimizeMapper.deleteOptimizeHeatDetail(projectNumber);
                glassOptimizeMapper.deleteOptimizeHeatDetail(projectNumber);
                glassOptimizeMapper.deleteOptimizeHeatLayout(projectNumber);
                glassOptimizeMapper.updateProjectStateMp(projectNumber, state);
            }
            //允许生产
            else if(code==3){
                glassOptimizeMapper.updateProjectStateMp(projectNumber, state);
            }
            //生产不可见
            else if(code==4){
                glassOptimizeMapper.updateProjectStateMp(projectNumber, state);
            }
            //初始化工程
            else if(code==5){
                glassOptimizeMapper.updateProjectStateMp(projectNumber, state);
            }
            return true;
        } else {
            return false;
@@ -172,10 +204,22 @@
    }
    //删除工程
    public Map<String, Object> deleteProject(String projectNumber) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", glassOptimizeMapper.deleteProjectMp(projectNumber));
        return map;
    public boolean deleteProject(String projectNumber) {
        Map<String, Object> stringObjectMap = glassOptimizeMapper.selectProjectCount(projectNumber);
        if(stringObjectMap.get("state").equals(10)){
            glassOptimizeMapper.deleteOptimizeHeatDetail(projectNumber);
            glassOptimizeMapper.deleteOptimizeHeatLayout(projectNumber);
        }else if(stringObjectMap.get("state").equals(20)){
            glassOptimizeMapper.deleteOptimizeDetail(projectNumber);
            glassOptimizeMapper.deleteOptimizeHeatDetail(projectNumber);
            glassOptimizeMapper.deleteOptimizeHeatLayout(projectNumber);
        }
        List<FlowCard> flowCardList =glassOptimizeMapper.getFlowCardList(projectNumber);
        for (FlowCard flowCard:flowCardList){
            glassOptimizeMapper.updateFlowCardProjectReturn(flowCard.getProcessId(),flowCard.getTechnologyNumber(),projectNumber);
        }
        glassOptimizeMapper.deleteProjectMp(projectNumber);
        return true;
    }
@@ -189,6 +233,7 @@
    public Map<String, Object>selectProjectComputeSv(String projectNumber) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", glassOptimizeMapper.selectProjectComputeMp(projectNumber));
        //map.put("project", glassOptimizeMapper.selectProjectCount(projectNumber));
        return map;
    }
@@ -226,24 +271,28 @@
        if ("null".equals(projectNmae)) {
            projectNmae = "";
        }
        Double sumArea = (double) 0;
        Double area = (double) 0;
        BigDecimal sumArea = new BigDecimal(0);
        double area = 0;
        Integer sumQuantity = 0;
        Integer type = 1;
        StringBuilder processId= new StringBuilder();
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("projectdetail")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                //给流程卡表添加对应的工程号
                glassOptimizeMapper.updateFlowCardProject(flowCard.getProcessId(),flowCard.getTechnologyNumber(),projectId);
                area = glassOptimizeMapper.getSelectArea(flowCard.getProcessId(),flowCard.getTechnologyNumber());
                sumArea += area;
                area = glassOptimizeMapper.getSelectArea(flowCard.getProcessId(),flowCard.getTechnologyNumber()).doubleValue();
                sumArea = sumArea.add(BigDecimal.valueOf(area));
                sumQuantity +=flowCard.getQuantity();
                processId.append(flowCard.getProcessId()).append("-").append(flowCard.getTechnologyNumber()).append(";");
            }
            int index = optionVal.indexOf("mm");
            // 获取 "mm" 前面的部分
            String glass_thickness = optionVal.substring(0, index);
            // 获取 "mm" 后面的部分
            String glass_type = optionVal.substring(index + 2);
            glassOptimizeMapper.addProjectMp(projectId,projectNmae,glass_thickness,glass_type,sumQuantity,sumArea,userName);
            glassOptimizeMapper.addProjectMp(projectId,projectNmae,glass_thickness,glass_type,sumQuantity,sumArea.doubleValue(),userName,
                    flowCardList.size(), String.valueOf(processId),type);
            return true;
        }
        else {
@@ -251,4 +300,17 @@
        }
    }
    public Map<String, Object> getConfiguration(String type) {
        Map<String, Object> map = new HashMap<>();
        if(type.equals("钢化")){
            map.put("data", glassOptimizeMapper.getTemperedConfiguration());
        }else if(type.equals("磨量")){
            map.put("data", glassOptimizeMapper.getTemperedConfiguration());
        }else if(type.equals("修边")){
            map.put("data", glassOptimizeMapper.getTemperedConfiguration());
        }
        return map;
    }
}