自动化立体仓库 - WMS系统
LSH
2023-01-04 0925a458d92d33aa05b2fb03aec3ac8c13e5d763
#中间表对接:订单完结上报完成
3个文件已修改
121 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/DocType.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/ints/task/scheduler/LkDetTbScheduler.java 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/DocType.java
@@ -159,5 +159,35 @@
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.updateTime);
    }
    public String getDocName$(){
        if (Cools.isEmpty(this.docName)){
            return "";
        }else {
            switch (this.docName){
                case "采购销售(出库)":
                case "采购销售(入库)":
                    return "TF_PSS";
                case "库存调拨(出库)":
                case "库存调拨(入库)":
                    return "TF_IC";
                case "库存调整(出库)":
                case "库存调整(入库)":
                    return "TF_IJ";
                case "生产领料(出库)":
                case "生产领料(入库)":
                    return "TF_ML";
                case "生产缴库(出库)":
                case "生产缴库(入库)":
                    return "TF_MM0";
                case "托工退回(出库)":
                case "托工退回(入库)":
                    return "TF_TC";
                default:
                    return this.docName;
            }
        }
    }
}
src/main/java/com/zy/ints/task/scheduler/ErpDetTbScheduler.java
@@ -139,6 +139,7 @@
                                    orderDetl.setCreateTime(now);
                                    orderDetl.setUpdateBy(9999L);
                                    orderDetl.setUpdateTime(now);
                                    orderDetl.setMemo(erpDetTb.getWh());
                                    if (orderDetlService.insert(orderDetl)){
                                        erpSqlServer.update(sqlUpDateErpDetTbOne + "'" + erpDetTb.getPrdNo() + "'");
                                    }else {
src/main/java/com/zy/ints/task/scheduler/LkDetTbScheduler.java
@@ -1,6 +1,17 @@
package com.zy.ints.task.scheduler;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.core.exception.CoolException;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.DocTypeService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.ints.entity.ErpDetTbBak;
import com.zy.ints.entity.LkDetTb;
import com.zy.ints.entity.LkDetTbBak;
import com.zy.ints.erp.ErpSqlServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -8,6 +19,9 @@
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
/**
@@ -24,6 +38,12 @@
    private Boolean erpEnabled;
    @Autowired
    private ErpSqlServer erpSqlServer;
    @Autowired
    private OrderService orderService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private DocTypeService docTypeService;
    /**
     * 上报入出库完结订单信息
     */
@@ -31,25 +51,71 @@
    public void InOrOutOrder() {
        if (!erpEnabled) return;
        String sqlSelectLkDetTb = "select bill_no as billNo,prd_no as prdNo,iokindid,add_id as addId,qty,prd_mark as prdMark,wh,billdate,status,temp1,temp2,temp3 from lk_det_tb where 1=1";
        String sqlUpDateLkDetTbOne = "update lk_det_tb set status=1 where prd_no=";
        String sqlUpDateLkDetTbTwo = "update lk_det_tb set status=2 where prd_no=";
        String sqlSelectLkDetTbBak = "select bill_no as billNo,prd_no as prdNo,iokindid,add_id as addId,qty,prd_mark as prdMark,wh,billdate,status,temp1,temp2,temp3 from lk_det_tb_bak where 1=1";
        try {
            List<LkDetTb> lkDetTbs = erpSqlServer.select(sqlSelectLkDetTb, LkDetTb.class);
            if (lkDetTbs.size() > 0){
                for (LkDetTb lkDetTb:lkDetTbs){
                    Integer status = lkDetTb.getStatus();
                    if (status == 0){
            List<Order> orders = orderService.selectList(new EntityWrapper<Order>().eq("settle", 4L));
            if (orders.size()>0){
                for (Order order:orders){
                    List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
                    if (!Cools.isEmpty(orderDetls)){
                        for (OrderDetl orderDetl:orderDetls){
                            Date now = new Date();
                            List<LkDetTb> lkDetTbs = erpSqlServer.select(sqlSelectLkDetTb+
                                            " and bill_no='"+orderDetl.getOrderNo()+"'" +
                                            " and prd_no='"+orderDetl.getMatnr()+"'" +
                                            " and prd_mark='"+orderDetl.getBatch()+"'"
                                    , LkDetTb.class);
                            List<LkDetTbBak> lkDetTbBaks = erpSqlServer.select(sqlSelectLkDetTbBak+
                                            " and bill_no='"+orderDetl.getOrderNo()+"'" +
                                            " and prd_no='"+orderDetl.getMatnr()+"'" +
                                            " and prd_mark='"+orderDetl.getBatch()+"'"
                                    , LkDetTbBak.class);
                            if (lkDetTbs.size() == 1 || lkDetTbBaks.size()==1){
                                log.error("订单号:"+orderDetl.getOrderNo()+"、商品编号:"+orderDetl.getMatnr()+"、货品特征:"+orderDetl.getBatch()+" " +
                                        "已经上报但是明细依旧存在,请联系开发人员!!!");
                                continue;
                            }else if (lkDetTbs.size()>1 || lkDetTbBaks.size()>1){
                                log.error("相同 订单号:"+orderDetl.getOrderNo()+"、商品编号:"+orderDetl.getMatnr()+"、货品特征:"+orderDetl.getBatch()+" " +
                                        "存在重复资料,联系开发人员!!!");
                                continue;
//                                throw new CoolException("相同 订单号:"+orderDetl.getOrderNo()+"、商品编号:"+orderDetl.getMatnr()+"、货品特征:"+orderDetl.getBatch()+" " +
//                                        "存在重复资料,联系开发人员!!!");
                            }else {
                                String format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(now);
                                HashMap<String, Object> condition = new HashMap<>();
                                condition.put("bill_no", "'" + orderDetl.getOrderNo() + "'");
                                condition.put("prd_no", "'" + orderDetl.getMatnr() + "'");
                    }else if (status == 1){
                                DocType docType = docTypeService.selectById(order.getDocType());
                                if (!Cools.isEmpty(docType)){
                                    int addid = docType.getPakin() == 1 ? 1 : 2;
                                    condition.put("iokindid", "'" + docType.getDocName$() + "'");
                                    condition.put("add_id", "'" + addid + "'");
                                }
                    }else if (status == 2){
                    }else {
                                condition.put("qty", "'" + orderDetl.getQty() + "'");
                                condition.put("prd_mark", "'" + orderDetl.getBatch() + "'");
                                condition.put("wh", "'" + orderDetl.getMemo() + "'");
                                condition.put("billdate", "'" + format + "'");
                                condition.put("status", "'" + 0 + "'");
                                erpSqlServer.insert(LkDetTb.class, condition);
                            }
                            //保存订单明细历史档
                            if (orderDetlService.addToLogTable(orderDetl)){
                                //删除订单明细
                                orderDetlService.deleteById(orderDetl.getId());
                            }
                        }
                        //保存订单历史档
                        if (orderService.addToLogTable(order)){
                            //删除完结订单
                            orderService.deleteById(order.getId());
                        }
                    }
                }
            }
        }catch (Exception e){
        }