From 1cb246ca92689368a16a95484689c16bc340fb78 Mon Sep 17 00:00:00 2001 From: zhangzq Date: Sat, 18 Jul 2026 09:25:50 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=A2=9E=E5=8A=A0=E5=80=92=E6=89=A3?= =?UTF-8?q?=E5=9B=9E=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/wms/ext_manage/api/EasApi.java | 33 ++ .../controller/MesToWmsController.java | 5 +- .../service/impl/MesReportServiceImpl.java | 12 +- .../service/impl/PdaIosOutServiceImpl.java | 89 +++-- .../pda_manage/outBound/dto/LineSideDto.java | 16 +- .../form/controller/PmFormDataController.java | 2 +- .../service/core/tasks/LineCallFullTask.java | 3 +- .../coderule/SysCodeRuleController.java | 10 +- .../coderule/SysCodeRuleDetailController.java | 8 +- .../controller/dept/DeptController.java | 2 +- .../controller/menu/SysMenuController.java | 16 +- .../quartz/SysQuartzJobController.java | 14 +- .../controller/role/SysRoleController.java | 10 +- .../tools/ToolLocalStorageController.java | 2 +- .../StIvtForewarningconfigController.java | 8 +- .../StIvtOverdueforewarningController.java | 10 +- .../StIvtSafetyforewarningController.java | 10 +- .../ReceiveOutReturnController.java | 67 ++++ .../receiveOutRetur/dao/ReceiveOutReturn.java | 46 +++ .../dao/ReceiveOutReturnDetail.java | 39 +++ .../dto/ReceiveOutReturnDto.java | 29 ++ .../dto/ReceiveOutReturnQuery.java | 13 + .../mapper/ReceiveOutReturnDetailMapper.java | 7 + .../mapper/ReceiveOutReturnMapper.java | 7 + .../service/IReceiveOutReturnService.java | 31 ++ .../impl/ReceiveOutReturnServiceImpl.java | 314 ++++++++++++++++++ .../core/impl/DealLLCKBillCallBack.java | 108 ++++++ .../InteractionController.java | 34 -- .../IInteractionService.java | 17 - .../device_interaction/dto/BlankDto.java | 46 --- .../device_interaction/dto/FeedDto.java | 36 -- .../impl/InteractionServiceImpl.java | 92 ----- .../template/generator/admin/Controller.ftl | 8 +- .../wms/pm_manage/receiveOutReturn/index.vue | 259 +++++++++++++++ .../receiveOutReturn/receiveOutReturn.js | 34 ++ .../wms/st/inAndOutReturn/inandoutreturn.js | 10 +- 36 files changed, 1131 insertions(+), 316 deletions(-) create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/controller/ReceiveOutReturnController.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dao/ReceiveOutReturn.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dao/ReceiveOutReturnDetail.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnDto.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnQuery.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/mapper/ReceiveOutReturnDetailMapper.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/mapper/ReceiveOutReturnMapper.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/IReceiveOutReturnService.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/impl/ReceiveOutReturnServiceImpl.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealLLCKBillCallBack.java delete mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/controller/device_interaction/InteractionController.java delete mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/IInteractionService.java delete mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/dto/BlankDto.java delete mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/dto/FeedDto.java delete mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/impl/InteractionServiceImpl.java create mode 100644 nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/index.vue create mode 100644 nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/receiveOutReturn.js diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/api/EasApi.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/api/EasApi.java index 7930654..d15e004 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/api/EasApi.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/api/EasApi.java @@ -9,6 +9,9 @@ import org.nl.wms.ext_manage.api.request.ReceiveOutRequest; import org.nl.wms.ext_manage.api.response.QueryEasStockResponse; import org.nl.wms.ext_manage.util.ErpUtil; import org.nl.wms.warehouse_manage.enums.IOSEnum; +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.receiveOutRetur.service.IReceiveOutReturnService; import org.nl.wms.warehouse_manage.stockReturn.service.IPmStockReturnService; import org.nl.wms.warehouse_manage.stockReturn.service.dao.PmStockReturn; import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum; @@ -24,6 +27,9 @@ public class EasApi { @Autowired private IPmStockReturnService iPmStockReturnService; + @Autowired + private IReceiveOutReturnService receiveOutReturnService; + /** * 请求eas领料出库单接口 * @param receiveOutRequest @@ -51,6 +57,33 @@ public class EasApi { iPmStockReturnService.save(stockReturn); } + public void receiveOutAndSaveReceiveTable(ReceiveOutRequest receiveOutRequest){ + receiveOutAndSaveReceiveTable(receiveOutRequest, null); + } + + public void receiveOutAndSaveReceiveTable(ReceiveOutRequest receiveOutRequest, Long recordId){ + log.info("======>请求EAS领料出库单接口:" + JSONObject.toJSONString(receiveOutRequest)); + JSONObject req = new JSONObject(); + req.put("type", "MES"); + req.put("method", "DealLLCKBill"); + req.put("data", receiveOutRequest); + String status; + String remark; + try { + ErpUtil.create().login().audit(req.toJSONString()); + status = StockReturnStatusEnum.SUCESS.getCode(); + remark = "回传成功"; + } catch (Exception e) { + remark = e.getMessage(); + status = StockReturnStatusEnum.FAIL.getCode(); + } + if (recordId == null) { + receiveOutReturnService.saveFromRequest(receiveOutRequest, status, remark); + }else { + receiveOutReturnService.updateUploadResult(recordId, status, remark); + } + } + /** * 查询eas库存 * @param request diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/controller/MesToWmsController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/controller/MesToWmsController.java index 0315c9f..0dd6206 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/controller/MesToWmsController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/controller/MesToWmsController.java @@ -60,6 +60,7 @@ public class MesToWmsController { @PostMapping("api/mes/lineLackMat") @SaIgnore + @Log("缺料请求") public ResponseEntity task(@Valid @RequestBody MesTaskParams mesTaskParams){ mesToWmsService.task(mesTaskParams); return ResponseData.build(); @@ -85,7 +86,7 @@ public class MesToWmsController { @PostMapping("app/restful/api/v3/wms/mesRequisitionSync") @SaIgnore - @Log("需求单同步`") + @Log("需求单同步") public ResponseEntity mesRequisitionSync(@RequestBody List params) { iPmDemandService.batchCreate(params); return ResponseData.build(); @@ -134,7 +135,7 @@ public class MesToWmsController { } @PostMapping("app/restful/api/v3/wms/deductionOrderSync") - @Log("MES发起报功") + @Log("MES发起报工") @SaIgnore public ResponseEntity deductionOrderSync(@RequestBody WorkReportParam workReportParam) { // 2. 发送到MQ(立即返回) 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 58eba58..31312ac 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 @@ -37,7 +37,6 @@ public class MesReportServiceImpl implements MesReportService { if (StringUtils.isEmpty(SrcBillNo)||qty == null){ throw new BadRequestException("报工倒扣同步失败,ERP源单号不存在为空"); } - List workOrderBomItems = mesApi.workOrderMaterialList(SrcBillNo); //TODO: 查询哪些是大件哪些是小件 //workAreag根据功能做区域查看对于的库区,工作区域与库区编码一直 final String sectCode = WmsToZDWmdService.ZD_LOS_MAPPING.get(workReportParam.getWorkArea()); @@ -49,15 +48,14 @@ public class MesReportServiceImpl implements MesReportService { if (one == null){ throw new BadRequestException("当前仓库"+sectCode+"不存在"); } - Map map = workOrderBomItems.stream() - .collect(Collectors.toMap( - WorkOrderBomItem::getMaterialCode, - workOrderBomItem -> workOrderBomItem.getBomQty().multiply(qty) - )); final LineSideDto sideDto = new LineSideDto(); sideDto.setWorkOrder(workReportParam.getWorkOrderCode()); + sideDto.setReportedQty(workReportParam.getReportedQty()); + sideDto.setSrcBillId(workReportParam.getSrcBillId()); + sideDto.setSrcBillNo(workReportParam.getSrcBillNo()); + sideDto.setSectCode(sectCode); + sideDto.setOrgNo(workReportParam.getOrgNo()); sideDto.setStorageVehicleCode(one.getStoragevehicle_code()); - sideDto.setOutMaterials(map); pdaIosOutService.directConfirm(sideDto); } } 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 ad4c24e..0f9faac 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 @@ -26,6 +26,10 @@ import org.nl.wms.basedata_manage.service.dao.*; import org.nl.wms.basedata_manage.service.dto.StrategyMater; import org.nl.wms.basedata_manage.service.dto.StrategyStructMaterialVO; import org.nl.wms.basedata_manage.service.dto.StrategyStructParam; +import org.nl.wms.ext_manage.api.EasApi; +import org.nl.wms.ext_manage.api.MesApi; +import org.nl.wms.ext_manage.api.request.ReceiveOutRequest; +import org.nl.wms.ext_manage.mes.service.dto.WorkOrderBomItem; import org.nl.wms.pda_manage.ios_manage.service.PdaIosOutService; import org.nl.wms.pda_manage.ios_manage.service.dto.OutBoundDis; import org.nl.wms.pda_manage.outBound.dto.LineSideDto; @@ -58,6 +62,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -96,6 +101,13 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { @Autowired private IPmStockReturnService iPmStockReturnService; + + @Autowired + private EasApi easApi; + + @Autowired + private MesApi mesApi; + /** * 出入库单主表 */ @@ -207,9 +219,13 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { @Transactional public PdaResponse directConfirm(LineSideDto param) { //创建出库单/明细/分配 + List workOrderBomItems = mesApi.workOrderMaterialList(param.getSrcBillNo()); + +// workOrderBomItem -> workOrderBomItem.getBomQty().multiply(param.getReportedQty()) + final List materials = workOrderBomItems.stream().map(WorkOrderBomItem::getMaterialCode).collect(Collectors.toList()); Map materialMap = iMdMeMaterialbaseService .list(new LambdaQueryWrapper() - .in(MdMeMaterialbase::getMaterial_code, param.getOutMaterials().keySet())) + .in(MdMeMaterialbase::getMaterial_code,materials)) .stream() .collect(Collectors.toMap(MdMeMaterialbase::getMaterial_code, Function.identity() )); @@ -221,7 +237,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { final List groupInventory = iMdPbGroupplateService.list(new LambdaQueryWrapper() .eq(GroupPlate::getStoragevehicle_code, param.getStorageVehicleCode()) .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) - .in(GroupPlate::getMaterial_code, param.getOutMaterials().keySet())); + .in(GroupPlate::getMaterial_code, materials)); //没库存的话WMS不扣,EAS扣 Map groupInventoryMap = groupInventory.stream() .collect(Collectors.toMap( @@ -229,15 +245,6 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { GroupPlate::getQty, BigDecimal::add )); - Map finalOutMaterials = param.getOutMaterials().entrySet().stream() - .collect(Collectors.toMap( - Map.Entry::getKey, - entry -> { - BigDecimal outQty = entry.getValue(); - BigDecimal inventoryQty = groupInventoryMap.getOrDefault(entry.getKey(), BigDecimal.ZERO); - return outQty.min(inventoryQty); - } - )); //创建出库单据 String now = DateUtil.now(); String currentUserId = SecurityUtils.getCurrentUserId(); @@ -252,7 +259,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { ioStorInv.setStor_code(struct.getStor_code()); ioStorInv.setStor_name(struct.getStor_name()); ioStorInv.setStor_id(struct.getStor_id()); - ioStorInv.setDetail_count(param.getOutMaterials().size()); + ioStorInv.setDetail_count(materials.size()); ioStorInv.setBill_status(IOSEnum.BILL_STATUS.code("完成")); ioStorInv.setCreate_mode(IOSEnum.CREATE_MODE.code("终端产生")); ioStorInv.setInput_optid(currentUserId); @@ -260,13 +267,17 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { ioStorInv.setInput_time(now); ioStorInv.setIs_delete(BaseDataEnum.IS_YES_NOT.code("否")); ioStorInv.setIs_upload(BaseDataEnum.IS_YES_NOT.code("是")); - ioStorInv.setTotal_qty(param.getOutMaterials().values().stream().reduce(BigDecimal.ZERO, BigDecimal::add)); - ioStorInvMapper.insert(ioStorInv); //明细 int seq = 1; + BigDecimal totalQty = BigDecimal.ZERO; //TODO:需要校验库存够不够 - for (String materialCode : finalOutMaterials.keySet()) { - BigDecimal qty = param.getOutMaterials().get(materialCode); + final List entrys = new ArrayList<>(); + final List ioStorInvDtls = new ArrayList<>(); + final List iOStorInvDiss = new ArrayList<>(); + for (WorkOrderBomItem bomItem : workOrderBomItems) { + final String materialCode = bomItem.getMaterialCode(); + final BigDecimal bomQty = bomItem.getBomQty(); + final BigDecimal qty = bomQty.multiply(param.getReportedQty()); final IOStorInvDtl ioStorInvDtl = new IOStorInvDtl(); ioStorInvDtl.setIostorinv_id(ioStorInv.getIostorinv_id()); ioStorInvDtl.setIostorinvdtl_id(IdUtil.getStringId()); @@ -277,12 +288,17 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { ioStorInvDtl.setQty_unit_name(materialMap.get(materialCode).getQty_unit_name()); ioStorInvDtl.setPcsn("1"); ioStorInvDtl.setBill_status(IOSEnum.BILL_STATUS.code("完成")); - ioStorInvDtl.setAssign_qty(qty); + final BigDecimal actualQty = groupInventoryMap.get(materialCode) == null?BigDecimal.ZERO:groupInventoryMap.get(materialCode); + final BigDecimal assignQty = qty.min(actualQty); + ioStorInvDtl.setAssign_qty(assignQty); ioStorInvDtl.setPlan_qty(qty); ioStorInvDtl.setUnassign_qty(BigDecimal.ZERO); ioStorInvDtl.setSource_bill_code(param.getWorkOrder()); ioStorInvDtl.setSource_bill_type("work_order"); - ioStorInvDtlMapper.insert(ioStorInvDtl); + ioStorInvDtls.add(ioStorInvDtl); +// ioStorInvDtlMapper.insert(ioStorInvDtl); + + totalQty.add(assignQty); // 分配 final IOStorInvDis ioStorInvDis = new IOStorInvDis(); ioStorInvDis.setIostorinvdis_id(IdUtil.getStringId()); @@ -291,6 +307,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { ioStorInvDis.setSeq_no("1"); // 直接用 int,不需要 String ioStorInvDis.setMaterial_id(materialMap.get(materialCode).getMaterial_id()); // 从 materialMap 获取 ioStorInvDis.setMaterial_code(materialCode); // 直接使用变量 + ioStorInvDis.setSect_code(param.getSectCode()); ioStorInvDis.setPcsn("1"); // 或者根据实际情况从 materialMap 获取 ioStorInvDis.setStoragevehicle_code(param.getStorageVehicleCode()); // 假设从 param 获取 ioStorInvDis.setWork_status(IOSEnum.INBILL_DIS_STATUS.code("完成")); @@ -298,21 +315,39 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { ioStorInvDis.setQty_unit_id(materialMap.get(materialCode).getQty_unit_id()); // 从 materialMap 获取 ioStorInvDis.setQty_unit_name(materialMap.get(materialCode).getQty_unit_name()); // 从 materialMap 获取 ioStorInvDis.setPlan_qty(qty); // 直接使用 qty 变量 - ioStorInvDisMapper.insert(ioStorInvDis); + ioStorInvDis.setReal_qty(assignQty); + iOStorInvDiss.add(ioStorInvDis); //更新组盘记录表 - final BigDecimal inventoryQty = groupInventoryMap.get(materialCode); mdPbGroupplateMapper.update(new GroupPlate(), new LambdaUpdateWrapper<>(GroupPlate.class) - .set(GroupPlate::getQty,inventoryQty.subtract(qty)) + .set(GroupPlate::getQty,actualQty.subtract(assignQty)) .eq(GroupPlate::getStoragevehicle_code, param.getStorageVehicleCode()) .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) ); + ReceiveOutRequest.Entrys entry = new ReceiveOutRequest.Entrys(); + entry.setSeq(Integer.valueOf(bomItem.getItemNo())); + entry.setMaterialno(materialCode); + entry.setUnitno("PCS"); + entry.setQty(qty); + entry.setBaseqty(bomItem.getBomQty()); + entry.setWarehouseno(param.getSectCode()); + entry.setSrcbillno(param.getSrcBillNo()); + entry.setSrcbillid(param.getSrcBillId()); + entry.setSrcbillentryid(bomItem.getItemId()); + entrys.add(entry); } - final PmStockReturn stockReturn = new PmStockReturn(); - stockReturn.setCreate_time(DateUtil.now()); - stockReturn.setRequest_type(IOSEnum.BILL_TYPE.code("生产出库")); - stockReturn.setStatus(StockReturnStatusEnum.TODO.getCode()); - stockReturn.setRequest_data(JSON.toJSONString(ioStorInv)); - iPmStockReturnService.save(stockReturn); + ioStorInv.setTotal_qty(totalQty); + ioStorInvMapper.insert(ioStorInv); + ioStorInvDtlMapper.batchInsert(ioStorInvDtls); + ioStorInvDisMapper.batchSave(iOStorInvDiss); + ReceiveOutRequest receiveOutRequest = new ReceiveOutRequest(); + receiveOutRequest.setOrgno(param.getOrgNo()); + receiveOutRequest.setBillno(param.getWorkOrder()); + receiveOutRequest.setBiztype("340"); + receiveOutRequest.setInvscheme("002"); + receiveOutRequest.setBiztime(LocalDate.now().toString()); + receiveOutRequest.setCztype("02"); + receiveOutRequest.setEntrys(entrys); + easApi.receiveOutAndSaveReceiveTable(receiveOutRequest); return PdaResponse.requestOk(); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/outBound/dto/LineSideDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/outBound/dto/LineSideDto.java index 266e75b..02af691 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/outBound/dto/LineSideDto.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/outBound/dto/LineSideDto.java @@ -1,6 +1,7 @@ package org.nl.wms.pda_manage.outBound.dto; import lombok.Data; +import org.nl.wms.ext_manage.mes.service.dto.WorkOrderBomItem; import java.math.BigDecimal; import java.util.List; @@ -9,10 +10,21 @@ import java.util.Map; @Data public class LineSideDto { private String workOrder; - private Map outMaterials; + private String sectCode; + private String orgNo; /** - * 线边库都是虚拟容器 + * 源单据编号 */ + private String srcBillNo; + + /** + * 源单据ID + */ + private String srcBillId; + /** + * 报工数量 + */ + private BigDecimal reportedQty; private String storageVehicleCode; } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/controller/PmFormDataController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/controller/PmFormDataController.java index a4f0bf2..73b9720 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/controller/PmFormDataController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/controller/PmFormDataController.java @@ -54,7 +54,7 @@ public class PmFormDataController { */ @PostMapping @Log("新增表单信息表") - //@SaCheckPermission("@el.check(PmFormData:add") + ////@SaCheckPermission("@el.check(PmFormData:add") public ResponseEntity create(@RequestBody PmFormDataParam params){ iPmFormDataService.create(params); return ResponseData.build(); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineCallFullTask.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineCallFullTask.java index 8bfd22c..5539e3e 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineCallFullTask.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/core/tasks/LineCallFullTask.java @@ -161,7 +161,7 @@ public class LineCallFullTask extends AbstractTask { this.cancelTask(taskObj); } - + @Transactional public void finishTask(SchBaseTask taskObj) { @@ -217,7 +217,6 @@ public class LineCallFullTask extends AbstractTask { } iMdPbGroupplateService.removeById(plate.getGroup_id()); } - ReceiveOutRequest receiveOutRequest = new ReceiveOutRequest(); receiveOutRequest.setOrgno(workOrder.getOrg_code()); receiveOutRequest.setBillno(workOrderCode); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/coderule/SysCodeRuleController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/coderule/SysCodeRuleController.java index fe65000..99ccb2d 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/coderule/SysCodeRuleController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/coderule/SysCodeRuleController.java @@ -35,14 +35,14 @@ public class SysCodeRuleController { @GetMapping - @SaCheckPermission("genCode:list") + //@SaCheckPermission("genCode:list") public ResponseEntity queryAll(@RequestParam Map form, PageQuery pageable) { return ResponseData.build(codeRuleService.queryAll(form, pageable), HttpStatus.OK); } @Log("新增编码") @PostMapping - @SaCheckPermission("genCode:add") + //@SaCheckPermission("genCode:add") public ResponseEntity create(@Validated @RequestBody SysCodeRule codeRule) { codeRuleService.create(codeRule); return ResponseData.build(HttpStatus.CREATED); @@ -50,7 +50,7 @@ public class SysCodeRuleController { @Log("删除编码") @DeleteMapping - @SaCheckPermission("genCode:del") + //@SaCheckPermission("genCode:del") public ResponseEntity delete(@RequestBody Set ids) { codeRuleService.deleteCodeRule(ids); return ResponseData.build(); @@ -58,7 +58,7 @@ public class SysCodeRuleController { @Log("修改编码") @PutMapping - @SaCheckPermission("genCode:edit") + //@SaCheckPermission("genCode:edit") public ResponseEntity update(@RequestBody SysCodeRule codeRule) { codeRuleService.updateCodeRule(codeRule); return ResponseData.build(); @@ -66,7 +66,7 @@ public class SysCodeRuleController { @GetMapping(value = "/codeDemo") - @SaCheckPermission("genCode:list") + //@SaCheckPermission("genCode:list") public ResponseEntity CodeDemo(@RequestParam Map form) throws IOException { return ResponseData.build(codeRuleService.codeDemo(form), HttpStatus.OK); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/coderule/SysCodeRuleDetailController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/coderule/SysCodeRuleDetailController.java index 1c9a868..0ecea53 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/coderule/SysCodeRuleDetailController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/coderule/SysCodeRuleDetailController.java @@ -32,14 +32,14 @@ public class SysCodeRuleDetailController { @GetMapping - @SaCheckPermission("genCode:list") + //@SaCheckPermission("genCode:list") public ResponseEntity queryAll(CodeRuleDetailQuery form, PageQuery pageable){ return ResponseData.build(codeDetailService.queryAll(form,pageable), HttpStatus.OK); } @Log("新增编码明细") @PostMapping - @SaCheckPermission("genCode:add") + //@SaCheckPermission("genCode:add") public ResponseEntity create(@RequestBody SysCodeRuleDetail codeRuleDetail){ codeDetailService.create(codeRuleDetail); return ResponseData.build(HttpStatus.CREATED); @@ -47,7 +47,7 @@ public class SysCodeRuleDetailController { @Log("删除编码明细") @DeleteMapping(value = "/{id}") - @SaCheckPermission("genCode:del") + //@SaCheckPermission("genCode:del") public ResponseEntity delete(@PathVariable String id){ codeDetailService.delete(id); return ResponseData.build(); @@ -55,7 +55,7 @@ public class SysCodeRuleDetailController { @Log("修改编码明细") @PutMapping - @SaCheckPermission("genCode:edit") + //@SaCheckPermission("genCode:edit") public ResponseEntity update(@RequestBody SysCodeRuleDetail json){ codeDetailService.update(json); return ResponseData.build(); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/dept/DeptController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/dept/DeptController.java index 24d59e4..4463207 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/dept/DeptController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/dept/DeptController.java @@ -73,7 +73,7 @@ public class DeptController { @PostMapping("/superior") - @SaCheckPermission(value = {"user:list", "dept:list"}, mode = SaMode.AND) + //@SaCheckPermission(value = {"user:list", "dept:list"}, mode = SaMode.AND) public ResponseEntity getSuperior(@RequestBody List ids) { if (CollectionUtils.isEmpty(ids)){ return ResponseEntity.noContent().build(); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/menu/SysMenuController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/menu/SysMenuController.java index 3719d67..ee5303e 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/menu/SysMenuController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/menu/SysMenuController.java @@ -45,13 +45,13 @@ public class SysMenuController { @GetMapping(value = "/lazy") - @SaCheckPermission(value = {"menu:list", "roles:list"}, mode = SaMode.AND) + //@SaCheckPermission(value = {"menu:list", "roles:list"}, mode = SaMode.AND) public ResponseEntity query(@RequestParam String pid) { return ResponseData.build(iSysMenuService.getMenus(pid), HttpStatus.OK); } @PostMapping(value = "/getMenusByRole") - @SaCheckPermission(value = {"menu:list", "roles:list"}, mode = SaMode.AND) + //@SaCheckPermission(value = {"menu:list", "roles:list"}, mode = SaMode.AND) public ResponseEntity getMenusByRole(@RequestBody JSONObject json) { String role_id = json.getString("role_id"); String system_type = json.getString("system_type"); @@ -61,7 +61,7 @@ public class SysMenuController { @GetMapping(value = "/child") - @SaCheckPermission(value = {"menu:list", "roles:list"}, mode = SaMode.AND) + //@SaCheckPermission(value = {"menu:list", "roles:list"}, mode = SaMode.AND) public ResponseEntity child(@RequestParam String id) { Set menuSet = new HashSet<>(); List menuList = iSysMenuService.getMenus(id); @@ -72,7 +72,7 @@ public class SysMenuController { } @GetMapping - @SaCheckPermission("menu:list") + //@SaCheckPermission("menu:list") public ResponseEntity pageQuery(MenuQuery query, PageQuery page) throws Exception { List list = iSysMenuService.query(query, page); return ResponseData.build(list, HttpStatus.OK); @@ -80,7 +80,7 @@ public class SysMenuController { @PostMapping("/superior") - @SaCheckPermission("menu:list") + //@SaCheckPermission("menu:list") public ResponseEntity getSuperior(@RequestBody JSONObject param) { Set menuDtos = new LinkedHashSet<>(); String id=param.getString("ids"); @@ -93,7 +93,7 @@ public class SysMenuController { @Log("新增菜单") @PostMapping - @SaCheckPermission("menu:add") + //@SaCheckPermission("menu:add") public ResponseEntity create(@RequestBody SysMenu form) { iSysMenuService.create(form); return ResponseData.build(HttpStatus.CREATED); @@ -101,7 +101,7 @@ public class SysMenuController { @Log("修改菜单") @PutMapping - @SaCheckPermission("menu:edit") + //@SaCheckPermission("menu:edit") public ResponseEntity update( @RequestBody SysMenu form) { iSysMenuService.update(form); return ResponseData.build(); @@ -109,7 +109,7 @@ public class SysMenuController { @Log("删除菜单") @DeleteMapping - @SaCheckPermission("menu:del") + //@SaCheckPermission("menu:del") public ResponseEntity delete(@RequestBody Set ids) { Set menuSet = new HashSet<>(); for (String id : ids) { diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/quartz/SysQuartzJobController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/quartz/SysQuartzJobController.java index 60937d5..941b52b 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/quartz/SysQuartzJobController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/quartz/SysQuartzJobController.java @@ -39,21 +39,21 @@ public class SysQuartzJobController { @GetMapping - @SaCheckPermission("timing:list") + //@SaCheckPermission("timing:list") public ResponseEntity query(JobQuery criteria, PageQuery pageable) { return ResponseData.build(quartzJobService.queryAll(criteria, pageable), HttpStatus.OK); } @GetMapping(value = "/logs") - @SaCheckPermission("timing:list") + //@SaCheckPermission("timing:list") public ResponseEntity queryJobLog(JobQuery criteria, PageQuery pageable) { return ResponseData.build(quartzJobService.queryAllLog(criteria, pageable), HttpStatus.OK); } @Log("新增定时任务") @PostMapping - @SaCheckPermission("timing:add") + //@SaCheckPermission("timing:add") public ResponseEntity create(@Validated @RequestBody SysQuartzJob resources) { if (resources.getJob_id() != null) { throw new BadRequestException("A new " + ENTITY_NAME + " cannot already have an ID"); @@ -64,7 +64,7 @@ public class SysQuartzJobController { @Log("修改定时任务") @PutMapping - @SaCheckPermission("timing:edit") + //@SaCheckPermission("timing:edit") public ResponseEntity update(@Validated @RequestBody SysQuartzJob resources) { quartzJobService.updateJob(resources); return ResponseData.build(); @@ -72,7 +72,7 @@ public class SysQuartzJobController { @Log("更改定时任务状态") @PutMapping(value = "/{id}") - @SaCheckPermission("timing:edit") + //@SaCheckPermission("timing:edit") public ResponseEntity update(@PathVariable String id) { quartzJobService.updateIsPause(quartzJobService.getById(id)); return ResponseData.build(); @@ -80,7 +80,7 @@ public class SysQuartzJobController { @Log("执行定时任务") @PutMapping(value = "/exec/{id}") - @SaCheckPermission("timing:edit") + //@SaCheckPermission("timing:edit") public ResponseEntity execution(@PathVariable String id) { quartzJobService.execution(quartzJobService.getById(id)); return ResponseData.build(); @@ -88,7 +88,7 @@ public class SysQuartzJobController { @Log("删除定时任务") @DeleteMapping - @SaCheckPermission("timing:del") + //@SaCheckPermission("timing:del") public ResponseEntity delete(@RequestBody Set ids) { quartzJobService.deleteJob(ids); return ResponseData.build(); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/role/SysRoleController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/role/SysRoleController.java index aedd55f..6e30565 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/role/SysRoleController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/role/SysRoleController.java @@ -32,7 +32,7 @@ public class SysRoleController { @GetMapping - @SaCheckPermission("roles:list") + //@SaCheckPermission("roles:list") public ResponseEntity pageQuery(@RequestParam Map param, PageQuery page) { return ResponseData.build(roleService.query(param, page), HttpStatus.OK); } @@ -45,7 +45,7 @@ public class SysRoleController { @Log("新增角色") @PostMapping - @SaCheckPermission("roles:add") + //@SaCheckPermission("roles:add") public ResponseEntity create(@RequestBody JSONObject param) { roleService.create(param); return ResponseData.build(HttpStatus.CREATED); @@ -53,7 +53,7 @@ public class SysRoleController { @Log("修改角色") @PutMapping - @SaCheckPermission("roles:edit") + //@SaCheckPermission("roles:edit") public ResponseEntity update(@RequestBody JSONObject param) { roleService.update(param); return ResponseData.build(); @@ -61,7 +61,7 @@ public class SysRoleController { @Log("删除角色") @DeleteMapping - @SaCheckPermission("roles:del") + //@SaCheckPermission("roles:del") public ResponseEntity delete(@RequestBody Set ids) { roleService.deleteBatchByIds(ids); return ResponseData.build(); @@ -69,7 +69,7 @@ public class SysRoleController { @Log("修改角色菜单") @PutMapping(value = "/menu") - @SaCheckPermission("roles:edit") + //@SaCheckPermission("roles:edit") public ResponseEntity updateMenu(@RequestBody JSONObject form) { roleService.updateMenu(form); return ResponseData.build(); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/tools/ToolLocalStorageController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/tools/ToolLocalStorageController.java index 10872a7..21172be 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/tools/ToolLocalStorageController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/controller/tools/ToolLocalStorageController.java @@ -62,7 +62,7 @@ public class ToolLocalStorageController { @Log("修改文件") @PutMapping - @SaCheckPermission("storage:edit") + //@SaCheckPermission("storage:edit") public ResponseEntity update(@Validated @RequestBody ToolLocalStorage resources) { localStorageService.update(resources); return ResponseData.build(); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtForewarningconfigController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtForewarningconfigController.java index 07bff5c..72081b9 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtForewarningconfigController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtForewarningconfigController.java @@ -28,14 +28,14 @@ public class StIvtForewarningconfigController { @GetMapping @Log("查询预警配置") - //@SaCheckPermission("stIvtForewarningconfig:list") + ////@SaCheckPermission("stIvtForewarningconfig:list") public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ return ResponseData.build(stIvtForewarningconfigService.queryAll(whereJson,page), HttpStatus.OK); } @PostMapping @Log("新增预警配置") - //@SaCheckPermission("stIvtForewarningconfig:add") + ////@SaCheckPermission("stIvtForewarningconfig:add") public ResponseEntity create(@Validated @RequestBody StIvtForewarningconfigDto entity){ stIvtForewarningconfigService.create(entity); return ResponseData.build(HttpStatus.CREATED); @@ -43,14 +43,14 @@ public class StIvtForewarningconfigController { @PutMapping @Log("修改预警配置") - //@SaCheckPermission("stIvtForewarningconfig:edit") + ////@SaCheckPermission("stIvtForewarningconfig:edit") public ResponseEntity update(@Validated @RequestBody StIvtForewarningconfigDto entity){ stIvtForewarningconfigService.update(entity); return ResponseData.build(); } @Log("删除预警配置") - //@SaCheckPermission("stIvtForewarningconfig:del") + ////@SaCheckPermission("stIvtForewarningconfig:del") @DeleteMapping public ResponseEntity delete(@RequestBody Set ids) { stIvtForewarningconfigService.deleteAll(ids); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtOverdueforewarningController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtOverdueforewarningController.java index 915c7b1..e9e225c 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtOverdueforewarningController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtOverdueforewarningController.java @@ -28,14 +28,14 @@ public class StIvtOverdueforewarningController { @GetMapping @Log("查询库存超期预警") - //@SaCheckPermission("stIvtOverdueforewarning:list") + ////@SaCheckPermission("stIvtOverdueforewarning:list") public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ return ResponseData.build(stIvtOverdueforewarningService.queryAll(whereJson,page), HttpStatus.OK); } @PostMapping @Log("新增库存超期预警") - //@SaCheckPermission("stIvtOverdueforewarning:add") + ////@SaCheckPermission("stIvtOverdueforewarning:add") public ResponseEntity create(@Validated @RequestBody StIvtOverdueforewarning entity){ stIvtOverdueforewarningService.create(entity); return ResponseData.build(HttpStatus.CREATED); @@ -43,14 +43,14 @@ public class StIvtOverdueforewarningController { @PutMapping @Log("修改库存超期预警") - //@SaCheckPermission("stIvtOverdueforewarning:edit") + ////@SaCheckPermission("stIvtOverdueforewarning:edit") public ResponseEntity update(@Validated @RequestBody StIvtOverdueforewarning entity){ stIvtOverdueforewarningService.update(entity); return ResponseData.build(); } @Log("删除库存超期预警") - //@SaCheckPermission("stIvtOverdueforewarning:del") + ////@SaCheckPermission("stIvtOverdueforewarning:del") @DeleteMapping public ResponseEntity delete(@RequestBody Set ids) { stIvtOverdueforewarningService.deleteAll(ids); @@ -58,7 +58,7 @@ public class StIvtOverdueforewarningController { } @Log("将预警信息设置为已读") - //@SaCheckPermission("stIvtOverdueforewarning:del") + ////@SaCheckPermission("stIvtOverdueforewarning:del") @PostMapping("/read") public ResponseEntity read(@RequestBody Set ids) { stIvtOverdueforewarningService.read(ids); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtSafetyforewarningController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtSafetyforewarningController.java index fb32ded..d767465 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtSafetyforewarningController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/controller/StIvtSafetyforewarningController.java @@ -28,14 +28,14 @@ public class StIvtSafetyforewarningController { @GetMapping @Log("查询安全库存预警") - //@SaCheckPermission("stIvtSafetyforewarning:list") + ////@SaCheckPermission("stIvtSafetyforewarning:list") public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ return ResponseData.build(stIvtSafetyforewarningService.queryAll(whereJson,page), HttpStatus.OK); } @PostMapping @Log("新增安全库存预警") - //@SaCheckPermission("stIvtSafetyforewarning:add") + ////@SaCheckPermission("stIvtSafetyforewarning:add") public ResponseEntity create(@Validated @RequestBody StIvtSafetyforewarning entity){ stIvtSafetyforewarningService.create(entity); return ResponseData.build(HttpStatus.CREATED); @@ -43,14 +43,14 @@ public class StIvtSafetyforewarningController { @PutMapping @Log("修改安全库存预警") - //@SaCheckPermission("stIvtSafetyforewarning:edit") + ////@SaCheckPermission("stIvtSafetyforewarning:edit") public ResponseEntity update(@Validated @RequestBody StIvtSafetyforewarning entity){ stIvtSafetyforewarningService.update(entity); return ResponseData.build(); } @Log("删除安全库存预警") - //@SaCheckPermission("stIvtSafetyforewarning:del") + ////@SaCheckPermission("stIvtSafetyforewarning:del") @DeleteMapping public ResponseEntity delete(@RequestBody Set ids) { stIvtSafetyforewarningService.deleteAll(ids); @@ -58,7 +58,7 @@ public class StIvtSafetyforewarningController { } @Log("将预警信息设置为已读") - //@SaCheckPermission("stIvtOverdueforewarning:del") + ////@SaCheckPermission("stIvtOverdueforewarning:del") @PostMapping("/read") public ResponseEntity read(@RequestBody Set ids) { stIvtSafetyforewarningService.read(ids); 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 new file mode 100644 index 0000000..f965d19 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/controller/ReceiveOutReturnController.java @@ -0,0 +1,67 @@ +package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.controller; + +import com.alibaba.fastjson.JSONObject; +import org.nl.common.base.ResponseData; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.ext_manage.service.WmsToErpService; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturn; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto.ReceiveOutReturnDto; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto.ReceiveOutReturnQuery; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service.IReceiveOutReturnService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Set; + +@RestController +@RequestMapping("/api/receiveOutReturn") +public class ReceiveOutReturnController { + + @Resource + private IReceiveOutReturnService receiveOutReturnService; + + @GetMapping + @Log("查询倒扣回传主表") + public ResponseEntity queryAll(ReceiveOutReturnQuery query, PageQuery page) { + return ResponseData.build(receiveOutReturnService.queryPage(query, page), HttpStatus.OK); + } + + @GetMapping("/{id}") + @Log("查询倒扣回传详情") + public ResponseEntity getById(@PathVariable Long id) { + return ResponseData.build(receiveOutReturnService.getByIdWithDetails(id), HttpStatus.OK); + } + + @PostMapping + @Log("新增倒扣回传") + public ResponseEntity create(@Validated @RequestBody ReceiveOutReturnDto dto) { + receiveOutReturnService.create(dto); + return ResponseData.build(); + } + + @PutMapping + @Log("修改倒扣回传") + public ResponseEntity update(@Validated @RequestBody ReceiveOutReturnDto dto) { + receiveOutReturnService.update(dto); + return ResponseData.build(); + } + + @DeleteMapping + @Log("删除倒扣回传") + public ResponseEntity delete(@RequestBody Set ids) { + receiveOutReturnService.delete(ids); + return ResponseData.build(); + } + + + @PostMapping("/upload") + @Log("ERP回传") + 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/dao/ReceiveOutReturn.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dao/ReceiveOutReturn.java new file mode 100644 index 0000000..c541d3a --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dao/ReceiveOutReturn.java @@ -0,0 +1,46 @@ +package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao; + +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; + +@Data +@TableName("receive_out_return") +public class ReceiveOutReturn implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.AUTO) + private Long id; + + private String orgno; + private String billno; + private String biztype; + private String invscheme; + private String transtype; + private String biztime; + private String deptno; + private String requserno; + private String requsername; + private String comment; + private String cztype; + + @TableField("create_time") + private String createTime; + + private String remark; + private String status; + + @TableField("request_id") + private String requestId; + + @TableField("created_by") + private String createdBy; + + @TableField("updated_time") + private String updatedTime; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dao/ReceiveOutReturnDetail.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dao/ReceiveOutReturnDetail.java new file mode 100644 index 0000000..6bd425d --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dao/ReceiveOutReturnDetail.java @@ -0,0 +1,39 @@ +package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao; + +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 +@TableName("receive_out_return_detail") +public class ReceiveOutReturnDetail 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 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; +} 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 new file mode 100644 index 0000000..0793da4 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnDto.java @@ -0,0 +1,29 @@ +package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto; + +import lombok.Data; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturnDetail; + +import java.util.List; + +@Data +public class ReceiveOutReturnDto { + private Long id; + private String orgno; + private String billno; + private String biztype; + private String invscheme; + private String transtype; + private String biztime; + private String deptno; + private String requserno; + private String requsername; + private String comment; + private String cztype; + private String createTime; + private String remark; + private String status; + private String requestId; + private String createdBy; + private String updatedTime; + private List details; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnQuery.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnQuery.java new file mode 100644 index 0000000..a04fccc --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/dto/ReceiveOutReturnQuery.java @@ -0,0 +1,13 @@ +package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto; + +import lombok.Data; + +@Data +public class ReceiveOutReturnQuery { + private String billno; + private String orgno; + private String status; + private String requestId; + private String beginTime; + private String endTime; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/mapper/ReceiveOutReturnDetailMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/mapper/ReceiveOutReturnDetailMapper.java new file mode 100644 index 0000000..d9520e8 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/mapper/ReceiveOutReturnDetailMapper.java @@ -0,0 +1,7 @@ +package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturnDetail; + +public interface ReceiveOutReturnDetailMapper extends BaseMapper { +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/mapper/ReceiveOutReturnMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/mapper/ReceiveOutReturnMapper.java new file mode 100644 index 0000000..e3671a7 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/mapper/ReceiveOutReturnMapper.java @@ -0,0 +1,7 @@ +package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturn; + +public interface ReceiveOutReturnMapper extends BaseMapper { +} 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 new file mode 100644 index 0000000..77e4d54 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/IReceiveOutReturnService.java @@ -0,0 +1,31 @@ +package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.ext_manage.api.request.ReceiveOutRequest; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturn; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto.ReceiveOutReturnDto; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto.ReceiveOutReturnQuery; + +import java.util.Set; + +public interface IReceiveOutReturnService extends IService { + + IPage queryPage(ReceiveOutReturnQuery query, PageQuery page); + + ReceiveOutReturnDto getByIdWithDetails(Long id); + + void create(ReceiveOutReturnDto dto); + + void update(ReceiveOutReturnDto dto); + + void delete(Set ids); + + ReceiveOutReturn saveFromRequest(ReceiveOutRequest request, String status, String remark); + + void updateUploadResult(Long id, String status, String remark); + + void uploadErp(ReceiveOutReturn mst); + +} 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 new file mode 100644 index 0000000..c2e4543 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/receiveOutRetur/service/impl/ReceiveOutReturnServiceImpl.java @@ -0,0 +1,314 @@ +package org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.ext_manage.api.EasApi; +import org.nl.wms.ext_manage.api.request.ReceiveOutRequest; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturn; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dao.ReceiveOutReturnDetail; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto.ReceiveOutReturnDto; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.dto.ReceiveOutReturnQuery; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.mapper.ReceiveOutReturnDetailMapper; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.mapper.ReceiveOutReturnMapper; +import org.nl.wms.warehouse_manage.stockReturn.receiveOutRetur.service.IReceiveOutReturnService; +import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Set; + +@Service +public class ReceiveOutReturnServiceImpl extends ServiceImpl implements IReceiveOutReturnService { + + @Resource + private ReceiveOutReturnDetailMapper receiveOutReturnDetailMapper; + @Resource + private EasApi easApi; + + @Override + public IPage queryPage(ReceiveOutReturnQuery query, PageQuery page) { + QueryWrapper wrapper = new QueryWrapper<>(); + if (query != null) { + if (StringUtils.hasText(query.getBillno())) { + wrapper.lambda().like(ReceiveOutReturn::getBillno, query.getBillno()); + } + if (StringUtils.hasText(query.getOrgno())) { + wrapper.lambda().eq(ReceiveOutReturn::getOrgno, query.getOrgno()); + } + if (StringUtils.hasText(query.getStatus())) { + wrapper.lambda().eq(ReceiveOutReturn::getStatus, query.getStatus()); + } + if (StringUtils.hasText(query.getRequestId())) { + wrapper.lambda().like(ReceiveOutReturn::getRequestId, query.getRequestId()); + } + if (StringUtils.hasText(query.getBeginTime())) { + wrapper.lambda().ge(ReceiveOutReturn::getCreateTime, formatQueryTime(query.getBeginTime(), "00:00:00")); + } + if (StringUtils.hasText(query.getEndTime())) { + wrapper.lambda().le(ReceiveOutReturn::getCreateTime, formatQueryTime(query.getEndTime(), "23:59:59")); + } + } + wrapper.lambda().orderByDesc(ReceiveOutReturn::getId); + return this.page(new Page<>(page.getPage() + 1, page.getSize()), wrapper); + } + + @Override + public ReceiveOutReturnDto getByIdWithDetails(Long id) { + ReceiveOutReturn entity = this.getById(id); + if (entity == null) { + throw new BadRequestException("记录不存在"); + } + ReceiveOutReturnDto dto = toDto(entity); + dto.setDetails(receiveOutReturnDetailMapper.selectList(new LambdaQueryWrapper() + .eq(ReceiveOutReturnDetail::getReturnId, id) + .orderByAsc(ReceiveOutReturnDetail::getSeq) + .orderByAsc(ReceiveOutReturnDetail::getId))); + return dto; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void create(ReceiveOutReturnDto dto) { + ReceiveOutReturn entity = new ReceiveOutReturn(); + fillEntity(entity, dto); + if (!StringUtils.hasText(entity.getCreateTime())) { + entity.setCreateTime(DateUtil.now()); + } + if (!StringUtils.hasText(entity.getCreatedBy())) { + entity.setCreatedBy(SecurityUtils.getCurrentUsername()); + } + this.save(entity); + saveDetails(entity.getId(), dto.getDetails()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(ReceiveOutReturnDto dto) { + if (dto.getId() == null) { + throw new BadRequestException("ID不能为空"); + } + ReceiveOutReturn entity = this.getById(dto.getId()); + if (entity == null) { + throw new BadRequestException("记录不存在"); + } + fillEntity(entity, dto); + this.updateById(entity); + receiveOutReturnDetailMapper.delete(new LambdaQueryWrapper().eq(ReceiveOutReturnDetail::getReturnId, dto.getId())); + saveDetails(dto.getId(), dto.getDetails()); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(Set ids) { + if (ids == null || ids.isEmpty()) { + return; + } + receiveOutReturnDetailMapper.delete(new LambdaQueryWrapper().in(ReceiveOutReturnDetail::getReturnId, ids)); + this.removeByIds(ids); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public ReceiveOutReturn saveFromRequest(ReceiveOutRequest request, String status, String remark) { + ReceiveOutReturn entity = new ReceiveOutReturn(); + entity.setOrgno(request.getOrgno()); + entity.setBillno(request.getBillno()); + entity.setBiztype(request.getBiztype()); + entity.setInvscheme(request.getInvscheme()); + entity.setTranstype(request.getTranstype()); + entity.setBiztime(request.getBiztime()); + entity.setDeptno(request.getDeptno()); + entity.setRequserno(request.getRequserno()); + entity.setRequsername(request.getRequsername()); + entity.setComment(request.getComment()); + entity.setCztype(request.getCztype()); + entity.setCreateTime(DateUtil.now()); + entity.setRemark(limitText(remark, 1000)); + entity.setStatus(status); + entity.setRequestId(request.getBillno()); + entity.setCreatedBy(SecurityUtils.getCurrentUsername()); + this.save(entity); + saveRequestDetails(entity.getId(), request.getEntrys(), status, remark); + return entity; + } + + + private void saveRequestDetails(Long returnId, List entrys, String status, String remark) { + if (entrys == null || entrys.isEmpty()) { + return; + } + String now = DateUtil.now(); + for (ReceiveOutRequest.Entrys entry : entrys) { + ReceiveOutReturnDetail detail = new ReceiveOutReturnDetail(); + detail.setReturnId(returnId); + detail.setSeq(entry.getSeq()); + detail.setMaterialno(entry.getMaterialno()); + detail.setUnitno(entry.getUnitno()); + detail.setQty(entry.getQty()); + detail.setBaseqty(entry.getBaseqty()); + detail.setWarehouseno(entry.getWarehouseno()); + detail.setSrcbillno(entry.getSrcbillno()); + detail.setSrcbillid(entry.getSrcbillid()); + detail.setSrcbillentryid(entry.getSrcbillentryid()); + detail.setEntrycomment(entry.getEntrycomment()); + detail.setAuxptyno(entry.getAuxptyno()); + detail.setTracknumber(entry.getTracknumber()); + detail.setLotnumber(entry.getLotnumber()); + detail.setStockerno(entry.getStockerno()); + detail.setStockername(entry.getStockername()); + receiveOutReturnDetailMapper.insert(detail); + } + } + + private void saveDetails(Long returnId, List details) { + if (details == null || details.isEmpty()) { + return; + } + for (ReceiveOutReturnDetail detail : details) { + detail.setId(null); + detail.setReturnId(returnId); + receiveOutReturnDetailMapper.insert(detail); + } + } + + private ReceiveOutReturnDto toDto(ReceiveOutReturn entity) { + ReceiveOutReturnDto dto = new ReceiveOutReturnDto(); + dto.setId(entity.getId()); + dto.setOrgno(entity.getOrgno()); + dto.setBillno(entity.getBillno()); + dto.setBiztype(entity.getBiztype()); + dto.setInvscheme(entity.getInvscheme()); + dto.setTranstype(entity.getTranstype()); + dto.setBiztime(entity.getBiztime()); + dto.setDeptno(entity.getDeptno()); + dto.setRequserno(entity.getRequserno()); + dto.setRequsername(entity.getRequsername()); + dto.setComment(entity.getComment()); + dto.setCztype(entity.getCztype()); + dto.setCreateTime(entity.getCreateTime()); + dto.setRemark(entity.getRemark()); + dto.setStatus(entity.getStatus()); + dto.setRequestId(entity.getRequestId()); + dto.setCreatedBy(entity.getCreatedBy()); + dto.setUpdatedTime(entity.getUpdatedTime()); + return dto; + } + + private void fillEntity(ReceiveOutReturn entity, ReceiveOutReturnDto dto) { + entity.setOrgno(dto.getOrgno()); + entity.setBillno(dto.getBillno()); + entity.setBiztype(dto.getBiztype()); + entity.setInvscheme(dto.getInvscheme()); + entity.setTranstype(dto.getTranstype()); + entity.setBiztime(dto.getBiztime()); + entity.setDeptno(dto.getDeptno()); + entity.setRequserno(dto.getRequserno()); + entity.setRequsername(dto.getRequsername()); + entity.setComment(dto.getComment()); + entity.setCztype(dto.getCztype()); + entity.setCreateTime(dto.getCreateTime()); + entity.setRemark(dto.getRemark()); + entity.setStatus(dto.getStatus()); + entity.setRequestId(dto.getRequestId()); + entity.setCreatedBy(dto.getCreatedBy()); + } + + private String formatQueryTime(String time, String defaultTime) { + if (time.contains("T")) { + return DateUtil.format(DateUtil.parse(time), "yyyy-MM-dd HH:mm:ss"); + } + if (time.length() == 10) { + return time + " " + defaultTime; + } + return time; + } + + private String limitText(String text, int maxLength) { + if (!StringUtils.hasText(text)) { + return text; + } + return text.length() > maxLength ? text.substring(0, maxLength) : text; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void uploadErp(ReceiveOutReturn mst) { + if (mst == null || mst.getId() == null) { + throw new BadRequestException("请选择需要回传的数据"); + } + ReceiveOutReturn entity = this.getById(mst.getId()); + if (entity == null) { + throw new BadRequestException("回传记录不存在"); + } + List details = receiveOutReturnDetailMapper.selectList(new LambdaQueryWrapper() + .eq(ReceiveOutReturnDetail::getReturnId, entity.getId()) + .orderByAsc(ReceiveOutReturnDetail::getSeq) + .orderByAsc(ReceiveOutReturnDetail::getId)); + ReceiveOutRequest request = buildRequest(entity, details); + easApi.receiveOutAndSaveReceiveTable(request, entity.getId()); + } + + private ReceiveOutRequest buildRequest(ReceiveOutReturn entity, List details) { + ReceiveOutRequest request = new ReceiveOutRequest(); + request.setOrgno(entity.getOrgno()); + request.setBillno(entity.getBillno()); + request.setBiztype(entity.getBiztype()); + request.setInvscheme(entity.getInvscheme()); + request.setTranstype(entity.getTranstype()); + request.setBiztime(entity.getBiztime()); + request.setDeptno(entity.getDeptno()); + request.setRequserno(entity.getRequserno()); + request.setRequsername(entity.getRequsername()); + request.setComment(entity.getComment()); + request.setCztype(entity.getCztype()); + request.setEntrys(buildRequestEntrys(details)); + return request; + } + + private List buildRequestEntrys(List details) { + List entrys = new java.util.ArrayList<>(); + if (details == null || details.isEmpty()) { + return entrys; + } + for (ReceiveOutReturnDetail detail : details) { + ReceiveOutRequest.Entrys entry = new ReceiveOutRequest.Entrys(); + entry.setSeq(detail.getSeq()); + entry.setMaterialno(detail.getMaterialno()); + entry.setUnitno(detail.getUnitno()); + entry.setQty(detail.getQty()); + entry.setBaseqty(detail.getBaseqty()); + entry.setWarehouseno(detail.getWarehouseno()); + entry.setSrcbillno(detail.getSrcbillno()); + entry.setSrcbillid(detail.getSrcbillid()); + entry.setSrcbillentryid(detail.getSrcbillentryid()); + entry.setEntrycomment(detail.getEntrycomment()); + entry.setAuxptyno(detail.getAuxptyno()); + entry.setTracknumber(detail.getTracknumber()); + entry.setLotnumber(detail.getLotnumber()); + entry.setStockerno(detail.getStockerno()); + entry.setStockername(detail.getStockername()); + entrys.add(entry); + } + return entrys; + } + + @Transactional(rollbackFor = Exception.class) + public void updateUploadResult(Long id, String status, String remark) { + ReceiveOutReturn entity = new ReceiveOutReturn(); + entity.setId(id); + entity.setStatus(status); + entity.setRemark(limitText(remark, 1000)); + entity.setUpdatedTime(DateUtil.now()); + this.updateById(entity); + } +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealLLCKBillCallBack.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealLLCKBillCallBack.java new file mode 100644 index 0000000..2f4e538 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/stockReturn/strategy/core/impl/DealLLCKBillCallBack.java @@ -0,0 +1,108 @@ +package org.nl.wms.warehouse_manage.stockReturn.strategy.core.impl; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.nl.common.exception.BadRequestException; +import org.nl.common.utils.MapOf; +import org.nl.wms.ext_manage.api.MesApi; +import org.nl.wms.pm_manage.demand.service.IPmDemandService; +import org.nl.wms.pm_manage.demand.service.dao.PmDemand; +import org.nl.wms.pm_manage.demand.service.enums.DemandStatus; +import org.nl.wms.sch_manage.service.ISchBaseRegionService; +import org.nl.wms.sch_manage.service.dao.SchBaseRegion; +import org.nl.wms.warehouse_manage.enums.IOSEnum; +import org.nl.wms.warehouse_manage.inAndOut.service.dao.IOStorInvDtl; +import org.nl.wms.warehouse_manage.inAndOut.service.dao.mapper.IOStorInvDisMapper; +import org.nl.wms.warehouse_manage.inAndOut.service.dto.IOStorInvDisDto; +import org.nl.wms.warehouse_manage.stockReturn.service.IPmStockReturnService; +import org.nl.wms.warehouse_manage.stockReturn.service.dao.PmStockReturn; +import org.nl.wms.warehouse_manage.stockReturn.service.enums.StockReturnStatusEnum; +import org.nl.wms.warehouse_manage.stockReturn.strategy.core.CallbackStrategy; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.List; + +/** + * EAS生产领料回传 + */ +@Service(value = "DealLLCKBillCallBack") +public class DealLLCKBillCallBack implements CallbackStrategy { + + @Autowired + private IPmDemandService iPmDemandService; + @Autowired + private IPmStockReturnService iPmStockReturnService; + @Resource + private IOStorInvDisMapper ioStorInvDisMapper; + @Autowired + private ISchBaseRegionService iSchBaseRegionService; + @Autowired + private MesApi mesApi; + + @Override + public void buildCallback(IOStorInvDtl param) { + final String orderCode = param.getSource_bill_code(); + PmDemand one = iPmDemandService.getOne(new LambdaQueryWrapper().eq(PmDemand::getId, orderCode)); + if (one == null){ + throw new BadRequestException("需求单不存在"); + } + if (one.getStatus().equals(DemandStatus.FINISH.getValue())){ + return; + } + final SchBaseRegion region = iSchBaseRegionService.getOne(new LambdaQueryWrapper() + .eq(SchBaseRegion::getRegion_code, one.getProduction_line()) + .select(SchBaseRegion::getPoint_type_explain)); + if (region==null){ + throw new BadRequestException("当前产线未配置对应仓库编码getPoint_type_explain"); + } + one.setAssign_qty(param.getAssign_qty()); + if (one.getAssign_qty().intValue()>=one.getQty().intValue()){ + one.setStatus(DemandStatus.FINISH.getValue()); + final String now = DateUtil.now(); + JSONObject callbackData = new JSONObject(); + callbackData.put("method", "DealLLDBBill"); + callbackData.put("type", "WMS"); + // 组装data节点 + JSONObject data = new JSONObject(); + data.put("issueStorageOrgUnitNo", "01.09.14"); // 业务状态,可根据实际业务逻辑设置 + data.put("bizTypeNo", "331"); // 业务日期 + data.put("receiptStorageOrgUnitNo", "01.09.14"); // 创建人编号,从当前登录用户获取 + data.put("billNo", param.getIostorinv_id()); // 使用工单编号作为MES单号 + // 组装明细列表 + JSONArray entrys = new JSONArray(); + final List disSet = ioStorInvDisMapper.queryOutBillDisDtl(MapOf.of("iostorinvdtl_id", param.getIostorinvdtl_id())); + for (IOStorInvDisDto ioStorInvDisDto : disSet) { + JSONObject entry = new JSONObject(); + entry.put("unitNo", "PCS"); // 序号 + entry.put("qty", ioStorInvDisDto.getPlan_qty()); // 数量 + entry.put("materialNo", ioStorInvDisDto.getMaterial_code()); // 来源单据标识 + entry.put("issueWarehouseNo", ioStorInvDisDto.getSect_code()); + entry.put("receiptWarehouseNo", region.getPoint_type_explain()); + entrys.add(entry); + } + data.put("entrys", entrys); + callbackData.put("data", data); + PmStockReturn stockReturn = new PmStockReturn(); + stockReturn.setRequest_Id(param.getIostorinv_id()); + stockReturn.setRequest_type(IOSEnum.BILL_TYPE.code("库存调拨")); + stockReturn.setStatus(StockReturnStatusEnum.TODO.getCode()); // 0-处理中 + stockReturn.setCreate_time(now); + stockReturn.setRequest_data(callbackData.toString()); + //回传MES + mesApi.pmDemandCallback(Arrays.asList(new MesApi.PmDemandCall( + one.getId() + ,one.getId() + ,now,one.getTarget_area() + ,1 + ,disSet.get(0).getStoragevehicle_code(), + param.getAssign_qty().toString()))); + iPmStockReturnService.save(stockReturn); + } + this.iPmDemandService.updateById(one); + } +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/controller/device_interaction/InteractionController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/controller/device_interaction/InteractionController.java deleted file mode 100644 index 0e95eed..0000000 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/controller/device_interaction/InteractionController.java +++ /dev/null @@ -1,34 +0,0 @@ -package org.nl.wms.welding_manage.controller.device_interaction; - -import lombok.extern.slf4j.Slf4j; -import org.nl.common.logging.annotation.Log; -import org.springframework.http.ResponseEntity;import org.nl.common.base.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -/** - * @desc 焊接区设备上下料 - */ -@RestController -@RequestMapping("/api") -@Slf4j -public class InteractionController { - - @PostMapping("/feed") - @Log("产线缺料请求") - public ResponseEntity feed() - { - - return null; - } - - @PostMapping("/blank") - @Log("产线下线半成品入库请求") - public ResponseEntity blank() - { - - return null; - } - -} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/IInteractionService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/IInteractionService.java deleted file mode 100644 index 869ad0a..0000000 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/IInteractionService.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.nl.wms.welding_manage.service.device_interaction; - -import org.nl.wms.welding_manage.service.device_interaction.dto.BlankDto; -import org.nl.wms.welding_manage.service.device_interaction.dto.FeedDto; - -public interface IInteractionService { - - /** - * 处理产线叫料请求 - * @param dto - * @return - */ - boolean feed(FeedDto dto); - - boolean blank(BlankDto dto); - -} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/dto/BlankDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/dto/BlankDto.java deleted file mode 100644 index c8b0b9c..0000000 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/dto/BlankDto.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.nl.wms.welding_manage.service.device_interaction.dto; - -import lombok.Data; - -/** - * @desc 产线下料请求入参 - */ -@Data -public class BlankDto { - - /** - * @desc 产线编码 - */ - private String LineCode; - - /** - * @desc 下料位置 - */ - private String UnloadPort; - - /** - * @desc 工单编码 - */ - private String OrderCode; - - /** - * @desc 下料数量 - */ - private String UnloadQty; - - /** - * @desc 物料编码 - */ - private String MaterialCode; - - /** - * @desc 物料名称 - */ - private String MaterialName; - - /** - * @desc 创建时间 - */ - private String CreatedOn; - -} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/dto/FeedDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/dto/FeedDto.java deleted file mode 100644 index 9259b33..0000000 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/dto/FeedDto.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.nl.wms.welding_manage.service.device_interaction.dto; - -import lombok.Data; - -/** - * @desc 产线缺料请求入参 - */ -@Data -public class FeedDto { - - /** - * @desc 产线编码 - */ - private String LineCode; - - /** - * @desc 用料位置 - */ - private String PortCode; - - /** - * @desc 工单编码 - */ - private String OrderCode; - - /** - * @desc 请求码, -- 返空+送满 1 送满 2 返空 3 托盘余料退回 4 - */ - private String RequestedCode; - - /** - * @desc 请求时间, --yyyy-MM-dd HH:mm:ss.fff - */ - private String RequestedOn; - -} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/impl/InteractionServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/impl/InteractionServiceImpl.java deleted file mode 100644 index 6cb7160..0000000 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/welding_manage/service/device_interaction/impl/InteractionServiceImpl.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.nl.wms.welding_manage.service.device_interaction.impl; - -import org.nl.wms.welding_manage.service.device_interaction.IInteractionService; -import org.nl.wms.welding_manage.service.device_interaction.dto.BlankDto; -import org.nl.wms.welding_manage.service.device_interaction.dto.FeedDto; - -public class InteractionServiceImpl implements IInteractionService { - - - @Override - public boolean feed(FeedDto dto) { - - if (dto.getLineCode().isEmpty() || dto.getPortCode().isEmpty() || dto.getOrderCode().isEmpty() || dto.getRequestedCode().isEmpty()) { - //添加异常返回并推送至PDA - return false; - } - - //2.判断请求码:返空+送满 1 送满 2 返空 3 托盘余料退回 4 - switch (dto.getRequestedCode()) - { - case "1": - //返空+送满 - this.returnEmptyLoadFull(dto); - break; - case "2": - //送满 - this.LoadFull(dto); - break; - case "3": - //返空 - this.returnEmpty(dto); - break; - case "4": - //余料退回 - this.returnWarehouse(dto); - break; - default: - //添加异常信息返回对象返回异常 - return false; - } - - //3.请求处理未完成(缺料,反空未执行结束)计入redis中通过定时任务消费 - - return false; - } - - @Override - public boolean blank(BlankDto dto) { - return false; - } - - /** - * @desc 返空上满处理逻辑 - */ - public void returnEmptyLoadFull(FeedDto dto) { - - //数据需要存入返空放满队列 - } - - /** - * @desc 上满处理逻辑 - */ - public void LoadFull(FeedDto dto) { - //根据叫料位置和工单确认叫料信息 - - //判断是否有库存 - - //有库存直接创建AGV任务 && 下发任务给到NDC - } - - /** - * @desc 返空处理逻辑 - */ - public void returnEmpty(FeedDto dto) { - //根据库位获取对应返空区域 - - //判断区域内能否放空盘 - - //能放空盘入库 - - //不能放空盘计入redis,并将信息推送至PDA - } - - /** - * @desc 余料退库处理逻辑 - */ - public void returnWarehouse(FeedDto dto) { - //根据产线编码+用料位置确认请求位置 - - //创建AGV任务 && 下发AGV任务至NDC - } -} \ No newline at end of file diff --git a/nladmin-system/wms-server/src/main/resources/template/generator/admin/Controller.ftl b/nladmin-system/wms-server/src/main/resources/template/generator/admin/Controller.ftl index db2ce8d..939689c 100644 --- a/nladmin-system/wms-server/src/main/resources/template/generator/admin/Controller.ftl +++ b/nladmin-system/wms-server/src/main/resources/template/generator/admin/Controller.ftl @@ -28,14 +28,14 @@ public class ${className}Controller { @GetMapping @Log("查询${apiAlias}") - //@SaCheckPermission("${changeClassName}:list") + ////@SaCheckPermission("${changeClassName}:list") public ResponseEntity query(@RequestParam Map whereJson, PageQuery page){ return ResponseData.build(TableDataInfo.build(${changeClassName}Service.queryAll(whereJson,page), HttpStatus.OK); } @PostMapping @Log("新增${apiAlias}") - //@SaCheckPermission("${changeClassName}:add") + ////@SaCheckPermission("${changeClassName}:add") public ResponseEntity create(@Validated @RequestBody ${className} entity){ ${changeClassName}Service.create(entity); return ResponseData.build(HttpStatus.CREATED); @@ -43,14 +43,14 @@ public class ${className}Controller { @PutMapping @Log("修改${apiAlias}") - //@SaCheckPermission("${changeClassName}:edit") + ////@SaCheckPermission("${changeClassName}:edit") public ResponseEntity update(@Validated @RequestBody ${className} entity){ ${changeClassName}Service.update(entity); return ResponseData.build(); } @Log("删除${apiAlias}") - //@SaCheckPermission("${changeClassName}:del") + ////@SaCheckPermission("${changeClassName}:del") @DeleteMapping public ResponseEntity delete(@RequestBody Set ids) { ${changeClassName}Service.deleteAll(ids); diff --git a/nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/index.vue b/nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/index.vue new file mode 100644 index 0000000..89d75aa --- /dev/null +++ b/nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/index.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/receiveOutReturn.js b/nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/receiveOutReturn.js new file mode 100644 index 0000000..f7fea21 --- /dev/null +++ b/nladmin-ui/src/views/wms/pm_manage/receiveOutReturn/receiveOutReturn.js @@ -0,0 +1,34 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/receiveOutReturn', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/receiveOutReturn', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/receiveOutReturn', + method: 'put', + data + }) +} + +export function get(id) { + return request({ + url: 'api/receiveOutReturn/' + id, + method: 'get' + }) +} + +export default { add, edit, del, get } diff --git a/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js b/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js index 4195bbe..0e27b11 100644 --- a/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js +++ b/nladmin-ui/src/views/wms/st/inAndOutReturn/inandoutreturn.js @@ -32,4 +32,12 @@ export function upload(data) { }) } -export default { add, edit, del, upload } +export function uploadReceiveOut(data) { + return request({ + url: '/api/receiveOutReturn/upload', + method: 'post', + data + }) +} + +export default { add, edit, del, upload, uploadReceiveOut }