diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/mes/service/impl/MesReportServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/mes/service/impl/MesReportServiceImpl.java index 0b8c48e..ac2b4f3 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/mes/service/impl/MesReportServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/mes/service/impl/MesReportServiceImpl.java @@ -82,7 +82,7 @@ public class MesReportServiceImpl implements MesReportService { sideDto.setReportParam(JSON.toJSONString(workReportParam)); sideDto.setTrackNo(workReportParam.getTrackNo()); sideDto.setWorkArea(workReportParam.getWorkArea()); - pdaIosOutService.directConfirm(sideDto); + pdaIosOutService.directConfirmByAfter(sideDto); }catch (Exception ex){ log.error("报工回传异常:{}",ex); ReceiveOutReturn entity = new ReceiveOutReturn(); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java index f62f26c..01e0318 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/util/ErpUtil.java @@ -76,7 +76,7 @@ public class ErpUtil { * 审核接口请求 */ public JSONObject audit(String json){ - log.warn("----"+json); + log.warn("--easaudit--"+json); try { call.clearOperation(); call.setOperationName("dealTask"); @@ -90,8 +90,7 @@ public class ErpUtil { if (resultJson.getBoolean("status") == false){ throw new BadRequestException("EAS接口请求失败失败:" + resultJson.getString("message")); } - log.error("Eas接口请求成功!"); - log.error("Eas接口invoke调用结果:" + result); + log.info("--easaudit-sucess-"); return resultJson; } catch (Exception e) { throw new BadRequestException("erp审核接口请求失败:" + e.getMessage()); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/PdaIosOutService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/PdaIosOutService.java index 22673e5..ef1e404 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/PdaIosOutService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/PdaIosOutService.java @@ -58,6 +58,13 @@ public interface PdaIosOutService { */ PdaResponse directConfirm(LineSideDto whereJson); + /** + * WMS过账后置跟EAS一起 + * @param whereJson + * @return + */ + PdaResponse directConfirmByAfter(LineSideDto whereJson); + /** * 货架与站点绑定或解绑 * diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosOutServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosOutServiceImpl.java index bda2d02..a3ce4d9 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosOutServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosOutServiceImpl.java @@ -279,6 +279,9 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { for (WorkOrderBomItem bomItem : workOrderBomItems) { final String materialCode = bomItem.getMaterialCode(); final BigDecimal bomQty = bomItem.getBomQty(); + if (bomQty == null || bomQty.intValue() == 0){ + continue; + } final BigDecimal qty = bomQty.multiply(param.getReportedQty()).setScale(0, RoundingMode.HALF_UP); final BigDecimal actualQty = groupInventoryMap.get(materialCode) == null?BigDecimal.ZERO:groupInventoryMap.get(materialCode).setScale(0, RoundingMode.HALF_UP); ReceiveOutRequest.Entrys entry = new ReceiveOutRequest.Entrys(); @@ -301,7 +304,8 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { entry.setRemark("WMS库存不足:当前" + actualQty + "需求" + qty.intValue()); } entrys.add(entry); - }else { + } + else { final BigDecimal subtract = groupInventoryMap.get(materialCode).subtract(qty); groupInventoryMap.put(materialCode,subtract.setScale(0, RoundingMode.HALF_UP)); final IOStorInvDtl ioStorInvDtl = new IOStorInvDtl(); @@ -381,7 +385,62 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { receiveOutRequest, status, null,CollectionUtils.isEmpty(ioStorInvDtls)?null:ioStorInv.getBill_code(),param.getReportParam()); return PdaResponse.requestOk(); } + @Override + @Transactional + public PdaResponse directConfirmByAfter(LineSideDto param) { + //创建出库单/明细/分配 + List workOrderBomItems = mesApi.workOrderMaterialList(param.getSrcBillNo()); + final Structattr struct = iStructattrService.getOne(new LambdaQueryWrapper() + .eq(Structattr::getStoragevehicle_code, param.getStorageVehicleCode())); + if (struct ==null ||StringUtils.isEmpty(param.getStorageVehicleCode())){ + throw new BadRequestException("当前虚拟仓库未绑定"+param.getStorageVehicleCode()); + } + //创建出库单据 + String status = StockReturnStatusEnum.TODO.getCode(); + final List entrys = new ArrayList<>(); + for (WorkOrderBomItem bomItem : workOrderBomItems) { + final String materialCode = bomItem.getMaterialCode(); + final BigDecimal bomQty = bomItem.getBomQty(); + if (bomQty == null || bomQty.intValue() == 0){ + continue; + } + final BigDecimal qty = bomQty.multiply(param.getReportedQty()).setScale(0, RoundingMode.HALF_UP); + ReceiveOutRequest.Entrys entry = new ReceiveOutRequest.Entrys(); + entry.setSeq(Integer.valueOf(bomItem.getItemNo())); + entry.setMaterialno(materialCode); + entry.setUnitno(bomItem.getUnit()); + entry.setQty(qty); + entry.setBaseqty(bomItem.getBomQty()); + entry.setWarehouseno(param.getSectCode()); + entry.setSrcbillno(param.getSrcBillNo()); + entry.setSrcbillid(param.getSrcBillId()); + entry.setSrcbillentryid(bomItem.getItemId()); + entry.setStatus(StockReturnStatusEnum.TODO.getCode()); + entrys.add(entry); + + } + ReceiveOutRequest receiveOutRequest = new ReceiveOutRequest(); + receiveOutRequest.setOrgno(param.getOrgNo()); + receiveOutRequest.setSn(param.getSn()); + //这个单号存工单 + receiveOutRequest.setBillno(param.getWorkOrder()); + receiveOutRequest.setBiztype("340"); + receiveOutRequest.setInvscheme("002"); + receiveOutRequest.setBiztime(LocalDate.now().toString()); + receiveOutRequest.setCztype("02"); + receiveOutRequest.setTranstype("020"); + receiveOutRequest.setRequserno("WMS"); + receiveOutRequest.setRequsername("WMS"); + receiveOutRequest.setDeptno("01.09.14.02"); + receiveOutRequest.setDeptno("01.09.14.02"); + receiveOutRequest.setTrackNo(param.getTrackNo()); + receiveOutRequest.setWorkArea(param.getWorkArea()); + receiveOutRequest.setEntrys(entrys); + ReceiveOutReturn entity = receiveOutReturnService.saveFromRequest( + receiveOutRequest, status, null,null,param.getReportParam()); + return PdaResponse.requestOk(); + } /** * 空载具出库 diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/ReceiveReturnAutoTask.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/ReceiveReturnAutoTask.java index 24a962b..085c93a 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/ReceiveReturnAutoTask.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/ReceiveReturnAutoTask.java @@ -7,10 +7,12 @@ import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturn; import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service.IReceiveOutReturnService; +import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.List; +import java.util.stream.Collectors; /** * 倒冲领料定时回传,每次回传五条 @@ -27,18 +29,18 @@ public class ReceiveReturnAutoTask { public void run() { log.info("========>倒冲领料定时回传任务"); List list = receiveOutReturnService.list(new LambdaQueryWrapper() - .eq(ReceiveOutReturn::getStatus, 0) + .eq(ReceiveOutReturn::getStatus, StockReturnStatusEnum.TODO.getCode()) .or() - .eq(ReceiveOutReturn::getStatus, 2) + .eq(ReceiveOutReturn::getStatus, StockReturnStatusEnum.FAIL.getCode()) .last("limit 5")); - log.info("========>倒冲领料定时回传列表:{}", JSON.toJSONString(list)); + log.info("========>倒冲领料定时回传列表:{}", list.stream().map(ReceiveOutReturn::getBillno).collect(Collectors.joining(","))); for (ReceiveOutReturn item : list) { try { receiveOutReturnService.uploadErp(item); } catch (Exception e) { log.error("========>倒冲领料定时回传错误:{}", e.getMessage()); } - Thread.sleep(1000 * 5); + Thread.sleep(1000 * 3); } } } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/controller/ReceiveOutReturnController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/controller/ReceiveOutReturnController.java index bc7233a..c09111e 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/controller/ReceiveOutReturnController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/controller/ReceiveOutReturnController.java @@ -78,7 +78,7 @@ public class ReceiveOutReturnController { @PostMapping("/upload") - @Log("ERP回传") + @Log("EAS过账") public ResponseEntity upload(@RequestBody ReceiveOutReturn receive) { receiveOutReturnService.uploadErp(receive); return ResponseData.build(); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnDetailDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnDetailDto.java new file mode 100644 index 0000000..ada593c --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnDetailDto.java @@ -0,0 +1,44 @@ +package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +public class ReceiveOutReturnDetailDto implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + @TableField("return_id") + private Long returnId; + + private Integer seq; + private String materialno; + private String materialname; + private String unitno; + private BigDecimal qty; + private BigDecimal baseqty; + private String warehouseno; + private String srcbillno; + private String srcbillid; + private String srcbillentryid; + private String entrycomment; + private String auxptyno; + private String tracknumber; + private String lotnumber; + private String stockerno; + private String stockername; + private String iobillcode; + @TableField("update_time") + private String updateTime; + private String status; + private String remark; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnDto.java index 4cab572..799be0c 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnDto.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnDto.java @@ -27,7 +27,7 @@ public class ReceiveOutReturnDto { private String status; private String requestId; private String createdBy; - private String updatedTime; + private String updateTime; private String reportParam; private List details; } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/IReceiveOutReturnService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/IReceiveOutReturnService.java index fd26e11..7b45ca1 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/IReceiveOutReturnService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/IReceiveOutReturnService.java @@ -32,12 +32,12 @@ public interface IReceiveOutReturnService extends IService { void updateDetailUploadResult(Long detailId, String status,String remark); - void refreshUploadResult(Long id, Boolean sucess); + void refreshUploadResult(Long id); void uploadErp(ReceiveOutReturn mst); /** * 抽出事物方法 */ - Boolean callEasByAllBill(ReceiveOutReturn entity, Long id, List details, String now, ErpUtil login); + Boolean callEasByAllBill(ReceiveOutReturn entity, List details, String now, ErpUtil login); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/impl/ReceiveOutReturnServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/impl/ReceiveOutReturnServiceImpl.java index 2d11fa9..4967194 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/impl/ReceiveOutReturnServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/impl/ReceiveOutReturnServiceImpl.java @@ -268,7 +268,7 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl statusSet = new ArrayList<>(); statusSet.add(StockReturnStatusEnum.TODO.getCode()); statusSet.add(StockReturnStatusEnum.FAIL.getCode()); + statusSet.add(StockReturnStatusEnum.ERROR.getCode()); List details = receiveOutReturnDetailMapper.selectList(new LambdaQueryWrapper() - .eq(ReceiveOutReturnDetail::getReturnId, id) + .eq(ReceiveOutReturnDetail::getReturnId, entity.getId()) .in(ReceiveOutReturnDetail::getStatus, statusSet) .orderByAsc(ReceiveOutReturnDetail::getSeq) .orderByAsc(ReceiveOutReturnDetail::getId)); if (details.isEmpty()) { - this.refreshUploadResult(id,sucess); + ReceiveOutReturn update = new ReceiveOutReturn(); + update.setId(entity.getId()); + update.setUpdateTime(DateUtil.now()); + update.setStatus(StockReturnStatusEnum.SUCESS.getCode()); + update.setRemark("回传成功"); + this.updateById(entity); }else { - final ReceiveOutReturnDetail detail1 = details.get(0); - final Sectattr sectattr = iSectattrService.findByCode(detail1.getWarehouseno()); + final Sectattr sectattr = iSectattrService.findByCode(details.get(0).getWarehouseno()); final BsrealStorattr storattr = iBsrealStorattrService.findById(sectattr.getStor_id()); final Set materials = details.stream().map(ReceiveOutReturnDetail::getMaterialno).collect(Collectors.toSet()); Map materialMap = iMdMeMaterialbaseService @@ -340,69 +344,65 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl groupInventory = iMdPbGroupplateService.list(new LambdaQueryWrapper() - .eq(GroupPlate::getStoragevehicle_code, "VTP0008") - .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) - .in(GroupPlate::getMaterial_code, materials)); - //没库存的话WMS不扣,EAS扣 - Map groupInventoryMap = groupInventory.stream() + //线边6。007对应VTP0008后期修改,没库存的话WMS不扣,EAS扣 + Map groupInventoryMap = iMdPbGroupplateService.list(new LambdaQueryWrapper() + .eq(GroupPlate::getStoragevehicle_code, "VTP0008") + .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) + .in(GroupPlate::getMaterial_code, materials)).stream() .collect(Collectors.toMap( GroupPlate::getMaterial_code, GroupPlate::getQty, BigDecimal::add )); - //创建出库单据 - String now = DateUtil.now(); - String currentUserId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); + + final QueryEasStockRequest easStockRequest = new QueryEasStockRequest(); + easStockRequest.setOrgno("01.09.14"); + easStockRequest.setWarehouseno(details.get(0).getWarehouseno()); + final List easStockResponses = easApi.queryStock(easStockRequest); + // 将库存列表转换为 Map,key 为 materialno,value 为 qty(转为 BigDecimal) + Map stockMap = easStockResponses.stream() + .collect(Collectors.toMap( + QueryEasStockResponse::getMaterialno, + response -> new BigDecimal(response.getQty()), + (existing, replacement) -> existing // 如果有重复物料号,保留第一个 + )); + final List failDetailWMS = new ArrayList<>(); + final List failDetailEAS = new ArrayList<>(); + final List needDetail = new ArrayList<>(); + + //出入库过账数据 + final String invId = IdUtil.getStringId(); int seq = 1; BigDecimal totalQty = BigDecimal.ZERO; - IOStorInv ioStorInv = new IOStorInv(); - ioStorInv.setIostorinv_id(IdUtil.getStringId()); - ioStorInv.setBill_code(CodeUtil.getNewCode("OUT_STORE_CODE")); - ioStorInv.setIo_type(IOSEnum.IO_TYPE.code("出库")); - ioStorInv.setBill_type(IOSEnum.BILL_TYPE.code("生产出库")); - ioStorInv.setBiz_date(DateUtil.today()); - ioStorInv.setStor_code(storattr.getStor_code()); - ioStorInv.setStor_name(storattr.getStor_name()); - ioStorInv.setStor_id(storattr.getStor_id()); - ioStorInv.setDetail_count(materials.size()); - ioStorInv.setBill_status(IOSEnum.BILL_STATUS.code("完成")); - ioStorInv.setCreate_mode(IOSEnum.CREATE_MODE.code("终端产生")); - ioStorInv.setInput_optid(currentUserId); - ioStorInv.setInput_optname(nickName); - ioStorInv.setInput_time(now); - ioStorInv.setIs_delete(BaseDataEnum.IS_YES_NOT.code("否")); - ioStorInv.setIs_upload(BaseDataEnum.IS_YES_NOT.code("是")); + final String currentUserId = SecurityUtils.getCurrentUserId(); + final String currentNickName = SecurityUtils.getCurrentNickName(); + final String now = DateUtil.now(); final List ioStorInvDtls = new ArrayList<>(); final List iOStorInvDiss = new ArrayList<>(); - final List entrys = new ArrayList<>(); List outFinsParams = new ArrayList<>(); + for (ReceiveOutReturnDetail detail : details) { + //已经生成单子但是回传EAS报错了 + if (detail.getStatus().equals(StockReturnStatusEnum.ERROR.getCode())){ + needDetail.add(detail); + continue; + } final String materialCode = detail.getMaterialno(); final BigDecimal qty = detail.getQty(); final BigDecimal actualQty = groupInventoryMap.get(materialCode) == null?BigDecimal.ZERO:groupInventoryMap.get(materialCode); - if (qty.compareTo(actualQty) > 0 && detail.getStatus().equals(StockReturnStatusEnum.FAIL.getCode())) { - //跳过 - sucess = Boolean.FALSE; + final BigDecimal easQty = stockMap.get(materialCode) == null?BigDecimal.ZERO:stockMap.get(materialCode); + if (qty.compareTo(actualQty) > 0) { + failDetailWMS.add(detail); continue; - } else if (qty.compareTo(actualQty) > 0 && detail.getStatus().equals(StockReturnStatusEnum.TODO.getCode())) { - sucess = Boolean.FALSE; - continue;//库存不足但是同步时生成过出入库单 - } else{ - detail.setStatus(StockReturnStatusEnum.TODO.getCode()); - detail.setIobillcode(ioStorInv.getBill_code()); } - entrys.add(detail); - //待回传的说明还没做库存变动 - if (detail.getStatus().equals(StockReturnStatusEnum.FAIL.getCode())){//失败说明库存不足,直接跳过 + if (qty.compareTo(easQty)>0) { + failDetailEAS.add(detail); continue; } final IOStorInvDtl ioStorInvDtl = new IOStorInvDtl(); - ioStorInvDtl.setIostorinv_id(ioStorInv.getIostorinv_id()); + ioStorInvDtl.setIostorinv_id(invId); ioStorInvDtl.setIostorinvdtl_id(IdUtil.getStringId()); - ioStorInvDtl.setSeq_no(String.valueOf(seq)); + ioStorInvDtl.setSeq_no(String.valueOf(seq++)); ioStorInvDtl.setMaterial_code(materialCode); ioStorInvDtl.setMaterial_id(materialMap.get(materialCode).getMaterial_id()); ioStorInvDtl.setQty_unit_id(materialMap.get(materialCode).getQty_unit_id()); @@ -414,12 +414,12 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl easStockResponses = easApi.queryStock(easStockRequest); - // 将库存列表转换为 Map,key 为 materialno,value 为 qty(转为 BigDecimal) - Map stockMap = easStockResponses.stream() - .collect(Collectors.toMap( - QueryEasStockResponse::getMaterialno, - response -> new BigDecimal(response.getQty()), - (existing, replacement) -> existing // 如果有重复物料号,保留第一个 - )); - // 筛选出库存数量 >= 需求数量的 ReceiveOutReturnDetail - List satisfiedList = entrys.stream() - .filter(detail -> { - BigDecimal stockQty = stockMap.get(detail.getMaterialno()); - return stockQty != null && stockQty.compareTo(detail.getQty()) >= 0; - }) - .collect(Collectors.toList()); - //不满足条件的列表(库存不足) - List unsatisfiedList = entrys.stream() - .filter(detail -> { - BigDecimal stockQty = stockMap.get(detail.getMaterialno()); - return stockQty == null || stockQty.compareTo(detail.getQty()) < 0; - }) - .collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(unsatisfiedList)){ + if (!CollectionUtils.isEmpty(failDetailWMS)){ receiveOutReturnDetailMapper.update(null,new LambdaUpdateWrapper() -// .set(ReceiveOutReturnDetail::getStatus,StockReturnStatusEnum.FAIL.getCode()) - .set(ReceiveOutReturnDetail::getRemark,"EAS库存不足") + .set(ReceiveOutReturnDetail::getRemark,"WMS库存不足") + .set(ReceiveOutReturnDetail::getStatus,StockReturnStatusEnum.TODO.getCode()) .set(ReceiveOutReturnDetail::getUpdateTime,now) - .in(ReceiveOutReturnDetail::getId,unsatisfiedList.stream() + .in(ReceiveOutReturnDetail::getId,failDetailWMS.stream() .map(ReceiveOutReturnDetail::getId).collect(Collectors.toList()))); - sucess = Boolean.FALSE; } - final ErpUtil login = ErpUtil.create().login(); - log.info("======>请求EAS领料出库单数据条:"+satisfiedList.size()); - if (!CollectionUtils.isEmpty(satisfiedList)){ - Boolean callsucess = iReceiveOutReturnService.callEasByAllBill(entity, id, satisfiedList, now, login); - this.refreshUploadResult(id,sucess&&callsucess); + if (!CollectionUtils.isEmpty(failDetailEAS)){ + receiveOutReturnDetailMapper.update(null,new LambdaUpdateWrapper() + .set(ReceiveOutReturnDetail::getRemark,"EAS库存不足") + .set(ReceiveOutReturnDetail::getStatus,StockReturnStatusEnum.TODO.getCode()) + .set(ReceiveOutReturnDetail::getUpdateTime,now) + .in(ReceiveOutReturnDetail::getId,failDetailEAS.stream() + .map(ReceiveOutReturnDetail::getId).collect(Collectors.toList()))); + } + log.info("======>请求EAS领料出库单数据条:"+needDetail.size()); + if (!CollectionUtils.isEmpty(needDetail)){ + final ErpUtil login = ErpUtil.create().login(); + iReceiveOutReturnService.callEasByAllBill(entity, needDetail, now, login); + this.refreshUploadResult(entity.getId()); } } } - public Boolean callEasByAllBill(ReceiveOutReturn entity, Long id, List details, String now, ErpUtil login) { - if (id == null ) { - throw new IllegalArgumentException("回传记录ID和明细ID不能为空"); - } + public Boolean callEasByAllBill(ReceiveOutReturn entity, List details, String now, ErpUtil login) { final ReceiveOutRequest receiveOutRequest = buildRequest(entity, details); try { JSONObject req = new JSONObject(); @@ -509,8 +508,13 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl请求EAS领料出库单接口:" + JSONObject.toJSONString(req)); login.audit(req.toJSONString()); } catch (Exception e) { - log.error("请求EAS领料出库单接口失败,回传记录ID:{}", id, e); - throw new BadRequestException(e.getMessage()); + log.error("请求EAS领料出库单接口失败,回传记录ID:{}", entity.getId(), e); + receiveOutReturnDetailMapper.update(null,new LambdaUpdateWrapper() + .set(ReceiveOutReturnDetail::getStatus,StockReturnStatusEnum.ERROR.getCode()) + .set(ReceiveOutReturnDetail::getRemark,e.getMessage()) + .set(ReceiveOutReturnDetail::getUpdateTime,now) + .in(ReceiveOutReturnDetail::getId,details.stream() + .map(ReceiveOutReturnDetail::getId).collect(Collectors.toList()))); } receiveOutReturnDetailMapper.update(null,new LambdaUpdateWrapper() .set(ReceiveOutReturnDetail::getStatus,StockReturnStatusEnum.SUCESS.getCode()) @@ -611,12 +615,22 @@ public class ReceiveOutReturnServiceImpl extends ServiceImpl receiveOutReturnDetails = receiveOutReturnDetailMapper.selectList(new LambdaQueryWrapper() + .eq(ReceiveOutReturnDetail::getReturnId, id).select(ReceiveOutReturnDetail::getStatus, ReceiveOutReturnDetail::getReturnId)); + final boolean present = receiveOutReturnDetails.stream() + .anyMatch(a -> (!a.getStatus().equals(StockReturnStatusEnum.SUCESS.getCode())&&!a.getStatus().equals(StockReturnStatusEnum.IGNORE.getCode()))); ReceiveOutReturn entity = new ReceiveOutReturn(); entity.setId(id); - entity.setStatus(sucess? StockReturnStatusEnum.SUCESS.getCode() : StockReturnStatusEnum.FAIL.getCode()); - entity.setRemark(sucess? "回传成功" : "存在回传失败明细"); entity.setUpdateTime(DateUtil.now()); + if (present){ + entity.setStatus(StockReturnStatusEnum.FAIL.getCode()); + entity.setRemark("存在回传失败明细"); + entity.setUpdateTime(DateUtil.now()); + }else { + entity.setStatus(StockReturnStatusEnum.SUCESS.getCode()); + entity.setRemark("回传成功"); + } this.updateById(entity); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/service/enums/StockReturnStatusEnum.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/service/enums/StockReturnStatusEnum.java index 77f3e53..8b8a247 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/service/enums/StockReturnStatusEnum.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/service/enums/StockReturnStatusEnum.java @@ -9,7 +9,7 @@ import lombok.Getter; public enum StockReturnStatusEnum { TODO("0","待过账"), SUCESS("1","过账成功"), - FAIL("2","过账失败"), + FAIL("2","过账中"), ERROR("3","过账异常"), IGNORE("4","忽略过账"), ; diff --git a/nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/index.vue b/nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/index.vue index 3c795de..ca541d6 100644 --- a/nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/index.vue +++ b/nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/index.vue @@ -67,24 +67,22 @@ - + - - - - + + + + - - - - + + @@ -115,23 +113,23 @@ - + - {{ currentRow.billno }} + {{ currentRow.billno }} {{ currentRow.sn }} - {{ currentRow.trackNo }} {{ currentRow.workArea }} + {{ currentRow.trackNo }} {{ currentRow.comment }} {{ statusLabel(currentRow.status) }} {{ currentRow.remark }} - {{ currentRow.orgno }} - {{ currentRow.biztype }} + {{ currentRow.orgno }} + {{ currentRow.biztype }} {{ currentRow.invscheme }} {{ currentRow.transtype }} {{ currentRow.biztime }} {{ currentRow.createTime }} - {{ currentRow.requestId }} - + {{ currentRow.updateTime }} + {{ currentRow.requestId }} {{ currentRow.reportParam }} @@ -152,7 +150,7 @@ - +