chenlu
2024-08-01 f4d7e303bf5290bf0709066acf6082c96703581c
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -6,20 +6,23 @@
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.pp.PrintSetup;
import com.example.erp.entity.pp.ProductionScheduling;
import com.example.erp.entity.sd.OrderGlassDetail;
import com.example.erp.entity.sd.OrderProcessDetail;
import com.example.erp.mapper.pp.FlowCardMapper;
import com.example.erp.mapper.sd.OrderGlassDetailMapper;
import com.example.erp.mapper.sd.OrderProcessDetailMapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.stereotype.Service;
import java.sql.Date;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.core.type.TypeReference;
import java.io.IOException;
import java.sql.Date;
import java.util.*;
import static com.example.erp.service.sd.OrderService.getOrderProcessDetails;
@@ -98,6 +101,7 @@
    public Map<String, Object> selectNoCardSv(String orderId, String productionId, FlowCard flowCard) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.selectNoCardMp(orderId, productionId, flowCard));
        map.put("orderOtherMoney", flowCardMapper.selectorderOtherMoney());
        return map;
    }
@@ -208,13 +212,50 @@
        return map;
    }
    public Object selectPrintSv(String orderId, FlowCard flowCard) {
    public Object selectPrintFlowCard(Date selectTime1, Date selectTime2) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.selectPrintMp(orderId, flowCard));
        map.put("data", flowCardMapper.selectPrintFlowCard(selectTime1, selectTime2));
        return map;
    }
    public Map<String, Object> getSelectPrintingSv(Map<String, Object> object) {
    public Object selectPrintSv(Map<String, Object> object, String inquiryMode) {
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                Map<String, Object> itemmap = new HashMap<>();
                if ("1".equals(inquiryMode)){
                    itemmap.put("detail", flowCardMapper.selectPrintMp(flowCard.getOrderId()));
                }
                else {
                    itemmap.put("detail", flowCardMapper.selectPrintNotMp(flowCard.getOrderId()));
                }
                list.add(itemmap);
            }
        }
        map.put("data", list);
        map.put("type", flowCardMapper.selectType());
        return map;
    }
    private static Map<String, Object> parseJson(String json) {
        ObjectMapper objectMapper = new ObjectMapper();
        try {
            return objectMapper.readValue(json, new TypeReference<Map<String, Object>>() {});
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
    public Map<String, Object> getSelectPrintingSv(Map<String, Object> object, String printMerge, String printLike) {
        if (printMerge == null){
            printMerge= "";
        }
        if (printLike == null){
            printLike= "";
        }
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
@@ -222,19 +263,67 @@
            for (FlowCard flowCard : flowCardList) {
                Map<String, Object> itemmap = new HashMap<>();
                //流程卡表头表尾数据
                itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), flowCard.getTechnologyNumber()));
                //流程卡明细数据
                List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                //工艺流程
                List<Map<String, Object>> processList = flowCardMapper.getProcessList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                itemmap.put("detailList", detailList);
                itemmap.put("processList", processList);
                list.add(itemmap);
                //是否传入合并层数
                if (printMerge.equals("")||printMerge.equals("null") ){
                    itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getGlassChild(),flowCard.getProcess()));
                    //是否包含切割
                    boolean containsCutting = flowCard.getProcess().contains("切割");
                    if(String.valueOf(flowCard.getTechnologyNumber()).length()>1 && containsCutting){
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()));
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                        itemmap.put("detailList", detailList);
                    }
                }
                else {
                    //流程卡明细数据
                    if (printLike.equals("")||printLike.equals("null") ){
                        itemmap.put("detail", flowCardMapper.getPrimaryListMerge(flowCard.getProcessId(), printMerge));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        itemmap.put("detail", flowCardMapper.getPrimaryList(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()), flowCard.getGlassChild(), flowCard.getProcess()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLike(flowCard.getProcessId(), printMerge);
                        itemmap.put("detailList", detailList);
                    }
                }
                //工艺流程
                //List<Map<String, Object>> processList = flowCardMapper.getProcessList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                String input = flowCard.getProcess();
                String delimiter = "->";
                // 分割字符串
                String[] parts = input.split(delimiter);
                // 创建 List<Map<String, Object>>
                List<Map<String, Object>> processList = new ArrayList<>();
                // 遍历分割后的部分并将其存入 List<Map<String, Object>>
                for (int i = 0; i < parts.length; i++) {
                    Map<String, Object> maps = new HashMap<>();
                    maps.put("id", i); // 添加一个索引字段
                    maps.put("process", parts[i]); // 添加实际的值
                    processList.add(maps);
                }
                itemmap.put("processList", processList);
              //  itemmap.put("numberList", numberList);
                list.add(itemmap);
            }
        }
        map.put("data", list);
        //初始化值
        printLike=null;
        return map;
    }
