自动化立体仓库 - WMS系统
pang.jiabao
2024-03-15 c0586c8f9da15829be14077c2a1c22caa1e8cf83
查看单据明细时显示该物料在立库和平库中的库存
6个文件已修改
77 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OrderDetlController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OrderDetlService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderDetlMapper.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OrderDetlController.java
@@ -47,7 +47,14 @@
            wrapper.orderBy("create_time", false);
        }
        wrapper.eq("status", 1);
        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper));
        Page<OrderDetl> orderDetlPage = orderDetlService.selectPage(new Page<>(curr, limit), wrapper);
        // 根据商品编号和批号,分别在立库和平库库存表中查询其存量,并存入两个临时属性中
        orderDetlPage.getRecords().forEach(orderDetl -> {
            Map<String, Long> map = orderDetlService.selectCountByMatnr(orderDetl.getMatnr(), orderDetl.getBatch());
            orderDetl.setSupp(String.valueOf(map.get("asrCount")));
            orderDetl.setSuppCode(String.valueOf(map.get("manCount")));
        });
        return R.ok(orderDetlPage);
    }
    @RequestMapping(value = "/orderDetl/pakout/list/auth")
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -40,4 +40,20 @@
    Integer sameOrderComb(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch);
    int increaseAnfme(@Param("orderId")Long orderId, @Param("matnr")String matnr, @Param("batch")String batch, @Param("qty")Double qty);
    /**
     * 根据商品编码和批号分别查询在平库该物料库存
     * @param matnr 商品编号
     * @param batch 批号
     * @return 库存数量
     */
    Long selectCountToAsrByMatnr(@Param("matnr") String matnr,@Param("batch") String batch);
    /**
     * 根据商品编码和批号分别查询在立库该物料库存
     * @param matnr 商品编号
     * @param batch 批号
     * @return 库存数量
     */
    Long selectCountToManByMatnr(@Param("matnr") String matnr,@Param("batch") String batch);
}
src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -5,6 +5,7 @@
import com.zy.asrs.entity.OrderDetl;
import java.util.List;
import java.util.Map;
public interface OrderDetlService extends IService<OrderDetl> {
@@ -43,4 +44,12 @@
    Integer sameOrderComb(String orderNo, String matnr, String batch);
    boolean increaseAnfme(Long orderId, String matnr, String batch, Double qty);
    /**
     * 根据商品编码和批号分别查询在平库和立库该物料库存
     * @param matnr 商品编码
     * @param batch 批号
     * @return 返回两个键值对,asrCount在立库库存,manCount在平库库存
     */
    Map<String,Long> selectCountByMatnr(String matnr, String batch);
}
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -2,17 +2,23 @@
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.common.Cools;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.service.OrderDetlService;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.core.common.Cools;
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.mapper.OrderDetlMapper;
import com.zy.asrs.service.OrderDetlService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service("orderDetlService")
public class OrderDetlServiceImpl extends ServiceImpl<OrderDetlMapper, OrderDetl> implements OrderDetlService {
    @Resource
    private OrderDetlMapper orderDetlMapper;
    @Override
    public List<OrderDetl> selectByOrderId(Long orderId) {
@@ -113,4 +119,12 @@
    public boolean increaseAnfme(Long orderId, String matnr, String batch, Double qty) {
        return this.baseMapper.increaseAnfme(orderId, matnr, batch, qty) > 0;
    }
    @Override
    public Map<String, Long> selectCountByMatnr(String matnr, String batch) {
        Map<String,Long> map = new HashMap<>();
        map.put("asrCount",orderDetlMapper.selectCountToAsrByMatnr(matnr, batch));
        map.put("manCount",orderDetlMapper.selectCountToManByMatnr(matnr, batch));
        return map;
    }
}
src/main/resources/mapper/OrderDetlMapper.xml
@@ -142,6 +142,18 @@
            </otherwise>
        </choose>
    </select>
    <select id="selectCountToAsrByMatnr" resultType="java.lang.Long">
        SELECT ISNULL(SUM(anfme), 0) FROM asr_loc_detl WHERE matnr = #{matnr}
        <if test="batch!=null and batch!='' ">
            and batch = #{batch}
        </if>
    </select>
    <select id="selectCountToManByMatnr" resultType="java.lang.Long">
        SELECT ISNULL(SUM(anfme), 0) FROM man_loc_detl WHERE matnr = #{matnr}
        <if test="batch!=null and batch!='' ">
            and batch = #{batch}
        </if>
    </select>
    <update id="increase">
        update man_order_detl
src/main/webapp/static/js/order/order.js
@@ -136,8 +136,17 @@
                            {field: 'maktx', title: '商品名称', width: 160},
                            {field: 'batch', title: '批号'},
                            {field: 'anfme', title: '数量'},
                            {field: 'supp', title: '立库库存', templet: function (item){
                                    if(item.supp >= item.anfme)   return `<span style="color: #00FF00">${item.supp}</span>`;
                                    else return `<span style="color: red">${item.supp}</span>`;
                                }},
                            {field: 'suppCode', title: '平库库存' , templet: function (item){
                                if(item.suppCode >= item.anfme)   return `<span style="color: #00FF00">${item.suppCode}</span>`;
                                else return `<span style="color: red">${item.suppCode}</span>`;
                                }},
                            {field: 'workQty', title: '作业数量'},
                            {field: 'qty', title: '完成数量', style: 'font-weight: bold'},
                            {field: 'workQty', title: '作业数量'},
                            // {field: 'unit', title: '单位'},
                            // {
                            //     field: 'createTime$', title: '创建时间', sort: true, templet: function (d) {