自动化立体仓库 - WMS系统
#
zwl
14 小时以前 8d15a90edbf860de951c7981ef8a5b22e4f95151
#
3个文件已修改
11个文件已删除
3854 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/task/AutomaticallyIssueWCSTasksScheduler.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java 1897 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java 163 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java 288 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java 556 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java 238 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 89 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/AutomaticallyIssueWCSTasksScheduler.java
@@ -3,6 +3,7 @@
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.AutomaticallyIssueWCSTasksHandler;
import com.zy.asrs.task.handler.WorkMastHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -19,7 +20,7 @@
    @Autowired
    private WrkMastService wrkMastService;
    @Autowired
    private WorkMastHandler workMastHandler;
    private AutomaticallyIssueWCSTasksHandler automaticallyIssueWCSTasksHandler;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
@@ -27,16 +28,6 @@
        if (wrkMasts.isEmpty()) {
            return;
        }
        for (WrkMast wrkMast : wrkMasts) {
            ReturnT<String> returnT = workMastHandler.start(wrkMast);
            if (!returnT.isSuccess()) {
                wrkMast.setUpdMk("X");
                wrkMast.setErrorMemo(returnT.getMsg());
                wrkMast.setErrorTime(new Date());
                if (!wrkMastService.updateById(wrkMast)) {
                    log.error("工作档[workNo={}]标记待处理失败", wrkMast.getWrkNo());
                }
            }
        }
        ReturnT<String> returnT = automaticallyIssueWCSTasksHandler.start(wrkMasts);
    }
}
src/main/java/com/zy/asrs/task/OrderToSortLineScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/handler/AutomaticallyIssueWCSTasksHandler.java
@@ -1,20 +1,112 @@
package com.zy.asrs.task.handler;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.utils.HttpHandler;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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 java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
@Slf4j
@Service
@Transactional
public class AutomaticallyIssueWCSTasksHandler extends AbstractHandler<String> {
    @Value("${wcs.switch}")
    private String switchValue;
    @Value("${wcs.address.URL}")
    private String urlValue;
    @Value("${wcs.address.createInTask}")
    private String createInTaskValue;
    @Value("${wcs.address.createOutTask}")
    private String createOutTaskValue;
    @Value("${wcs.address.createLocMoveTask}")
    private String createLocMoveTaskValue;
    public ReturnT<String> start(List<WrkMast> wrkMast) {
        try {
            if (!Boolean.parseBoolean(String.valueOf(switchValue))) {
                return SUCCESS;
            }
            if (wrkMast == null || wrkMast.isEmpty()) {
                return SUCCESS;
            }
            List<WrkMast> toSend = new ArrayList<>();
            for (WrkMast m : wrkMast) {
                if (m == null) { continue; }
                if (Objects.equals(m.getWrkSts(), 11L)) {
                    if (m.getUpdMk() != null && "WCS_SENT".equalsIgnoreCase(m.getUpdMk())) {
                        continue;
                    }
                    toSend.add(m);
                }
            }
            if (toSend.isEmpty()) {
                return SUCCESS;
            }
            List<Map<String, Object>> tasks = new ArrayList<>();
            for (WrkMast m : toSend) {
                Map<String, Object> t = new HashMap<>();
                t.put("taskNo", String.valueOf(m.getWrkNo()));
                t.put("staNo", String.valueOf(m.getStaNo()));
                t.put("locNo", m.getSourceLocNo());
                if (m.getIoPri() != null) {
                    t.put("taskPri", m.getIoPri().intValue());
                }
                t.put("seq",m.getPltType());
                t.put("orderId",m.getUserNo());
                tasks.add(t);
            }
            Map<String, Object> payload = new HashMap<>();
            payload.put("tasks", tasks);
    public ReturnT<String> start(WrkMast wrkMast) {
            String response = new HttpHandler.Builder()
                    .setUri(urlValue)
                    .setPath(createOutTaskValue)
                    .setHttps(urlValue != null && urlValue.startsWith("https://"))
                    .setTimeout(10, TimeUnit.SECONDS)
                    .setJson(JSON.toJSONString(payload))
                    .build()
                    .doPost();
            JSONObject jsonObject = JSON.parseObject(response == null ? "{}" : response);
            Integer code = jsonObject.getInteger("code");
            if (code == null || !Objects.equals(code, 200)) {
                log.error("WCS下发出库任务失败, url:{}, path:{}, request:{}, response:{}",
                        urlValue, createOutTaskValue, JSON.toJSONString(payload), response);
                return FAIL.setMsg("WCS下发出库任务失败");
            }
            Date now = new Date();
            for (WrkMast m : toSend) {
                m.setUpdMk("WCS_SENT");
                m.setModiTime(now);
                m.setWrkSts(12L);
            }
            // 延迟注入,避免循环依赖
            WrkMastService wrkMastService = com.core.common.SpringUtils.getBean(WrkMastService.class);
            for (WrkMast m : toSend) {
                try {
                    wrkMastService.updateById(m);
                } catch (Exception ignore) {}
            }
        } catch (Exception e) {
            log.error("WCS出库任务下发异常", e);
            return FAIL.setMsg(e.getMessage());
        }
        return SUCCESS;
    }
}
src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/kingdee/ReviewOrderSyncScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/kingdee/SubmitOrderSyncScheduler.java
File was deleted
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
File was deleted
src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java
File was deleted
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
File was deleted
src/main/java/com/zy/asrs/task/kingdee/handler/SaveOrderSyncHandler.java
File was deleted
src/main/java/com/zy/asrs/task/kingdee/handler/SubmitOrderSyncHandler.java
File was deleted
src/main/resources/application.yml
@@ -91,12 +91,6 @@
  switch:
    #计时器上报开关
    ErpReportOld: true
    #获取单据开关
    InboundOrderSwitch: true
    #登录接口开关
    LoginAuthenticationSwitch: true
    #上报、审核单据开关
    ReviewOrderSwitch: true
  #  地址
  address:
    URL: https://shyucheng.test.kdgalaxy.com
@@ -104,72 +98,17 @@
    loginaddress: /kapi/oauth2/getToken
    #商品档案地址
    mataddress: /kapi/v2/eap7/basedata/bd_material/batchQuery
    #货主档案地址
    orgaddress: /kapi/v2/basedata/bd_supplier/query
    #收料单-查询
    impurreceivebilladdress: /kapi/v2/im/im_purreceivebill/getList
    #进仓通知单
    impurreceivebilldetl: kapi/v2/eap7/im/im_purreceivebill/query
    #进仓入库单新增
    imPurinbillAdd: /kapi/v2/im/im_purinbill/add
    #进仓入库单提交
    imPurinbillBatchSubmit: /kapi/v2/im/im_purinbill/batchSubmit
    #进仓入库单审核
    imPurinbillBatchAudit: /kapi/v2/im/im_purinbill/batchAudit
    #销售出库单查询
    imSaloutbill: /kapi/v2/eap7/im/im_saloutbill/query
    #销售出库单上报
    imSaloutbillReport: /kapi/v2/im/im_saloutbill/batchAudit
    #销售退货查询
    scpSalreturn: /kapi/v2/eap7/im/im_saloutbill/query
#    #销售退货进仓单
#    scpSalreturnDetl: /kapi/v2/eap7/scp/scp_salreturn/query
    #销售退货上报
    scpSalreturnReport: /kapi/v2/im/im_saloutbill/batchAudit
    #生产领料查询
    imMdcMftproorder: /kapi/v2/im/im_mdc_mftproorder/batchQuery
    #生产领料汇报
    imMdcMftproorderReport: /kapi/v2/im/im_mdc_mftproorder/batchAudit
    #生产退料单查询
    imMdcMftreturnorder: /kapi/v2/eap7/im/im_mdc_mftreturnorder/batchQuery
    #生产退料单上报
    imMdcMftreturnorderReport: /kapi/v2/im/im_mdc_mftreturnorder/batchAudit
    #生产补料单
    imMdcMftfeedorder: /kapi/v2/im/im_mdc_mftfeedorder/batcheQuery
    #生产补料单汇报
    imMdcMftfeedorderReport: /kapi/v2/im/im_mdc_mftfeedorder/batchAudit
    #生产进仓单查询
    imProductinbill: /kapi/v2/eap7/pom/pom_mftorderreport/query
    #生产进仓单查询上报
    imProductinbillReport: /kapi/v2/eap7/im/im_mdc_mftmanuinbill/add
    imProductinbillBatchSubmit: /kapi/v2/im/im_mdc_mftmanuinbill/batchSubmit
    imProductinbillBatchAudit: /kapi/v2/im/im_mdc_mftmanuinbill/batchAudit
    #其他出库单上报
    imOtheroutbill: /kapi/v2/im/im_otheroutbill/batchSave
    #其他出库单提交
    imOtheroutbillSubmit: /kapi/v2/im/im_otheroutbill/batchSubmit
    #其他出库单审核
    imOtheroutbillAudi: /kapi/v2/im/im_otheroutbill/batchAudit
    #其他入库新增
    imOtherinbill: /kapi/v2/im/im_otherinbill/batchAdd
    #其他入库提交
    imOtherinbillSubmit: /kapi/v2/im/im_otherinbill/batchSubmit
    #其他入库审核
    imOtherinbillAudit: /kapi/v2/im/im_otherinbill/batchAudit
    #产品检验单查询
    qcppManuinspec: /kapi/v2/eap7/qcpp/qcpp_manuinspec/query
    #汇报单->自生成出库单上报
    imSaloutbillSave: /kapi/v2/eap7/im/im_saloutbill/save
    imSaloutbillSaveSubmit: kapi/v2/im/im_saloutbill/batchSubmit
    #委外入库指令
    omOutsourcereceiptQuery: /kapi/v2/eap7/om/om_outsourcereceipt/query
    imMdcOmprdinbillSave: /kapi/v2/eap7/im/im_mdc_omprdinbill/save
    imMdcOmprdinbillBatchSubmit: /kapi/v2/im/im_mdc_omprdinbill/batchSubmit
    imMdcOmprdinbillBatchAudit: /kapi/v2/im/im_mdc_omprdinbill/batchAudit
  #  登录账号管理
  login :
    xAcfwIdentity: "djF8MTlhNTNhZjJhOWEwMWRlODhlMDF8NDkxNTk0MDU4MTQxNXwus9WaEHKRh0daJe1TWmVoMkv3zQY2knNTZRzaOhRgwnw"
    clientId: "WMS"
    clientSecret: "123456789Asd!@123456789"
    accountId: "2182793143735298048"
    username: "admin"
#wcs任务下发
wcs:
  #  开关
  switch: true
  #  地址
  address:
    URL: https://127.0.0.1:9090
    #入库任务下发地址
    createInTask : /openapi/createInTask
    #出库任务下发地址
    createOutTask: /openapi/createOutTask
    #移库任务下发地址
    createLocMoveTask: /openapi/createLocMoveTask