自动化立体仓库 - WMS系统
zjj
2023-06-07 19e83bcd49f988e77d39df81192ab116bb991b18
#组托增加重量字段
14个文件已修改
183 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/NodeController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OutController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/CombParam.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/LocDetlService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/ManLocDetlService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocDetlMapper.xml 83 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ManLocDetlMapper.xml 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/manLocDetl/manLocDetl.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/home/map.html 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/NodeController.java
@@ -82,6 +82,7 @@
                      @RequestParam(required = false)String orderByType,
                      @RequestParam Map<String, Object> param){
        EntityWrapper<Node> wrapper = new EntityWrapper<>();
        wrapper.ne("type",3);
        excludeTrash(param);
        convert(param, wrapper);
        hostEq(wrapper);
@@ -97,11 +98,14 @@
                  @RequestParam(required = false)String orderByType,
                  @RequestParam Map<String, Object> param){
        EntityWrapper<Node> wrapper = new EntityWrapper<>();
        wrapper.ne("type",3);
        excludeTrash(param);
        convert(param, wrapper);
        hostEq(wrapper);
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        return R.parse("0-操作成功").add(nodeService.selectList(wrapper));
        if (!Cools.isEmpty(orderByField)){
            wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));
        }
        return R.parse("0-成功").add(nodeService.selectList(wrapper));
    }
    private void convert(Map<String, Object> map, EntityWrapper wrapper){
src/main/java/com/zy/asrs/controller/OutController.java
@@ -67,7 +67,7 @@
        for (OrderDetl orderDetl : orderDetls) {
            double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getQty()).orElse(0.0D);
            if (issued <= 0.0D) { continue; }
            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOwner());
            List<LocDetl> locDetls = locDetlService.queryStock2(orderDetl.getMatnr(), orderDetl.getBatch(), orderDetl.getOwner());
            for (LocDetl locDetl : locDetls) {
                if (issued > 0) {
                    LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
src/main/java/com/zy/asrs/entity/param/CombParam.java
@@ -39,6 +39,8 @@
        // 物料数量
        private Double anfme;
        private Double weight;
    }
}
src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -78,4 +78,5 @@
    //通过订单号、物料号、物料名称、规格、库位号进行模糊搜索
    List<LocDetl> searchByLike(String orderNo, String matnr, String maktx, String specs, String locNo);
    List<LocDetl> queryStock2(String matnr, String batch, int owner);
}
src/main/java/com/zy/asrs/mapper/ManLocDetlMapper.java
@@ -88,5 +88,5 @@
    int deleteDatailed (String locNo, String matnr,String batch);
    int increase(Double anfme,String locNo, String matnr,String batch);
    int increase(Double anfme,String locNo, String matnr,String batch,Double weight);
}
src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -48,6 +48,7 @@
    // --------------------------------------------------
    List<LocDetl> queryStock(String matnr, String batch,int owner);
    List<LocDetl> queryStock2(String matnr, String batch,int owner);
    Double queryStockAnfme(String matnr, String batch);
src/main/java/com/zy/asrs/service/ManLocDetlService.java
@@ -66,6 +66,6 @@
    int deleteDatailed (String locNo, String matnr,String batch);
    int increase(Double anfme,String locNo, String matnr,String batch);
    int increase(Double anfme,String locNo, String matnr,String batch,Double weight);
}
src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -92,6 +92,11 @@
    }
    @Override
    public List<LocDetl> queryStock2(String matnr, String batch, int owner) {
        return this.baseMapper.queryStock2(matnr, batch, owner);
    }
    @Override
    public List<LocDetl> queryStockViewMerge(String locNo) {
        return this.baseMapper.queryStockViewMerge(locNo);
    }
