自动化立体仓库 - WMS系统
zhang
2025-05-22 1216681441c6275aa2779c961e3c83f5d8d3df02
接口编写
17个文件已修改
2个文件已添加
470 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/param/CombParam.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/SendUtil.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/entity/NccCgCgdhdWms.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/mapper/NccSaleDbddWmsMapper.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/mapper/NccScZkmxbWmsMapper.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/service/NccSaleDbddWmsService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/service/NccScZkmxbWmsService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/service/impl/NccSaleDbddWmsServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/service/impl/NccScZkmxbWmsServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/task/PlanOrderTask.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/vo/IaIjBill.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/vo/IaIjBillB.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/vo/ic_generalout_b.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/nc/NccSaleDbddWmsMapper.xml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/nc/NccScZkmxbWmsMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -19,10 +19,14 @@
    // 库位编号
    private String locNo;
    private List<CombMat> combMats;
    @Data
    public static class CombMat {
        // 条码
        private String  vbarcode;
        private String orderNo;
@@ -36,9 +40,9 @@
        private String standby2 = "";
        private String standby3 = "";
        private String boxType1 = "1";
        private String boxType2 = "1";
        private String boxType3 = "1";
        private String boxType1 = "";
        private String boxType2 = "";
        private String boxType3 = "";
        // 物料数量
        private Double anfme;
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -19,6 +19,8 @@
import com.zy.common.model.enums.WorkNoType;
import com.zy.common.service.CommonService;
import com.zy.common.utils.HttpHandler;
import com.zy.nc.entity.NccJcQilibcBarcodeflowWms;
import com.zy.nc.service.NccJcQilibcBarcodeflowWmsService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -94,6 +96,9 @@
    @Resource
    private OrderDetlPakoutService orderDetlPakoutService;
    @Autowired
    private NccJcQilibcBarcodeflowWmsService barcodeflowWmsService;
    @Override
    @Transactional
@@ -615,7 +620,13 @@
            }
            // 生成入库通知档
            List<DetlDto> detlDtos = new ArrayList<>();
            param.getCombMats().forEach(elem -> {
                // TODO 不考虑代码效率,因为旧代码bug少
                if (!Cools.isEmpty(elem.getVbarcode())){
                    NccJcQilibcBarcodeflowWms vbarcode1 = barcodeflowWmsService.selectOne(new EntityWrapper<NccJcQilibcBarcodeflowWms>().eq("vbarcode", elem.getVbarcode()));
                }
                // 订单明细数量校验
//                OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), elem.getMatnr(), elem.getBatch());
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -12,6 +12,7 @@
import com.zy.asrs.service.ReportToThirdService;
import com.zy.nc.SendUtil;
import com.zy.nc.entity.NccCgCgdhdWms;
import com.zy.nc.entity.NccSaleDbddWms;
import com.zy.nc.entity.NccSaleXsfhmxWms;
import com.zy.nc.util.NcResultMessage;
import com.zy.nc.vo.*;
@@ -44,14 +45,27 @@
    @Value("${NYNC.saveRefDelivery}")
    private String saveRefDelivery;
    @Value("${NYNC.saveRefWhsTrans}")
    private String saveRefWhsTrans;
    @Value("${NYNC.purchasein}")
    private String purchasein;
    @Value("${NYNC.whstrans}")
    private String whstrans;
    @Value("${NYNC.generalout}")
    private String generalout;
    @Value("${NYNC.dbdd}")
    private String dbdd;
    @Override
    public void report(Order order, List<OrderDetl> orderDetls, DocType docType) {
        int step = (Cools.isEmpty(order.getStep()) || order.getStep() == 0) ? 0 : order.getStep();
        NcResultMessage response = null;
        Object process1 = null;
        Object process2 = null;
        Object process3 = null;
        try {
            switch (order.getDocType$().toString()) {
                case "销售发货":
@@ -59,78 +73,50 @@
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("response:{}", response);
                        log.info("销售发货response:{}", response);
                        step = 10;
                    }
                    break;
                case "转库":
                    process1 = processQTRK(orderDetls);
                case "转库-入库":
                    process1 = processZKRK(orderDetls);
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefWhsTrans, JSONObject.toJSONString(process1));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("response:{}", response);
                        log.info("转库-入库response:{}", response);
                        step = 10;
                    }
                    break;
                case "采购到货":
                    process1 = processCGDH(orderDetls);
                    List<Object> cg = new ArrayList<>();
                    cg.add(process1);
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, purchasein, JSONObject.toJSONString(cg));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("response:{}", response);
                        log.info("采购到货response:{}", response);
                        step = 10;
                    }
                    break;
                case "产成品入库单":
                    if (step == 2) {
                        process3 = processQTRK(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process3));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 10;
                        }
                    } else if (step == 1) {
                        process2 = processGENERALOUT(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process2));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 2;
                        }
                        process3 = processQTRK(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process3));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 10;
                        }
                    } else if (step == 0) {
                        process1 = processZK(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process1));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 1;
                        }
                        process2 = processGENERALOUT(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process2));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 2;
                        }
                        process3 = processQTRK(orderDetls);
                        //发送请求
                        response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(process3));
                        if (!Cools.isEmpty(response) && response.isSuccess()) {
                            log.info("response:{}", response);
                            step = 10;
                        }
                case "转库-出库":
                    process1 = processGENERALOUT(orderDetls);
                    List<Object> zkck = new ArrayList<>();
                    zkck.add(process1);
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, generalout, JSONObject.toJSONString(zkck));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("转库-出库response:{}", response);
                        step = 10;
                    }
                    break;
