自动化立体仓库 - WMS系统
#
zwl
2025-10-13 67d48a7ccdd121272db3680eac1f36f4d7ba519c
#
12个文件已修改
246 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MobileController.java 197 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/Mat.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/CombParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/third/entity/ExdvYanbu.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/third/task/BaseDataScheduler.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/third/task/OrderScheduler.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/third/task/handler/BaseDataHandler.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/asrs/MatMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/third/ExdMaterialMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -15,6 +15,7 @@
import com.zy.asrs.entity.result.MobileAdjustResult;
import com.zy.asrs.mapper.ManLocDetlMapper;
import com.zy.asrs.service.*;
import com.zy.asrs.service.impl.MatServiceImpl;
import com.zy.common.model.WrkDto;
import com.zy.common.utils.HttpHandler;
import com.zy.common.web.BaseController;
@@ -81,6 +82,8 @@
    @Autowired
    private ExdMaterialMapper exdMaterialMapper;
    @Autowired
    private MatServiceImpl matService;
    // 商品上架
    @RequestMapping("/mat/onSale/auth")
@@ -129,6 +132,7 @@
    @RequestMapping("/comb/auth")
    @ManagerAuth(memo = "组托")
    public R comb(@RequestBody CombParam combParam) {
        log.info("组托数据:{}", combParam.toString());
        mobileService.comb(combParam, getUserId(), getUser().getEmail());
        return R.ok("组托成功");
    }
