#
Junjie
2024-06-16 83c548d3dba59aaed9b52b5d413c6912a87d2efc
#
10个文件已修改
1个文件已添加
298 ■■■■■ 已修改文件
zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TestController.java 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/resources/application.yml 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-wms/src/main/webapp/static/js/order/order.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
zy-asrs-common/src/main/java/com/zy/asrs/common/domain/dto/DetlDto.java
@@ -25,6 +25,13 @@
    private String memo;
    private String warehouse;//仓库号
    private String origin;//来源单号
    private String originNo;//来源序号
    public DetlDto() {
    }
zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/entity/param/GenerateOrderMatParam.java
@@ -14,4 +14,16 @@
    //数量
    private Double anfme;
    //单位
    private String unit;
    //仓库号
    private String warehouse;
    //来源单号
    private String origin;
    //来源序号
    private String originNo;
}
zy-asrs-common/src/main/java/com/zy/asrs/common/openapi/service/impl/ApiServiceImpl.java
@@ -99,6 +99,10 @@
            orderDetl.sync(mat);
            orderDetl.setBatch(matParam.getBatch());
            orderDetl.setAnfme(matParam.getAnfme());
            orderDetl.setUnit(matParam.getUnit());
            orderDetl.setThreeCode(matParam.getWarehouse());//仓库号
            orderDetl.setSupp(matParam.getOrigin());//来源单号
            orderDetl.setSuppCode(matParam.getOriginNo());//来源序号
            orderDetl.setOrderId(order.getId());
            orderDetl.setOrderNo(order.getOrderNo());
            orderDetl.setCreateBy(9527L);
