自动化立体仓库 - WMS系统
ZY
2025-05-10 4d0d963bb19c7eb5860257eddd112e2592e983aa
单据对接
8个文件已修改
67 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/OrderDetl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/DetlDto.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/SendUtil.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -353,6 +353,10 @@
    @TableField("box_type3")
    private String boxType3 = "1";
    @ApiModelProperty(value= "备注")
    @TableField("remark")
    private String remark;
    public OrderDetl() {}
    public OrderDetl(Long orderId, String orderNo, Double anfme, Double qty, String matnr, String maktx, String batch, String specs, String model, String color, String brand, String unit, Double price, String sku, Double units, String barcode, String origin, String manu, String manuDate, String itemNum, Double safeQty, Double weight, Double manLength, Double volume, String threeCode, String supp, String suppCode, Integer beBatch, String deadTime, Integer deadWarn, Integer source, Integer inspect, Integer danger, Integer status, Long createBy, Date createTime, Long updateBy, Date updateTime, String memo) {
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -266,6 +266,7 @@
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getBrand(), detail.getStandby1(), detail.getStandby2(), detail.getStandby3(), detail.getLineNumber(),
                    detail.getBoxType1(), detail.getBoxType2(), detail.getBoxType3(), detail.getAnfme());
            dto.setRemark(detail.getRemark());
            if (DetlDto.hasLineNumber(list, dto)) {
                DetlDto detlDto = DetlDto.findLineNumber(list, dto.getMatnr(), dto.getBatch(), dto.getBrand(), dto.getStandby1(), dto.getStandby2(), dto.getStandby3(), dto.getLineNumber(),
                        dto.getBoxType1(), dto.getBoxType2(), dto.getBoxType3());
@@ -298,6 +299,7 @@
            orderDetl.setStatus(1);
            orderDetl.setQty(0.0D);
            orderDetl.setPakinPakoutStatus(2);
            orderDetl.setRemark(detlDto.getRemark());
            if (!orderDetlService.insert(orderDetl)) {
                throw new CoolException("生成单据明细失败,请联系管理员");
            }
src/main/java/com/zy/asrs/service/impl/ReportToThirdServiceImpl.java
@@ -10,7 +10,9 @@
import com.zy.asrs.service.ApiLogService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.service.ReportToThirdService;
import com.zy.common.utils.Synchro;
import com.zy.nc.SendUtil;
import com.zy.nc.entity.NccSaleXsfhmxWms;
import com.zy.nc.util.NcResultMessage;
import com.zy.nc.vo.SaleOutBodyVO;
import com.zy.nc.vo.SaleOutHeadVO;
@@ -19,6 +21,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -49,23 +52,38 @@
        NcResultMessage response = null;
        try {
            switch (order.getDocType().toString()) {
                case "销售发货":
                case "35":
                    //组装对象数据
                    Map<String, Object> data = new HashMap<String, Object>();
                    SaleOutHeadVO saleOutHeadVO = new SaleOutHeadVO();
                    saleOutHeadVO.setPk_org("FYT");
                    saleOutHeadVO.setCwarehouseid("6101");
                    SaleOutBodyVO saleOutBodyVO = null;
                    List<SaleOutBodyVO> saleOutBodyVOList = new ArrayList<>();
                    for (OrderDetl orderDetl : orderDetls) {
                        saleOutBodyVO = new SaleOutBodyVO();
                        saleOutBodyVO.setCsourcebillhid("1001A1100000027XNSH2");
                        saleOutBodyVO.setCsourcebillbid("1001A1100000027YFC8U");
                        saleOutBodyVO.setCsourcetype("4331-01");
                        String remark = orderDetl.getRemark();
                        if (!Cools.isEmpty(remark)) {
                            NccSaleXsfhmxWms nccSaleXsfhmxWms = JSONObject.parseObject(remark, NccSaleXsfhmxWms.class);
                            Synchro.Copy(nccSaleXsfhmxWms, saleOutBodyVO);
                            saleOutBodyVO.setCsourcetype("4331-01");
                            saleOutBodyVO.setCsourcebillbid(nccSaleXsfhmxWms.getCdeliverybid());
                            saleOutBodyVO.setCsourcebillhid(nccSaleXsfhmxWms.getCdeliveryid());
                        }
                        saleOutBodyVO.setNnum(orderDetl.getQty());
                        saleOutBodyVOList.add(saleOutBodyVO);
                    }
                    data.put("saleOutHeadVO", saleOutHeadVO);
                    data.put("saleOutBodyVO", saleOutBodyVO);
                    saleOutHeadVO.setVdef2("");
                    saleOutHeadVO.setVdef3("");
                    saleOutHeadVO.setVdef4("");
                    saleOutHeadVO.setVdef7("");
                    saleOutHeadVO.setVdef8("");
                    saleOutHeadVO.setVdef13("");
                    saleOutHeadVO.setVdef14("");
                    data.put("SaleOutHeadVO", saleOutHeadVO);
                    data.put("SaleOutBodyVO", saleOutBodyVOList);
                    //发送请求
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + port, saveRefDelivery, JSONObject.toJSONString(data));
                    response = SendUtil.sendDataToNc(SendUtil.token, nyncIp + ":" + port, saveRefDelivery, JSONObject.toJSONString(data));
                    if (!Cools.isEmpty(response) && response.isSuccess()) {
                        log.info("response:{}", response);
                        http = true;
@@ -91,6 +109,7 @@
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            throw new CoolException("调用接口报错,请联系管理员");
        } finally {
            reportApiLog(response, order.getDocType$(), nyncIp, saveRefDelivery);
src/main/java/com/zy/asrs/task/OrderSyncScheduler.java
@@ -104,9 +104,9 @@
    @Scheduled(cron = "0/30 * * * * ? ")
    @Async("orderThreadPool")
    public void completeAndReportOrderReport() {
        if (!ErpReportOld){
            return;
        }
//        if (!ErpReportOld){
//            return;
//        }
        String erpReport = Parameter.get().getErpReport();
        if (!Cools.isEmpty(erpReport) && erpReport.equals("true")) {
            List<Order> orders = orderService.selectComplete();
src/main/java/com/zy/common/model/DetlDto.java
@@ -19,6 +19,8 @@
    private String matnr;
    private String remark;
    private String batch = "";
    private String brand = "";
    private String standby1 = "";
src/main/java/com/zy/nc/SendUtil.java
@@ -63,7 +63,7 @@
    public static void main(String[] args) {
        try {
//            // 初始化数据
            init();
//            // 请求token
            if (token == null) {
                token = getToken();
@@ -92,7 +92,7 @@
        }
        // token转对象,获取api访问所用token和secret
        NcResultMessage returnData = JSONObject.parseObject(token, NcResultMessage.class);
        if (returnData.isSuccess()) {
        if (token != null && returnData.isSuccess()) {
            JSONObject data = JSONObject.parseObject(returnData.getData().toString());
            String access_token = (String) data.get("access_token");
            String security_key = (String) data.get("security_key");
@@ -105,7 +105,8 @@
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
                data = JSONObject.parseObject(token.getBytes(), NcResultMessage.class);
                returnData = JSONObject.parseObject(token, NcResultMessage.class);
                data = JSONObject.parseObject(returnData.getData().toString());
                access_token = (String) data.get("access_token");
                security_key = (String) data.get("security_key");
                refresh_token = (String) data.get("refresh_token");
@@ -147,6 +148,7 @@
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            System.out.println("【json】:" + json);
            System.out.println("【RESULT】:" + result);
            System.out.println("result解密:" + result2);
            return JSONObject.parseObject(result2, NcResultMessage.class);
@@ -161,6 +163,9 @@
     * @throws Exception
     */
    private static String getToken() throws Exception {
        if (grant_type == null) {
            init();
        }
        String token = null;
        if ("password".equals(grant_type)) {
            // 密码模式
@@ -392,7 +397,7 @@
            result = new String(temp.toString().getBytes("utf-8"), ecod);
            System.out.println(result);
        } catch (Exception e) {
            System.out.println(e);
            e.printStackTrace();
            throw e;
        } finally {
            if (null != bufferedReader) {
src/main/java/com/zy/nc/task/handler/PlanOrderHandler.java
@@ -39,7 +39,7 @@
    public ReturnT<String> start1() {
        List<String> Ids = nccSaleXsfhmxWmsService.selectXsfh();
        for (String id : Ids) {
            List<NccSaleXsfhmxWms> wmsFlag = nccSaleXsfhmxWmsService.selectList(new EntityWrapper<NccSaleXsfhmxWms>().eq("cdeliveryid", id).ne("wms_flag", 1).eq("fstatusflag", 2));
            List<NccSaleXsfhmxWms> wmsFlag = nccSaleXsfhmxWmsService.selectList(new EntityWrapper<NccSaleXsfhmxWms>().eq("vbillcode", id).ne("wms_flag", 1).eq("fstatusflag", 2));
            OpenOrderPakoutParam param = new OpenOrderPakoutParam();
            param.setOrderType("销售发货");
            DetlDto detlDto;
@@ -51,6 +51,7 @@
                    detlDto.setMatnr(nccSaleXsfhmxWms.getWlbm());
                    detlDto.setAnfme(nccSaleXsfhmxWms.getNastnum());
                    detlDto.setLineNumber(i);
                    detlDto.setRemark(JSONObject.toJSONString(nccSaleXsfhmxWms));
                    orderDetails.add(detlDto);
                    log.info("NccSaleXsfhmxWms数据:{}", JSONObject.toJSON(nccSaleXsfhmxWms));
                    i++;
src/main/resources/application.yml
@@ -79,8 +79,8 @@
# 用友NC对接
NYNC:
  ip:
  port:
  ip: http://192.168.5.200
  port: 1105
  pageSize: 500
  #1.销售出库单参照发货单新增
  saveRefDelivery: /nccloud/api/ic/saleout/saveRefDelivery