chenlu
2024-10-11 82a5de6d2ec80b45660149c84be28734032562f6
north-glass-erp/src/main/java/com/example/erp/service/pp/FlowCardService.java
@@ -5,10 +5,12 @@
import com.alibaba.fastjson.JSONObject;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.example.erp.common.Constants;
import com.example.erp.entity.pp.FlowCard;
import com.example.erp.entity.sd.OrderGlassDetail;
import com.example.erp.entity.sd.OrderProcessDetail;
import com.example.erp.entity.userInfo.Log;
import com.example.erp.exception.ServiceException;
import com.example.erp.mapper.pp.FlowCardMapper;
import com.example.erp.mapper.sd.OrderGlassDetailMapper;
import com.example.erp.mapper.sd.OrderProcessDetailMapper;
@@ -25,6 +27,7 @@
import java.sql.Date;
import java.util.*;
import java.util.stream.Collectors;
import static com.example.erp.service.sd.OrderService.getOrderProcessDetails;
@@ -83,6 +86,8 @@
                flowCardMapper.deleteReportingWork(processId);
                //删除分架明细
                flowCardMapper.deleteFlowCardMp(orderId, processId);
                //删除排序表数据
                flowCardMapper.deleteflowCardSort(orderId, processId);
                //判断该订单流程卡是否全部删除
                Integer flowNumber = flowCardMapper.selectFlowCardCount(orderId);
                if (flowNumber == 0) {
@@ -403,6 +408,27 @@
        return map;
    }
    public Map<String, Object> getSelectPrintLabelDetails(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.getPrintLabelDetail(flowCard));
                list.add(itemmap);
                //}
            }
        }
        map.put("data", list);
        return map;
    }
    public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, String process, FlowCard flowCard) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber,process, flowCard));
@@ -499,7 +525,7 @@
        return true;
    }
    public Map<String, Object> getSelectPrintingRefundSv(Map<String, Object> object, String printMerge, String printLike) {
    public Map<String, Object> getSelectPrintingRefundSv(Map<String, Object> object, String printMerge, String printLike, String mergeTechnologyNumber) {
        if (printMerge == null){
            printMerge= "";
        }
@@ -515,8 +541,8 @@
                //流程卡表头表尾数据
                //是否传入合并层数
                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("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),mergeTechnologyNumber,flowCard.getPatchReason()));
                    List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(),flowCard.getReportingWorkId(),flowCard.getPatchReason());
                    itemmap.put("detailList", detailList);
                }
                else {
@@ -525,11 +551,11 @@
                    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());
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListRefund(flowCard.getProcessId(), flowCard.getTechnologyNumber(),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), flowCard.getPatchReason());
                        itemmap.put("detailList", detailList);
                    }
                    else {
                        itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId()));
                        itemmap.put("detail", flowCardMapper.getPrimaryListRefund(flowCard.getProcessId(), String.valueOf(flowCard.getTechnologyNumber()),flowCard.getOrderNumber(), flowCard.getReportingWorkId(), mergeTechnologyNumber, flowCard.getPatchReason()));
                        List<Map<String, Object>> detailList = flowCardMapper.getDetailListLikeRefund(flowCard.getProcessId(), printMerge,flowCard.getOrderNumber(),flowCard.getReportingWorkId());
                        itemmap.put("detailList", detailList);
@@ -603,14 +629,19 @@
        return map;
    }
    public Object selectPrintDetailsSv(Map<String, Object> object, String inquiryMode) {
    public Object selectPrintDetailsSv(Map<String, Object> object, String inquiryMode,Integer type) {
        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<>();
                    itemmap.put("detail", flowCardMapper.selectPrintDetailsMp(flowCard.getOrderId()));
                    if(type==1){
                        itemmap.put("detail", flowCardMapper.selectPrintDetailsMp(flowCard.getOrderId()));
                    }else if(type==2){
                        itemmap.put("detail", flowCardMapper.selectPrintDetailsMp1(flowCard.getOrderId()));
                    }
                list.add(itemmap);
            }
        }
@@ -624,12 +655,24 @@
        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();
                    String orderNumber = flowCard.getOrderNumber().toString();
                    // 检查是否已经处理过该 processId,如果处理过则跳过
                    if (processedProcessIds.contains(processId)&&processedProcessIds.contains(orderNumber)) {
                        continue;
                    }
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomDataDetails(flowCard.getProcessId(),flowCard.getOrderNumber()));
                    list.add(itemmap);
                    // 将该 processId 加入已处理集合
                    processedProcessIds.add(processId);
                    processedProcessIds.add(orderNumber);
                }
            }
            else{
@@ -641,6 +684,13 @@
            }
        }
        map.put("data", list);
        map.put("title", flowCardMapper.getPrintTitle(type));
        return map;
    }
    public Map<String, Object> getPrintCustomDataProjectNo(String type, String projectNo) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.getPrintCustomDataProjectNo(projectNo));
        map.put("title", flowCardMapper.getPrintTitle(type));
        return map;
    }
