自动化立体仓库 - WMS系统
zwl
昨天 a1f7856f0f450883c7060444a4fc2b721720a051
1.erp对接新增字段
2.电视机数据
3个文件已添加
13个文件已修改
146 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WorkTeuTotalAxis.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkDetl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkDetlLog.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMast.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkMastLog.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/OutTaskParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/WrkMastLogMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkDetlLogMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkDetlMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastLogMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/WrkMastMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/sql/20260414_out_order_container_no_teu.sql 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/sql/20260414_wrk_detl_teu_day_query.sql 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -731,6 +731,17 @@
            Integer[] array2 = new Integer[data2.size()];
            outqty.setData(data2.toArray(array2));
            list.add(outqty);
            AxisBean  teu= new AxisBean();
            teu.setName("TEU");
            List<WorkTeuTotalAxis> workTeuTotalAxes = reportQueryMapper.getteuTotal();
            ArrayList<Integer> data3 = new ArrayList<>();
            for (WorkTeuTotalAxis w : workTeuTotalAxes) {
                data3.add(w.getTeu_total());
            }
            Integer[] array3 = new Integer[data3.size()];
            teu.setData(data3.toArray(array3));
            list.add(teu);
        }
        map.put("rows",list);
        return R.ok(map);
@@ -786,7 +797,7 @@
        list.add(inqty);
        AxisBean outqty = new AxisBean();
        outqty.setName("出库TU");
        outqty.setName("出库托盘数");
        Integer[] array2 = new Integer[data2.size()];
        outqty.setData(data2.toArray(array2));
        list.add(outqty);
src/main/java/com/zy/asrs/entity/WorkTeuTotalAxis.java
New file
@@ -0,0 +1,15 @@
package com.zy.asrs.entity;
import lombok.Data;
/**
 * 出库TEU统计曲线图
 * @author admin
 * @date 2018年12月12日
 */
@Data
public class WorkTeuTotalAxis {
    private String ymd;
    private int teu_total;
}
src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -73,6 +73,13 @@
    private String orderNo;
    /**
     * teu
     */
    @ApiModelProperty(value= "teu")
    @TableField("teu")
    private Integer teu;
    /**
     * 规格
     */
    @ApiModelProperty(value= "规格")
src/main/java/com/zy/asrs/entity/WrkDetlLog.java
@@ -72,6 +72,13 @@
    private String orderNo;
    /**
     * teu
     */
    @ApiModelProperty(value= "teu")
    @TableField("teu")
    private Integer teu;
    /**
     * 规格
     */
    @ApiModelProperty(value= "规格")
src/main/java/com/zy/asrs/entity/WrkMast.java
@@ -302,6 +302,10 @@
    @TableField("Pdc_type")
    private String PdcType;
    @ApiModelProperty(value= "集装箱号")
    @TableField("container_no")
    private String containerNo;
    @ApiModelProperty(value= "")
    @TableField("ctn_no")
    private String ctnNo;
src/main/java/com/zy/asrs/entity/WrkMastLog.java
@@ -303,6 +303,10 @@
    @TableField("Pdc_type")
    private String PdcType;
    @ApiModelProperty(value= "集装箱号")
    @TableField("container_no")
    private String containerNo;
    @ApiModelProperty(value= "")
    @TableField("ctn_no")
    private String ctnNo;
src/main/java/com/zy/asrs/entity/param/OutTaskParam.java
@@ -20,6 +20,8 @@
    private String entryWmsCode;
    //出库单号
    private String orderId;
    //集装箱号
    private String containerNo;
    //外库门号
    private String outDoorNo;
}
src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
@@ -75,6 +75,14 @@
    @Select("SELECT ymd, inqty, outqty FROM v_asr_inout_hourly_stat ORDER BY ymd")
    List<WorkChartAxis> getChartAxisHourly();
    /**
     * 按小时汇总(视图 v_asr_inout_hourly_stat,ymd 与接口 yyyy-MM-dd HH 对齐)
     */
    @Select("SELECT ymd, teu_total FROM asr_wrk_detl_teu_day_view ORDER BY ymd")
    List<WorkTeuTotalAxis> getteuTotal();
    List<ViewWorkCountInView> selectWorkCountIn(@Param("curr") Integer curr, @Param("limit") Integer limit, @Param("matnr")String matnr, @Param("start") String startTime, @Param("end") String endTime);
    Integer selectWorkCountInTotal(String matnr, @Param("start") String startTime, @Param("end") String endTime);