//                case "内部调拨":
//                    break;
                case "集团内部调拨":
                    process1 = processDBDD(orderDetls);
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, dbdd, JSONObject.toJSONString(process1));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("集团内部调拨response:{}", response);
                        step = 10;
                    }
                    break;
                default:
                    throw new CoolException("不能识别的单据类型");
            }
@@ -190,6 +176,32 @@
        return data;
    }
    private Object processZKRK(List<OrderDetl> orderDetls) {
        //组装对象数据
        Map<String, Object> data = new HashMap<String, Object>();
        GeneralInHeadVO generalInHeadVO = new GeneralInHeadVO();
        generalInHeadVO.setPk_org("FYT");
        generalInHeadVO.setCwarehouseid("6101");
        GeneralInBodyVO generalInBodyVO = null;
        List<GeneralInBodyVO> generalInBodyVOS = new ArrayList<>();
        for (OrderDetl orderDetl : orderDetls) {
            generalInBodyVO = new GeneralInBodyVO();
            String remark = orderDetl.getRemark();
            if (!Cools.isEmpty(remark)) {
                NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class);
                generalInBodyVO.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid());
                generalInBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid());
                generalInBodyVO.setNnum(orderDetl.getQty());
                generalInBodyVO.setNshouldnum(orderDetl.getAnfme());
                generalInBodyVO.setVbatchcode(orderDetl.getBatch());
            }
            generalInBodyVOS.add(generalInBodyVO);
        }
        data.put("GeneralInHeadVO", generalInHeadVO);
        data.put("GeneralInBodyVO", generalInBodyVOS);
        return data;
    }
    private Object processQTRK(List<OrderDetl> orderDetls) {
        //组装对象数据
@@ -209,6 +221,7 @@
                generalInBodyVO.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid());
                generalInBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid());
                generalInBodyVO.setNnum(orderDetl.getQty());
                generalInBodyVO.setNshouldnum(orderDetl.getAnfme());
                generalInBodyVO.setVbatchcode(orderDetl.getBatch());
                generalInBodyVO.setCmaterialoid(orderDetl.getMatnr());
            }
