自动化立体仓库 - WMS系统
#
luxiaotao1123
2022-12-14 e732ec664a35080497fd17d6550fd5d718466332
#
14个文件已修改
132 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OutController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/mapper/StaDescMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OrderDetlService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/erp/ErpService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderDetlMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/StaDescMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OutController.java
@@ -68,9 +68,12 @@
            List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
            for (LocDetl locDetl : locDetls) {
                if (issued > 0) {
//                    LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
//                            issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
                    LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
                            issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
                    int ioType = (issued >= locDetl.getAnfme() && locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locDto.getLocNo())) == 1) ? 101 : 103;
                            locDetl.getAnfme());
//                    int ioType = (issued >= locDetl.getAnfme() && locDetlService.selectCount(new EntityWrapper<LocDetl>().eq("loc_no", locDto.getLocNo())) == 1) ? 101 : 103;
                    int ioType = 101;
                    List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), ioType);
                    locDto.setStaNos(staNos);
                    locDtos.add(locDto);
@@ -98,6 +101,11 @@
            return R.parse(BaseRes.PARAM);
        }
        boolean lack = true;
        for (LocDto locDto : locDtos) {
            if (Cools.isEmpty(locDto.getStaNo())) {
                return R.error(locDto.getLocNo()+"库位请选择出库站");
            }
        }
        for (LocDto locDto : locDtos) {
            if (!locDto.isLack()) {
                lack = false;
@@ -143,10 +151,10 @@
            if (order.getSettle() > 2) {
                return R.error(orderDto.getOrderNo() + "订单已失效,请及时刷新页面");
            }
            OrderDetl orderDetl = orderDetlService.selectItem(orderDto.getOrderNo(), orderDto.getMatnr(), orderDto.getBatch());
            if (orderDetl.getAnfme() - orderDetl.getQty() < orderDto.getAnfme()) {
                return R.ok(orderDto.getOrderNo() + "订单已作业,请及时刷新页面");
            }
//            OrderDetl orderDetl = orderDetlService.selectItemNoneOfBatch(orderDto.getOrderNo(), orderDto.getMatnr());
//            if (orderDetl.getAnfme() - orderDetl.getQty() < orderDto.getAnfme()) {
//                return R.ok(orderDto.getOrderNo() + "订单已作业,请及时刷新页面");
//            }
        }
        List<TaskDto> taskDtos = new ArrayList<>();
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -433,10 +433,15 @@
    }
    public Double getEnableQty() {
        Double enableQty = null;
        if (null != this.anfme && this.qty != null) {
            return this.anfme - this.qty;
            enableQty = this.anfme - this.qty;
            if (enableQty < 0) {
                enableQty = 0.0D;
        }
        return null;
//            return this.anfme - this.qty;
        }
        return enableQty;
    }
    public void sync(Object source) {
src/main/java/com/zy/asrs/mapper/OrderDetlMapper.java
@@ -17,6 +17,8 @@
    OrderDetl selectItemByOrderNo(@Param("orderNo") String orderNo, @Param("matnr") String matnr, @Param("batch") String batch);
    OrderDetl selectItemNoneOfBatch(String orderNo, String matnr);
    List<OrderDetl> selectWorkingDetls(Long orderId);
    List<OrderDetl> getPakoutPage(Map<String, Object> map);
src/main/java/com/zy/asrs/mapper/StaDescMapper.java
@@ -14,6 +14,8 @@
    List<Integer> queryOutStaNosByLocNo(@Param("locNo") String locNo, @Param("typeNo") Integer typeNo);
    List<Integer> queryOutStaNosByCrnNo(@Param("crnNo") Integer crnNo, @Param("typeNo") Integer typeNo);
    StaDesc queryCrnStn(Integer crnNo);
}
src/main/java/com/zy/asrs/service/OrderDetlService.java
@@ -16,6 +16,8 @@
    OrderDetl selectItem(String orderNo, String matnr, String batch);
    OrderDetl selectItemNoneOfBatch(String orderNo, String matnr);
    OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch);
    boolean increaseAnfme(Long orderId, String matnr, String batch, Double qty);
