From 5c431522e18020c5894637034982b2f3f229fdce Mon Sep 17 00:00:00 2001 From: zhangzq Date: Thu, 24 Jul 2025 20:23:38 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=85=A5=E5=BA=93=20add:=E5=87=BA=E5=85=A5?= =?UTF-8?q?=E5=BA=93=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/GroupController.java | 38 ++++ .../controller/SectattrController.java | 5 + .../service/ISectattrService.java | 1 + .../service/IStructattrService.java | 7 + .../service/dto/StrategyStructParam.java | 1 + .../service/dto/StructattrChangeDto.java | 18 ++ .../service/impl/SectattrServiceImpl.java | 60 ++++- .../service/impl/StructattrServiceImpl.java | 67 ++++++ .../impl/base/AlleyAveRuleHandler.java | 2 +- .../StIvtStructivtflowController.java | 35 +++ .../service/IStIvtStructivtflowService.java | 19 ++ .../service/dao/StIvtStructivtflow.java | 113 ++++++++++ .../dao/mapper/StIvtStructivtflowMapper.java | 23 ++ .../mapper/xml/StIvtStructivtflowMapper.xml | 39 ++++ .../service/dto/StructIvtFlowQuery.java | 18 ++ .../impl/StIvtStructivtflowServiceImpl.java | 37 +++ .../impl/RawAssistIStorServiceImpl.java | 22 +- .../main/resources/config/application-dev.yml | 4 +- .../src/views/wms/basedata/group/index.vue | 212 +++++++++++++----- .../wms/basedata/material/MaterialDialog.vue | 153 +++++++++++++ .../views/wms/basedata/sectattr/sectattr.js | 11 +- .../src/views/wms/st/inbill/AddDialog.vue | 1 + .../src/views/wms/st/inbill/DivDialog.vue | 6 +- .../wms/statement/record/curdStructIvtFlow.js | 28 +++ .../src/views/wms/statement/record/index.vue | 178 +++++++++++++++ 25 files changed, 1024 insertions(+), 74 deletions(-) create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StructattrChangeDto.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/controller/StIvtStructivtflowController.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/IStIvtStructivtflowService.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/StIvtStructivtflow.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/mapper/StIvtStructivtflowMapper.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/mapper/xml/StIvtStructivtflowMapper.xml create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dto/StructIvtFlowQuery.java create mode 100644 nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/impl/StIvtStructivtflowServiceImpl.java create mode 100644 nladmin-ui/src/views/wms/basedata/material/MaterialDialog.vue create mode 100644 nladmin-ui/src/views/wms/statement/record/curdStructIvtFlow.js create mode 100644 nladmin-ui/src/views/wms/statement/record/index.vue diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java index 927fee4..75c9687 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/GroupController.java @@ -1,14 +1,25 @@ package org.nl.wms.basedata_manage.controller; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.common.base.TableDataInfo; import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; import org.nl.common.logging.annotation.Log; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService; +import org.nl.wms.warehouse_management.enums.IOSEnum; import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.util.Assert; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -33,12 +44,39 @@ public class GroupController { @Resource private final IMdPbGroupplateService iMdPbGroupplateService; + @Autowired + private IMdPbStoragevehicleinfoService iMdPbStoragevehicleinfoService; + @GetMapping @Log("分页查询") public ResponseEntity query(@RequestParam Map whereJson, PageQuery page) { return new ResponseEntity<>(TableDataInfo.build(iMdPbGroupplateService.queryAll(whereJson, page)), HttpStatus.OK); } + @PostMapping + @Log("新增组盘组盘") + public ResponseEntity create(@RequestBody JSONObject group) { + Assert.noNullElements(new Object[]{group,group.get("material_id"),group.get("storagevehicle_code"),group.get("qty")},"请求参数不能为空"); + GroupPlate groupPlate = group.toJavaObject(GroupPlate.class); + String storagevehicleCode = groupPlate.getStoragevehicle_code(); + { + iMdPbStoragevehicleinfoService.getByCode(storagevehicleCode); + int has = iMdPbGroupplateService.count(new LambdaUpdateWrapper() + .eq(GroupPlate::getStoragevehicle_code, groupPlate.getStoragevehicle_code()) + .lt(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("出库"))); + if (has>0){ + throw new BadRequestException("当前载具组盘信息已存在"); + } + } + groupPlate.setGroup_id(IdUtil.getStringId()); + groupPlate.setCreate_id(SecurityUtils.getCurrentUserId()); + groupPlate.setCreate_name(SecurityUtils.getCurrentUsername()); + groupPlate.setCreate_time(DateUtil.now()); + groupPlate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("组盘")); + iMdPbGroupplateService.save(groupPlate); + return new ResponseEntity<>(HttpStatus.OK); + } + @DeleteMapping @Log("删除组盘") public ResponseEntity delete(@RequestBody Set ids) { diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/SectattrController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/SectattrController.java index d0a99ff..718600b 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/SectattrController.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/SectattrController.java @@ -64,6 +64,11 @@ public class SectattrController { public ResponseEntity querySect(@RequestParam Map whereJson) { return new ResponseEntity<>(iSectattrService.getSect(whereJson), HttpStatus.OK); } + @GetMapping("/getSectCode") + @Log("查询库区下拉框") + public ResponseEntity querySectCode(@RequestParam Map whereJson) { + return new ResponseEntity<>(iSectattrService.getSectCode(whereJson), HttpStatus.OK); + } @PutMapping("/changeActive") @Log("修改库区状态") diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/ISectattrService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/ISectattrService.java index d2f595e..a686c53 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/ISectattrService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/ISectattrService.java @@ -59,6 +59,7 @@ public interface ISectattrService extends IService { void deleteAll(String[] ids); JSONObject getSect(Map whereJson); + JSONObject getSectCode(Map whereJson); /** * 改变启用状态 diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IStructattrService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IStructattrService.java index 5303c11..e296a06 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IStructattrService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IStructattrService.java @@ -7,6 +7,7 @@ import org.nl.common.domain.query.PageQuery; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.StructattrVechielDto; import org.nl.wms.basedata_manage.service.dto.StrategyStructParam; +import org.nl.wms.basedata_manage.service.dto.StructattrChangeDto; import java.util.List; import java.util.Map; @@ -120,4 +121,10 @@ public interface IStructattrService extends IService { * 入库规则 */ List inBoundSectDiv(StrategyStructParam param); + + /** + * 生成库存变动记录表,更新载具冻结数量 + * @param changeDto + */ + void changeStruct(StructattrChangeDto changeDto); } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StrategyStructParam.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StrategyStructParam.java index 72ba054..e2504e5 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StrategyStructParam.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StrategyStructParam.java @@ -20,6 +20,7 @@ public class StrategyStructParam { * 仓位编码 */ private String stor_code; + private String storagevehicle_code; /** * 物料标识 diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StructattrChangeDto.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StructattrChangeDto.java new file mode 100644 index 0000000..8cbc408 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dto/StructattrChangeDto.java @@ -0,0 +1,18 @@ +package org.nl.wms.basedata_manage.service.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class StructattrChangeDto { + String inv; + String structCode; + String storagevehicleCode; + Boolean inBound; + String taskType; +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/SectattrServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/SectattrServiceImpl.java index 837b583..3f0d641 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/SectattrServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/SectattrServiceImpl.java @@ -152,7 +152,6 @@ public class SectattrServiceImpl extends ServiceImpl i @Override public JSONObject getSect(Map whereJson) { JSONArray new_ja = new JSONArray(); - String is_materialstore = (String) whereJson.get("is_materialstore"); String is_virtualstore = (String) whereJson.get("is_virtualstore"); String is_semi_finished = (String) whereJson.get("is_semi_finished"); @@ -209,6 +208,65 @@ public class SectattrServiceImpl extends ServiceImpl i return jo; } + @Override + public JSONObject getSectCode(Map whereJson) { + JSONArray new_ja = new JSONArray(); + String is_materialstore = (String) whereJson.get("is_materialstore"); + String is_virtualstore = (String) whereJson.get("is_virtualstore"); + String is_semi_finished = (String) whereJson.get("is_semi_finished"); + String is_productstore = (String) whereJson.get("is_productstore"); + String is_attachment = (String) whereJson.get("is_attachment"); + String is_reversed = (String) whereJson.get("is_reversed"); + String sect_type_attr = (String) whereJson.get("sect_type_attr"); + String stor_id = (String) whereJson.get("stor_id"); + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(BsrealStorattr.class) + .select(BsrealStorattr::getStor_id, BsrealStorattr::getStor_code, BsrealStorattr::getStor_name) + .eq(StrUtil.isNotEmpty(is_materialstore),BsrealStorattr::getIs_materialstore,is_materialstore) + .eq(StrUtil.isNotEmpty(is_virtualstore),BsrealStorattr::getIs_virtualstore,is_virtualstore) + .eq(StrUtil.isNotEmpty(is_semi_finished),BsrealStorattr::getIs_materialstore,is_semi_finished) + .eq(StrUtil.isNotEmpty(is_productstore),BsrealStorattr::getIs_materialstore,is_productstore) + .eq(StrUtil.isNotEmpty(is_attachment),BsrealStorattr::getIs_materialstore,is_attachment) + .eq(StrUtil.isNotEmpty(is_reversed),BsrealStorattr::getIs_materialstore,is_reversed) + .eq(StrUtil.isNotEmpty(stor_id),BsrealStorattr::getStor_id,stor_id) + .eq(BsrealStorattr::getIs_delete, BaseDataEnum.IS_YES_NOT.code("否")) + .eq(BsrealStorattr::getIs_used, BaseDataEnum.IS_YES_NOT.code("是") + ); + + List bsrealStorattrList = iBsrealStorattrService.list(queryWrapper); + + for (int i = 0; i < bsrealStorattrList.size(); i++) { + BsrealStorattr stor_jo = bsrealStorattrList.get(i); + JSONObject stor_cas = new JSONObject(); + stor_cas.put("value", stor_jo.getStor_code()); + stor_cas.put("label", stor_jo.getStor_name()); + + List sectattrList = sectattrMapper.selectList(new LambdaQueryWrapper<>(Sectattr.class) + .select(Sectattr::getSect_id,Sectattr::getSect_code,Sectattr::getSect_name) + .eq(StrUtil.isNotEmpty(stor_jo.getStor_id()),Sectattr::getStor_code,stor_jo.getStor_code()) + .eq(StrUtil.isNotEmpty(sect_type_attr),Sectattr::getSect_type_attr,sect_type_attr) + .eq(Sectattr::getIs_delete,BaseDataEnum.IS_YES_NOT.code("否")) + .eq(Sectattr::getIs_used, BaseDataEnum.IS_YES_NOT.code("是")) + ); + + if (!sectattrList.isEmpty()) { + JSONArray sect_ja = new JSONArray(); + for (int j = 0; j < sectattrList.size(); j++) { + Sectattr sect_jo = sectattrList.get(j); + JSONObject sect_cas = new JSONObject(); + sect_cas.put("value", sect_jo.getSect_code()); + sect_cas.put("label", sect_jo.getSect_name()); + sect_ja.add(sect_cas); + } + stor_cas.put("children", sect_ja); + } + new_ja.add(stor_cas); + } + JSONObject jo = new JSONObject(); + jo.put("content", new_ja); + return jo; + } + @Override @Transactional(rollbackFor = Exception.class) public void changeActive(JSONObject json) { diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java index bc8e969..19f24c3 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java @@ -31,11 +31,16 @@ import org.nl.wms.basedata_manage.service.dao.StructattrVechielDto; import org.nl.wms.basedata_manage.service.dao.mapper.StructattrMapper; import org.nl.wms.basedata_manage.service.dto.StrategyStructMaterialVO; import org.nl.wms.basedata_manage.service.dto.StrategyStructParam; +import org.nl.wms.basedata_manage.service.dto.StructattrChangeDto; import org.nl.wms.decision_manage.service.sectStrategy.IStSectStrategyService; import org.nl.wms.decision_manage.service.sectStrategy.dao.StSectStrategy; import org.nl.wms.decision_manage.service.strategyConfig.decisioner.Decisioner; import org.nl.wms.sch_manage.enums.StatusEnum; import org.nl.wms.warehouse_management.enums.IOSEnum; +import org.nl.wms.warehouse_management.record.service.IStIvtStructivtflowService; +import org.nl.wms.warehouse_management.record.service.dao.StIvtStructivtflow; +import org.nl.wms.warehouse_management.service.IMdPbGroupplateService; +import org.nl.wms.warehouse_management.service.dao.GroupPlate; import org.nl.wms.warehouse_management.service.dao.IOStorInv; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -73,6 +78,12 @@ public class StructattrServiceImpl extends ServiceImpl queryAll(Map whereJson, PageQuery page) { @@ -403,4 +414,60 @@ public class StructattrServiceImpl extends ServiceImpl wrapper = new UpdateWrapper() + .set("update_time", now) + .set("lock_type", IOSEnum.LOCK_TYPE.code("未锁定")) + .set("storagevehicle_code", changeDto.getStoragevehicleCode()) + .eq("struct_code", changeDto.getStructCode()); + //如果是整出 + if (!changeDto.getInBound()) { + wrapper.set("storagevehicle_code", null); + } + this.update(wrapper); + List groupPlates = iMdPbGroupplateService.list(new QueryWrapper() + .eq("storagevehicle_code", changeDto.getStoragevehicleCode()) + .lt("status", IOSEnum.GROUP_PLATE_STATUS.code("出库"))); + List records = new ArrayList<>(); + //更新冻结数量 + Structattr structattr = this.getByCode(changeDto.getStructCode()); + for (GroupPlate vehicleMater : groupPlates) { + String vehicleCode = vehicleMater.getStoragevehicle_code(); + BigDecimal subtract = vehicleMater.getQty().subtract(vehicleMater.getFrozen_qty()); + //100-出50 = 50 + //如果出库是手持库出确认则不在这边变动组盘信息 + if (!changeDto.getInBound()){ + UpdateWrapper update = new UpdateWrapper() + .set("frozen_qty", 0) + .set("qty", subtract) + .set("update_time", now) + .set("status", IOSEnum.GROUP_PLATE_STATUS.code("组盘")) + .eq("group_id", vehicleMater.getGroup_id()); + iMdPbGroupplateService.update(update); + } + StIvtStructivtflow record = new StIvtStructivtflow(); + record.setId(IdUtil.getStringId()); + record.setUpdate_time(now); + record.setVehicle_code(vehicleCode); + record.setMaterial_id(vehicleMater.getMaterial_id()); + record.setPcsn(vehicleMater.getPcsn()); + record.setQty(vehicleMater.getQty()); + record.setChange_qty(subtract); + record.setTask_type(changeDto.getTaskType()); + record.setFrozen_qty(vehicleMater.getFrozen_qty()); + record.setSource_form_id(changeDto.getInv()); + record.setUnit_id(vehicleMater.getQty_unit_id()); + record.setStruct_code(changeDto.getStructCode()); + record.setStor_code(structattr.getStor_code()); + record.setSect_code(structattr.getSect_code()); + record.setGrowth(changeDto.getInBound()); + records.add(record); + } + if (!CollectionUtils.isEmpty(records)){ + stIvtStructivtflowService.saveBatch(records); + } + } } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/base/AlleyAveRuleHandler.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/base/AlleyAveRuleHandler.java index fdcdb8d..2fa2033 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/base/AlleyAveRuleHandler.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/decision_manage/service/strategyConfig/decisioner/impl/base/AlleyAveRuleHandler.java @@ -46,7 +46,7 @@ public class AlleyAveRuleHandler extends Decisioner { public List handler(List list, JSONObject param) { // 判断仓位是否为空 if (CollectionUtils.isEmpty(list)) { - throw new BadRequestException("均衡策略结果:载具号:" + param.getString("vehicle_code") + "当前分配策略无可用货位"); + throw new BadRequestException("均衡策略结果:载具号:" + param.getString("storagevehicle_code") + "当前分配策略无可用货位"); } long startTime1 = System.currentTimeMillis(); /** diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/controller/StIvtStructivtflowController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/controller/StIvtStructivtflowController.java new file mode 100644 index 0000000..87aabc8 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/controller/StIvtStructivtflowController.java @@ -0,0 +1,35 @@ +package org.nl.wms.warehouse_management.record.controller; + + +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.warehouse_management.record.service.IStIvtStructivtflowService; +import org.nl.wms.warehouse_management.record.service.dto.StructIvtFlowQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 仓位库存变动记录表 前端控制器 + *

+ * + * @author generator + * @since 2024-05-23 + */ +@RestController +@RequestMapping("/api/stIvtStructivtflow") +public class StIvtStructivtflowController { + + @Autowired + private IStIvtStructivtflowService stIvtStructivtflowService; + + @GetMapping + public ResponseEntity query(StructIvtFlowQuery query, PageQuery page) { + return new ResponseEntity<>(stIvtStructivtflowService.pageQuery(query, page), HttpStatus.OK); + } +} + diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/IStIvtStructivtflowService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/IStIvtStructivtflowService.java new file mode 100644 index 0000000..a3df2cd --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/IStIvtStructivtflowService.java @@ -0,0 +1,19 @@ +package org.nl.wms.warehouse_management.record.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.warehouse_management.record.service.dao.StIvtStructivtflow; +import org.nl.wms.warehouse_management.record.service.dto.StructIvtFlowQuery; + +/** + *

+ * 仓位库存变动记录表 服务类 + *

+ * + * @author generator + * @since 2024-05-23 + */ +public interface IStIvtStructivtflowService extends IService { + + Object pageQuery(StructIvtFlowQuery query, PageQuery page); +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/StIvtStructivtflow.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/StIvtStructivtflow.java new file mode 100644 index 0000000..b59d025 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/StIvtStructivtflow.java @@ -0,0 +1,113 @@ +package org.nl.wms.warehouse_management.record.service.dao; + +import java.math.BigDecimal; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nl.common.domain.handler.FastjsonSortTypeHandler; + +/** + *

+ * 仓位库存变动记录表 + *

+ * + * @author generator + * @since 2024-05-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName(value = "st_ivt_structivtflow", autoResultMap = true) +public class StIvtStructivtflow implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 记录标识 + */ + @TableId + private String id; + + /** + * 仓库编码 + */ + private String stor_code; + /** + * 库区编码 + */ + private String sect_code; + /** + * 仓位编码 + */ + private String struct_code; + + /** + * 载具编码 + */ + private String vehicle_code; + /** + * 物料标识 + */ + private String material_id; + + /** + * 批次 + */ + private String pcsn; + + /** + * 总库存 + */ + private BigDecimal qty; + /** + * 变动库存 + */ + private BigDecimal change_qty; + + /** + * 冻结库存 + */ + private BigDecimal frozen_qty; + + /** + * 载具物料参数 + */ + @TableField(typeHandler = FastjsonSortTypeHandler.class) + private JSONObject vehicle_form_data; + + /** + * 单据编号 + */ + private String source_form_type; + + /** + * 单据表名 + */ + private String source_form_id; + + /** + * 变动类型1入库0出库 + */ + private String task_type; + + /** + * 数量计量单位标识 + */ + private String unit_id; + + /** + * 变动时间 + */ + private String update_time; + + /** + * 库存增加 + */ + private Boolean growth; + +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/mapper/StIvtStructivtflowMapper.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/mapper/StIvtStructivtflowMapper.java new file mode 100644 index 0000000..a8ea011 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/mapper/StIvtStructivtflowMapper.java @@ -0,0 +1,23 @@ +package org.nl.wms.warehouse_management.record.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.warehouse_management.record.service.dao.StIvtStructivtflow; +import org.nl.wms.warehouse_management.record.service.dto.StructIvtFlowQuery; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 仓位库存变动记录表 Mapper 接口 + *

+ * + * @author generator + * @since 2024-05-23 + */ +public interface StIvtStructivtflowMapper extends BaseMapper { + + List getPageQuery(@Param("query") StructIvtFlowQuery query, PageQuery pageQuery); +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/mapper/xml/StIvtStructivtflowMapper.xml b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/mapper/xml/StIvtStructivtflowMapper.xml new file mode 100644 index 0000000..e91201d --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dao/mapper/xml/StIvtStructivtflowMapper.xml @@ -0,0 +1,39 @@ + + + + + diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dto/StructIvtFlowQuery.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dto/StructIvtFlowQuery.java new file mode 100644 index 0000000..bad3409 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/dto/StructIvtFlowQuery.java @@ -0,0 +1,18 @@ +package org.nl.wms.warehouse_management.record.service.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.warehouse_management.record.service.dao.StIvtStructivtflow; + +/* + * @author ZZQ + * @Date 2023/5/4 19:49 + */ +@Data +public class StructIvtFlowQuery extends BaseQuery { + + private String search; + private String material_code; + private String vehicle_code; + private String pcsn; +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/impl/StIvtStructivtflowServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/impl/StIvtStructivtflowServiceImpl.java new file mode 100644 index 0000000..baaa410 --- /dev/null +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/record/service/impl/StIvtStructivtflowServiceImpl.java @@ -0,0 +1,37 @@ +package org.nl.wms.warehouse_management.record.service.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.warehouse_management.record.service.IStIvtStructivtflowService; +import org.nl.wms.warehouse_management.record.service.dao.StIvtStructivtflow; +import org.nl.wms.warehouse_management.record.service.dao.mapper.StIvtStructivtflowMapper; +import org.nl.wms.warehouse_management.record.service.dto.StructIvtFlowQuery; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +/** + *

+ * 仓位库存变动记录表 服务实现类 + *

+ * + * @author generator + * @since 2024-05-23 + */ +@Service +public class StIvtStructivtflowServiceImpl extends ServiceImpl implements IStIvtStructivtflowService { + + @Override + public Object pageQuery(StructIvtFlowQuery query, PageQuery pageQuery) { + Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); + List mst_detail = this.baseMapper.getPageQuery(query, pageQuery); + TableDataInfo build = TableDataInfo.build(mst_detail); + build.setTotalElements(page.getTotal()); + return build; + } +} diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java index 3588cd8..eb9a5c2 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/wms/warehouse_management/service/impl/RawAssistIStorServiceImpl.java @@ -29,6 +29,7 @@ import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo; import org.nl.wms.basedata_manage.service.dao.Structattr; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleinfoMapper; import org.nl.wms.basedata_manage.service.dto.StrategyStructParam; +import org.nl.wms.basedata_manage.service.dto.StructattrChangeDto; import org.nl.wms.sch_manage.enums.StatusEnum; import org.nl.wms.sch_manage.service.dao.SchBaseTask; import org.nl.wms.sch_manage.service.util.tasks.StInTask; @@ -349,6 +350,7 @@ public class RawAssistIStorServiceImpl extends ServiceImpl updateIvtList = new ArrayList<>(); - // JSONObject jsonIvt = new JSONObject(); - // jsonIvt.put("type", IOSConstant.UPDATE_IVT_TYPE_ADD_CANUSE); - // jsonIvt.put("storagevehicle_code", ioStorInvDis.getStoragevehicle_code()); - // jsonIvt.put("material_id", ioStorInvDis.getMaterial_id()); - // jsonIvt.put("pcsn", ioStorInvDis.getPcsn()); - // jsonIvt.put("qty_unit_id", ioStorInvDis.getQty_unit_id()); - // jsonIvt.put("qty_unit_name", ioStorInvDis.getQty_unit_name()); - // jsonIvt.put("change_qty", ioStorInvDis.getPlan_qty()); - // updateIvtList.add(jsonIvt); - // iMdPbGroupPlateService.updateIvt(updateIvtList); +//库存变动 + StructattrChangeDto changeDto = StructattrChangeDto.builder() + .inv(ioStorInvDis.getIostorinv_id()) + .storagevehicleCode(ioStorInvDis.getStoragevehicle_code()) + .structCode(ioStorInvDis.getStruct_code()).taskType(task.getConfig_code()).inBound(true).build(); + iStructattrService.changeStruct(changeDto); // 查询该明细下是否还有未完成的分配明细 int countDis = ioStorInvDisMapper.selectCount(new LambdaQueryWrapper<>(IOStorInvDis.class) .eq(IOStorInvDis::getIostorinvdtl_id,ioStorInvDis.getIostorinvdtl_id()) diff --git a/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml b/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml index b1cacc2..4698aee 100644 --- a/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml +++ b/nladmin-system/nlsso-server/src/main/resources/config/application-dev.yml @@ -9,10 +9,10 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:wms_oulun}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false + url: jdbc:mysql://${DB_HOST:192.168.81.251}:${DB_PORT:3306}/${DB_NAME:wms_oulun}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false # url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:wms_oulun}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true&useSSL=false username: ${DB_USER:root} - password: ${DB_PWD:123456} + password: ${DB_PWD:P@ssw0rd.} # 初始连接数 initial-size: 15 # 最小连接数 diff --git a/nladmin-ui/src/views/wms/basedata/group/index.vue b/nladmin-ui/src/views/wms/basedata/group/index.vue index 77dd506..cd63353 100644 --- a/nladmin-ui/src/views/wms/basedata/group/index.vue +++ b/nladmin-ui/src/views/wms/basedata/group/index.vue @@ -2,63 +2,144 @@
-
- - - - - - - - - + + 物料查询: + + + + 批次查询: + + + + 载具编码: + + + + 组盘状态: + + - - - - - - + + + - -
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
@@ -106,11 +189,14 @@ import crudOperation from '@crud/CRUD.operation' import udOperation from '@crud/UD.operation' import pagination from '@crud/Pagination' import rrOperation from '@crud/RR.operation' +import MaterialDialog from '@/views/wms/basedata/material/MaterialDialog' const defaultForm = { group_id: null, storagevehicle_code: null, material_id: null, + material_name: null, + material_spec: null, pcsn: null, qty_unit_id: null, qty_unit_name: null, @@ -125,8 +211,9 @@ const defaultForm = { } export default { name: 'Group', - components: { pagination, crudOperation, rrOperation, udOperation }, + components: { pagination, MaterialDialog, crudOperation, rrOperation, udOperation }, mixins: [presenter(), header(), form(defaultForm), crud()], + tableEnums: ['md_pb_measureunit#unit_name#measure_unit_id'], // 数据字典 dicts: ['is_used', 'GROUP_STATUS'], cruds() { @@ -134,7 +221,7 @@ export default { title: '组盘记录', url: 'api/group', optShow: { - add: false, + add: true, reset: true }, idField: 'group_id', @@ -145,6 +232,7 @@ export default { data() { return { permission: {}, + materialDialog: false, classes: [], rules: { } @@ -157,6 +245,20 @@ export default { }, formattStatus(row) { return this.dict.label.GROUP_STATUS[row.status] + }, + getMaterial() { + this.materialDialog = true + }, + unitChange(row) { + const split = row.split('@') + this.form.qty_unit_id = split[0] + this.form.qty_unit_name = split[1] + }, + materialChoose(row) { + this.form.material_name = row.material_name + this.form.material_id = row.material_id + this.form.material_code = row.material_code + this.form.material_spec = row.material_spec } } } diff --git a/nladmin-ui/src/views/wms/basedata/material/MaterialDialog.vue b/nladmin-ui/src/views/wms/basedata/material/MaterialDialog.vue new file mode 100644 index 0000000..e01adf7 --- /dev/null +++ b/nladmin-ui/src/views/wms/basedata/material/MaterialDialog.vue @@ -0,0 +1,153 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/basedata/sectattr/sectattr.js b/nladmin-ui/src/views/wms/basedata/sectattr/sectattr.js index 18b511a..29c5e56 100644 --- a/nladmin-ui/src/views/wms/basedata/sectattr/sectattr.js +++ b/nladmin-ui/src/views/wms/basedata/sectattr/sectattr.js @@ -32,6 +32,15 @@ export function getSect(params) { }) } + +export function getSectCode(params) { + return request({ + url: 'api/sectattr/getSectCode', + method: 'get', + params + }) +} + export function changeActive(data) { return request({ url: 'api/sectattr/changeActive', @@ -40,4 +49,4 @@ export function changeActive(data) { }) } -export default { add, edit, del, getSect, changeActive } +export default { add, edit, del, getSect, getSectCode,changeActive } diff --git a/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue b/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue index cc7ab88..faf76a0 100644 --- a/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue +++ b/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue @@ -131,6 +131,7 @@ :header-cell-style="{background:'#f5f7fa',color:'#606266'}" > + diff --git a/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue b/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue index ed4f792..416c45f 100644 --- a/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue +++ b/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue @@ -256,7 +256,7 @@ export default { }, methods: { open() { - crudSectattr.getSect({ 'stor_id': this.storId }).then(res => { + crudSectattr.getSectCode({ 'stor_id': this.storId }).then(res => { this.sects = res.content }) crudPoint.getPointList().then(res => { @@ -312,6 +312,7 @@ export default { }, sectQueryChange(val) { this.sectProp = val + debugger if (val.length === 1) { this.stor_code = val[0] this.sect_code = '' @@ -336,6 +337,8 @@ export default { this.form.tableMater[i].sect_name = row.sect_name this.form.tableMater.splice(i, 1, this.form.tableMater[i]) // 通过splice 替换数据 触发视图更新 } + this.form.sect_code = this.sect_code + this.form.stor_code = this.stor_code crudRawAssist.divStruct(this.form).then(res => { crudRawAssist.getIODtl({ 'bill_code': this.form.dtl_row.bill_code, 'open_flag': '1' }).then(res => { this.openParam = res @@ -369,6 +372,7 @@ export default { } // 如果勾选了,直接跳后台 if (this.form.checked) { + debugger if (!this.sect_code) { this.crud.notify('请先选择区域!', CRUD.NOTIFICATION_TYPE.INFO) return diff --git a/nladmin-ui/src/views/wms/statement/record/curdStructIvtFlow.js b/nladmin-ui/src/views/wms/statement/record/curdStructIvtFlow.js new file mode 100644 index 0000000..c38c0a1 --- /dev/null +++ b/nladmin-ui/src/views/wms/statement/record/curdStructIvtFlow.js @@ -0,0 +1,28 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/stIvtStructivtflow', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/stIvtStructivtflow', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/stIvtStructivtflow', + method: 'put', + data + }) +} + + +export default {add, edit, del} diff --git a/nladmin-ui/src/views/wms/statement/record/index.vue b/nladmin-ui/src/views/wms/statement/record/index.vue new file mode 100644 index 0000000..850841e --- /dev/null +++ b/nladmin-ui/src/views/wms/statement/record/index.vue @@ -0,0 +1,178 @@ + + + + +