zy-asrs-common/src/main/java/com/zy/asrs/common/utils/Utils.java
@@ -1,5 +1,7 @@
package com.zy.asrs.common.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.zy.asrs.common.wms.service.LocDirectionService;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.SpringUtils;
@@ -7,6 +9,8 @@
import java.security.SecureRandom;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.Base64;
import java.util.LinkedHashMap;
import java.util.List;
/**
@@ -141,4 +145,14 @@
        return result;
    }
    //念初ERP数据加密算法
    public static String ncErpDataEncode(LinkedHashMap<String, Object> param) {
        String jsonString = JSON.toJSONString(param, SerializerFeature.DisableCircularReferenceDetect);
        jsonString += "Digi";
        String baseCode = Base64.getEncoder().encodeToString(jsonString.getBytes());
        String encode = baseCode.replace("/", "{-----------------------------}");
        return encode;
    }
}
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/entity/OrderDetl.java
@@ -184,21 +184,21 @@
    private Double volume;
    /**
     * 三方编码
     * 仓库号
     */
    @ApiModelProperty(value= "三方编码")
    @ApiModelProperty(value= "仓库号")
    private String threeCode;
    /**
     * 供应商
     * 来源单号
     */
    @ApiModelProperty(value= "供应商")
    @ApiModelProperty(value= "来源单号")
    private String supp;
    /**
     * 供应商编码
     * 来源序号
     */
    @ApiModelProperty(value= "供应商编码")
    @ApiModelProperty(value= "来源序号")
    private String suppCode;
    /**
zy-asrs-common/src/main/java/com/zy/asrs/common/wms/service/impl/MobileServiceImpl.java
@@ -124,6 +124,9 @@
                }
                DetlDto detlDto = new DetlDto(elem.getMatnr(), elem.getBatch(), elem.getAnfme());
                detlDto.setWarehouse(orderDetl.getThreeCode());//来源仓库
                detlDto.setOrigin(orderDetl.getSupp());//来源单号
                detlDto.setOriginNo(orderDetl.getSuppCode());//来源序号
                if (DetlDto.has(detlDtos, detlDto)) {
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                    assert one != null;
@@ -144,6 +147,9 @@
                waitPakin.setZpallet(param.getBarcode());   // 托盘码
                waitPakin.setIoStatus("N");     // 入出状态
                waitPakin.setAnfme(detlDto.getAnfme());  // 数量
                waitPakin.setThreeCode(detlDto.getWarehouse());  // 仓库
                waitPakin.setSupp(detlDto.getOrigin());  // 来源单号
                waitPakin.setSuppCode(detlDto.getOriginNo());  // 来源序号
                waitPakin.setStatus("Y");    // 状态
                waitPakin.setAppeUser(userId);
                waitPakin.setAppeTime(now);
zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
@@ -188,6 +188,10 @@
            mat.setMatnr(matParam.getMatnr());
            mat.setBatch(matParam.getBatch());
            mat.setAnfme(matParam.getCount());
            mat.setUnit(matParam.getUnit());
            mat.setWarehouse(matParam.getWarehouse());
            mat.setOrigin(matParam.getOrigin());
            mat.setOriginNo(matParam.getOriginNo());
            mats.add(mat);
        }
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/TestController.java
New file
@@ -0,0 +1,136 @@
package com.zy.asrs.wms.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.common.sys.entity.OperateLog;
import com.zy.asrs.common.sys.service.OperateLogService;
import com.zy.asrs.common.utils.HttpHandler;
import com.zy.asrs.common.utils.Utils;
import com.zy.asrs.common.web.BaseController;
import com.zy.asrs.common.wms.entity.Order;
import com.zy.asrs.common.wms.entity.WrkDetl;
import com.zy.asrs.common.wms.entity.WrkMast;
import com.zy.asrs.common.wms.service.*;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.*;
@RestController
public class TestController extends BaseController {
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WrkDetlService wrkDetlService;
    @Autowired
    private OrderService orderService;
    @Autowired
    private OperateLogService operateLogService;
    @Value("${erp.url}")
    private String ERP_URL;
    @Value("${erp.report}")
    private String ERP_REPORT;
    @Value("${erp.login}")
    private String ERP_LOGIN;
    @GetMapping("/test")
    public R test(@RequestParam Integer wrkNo) {
        WrkMast wrkMast = wrkMastService.getOne(new LambdaQueryWrapper<WrkMast>().eq(WrkMast::getWrkNo, wrkNo));
        Long hostId = wrkMast.getHostId();
        List<WrkDetl> wrkDetls = wrkDetlService.list(new LambdaQueryWrapper<WrkDetl>().eq(WrkDetl::getWrkNo, wrkMast.getWrkNo()).eq(WrkDetl::getHostId, hostId));
        // 区分订单任务
        List<WrkDetl> wrkDetlsKeyOrder = new ArrayList<>();
        if (!Cools.isEmpty(wrkDetls)) {
            Iterator<WrkDetl> iterator = wrkDetls.iterator();
            while (iterator.hasNext()) {
                WrkDetl wrkDetl = iterator.next();
                if (!Cools.isEmpty(wrkDetl.getOrderNo())) {
                    wrkDetlsKeyOrder.add(wrkDetl);
                    iterator.remove();
                }
            }
        }
        if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getWrkSts() == 200) {
            //上报念初ERP   【 上报三方平台 】
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
            String nowFormat = dateFormat.format(new Date());
            ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>();
            String orderNo = "";
            for (WrkDetl wrkDetl : wrkDetls) {
                orderNo = wrkDetl.getOrderNo();
                LinkedHashMap<String, Object> mat = new LinkedHashMap<>();
                mat.put("GoodsCode", wrkDetl.getMatnr());
                mat.put("Num", wrkDetl.getAnfme());
                if (!Cools.isEmpty(wrkDetl.getBatch())) {
                    mat.put("BatchNo", wrkDetl.getBatch());
                }
                if (!Cools.isEmpty(wrkDetl.getThreeCode())) {
                    mat.put("DepotName", wrkDetl.getThreeCode());
                }
                if (!Cools.isEmpty(wrkDetl.getSupp())) {
                    mat.put("FromDanCode", wrkDetl.getSupp());
                }
                if (!Cools.isEmpty(wrkDetl.getSuppCode())) {
                    mat.put("FromNo", wrkDetl.getSuppCode());
                }
                mats.add(mat);
            }
            Order order = orderService.selectByNo(orderNo, hostId);
            if (order != null) {
                LinkedHashMap<String, Object> param = new LinkedHashMap<>();
                param.put("Login", ERP_LOGIN);
                param.put("DanType", order.getDocType$());
                param.put("Date", nowFormat);
                param.put("FromDanCode", orderNo);
                param.put("Data", mats);
                String response = null;
                try {
                    response = new HttpHandler.Builder()
                            .setUri(ERP_URL)
                            .setPath(ERP_REPORT + Utils.ncErpDataEncode(param))
                            .build()
                            .doGet();
                    JSONObject jsonObject = JSON.parseObject(response);
                    JSONArray result = jsonObject.getJSONArray("result");
                    Object object = result.get(0);
                    JSONObject data = JSON.parseObject(object.toString());
                    if (data.getBoolean("State")) {
                        //上报成功
                    } else {
                        //上报失败
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                } finally {
                    //记录上报数据
                    OperateLog operateLog = new OperateLog();
                    operateLog.setAction("上报ERP," + ERP_URL + ERP_REPORT);
                    operateLog.setRequest(Utils.ncErpDataEncode(param));
                    operateLog.setResponse(response);
                    operateLog.setCreateTime(new Date());
                    operateLog.setSystem("WMS");
                    operateLogService.save(operateLog);
                }
            }
        }
        return R.ok();
    }
}
zy-asrs-wms/src/main/java/com/zy/asrs/wms/task/handler/WorkLogHandler.java
@@ -1,7 +1,15 @@
package com.zy.asrs.wms.task.handler;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.common.sys.entity.OperateLog;
import com.zy.asrs.common.sys.service.OperateLogService;
import com.zy.asrs.common.utils.HttpHandler;
import com.zy.asrs.common.utils.Utils;
import com.zy.asrs.common.wms.entity.Order;
import com.zy.asrs.common.wms.entity.WaitPakin;
import com.zy.asrs.common.wms.entity.WrkDetl;
import com.zy.asrs.common.wms.entity.WrkMast;
@@ -11,13 +19,13 @@
import com.zy.asrs.wms.task.core.ReturnT;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.text.SimpleDateFormat;
import java.util.*;
/**
 * Created by vincent on 2020/7/6
@@ -40,6 +48,17 @@
    private WaitPakinLogService waitPakinLogService;
    @Autowired
    private OrderService orderService;
    @Autowired
    private OperateLogService operateLogService;
    @Value("${erp.url}")
    private String ERP_URL;
    @Value("${erp.report}")
    private String ERP_REPORT;
    @Value("${erp.login}")
    private String ERP_LOGIN;
    // update asr_wrk_mast set inv_wh = 'Y', ove_mk = 'Y' where wrk_no =
    @Transactional
@@ -99,6 +118,75 @@
                }
            }
            if (wrkMast.getIoType() == 1 || wrkMast.getIoType() == 53 || wrkMast.getWrkSts() == 200) {
                //上报念初ERP   【 上报三方平台 】
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
                String nowFormat = dateFormat.format(new Date());
                ArrayList<LinkedHashMap<String, Object>> mats = new ArrayList<>();
                String orderNo = "";
                for (WrkDetl wrkDetl : wrkDetls) {
                    orderNo = wrkDetl.getOrderNo();
                    LinkedHashMap<String, Object> mat = new LinkedHashMap<>();
                    mat.put("GoodsCode", wrkDetl.getMatnr());
                    mat.put("Num", wrkDetl.getAnfme());
                    if (!Cools.isEmpty(wrkDetl.getBatch())) {
                        mat.put("BatchNo", wrkDetl.getBatch());
                    }
                    if (!Cools.isEmpty(wrkDetl.getThreeCode())) {
                        mat.put("DepotName", wrkDetl.getThreeCode());
                    }
                    if (!Cools.isEmpty(wrkDetl.getSupp())) {
                        mat.put("FromDanCode", wrkDetl.getSupp());
                    }
                    if (!Cools.isEmpty(wrkDetl.getSuppCode())) {
                        mat.put("FromNo", wrkDetl.getSuppCode());
                    }
                    mats.add(mat);
                }
                Order order = orderService.selectByNo(orderNo, hostId);
                if (order != null) {
                    LinkedHashMap<String, Object> param = new LinkedHashMap<>();
                    param.put("Login", ERP_LOGIN);
                    param.put("DanType", order.getDocType$());
                    param.put("Date", nowFormat);
                    param.put("FromDanCode", orderNo);
                    param.put("Data", mats);
                    String response = null;
                    try {
                        response = new HttpHandler.Builder()
                                .setUri(ERP_URL)
                                .setPath(ERP_REPORT + Utils.ncErpDataEncode(param))
                                .build()
                                .doGet();
                        JSONObject jsonObject = JSON.parseObject(response);
                        JSONArray result = jsonObject.getJSONArray("result");
                        Object object = result.get(0);
                        JSONObject data = JSON.parseObject(object.toString());
                        if (data.getBoolean("State")) {
                            //上报成功
                        } else {
                            //上报失败
                            exceptionHandle("上报ERP失败[workNo={0}]失败", wrkMast.getWrkNo());
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                        //异常上报失败
                        exceptionHandle("上报ERP异常失败[workNo={0}]失败", wrkMast.getWrkNo());
                    } finally {
                        //记录上报数据
                        OperateLog operateLog = new OperateLog();
                        operateLog.setAction("上报ERP," + ERP_URL + ERP_REPORT);
                        operateLog.setRequest(Utils.ncErpDataEncode(param));
                        operateLog.setResponse(response);
                        operateLog.setCreateTime(new Date());
                        operateLog.setSystem("WMS");
                        operateLogService.save(operateLog);
                    }
                }
            }
            // 保存工作主档历史档
            if (!wrkMastLogService.saveToHistory(wrkMast.getId())) {
                exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo());
zy-asrs-wms/src/main/resources/application.yml
@@ -54,4 +54,9 @@
  publicAlias: publicCert
  storePass: public_zhongyang_123456789
  licensePath: license.lic
  publicKeysStorePath: publicCerts.keystore
  publicKeysStorePath: publicCerts.keystore
erp:
  url: http://192.168.1.240:8080
  login: DS
  report: /datasnap/rest/TServerMethods1/YZAPI/
zy-asrs-wms/src/main/webapp/static/js/order/order.js
@@ -172,7 +172,7 @@
                            // },
                            // {field: 'inQty', title: '已入库量'},
                            // {field: 'color', title: '颜色'},
                            {field: 'origin', title: '仓库号'}
                            {field: 'threeCode', title: '仓库号'}
                        ]],
                        request: {
                            pageName: 'curr',