@@ -663,6 +713,132 @@
    }
    public String mergeFlowCard(Map<String, Object> object) {
        String returns= "false";
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("flowCard")), FlowCard.class);
        if (!flowCardList.isEmpty()) {
            List<Map<String, Object>> flowCardList1=flowCardMapper.selectFlowCardMerge(flowCardList.get(0).getProcessId());
            int index=1;
            for(int i = 0;i < flowCardList1.size();i++){
                if(Integer.valueOf(flowCardList1.get(i).get("count2").toString())>1){
                    List<Integer> technologyNumber = Arrays.stream(flowCardList1.get(i).get("count1").toString().split(","))
                            .map(Integer::parseInt)
                            .collect(Collectors.toList());
                    flowCardMapper.updateFlowCardMerge(flowCardList.get(0).getProcessId(),technologyNumber,index);
                    index+=1;
                    returns="true";
                }
            }
        }
        return returns;
    }
    public  List<FlowCard> getProcessCard(Map<String, String> processCards) {
        String processCard = processCards.get("processCard");
        if(!processCard.contains("/")){
            throw new ServiceException(Constants.Code_600, "错误的流程卡号,请检查!");
        }
        String[] processCardList = processCard.split("/");
        List<FlowCard> flowCardList = flowCardMapper.selectList(
                new QueryWrapper<FlowCard>()
                        .eq("process_id", processCardList[0])
                        .eq("technology_number", processCardList[1])
        );
        for (FlowCard flowCard : flowCardList) {
            flowCard.setOrderGlassDetail(
                    orderGlassDetailMapper.selectOne(
                            new QueryWrapper<OrderGlassDetail>()
                                    .eq("order_id", flowCard.getOrderId())
                                    .eq("order_number", flowCard.getOrderNumber())
                                    .eq("technology_number", flowCard.getTechnologyNumber())
                    )
            );
            String str = flowCard.getOrderGlassDetail().getGlassChild();
            String delimiter = "mm";
            int index = str.indexOf(delimiter);
            Integer subString = Integer.valueOf(str.substring(0, index).trim());
            flowCard.getOrderGlassDetail().setThickness(subString);
        }
        return flowCardList;
    }
    public Boolean checkboxDeleteSv(Map<String, Object> object) {
        String userName = "";
        if (object.get("userName") != null) {
            userName = object.get("userName").toString();
        }
        String userId = "";
        if (object.get("userId") != null) {
            userId = object.get("userId").toString();
        }
        List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("composing")), FlowCard.class);
            for (FlowCard flowCard : flowCardList) {
                Integer count = flowCardMapper.reportingWorkCount(flowCard.getProcessId());
                if (count == 0) {
                    //修改分架状态
                    flowCardMapper.updateDeleteState(flowCard.getOrderId(), flowCard.getProcessId());
                    //删除报工流程明细表数据
                    flowCardMapper.deleteReportingWork(flowCard.getProcessId());
                    //删除分架明细
                    flowCardMapper.deleteFlowCardMp(flowCard.getOrderId(), flowCard.getProcessId());
                    //删除排序表数据
                    flowCardMapper.deleteflowCardSort(flowCard.getOrderId(), flowCard.getProcessId());
                    //判断该订单流程卡是否全部删除
                    Integer flowNumber = flowCardMapper.selectFlowCardCount(flowCard.getOrderId());
                    if (flowNumber == 0) {
                        //修改订单表分架状态为0,全部删除
                        flowCardMapper.updateProcessingCard(flowCard.getOrderId(), 0);
                    } else {
                        //修改订单表分架状态为1,删除部分
                        flowCardMapper.updateProcessingCard(flowCard.getOrderId(), 1);
                    }
                    //保存日志
                    Log log = new Log();
                    log.setContent(flowCard.getOrderId()+flowCard.getProcessId());
                    log.setFunction("checkboxDeleteSv流程卡删除");
                    log.setOperatorId(userId);
                    log.setOperator(userName);
                    logService.saveLog(log);
                } else {
                    return false;
                }
            }
            return true;
    }
    public Map<String, Object> getPrintProjectDetails(String projectNo) {
        Map<String, Object> map = new HashMap<>();
        map.put("data", flowCardMapper.getPrintProjectDetailsMp(projectNo));
        return map;
    }
    public Map<String, Object> getPrintCustomDataProjectNoDetailSv(String type, 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()) {
            Set<String> processedProcessIds = new HashSet<>();  // 用来存放已处理过的 processId
                for (FlowCard flowCard : flowCardList) {
                    Map<String, Object> itemmap = new HashMap<>();
                    itemmap.put("data", flowCardMapper.getPrintCustomDataProjectDetail(flowCard.getProjectNo(),flowCard.getStockId()));
                    list.add(itemmap);
                }
        }
        map.put("data", list);
        map.put("title", flowCardMapper.getPrintTitle(type));
        return map;
    }
}