自动化立体仓库 - WMS系统
zc
9 天以前 c73b0e2f40e0a143b5f815793de24b060816c664
完善erp对接
5个文件已修改
93 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/MatController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/OpenOrderPakinParam.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/model/DetlDto.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/MatController.java
@@ -100,7 +100,7 @@
    @RequestMapping(value = "/mat/tiaoma/auth")
    @ManagerAuth
    public R findByTiaoMa(@RequestParam("matnr") String matnr, @RequestParam(required = false, value = "orderNo") String orderNo) {
    public synchronized R findByTiaoMa(@RequestParam("matnr") String matnr, @RequestParam(required = false, value = "orderNo") String orderNo) {
        List<CodeDataParam> data = mobileService.getData(TokenUtils.getToken(url), new CodeParam(Arrays.asList(matnr)));
        if (data == null || data.isEmpty()) {
            return R.error("条码不存在");
@@ -115,7 +115,7 @@
        Mat mat = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", codeDataParam.getProductionCode()));
        mat.setMatnr(codeDataParam.getProductionCode());
        mat.setSafeQty(codeDataParam.getQty());
        mat.setUnit(codeDataParam.getBatchNum());
        mat.setUnit(null);
        mat.setMemo(matnr);
        return R.ok(mat);
    }
src/main/java/com/zy/asrs/entity/param/OpenOrderPakinParam.java
@@ -21,7 +21,7 @@
    private String department; //部门
    private String businessType; //业务类型
    private String user; //制单人
    private String quality;
//    private String quality;
    private List<DetlDto> details; //物料列表
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -331,7 +331,7 @@
                if (waitPakinService.selectCount(new EntityWrapper<WaitPakin>().
                        eq("zpallet", param.getBarcode())
                        .eq("io_status", "N")
                        .eq("matnr", elem.getMatnr()).eq("batch", elem.getBatch())) > 0) {
                        .eq("matnr", elem.getMatnr()).eq("three_code",elem.getThreeCode()).eq("batch", elem.getBatch())) > 0) {
                    throw new CoolException(param.getBarcode() + "已有相同数据");
                }
@@ -417,7 +417,7 @@
                detlDto.setTemp1(codeDataParam.getQuality());
                detlDto.setFromOrderNo(codeDataParam.getBarcode());
                if (DetlDto.has(detlDtos, detlDto)) {
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch());
                    DetlDto one = DetlDto.find(detlDtos, detlDto.getMatnr(), detlDto.getBatch(),detlDto.getFromOrderNo());
                    assert one != null;
                    one.setAnfme(one.getAnfme() + detlDto.getAnfme());
                } else {
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -60,19 +60,19 @@
    @Autowired
    private ApiLogService apiLogService;
    public void callApiLogSaveOrder(Object order, String name, Boolean bool) {
        apiLogService.save(name, "null", null, null,
                JSON.toJSONString(order),
    public void callApiLogSaveOrder(Object order,  String name, Boolean bool) {
        apiLogService.save(name, "null", null,null,
                 JSON.toJSONString(order),
                null, bool);
    }
    @Override
    @Transactional
    public void pakinOrderCreate(OpenOrderPakinParam param) {
        callApiLogSaveOrder(param, "入库单", true);
        callApiLogSaveOrder(param,"入库单", true);
        Order order = orderService.selectByNo(param.getOrderNo());
        if (!Cools.isEmpty(order) && order.getSettle() != 1) {
        if (!Cools.isEmpty(order) && order.getSettle() !=1) {
            throw new CoolException(param.getOrderNo() + "单据已有工作任务");
        }
        if (!Cools.isEmpty(order)) {
@@ -119,7 +119,7 @@
                now,    // 修改时间
                null    // 备注
        );
        order.setShipCode(param.getQuality());
        order.setShipCode(String.valueOf(param.getDetails().get(0).getQuality()));
        if (!orderService.insert(order)) {
            throw new CoolException("生成单据主档失败,请联系管理员");
        }
@@ -127,8 +127,8 @@
        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getDetails();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(), detail.getFromOrderNo()
                    , detail.getMark(), detail.getCustomer(), detail.getSuppName(), detail.getTemp1(), detail.getTemp2(), detail.getTemp3(), detail.getTemp4());
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getFromOrderNo()
                    , detail.getMark(),detail.getCustomer(),detail.getSuppName(),detail.getTemp1(),detail.getTemp2(),detail.getTemp3(),detail.getTemp4());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                assert detlDto != null;
@@ -173,7 +173,7 @@
    @Override
    @Transactional
    public List<OpenOrderCompeteResult> pakinOrderComplete(OpenOrderCompleteParam param) {
        callApiLogSaveOrder(param, "出库单", true);
        callApiLogSaveOrder(param,"出库单", true);
        List<OpenOrderCompeteResult> results = new ArrayList<>();
        if (!Cools.isEmpty(param) && !Cools.isEmpty(param.getOrderNo())) {
            // 指定订单
@@ -220,7 +220,7 @@
    @Override
    @Transactional
    public void pakoutOrderCreate(OpenOrderPakoutParam param) {
        callApiLogSaveOrder(param, "出库单", true);
        callApiLogSaveOrder(param,"出库单", true);
        Order order = orderService.selectByNo(param.getOrderNo());
        // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据
        if (!Cools.isEmpty(order)) {
@@ -276,8 +276,8 @@
        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getDetails();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(), detail.getFromOrderNo()
                    , detail.getMark(), detail.getCustomer(), detail.getSuppName(), detail.getTemp1(), detail.getTemp2(), detail.getTemp3(), detail.getTemp4());
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getFromOrderNo()
                    , detail.getMark(),detail.getCustomer(),detail.getSuppName(),detail.getTemp1(),detail.getTemp2(),detail.getTemp3(),detail.getTemp4());
            dto.setTemp1(param.getQuality());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
@@ -489,13 +489,16 @@
    @Override
    @Transactional
    public void syncMat(MatSyncParam param) {
        if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <= 0) {
        if (Cools.isEmpty(param.getMatDetails()) || param.getMatDetails().size() <=0 ) {
            throw new CoolException("商品数据为空");
        }
        for (MatSyncParam.MatParam matParam : param.getMatDetails()) {
            if (Cools.isEmpty(matParam.getMatnr())) {
        for(MatSyncParam.MatParam matParam : param.getMatDetails()){
            if(Cools.isEmpty(matParam.getMatnr())){
                throw new CoolException("商品编码不能为空");
            }
@@ -590,10 +593,14 @@
            } else {
                mat.sync(matParam);
                mat.setTagId(tagId);
                if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr", matParam.getMatnr()))) {
                if (!matService.update(mat, new EntityWrapper<Mat>().eq("matnr",matParam.getMatnr()))) {
                    throw new CoolException("更新已存在商品信息失败,请联系管理员");
                }
            }
            //Tag tag = tagService.selectOne(new EntityWrapper<Tag>().eq("memo", matParam.getTagId()));
@@ -633,8 +640,8 @@
    public List<LocDetlByTimeDTO> selectTimeLocDetl(TimeSelectParam param) {
        ArrayList<LocDetlByTimeDTO> locDetlByTimeDTOS = new ArrayList<>();
        EntityWrapper<WrkMastLog> wrkMastLogEntityWrapper = new EntityWrapper<>();
        wrkMastLogEntityWrapper.ge("modi_time", param.getStartTime());
        wrkMastLogEntityWrapper.le("modi_time", param.getEndTime());
        wrkMastLogEntityWrapper.ge("modi_time",param.getStartTime());
        wrkMastLogEntityWrapper.le("modi_time",param.getEndTime());
//        wrkMastLogEntityWrapper.isNotNull("sheet_no");
        wrkMastLogService.selectList(wrkMastLogEntityWrapper).forEach(wrkMastLog -> {
            if (wrkMastLog.getWrkSts() == 5 || wrkMastLog.getWrkSts() == 15) {
@@ -643,7 +650,7 @@
                wrkDetlLogs.forEach(wrkDetlLog -> {
                    if (wrkDetlLog.getOrderNo() != null && !wrkDetlLog.getOrderNo().isEmpty()) {
                        LocDetlByTimeDTO locDetlByTimeDTO = new LocDetlByTimeDTO();
                        if (!Cools.isEmpty(wrkDetlLog.getOrderNo())) {
                        if (!Cools.isEmpty(wrkDetlLog.getOrderNo())){
                            Order order = orderService.selectByNo(wrkDetlLog.getOrderNo());
                            if (!Cools.isEmpty(order)) {
                                locDetlByTimeDTO.setDate(order.getOrderTime());
@@ -651,7 +658,7 @@
                                locDetlByTimeDTO.setOrderType(order.getDocType$());
                            }
                            locDetlByTimeDTO.setMatnr(wrkDetlLog.getMatnr());
                            locDetlByTimeDTO.setLocNo(wrkMastLog.getIoType() < 100 ? wrkMastLog.getLocNo() : wrkMastLog.getSourceLocNo());
                            locDetlByTimeDTO.setLocNo(wrkMastLog.getIoType() <100? wrkMastLog.getLocNo(): wrkMastLog.getSourceLocNo());
                            locDetlByTimeDTO.setBatch(wrkDetlLog.getBatch());
                            locDetlByTimeDTO.setAnfme(wrkDetlLog.getAnfme());
                            locDetlByTimeDTO.setOrderNo(wrkDetlLog.getOrderNo());
@@ -701,11 +708,11 @@
    @Transactional
    public void syncTag(List<TagParam> param) {
        param.forEach(tag -> {
        param.forEach(tag-> {
            // 分类
            Long tagId;
            Date now = new Date();
            if (Cools.isEmpty(tag.getParentItemClassId())) {
            if (Cools.isEmpty(tag.getParentItemClassId())){
                Tag priTag = tagService.selectByName("全部", 1);
                // 二级分类
@@ -738,8 +745,8 @@
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                }
            } else {
                Tag priTag = tagService.selectOne(new EntityWrapper<Tag>().eq("memo", tag.getParentItemClassId()));
            }else {
                Tag priTag =tagService.selectOne(new EntityWrapper<Tag>().eq("memo", tag.getParentItemClassId()));
                if (priTag == null) {
                    Tag top = tagService.getTop();
                    NodeUtils nodeUtils = new NodeUtils();
@@ -799,7 +806,7 @@
                    if (tagMapper.insert(secTag) == 0) {
                        throw new CoolException("服务器内部错误,请联系管理员");
                    }
                } else {
                }else {
                    secTag.setName(tag.getName());
                    secTag.setParentId(priTag.getId());
                    secTag.setParentName(priTag.getName());
@@ -812,13 +819,15 @@
                    List<Tag> tags = tagService.selectList(new EntityWrapper<Tag>().eq("parent_id", secTag.getId()));
                    if (!Cools.isEmpty(tags)) {
                        for (Tag tag1 : tags) {
                            tag1.setPath(nodeUtils.path.toString() + "," + secTag.getId());
                            tag1.setPathName(nodeUtils.pathName.toString() + "," + secTag.getName());
                            tag1.setPath(nodeUtils.path.toString()+","+secTag.getId());
                            tag1.setPathName(nodeUtils.pathName.toString()+","+secTag.getName());
                            if (tagMapper.updateById(tag1) == 0) {
                                throw new CoolException("服务器内部错误,请联系管理员");
                            }
                        }
                    }
                }
@@ -827,7 +836,6 @@
            }
        });
    }
    @Transactional
    @Override
    public void orderDelete(String orderNo) {
@@ -835,7 +843,7 @@
        if (order == null) {
            throw new CoolException("未查询到对应订单信息");
        }
        if (order.getSettle() != 1) {
        if (order.getSettle() != 1){
            throw new CoolException("该订单已有对应任务,禁止删除");
        }
        List<OrderDetl> OrderDetl = orderDetlService.selectList(new EntityWrapper<OrderDetl>().eq("order_no", orderNo));
src/main/java/com/zy/common/model/DetlDto.java
@@ -29,6 +29,7 @@
    private String temp4 = "";
    private Double actulQty;
    private Integer danger;
    private Integer quality;
    public DetlDto() {
    }
@@ -96,7 +97,7 @@
    public static boolean has(List<DetlDto> detlDtos, DetlDto detlDto) {
        for (DetlDto dto : detlDtos) {
            if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch())) {
            if (dto.getMatnr().equals(detlDto.getMatnr()) && Cools.eq(dto.getBatch(), detlDto.getBatch()) && dto.getFromOrderNo().equals(detlDto.getFromOrderNo())) {
                return true;
            }
        }
@@ -114,5 +115,19 @@
        }
        return null;
    }
    public static DetlDto find(List<DetlDto> detlDtos, String matnr, String batch,String threeCode) {
        if (Cools.isEmpty(matnr)) {
            return null;
        }
        if (Cools.isEmpty(threeCode)){
            return null;
        }
        for (DetlDto detlDto : detlDtos) {
            if (matnr.equals(detlDto.getMatnr()) && Cools.eq(batch, detlDto.getBatch()) && threeCode.equals(detlDto.getFromOrderNo())) {
                return detlDto;
            }
        }
        return null;
    }
}