@@ -216,6 +229,32 @@
        }
        data.put("GeneralInHeadVO", generalInHeadVO);
        data.put("GeneralInBodyVO", generalInBodyVOS);
        return data;
    }
    private Object processDBDD(List<OrderDetl> orderDetls) {
        //组装对象数据
        Map<String, Object> data = new HashMap<String, Object>();
        IaIjBill iaIjBill = new IaIjBill();
        iaIjBill.setPk_org("FYT");
        //iaIjBill.setCwarehouseid("6101");
        IaIjBillB iaIjBillB = null;
        List<IaIjBillB> iaIjBillBS = new ArrayList<>();
        for (OrderDetl orderDetl : orderDetls) {
            iaIjBillB = new IaIjBillB();
            String remark = orderDetl.getRemark();
            if (!Cools.isEmpty(remark)) {
                NccSaleDbddWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleDbddWms.class);
                iaIjBillB.setCinventoryid(nccSaleXsfhmxWms.getWlbm());
                iaIjBillB.setCinventoryvid(nccSaleXsfhmxWms.getWlbm());
                iaIjBillB.setCsrcid(nccSaleXsfhmxWms.getCbillid());
                iaIjBillB.setNnum(orderDetl.getQty().intValue() + "");
                iaIjBillB.setPk_org("FYT");
            }
            iaIjBillBS.add(iaIjBillB);
        }
        data.put("ia_ijbill", iaIjBill);
        data.put("ia_ijbill_b", iaIjBillBS);
        return data;
    }
@@ -261,17 +300,18 @@
            String remark = orderDetl.getRemark();
            if (!Cools.isEmpty(remark)) {
                NccCgCgdhdWms nccCgCgdhdWms = JSONObject.parseObject(remark, NccCgCgdhdWms.class);
                ic_purchasein_b.setCsourcebillbid(nccCgCgdhdWms.getPkArriveorderB());
                ic_purchasein_b.setCsourcebillhid(nccCgCgdhdWms.getPkArriveorder());
                ic_purchasein_b.setCmaterialvid(orderDetl.getMaktx());
                ic_purchasein_h.setCvendorid(nccCgCgdhdWms.getGysbm());
                ic_purchasein_h.setCbizid(nccCgCgdhdWms.getDhlxbm());
                ic_purchasein_b.setCmaterialvid(orderDetl.getMatnr());
                ic_purchasein_b.setNnum(orderDetl.getQty());
                ic_purchasein_b.setNshouldassistnum(orderDetl.getQty());
                //ic_purchasein_b.setNorigprice(nccSaleXsfhmxWms.getNorigprice().doubleValue());
                //ic_purchasein_b.setNshouldassistnum(orderDetl.getQty());
                ic_purchasein_b.setVbatchcode(orderDetl.getBatch());
            }
            ic_purchasein_bs.add(ic_purchasein_b);
        }
        data.put("ic_purchasein_h", ic_purchasein_h);
        data.put("ic_purchasein_b", ic_purchasein_b);
        data.put("ic_purchasein_b", ic_purchasein_bs);
        return data;
    }
