自动化立体仓库 - WMS系统
zyx
2023-08-29 67f4004e7645ecb4b88191981bcb106a55cd5765
U8接口bug修复
6个文件已修改
223 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/Order.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/MatInfoParam.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 149 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -244,34 +244,55 @@
            return R.parse(BaseRes.PARAM);
        }
        int MsgT = 0;
        int MsgF = 0;
        StringBuilder Msg= new StringBuilder("原因:");
        int msgU = 0;
        int msgT = 0;
        int msgF = 0;
        StringBuilder msg= new StringBuilder("原因:");
        List<MatInfoParam> matDetails = (List<MatInfoParam>) param.get("matDetails");
        for (Object matDetail : matDetails){
            MatInfoParam matInfoParam = JSONObject.parseObject(JSON.toJSONString(matDetail),MatInfoParam.class);
            if (Cools.isEmpty(matDetails)) {
                MsgF++;
                msgF++;
                continue;
            }
            openService.syncMat(matInfoParam);
            if(matInfoParam.isType()){
                MsgT++;
            }else {
                MsgF++;
                Msg.append(matInfoParam.getCinvcode()).append(":").append(matInfoParam.getMemo()).append(";");
            if(matInfoParam.isUpdate()){
                msgU++;
            }else if(matInfoParam.isInsert()){
                msgT++;
            } else if(matInfoParam.isError()){
                msgF++;
                msg.append(matInfoParam.getCinvcode()).append(":").append(matInfoParam.getMemo()).append(";");
            }
        }
        if (MsgF==0){
            return R.ok("成功接收物料:"+MsgT+"个");
        }else if (MsgT==0){
            return R.ok("接收物料失败:"+MsgF+"个;"+Msg);
        }else {
            return R.ok("成功接收物料:"+MsgT+"个;"+"接收物料失败:"+MsgF+"个;"+Msg);
        String message = "";
        boolean success = false;
        if(msgT != 0){
            message += "成功接收物料:"+msgT+"个";
            success = true;
        }
        if(msgU != 0){
            message += "成功修改物料:"+msgU+"个";
            success = true;
        }
        if(msgF != 0){
            message += "接收物料失败:"+msgF+"个;"+msg;
        }
        if(success){
            return R.ok(message);
        }else {
            return R.error(message);
        }
//        if (MsgF==0){
//            return R.ok("成功接收物料:"+MsgT+"个");
//        }else if (MsgT==0){
//            return R.error("接收物料失败:"+MsgF+"个;"+Msg);
//        }else {
//            return R.ok("成功接收物料:"+MsgT+"个;"+"接收物料失败:"+MsgF+"个;"+Msg);
//        }
    }
src/main/java/com/zy/asrs/entity/Order.java
@@ -163,7 +163,7 @@
    private String salesman;
    /**
     * 结算天数
     * setMemo
     */
    @ApiModelProperty(value= "结算天数")
    @TableField("account_day")
src/main/java/com/zy/asrs/entity/param/MatInfoParam.java
@@ -71,7 +71,11 @@
     */
    private String cinvdefine4;
    private boolean type;
    private boolean insert;
    private boolean update;
    private boolean error;
    private String memo;
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -20,6 +20,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.Date;
@@ -615,16 +616,24 @@
    @Transactional
    public boolean syncMat(MatInfoParam param) {
        if(!Cools.isEmpty(matService.selectByMatnr(param.getCinvcode()))){
            callApiLogSave(param, "/open/asrs/mat/v1", "接收ERP下发商品信息失败!!!商品已存在!!!", false);
            param.setType(false);
            param.setMemo("商品已存在!");
            return false;
        }
        Date now = new Date();
        Mat mat = new Mat();
        Mat mat = matService.selectByMatnr(param.getCinvcode());
        boolean update = true;
        if(Cools.isEmpty(matService.selectByMatnr(param.getCinvcode()))){
            //物料号
            mat = new Mat();
            mat.setMatnr(param.getCinvcode());
            mat.setCreateTime(now);
            mat.setCreateBy(9999L);
            update = false;
//            callApiLogSave(param, "/open/asrs/mat/v1", "接收ERP下发商品信息失败!!!商品已存在!!!", false);
//            param.setType(false);
//            param.setMemo("商品已存在!");
//            return false;
        }
        //Mat mat = new Mat();
        //物料号
        mat.setMatnr(param.getCinvcode());
        //mat.setMatnr(param.getCinvcode());
        //物料名称
        mat.setMaktx(param.getCinvname());
        //规格型号
@@ -648,19 +657,34 @@
        //通用型号
        mat.setModel(param.getCinvdefine4());
        mat.setCreateTime(now);
        //9999表示erp下发
        mat.setUpdateBy(9999L);
        mat.setTagId(1L);
        mat.setUpdateTime(now);
        if (matService.insert(mat)) {
            callApiLogSave(param, "/open/asrs/mat/v1", "接收ERP下发商品信息成功!添加商品信息成功!", true);
            param.setType(true);
        } else {
            callApiLogSave(param, "/open/asrs/mat/v1", "添加ERP下发商品信息失败!!!状态异常!!!", false);
            param.setType(false);
            param.setMemo("添加ERP下发商品信息失败!");
        if(update){
            if (matService.updateById(mat)){
                callApiLogSave(param, "/open/asrs/mat/v1", "接收ERP下发商品信息成功!添加商品信息成功!", true);
                param.setUpdate(true);
            } else {
                callApiLogSave(param, "/open/asrs/mat/v1", "添加ERP下发商品信息失败!!!状态异常!!!", false);
                param.setError(true);
                param.setMemo("添加ERP下发商品信息失败!");
            }
        }else {
            if (matService.insert(mat)) {
                callApiLogSave(param, "/open/asrs/mat/v1", "接收ERP下发商品信息成功!添加商品信息成功!", true);
                param.setInsert(true);
            } else {
                callApiLogSave(param, "/open/asrs/mat/v1", "添加ERP下发商品信息失败!!!状态异常!!!", false);
                param.setError(true);
                param.setMemo("添加ERP下发商品信息失败!");
            }
        }
        matService.insert(mat);
        return true;
    }
@@ -674,11 +698,12 @@
        if(!Cools.isEmpty(orderService.selectByNo(param.get("id").toString()))){
            throw new CoolException("该单据已存在,无法生成单据信息");
        }
        Order order = orderMapping(param);
        Date now = new Date();
        Order order = orderMapping(param,now);
        orderService.insert(order);
        List<Map<String, Object>> orderDetails = (List<Map<String, Object>>) param.get("orderDetails");
        orderDetails.forEach(odParam -> {
            OrderDetl od = orderDetlMapping(order.getOrderNo(),odParam);
            OrderDetl od = orderDetlMapping(order,odParam,now);
            orderDetlService.insert(od);
        });
@@ -702,34 +727,43 @@
        return true;
    }
    private Order orderMapping(Map<String, Object> param){
        Date now = new Date();
    private Order orderMapping(Map<String, Object> param, Date now){
        Order order = new Order();
        //uuid
        order.setUuid(String.valueOf(snowflakeIdWorker.nextId()));
        //核算主体
        order.setItemName(param.get("account").toString());
        //order.setItemName(param.get("account").toString());
        order.setItemName(toString(param.get("account")));
        //单据唯一表示
        order.setOrderNo(param.get("id").toString());
        //order.setOrderNo(param.get("id").toString());
        order.setOrderNo(toString(param.get("id")));
        //业务类型
        order.setDefNumber(param.get("cBusType").toString());
        //order.setDefNumber(param.get("cBusType").toString());
        order.setDefNumber(toString(param.get("cBusType")));
        //单据类型
        DocType docType = docTypeService.selectOrAdd(param.get("cVouchType").toString(), Boolean.TRUE);
        order.setDocType(docType.getDocId());
        //单据日期
        order.setOrderTime(param.get("dDate").toString());
        //order.setOrderTime(param.get("dDate").toString());
        order.setOrderTime(toString(param.get("dDate")));
        //供应商/客户编码
        order.setCstmrName(param.get("ks").toString());
        //order.setCstmrName(param.get("ks").toString());
        order.setCstmrName(toString(param.get("ks")));
        //仓库
        order.setTel(param.get("cWhName").toString());
        //order.setTel(param.get("cWhName").toString());
        order.setTel(toString(param.get("cWhName")));
        //出入库类别
        order.setOperMemb(param.get("cRdName").toString());
        //setOperMemb(param.get("cRdName").toString());
        order.setOperMemb(toString(param.get("cRdName")));
        //部门
        order.setSalesman(param.get("cDepCode").toString());
        //order.setSalesman(param.get("cDepCode").toString());
        order.setSalesman(toString(param.get("cDepCode")));
        //备注
        order.setMemo(param.get("cMemo").toString());
        //order.setMemo(param.get("cMemo").toString());
        order.setMemo(toString(param.get("cMemo")));
        //制单人
        order.setShipCode(param.get("cMaker").toString());
        //order.setShipCode(param.get("cMaker").toString());
        order.setShipCode(toString(param.get("cMaker")));
        order.setCreateTime(now);
        order.setUpdateTime(now);
@@ -741,29 +775,54 @@
        return order;
    }
    private OrderDetl orderDetlMapping(String orderId, Map<String, Object> odParam){
    private OrderDetl orderDetlMapping(Order order, Map<String, Object> odParam, Date now){
        OrderDetl od = new OrderDetl();
        od.setOrderNo(orderId);
        od.setOrderId(order.getId());
        od.setOrderNo(order.getOrderNo());
        //行唯一标识
        od.setItemNum(odParam.get("autoId").toString());
        //od.setItemNum(odParam.get("autoId").toString());
        od.setItemNum(toString(odParam.get("autoId")));
        //存货编码
        od.setMatnr(odParam.get("cInvCode").toString());
        //od.setMatnr(odParam.get("cInvCode").toString());
        od.setMatnr(toString(odParam.get("cInvCode")));
        //存货名称
        od.setMaktx(odParam.get("cInvName").toString());
        //od.setMaktx(odParam.get("cInvName").toString());
        od.setMaktx(toString(odParam.get("cInvName")));
        //规格型号
        od.setSpecs(odParam.get("cInvStd").toString());
        //od.setSpecs(odParam.get("cInvStd").toString());
        od.setSpecs(toString(odParam.get("cInvStd")));
        //计量单位
        od.setUnit(odParam.get("cComUnitName").toString());
        //od.setUnit(odParam.get("cComUnitName").toString());
        od.setUnit(toString(odParam.get("cComUnitName")));
        //数量
        od.setAnfme(Double.parseDouble(odParam.get("iQuantity").toString()));
        //od.setAnfme(toString(odParam.get("iQuantity")));
        //行号
        od.setBrand(odParam.get("irowno").toString());
        //od.setBrand(odParam.get("irowno").toString());
        od.setBrand(toString(odParam.get("irowno")));
        //销售订单号
        od.setColor(odParam.get("csocode").toString());
        //od.setColor(odParam.get("csocode").toString());
        od.setColor(toString(odParam.get("csocode")));
        //销售订单行号
        od.setOrigin(odParam.get("isoseq").toString());
        //od.setOrigin(odParam.get("isoseq").toString());
        od.setOrigin(toString(odParam.get("isoseq")));
        od.setStatus(1);
        od.setQty(0.0D);
        od.setCreateBy(9999L);
        od.setCreateTime(now);
        od.setUpdateBy(9999L);
        od.setUpdateTime(now);
        return od;
    }
    private String toString(Object o){
        if(StringUtils.isEmpty(o)){
            return null;
        }else{
            return o.toString();
        }
    }
@@ -773,4 +832,12 @@
                response, bool);
    }
    public static void main(String[] args) {
        Object s = null;
        if(StringUtils.isEmpty(s)){
            System.out.println("null");
        }else {
            System.out.println(s.toString());
        }
    }
}
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -259,9 +259,13 @@
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response);
            int code = (int) jsonObject.get("code");
            if(code != 200){
                throw new CoolException(jsonObject.get("msg").toString());
            if(Cools.isEmpty(jsonObject.get("errCode"))){
                throw new CoolException(jsonObject.get("Message").toString());
            }
            int code = (int) jsonObject.get("errCode");
            if(code != 0){
                throw new CoolException(jsonObject.get("errMsg").toString());
            }
            success = true;
            return code;
src/main/resources/application.yml
@@ -10,7 +10,8 @@
    enabled: false
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzskasrs
    #url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzskasrs
    url: jdbc:sqlserver://localhost:1433;databasename=tzskasrs
    username: sa
    password: sa@123
  mvc: