自动化立体仓库 - WMS系统
#
LSH
2023-12-29 63817fb8bd1933714c4a51d552f15b6e4342c976
#
6个文件已修改
189 ■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/OrderDetl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetlLog.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/DetlDto.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/OrderDetlMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/OrderDetl.java
@@ -306,6 +306,20 @@
    private String memo;
    /**
     * 源仓库
     */
    @ApiModelProperty(value= "源仓库")
    @TableField("source_loc_name")
    private String sourceLocName;
    /**
     * 目标仓库
     */
    @ApiModelProperty(value= "目标仓库")
    @TableField("target_loc_name")
    private String targetLocName;
    /**
     * 拥有者
     */
    @ApiModelProperty(value= "拥有者 1: 杰克   ")
src/main/java/com/zy/asrs/entity/OrderDetlLog.java
@@ -300,6 +300,20 @@
    private Integer owner;
    /**
     * 源仓库
     */
    @ApiModelProperty(value= "源仓库")
    @TableField("source_loc_name")
    private String sourceLocName;
    /**
     * 目标仓库
     */
    @ApiModelProperty(value= "目标仓库")
    @TableField("target_loc_name")
    private String targetLocName;
    /**
     * 货物形态:0:代采、1:仓储
     */
    @ApiModelProperty(value= "货物形态:0:代采、1:仓储")
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -18,6 +18,7 @@
import com.zy.asrs.utils.MatUtils;
import com.zy.common.model.DetlDto;
import com.zy.common.utils.NodeUtils;
import com.zy.erp.kingdee.enums.KingDeeUtilType;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -133,14 +134,26 @@
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getOwnerName(),detail.getPayment());
            dto.setBeBatch(detail.getBeBatch());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
                list.add(dto);
            KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
            if (kingDeeUtilType.entryId==1){
                if (DetlDto.has2(list, dto)) {
                    DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName(),detail.getBeBatch());
                    assert detlDto != null;
                    detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
                } else {
                    list.add(dto);
                }
                dto.setWeight(detail.getWeight());
            }else {
                if (DetlDto.has1(list, dto)) {
                    DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName());
                    assert detlDto != null;
                    detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
                } else {
                    list.add(dto);
                }
                dto.setWeight(detail.getWeight());
            }
            dto.setWeight(detail.getWeight());
        }
        for (DetlDto detlDto : list) {
            Mat mat = matService.selectByMatnr(detlDto.getMatnr());
@@ -168,7 +181,7 @@
            if (Cools.isEmpty(locOwner)){
                throw new CoolException("生成单据明细失败,请联系管理员");
            }else {
                orderDetl.setOwner(locOwner.getId().intValue());
                orderDetl.setOwner(locOwner.getId());
            }
            orderDetl.setPayment(detlDto.getPayment());
            orderDetl.setStatus(1);
@@ -185,6 +198,20 @@
    @Transactional
    public void pakoutOrderCreate(OpenOrderPakoutParam param) {
        Order order = orderService.selectByNo(param.getOrderNo());
        for (DetlDto detlDto : param.getOrderDetails()){
            if (Cools.isEmpty(detlDto) || Cools.isEmpty(detlDto.getOwnerName(),detlDto.getPayment())){
                throw new CoolException(param.getOrderNo() + "缺少货主或货物形态");
            }else {
                LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", detlDto.getOwnerName()));
                if (Cools.isEmpty(locOwner)){
                    LocOwner locOwner1 = new LocOwner();
                    locOwner1.setOwner(detlDto.getOwnerName());
                    locOwnerService.insert(locOwner1);
                }
            }
        }
        // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据
        if (!Cools.isEmpty(order)) {
            if (order.getSettle() > 1L) {
@@ -238,16 +265,28 @@
        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getOrderDetails();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme());
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getOwnerName(),detail.getPayment());
            dto.setBeBatch(detail.getBeBatch());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
                list.add(dto);
            KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName());
            if (kingDeeUtilType.entryId==1){
                if (DetlDto.has2(list, dto)) {
                    DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName(),detail.getBeBatch());
                    assert detlDto != null;
                    detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
                } else {
                    list.add(dto);
                }
                dto.setWeight(detail.getWeight());
            }else {
                if (DetlDto.has1(list, dto)) {
                    DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName());
                    assert detlDto != null;
                    detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
                } else {
                    list.add(dto);
                }
                dto.setWeight(detail.getWeight());
            }
            dto.setWeight(detail.getWeight());
        }
        for (DetlDto detlDto : list) {
            Mat mat = matService.selectByMatnr(detlDto.getMatnr());
@@ -266,8 +305,15 @@
            orderDetl.setUpdateTime(now);
            orderDetl.setStatus(1);
            orderDetl.setQty(0.0D);
            orderDetl.setOwner(detlDto.getOwner());
            orderDetl.setBeBatch(detlDto.getBeBatch());
            orderDetl.setWeight(detlDto.getWeight());
            LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", detlDto.getOwnerName()));
            if (Cools.isEmpty(locOwner)){
                throw new CoolException("生成单据明细失败,请联系管理员");
            }else {
                orderDetl.setOwner(locOwner.getId());
            }
            if (!orderDetlService.insert(orderDetl)) {
                throw new CoolException("生成单据明细失败,请联系管理员");
            }
@@ -342,8 +388,10 @@
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getOwnerName(),detail.getPayment());
            dto.setBeBatch(detail.getBeBatch());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
            dto.setSourceLocName(detail.getSourceLocName());
            dto.setTargetLocName(detail.getTargetLocName());
            if (DetlDto.has3(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getOwnerName(),dto.getSourceLocName(),dto.getTargetLocName());
                assert detlDto != null;
                detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme());
            } else {
@@ -384,6 +432,8 @@
            orderDetl.setQty(0.0D);
            orderDetl.setBeBatch(detlDto.getBeBatch());
            orderDetl.setWeight(detlDto.getWeight());
            orderDetl.setSourceLocName(detlDto.getSourceLocName());
            orderDetl.setTargetLocName(detlDto.getTargetLocName());
            if (!orderDetlService.insert(orderDetl)) {
                throw new CoolException("生成单据明细失败,请联系管理员");
            }
src/main/java/com/zy/common/model/DetlDto.java
@@ -119,12 +119,80 @@
        return false;
    }
    public static boolean has1(List<DetlDto> detlDtos, DetlDto detlDto) {
        for (DetlDto dto : detlDtos) {
            if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch()) && Cools.eq(dto.getOwnerName(), detlDto.getOwnerName())) {
                return true;
            }
        }
        return false;
    }
    public static boolean has2(List<DetlDto> detlDtos, DetlDto detlDto) {
        for (DetlDto dto : detlDtos) {
            if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())
                    && Cools.eq(dto.getOwnerName(), detlDto.getOwnerName()) && dto.getBeBatch()==detlDto.getBeBatch()) {
                return true;
            }
        }
        return false;
    }
    public static boolean has3(List<DetlDto> detlDtos, DetlDto detlDto) {
        for (DetlDto dto : detlDtos) {
            if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch()) && Cools.eq(dto.getOwnerName(), detlDto.getOwnerName())
                    && Cools.eq(dto.getSourceLocName(), detlDto.getSourceLocName()) && Cools.eq(dto.getTargetLocName(), detlDto.getTargetLocName())) {
                return true;
            }
        }
        return false;
    }
    public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch) {
        if (Cools.isEmpty(matnr)) {
            return null;
        }
        for (DetlDto detlDto : detlDtos) {
            if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch())) {
            if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch()) ) {
                return detlDto;
            }
        }
        return null;
    }
    public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch,String ownerName) {
        if (Cools.isEmpty(matnr)) {
            return null;
        }
        for (DetlDto detlDto : detlDtos) {
            if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch()) && Cools.eq(ownerName, detlDto.getOwnerName())) {
                return detlDto;
            }
        }
        return null;
    }
    public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch,String ownerName,int beBatch) {
        if (Cools.isEmpty(matnr)) {
            return null;
        }
        for (DetlDto detlDto : detlDtos) {
            if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch())
                    && Cools.eq(ownerName, detlDto.getOwnerName()) && beBatch== detlDto.getBeBatch()) {
                return detlDto;
            }
        }
        return null;
    }
    public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch,String ownerName,String sourceLocName,String targetLocName) {
        if (Cools.isEmpty(matnr)) {
            return null;
        }
        for (DetlDto detlDto : detlDtos) {
            if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch())
                    && Cools.eq(ownerName, detlDto.getOwnerName()) && Cools.eq(sourceLocName, detlDto.getSourceLocName())
                    && Cools.eq(targetLocName, detlDto.getTargetLocName())) {
                return detlDto;
            }
        }
src/main/resources/mapper/OrderDetlMapper.xml
@@ -48,6 +48,8 @@
        <result column="owner" property="owner" />
        <result column="payment" property="payment" />
        <result column="uuid" property="uuid" />
        <result column="source_loc_name" property="sourceLocName" />
        <result column="target_loc_name" property="targetLocName" />
    </resultMap>
src/main/webapp/static/js/order/order.js
@@ -198,6 +198,9 @@
                            // {field: 'batch', title: '批号'},
                            {field: 'anfme', title: '数量'},
                            {field: 'batch', title: '批次'},
                            {field: 'beBatch', title: '行号'},
                            {field: 'sourceLocName', title: '源仓库'},
                            {field: 'targetLocName', title: '目标仓库'},
                            {field: 'workQty', title: '作业数量'},
                            {field: 'qty', title: '完成数量', style: 'font-weight: bold'},
                            // {field: 'unit', title: '单位'},