@@ -282,22 +322,24 @@
    private Object processGENERALOUT(List<OrderDetl> orderDetls) {
        //组装对象数据
        Map<String, Object> data = new HashMap<String, Object>();
        ic_purchasein_h ic_purchasein_h = new ic_purchasein_h();
        ic_purchasein_h.setPk_org("FYT");
        ic_purchasein_h.setCwarehouseid("6101");
        ic_purchasein_b ic_purchasein_b = null;
        List<ic_purchasein_b> ic_purchasein_bs = new ArrayList<>();
        ic_generalout_h generalout_h = new ic_generalout_h();
        generalout_h.setPk_org("FYT");
        generalout_h.setCwarehouseid("6101");
        ic_generalout_b generalout_b = null;
        List<ic_generalout_b> ic_purchasein_bs = new ArrayList<>();
        for (OrderDetl orderDetl : orderDetls) {
            ic_purchasein_b = new ic_purchasein_b();
            generalout_b = new ic_generalout_b();
            String remark = orderDetl.getRemark();
            if (!Cools.isEmpty(remark)) {
                NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class);
                generalout_b.setMaterialvid(orderDetl.getMatnr());
                generalout_b.setNshouldassistnum(orderDetl.getQty());
                generalout_b.setVbatchcode(orderDetl.getBatch());
            }
            ic_purchasein_bs.add(ic_purchasein_b);
            ic_purchasein_bs.add(generalout_b);
        }
        data.put("ic_purchasein_h", ic_purchasein_h);
        data.put("ic_purchasein_b", ic_purchasein_b);
        data.put("ic_generalout_h", generalout_h);
        data.put("ic_generalout_b", ic_purchasein_bs);
        return data;
    }
src/main/java/com/zy/nc/SendUtil.java
@@ -148,6 +148,7 @@
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            System.out.println("【url】:" + apiUrl);
            System.out.println("【json】:" + json);
            System.out.println("【RESULT】:" + result);
            System.out.println("result解密:" + result2);
src/main/java/com/zy/nc/entity/NccCgCgdhdWms.java
@@ -150,6 +150,11 @@
    private BigDecimal ydzsl;
    /**
     *
     */
    private String  vbatchcode;
    /**
     * 
     */
    private BigDecimal ydsl;
src/main/java/com/zy/nc/mapper/NccSaleDbddWmsMapper.java
@@ -2,18 +2,19 @@
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.nc.entity.NccSaleDbddWms;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author zc857
* @description 针对表【ncc_sale_dbdd_wms】的数据库操作Mapper
* @createDate 2025-05-21 16:04:17
* @Entity com.zy.nc.entity.NccSaleDbddWms
*/
 * @author zc857
 * @description 针对表【ncc_sale_dbdd_wms】的数据库操作Mapper
 * @createDate 2025-05-21 16:04:17
 * @Entity com.zy.nc.entity.NccSaleDbddWms
 */
public interface NccSaleDbddWmsMapper extends BaseMapper<NccSaleDbddWms> {
    List<String> selectDbdd();
    List<String> selectDbdd(@Param("ids") List<Integer> ids);
}
src/main/java/com/zy/nc/mapper/NccScZkmxbWmsMapper.java
@@ -1,18 +1,21 @@
package com.zy.nc.mapper;
import com.zy.nc.entity.NccScZkmxbWms;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.zy.nc.entity.NccScZkmxbWms;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author ZY
* @description 针对表【ncc_sc_zkmxb_wms】的数据库操作Mapper
* @createDate 2025-05-13 17:50:58
* @Entity com.zy.nc.entity.NccScZkmxbWms
*/
 * @author ZY
 * @description 针对表【ncc_sc_zkmxb_wms】的数据库操作Mapper
 * @createDate 2025-05-13 17:50:58
 * @Entity com.zy.nc.entity.NccScZkmxbWms
 */
public interface NccScZkmxbWmsMapper extends BaseMapper<NccScZkmxbWms> {
    List<String> selectZk();
    List<String> selectZkOut(@Param("ids") List<Integer> ids);
    List<String> selectZkIn(@Param("ids")List<Integer> ids);
}
src/main/java/com/zy/nc/service/NccSaleDbddWmsService.java
@@ -6,11 +6,11 @@
import java.util.List;
/**
* @author zc857
* @description 针对表【ncc_sale_dbdd_wms】的数据库操作Service
* @createDate 2025-05-21 16:04:17
*/
 * @author zc857
 * @description 针对表【ncc_sale_dbdd_wms】的数据库操作Service
 * @createDate 2025-05-21 16:04:17
 */