@@ -252,18 +341,29 @@
        }
    }
    public Map<String, Object> getSelectPrintLabelSv(Map<String, Object> object) {
    public Map<String, Object> getSelectPrintLabelSv(String projectNo) {
        Map<String, Object> map = new HashMap<>();
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                Integer count=flowCard.getQuantity();
                for (int i = 0; i < count; i++) {
                    map.put("data", flowCardMapper.getPrintLabel(flowCard.getProcessId(), flowCard.getTechnologyNumber()));
                    //System.out.println(flowCardMapper.getPrintLabel(flowCard.getProcessId(), flowCard.getTechnologyNumber()));
        map.put("data", flowCardMapper.getPrintLabel(projectNo));
        return map;
    }
    public Map<String, Object> getSelectPrintLabelSv1(Map<String, Object> object) {
        Map<String, Object> map = new HashMap<>();
            List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
            List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
            if (!flowCardList.isEmpty()) {
                for (FlowCard flowCard : flowCardList) {
                    // Integer count=flowCardMapper.getPrintLabelCount(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                    Map<String, Object> itemmap = new HashMap<>();
                    // for (int i = 0; i < count; i++) {
                    itemmap.put("data", flowCardMapper.getPrintLabel1(flowCard.getProcessId(), flowCard.getTechnologyNumber()));
                    list.add(itemmap);
                    //}
                }
            }
        }
            map.put("data", list);
        return map;
    }
@@ -284,9 +384,182 @@
        return true;
    }
    public Map<String, Object> printSetup(PrintSetup printSetup) {
    public Map<String, Object> getSelectPrintCustomLabelSv(String type, Integer lableType, Map<String, Object> object) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.selectPrintSetup(printSetup));
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            Set<String> processedProcessIds = new HashSet<>();  // 用来存放已处理过的 processId
            if (lableType != 2){
                for (FlowCard flowCard : flowCardList) {
                    String processId = flowCard.getProcessId();
                    // 检查是否已经处理过该 processId,如果处理过则跳过
                    if (processedProcessIds.contains(processId)) {
                        continue;
                    }
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomData(flowCard.getProcessId(),flowCard.getTechnologyNumber()));
                    list.add(itemmap);
                    // 将该 processId 加入已处理集合
                    processedProcessIds.add(processId);
                }
            }
            else{
                for (FlowCard flowCard : flowCardList) {
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomDataSemi(flowCard.getProcessId(),flowCard.getTechnologyNumber()));
                    list.add(itemmap);
                }
            }
        }
        map.put("data", list);
        map.put("title", flowCardMapper.getPrintTitle(type));
        return map;
    }
    public Object getCustomLabelDetailSv(String name, String form, String id, FlowCard flowCard) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.getCustomLabelDetailMp(name, form,id, flowCard));
        return map;
    }
    public Boolean updatePrintStateSv(Integer printState, Map<String, Object> object) {
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                // 更新打印状态
                flowCardMapper.updatePrintStateMp(printState,flowCard.getProcessId(),flowCard.getTechnologyNumber());
            }
            return true;
        } else {
            return false;
        }
    }
    public Map<String, Object> printFlowCardOrderSortSv(String orderId, FlowCard flowCard) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.printFlowCardOrderSortMp(orderId, flowCard));
        return map;
    }
    public Boolean printOrderSort(Map<String, Object> object) {
        List<FlowCard> FlowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class);
        if (!FlowCardList.isEmpty()) {
            for (FlowCard flowCard : FlowCardList) {
                flowCardMapper.printOrderSortMp(flowCard.getProcessId(),flowCard.getOrderNumber(),flowCard.getTechnologyNumber(),flowCard.getSort());
            }
        }
        return true;
    }
    public Map<String, Object> getSelectPrintingRefundSv(Map<String, Object> object, String printMerge, String printLike) {
        if (printMerge == null){
            printMerge= "";
        }
        if (printLike == null){
            printLike= "";
        }
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                Map<String, Object> itemmap = new HashMap<>();
                //流程卡表头表尾数据
                //是否传入合并层数
                if (printMerge.equals("")||printMerge.equals("null") ){
                    itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId()));
                    List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                    itemmap.put("detailList", detailList);
                }
                else {
                    //流程卡明细数据
                    if (printLike.equals("")||printLike.equals("null") ){
                        itemmap.put("detail", flowCardMapper.getPrimaryListMergeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId());
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                        itemmap.put("detailList", detailList);
                    }
                }
                //工艺流程
                List<Map<String, Object>> processList = flowCardMapper.getProcessList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                itemmap.put("processList", processList);
                //  itemmap.put("numberList", numberList);
                list.add(itemmap);
            }
        }
        map.put("data", list);
        //初始化值
        printLike=null;
        return map;
    }
    public Map<String, Object> getSelectPrinReworkSv(Map<String, Object> object, String printMerge, String printLike) {
        if (printMerge == null){
            printMerge= "";
        }
        if (printLike == null){
            printLike= "";
        }
        Map<String, Object> map = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            for (FlowCard flowCard : flowCardList) {
                Map<String, Object> itemmap = new HashMap<>();
                //流程卡表头表尾数据
                //是否传入合并层数
                if (printMerge.equals("")||printMerge.equals("null") ){
                    itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber()));
                    List<Map<String, Object>> detailList = flowCardMapper.getDetailListRework(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                    itemmap.put("detailList", detailList);
                }
                else {
                    //流程卡明细数据
                    if (printLike.equals("")||printLike.equals("null") ){
                        itemmap.put("detail", flowCardMapper.getPrimaryListMergeRework(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListRework(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId());
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        itemmap.put("detail", flowCardMapper.getPrimaryListRework(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRework(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                        itemmap.put("detailList", detailList);
                    }
                }
                //工艺流程
                List<Map<String, Object>> processList = flowCardMapper.getProcessList(flowCard.getProcessId(), flowCard.getTechnologyNumber());
                itemmap.put("processList", processList);
                //  itemmap.put("numberList", numberList);
                list.add(itemmap);
            }
        }
        map.put("data", list);
        //初始化值
        printLike=null;
        return map;
    }
}