src/main/java/com/zy/asrs/service/impl/OrderDetlServiceImpl.java
@@ -39,6 +39,11 @@
    }
    @Override
    public OrderDetl selectItemNoneOfBatch(String orderNo, String matnr) {
        return this.baseMapper.selectItemNoneOfBatch(orderNo, matnr);
    }
    @Override
    public OrderDetl findByLook(List<OrderDetl> orderDetls, Long orderId, String matnr, String batch) {
        for (OrderDetl orderDetl : orderDetls) {
            if (orderDetl.getOrderId().equals(orderId) && orderDetl.getMatnr().equals(matnr)) {
src/main/java/com/zy/asrs/service/impl/OrderServiceImpl.java
@@ -15,6 +15,7 @@
import com.zy.common.model.DetlDto;
import com.zy.common.model.OrderDto;
import com.zy.common.model.OrderMergeVo;
import com.zy.common.service.erp.ErpService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -40,6 +41,8 @@
    private WrkDetlService wrkDetlService;
    @Autowired
    private MatService matService;
    @Autowired
    private ErpService erpService;
    @Override
    public Order selectByNo(String orderNo) {
src/main/java/com/zy/asrs/service/impl/StaDescServiceImpl.java
@@ -7,7 +7,11 @@
import com.core.exception.CoolException;
import com.zy.asrs.entity.StaDesc;
import com.zy.asrs.mapper.StaDescMapper;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.StaDescService;
import com.zy.asrs.utils.Utils;
import com.zy.common.service.CommonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@@ -15,9 +19,26 @@
@Service("staDescService")
public class StaDescServiceImpl extends ServiceImpl<StaDescMapper, StaDesc> implements StaDescService {
    @Autowired
    private LocMastService locMastService;
    @Override
    public List<Integer> queryOutStaNosByLocNo(String locNo, Integer typeNo) {
        return this.baseMapper.queryOutStaNosByLocNo(locNo, typeNo);
        int crnNo = 0;
        int row = Utils.getRow(locNo);
        if (CommonService.FIRST_GROUP_ROW_LIST.contains(row)) {
            crnNo = 1;
        }
        if (CommonService.SECOND_GROUP_ROW_LIST.contains(row)) {
            crnNo = 3;
        }
        if (row == 1) {
            crnNo = 1;
        }
        if (row == 31 || row == 32) {
            crnNo = 3;
        }
        return this.baseMapper.queryOutStaNosByCrnNo(crnNo, typeNo);
    }
    @Override
src/main/java/com/zy/asrs/task/handler/OrderSyncHandler.java
@@ -1,5 +1,6 @@
package com.zy.asrs.task.handler;
import com.alibaba.fastjson.JSON;
import com.core.exception.CoolException;
import com.zy.asrs.entity.DocType;
import com.zy.asrs.entity.Order;
@@ -11,11 +12,13 @@
import com.zy.asrs.task.AbstractHandler;
import com.zy.asrs.task.core.ReturnT;
import com.zy.common.service.erp.ErpService;
import com.zy.common.service.erp.entity.VoucherDetail;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.util.List;
@@ -70,11 +73,20 @@
                if (!erpService.updateStateForVoucher(order.getOrderNo(), state)) {
                    throw new CoolException(order.getOrderNo() + "订单修改State为"+state+"失败");
                } else {
                    erpService.updateTimeForVoucherDetail(order.getOrderNo());
                    for (OrderDetl orderDetl : orderDetls) {
                        VoucherDetail voucherDetail = new VoucherDetail();
                        voucherDetail.setVoucherID(order.getOrderNo());
                        voucherDetail.setPickID("fepvnn0496");
                        voucherDetail.setBarcode(orderDetl.getBatch());
                        if (!erpService.insertVoucherDetail(voucherDetail)) {
                            throw new CoolException(order.getOrderNo() + "订单添加VoucherDetail"+ JSON.toJSONString(voucherDetail)+"失败");
                        }
                    }
                }
            } catch (Exception e) {
                log.error("fail", e);
                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                return FAIL.setMsg(e.getMessage());
            }
        }
src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -119,8 +119,17 @@
                        }
                    }
                    // 修改 erp Goods 表
                    List<WrkDetl> wrkDetls0 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
                    for (WrkDetl wrkDetl : wrkDetls0) {
                    for (WrkDetl wrkDetl : wrkDetls) {
                        Goods goods = erpService.selectGoodsOne(wrkDetl.getBatch());
                        if (!Cools.isEmpty(goods)) {
                            if (!erpService.updateStateForGoods(goods.getBarCode(), 4)) {
                                log.error("{}条码在erp数据库中更新失败!", goods.getBarCode());
                            }
                        } else {
                            log.error("{}条码不在erp数据库中!", wrkDetl.getMatnr());
                        }
                    }
                    for (WrkDetl wrkDetl : wrkDetlsKeyOrder) {
                        Goods goods = erpService.selectGoodsOne(wrkDetl.getBatch());
                        if (!Cools.isEmpty(goods)) {
                            if (!erpService.updateStateForGoods(goods.getBarCode(), 4)) {
@@ -140,8 +149,17 @@
                    }
                }
                // 修改 erp Goods 表
                List<WrkDetl> wrkDetls0 = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo());
                for (WrkDetl wrkDetl : wrkDetls0) {
                for (WrkDetl wrkDetl : wrkDetls) {
                    Goods goods = erpService.selectGoodsOne(wrkDetl.getBatch());
                    if (!Cools.isEmpty(goods)) {
                        if (!erpService.updateStateForGoods(goods.getBarCode(), 4)) {
                            log.error("{}条码在erp数据库中更新失败!", goods.getBarCode());
                        }
                    } else {
                        log.error("{}条码不在erp数据库中!", wrkDetl.getMatnr());
                    }
                }
                for (WrkDetl wrkDetl : wrkDetlsKeyOrder) {
                    Goods goods = erpService.selectGoodsOne(wrkDetl.getBatch());
                    if (!Cools.isEmpty(goods)) {
                        if (!erpService.updateStateForGoods(goods.getBarCode(), 4)) {
src/main/java/com/zy/common/service/erp/ErpService.java
@@ -119,4 +119,13 @@
        return erpSqlServer.update(sql) > 0;
    }
    /**
     * 新增 VoucherDetail 表
     */
    public boolean insertVoucherDetail(VoucherDetail voucherDetail){
        String sql = "update VoucherDetail set LastUpdatedDate = ''{1}'' where VoucherID = ''{0}''";
        sql = MessageFormat.format(sql, voucherID, DateUtils.convert(new Date()));
        return erpSqlServer.update(sql) > 0;
    }
}
src/main/resources/mapper/OrderDetlMapper.xml
@@ -74,6 +74,13 @@
        </if>
    </select>
    <select id="selectItemNoneOfBatch" resultMap="BaseResultMap">
        select * from man_order_detl
        where 1=1
        and order_no = #{orderNo}
        and matnr = #{matnr}
    </select>
    <select id="selectWorkingDetls" resultMap="BaseResultMap">
        select * from man_order_detl
        where 1=1
src/main/resources/mapper/StaDescMapper.xml
@@ -32,6 +32,15 @@
        </if>
    </select>
    <select id="queryOutStaNosByCrnNo" resultType="java.lang.Integer">
        select
        distinct asd.stn_no
        from asr_sta_desc asd
        where 1=1
        and asd.crn_no = #{crnNo}
        and asd.type_no = #{typeNo}
    </select>
    <select id="queryCrnStn" resultMap="BaseResultMap">
        select top 1 * from asr_sta_desc
        where 1=1
src/main/webapp/static/js/order/order.js
@@ -46,6 +46,7 @@
            {type: 'numbers'},
            {field: 'orderNo', title: '单据编号', templet: '#orderNoTpl'},
            {field: 'docType$', align: 'center', title: '类型',  minWidth: 160, width: 160},
            {field: 'postFee', align: 'center', title: '总数量',  minWidth: 130, width: 130},
            {align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160},
            {field: 'createTime$', title: '创建时间', minWidth: 200, width: 200},
            {field: 'settle$', align: 'center', title: '状态', templet: '#settleTpl',  minWidth: 160, width: 160},