From d0fda49c451bd6ab4bab9ee07526cacf60184aa3 Mon Sep 17 00:00:00 2001 From: zhangzq Date: Thu, 12 Dec 2024 13:28:28 +0800 Subject: [PATCH] =?UTF-8?q?add:=E6=89=8B=E6=8C=81=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=87=BA=E5=BA=93=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iostorage/PdaOutController.java | 11 +++ .../iostorage/server/dto/PdaMaterOutMst.java | 51 +++++++++++++ .../iostorage/sevice/PdaIOService.java | 75 ++++++++++++++++++- .../dao/mapper/xml/StIvtStructattrMapper.xml | 20 +++++ .../struct/service/dto/StructattrQuery.java | 2 + 5 files changed, 156 insertions(+), 3 deletions(-) create mode 100644 wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaMaterOutMst.java diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/PdaOutController.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/PdaOutController.java index e6402d30..06b18ef0 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/PdaOutController.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/PdaOutController.java @@ -16,6 +16,7 @@ import org.nl.common.utils.RedissonUtils; import org.nl.wms.config_manage.form_struc.service.IBmFormStrucService; import org.nl.wms.config_manage.form_struc.service.dao.BmFormStruc; import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutMst; +import org.nl.wms.pda_manage.iostorage.server.dto.PdaMaterOutMst; import org.nl.wms.pda_manage.iostorage.sevice.PdaIOService; import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; import org.nl.wms.pm_manage.form_data.service.dto.FormDataQuery; @@ -101,5 +102,15 @@ public class PdaOutController { return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK); } + @PostMapping("materConfirm") + @Log("物料出库确认") + @SaIgnore + public ResponseEntity materConfirm(@RequestBody PdaMaterOutMst pdaMaterOutMst) { + RedissonUtils.lock(() -> { + pdaIOService.PdaMaterOutStorage(pdaMaterOutMst); + }, pdaMaterOutMst.getStruct_code(), null); + return new ResponseEntity<>(TableDataInfo.build(), HttpStatus.OK); + } + } diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaMaterOutMst.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaMaterOutMst.java new file mode 100644 index 00000000..722df9a1 --- /dev/null +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/server/dto/PdaMaterOutMst.java @@ -0,0 +1,51 @@ +package org.nl.wms.pda_manage.iostorage.server.dto; + +import com.alibaba.fastjson.JSONObject; +import lombok.Data; +import org.springframework.util.CollectionUtils; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.List; + +/** + *

+ * 物料出库 + *

+ * + * @author generator + * @since 2024-03-25 + */ +@Data +public class PdaMaterOutMst { + + /** + * 出库仓库 + */ + private String stor_code; + /** + * 出库仓位 + */ + private String struct_code; + /** + * 出库车间 + */ + private String product_area; + /** + * 出库托盘 + */ + private String vehicle_code; + /** + * 出库物料 + */ + private String material_id; + /** + * 批次号 + */ + private String pcsn; + /** + * 出库数量默认等于qty允许修改 + */ + private BigDecimal now_assign_qty; + +} diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java index 89deadd8..54787a52 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/pda_manage/iostorage/sevice/PdaIOService.java @@ -28,6 +28,7 @@ import org.nl.wms.md_manage.vehicleMater.service.IMdPbVehicleMaterService; import org.nl.wms.md_manage.vehicleMater.service.dao.MdPbVehicleMater; import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutDtl; import org.nl.wms.pda_manage.iostorage.server.dto.PdaFormOutMst; +import org.nl.wms.pda_manage.iostorage.server.dto.PdaMaterOutMst; import org.nl.wms.pda_manage.iostorage.server.dto.ReceiveBillData; import org.nl.wms.pm_manage.form_data.service.IPmFormDataService; import org.nl.wms.pm_manage.form_data.service.dao.PmFormData; @@ -37,11 +38,14 @@ import org.nl.wms.stor_manage.io.service.iostor.dao.StIvtIostorinv; import org.nl.wms.stor_manage.io.service.iostor_dtl.IStIvtIostorinvdtlService; import org.nl.wms.stor_manage.io.service.iostor_dtl.dao.StIvtIostorinvdtl; import org.nl.wms.stor_manage.struct.service.IStIvtStructattrService; +import org.nl.wms.stor_manage.struct.service.dao.StIvtStructattr; import org.nl.wms.stor_manage.struct.service.dao.StructAssignQty; +import org.nl.wms.stor_manage.struct.service.dto.StructattrVechielDto; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; @@ -55,9 +59,6 @@ import java.util.stream.Collectors; @Service public class PdaIOService { - @Resource - private ErpServiceUtils erpServiceUtils; - @Autowired private ErpSec erpSec; @Autowired @@ -82,6 +83,69 @@ public class PdaIOService { private IMdPbVehicleMaterService iMdPbVehicleMaterService; + /** + * 手持物料出库不回传 + * @param pdaFormOutMst + */ + public void PdaMaterOutStorage(PdaMaterOutMst pdaFormOutMst) { + String vehicleCode = pdaFormOutMst.getVehicle_code(); + String structCode = pdaFormOutMst.getStruct_code(); + String storCode = pdaFormOutMst.getStor_code(); + String pcsn = pdaFormOutMst.getPcsn(); + String product_area = pdaFormOutMst.getProduct_area(); + BigDecimal now_assign_qty = pdaFormOutMst.getNow_assign_qty(); + Assert.noNullElements(new Object[]{product_area,pcsn,vehicleCode,structCode,storCode,now_assign_qty},"出库失败,请求参数不能为空"); + List structattrVechielDtos = iStIvtStructattrService.structVehicle(MapOf.of("stor_code", storCode, "struct_code", structCode, "vehicle_code", vehicleCode, "pcsn", pcsn)); + if (CollectionUtils.isEmpty(structattrVechielDtos)){ + throw new BadRequestException("当前库存不存在或库存锁定"); + } + + StructattrVechielDto structattrVechielDto = structattrVechielDtos.get(0); + iMdPbVehicleMaterService.update(new UpdateWrapper() + .set("frozen_qty",now_assign_qty) + .eq("id",structattrVechielDto.getVm_id())); + iStIvtStructattrService.update(new UpdateWrapper() + .set("lock_type", StatusEnum.LOCK.code("出库锁")) + .set("update_time", DateUtil.now()) + .set("update_name", SecurityUtils.getCurrentNickName()) + .in("struct_code", structCode)); + + StructattrVechielDto vechielDto = structattrVechielDto; + StIvtIostorinv mst = new StIvtIostorinv(); + { + mst.setId(IdUtil.getStringId()); + mst.setCreate_name(SecurityUtils.getCurrentNickName()); + mst.setCreate_time(DateUtil.now()); + mst.setCode(CodeUtil.getNewCode("IO_CODE")); + mst.setStatus(StatusEnum.FORM_STATUS.code("已分配")); + mst.setProduct_area(product_area); + mst.setBill_type(StatusEnum.IOBILL_TYPE_OUT.code("生产出库")); + mst.setIn_storage(false); + mst.setProduct_area(pdaFormOutMst.getProduct_area()); + mst.setForm_data(new JSONObject(MapOf.of("shipper", null, "product_area", pdaFormOutMst.getProduct_area()))); + } + StIvtIostorinvdtl ivtDtl = new StIvtIostorinvdtl(); + { + ivtDtl.setMaterial_id(vechielDto.getMaterial_id()); + ivtDtl.setForm_data(new JSONObject()); + ivtDtl.setQty(now_assign_qty); + ivtDtl.setPcsn(pcsn); + ivtDtl.setStor_code(storCode); + ivtDtl.setId(IdUtil.getStringId()); + ivtDtl.setVehicle_code(vehicleCode); + ivtDtl.setVehicle_id(vechielDto.getVm_id()); + ivtDtl.setInv_id(mst.getId()); + ivtDtl.setStatus(StatusEnum.FORM_STATUS.code("生成")); + ivtDtl.setSource_form_data(new JSONObject()); + } + iStIvtIostorinvdtlService.save(ivtDtl); + iStIvtIostorinvService.save(mst); + this.pdaTaskOpen(mst); + } + /** + * 手持单据出库 + * @param pdaFormOutMst + */ public void PpdaOrderOutStorage(PdaFormOutMst pdaFormOutMst) { PdaIOService ioService = SpringContextHolder.getBean(PdaIOService.class); //创建单据分配货位 @@ -90,6 +154,11 @@ public class PdaIOService { this.pdaTaskOpen(byId); } + /** + * 分配检查 + * @param pdaFormOutMst + * @return + */ @Transactional public StIvtIostorinv createPadIvtAndoutDispense(PdaFormOutMst pdaFormOutMst) { // || StringUtils.isEmpty(pdaFormOutMst.getStor_code()) diff --git a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml index 34e9dacf..5619d64d 100644 --- a/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml +++ b/wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/stor_manage/struct/service/dao/mapper/xml/StIvtStructattrMapper.xml @@ -45,6 +45,12 @@ and struct.stor_code = #{query.stor_code} + + and md_pb_vehicleMater.pcsn = #{query.pcsn} + + + and md_pb_vehicleMater.material_code = #{query.material_code} + and struct.sect_code = #{query.sect_code} @@ -105,6 +111,16 @@ and st_ivt_structattr.stor_code = #{stor_code} + + and st_ivt_structattr.struct_code = #{struct_code} + + + and md_pb_vehicleMater.pcsn = #{pcsn} + + + and st_ivt_structattr.vehicle_code = #{vehicle_code} + +