From e73877620abae3494dcc608c74798bf2d7fffdc2 Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Thu, 27 Jul 2023 15:21:42 +0800 Subject: [PATCH] =?UTF-8?q?add:=E4=BB=93=E4=BD=8D=E7=89=A9=E6=96=99?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storage/StructattrController.java | 3 +- .../storage/IStIvtStructattrService.java | 6 +++ .../impl/StIvtStructattrServiceImpl.java | 36 ++++++++++++- .../service/impl/PdaStCpInServiceImpl.java | 4 ++ .../IStIvtIostorinvBcpOutService.java | 7 +++ .../iostorInv/IStIvtIostorinvBcpService.java | 7 +++ .../impl/StIvtIostorinvBcpOutServiceImpl.java | 38 ++++++++++++++ .../impl/StIvtIostorinvBcpServiceImpl.java | 51 +++++++++++++++++++ .../wms/masterdata_manage/st/struct/index.vue | 16 ++---- 9 files changed, 154 insertions(+), 14 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/StructattrController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/StructattrController.java index f0aebead..b5ee3a16 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/StructattrController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/controller/storage/StructattrController.java @@ -101,6 +101,7 @@ public class StructattrController { @Log("修改仓位库存") //("查询联级仓位") public ResponseEntity setMaterial(@RequestBody JSONObject json) { - return new ResponseEntity<>(ivtStructattrService.getSectCascader(json),HttpStatus.OK); + ivtStructattrService.setStructMaterial(json); + return new ResponseEntity<>(HttpStatus.OK); } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java index 7cafb46e..f9843480 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/IStIvtStructattrService.java @@ -56,4 +56,10 @@ public interface IStIvtStructattrService extends IService { * @param inv_code */ void lockStruct(String struct_code, String type, String inv_code); + + /** + * 设置仓位物料信息 + * @param jo + */ + void setStructMaterial(JSONObject jo); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java index 76042684..fb937e2c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/storage/service/storage/impl/StIvtStructattrServiceImpl.java @@ -1,12 +1,14 @@ package org.nl.wms.masterdata_manage.storage.service.storage.impl; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import io.jsonwebtoken.lang.Assert; +import org.apache.commons.lang3.StringUtils; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -17,7 +19,8 @@ import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtSectattr; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; import org.nl.wms.masterdata_manage.storage.service.storage.dao.mapper.StIvtStructattrMapper; import org.nl.wms.storage_manage.IOSEnum; -import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpOutService; +import org.nl.wms.storage_manage.semimanage.service.iostorInv.IStIvtIostorinvBcpService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; @@ -39,6 +42,11 @@ public class StIvtStructattrServiceImpl extends ServiceImpl() + .set("is_emptyvehicle",is_emptyvehicle) + .set("storagevehicle_code",StringUtils.isNotEmpty(jo.getString("storagevehicle_code"))?jo.getString("storagevehicle_code"):"") + .set("update_id",SecurityUtils.getCurrentUserId()) + .set("update_name",SecurityUtils.getCurrentNickName()) + .set("update_time",new Date()) + .eq("struct_id",jo.getString("struct_id"))); + if (is_emptyvehicle || StringUtils.isEmpty(jo.getString("storagevehicle_code"))){ + //删除库存,生产操作记录表 + JSONObject form = new JSONObject(); + form.put("struct_id",jo.getString("struct_id")); + form.put("storagevehicle_code",jo.getString("storagevehicle_code")); + bcpOutService.onlyConfirm(form); + }else { + //更新库存更新生产记录 + if (StringUtils.isEmpty(jo.getString("material_code"))||jo.getInteger("qty")==null || jo.getInteger("qty")<=0){ + throw new BadRequestException("有载具非空载具时,物料编码跟数量不能为空"); + } + bcpInvService.onlyConfirm(jo); + } + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java index ef3e3395..a5e53994 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/pda/service/impl/PdaStCpInServiceImpl.java @@ -30,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Date; import java.util.List; import java.util.Map; @@ -124,6 +125,9 @@ public class PdaStCpInServiceImpl implements PdaStCpInService { @Override public JSONObject getMaterial(JSONObject whereJson) { List list = iMpsSaleOrderService.getPdaMaterial(whereJson); + for (Map map : list) { + map.put("create_time",DateUtil.date((Date) map.get("plandeliver_date")).toString()); + } JSONObject result = new JSONObject(); result.put("data", JSONArray.parseArray(JSON.toJSONString(list))); result.put("message", "查询成功"); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpOutService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpOutService.java index b077672b..fc4c586e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpOutService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/IStIvtIostorinvBcpOutService.java @@ -47,6 +47,13 @@ public interface IStIvtIostorinvBcpOutService extends IService { * @return */ String confirm(JSONObject form); + + /** + * 库存变动 + * @param form + * @return + */ + void onlyConfirm(JSONObject form); /** * 下发单据 * @param form diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java index a29d4bd9..7df1b0d8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpOutServiceImpl.java @@ -247,6 +247,44 @@ public class StIvtIostorinvBcpOutServiceImpl extends ServiceImpl().eq("struct_id", form.getString("struct_id"))); + + // 插入库存变动记录 + JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao)); + param.put("change_type", ChangeIvtUtil.SUBFROZEN_SUBIVT_QTY); + param.put("change_qty", ivtDao.getCanuse_qty()); + param.put("result_qty", 0); + param.put("bill_code",""); + param.put("inv_id",""); + param.put("bill_type_scode",""); + iStIvtStructivtflowService.insetIvtChange(param); + //维护载具 + structattrService.update(new UpdateWrapper().lambda() + .eq(StIvtStructattr::getStruct_code, ivtDao.getStruct_code()) + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .set(StIvtStructattr::getInv_code,"") + .set(StIvtStructattr::getStoragevehicle_code, StringUtils.isNotEmpty(form.getString("storagevehicle_code"))?form.getString("storagevehicle_code"):"")); + } + if (StringUtils.isNotEmpty(form.getString("storagevehicle_code"))){ + // 更新载具扩展属性 - 释放载具对应物料关系 清空数量 + iMdPbStoragevehicleextService.update( + new MdPbStoragevehicleext() + .setMaterial_id("") + .setStorage_qty(BigDecimal.valueOf(0)), + new QueryWrapper().lambda() + .eq(MdPbStoragevehicleext::getStoragevehicle_code,form.getString("storagevehicle_code")) + ); + } + } + @Override @Transactional public StIvtStructivtBcp autoConfirmout(JSONObject form) { diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java index 542a4033..11e004b3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/semimanage/service/iostorInv/impl/StIvtIostorinvBcpServiceImpl.java @@ -26,6 +26,8 @@ import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.ext_manage.acs.service.WmsToAcsService; +import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService; import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext; @@ -37,6 +39,7 @@ import org.nl.wms.scheduler_manage.service.extendtask.manage.TaskStatusEnum; import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; import org.nl.wms.storage_manage.IOSEnum; +import org.nl.wms.storage_manage.IVTEnum; import org.nl.wms.storage_manage.basedata.service.record.service.IStIvtStructivtflowService; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; @@ -55,6 +58,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; import java.util.List; import java.util.Map; import java.util.function.Consumer; @@ -85,6 +89,8 @@ public class StIvtIostorinvBcpServiceImpl extends ServiceImpl() + .eq("material_code",form.getString("material_code"))); + if (mdMeMaterialbase==null){ + throw new BadRequestException("物料编码不正确"+form.getString("material_code")); + } + //新增库存 + StIvtStructivtBcp ivtDao = StIvtStructivtBcp.builder() + .struct_id(form.getString("struct_id")) + .struct_code(form.getString("struct_code")) + .struct_name(form.getString("struct_name")) + .material_id(mdMeMaterialbase.getMaterial_id()) + .quality_scode(IVTEnum.QUALITY_SCODE.code("合格品")) + .pcsn(DateUtil.today()) + .ivt_level(IVTEnum.IVT_LEVEL.code("一级")) + .is_active(true) + .qty_unit_id(mdMeMaterialbase.getBase_unit_id()) + .instorage_time(DateUtil.now()) + .stor_id(form.getString("stor_id")) + .canuse_qty(form.getBigDecimal("qty")) + .workshop_id(stor.getProduct_area()) + .unit_weight(mdMeMaterialbase.getNet_weight()) + .build(); + structivtBcpService.save(ivtDao); + // 插入库存变动记录 + JSONObject param = JSONObject.parseObject(JSON.toJSONString(ivtDao)); + param.put("change_type", ChangeIvtUtil.SUBWAREHOUSING_ADDIVT_QTY); + param.put("change_qty", ivtDao.getCanuse_qty()); + param.put("result_qty", ivtDao.getCanuse_qty()); + param.put("bill_code",""); + param.put("inv_id",""); + param.put("bill_type_scode",""); + iStIvtStructivtflowService.insetIvtChange(param); + //维护载具 + structattrService.update(new UpdateWrapper().lambda() + .eq(StIvtStructattr::getStruct_code, form.getString("struct_code")) + .set(StIvtStructattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定")) + .set(StIvtStructattr::getInv_code, "") + .set(StIvtStructattr::getStoragevehicle_code, form.getString("storagevehicle_code"))); + } + @Override @Transactional public String confirm(JSONObject form) { diff --git a/mes/qd/src/views/wms/masterdata_manage/st/struct/index.vue b/mes/qd/src/views/wms/masterdata_manage/st/struct/index.vue index fd499f9d..0ab76590 100644 --- a/mes/qd/src/views/wms/masterdata_manage/st/struct/index.vue +++ b/mes/qd/src/views/wms/masterdata_manage/st/struct/index.vue @@ -85,15 +85,6 @@ - - - - - @@ -103,7 +94,7 @@ @@ -317,7 +308,7 @@ :data="scope.row" :permission="permission" /> - 仓位设置 + 仓位设置 @@ -492,10 +483,11 @@ export default { form.cascader = val }, setStructMaterial(data){ - console.log(data) crudStructattr.setMaterial(data).then(res => { this.crud.toQuery() this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS) + this.closeView() + crud.refresh() }) }, setMaterValue(row) {