src/main/java/com/zy/asrs/mapper/WrkMastLogMapper.java
@@ -20,12 +20,12 @@
            "wrk_no, inv_wh, ymd, mk, whs_type, wrk_sts, io_type, crn_no, sheet_no, io_pri, wrk_date, loc_no, sta_no, source_sta_no, source_loc_no, loc_sts, " +
            "picking, link_mis, online_yn, upd_mk, exit_mk, plt_type, batch_seq, empty_mk, io_time, ctn_type, packed, ove_mk, mtn_type, user_no, crn_str_time, " +
            "crn_end_time, plc_str_time, crn_pos_time, load_time, exp_time, ref_wrkno, ref_iotime, modi_user, modi_time, appe_user, appe_time, pause_mk, " +
            "error_time, error_memo, ctn_kind, manu_type, memo_m, sc_weight, log_mk, log_err_time, log_err_memo, barcode, Pdc_type, ctn_no, full_plt, pre_have, take_none) " +
            "error_time, error_memo, ctn_kind, manu_type, memo_m, sc_weight, log_mk, log_err_time, log_err_memo, barcode, Pdc_type, container_no, ctn_no, full_plt, pre_have, take_none) " +
            "SELECT " +
            "wrk_no, inv_wh, ymd, mk, whs_type, wrk_sts, io_type, crn_no, sheet_no, io_pri, wrk_date, loc_no, sta_no, source_sta_no, source_loc_no, loc_sts, " +
            "picking, link_mis, online_yn, upd_mk, exit_mk, plt_type, batch_seq, empty_mk, io_time, ctn_type, packed, ove_mk, mtn_type, user_no, crn_str_time, " +
            "crn_end_time, plc_str_time, crn_pos_time, load_time, exp_time, ref_wrkno, ref_iotime, modi_user, modi_time, appe_user, appe_time, pause_mk, " +
            "error_time, error_memo, ctn_kind, manu_type, memo, sc_weight, log_mk, log_err_time, log_err_memo, barcode, Pdc_type, ctn_no, full_plt, pre_have, take_none " +
            "error_time, error_memo, ctn_kind, manu_type, memo, sc_weight, log_mk, log_err_time, log_err_memo, barcode, Pdc_type, container_no, ctn_no, full_plt, pre_have, take_none " +
            "FROM asr_wrk_mast WHERE wrk_no=#{workNo}")
    int save(Integer workNo);
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -1500,6 +1500,10 @@
     */
    @Override
    public R outOrder(OutTaskParam param,int count) {
        return outOrder(param, count, 1);
    }
    private R outOrder(OutTaskParam param, int count, int teu) {
        LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_sts", "F").eq("barcode", param.getPalletId()));
        if (locMast == null) {
            throw new CoolException("没有找到托盘码=" + param.getPalletId() + "对应的库位");
@@ -1546,6 +1550,7 @@
        wrkMast.setEmptyMk("N"); // 空板
        wrkMast.setLinkMis("N");
        wrkMast.setPdcType("N");
        wrkMast.setContainerNo(param.getContainerNo());
        // 7.11:orderId 存 userNo,batchSeq 存批次标识,seq 存批次内顺序。
        wrkMast.setUserNo(param.getOrderId());//订单号
        wrkMast.setBatchSeq(param.getBatchSeq());//订单内批次标识
@@ -1575,6 +1580,7 @@
            wrkDetl.setAppeUser(9995L);
            wrkDetl.setModiTime(now);
            wrkDetl.setModiUser(9995L);
            wrkDetl.setTeu(teu);
            // 7.11:entryWmsCode、outDoorNo 复用明细备用字段。
            wrkDetl.setStandby1(param.getEntryWmsCode());
            wrkDetl.setStandby2(param.getOutDoorNo());
@@ -1608,12 +1614,14 @@
    public R outOrderBatch(List<OutTaskParam> params) {
        int n = params.size();
        Map<String, Integer> batchLineCounts = new HashMap<>();
        Map<String, Integer> batchTeuCounts = buildOutOrderBatchTeuCounts(params);
        for (OutTaskParam outTaskParam : params) {
            batchLineCounts.merge(buildOutOrderBatchKey(outTaskParam), 1, Integer::sum);
        }
        for (OutTaskParam outTaskParam : params) {
            int count = batchLineCounts.getOrDefault(buildOutOrderBatchKey(outTaskParam), n);
            R r = outOrder(outTaskParam, count);
            int teu = batchTeuCounts.getOrDefault(outTaskParam.getBatchSeq(), 1);
            R r = outOrder(outTaskParam, count, teu);
            if (!Objects.equals(r.get("code"), 200)) {
                throw new CoolException("出库建单失败");
            }
@@ -1707,6 +1715,18 @@
        return param.getOrderId() + "#" + param.getBatchSeq();
    }
    private Map<String, Integer> buildOutOrderBatchTeuCounts(List<OutTaskParam> params) {
        Map<String, Set<String>> batchOrderIds = new HashMap<>();
        for (OutTaskParam param : params) {
            batchOrderIds.computeIfAbsent(param.getBatchSeq(), k -> new LinkedHashSet<>()).add(param.getOrderId());
        }
        Map<String, Integer> batchTeuCounts = new HashMap<>();
        for (Map.Entry<String, Set<String>> entry : batchOrderIds.entrySet()) {
            batchTeuCounts.put(entry.getKey(), entry.getValue().size());
        }
        return batchTeuCounts;
    }
    private String resolveOutboundOrderId(String palletId) {
        List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>()
                .eq("io_type", 101)
src/main/resources/mapper/WrkDetlLogMapper.xml
@@ -12,6 +12,7 @@
        <result column="maktx" property="maktx"/>
        <result column="batch" property="batch"/>
        <result column="order_no" property="orderNo"/>
        <result column="teu" property="teu"/>
        <result column="specs" property="specs"/>
        <result column="model" property="model"/>
src/main/resources/mapper/WrkDetlMapper.xml
@@ -12,6 +12,7 @@
        <result column="maktx" property="maktx" />
        <result column="batch" property="batch" />
        <result column="order_no" property="orderNo" />
        <result column="teu" property="teu" />
        <result column="specs" property="specs" />
        <result column="model" property="model" />
src/main/resources/mapper/WrkMastLogMapper.xml
@@ -59,6 +59,7 @@
        <result column="log_err_memo" property="logErrMemo" />
        <result column="barcode" property="barcode" />
        <result column="Pdc_type" property="PdcType" />
        <result column="container_no" property="containerNo" />
        <result column="ctn_no" property="ctnNo" />
        <result column="full_plt" property="fullPlt" />
        <result column="pre_have" property="preHave" />
src/main/resources/mapper/WrkMastMapper.xml
@@ -58,6 +58,7 @@
        <result column="log_err_memo" property="logErrMemo" />
        <result column="barcode" property="barcode" />
        <result column="Pdc_type" property="PdcType" />
        <result column="container_no" property="containerNo" />
        <result column="ctn_no" property="ctnNo" />
        <result column="full_plt" property="fullPlt" />
        <result column="pre_have" property="preHave" />
src/main/resources/sql/20260414_out_order_container_no_teu.sql
New file
@@ -0,0 +1,27 @@
IF COL_LENGTH('dbo.asr_wrk_mast', 'container_no') IS NULL
BEGIN
    ALTER TABLE [dbo].[asr_wrk_mast]
        ADD [container_no] NVARCHAR(100) NULL;
END
GO
IF COL_LENGTH('dbo.asr_wrk_mast_log', 'container_no') IS NULL
BEGIN
    ALTER TABLE [dbo].[asr_wrk_mast_log]
        ADD [container_no] NVARCHAR(100) NULL;
END
GO
IF COL_LENGTH('dbo.asr_wrk_detl', 'teu') IS NULL
BEGIN
    ALTER TABLE [dbo].[asr_wrk_detl]
        ADD [teu] INT NULL;
END
GO
IF COL_LENGTH('dbo.asr_wrk_detl_log', 'teu') IS NULL
BEGIN
    ALTER TABLE [dbo].[asr_wrk_detl_log]
        ADD [teu] INT NULL;
END
GO
src/main/resources/sql/20260414_wrk_detl_teu_day_query.sql
New file
@@ -0,0 +1,29 @@
USE [cool]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
WITH dedup_detail AS (
    SELECT
        CONVERT(char(10), d.io_time, 23) AS ymd,
        LTRIM(RTRIM(d.order_no)) AS order_no,
        MAX(ISNULL(d.teu, 0)) AS teu_total
    FROM dbo.asr_wrk_detl_log AS d
    WHERE d.io_time >= DATEADD(day, -11, CONVERT(date, GETDATE()))
      AND d.io_time < DATEADD(day, 1, CONVERT(date, GETDATE()))
      AND d.order_no IS NOT NULL
      AND LTRIM(RTRIM(d.order_no)) <> ''
    GROUP BY
        CONVERT(char(10), d.io_time, 23),
        LTRIM(RTRIM(d.order_no))
)
SELECT
    ymd,
    SUM(teu_total) AS teu_total
FROM dedup_detail
GROUP BY ymd
GO