src/main/java/com/zy/asrs/service/impl/ManLocDetlServiceImpl.java
@@ -197,8 +197,8 @@
    }
    @Override
    public int increase(Double anfme,String locNo, String matnr, String batch) {
        return baseMapper.increase(anfme,locNo,matnr,batch);
    public int increase(Double anfme,String locNo, String matnr, String batch,Double weight) {
        return baseMapper.increase(anfme,locNo,matnr,batch,weight);
    }
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -162,6 +162,7 @@
                waitPakin.setModiTime(now);
                waitPakin.setOwner(detlDto.getOwner());
                waitPakin.setUuid(uuid);
                waitPakin.setWeight(param.getCombMats().get(0).getWeight());
                if (!waitPakinService.insert(waitPakin)) {
                    throw new CoolException("保存入库通知档失败");
                }
@@ -229,6 +230,7 @@
                waitPakin.setModiTime(now);
                waitPakin.setOwner(detlDto.getOwner());
                waitPakin.setUuid(uuid);
                waitPakin.setWeight(param.getCombMats().get(0).getWeight());
                if (!waitPakinService.insert(waitPakin)) {
                    throw new CoolException("保存入库通知档失败");
                }
@@ -560,13 +562,23 @@
                manLocDetl.setBatch(jsonOrderDetl.getBatch());
                manLocDetl.setUuid(uuid);
                manLocDetl.setOwner(orderDetl.getOwner());
                manLocDetl.setWeight(jsonOrderDetl.getWeight());
                if(!manLocDetlService.insert(manLocDetl)){
                    return R.error("修改平库物料失败!");
                    return R.error("插入平库物料失败!");
                }
            } else {
                if(manLocDetlService.increase(checkManLocDetl.getAnfme() + jsonOrderDetl.getAnfme(), jsonOrderDetl.getOrderNo(), jsonOrderDetl.getMaktx(), jsonOrderDetl.getBatch())<=0){
                  if (checkManLocDetl.getWeight() == null){
                      checkManLocDetl.setWeight(0.0);
                  }
                if(manLocDetlService.increase(checkManLocDetl.getAnfme() + jsonOrderDetl.getAnfme(),
                        node.getName(),
                        jsonOrderDetl.getMatnr(),
                        jsonOrderDetl.getBatch(),checkManLocDetl.getWeight()+jsonOrderDetl.getWeight()
                        )<=0
                        ){
                    return R.error("修改平库物料失败!");
                }
            }
            orderDetl.setQty(orderDetl.getQty() + jsonOrderDetl.getAnfme());
            orderDetl.setWorkQty(orderDetl.getWorkQty() + jsonOrderDetl.getAnfme());
@@ -647,12 +659,18 @@
                return R.error("出库数量大于可出数量");
            }
            Double finalQty = checkManLocDetl.getAnfme() - jsonOrderDetl.getAnfme();
            Double weight = checkManLocDetl.getWeight() - jsonOrderDetl.getWeight();
            checkManLocDetl.setAnfme(finalQty);
            checkManLocDetl.setWeight(weight);
            if (weight < 0){
                return R.error("出库重量有误!");
            }
            if (finalQty < 0){
                //  if(manLocDetlService.deleteDatailed(jsonLocNo, jsonOrderDetl.getMatnr(), jsonOrderDetl.getBatch())<=0) {
                return R.error("数量有误!");
                //   }
            }else {
                if(manLocDetlService.increase(finalQty, jsonLocNo, jsonOrderDetl.getMatnr(), jsonOrderDetl.getBatch())<=0){
                if(manLocDetlService.increase(finalQty, jsonLocNo, jsonOrderDetl.getMatnr(), jsonOrderDetl.getBatch(),weight)<=0){
                    return R.error("修改平库物料失败!");
                }
            }
src/main/resources/mapper/LocDetlMapper.xml
@@ -416,6 +416,89 @@
            and maktx like '%' + #{maktx} + '%';
        </if>
    </select>
    <select id="queryStock2" resultMap="BaseResultMap">
        select a.*
        from asr_loc_detl_merge a
        left join asr_loc_detl_F_view b on a.loc_no = b.loc_no
        where 1=1
        and b.loc_sts = 'F'
        and a.matnr = #{matnr}
        and a.payment = 1
        <!--        <choose>-->
        <!--            <when test="batch != null and batch != ''">-->
        <!--                and a.batch = #{batch}-->
        <!--            </when>-->
        <!--            <otherwise>-->
        <!--                and (a.batch IS NULL OR a.batch = '')-->
        <!--            </otherwise>-->
        <!--        </choose>-->
        <choose>
            <when test="owner != null and owner !=0">
                and a.owner = #{owner}
            </when>
            <otherwise>
                and 1!=1
            </otherwise>
        </choose>
        order by
        DATEPART(yyyy,a.modi_time),DATEPART(mm,a.modi_time),DATEPART(dd,a.modi_time), a.anfme
        desc,
        NEWID(),
        case
        when (left(a.loc_no, 2) = '01') then 0
        when (left(a.loc_no, 2) = '02') then 1
        when (left(a.loc_no, 2) = '03') then 1
        when (left(a.loc_no, 2) = '04') then 0
        when (left(a.loc_no, 2) = '05') then 0
        when (left(a.loc_no, 2) = '06') then 1
        when (left(a.loc_no, 2) = '07') then 1
        when (left(a.loc_no, 2) = '08') then 0
        when (left(a.loc_no, 2) = '09') then 0
        when (left(a.loc_no, 2) = '10') then 1
        when (left(a.loc_no, 2) = '11') then 1
        when (left(a.loc_no, 2) = '12') then 0
        when (left(a.loc_no, 2) = '13') then 0
        when (left(a.loc_no, 2) = '14') then 1
        when (left(a.loc_no, 2) = '15') then 1
        when (left(a.loc_no, 2) = '16') then 0
        when (left(a.loc_no, 2) = '17') then 0
        when (left(a.loc_no, 2) = '18') then 1
        when (left(a.loc_no, 2) = '19') then 1
        when (left(a.loc_no, 2) = '20') then 0
        when (left(a.loc_no, 2) = '21') then 0
        when (left(a.loc_no, 2) = '22') then 1
        when (left(a.loc_no, 2) = '23') then 1
        when (left(a.loc_no, 2) = '24') then 0
        when (left(a.loc_no, 2) = '25') then 0
        when (left(a.loc_no, 2) = '26') then 1
        when (left(a.loc_no, 2) = '27') then 1
        when (left(a.loc_no, 2) = '28') then 0
        when (left(a.loc_no, 2) = '29') then 0
        when (left(a.loc_no, 2) = '30') then 1
        when (left(a.loc_no, 2) = '31') then 1
        when (left(a.loc_no, 2) = '32') then 0
        when (left(a.loc_no, 2) = '33') then 0
        when (left(a.loc_no, 2) = '34') then 1
        when (left(a.loc_no, 2) = '35') then 1
        when (left(a.loc_no, 2) = '36') then 0
        when (left(a.loc_no, 2) = '37') then 0
        when (left(a.loc_no, 2) = '38') then 1
        when (left(a.loc_no, 2) = '39') then 1
        when (left(a.loc_no, 2) = '40') then 0
        when (left(a.loc_no, 2) = '41') then 0
        when (left(a.loc_no, 2) = '42') then 1
        when (left(a.loc_no, 2) = '43') then 1
        when (left(a.loc_no, 2) = '44') then 0
        when (left(a.loc_no, 2) = '45') then 0
        when (left(a.loc_no, 2) = '46') then 1
        when (left(a.loc_no, 2) = '47') then 1
        when (left(a.loc_no, 2) = '48') then 0
        else 0
        end
        desc
    </select>
</mapper>
src/main/resources/mapper/ManLocDetlMapper.xml
@@ -359,17 +359,18 @@
        update man_loc_detl
        set  anfme= #{anfme}
        , modi_time = getdate()
        ,weight=#{weight}
        where 1=1
        and loc_no = #{locNo}
        and matnr = #{matnr}
        <choose>
            <when test="batch != null and batch!=''  ">
                and maktx = #{batch}
            </when>
            <otherwise>
                and (batch IS NULL OR batch = '')
            </otherwise>
        </choose>
<!--        <choose>-->
<!--            <when test="batch != null and batch!=''  ">-->
<!--                and batch = #{batch}-->
<!--            </when>-->
<!--            <otherwise>-->
<!--                and (batch IS NULL OR batch = '')-->
<!--            </otherwise>-->
<!--        </choose>-->
    </update>
</mapper>
src/main/webapp/static/js/manLocDetl/manLocDetl.js
@@ -6,7 +6,7 @@
        ,{field: 'maktx', align: 'center',title: '商品名称', sort:true}
        ,{field: 'orderNo', align: 'center',title: '单据编号', hide: true}
        ,{field: 'specs', align: 'center',title: '规格'}
        ,{field: 'weight', align: 'center',title: '单箱净重', hide: false}
        ,{field: 'weight', align: 'center',title: '库位总重量', hide: false}
        ,{field: 'batch', align: 'center',title: '批号', width: 300, sort:true, hide: true}
        ,{field: 'anfme', align: 'center',title: '数量'}
src/main/webapp/views/home/map.html
@@ -102,7 +102,7 @@
        }
        .pointBoxDefault {
            background: #f9f4dc;
            background: #ffffff;
        }
        .pointBoxSelected {
@@ -552,20 +552,16 @@
                    <p class="text-title" style="text-align: center;">库区 {{areaName}}</p>
                    <div class="text-body" style="display: flex;">
                        <div class="floorSelect">
                            <label for="area01">立库</label>
                            <label for="area01">A区</label>
                            <input id="area01" type="radio" name="r" v-model="area" value="1" checked="">
                            <label for="area03">平库B区</label>
                            <label for="area03">B区</label>
                            <input id="area03" type="radio" v-model="area" name="r" value="3">
                            <label for="area032">平库B区2层</label>
                            <input id="area032" type="radio" v-model="area" name="r" value="32">
                            <label for="area04">平库C区</label>
                            <label for="area04">C区</label>
                            <input id="area04" type="radio" v-model="area" name="r" value="4">
                            <label for="area042">平库C区2层</label>
                            <input id="area042" type="radio" v-model="area" name="r" value="42">
                            <label for="area05">平库D区</label>
                            <label for="area05">D区</label>
                            <input id="area05" type="radio" v-model="area" name="r" value="5">
                            <label for="area052">平库D区2层</label>
                            <input id="area052" type="radio" v-model="area" name="r" value="52">
                            <label for="area06">E区</label>
                            <input id="area06" type="radio" v-model="area" name="r" value="6">
                        </div>
                    </div>
@@ -756,7 +752,7 @@
                deep: true,
                handler(val) {
                    if (val == 1){
                        this.areaName = "立库"
                        this.areaName = "A区"
                    }else if (val == 3){
                        this.areaName = "B区"
@@ -767,14 +763,8 @@
                    else if (val == 5){
                        this.areaName = "D区"
                    }
                    else if (val == 32){
                        this.areaName = "B区2层"
                    }
                    else if (val == 42){
                        this.areaName = "C区2层"
                    }
                    else if (val == 52){
                        this.areaName = "D区2层"
                    else if (val == 6){
                        this.areaName = "E区"
                    }