guoyujie
3 天以前 3d9e0ec1c1e457ed3fd2b334cf4c4dd66c10eead
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -17,6 +17,7 @@
import com.example.erp.mapper.sd.*;
import com.example.erp.service.userInfo.LogService;
import com.example.erp.service.userInfo.SysErrorService;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -32,7 +33,6 @@
import java.io.IOException;
import java.sql.Date;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
@@ -464,6 +464,7 @@
                        }
                    }
                    itemmap.put("processName",processName);
                }
@@ -740,7 +741,11 @@
                    Map<String, Object> itemmap = new HashMap<>();
                    Integer sumQuantity = flowCardMapper.getSumQuantity(flowCard.getOrderId());
                    List<Map<String, Object>> details = flowCardMapper.getPrintCustomData(flowCard.getProcessId(), flowCard.getOrderNumber(), flowCard.getPrintQuantity());
                    Integer printQuantity = flowCard.getPrintQuantity();
                    if (printQuantity==null){
                        printQuantity=0;
                    }
                    List<Map<String, Object>> details = flowCardMapper.getPrintCustomData(flowCard.getProcessId(), flowCard.getOrderNumber(), printQuantity);
                    for (Map<String, Object> detail : details) {
                        detail.put("sumQuantity", sumQuantity);
@@ -761,12 +766,19 @@
                    // 判断是否为非空字符串
                    if (orderNumber != null && !orderNumber.trim().isEmpty()) {
                        itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(
                        List<Map<String, Object>> customDataSemi =flowCardMapper.getPrintCustomDataSemi(
                                flowCard.getProcessId(),
                                flowCard.getTechnologyNumber(),
                                flowCard.getProcess(),
                                flowCard.getOrderNumber(), flowCard.getPrintQuantity()
                        ));
                                flowCard.getOrderNumber(), flowCard.getPrintQuantity());
                        for (Map<String, Object> dataMap : customDataSemi) {
                            dataMap.put("newList", flowCardMapper.getgetPrintCustomDataSemiSp(
                                    flowCard.getProcessId(),
                                    dataMap.get("technologyNumber").toString(),
                                    flowCard.getOrderNumber()
                            ));
                        }
                        itemmap.put("data", customDataSemi);
                    } else {
                            //用于天津现场流程卡打印界面的小片标签打印
                        itemmap.put("data", flowCardMapper.getPrintCustomDataSemiTj(
@@ -895,13 +907,16 @@
                List<Map<String, Object>> processList = flowCardMapper.getProcessList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                //工序列表
                List<Map<String, Object>> processNameList = flowCardMapper.getProcessNameList();
                itemmap.put("count", flowCardMapper.countFlowCard(flowCard.getOrderId()));
                itemmap.put("processList", processList);
                itemmap.put("processNameList", processNameList);
                //  itemmap.put("numberList", numberList);
                list.add(itemmap);
            }
        }
        map.put("data", list);
        //初始化值
        printLike = null;
@@ -1260,6 +1275,19 @@
        return map;
    }
    public Map<String, Object> selectPrintProjectDetailSmallPiece(Map<String, Object> object) throws JsonProcessingException {
        Map<String, Object> map = new HashMap<>();
        String projectNo=object.get("projectNo").toString();
        String stockIdsStr=object.get("stockId").toString();
        ObjectMapper objectMapper = new ObjectMapper();
        if (stockIdsStr != null && !stockIdsStr.isEmpty()) {
            List<Integer> list = objectMapper.readValue(stockIdsStr, new TypeReference<List<Integer>>() {});
            map.put("data", flowCardMapper.getPrintProjectDetailsMpSp(projectNo,list));
        }
        return map;
    }
    public Map<String, Object> getPrintCustomDataProjectNoDetailSv(String type, Integer detailType, Map<String, Object> object) {
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
@@ -1269,7 +1297,8 @@
                Map<String, Object> itemmap = new HashMap<>();
                //是否是工程明细打印
                if (detailType == 0) {//工程打印明细
                    itemmap.put("data", flowCardMapper.getPrintCustomDataProjectDetail(flowCard.getProjectNo(), flowCard.getStockId()));
                        itemmap.put("data", flowCardMapper.getPrintCustomDataProjectDetail(flowCard.getProjectNo(), flowCard.getStockId(),flowCard.getPolysId()));
                }
                //非工程打印
@@ -1332,11 +1361,13 @@
            }
            //将原来已报工的数据更新
            if (resultList != null && !resultList.isEmpty()) {
                for (OrderProcessDetail d : resultList) {
                    flowCardMapper.updateOrderProcessDetail(d.getProcessId(),d.getOrderNumber(),d.getTechnologyNumber(),
                            d.getReportingWorkNumCount(),d.getReportingWorkNum(),d.getBrokenNum(),d.getProcess());
                for (String number : numberList) {
                    for (OrderProcessDetail d : resultList) {
                        flowCardMapper.updateOrderProcessDetail(d.getProcessId(),number,d.getTechnologyNumber(),
                                d.getReportingWorkNumCount(),d.getReportingWorkNum(),d.getBrokenNum(),d.getProcess());
                    }
                }
            }
            return true;
@@ -1736,6 +1767,58 @@
    }
    public boolean getNewProcessSv(String processId, String orderNumber, String technologyNumber, List<String> orderProcess) {
        // 获取最新报工工序
        List<Map<String, Object>> newProcess = flowCardMapper.getNewProcessMp(processId, orderNumber, technologyNumber);
        if (newProcess == null || newProcess.isEmpty()) {
            return false; // 找不到标准值
        }
        // 最新工序排序号
        int standardSort = Integer.parseInt(newProcess.get(0).get("sort").toString());
        // 循环 orderProcess 的每一个工序,查询它们的 sort
        for (String processName : orderProcess) {
            Map<String, Object> data = flowCardMapper.getProcessInfo(processName);
            if (data == null) {
                return false; // 工序查不到
            }
            int orderSort = Integer.parseInt(data.get("sort").toString());
            // orderSort 必须 > standardSort
            if (orderSort <= standardSort) {
                return false;
            }
        }
        return true;
    }
    public Map<String, Object> PrintProgressProcessCardSv(List<String> selectDate, List<String> columns) {
        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<String, Object> map = new HashMap<>();
        //获取表格内容数据
        List<Map<String, String>> dataList = flowCardMapper.PrintProgressProcessCardData(startDate, endDate);
        //获取表头工序筛选数据
        List<Map<String, String>> uniqueList = flowCardMapper.OrderProcess();
        map.put("title", uniqueList);
        List<String> list = new ArrayList<>();
        list.add(startDate);
        list.add(endDate);
        map.put("selectDate",list);
        map.put("data",dataList );
        return map;
    }
}