public interface NccSaleDbddWmsService extends IService<NccSaleDbddWms> {
    List<String> selectDbdd();
    List<String> selectDbdd(List<Integer> ids);
}
src/main/java/com/zy/nc/service/NccScZkmxbWmsService.java
@@ -12,5 +12,7 @@
*/
public interface NccScZkmxbWmsService extends IService<NccScZkmxbWms> {
    List<String> selectZk();
    List<String> selectZkOut(List<Integer> ids);
    List<String> selectZkIn(List<Integer> ids);
}
src/main/java/com/zy/nc/service/impl/NccSaleDbddWmsServiceImpl.java
@@ -2,25 +2,24 @@
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.zy.nc.entity.NccSaleDbddWms;
import com.zy.nc.service.NccSaleDbddWmsService;
import com.zy.nc.mapper.NccSaleDbddWmsMapper;
import com.zy.nc.service.NccSaleDbddWmsService;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @author zc857
* @description 针对表【ncc_sale_dbdd_wms】的数据库操作Service实现
* @createDate 2025-05-21 16:04:17
*/
 * @author zc857
 * @description 针对表【ncc_sale_dbdd_wms】的数据库操作Service实现
 * @createDate 2025-05-21 16:04:17
 */
@Service
public class NccSaleDbddWmsServiceImpl extends ServiceImpl<NccSaleDbddWmsMapper, NccSaleDbddWms>
    implements NccSaleDbddWmsService{
        implements NccSaleDbddWmsService {
    @Override
    public List<String> selectDbdd() {
        return this.baseMapper.selectDbdd();
    public List<String> selectDbdd(List<Integer> ids) {
        return this.baseMapper.selectDbdd(ids);
    }
}
src/main/java/com/zy/nc/service/impl/NccScZkmxbWmsServiceImpl.java
@@ -18,8 +18,14 @@
public class NccScZkmxbWmsServiceImpl extends ServiceImpl<NccScZkmxbWmsMapper, NccScZkmxbWms>
implements NccScZkmxbWmsService{
    @Override
    public List<String> selectZk() {
        return this.baseMapper.selectZk();
    public List<String> selectZkOut(List<Integer> ids) {
        return this.baseMapper.selectZkOut(ids);
    }
    @Override
    public List<String> selectZkIn(List<Integer> ids) {
        return this.baseMapper.selectZkIn(ids);
    }
}
src/main/java/com/zy/nc/task/PlanOrderTask.java
@@ -5,11 +5,13 @@
import com.zy.nc.entity.*;
import com.zy.nc.service.*;
import com.zy.nc.task.handler.PlanOrderHandler;
import com.zy.system.service.impl.ConfigServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
@Slf4j
@@ -34,6 +36,8 @@
    @Autowired
    private NccCkPddWmsService nccCkPddWmsService;
    @Autowired
    private ConfigServiceImpl configService;
    /**
     * 发货
@@ -45,6 +49,9 @@
        List<String> Ids = nccSaleXsfhmxWmsService.selectXsfh();
        for (String id : Ids) {
            List<NccSaleXsfhmxWms> wmsFlag = nccSaleXsfhmxWmsService.selectList(new EntityWrapper<NccSaleXsfhmxWms>().eq("vbillcode", id).ne("wms_flag", 1).eq("fstatusflag", 2));
            if (wmsFlag == null || wmsFlag.isEmpty()) {
                return;
            }
            ReturnT<String> returnT = planOrderHandler.start1(wmsFlag);
            if (!returnT.isSuccess()) {
                for (NccSaleXsfhmxWms wms : wmsFlag) {
@@ -63,11 +70,17 @@
     * @return
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute2() {
        List<String> strings = nccScZkmxbWmsService.selectZk();
    public void execute2_1() {
        //Config wmsFlag1 = configService.selectConfigByCode("wms_flag");
        List<Integer> ids = Arrays.asList(6101, 6102, 6106, 6110);
        //String s = "一期成品库-内贸(立体库)、一期成品库-福莱国际外贸(立体库)、一期成品库-外购(立体库)、一期成品库-福达/工厂外贸(立体库)、一期辅料库-包材(立体库)";
        List<String> strings = nccScZkmxbWmsService.selectZkIn(ids);
        for (String string : strings) {
            List<NccScZkmxbWms> wmsFlag = nccScZkmxbWmsService.selectList(new EntityWrapper<NccScZkmxbWms>().eq("vbillcode", string).ne("wms_flag", 1));
            ReturnT<String> returnT = planOrderHandler.start2(wmsFlag);
            if (wmsFlag == null || wmsFlag.isEmpty()) {
                return;
            }
            ReturnT<String> returnT = planOrderHandler.start2In(wmsFlag);
            if (!returnT.isSuccess()) {
                for (NccScZkmxbWms wms : wmsFlag) {
                    wms.setWmsMemo(returnT.getMsg());
@@ -76,7 +89,31 @@
                log.error(returnT.getMsg());
            }
        }
    }
    /**
     * 转库
     *
     * @return
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute2_2() {
        List<Integer> ids = Arrays.asList(6101, 6102, 6106, 6110);
        List<String> strings = nccScZkmxbWmsService.selectZkOut(ids);
        for (String string : strings) {
            List<NccScZkmxbWms> wmsFlag = nccScZkmxbWmsService.selectList(new EntityWrapper<NccScZkmxbWms>().eq("vbillcode", string).ne("wms_flag", 1));
            if (wmsFlag == null || wmsFlag.isEmpty()) {
                return;
            }
            ReturnT<String> returnT = planOrderHandler.start2Out(wmsFlag);
            if (!returnT.isSuccess()) {
                for (NccScZkmxbWms wms : wmsFlag) {
                    wms.setWmsMemo(returnT.getMsg());
                    nccScZkmxbWmsService.updateById(wms);
                }
                log.error(returnT.getMsg());
            }
        }
    }
    /**
@@ -89,6 +126,9 @@
        List<String> strings = nccCgCgdhdWmsService.selectCg();
        for (String string : strings) {
            List<NccCgCgdhdWms> wmsFlag = nccCgCgdhdWmsService.selectList(new EntityWrapper<NccCgCgdhdWms>().eq("vbillcode", string).ne("wms_flag", 1));
            if (wmsFlag == null || wmsFlag.isEmpty()) {
                return;
            }
            ReturnT<String> returnT = planOrderHandler.start3(wmsFlag);
            if (!returnT.isSuccess()) {
                for (NccCgCgdhdWms wms : wmsFlag) {
@@ -108,9 +148,13 @@
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    public void execute5() {
        List<String> strings = nccSaleDbddWmsService.selectDbdd();
        List<Integer> ids = Arrays.asList(6101, 6102, 6106, 6110);
        List<String> strings = nccSaleDbddWmsService.selectDbdd(ids);
        for (String string : strings) {
            List<NccSaleDbddWms> wmsFlag = nccSaleDbddWmsService.selectList(new EntityWrapper<NccSaleDbddWms>().eq("vbillcode", string).ne("wms_flag", 1));
            if (wmsFlag == null || wmsFlag.isEmpty()) {
                return;
            }
            ReturnT<String> returnT = planOrderHandler.start5(wmsFlag);
            if (!returnT.isSuccess()) {
                for (NccSaleDbddWms wms : wmsFlag) {
@@ -133,7 +177,7 @@
    public void execute4() {
        List<String> strings = nccCkPddWmsService.selectPdd();
        for (String string : strings) {
            List<NccCkPddWms> wmsFlag = nccCkPddWmsService.selectList(new EntityWrapper<NccCkPddWms>().eq("vbillcode", string).ne("wms_flag", 1).eq("hdr",0).eq("bdr",0));
            List<NccCkPddWms> wmsFlag = nccCkPddWmsService.selectList(new EntityWrapper<NccCkPddWms>().eq("vbillcode", string).ne("wms_flag", 1).eq("hdr", 0).eq("bdr", 0));
            ReturnT<String> returnT = planOrderHandler.start4(wmsFlag);
            if (!returnT.isSuccess()) {
                for (NccCkPddWms wms : wmsFlag) {
src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
@@ -99,16 +99,16 @@
     *
     * @return
     */
    public ReturnT<String> start2(List<NccScZkmxbWms> wmsFlag) {
    public ReturnT<String> start2In(List<NccScZkmxbWms> wmsFlag) {
        try {
            OpenOrderPakinParam param = new OpenOrderPakinParam();
            param.setOrderType("转库");
            param.setOrderType("转库-入库");
            DetlDto detlDto;
            List<DetlDto> orderDetails = new ArrayList<>();
            long i = 1;
            for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) {
                log.info("NccScZkmxbWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
                if ( nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getDr() == 0) {
                if (nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getDr() == 0) {
                    detlDto = new DetlDto();
                    detlDto.setMatnr(nccScZkmxbWms.getWlbm());
                    detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue());
@@ -132,6 +132,43 @@
        return SUCCESS;
    }
    /**
     * 转库,包含出库
     *
     * @return
     */
    public ReturnT<String> start2Out(List<NccScZkmxbWms> wmsFlag) {
        try {
            OpenOrderPakoutParam param = new OpenOrderPakoutParam();
            param.setOrderType("转库-出库");
            DetlDto detlDto;
            List<DetlDto> orderDetails = new ArrayList<>();
            long i = 1;
            for (NccScZkmxbWms nccScZkmxbWms : wmsFlag) {
                log.info("NccScZkmxbWms数据:{}", JSONObject.toJSON(nccScZkmxbWms));
                if (nccScZkmxbWms.getBdr() == 0 && nccScZkmxbWms.getDr() == 0) {
                    detlDto = new DetlDto();
                    detlDto.setMatnr(nccScZkmxbWms.getWlbm());
                    detlDto.setAnfme(nccScZkmxbWms.getYingzzsl().doubleValue());
                    detlDto.setBatch(nccScZkmxbWms.getVbatchcode());
                    detlDto.setLineNumber(i);
                    detlDto.setRemark(JSONObject.toJSONString(nccScZkmxbWms));
                    orderDetails.add(detlDto);
                    i++;
                }
                nccScZkmxbWms.setWmsFlag(1);
                param.setOrderNo(nccScZkmxbWms.getVbillcode());
            }
            param.setOrderDetails(orderDetails);
            openService.pakoutOrderCreate(param);
            nccScZkmxbWmsService.updateBatchById(wmsFlag);
        } catch (Exception e) {
            e.printStackTrace();
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return FAIL.setMsg(e.getMessage());
        }
        return SUCCESS;
    }
    /**
     * 采购到货
@@ -151,6 +188,7 @@
                    detlDto = new DetlDto();
                    detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
                    detlDto.setAnfme(nccCgCgdhdWms.getYdzsl().doubleValue());
                    detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
                    detlDto.setLineNumber(i);
                    detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
                    orderDetails.add(detlDto);
@@ -214,7 +252,6 @@
    }
    /**
     * 调拨单
     *
@@ -229,16 +266,14 @@
            long i = 1;
            for (NccSaleDbddWms nccCgCgdhdWms : wmsFlag) {
                log.info("nccCgCgdhdWms数据:{}", JSONObject.toJSON(nccCgCgdhdWms));
                if (nccCgCgdhdWms.getDr() == 0 ) {
                    detlDto = new DetlDto();
                    detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
                    detlDto.setAnfme(nccCgCgdhdWms.getZsl().doubleValue());
                    detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
                    detlDto.setLineNumber(i);
                    detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
                    orderDetails.add(detlDto);
                    i++;
                }
                detlDto = new DetlDto();
                detlDto.setMatnr(nccCgCgdhdWms.getWlbm());
                detlDto.setAnfme(nccCgCgdhdWms.getZsl().doubleValue());
                detlDto.setBatch(nccCgCgdhdWms.getVbatchcode());
                detlDto.setLineNumber(i);
                detlDto.setRemark(JSONObject.toJSONString(nccCgCgdhdWms));
                orderDetails.add(detlDto);
                i++;
                nccCgCgdhdWms.setWmsFlag(1);
                param.setOrderNo(nccCgCgdhdWms.getVbillcode());
            }
src/main/java/com/zy/nc/vo/IaIjBill.java
New file
@@ -0,0 +1,8 @@
package com.zy.nc.vo;
import lombok.Data;
@Data
public class IaIjBill {
    private String pk_org;
}
src/main/java/com/zy/nc/vo/IaIjBillB.java
New file
@@ -0,0 +1,12 @@
package com.zy.nc.vo;
import lombok.Data;
@Data
public class IaIjBillB {
    private String csrcid;
    private String cinventoryid;
    private String nnum;
    private String cinventoryvid;
    private String pk_org;
}
src/main/java/com/zy/nc/vo/ic_generalout_b.java
@@ -1,4 +1,16 @@
package com.zy.nc.vo;
import lombok.Data;
@Data
public class ic_generalout_b {
    private String materialvid;
    private Double nshouldassistnum;
    private String ncostprice;
    /**
     * 批次号
     */
    private String vbatchcode;
}
src/main/resources/application.yml
@@ -101,7 +101,7 @@
  #5.3.其他入库单参照转库新增
  #saveRefWhsTrans: http://ip:port/nccloud/api/ic/generalin/saveRefWhsTrans
  #6.调拨订单查询
  #saveRefWhsTrans: http://ip:port/nccloud/api/ic/generalin/saveRefWhsTrans
  dbdd: /nccloud/api/ia/ij/operation/save
  #7.盘点单查询
  invcount: http://ip:port/nccloud/api/ic/invcount/query
src/main/resources/mapper/nc/NccSaleDbddWmsMapper.xml
@@ -60,6 +60,13 @@
    <select id="selectDbdd" resultType="java.lang.String">
        select distinct VBILLCODE
        from ncc_sale_dbdd_wms
        where wms_flag != 1 and FSTATUSFLAG = 4 and FROWSTATUFLAG = 4 limit 100
        where (wms_flag is null or wms_flag != 1) and FSTATUSFLAG = 4 and FROWSTATUFLAG = 4 and dr = 0
        <if test="ids != null">
            and DCCKBM in
            <foreach item="id" collection="ids" separator="," open="(" close=")" index="">
                #{id}
            </foreach>
        </if>
        limit 100
    </select>
</mapper>
src/main/resources/mapper/nc/NccScZkmxbWmsMapper.xml
@@ -76,9 +76,29 @@
        DR,TS,wms_flag
    </sql>
    <select id="selectZk" resultType="java.lang.String">
    <select id="selectZkIn" resultType="java.lang.String">
        select distinct VBILLCODE
        from ncc_sc_zkmxb_wms
        where wms_flag != 1 and DJZT = 4 limit 100
        where wms_flag != 1 and DJZT = 4
        <if test="ids != null">
            and RKCKBM in
            <foreach item="id" collection="ids" separator="," open="(" close=")" index="">
                #{id}
            </foreach>
        </if>
        limit 100
    </select>
    <select id="selectZkOut" resultType="java.lang.String">
        select distinct VBILLCODE
        from ncc_sc_zkmxb_wms
        where wms_flag != 1 and DJZT = 4
        <if test="ids != null">
            and CKCKBM in
            <foreach item="id" collection="ids" separator="," open="(" close=")" index="">
                #{id}
            </foreach>
        </if>
        limit 100
    </select>
</mapper>