自动化立体仓库 - WMS系统
zyx
2023-11-02 cd92182d01a20e85f60f6a5a595506ee8ed31ffc
库存统计明细修复
2个文件已添加
9个文件已修改
242 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MobileController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/ModifyPakoutParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/AgvLocDetlMapper.xml 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/AgvLocDetlMapper.xml 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/agvLocDetlStatis/locDetlStatis.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/locDetlStatis/locDetlStatis.js 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MobileController.java
@@ -446,7 +446,7 @@
    }
    @RequestMapping("/wrkdetl/auth")
    @ManagerAuth(memo = "拣料信息")
    //@ManagerAuth(memo = "拣料信息")
    public R checkWrkDetl(@RequestBody String barcode){
        WrkMast wrkMast = wrkMastService.selectByBarcode(barcode);
        if(Cools.isEmpty(wrkMast)){
@@ -457,7 +457,7 @@
    }
    @RequestMapping("/modify/wrkdetl/auth")
    @ManagerAuth(memo = "修改拣料信息")
    //@ManagerAuth(memo = "修改拣料信息")
    public R modifyWrkDetl(@RequestBody ModifyPakoutParam param){
        String barcode = param.getBarcode();
src/main/java/com/zy/asrs/entity/param/ModifyPakoutParam.java
@@ -12,7 +12,7 @@
    List<CA> params;
    @Data
    public class CA{
    public static class CA{
        String containerCode;
        double anfme;
    }
src/main/java/com/zy/asrs/mapper/AgvLocDetlMapper.java
@@ -18,30 +18,8 @@
    @Update("update agv_loc_detl set loc_no = '${targetLoc}' where loc_no = '${sourceLoc}' ")
    void updateStock(@Param("sourceLoc")String sourceLoc, @Param("targetLoc")String targetLoc);
    @Select("select * from\n" +
            "(\n" +
            "\t\tselect\n" +
            "\t\tROW_NUMBER() over (order by sum(a.anfme) desc) as row\n" +
            "\t\t, a.matnr\n" +
            "\t\t, sum(a.anfme) as anfme\n" +
//            "\t\tfrom agv_loc_detl a\n" +
//            "\t\twhere 1=1\n" +
//            "\t\t<when #{matnr} != '>" +
//            "\t\tAND matnr = #{matnr}" +
            "\t\t</when>" +
            "\t\tgroup by a.matnr\n" +
            " ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})")
    List<AgvLocDetl> getStockStatis(Map<String, Object> map);
    List<AgvLocDetl> getStockStatis1(Map<String, Object> map);
    @Select("select count(1) as count from\n" +
            "        (\n" +
            "        select\n" +
            "        a.matnr\n" +
            "        from agv_loc_detl a\n" +
            "        where 1=1\n" +
            "        \n" +
            "        group by a.matnr\n" +
            "     ) b")
    Integer getStockStatisCount(Map<String, Object> map);
    @Select("SELECT SUM(anfme) FROM agv_loc_detl")
src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java
@@ -94,7 +94,7 @@
    }
    public Page<AgvLocDetl> getStockStatis(Page<AgvLocDetl> page) {
        page.setRecords(baseMapper.getStockStatis(page.getCondition()));
        page.setRecords(baseMapper.getStockStatis1(page.getCondition()));
        page.setTotal(baseMapper.getStockStatisCount(page.getCondition()));
        return page;
    }
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -121,6 +121,12 @@
                LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderNo, anfme);
                List<Integer> outSite = basDevpService.getAvailableOutSite(101);
                List<Integer> pickOutSite = basDevpService.getAvailableOutSite(103);
                pickOutSite.forEach(site -> {
                    if(!outSite.contains(site)){
                        outSite.add(site);
                    }
                });
                locDto.setStaNos(outSite);
                locDto.setCsocode(csocode);
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -428,6 +428,10 @@
        wrkMast.setCrnNo(outMost?outCrnNo:locMast.getCrnNo());
        wrkMast.setSourceStaNo(sourceStaNo); // 源站
        wrkMast.setStaNo(stnNo); // 目标站
        if(ioType == 101 && taskDto.getStaNo()>=300){
            wrkMast.setSourceStaNo(346); // 源站
            wrkMast.setStaNo(346); // 目标站
        }
        wrkMast.setSourceLocNo(taskDto.getLocNo()); // 源库位
        wrkMast.setFullPlt("Y"); // 满板:Y
        wrkMast.setPicking("N"); // 拣料
src/main/resources/AgvLocDetlMapper.xml
New file
@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.mapper.AgvLocDetlMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AgvLocDetl">
        <result column="loc_no" property="locNo" />
        <result column="zpallet" property="zpallet" />
        <result column="anfme" property="anfme" />
        <result column="matnr" property="matnr" />
        <result column="maktx" property="maktx" />
        <result column="batch" property="batch" />
        <result column="order_no" property="orderNo" />
        <result column="specs" property="specs" />
        <result column="model" property="model" />
        <result column="color" property="color" />
        <result column="brand" property="brand" />
        <result column="unit" property="unit" />
        <result column="price" property="price" />
        <result column="sku" property="sku" />
        <result column="units" property="units" />
        <result column="barcode" property="barcode" />
        <result column="origin" property="origin" />
        <result column="manu" property="manu" />
        <result column="manu_date" property="manuDate" />
        <result column="item_num" property="itemNum" />
        <result column="safe_qty" property="safeQty" />
        <result column="weight" property="weight" />
        <result column="length" property="length" />
        <result column="volume" property="volume" />
        <result column="three_code" property="threeCode" />
        <result column="supp" property="supp" />
        <result column="supp_code" property="suppCode" />
        <result column="be_batch" property="beBatch" />
        <result column="dead_time" property="deadTime" />
        <result column="dead_warn" property="deadWarn" />
        <result column="source" property="source" />
        <result column="inspect" property="inspect" />
        <result column="danger" property="danger" />
        <result column="modi_user" property="modiUser" />
        <result column="modi_time" property="modiTime" />
        <result column="appe_user" property="appeUser" />
        <result column="appe_time" property="appeTime" />
        <result column="memo" property="memo" />
        <result column="stock_freeze" property="stockFreeze" />
    </resultMap>
    <select id="getStockStatis" resultType="com.zy.asrs.entity.AgvLocDetl">
        select * from
        (
        select
        ROW_NUMBER() over (order by sum(a.anfme) desc) as row
        , a.matnr
        , sum(a.anfme) as anfme
        from agv_loc_detl a
        where 1=1
        <include refid="stockOutCondition"></include>
        group by a.matnr
        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
    </select>
    <select id="getStockStatisCount" parameterType="java.util.Map" resultType="java.lang.Integer">
        select count(1) as count from
        (
        select
        a.matnr
        from agv_loc_detl a
        where 1=1
        <include refid="stockOutCondition"></include>
        group by a.matnr
        ) b
    </select>
</mapper>
src/main/resources/mapper/AgvLocDetlMapper.xml
New file
@@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zy.asrs.mapper.AgvLocDetlMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.zy.asrs.entity.AgvLocDetl">
        <result column="loc_no" property="locNo" />
        <result column="zpallet" property="zpallet" />
        <result column="anfme" property="anfme" />
        <result column="matnr" property="matnr" />
        <result column="maktx" property="maktx" />
        <result column="batch" property="batch" />
        <result column="order_no" property="orderNo" />
        <result column="specs" property="specs" />
        <result column="model" property="model" />
        <result column="color" property="color" />
        <result column="brand" property="brand" />
        <result column="unit" property="unit" />
        <result column="price" property="price" />
        <result column="sku" property="sku" />
        <result column="units" property="units" />
        <result column="barcode" property="barcode" />
        <result column="origin" property="origin" />
        <result column="manu" property="manu" />
        <result column="manu_date" property="manuDate" />
        <result column="item_num" property="itemNum" />
        <result column="safe_qty" property="safeQty" />
        <result column="weight" property="weight" />
        <result column="length" property="length" />
        <result column="volume" property="volume" />
        <result column="three_code" property="threeCode" />
        <result column="supp" property="supp" />
        <result column="supp_code" property="suppCode" />
        <result column="be_batch" property="beBatch" />
        <result column="dead_time" property="deadTime" />
        <result column="dead_warn" property="deadWarn" />
        <result column="source" property="source" />
        <result column="inspect" property="inspect" />
        <result column="danger" property="danger" />
        <result column="modi_user" property="modiUser" />
        <result column="modi_time" property="modiTime" />
        <result column="appe_user" property="appeUser" />
        <result column="appe_time" property="appeTime" />
        <result column="memo" property="memo" />
        <result column="stock_freeze" property="stockFreeze" />
    </resultMap>
    <sql id="batchSeq">
        <choose>
            <when test="batch != null and batch != ''">
                and batch = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
    </sql>
    <sql id="stockOutCondition">
        <if test="loc_no!=null and loc_no!='' ">
            and a.loc_no like '%' + #{loc_no} + '%'
        </if>
        <if test="matnr!=null and matnr!='' ">
            and a.matnr like '%' + #{matnr} + '%'
        </if>
        <if test="maktx!=null and maktx!='' ">
            and a.maktx like '%' + #{maktx} + '%'
        </if>
        <if test="anfme!=null and anfme!='' ">
            and a.anfme like '%' + #{anfme} + '%'
        </if>
        <if test="startTime!=null and endTime!=null">
            and a.modi_time between #{startTime} and #{endTime}
        </if>
    </sql>
    <select id="getStockStatis1" resultType="com.zy.asrs.entity.AgvLocDetl">
        select * from
        (
        select
        ROW_NUMBER() over (order by sum(a.anfme) desc) as row
        , a.matnr
        , sum(a.anfme) as anfme
        from agv_loc_detl a
        where 1=1
        <include refid="stockOutCondition"></include>
        group by a.matnr
        ) t where t.row between ((#{pageNumber}-1)*#{pageSize}+1) and (#{pageNumber}*#{pageSize})
    </select>
    <select id="getStockStatisCount" parameterType="java.util.Map" resultType="java.lang.Integer">
        select count(1) as count from
        (
        select
        a.matnr
        from agv_loc_detl a
        where 1=1
        <include refid="stockOutCondition"></include>
        group by a.matnr
        ) b
    </select>
</mapper>
src/main/webapp/static/js/agvLocDetlStatis/locDetlStatis.js
@@ -3,12 +3,18 @@
    var cols = [
        {field: 'anfme', align: 'center',title: '库存数量', style: 'font-weight: bold'}
    ];
    arrRemove(detlCols, "field", "anfme")
    arrRemove(detlCols, "field", "zpallet")
    arrRemove(detlCols, "field", "anfme");
    arrRemove(detlCols,"field","suppCode");
    arrRemove(detlCols, "field", "zpallet");
    arrRemove(detlCols, "field", "orderNo");
    arrRemove(detlCols, "field", "threeCode");
    arrRemove(detlCols, "field", "deadTime");
    arrRemove(detlCols, "field", "batch");
    cols.push.apply(cols, detlCols);
    // cols.push({field: 'anfme', align: 'center',title: '数量', style: 'font-weight: bold'}
    // )
    return cols;
}
layui.use(['table','laydate', 'form'], function(){
src/main/webapp/static/js/common.js
@@ -225,7 +225,7 @@
var detlCols = [
    ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: true}
    ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false}
    ,{field: 'suppCode', align: 'center',title: '料箱码', hide: false, width: 110}
    ,{field: 'suppCode', align: 'center',title: '料箱码', hide: false}
    ,{field: 'matnr', align: 'center',title: '存货编码',hide: true}
    ,{field: 'matnr', align: 'center',title: '存货编码'}
    ,{field: 'anfme', align: 'center',title: '数量'}
src/main/webapp/static/js/locDetlStatis/locDetlStatis.js
@@ -3,8 +3,13 @@
    var cols = [
        {field: 'anfme', align: 'center',title: '库存数量', style: 'font-weight: bold'}
    ];
    arrRemove(detlCols, "field", "anfme")
    arrRemove(detlCols, "field", "zpallet")
    arrRemove(detlCols, "field", "anfme");
    arrRemove(detlCols,"field","suppCode");
    arrRemove(detlCols, "field", "zpallet");
    arrRemove(detlCols, "field", "orderNo");
    arrRemove(detlCols, "field", "threeCode");
    arrRemove(detlCols, "field", "deadTime");
    arrRemove(detlCols, "field", "batch");
    cols.push.apply(cols, detlCols);
    // cols.push({field: 'anfme', align: 'center',title: '数量', style: 'font-weight: bold'}
    // )