@@ -464,120 +468,118 @@
        //空托盘缓冲区 小:E8  大:E9
        String rStaNo = "E8";
        if (barcode.substring(0, 1).equals("9")) {
        String rStaNo ="E8";
        String type ="ZONE"; //区域
        if(barcode.substring(0,1).equals("9")){
            rStaNo = "E9";
        }
        String type = "ZONE"; //区域
        Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoE").eq("status", "1"));
        if (config != null) {
            type = "STACK"; //巷道
            if (Cools.isEmpty(config.getValue())) {
                rStaNo = rStaNo + "01";
                config.setValue("2");
            } else if (config.getValue().equals("1")) {
                rStaNo = rStaNo + "01";
                config.setValue("2");
            } else if (config.getValue().equals("2")) {
                rStaNo = rStaNo + "02";
                config.setValue("3");
            } else if (config.getValue().equals("3")) {
                rStaNo = rStaNo + "03";
                config.setValue("1");
            String type = "ZONE"; //区域
            if (barcode.substring(0, 1).equals("9")) {
                rStaNo = "E9";
            }
            configService.updateById(config);
        }else{
            Config config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoE").eq("status", "1"));
            if (config != null) {
                type ="STACK"; //巷道
                type = "STACK"; //巷道
                if (Cools.isEmpty(config.getValue())) {
                    rStaNo = rStaNo + "01";
                    config.setValue("2");
                }else if (config.getValue().equals("1")) {
                } else if (config.getValue().equals("1")) {
                    rStaNo = rStaNo + "01";
                    config.setValue("2");
                }else if (config.getValue().equals("2")) {
                } else if (config.getValue().equals("2")) {
                    rStaNo = rStaNo + "02";
                    config.setValue("3");
                }else if (config.getValue().equals("3")) {
                } else if (config.getValue().equals("3")) {
                    rStaNo = rStaNo + "03";
                    config.setValue("1");
                }
                configService.updateById(config);
            }
        }
        LinkedHashMap<String, Object> rcsParam = new LinkedHashMap<>();
        rcsParam.put("taskType", "PF-FMR-COMMON");
        List<LinkedHashMap<String, Object>> targetRoutes = new ArrayList<>();
        LinkedHashMap<String, Object> t1 = new LinkedHashMap<>();
        LinkedHashMap<String, Object> t2 = new LinkedHashMap<>();
        t1.put("seq", 0);
        t1.put("type", "SITE");
        t1.put("code", sourceStaNo);
        t1.put("autoStart", 0);
        t1.put("operation", "COLLECT");
        t2.put("seq", 0);
        t2.put("type", type);
        t2.put("code", rStaNo);
        t2.put("autoStart", 0);
        t2.put("operation", "DELIVERY");
        targetRoutes.add(t1);
        targetRoutes.add(t2);
        rcsParam.put("targetRoute", targetRoutes);
        rcsParam.put("initPriority", 100);
        String response = "";
        Boolean bool = false;
        String msg = "";
        HashMap<String, Object> map = new HashMap<>();
        Date date = new Date();
        String time = date.getTime() + "";
        map.put("X-LR-REQUEST-ID", time);
        try {
            log.info("wms派发搬运任务给AGV搬运={}", rcsParam);
            response = new HttpHandler.Builder()
                    .setHeaders(map)
                    .setUri(url)
                    .setHttps(true)
                    .setPath(attrcs)
                    .setJson(JSON.toJSONString(rcsParam))
                    .build()
                    .doPostCloseSSL();
            JSONObject jsonObject = JSON.parseObject(response);
            if (jsonObject.getString("code").equals("SUCCESS")) {
                bool = true;
            } else {
                msg = jsonObject.getString("message");
                config = configService.selectOne(new EntityWrapper<Config>().eq("code", "autoE").eq("status", "1"));
                if (config != null) {
                    type = "STACK"; //巷道
                    if (Cools.isEmpty(config.getValue())) {
                        rStaNo = rStaNo + "01";
                        config.setValue("2");
                    } else if (config.getValue().equals("1")) {
                        rStaNo = rStaNo + "01";
                        config.setValue("2");
                    } else if (config.getValue().equals("2")) {
                        rStaNo = rStaNo + "02";
                        config.setValue("3");
                    } else if (config.getValue().equals("3")) {
                        rStaNo = rStaNo + "03";
                        config.setValue("1");
                    }
                    configService.updateById(config);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            log.error("wms派发搬运任务给AGV搬运失败返回值={}", response);
        } finally {
            apiLogService.save("wms派发搬运任务给AGV搬运"
                    , url + attrcs
                    , null
                    , "127.0.0.1"
                    , JSON.toJSONString(rcsParam)
                    , response
                    , bool
            );
        }
        if (bool) {
            return R.ok();
        } else {
            return R.error(msg);
        }
            LinkedHashMap<String, Object> rcsParam = new LinkedHashMap<>();
            rcsParam.put("taskType", "PF-FMR-COMMON");
            List<LinkedHashMap<String, Object>> targetRoutes = new ArrayList<>();
            LinkedHashMap<String, Object> t1 = new LinkedHashMap<>();
            LinkedHashMap<String, Object> t2 = new LinkedHashMap<>();
            t1.put("seq", 0);
            t1.put("type", "SITE");
            t1.put("code", sourceStaNo);
            t1.put("autoStart", 0);
            t1.put("operation", "COLLECT");
            t2.put("seq", 0);
            t2.put("type", type);
            t2.put("code", rStaNo);
            t2.put("autoStart", 0);
            t2.put("operation", "DELIVERY");
            targetRoutes.add(t1);
            targetRoutes.add(t2);
            rcsParam.put("targetRoute", targetRoutes);
            rcsParam.put("initPriority", 100);
            String response = "";
            Boolean bool = false;
            String msg = "";
            HashMap<String, Object> map = new HashMap<>();
            Date date = new Date();
            String time = date.getTime() + "";
            map.put("X-LR-REQUEST-ID", time);
            try {
                log.info("wms派发搬运任务给AGV搬运={}", rcsParam);
                response = new HttpHandler.Builder()
                        .setHeaders(map)
                        .setUri(url)
                        .setHttps(true)
                        .setPath(attrcs)
                        .setJson(JSON.toJSONString(rcsParam))
                        .build()
                        .doPostCloseSSL();
                JSONObject jsonObject = JSON.parseObject(response);
                if (jsonObject.getString("code").equals("SUCCESS")) {
                    bool = true;
                } else {
                    msg = jsonObject.getString("message");
                }
            } catch (Exception e) {
                e.printStackTrace();
                log.error("wms派发搬运任务给AGV搬运失败返回值={}", response);
            } finally {
                apiLogService.save("wms派发搬运任务给AGV搬运"
                        , url + attrcs
                        , null
                        , "127.0.0.1"
                        , JSON.toJSONString(rcsParam)
                        , response
                        , bool
                );
            }
            if (bool) {
                return R.ok();
            } else {
                return R.error();
            }
        }
        return R.error();
    }
    /**
     * 执行移库任务--点到点
@@ -1003,7 +1005,10 @@
        if (barcode1 == null) {
            return R.error("批次对应的验布数据不存在");
        }
        return R.ok(barcode1);
        Mat mat = matService.selectByMatnr(barcode1.getItemnumber());
        mat.setAnfme(barcode1.getQty());
        mat.setBc(barcode);
        return R.ok(mat);
    }
    @RequestMapping(value = "/getOrderNo/auth")
src/main/java/com/zy/asrs/entity/Mat.java
@@ -26,6 +26,14 @@
    @TableField(exist = false)
    private Double stock;
    @TableField(exist = false)
    private Double anfme;
    @TableField(exist = false)
    private String bc;
    public Double getStock() {
        return stock;
    }
src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -44,7 +44,7 @@
    @Data
    public static class CombMat {
        private String bc;
        // 物料编号
        private String matnr;
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -161,6 +161,7 @@
                waitPakin.setAppeUser(userId);
                waitPakin.setAppeTime(now);
                waitPakin.setModiUser(userId);
                waitPakin.setColor(userId+"");
                waitPakin.setModiTime(now);
                waitPakin.setBrand(param.getCk());//仓库
                waitPakin.setInspect(param.isType() ? 1 : 0);
@@ -232,6 +233,7 @@
                waitPakin.setAppeTime(now);
                waitPakin.setModiUser(userId);
                waitPakin.setModiTime(now);
                waitPakin.setColor(userId+"");
                waitPakin.setBrand(param.getCk());//仓库
                waitPakin.setInspect(param.isType() ? 1 : 0);
                if (i == 1) {
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -449,6 +449,9 @@
                continue;
            }
            ExdvYanbu bacode = exdMaterialMapper.getBacode(wrkDetl.getBatch());
            if (bacode == null) {
                return;
            }
            exdInstockTarge = new ExdInstockTarget();
            exdInstockTarge.setFtrantype(21);
            exdInstockTarge.setFdate(new Date());
src/main/java/com/zy/third/entity/ExdvYanbu.java
@@ -24,7 +24,7 @@
    /**
     *
     */
    private BigDecimal qty;
    private Double qty;
    /**
     *
src/main/java/com/zy/third/task/BaseDataScheduler.java
@@ -35,7 +35,7 @@
     */
    @Scheduled(cron = "0/30 * * * * ? ")
    public void readUser() {
        log.info("读取用户信息");
        //log.info("读取用户信息");
        List<ExdUser> exdUsers = exdUserMapper.listAll();
        for (ExdUser exdUser : exdUsers) {
            try {
@@ -63,7 +63,7 @@
     */
    @Scheduled(cron = "0/3 * * * * ? ")
    public void readMat() {
        log.info("读取物料信息");
        //log.info("读取物料信息");
        List<ExdMaterial> exdMaterials = exdMaterialMapper.listAll();
        for (ExdMaterial exdMaterial : exdMaterials) {
            try {
@@ -87,7 +87,7 @@
    /**
     * 读取部门信息
     */
    @Scheduled(cron = "0/30 * * * * ? ")
    //@Scheduled(cron = "0/30 * * * * ? ")
    public void readDept() {
        log.info("读取部门信息");
src/main/java/com/zy/third/task/OrderScheduler.java
@@ -34,7 +34,7 @@
     */
    @Scheduled(cron = "0/10 * * * * ? ")
    public void readInOrder() {
        log.info("读取入库单据");
        //log.info("读取入库单据");
        List<String> orderNos = exdInstockSourceMapper.listOrderNo();
        for (String orderNo : orderNos) {
            List<ExdInstockSource> exdInstockSources = exdInstockSourceMapper.listAll(orderNo);
@@ -53,6 +53,7 @@
                }
            } catch (Exception e) {
                log.error("读取入库单据信息失败:{},{}", exdInstockSources, e.getMessage());
                e.printStackTrace();
                for (ExdInstockSource exdInstockSource : exdInstockSources) {
                    exdInstockSource.setReadormsg(e.getMessage());
                    exdInstockSource.setStatus(2);
@@ -67,7 +68,7 @@
     */
    @Scheduled(cron = "0/10 * * * * ? ")
    public void readOutOrder() {
        log.info("读取出库单据");
        //log.info("读取出库单据");
        List<String> orderNos = exdOutstockSourceMapper.listOrderNo();
        for (String orderNo : orderNos) {
            List<ExdOutstockSource> exdOutstockSources = exdOutstockSourceMapper.listAll(orderNo);
@@ -87,6 +88,7 @@
                }
            } catch (Exception e) {
                log.error("读取出库单据信息失败:{},{}", exdOutstockSources, e.getMessage());
                e.printStackTrace();
                for (ExdOutstockSource exdOutstockSource : exdOutstockSources) {
                    exdOutstockSource.setStatus(2);
                    exdOutstockSource.setReadormsg(e.getMessage());
src/main/java/com/zy/third/task/handler/BaseDataHandler.java
@@ -63,7 +63,7 @@
            mat.setMatnr(exdMaterial.getFnumber());
            mat.setMaktx(exdMaterial.getFname());
            mat.setSpecs(exdMaterial.getFmodel());
            mat.setSku(exdMaterial.getId());
            mat.setManu(exdMaterial.getId());
            mat.setTagId(tagService.getTop().getId());
            mat.setStatus(1);
            mat.setCreateTime(new Date());
@@ -72,7 +72,7 @@
            mat.setMatnr(exdMaterial.getFnumber());
            mat.setMaktx(exdMaterial.getFname());
            mat.setSpecs(exdMaterial.getFmodel());
            mat.setSku(exdMaterial.getId());
            mat.setManu(exdMaterial.getId());
            mat.setTagId(tagService.getTop().getId());
            mat.setStatus(1);
            matService.updateById(mat);
src/main/resources/application.yml
@@ -33,9 +33,12 @@
    #    password: root
    #driver-class-name: com.mysql.cj.jdbc.Driver
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    jdbc-url: jdbc:sqlserver://127.0.0.1:1433;databasename=wms_middle
    username: sa
    password: sa@123
    jdbc-url: jdbc:sqlserver://192.168.3.148:1433;databasename=wms_middle
    username: wms
    password: wms@aunde
#    jdbc-url: jdbc:sqlserver://127.0.0.1:1433;databasename=ycawdasrs
#    username: sa
#    password: sa@123
mybatis-plus:
  mapper-locations: classpath:mapper/*.xml 
src/main/resources/mapper/asrs/MatMapper.xml
@@ -82,6 +82,6 @@
    </select>
    <select id="selectBySku" resultMap="BaseResultMap">
        select top 1 * from man_mat where 1=1 and sku = #{sku}
        select top 1 * from man_mat where 1=1 and manu = #{sku}
    </select>
</mapper>
src/main/resources/mapper/third/ExdMaterialMapper.xml
@@ -30,14 +30,13 @@
    </select>
    <select id="getBacode" resultType="com.zy.third.entity.ExdvYanbu" parameterType="string">
        <!--
                SELECT top 1 *
        FROM [Textile].[trade].[TianfuQcResult]
        where Barcode = #{barcode}
        -->
        SELECT top 1 *
        <!-- SELECT top 1 *
        FROM ExdV_Yanbu
        where Barcode = #{barcode}
        -->
    </select>
</mapper>