自动化立体仓库 - WMS系统
#
LSH
2023-05-19 a77cf677874a6aba1784222188072dd442a862d5
#
14个文件已修改
112 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/LocDetlController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OutController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ReportQueryController.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/LocDetl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocDetlService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ManPakOutServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocDetlMapper.xml 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/out.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/order.html 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -107,18 +107,26 @@
//            }
//        }
        excludeTrash(param);
        convert(param, wrapper);
        String locNo = convert(param, wrapper);
        allLike(LocDetl.class, param.keySet(), wrapper, condition);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        Page<LocDetl> locDetlPage = locDetlService.selectPage(new Page<>(curr, limit), wrapper);
        if (Cools.isEmpty(locDetlPage) || locDetlPage.getTotal()==0){
            List<LocDetl> locDetls = locDetlService.queryStockViewMerge(locNo);
            return R.ok(locDetlPage.setRecords(locDetls));
        }else {
            return R.ok(locDetlPage);
        }
//        if (!row.equals("")){
//            wrapper.and()
//                    .where("loc_no like '" +row +"%'");
//        }
        return R.ok(locDetlService.selectPage(new Page<>(curr, limit), wrapper));
//        return R.ok();
    }
    private <T> void convert(Map<String, Object> map, EntityWrapper<T> wrapper){
    private <T> String convert(Map<String, Object> map, EntityWrapper<T> wrapper){
        String locNo=null;
        for (Map.Entry<String, Object> entry : map.entrySet()){
            String val = String.valueOf(entry.getValue());
            if (val.contains(RANGE_TIME_LINK)){
@@ -126,13 +134,15 @@
                wrapper.ge(entry.getKey(), DateUtils.convert(dates[0]));
                wrapper.le(entry.getKey(), DateUtils.convert(dates[1]));
            } else {
                if (entry.getKey().equals("locNo")) {
                if (entry.getKey().equals("loc_no")) {
                    wrapper.eq("loc_no", String.valueOf(entry.getValue()));
                    locNo=String.valueOf(entry.getValue());
                } else {
                    wrapper.like(entry.getKey(), String.valueOf(entry.getValue()));
                }
            }
        }
        return locNo;
    }
    @RequestMapping(value = "/locDetl/add/auth")
src/main/java/com/zy/asrs/controller/OutController.java
@@ -156,6 +156,7 @@
    @ManagerAuth(memo = "生成拣货单")
    public synchronized R pakout2(@RequestBody List<LocDto> locDtos) throws InterruptedException {
        int[][] is = new int[locDtos.size()][2];
        List<String> matnrs=new ArrayList<>();
        for (int i = 0; i < locDtos.size(); i++) {
            LocDto locDto = locDtos.get(locDtos.size() - 1 - i);
            if (locDto.getLocNo() == null || locDto.getManu().equals("立库")) {
@@ -165,11 +166,32 @@
            }
            is[i][1] = locDtos.size() - 1 - i;
        }
        List<LocDto> locDtos1=new ArrayList<>();
        for (int[] i : is) {
            if (i[0] == 1) {
                if (!matnrs.contains(locDtos.get(i[1]).getMatnr())){
                    matnrs.add(locDtos.get(i[1]).getMatnr());
                }
                locDtos1.add(locDtos.get(i[1]));
                locDtos.remove(i[1]);
            }
        }
        for (String matnr:matnrs){
            Double a = 0.0;
            int b = 0;
            for (int i = 0; i < locDtos1.size(); i++){
                if (locDtos1.get(i).getMatnr().equals(matnr)){
                    if (a.equals(0)){
                        b=i;
                    }
                    a=a+locDtos1.get(i).getAnfme();
                }
            }
            LocDto locDto = locDtos1.get(b);
            locDto.setLocNo("立库");
            locDto.setAnfme(a);
            locDtos.add(locDto);
        }
        if (Cools.isEmpty(locDtos)) {
            return R.error("平库参数为空,没有生成拣货单");
        }
src/main/java/com/zy/asrs/controller/ReportQueryController.java
@@ -104,14 +104,26 @@
        // 表格行:层 ====>> 倒序
        List<String> levs = reportQueryMapper.getViewLocLevCount(row);
        List<Map<String, Object>> body = new ArrayList<>();
        for (String lev : levs){
        int maxBay=0;
        for (String lev : levs) {
            // 获取层级数据
            List<ViewLocMapDto> dtos = reportQueryMapper.getViewLocBays(row, Integer.parseInt(lev));
            // !表格第一列放层级数
            dtos.add(0, new ViewLocMapDto(null ,null, lev));
            dtos.add(0, new ViewLocMapDto(null, null, lev));
            Map<String, Object> map = new HashMap<>();
            map.put("loc", dtos);
            body.add(map);
            if (row == 100) {
                if (maxBay < locDetlService.queryStockViewMergeCount(row, Integer.parseInt(lev))) {
                    maxBay = locDetlService.queryStockViewMergeCount(row, Integer.parseInt(lev));
                }
            }
        }
        if (row==100){
            for (int i =bays.size()-1;i>maxBay;i--){
                bays.remove(i);
            }
        }
        Map<String, Object> result = new HashMap<>();
        result.put("title", bays);
src/main/java/com/zy/asrs/entity/LocDetl.java
@@ -163,7 +163,7 @@
        if (!Cools.isEmpty(locMast)){
            return String.valueOf(locMast.getLocNo());
        }
        return null;
        return this.locNo;
    }
    public String getBeBatch$(){
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -56,6 +56,8 @@
    List<LocDetl> queryStock(@Param("matnr")String matnr, @Param("batch")String batch, @Param("orderNo")String orderNo, @Param("locNos") Set<String> locNos);
    List<LocDetl> queryStockViewMerge(@Param("locNo")String locNo);
    Double queryStockAnfme(String matnr, String batch);
    List<StockVo> queryStockTotal(@Param("matnr")String matnr,@Param("batch")String batch);
@@ -67,4 +69,6 @@
    Double selectLocDetlSumQty(String locNo);
    Integer queryStockViewMergeCount(@Param("row")int row,@Param("lev")int lev);
}
src/main/java/com/zy/asrs/mapper/ManPakOutMapper.java
@@ -8,4 +8,5 @@
@Mapper
@Repository
public interface ManPakOutMapper extends BaseMapper<ManPakOut> {
}
src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
@@ -24,17 +24,17 @@
    public List<ViewStayTimeBean> getViewStayTimeAll(ViewStayTimeBean viewStayTime);
//    // 库位Map
    @Select("select distinct row1 from asr_loc_mast order by row1 asc")
    @Select("select distinct row1 from asr_loc_mast_man_node_merge order by row1 asc")
    List<Integer> getViewLocRowTotal();
    @Select("select distinct lev1 from asr_loc_mast where row1=#{row1} order by lev1 desc")
    @Select("select distinct lev1 from asr_loc_mast_man_node_merge where row1=#{row1} order by lev1 desc")
    public List<String> getViewLocLevCount(@Param("row1") int row1);
//
    @Select("select loc_no as locNo, bay1,loc_sts as locSts from asr_loc_mast where row1=#{row1} and lev1=#{lev1} order by bay1")
    @Select("select loc_no as locNo, bay1,loc_sts as locSts from asr_loc_mast_man_node_merge where row1=#{row1} and lev1=#{lev1} order by bay1")
    public List<ViewLocMapDto> getViewLocBays(@Param("row1") int row1, @Param("lev1") int lev1);
    // 库位Map
    @Select("select distinct bay1 from asr_loc_mast where row1=#{row1} order by bay1")
    @Select("select distinct bay1 from asr_loc_mast_man_node_merge where row1=#{row1} order by bay1")
    public List<String> getViewLocBayCount(@Param("row1") int row1);
    @Select("select lev1,loc_sts as locSts from asr_loc_mast where row1=#{row1} and bay1=#{bay1} order by bay1")
src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -31,6 +31,8 @@
     */
    List<String> getSameDetlToday(String matnr, Integer start, Integer end);
    List<LocDetl> queryStockViewMerge(String locNo);
    Page<LocDetl> getStockStatis(Page<LocDetl> page);
    Double getSumAnfme(String matnr);
@@ -41,6 +43,8 @@
    Integer countLocNoNum(String locNo);
    Integer queryStockViewMergeCount(int row,int lev);
    // --------------------------------------------------
    List<LocDetl> queryStock(String matnr, String batch, String orderNo, Set<String> locNos);
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -82,6 +82,11 @@
    }
    @Override
    public List<LocDetl> queryStockViewMerge(String locNo) {
        return this.baseMapper.queryStockViewMerge(locNo);
    }
    @Override
    public Double queryStockAnfme(String matnr, String batch) {
        return this.baseMapper.queryStockAnfme(matnr, batch);
    }
@@ -118,4 +123,7 @@
    public Double getLocDetlSumQty(String locNo) {
        return this.baseMapper.selectLocDetlSumQty(locNo);
    }
    @Override
    public Integer queryStockViewMergeCount(int row,int lev){return this.baseMapper.queryStockViewMergeCount(row,lev);}
}
src/main/java/com/zy/asrs/service/impl/ManPakOutServiceImpl.java
@@ -9,4 +9,5 @@
@Service("manPakOutService")
public class ManPakOutServiceImpl extends ServiceImpl<ManPakOutMapper, ManPakOut> implements ManPakOutService {
}
src/main/resources/application.yml
@@ -11,7 +11,7 @@
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
#    url: jdbc:sqlserver://10.10.10.100:1433;databasename=stasrs
    url: jdbc:sqlserver://192.168.4.13:1433;databasename=stasrs
    url: jdbc:sqlserver://192.168.4.15:1433;databasename=stasrs
    username: sa
    password: sa@123
  mvc:
src/main/resources/mapper/LocDetlMapper.xml
@@ -197,8 +197,8 @@
    <select id="queryStock" resultMap="BaseResultMap">
        select a.*
        from asr_loc_detl a
        left join asr_loc_mast b on a.loc_no = b.loc_no
        from asr_loc_detl_merge a
        left join asr_loc_mast_man_node_merge b on a.loc_no = b.loc_no
        where 1=1
        and b.loc_sts = 'F'
        and a.matnr = #{matnr}
@@ -325,5 +325,19 @@
        where loc_no=#{locNo}
    </select>
    <select id="queryStockViewMerge" resultMap="BaseResultMap">
        select a.*
        from asr_loc_detl_merge a
        left join asr_loc_mast_man_node_merge b on a.loc_no = b.loc_no
        where 1=1
        and a.loc_no = #{locNo}
    </select>
    <select id="queryStockViewMergeCount" resultType="java.lang.Integer">
        select count(1) from asr_loc_mast_man_node_merge
        where 1=1
        and row1 = #{row}
        and lev1 = #{lev}
    </select>
</mapper>
src/main/webapp/static/js/order/out.js
@@ -168,7 +168,7 @@
                                    { title: '出库数量', align: 'center',field: 'anfme', width: 90, style: 'font-weight: bold; color: red'},
                                    {field: 'locNo', title: '货位', align: 'center', width: 100, templet: '#locNoTpl'},
                                    {field: 'staNos', align: 'center', title: '出库站', merge: ['locNo'], templet: '#tbBasicTbStaNos'},
                                    {type: 'checkbox', merge: ['locNo']},
                                    // {type: 'checkbox', merge: ['locNo']},
                                ]],
                                done: function (res) {
                                    tableMerge.render(this);
src/main/webapp/views/order/order.html
@@ -95,9 +95,9 @@
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">完结</a>
    {{# } }}
    {{# if ((d.settle == 0 || d.settle == 1) && (d.docType == 1 || d.docType == 11 || d.docType == 14 || d.docType == 17 || d.docType == 18)) { }}
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="manPrint">生成拣货单</a>
    {{# } }}
<!--    {{# if ((d.settle == 0 || d.settle == 1) && (d.docType == 1 || d.docType == 11 || d.docType == 14 || d.docType == 17 || d.docType == 18)) { }}-->
<!--    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="manPrint">生成拣货单</a>-->
<!--    {{# } }}-->
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="btnPrint">打印</a>
</script>
<!-- 表格操作列 -->