From 4d75b90506829e47c47d58cc7aa12f382560df33 Mon Sep 17 00:00:00 2001 From: zhangzq Date: Thu, 4 Jun 2026 10:02:18 +0800 Subject: [PATCH] =?UTF-8?q?add:=E5=A2=9E=E5=8A=A0=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E5=8D=95=E5=8A=9F=E8=83=BD=EF=BC=9B=20opt:=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=BB=84=E7=9B=98=E8=A1=A8=EF=BC=8C=E6=A0=B9=E6=8D=AE=E7=89=A9?= =?UTF-8?q?=E6=96=99=E7=BC=96=E7=A0=81=E5=AD=98=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nladmin-system/wms-server/pom.xml | 6 +- .../dao/mapper/BsrealStorattrMapper.xml | 4 +- .../service/impl/StructattrServiceImpl.java | 2 +- .../controller/MesDemandController.java | 41 +++ .../nl/wms/ext_manage/enums/EXTConstant.java | 5 + .../ext_manage/service/WmsToZDWmdService.java | 4 +- .../ext_manage/service/dto/ZDInventory.java | 28 +- .../service/impl/WmsToZDWmdServiceImpl.java | 94 +++++++ .../service/impl/PdaIosInServiceImpl.java | 4 +- .../service/impl/PdaIosOutServiceImpl.java | 2 +- .../demand/controller/PmDemandController.java | 79 ++++++ .../demand/service/IPmDemandService.java | 48 ++++ .../demand/service/dao/PmDemand.java | 66 +++++ .../service/dao/mapper/PmDemandMapper.java | 14 + .../service/dao/mapper/xml/PmDemandMapper.xml | 57 ++++ .../demand/service/dto/DemandInventryDto.java | 14 + .../demand/service/dto/PmDemandDto.java | 26 ++ .../demand/service/dto/PmDemandParam.java | 84 ++++++ .../demand/service/dto/PmDemandQuery.java | 19 ++ .../service/impl/PmDemandServiceImpl.java | 158 +++++++++++ .../controller/PmFormDataController.java | 10 +- .../service/IPmFormDataService.java | 10 +- .../{ => form}/service/dao/PmFormData.java | 2 +- .../service/dao/mapper/PmFormDataMapper.java | 8 +- .../dao/mapper/xml/PmFormDataMapper.xml | 6 +- .../{ => form}/service/dto/FormDataQuery.java | 4 +- .../{ => form}/service/dto/PmFormDataDto.java | 3 +- .../service/dto/PmFormDataParam.java | 4 +- .../service/impl/PmFormDataServiceImpl.java | 14 +- .../service/util/ForewarningTask.java | 5 +- .../system_manage/enums/SysParamConstant.java | 5 + .../service/impl/InBillServiceImpl.java | 4 +- .../service/impl/OutBillServiceImpl.java | 6 +- .../inventory/IStInventoryService.java | 15 + .../dao/mapper/StInventoryMapper.java | 17 ++ .../dao/mapper/StInventoryMapper.xml | 21 ++ .../inventory/dto/StInventoryDto.java | 78 ++++++ .../inventory/dto/StInventoryQuery.java | 18 ++ .../impl/StInventoryServiceImpl.java | 27 ++ .../service/dao/GroupPlate.java | 2 +- .../dao/mapper/MdPbGroupplateMapper.xml | 4 +- .../service/util/UpdateIvtUtils.java | 10 +- .../src/main/resources/sql/zzq_sql.sql | 38 +++ .../src/views/wms/basedata/group/group.js | 10 +- .../src/views/wms/basedata/group/index.vue | 8 +- .../src/views/wms/pm_manage/demand/demand.js | 51 ++++ .../src/views/wms/pm_manage/demand/index.vue | 262 ++++++++++++++++++ .../src/views/wms/st/inbill/AddDialog.vue | 2 +- nladmin-ui/src/views/wms/st/inbill/AddDtl.vue | 12 +- .../src/views/wms/st/inbill/DivDialog.vue | 37 ++- nladmin-ui/src/views/wms/st/inbill/index.vue | 2 +- .../src/views/wms/st/inbill/rawassist.js | 97 ------- .../src/views/wms/st/outbill/DivDialog.vue | 58 ++-- .../src/views/wms/st/outbill/StructIvt.vue | 14 +- nladmin-ui/src/views/wms/st/outbill/index.vue | 6 +- 55 files changed, 1407 insertions(+), 218 deletions(-) create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/controller/MesDemandController.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/controller/PmDemandController.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/IPmDemandService.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/PmDemand.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/PmDemandMapper.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/xml/PmDemandMapper.xml create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/DemandInventryDto.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandDto.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandParam.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandQuery.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java rename nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/{ => form}/controller/PmFormDataController.java (93%) rename nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/{ => form}/service/IPmFormDataService.java (77%) rename nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/{ => form}/service/dao/PmFormData.java (97%) rename nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/{ => form}/service/dao/mapper/PmFormDataMapper.java (77%) rename nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/{ => form}/service/dao/mapper/xml/PmFormDataMapper.xml (97%) rename nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/{ => form}/service/dto/FormDataQuery.java (88%) rename nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/{ => form}/service/dto/PmFormDataDto.java (96%) rename nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/{ => form}/service/dto/PmFormDataParam.java (95%) rename nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/{ => form}/service/impl/PmFormDataServiceImpl.java (95%) create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/IStInventoryService.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dao/mapper/StInventoryMapper.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dao/mapper/StInventoryMapper.xml create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryDto.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryQuery.java create mode 100644 nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java create mode 100644 nladmin-system/wms-server/src/main/resources/sql/zzq_sql.sql create mode 100644 nladmin-ui/src/views/wms/pm_manage/demand/demand.js create mode 100644 nladmin-ui/src/views/wms/pm_manage/demand/index.vue delete mode 100644 nladmin-ui/src/views/wms/st/inbill/rawassist.js diff --git a/nladmin-system/wms-server/pom.xml b/nladmin-system/wms-server/pom.xml index f72ff3d..fc51aab 100644 --- a/nladmin-system/wms-server/pom.xml +++ b/nladmin-system/wms-server/pom.xml @@ -59,7 +59,11 @@ jna-platform 5.6.0 - + + javax.validation + validation-api + 2.0.1.Final + net.coobird diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/BsrealStorattrMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/BsrealStorattrMapper.xml index 9d312b9..546b974 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/BsrealStorattrMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/BsrealStorattrMapper.xml @@ -24,10 +24,10 @@ FROM st_ivt_structattr LEFT JOIN md_pb_groupplate ON st_ivt_structattr.storagevehicle_code = md_pb_groupplate.storagevehicle_code - LEFT JOIN md_me_materialbase ON md_me_materialbase.material_id = md_pb_groupplate.material_id + LEFT JOIN md_me_materialbase ON md_me_materialbase.material_id = md_pb_groupplate.material_code WHERE st_ivt_structattr.storagevehicle_code IS NOT NULL - and md_pb_groupplate.material_id is not null + and md_pb_groupplate.material_code is not null and stor_code = #{storCode} GROUP BY stor_code,material_id diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java index 55349b1..487c655 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/basedata_manage/service/impl/StructattrServiceImpl.java @@ -415,7 +415,7 @@ public class StructattrServiceImpl extends ServiceImpl confirm(@RequestBody List params) { + iPmDemandService.batchCreate(params); + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/enums/EXTConstant.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/enums/EXTConstant.java index 7ae9132..67aed20 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/enums/EXTConstant.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/enums/EXTConstant.java @@ -21,4 +21,9 @@ public class EXTConstant { * ACS下发任务接口地址 */ public final static String SEND_TASK_ACS_API = "api/wms/task"; + + /** + * 中鼎查询库存接口地址 + */ + public final static String QUERY_INVENTORY_ZD_API = "/app/restful/api/v3/wms/getInventoryList"; } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/WmsToZDWmdService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/WmsToZDWmdService.java index 41cd52a..71c16e3 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/WmsToZDWmdService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/WmsToZDWmdService.java @@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSONObject; import org.nl.wms.ext_manage.service.dto.ZDInventory; import org.springframework.http.ResponseEntity; +import java.util.List; + /** *

* WMS调用中鼎服务类 @@ -33,5 +35,5 @@ public interface WmsToZDWmdService { /** * */ - ResponseEntity queryInventory(String materialCode); + ResponseEntity> queryInventory(String materialCode); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/dto/ZDInventory.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/dto/ZDInventory.java index f71b544..ca2ae48 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/dto/ZDInventory.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/dto/ZDInventory.java @@ -1,23 +1,15 @@ package org.nl.wms.ext_manage.service.dto; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +@Data public class ZDInventory { - private String id; - /** - * 物料编码 - */ - private String materialCode; - /** - * 物料名称 - */ - private String materialName; - /** - * 物料总数量 - */ - private String totalQty; - /** - * 所属仓库 - */ - private String storCode; - + private String houseCode; + private String skuCode; + private String batchNo; + private BigDecimal qty; } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java new file mode 100644 index 0000000..2f32539 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/ext_manage/service/impl/WmsToZDWmdServiceImpl.java @@ -0,0 +1,94 @@ +package org.nl.wms.ext_manage.service.impl; + +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.exception.BadRequestException; +import org.nl.config.SpringContextHolder; +import org.nl.wms.ext_manage.enums.EXTConstant; +import org.nl.wms.ext_manage.service.WmsToZDWmdService; +import org.nl.wms.ext_manage.service.dto.ZDInventory; +import org.nl.wms.system_manage.enums.SysParamConstant; +import org.nl.wms.system_manage.service.param.dao.Param; +import org.nl.wms.system_manage.service.param.impl.SysParamServiceImpl; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Service +@Slf4j +public class WmsToZDWmdServiceImpl implements WmsToZDWmdService { + + @Override + public ResponseEntity syncDemandOrder(JSONObject whereJson) { + log.info("syncDemandOrder生产领料需求单下发输入参数:-------------------" + whereJson.toString()); + String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL).getValue(); + // TODO: add demand order API path to EXTConstant once endpoint is confirmed + try { + String resultMsg = HttpRequest.post(url) + .body(whereJson.toString()) + .execute().body(); + JSONObject result = JSONObject.parseObject(resultMsg); + log.info("syncDemandOrder需求单下发输出参数:-------------------" + result.toString()); + return new ResponseEntity<>(result, HttpStatus.OK); + } catch (Exception e) { + throw new BadRequestException("中鼎需求单下发失败:" + e.getMessage()); + } + } + + @Override + public ResponseEntity syncPurchaseReceiving(JSONObject whereJson) { + log.info("syncPurchaseReceiving采购入库单下发输入参数:-------------------" + whereJson.toString()); + String url = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL).getValue(); + // TODO: add purchase receiving API path to EXTConstant once endpoint is confirmed + try { + String resultMsg = HttpRequest.post(url) + .body(whereJson.toString()) + .execute().body(); + JSONObject result = JSONObject.parseObject(resultMsg); + log.info("syncPurchaseReceiving采购入库单下发输出参数:-------------------" + result.toString()); + return new ResponseEntity<>(result, HttpStatus.OK); + } catch (Exception e) { + throw new BadRequestException("中鼎采购入库单下发失败:" + e.getMessage()); + } + } + + @Override + public ResponseEntity> queryInventory(String skuCode) { + log.info("queryInventory查询SKU库存输入参数:skuCode={}", skuCode); + Param param = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode(SysParamConstant.ZD_URL); + if (param==null){ + throw new BadRequestException("查询中鼎库存失败,接口地址未配置"); + } + String baseUrl = param.getValue(); + String url = baseUrl + EXTConstant.QUERY_INVENTORY_ZD_API; + + JSONObject requestBody = new JSONObject(); + requestBody.put("SkuCode", skuCode); + requestBody.put("HouseCode", ""); + requestBody.put("HouseCodeLis", new JSONArray()); + + try { + String resultMsg = HttpRequest.post(url) + .contentType("application/json") + .body(requestBody.toString()) + .execute().body(); + log.info("queryInventory查询SKU库存输出参数:-------------------" + resultMsg); + + JSONObject result = JSONObject.parseObject(resultMsg); + Integer respCode = result.getInteger("respCode"); + if (respCode == null || respCode != 0) { + throw new BadRequestException("中鼎库存查询失败:" + result.getString("respMsg")); + } + List inventorys = result.getJSONArray("data").toJavaList(ZDInventory.class); + return new ResponseEntity<>(inventorys, HttpStatus.OK); + } catch (BadRequestException e) { + throw e; + } catch (Exception e) { + throw new BadRequestException("中鼎库存查询异常:" + e.getMessage()); + } + } +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java index f41ccab..7f12c55 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pda_manage/ios_manage/service/impl/PdaIosInServiceImpl.java @@ -172,7 +172,7 @@ public class PdaIosInServiceImpl implements PdaIosInService { } GroupPlate groupDao = GroupPlate.builder() .group_id(IdUtil.getStringId()) - .material_id(materDao.getMaterial_code()) + .material_code(materDao.getMaterial_code()) .storagevehicle_code(vehicleDao.getStoragevehicle_code()) .pcsn(pcsn) .qty_unit_id(unitDao.getMeasure_unit_id()) @@ -449,7 +449,7 @@ public class PdaIosInServiceImpl implements PdaIosInService { ArrayList tableData = new ArrayList<>(); HashMap dtl = new HashMap<>(); GroupPlate plateDao = plateDaoList.get(0); - MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(plateDao.getMaterial_id()); + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getByCode(plateDao.getMaterial_code()); dtl.put("storagevehicle_code", plateDao.getStoragevehicle_code()); dtl.put("material_id", materDao.getMaterial_id()); dtl.put("material_code", materDao.getMaterial_code()); 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 134a2b1..2538b9f 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 @@ -192,7 +192,7 @@ public class PdaIosOutServiceImpl implements PdaIosOutService { .eq(GroupPlate::getGroup_id, whereJson.getString("group_id"))); Structattr sectDao = iStructattrService.getOne(new LambdaQueryWrapper() .eq(Structattr::getStruct_code, whereJson.getString("struct_code"))); - MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(plateDao.getMaterial_id()); + MdMeMaterialbase materDao = iMdMeMaterialbaseService.getById(plateDao.getMaterial_code()); whereJson.put("material_id", materDao.getMaterial_id()); whereJson.put("material_code", materDao.getMaterial_code()); whereJson.put("store_id", sectDao.getStor_id()); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/controller/PmDemandController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/controller/PmDemandController.java new file mode 100644 index 0000000..c673137 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/controller/PmDemandController.java @@ -0,0 +1,79 @@ +package org.nl.wms.pm_manage.demand.controller; + +import cn.dev33.satoken.annotation.SaIgnore; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.pm_manage.demand.service.IPmDemandService; +import org.nl.wms.pm_manage.demand.service.dto.DemandInventryDto; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandDto; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandParam; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandQuery; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.Arrays; +import java.util.List; + +@RestController +@RequestMapping("/api/pmDemand") +@SaIgnore +public class PmDemandController { + + @Resource + private IPmDemandService pmDemandService; + + @GetMapping + @Log("查询需求单") + public ResponseEntity queryAll(PmDemandQuery query, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(pmDemandService.queryPage(query, page)), HttpStatus.OK); + } + + @PostMapping + @Log("新增需求单") + public ResponseEntity create(@Valid @RequestBody PmDemandParam param) { + pmDemandService.create(param); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PutMapping + @Log("修改需求单") + @Transactional(rollbackFor = Exception.class) + public ResponseEntity update(@Valid @RequestBody PmDemandParam param) { + pmDemandService.update(param); + return new ResponseEntity<>(HttpStatus.OK); + } + + @DeleteMapping + @Log("删除需求单") + @Transactional(rollbackFor = Exception.class) + public ResponseEntity delete(@RequestBody String[] ids) { + List idList = Arrays.asList(ids); + pmDemandService.deleteByIds(idList); + return new ResponseEntity<>(HttpStatus.OK); + } + @GetMapping("/queryInventory") + @Log("根据需求单查询所有库存信息") + public ResponseEntity> queryInventory(String skuCode) { + return new ResponseEntity<>(pmDemandService.queryInventory(skuCode), HttpStatus.OK); + } + + @PostMapping("/allocate") + @Log("库存分配") + @Transactional(rollbackFor = Exception.class) + public ResponseEntity allocateInventory(@RequestBody PmDemandDto demand) { + pmDemandService.allocateInventory(demand.getId(), demand.getInventoryDis()); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/push") + @Log("需求单下发") + @Transactional(rollbackFor = Exception.class) + public ResponseEntity push(@RequestBody PmDemandDto pmDemandDto) { + return new ResponseEntity<>(HttpStatus.OK); + } +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/IPmDemandService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/IPmDemandService.java new file mode 100644 index 0000000..27b0383 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/IPmDemandService.java @@ -0,0 +1,48 @@ +package org.nl.wms.pm_manage.demand.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.pm_manage.demand.service.dao.PmDemand; +import org.nl.wms.pm_manage.demand.service.dto.DemandInventryDto; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandDto; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandParam; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandQuery; + +import java.util.List; + +public interface IPmDemandService extends IService { + + Page queryPage(PmDemandQuery query, PageQuery pageQuery); + + void create(PmDemandParam param); + void batchCreate(List param); + + void update(PmDemandParam param); + + void deleteByIds(List ids); + + /** + * 根据需求单查询库存信息 + * @param skuCode + * @return + */ + List queryInventory(String skuCode); + + /** + * 库存分配 + * @param id + * @param inventoryDis + */ + void allocateInventory(String id, String inventoryDis); + + /** + * 推送需求单 + * 1.需求单分配出库仓库 + * 2。如果分配给中鼎则直接将需求单推送给中鼎WMS,如果有这边出库则在WMS上生成出库单,有操作人点击自动分配,分配库存 + * 3。一个物料可能存在多个仓库,如果是平库则不生成AGV任务,如果是高架库则分配完自动生成AGV任务 + * 4。当前 + * @param pmDemandDto + */ + void pushDemand(PmDemandDto pmDemandDto); +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/PmDemand.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/PmDemand.java new file mode 100644 index 0000000..912c9c9 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/PmDemand.java @@ -0,0 +1,66 @@ +package org.nl.wms.pm_manage.demand.service.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 com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serializable; +import java.math.BigDecimal; + +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("pm_demand") +public class PmDemand extends Model { + + private static final long serialVersionUID = 1L; + + @TableId(value = "id", type = IdType.INPUT) + private String id; + + private String creator; + + @TableField("create_time") + private String create_time; + + private Integer priority; + + private Integer status; + + @TableField("work_order") + private String work_order; + + @TableField("sku_code") + private String sku_code; + + @TableField("sku_name") + private String sku_name; + + private BigDecimal qty; + + private String unit; + + @TableField("target_area") + private String target_area; + + @TableField("production_line") + private String production_line; + + private String sn; + + @TableField("create_at") + private String create_at; + + @TableField("inventory_dis") + private String inventory_dis; + + @Override + protected Serializable pkVal() { + return this.id; + } + + +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/PmDemandMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/PmDemandMapper.java new file mode 100644 index 0000000..a7e7870 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/PmDemandMapper.java @@ -0,0 +1,14 @@ +package org.nl.wms.pm_manage.demand.service.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.pm_manage.demand.service.dao.PmDemand; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandDto; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandQuery; + +import java.util.List; + +public interface PmDemandMapper extends BaseMapper { + + List queryPage(@Param("query") PmDemandQuery query); +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/xml/PmDemandMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/xml/PmDemandMapper.xml new file mode 100644 index 0000000..83e14a1 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dao/mapper/xml/PmDemandMapper.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/DemandInventryDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/DemandInventryDto.java new file mode 100644 index 0000000..442027f --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/DemandInventryDto.java @@ -0,0 +1,14 @@ +package org.nl.wms.pm_manage.demand.service.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class DemandInventryDto { + private String skuCode; + private String skuName; + private BigDecimal qty; + private String houseCode; + private String houseName; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandDto.java new file mode 100644 index 0000000..1e25947 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandDto.java @@ -0,0 +1,26 @@ +package org.nl.wms.pm_manage.demand.service.dto; + +import com.alibaba.fastjson.JSONObject; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class PmDemandDto { + + private String id; + private String creator; + private String createTime; + private Integer priority; + private Integer status; + private String workOrder; + private String skuCode; + private String skuName; + private BigDecimal qty; + private String unit; + private String targetArea; + private String productionLine; + private String sn; + private String createAt; + private String inventoryDis; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandParam.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandParam.java new file mode 100644 index 0000000..6e0a628 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandParam.java @@ -0,0 +1,84 @@ +package org.nl.wms.pm_manage.demand.service.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import lombok.Data; +import org.nl.common.domain.handler.IsoToLocalDateTimeStringDeserializer; + +import javax.validation.constraints.DecimalMin; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +/** + * MES需求单接口参数 + * 数据库字段:下划线命名 + * JSON字段:大写驼峰命名 + */ +@Data +public class PmDemandParam { + + @NotBlank(message = "单据唯一ID不能为空") + @JsonProperty("Id") + private String id; + + @NotBlank(message = "操作人不能为空") + @JsonProperty("Creator") + private String creator; + + @NotBlank(message = "需求日期不能为空") + @JsonProperty("CreateTime") + private String createTime; + + @NotNull(message = "优先级不能为空") + @JsonProperty("Priority") + private Integer priority; + + @JsonProperty("Status") + private Integer status; + + @NotBlank(message = "工单编号不能为空") + @JsonProperty("WorkOrder") + private String workOrder; + + @NotBlank(message = "物料编码不能为空") + @JsonProperty("SkuCode") + private String skuCode; + + @NotBlank(message = "物料名称不能为空") + @JsonProperty("SkuName") + private String skuName; + + @NotNull(message = "数量不能为空") + @DecimalMin(value = "0", inclusive = false, message = "数量必须大于0") + @JsonProperty("Qty") + private BigDecimal qty; + + @NotBlank(message = "单位不能为空") + @JsonProperty("Unit") + private String unit; + + @NotBlank(message = "目标库存地点不能为空") + @JsonProperty("TargetArea") + private String targetArea; + + @NotBlank(message = "产线不能为空") + @JsonProperty("ProductionLine") + private String productionLine; + + @JsonProperty("SN") + private String sn; + + @JsonProperty("MaxLoad") + private String maxLoad; + + @NotBlank(message = "目标仓别不能为空") + @JsonProperty("TargetHouseCode") + private String targetHouseCode; + + @JsonProperty("BatchNo") + private String batchNo; + + @JsonProperty("Remark") + private String remark; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandQuery.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandQuery.java new file mode 100644 index 0000000..95df90c --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/dto/PmDemandQuery.java @@ -0,0 +1,19 @@ +package org.nl.wms.pm_manage.demand.service.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.pm_manage.demand.service.dao.PmDemand; + +@Data +public class PmDemandQuery extends BaseQuery { + + private String id; + private String creator; + private Integer status; + private String workOrder; + private String skuCode; + private String productionLine; + private String targetArea; + private String startTime; + private String endTime; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java new file mode 100644 index 0000000..c1fd6e1 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/demand/service/impl/PmDemandServiceImpl.java @@ -0,0 +1,158 @@ +package org.nl.wms.pm_manage.demand.service.impl; + +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.exception.BadRequestException; +import org.nl.wms.ext_manage.service.WmsToZDWmdService; +import org.nl.wms.ext_manage.service.dto.ZDInventory; +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.dao.mapper.PmDemandMapper; +import org.nl.wms.pm_manage.demand.service.dto.DemandInventryDto; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandDto; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandParam; +import org.nl.wms.pm_manage.demand.service.dto.PmDemandQuery; +import org.nl.wms.warehouse_manage.inventory.IStInventoryService; +import org.nl.wms.warehouse_manage.inventory.dto.StInventoryDto; +import org.nl.wms.warehouse_manage.inventory.dto.StInventoryQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.ArrayList; +import java.util.List; + +import static org.nl.common.domain.query.PageQuery.trimStringFields; + +@Service +@Slf4j +public class PmDemandServiceImpl extends ServiceImpl implements IPmDemandService { + @Autowired + private IStInventoryService iStInventoryService; + @Autowired + private WmsToZDWmdService wmsToZDWmdService; + + @Override + public Page queryPage(PmDemandQuery query, PageQuery pageQuery) { + trimStringFields(query); + com.github.pagehelper.Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); + page.setOrderBy("priority desc, create_time desc"); + List records = this.baseMapper.queryPage(query); + Page dtoPage = new Page<>(page.getPageNum(), page.getPageSize(), page.getTotal()); + dtoPage.setRecords(records); + return dtoPage; + } + + @Override + public void create(PmDemandParam param) { + PmDemand demand = new PmDemand(); + demand.setId(param.getId()); + demand.setCreator(param.getCreator()); + demand.setCreate_time(param.getCreateTime()); + demand.setPriority(param.getPriority()); + demand.setStatus(param.getStatus()); + demand.setWork_order(param.getWorkOrder()); + demand.setSku_code(param.getSkuCode()); + demand.setSku_name(param.getSkuName()); + demand.setQty(param.getQty()); + demand.setUnit(param.getUnit()); + demand.setTarget_area(param.getTargetArea()); + demand.setProduction_line(param.getProductionLine()); + demand.setSn(param.getSn()); + demand.setCreate_at(DateUtil.now()); + this.save(demand); + } + + @Override + public void batchCreate(List param) { + for (PmDemandParam pmDemandParam : param) { + this.create(pmDemandParam); + } + } + + @Override + public void update(PmDemandParam param) { + PmDemand dbDemand = this.getById(param.getId()); + if (dbDemand == null) { + throw new BadRequestException("需求单不存在"); + } + PmDemand demand = new PmDemand(); + demand.setId(param.getId()); + demand.setCreator(param.getCreator()); + demand.setCreate_time(param.getCreateTime()); + demand.setPriority(param.getPriority()); + demand.setStatus(param.getStatus()); + demand.setWork_order(param.getWorkOrder()); + demand.setSku_code(param.getSkuCode()); + demand.setSku_name(param.getSkuName()); + demand.setQty(param.getQty()); + demand.setUnit(param.getUnit()); + demand.setTarget_area(param.getTargetArea()); + demand.setProduction_line(param.getProductionLine()); + demand.setSn(param.getSn()); + demand.setCreate_at(dbDemand.getCreate_at()); + this.updateById(demand); + } + + @Override + public void deleteByIds(List ids) { + if (CollectionUtils.isEmpty(ids)) { + return; + } + this.removeByIds(ids); + } + + + @Override + public void allocateInventory(String id, String inventoryDis) { + PmDemand demand = this.getById(id); + if (demand == null) { + throw new BadRequestException("需求单不存在"); + } + demand.setInventory_dis(inventoryDis); + demand.setStatus(1); + this.updateById(demand); + } + + @Override + public List queryInventory(String skuCode) { + List resultList = new ArrayList<>(); + List inventoryDtos = iStInventoryService.queryInventory(StInventoryQuery.builder().materialCode(skuCode).build()); + if (!CollectionUtils.isEmpty(inventoryDtos)) { + for (StInventoryDto dto : inventoryDtos) { + DemandInventryDto demandDto = new DemandInventryDto(); + demandDto.setSkuCode(dto.getMaterialCode()); + demandDto.setSkuName(dto.getMaterialName()); + demandDto.setQty(dto.getQty()); + demandDto.setHouseCode(dto.getStructCode()); + demandDto.setHouseName(dto.getStorName()); + resultList.add(demandDto); + } + } + ResponseEntity> responseEntity = wmsToZDWmdService.queryInventory(skuCode); + List zdInventorys = responseEntity.getBody(); + if (!CollectionUtils.isEmpty(zdInventorys)) { + for (ZDInventory item : zdInventorys) { + DemandInventryDto demandDto = new DemandInventryDto(); + demandDto.setSkuCode(item.getSkuCode()); + demandDto.setSkuName(null); + demandDto.setQty(item.getQty()); + demandDto.setHouseCode(item.getHouseCode()); + demandDto.setHouseName(null); + resultList.add(demandDto); + } + } + return resultList; + } + + + @Override + public void pushDemand(PmDemandDto pmDemandDto) { + + } +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/controller/PmFormDataController.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/controller/PmFormDataController.java similarity index 93% rename from nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/controller/PmFormDataController.java rename to nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/controller/PmFormDataController.java index 85a0b22..70e4042 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/controller/PmFormDataController.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/controller/PmFormDataController.java @@ -1,4 +1,4 @@ -package org.nl.wms.pm_manage.controller; +package org.nl.wms.pm_manage.form.controller; import cn.dev33.satoken.annotation.SaIgnore; import cn.hutool.core.date.DateUtil; @@ -9,10 +9,10 @@ import org.apache.commons.lang3.ObjectUtils; import org.nl.common.base.TableDataInfo; import org.nl.common.domain.query.PageQuery; import org.nl.common.logging.annotation.Log; -import org.nl.wms.pm_manage.service.IPmFormDataService; -import org.nl.wms.pm_manage.service.dao.PmFormData; -import org.nl.wms.pm_manage.service.dto.PmFormDataParam; -import org.nl.wms.pm_manage.service.dto.FormDataQuery; +import org.nl.wms.pm_manage.form.service.IPmFormDataService; +import org.nl.wms.pm_manage.form.service.dao.PmFormData; +import org.nl.wms.pm_manage.form.service.dto.PmFormDataParam; +import org.nl.wms.pm_manage.form.service.dto.FormDataQuery; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/IPmFormDataService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/IPmFormDataService.java similarity index 77% rename from nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/IPmFormDataService.java rename to nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/IPmFormDataService.java index 7f84394..8363240 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/IPmFormDataService.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/IPmFormDataService.java @@ -1,13 +1,13 @@ -package org.nl.wms.pm_manage.service; +package org.nl.wms.pm_manage.form.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.common.domain.query.PageQuery; -import org.nl.wms.pm_manage.service.dao.PmFormData; -import org.nl.wms.pm_manage.service.dto.PmFormDataDto; -import org.nl.wms.pm_manage.service.dto.PmFormDataParam; -import org.nl.wms.pm_manage.service.dto.FormDataQuery; +import org.nl.wms.pm_manage.form.service.dao.PmFormData; +import org.nl.wms.pm_manage.form.service.dto.PmFormDataDto; +import org.nl.wms.pm_manage.form.service.dto.PmFormDataParam; +import org.nl.wms.pm_manage.form.service.dto.FormDataQuery; import java.util.List; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dao/PmFormData.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dao/PmFormData.java similarity index 97% rename from nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dao/PmFormData.java rename to nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dao/PmFormData.java index d4e551a..4e3fe61 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dao/PmFormData.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dao/PmFormData.java @@ -1,4 +1,4 @@ -package org.nl.wms.pm_manage.service.dao; +package org.nl.wms.pm_manage.form.service.dao; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/PmFormDataMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dao/mapper/PmFormDataMapper.java similarity index 77% rename from nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/PmFormDataMapper.java rename to nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dao/mapper/PmFormDataMapper.java index 8150051..cc455e2 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/PmFormDataMapper.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dao/mapper/PmFormDataMapper.java @@ -1,11 +1,11 @@ -package org.nl.wms.pm_manage.service.dao.mapper; +package org.nl.wms.pm_manage.form.service.dao.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; -import org.nl.wms.pm_manage.service.dao.PmFormData; -import org.nl.wms.pm_manage.service.dto.FormDataQuery; -import org.nl.wms.pm_manage.service.dto.PmFormDataDto; +import org.nl.wms.pm_manage.form.service.dao.PmFormData; +import org.nl.wms.pm_manage.form.service.dto.FormDataQuery; +import org.nl.wms.pm_manage.form.service.dto.PmFormDataDto; import java.math.BigDecimal; import java.util.List; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/xml/PmFormDataMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dao/mapper/xml/PmFormDataMapper.xml similarity index 97% rename from nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/xml/PmFormDataMapper.xml rename to nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dao/mapper/xml/PmFormDataMapper.xml index 6117b92..68f6594 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dao/mapper/xml/PmFormDataMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dao/mapper/xml/PmFormDataMapper.xml @@ -1,8 +1,8 @@ - + - + @@ -29,7 +29,7 @@ - + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dto/FormDataQuery.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dto/FormDataQuery.java similarity index 88% rename from nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dto/FormDataQuery.java rename to nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dto/FormDataQuery.java index 4ddf818..bf8bf5e 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dto/FormDataQuery.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dto/FormDataQuery.java @@ -1,10 +1,10 @@ -package org.nl.wms.pm_manage.service.dto; +package org.nl.wms.pm_manage.form.service.dto; import lombok.Data; import org.nl.common.domain.query.BaseQuery; import org.nl.common.domain.query.QParam; import org.nl.common.enums.QueryTEnum; -import org.nl.wms.pm_manage.service.dao.PmFormData; +import org.nl.wms.pm_manage.form.service.dao.PmFormData; import java.util.Map; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dto/PmFormDataDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dto/PmFormDataDto.java similarity index 96% rename from nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dto/PmFormDataDto.java rename to nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dto/PmFormDataDto.java index 1ff2935..af3f474 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dto/PmFormDataDto.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dto/PmFormDataDto.java @@ -1,6 +1,5 @@ -package org.nl.wms.pm_manage.service.dto; +package org.nl.wms.pm_manage.form.service.dto; -import com.alibaba.fastjson.JSONObject; import lombok.Data; import org.springframework.util.CollectionUtils; import java.io.Serializable; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dto/PmFormDataParam.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dto/PmFormDataParam.java similarity index 95% rename from nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dto/PmFormDataParam.java rename to nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dto/PmFormDataParam.java index 60070b1..b12c052 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/dto/PmFormDataParam.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/dto/PmFormDataParam.java @@ -1,11 +1,11 @@ -package org.nl.wms.pm_manage.service.dto; +package org.nl.wms.pm_manage.form.service.dto; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import lombok.*; import org.nl.common.domain.handler.IsoToLocalDateTimeStringDeserializer; import org.nl.common.domain.query.BaseQuery; -import org.nl.wms.pm_manage.service.dao.PmFormData; +import org.nl.wms.pm_manage.form.service.dao.PmFormData; import java.math.BigDecimal; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/impl/PmFormDataServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/impl/PmFormDataServiceImpl.java similarity index 95% rename from nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/impl/PmFormDataServiceImpl.java rename to nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/impl/PmFormDataServiceImpl.java index 561aa7a..7806af7 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/service/impl/PmFormDataServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/pm_manage/form/service/impl/PmFormDataServiceImpl.java @@ -1,4 +1,4 @@ -package org.nl.wms.pm_manage.service.impl; +package org.nl.wms.pm_manage.form.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; @@ -20,15 +20,15 @@ import org.nl.wms.basedata_manage.service.IBsrealStorattrService; import org.nl.wms.basedata_manage.service.IMdPbMeasureunitService; import org.nl.wms.basedata_manage.service.dao.BsrealStorattr; import org.nl.wms.basedata_manage.service.dao.MdPbMeasureunit; -import org.nl.wms.pm_manage.service.dao.PmFormData; -import org.nl.wms.pm_manage.service.dao.mapper.PmFormDataMapper; -import org.nl.wms.pm_manage.service.dto.FormDataQuery; -import org.nl.wms.pm_manage.service.dto.PmFormDataDto; -import org.nl.wms.pm_manage.service.dto.PmFormDataParam; +import org.nl.wms.pm_manage.form.service.dao.PmFormData; +import org.nl.wms.pm_manage.form.service.dao.mapper.PmFormDataMapper; +import org.nl.wms.pm_manage.form.service.dto.FormDataQuery; +import org.nl.wms.pm_manage.form.service.dto.PmFormDataDto; +import org.nl.wms.pm_manage.form.service.dto.PmFormDataParam; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.Assert; -import org.nl.wms.pm_manage.service.IPmFormDataService; +import org.nl.wms.pm_manage.form.service.IPmFormDataService; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/util/ForewarningTask.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/util/ForewarningTask.java index 6ea29a0..3b415cc 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/util/ForewarningTask.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/sch_manage/service/util/ForewarningTask.java @@ -20,7 +20,6 @@ import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; import java.time.LocalDateTime; @@ -132,7 +131,7 @@ public class ForewarningTask { // 计算安全库存数量 BigDecimal totalQty = mdPbStoragevehicleextDtoStructs.stream() .filter(a -> config.getStor_code().equals(a.getStor_code()) - && material.getMaterial_id().equals(a.getMaterial_id())) + && material.getMaterial_id().equals(a.getMaterial_code())) .map(MdPbStoragevehicleextDto::getQty) .reduce(BigDecimal.ZERO, BigDecimal::add); @@ -141,7 +140,7 @@ public class ForewarningTask { try { earliestPlate = mdPbStoragevehicleextDtoStructs.stream() .filter(a -> config.getStor_code().equals(a.getStor_code()) - && material.getMaterial_id().equals(a.getMaterial_id())) + && material.getMaterial_id().equals(a.getMaterial_code())) .map(a -> { try { String createTimeStr = a.getCreate_time(); diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/enums/SysParamConstant.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/enums/SysParamConstant.java index f1987c6..d78cf26 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/enums/SysParamConstant.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/system_manage/enums/SysParamConstant.java @@ -22,4 +22,9 @@ public class SysParamConstant { */ public final static String ERP_URL = "erp_url"; + /** + * 中鼎系统URL + */ + public final static String ZD_URL = "zd_url"; + } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/InBillServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/InBillServiceImpl.java index 58f3d18..c0bad61 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/InBillServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/InBillServiceImpl.java @@ -53,8 +53,6 @@ import javax.annotation.Resource; import java.math.BigDecimal; import java.math.BigInteger; import java.util.*; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; import java.util.stream.Collectors; /** @@ -632,7 +630,7 @@ public class InBillServiceImpl extends ServiceImpl i mdPbGroupplateService.update(new GroupPlate(), new LambdaUpdateWrapper<>(GroupPlate.class) .set(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) .eq(GroupPlate::getPcsn, ioStorInvDis.getPcsn()) - .eq(GroupPlate::getMaterial_id, ioStorInvDis.getMaterial_id()) + .eq(GroupPlate::getMaterial_code, ioStorInvDis.getMaterial_id()) .eq(GroupPlate::getStoragevehicle_code, ioStorInvDis.getStoragevehicle_code()) ); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java index dfaf909..7b231d2 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inAndOut/service/impl/OutBillServiceImpl.java @@ -420,7 +420,7 @@ public class OutBillServiceImpl extends ServiceImpl i .set(GroupPlate::getUpdate_time, now) .eq(GroupPlate::getStoragevehicle_code, outAllocation.getStoragevehicle_code()) .eq(GroupPlate::getPcsn, outAllocation.getPcsn()) - .eq(GroupPlate::getMaterial_id, outAllocation.getMaterial_id()) + .eq(GroupPlate::getMaterial_code, outAllocation.getMaterial_id()) .eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库"))); //生成分配明细 ioStorInvDisMapper.insert(ioStorInvDis); @@ -607,7 +607,7 @@ public class OutBillServiceImpl extends ServiceImpl i .set(GroupPlate::getUpdate_time, now) .eq(GroupPlate::getStoragevehicle_code, outAllocation.getStoragevehicle_code()) .eq(GroupPlate::getPcsn, outAllocation.getPcsn()) - .eq(GroupPlate::getMaterial_id, outAllocation.getMaterial_id()) + .eq(GroupPlate::getMaterial_code, outAllocation.getMaterial_id()) .eq(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("入库"))); //生成分配明细 ioStorInvDisMapper.insert(ioStorInvDis); @@ -1074,7 +1074,7 @@ public class OutBillServiceImpl extends ServiceImpl i iMdPbGroupPlateService.update(new GroupPlate(),new LambdaUpdateWrapper<>(GroupPlate.class) .set(GroupPlate::getStatus,IOSEnum.GROUP_PLATE_STATUS.code("出库")) .eq(GroupPlate::getPcsn,ioStorInvDis.getPcsn()) - .eq(GroupPlate::getMaterial_id,ioStorInvDis.getMaterial_id()) + .eq(GroupPlate::getMaterial_code,ioStorInvDis.getMaterial_id()) .eq(GroupPlate::getStoragevehicle_code,ioStorInvDis.getStoragevehicle_code()) ); } diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/IStInventoryService.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/IStInventoryService.java new file mode 100644 index 0000000..275cf2f --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/IStInventoryService.java @@ -0,0 +1,15 @@ +package org.nl.wms.warehouse_manage.inventory; + +import org.nl.wms.warehouse_manage.inventory.dto.StInventoryDto; +import org.nl.wms.warehouse_manage.inventory.dto.StInventoryQuery; + +import java.util.List; + +/** + * 库存查询服务 + */ +public interface IStInventoryService { + + public List queryInventory(StInventoryQuery query); + +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dao/mapper/StInventoryMapper.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dao/mapper/StInventoryMapper.java new file mode 100644 index 0000000..209c8cd --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dao/mapper/StInventoryMapper.java @@ -0,0 +1,17 @@ +package org.nl.wms.warehouse_manage.inventory.dao.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.nl.wms.warehouse_manage.inventory.dto.StInventoryDto; +import org.nl.wms.warehouse_manage.inventory.dto.StInventoryQuery; + +import java.util.List; + +/** + * @author dsh + * 2025/5/21 + */ +@Mapper +public interface StInventoryMapper { + + List queryInventory(StInventoryQuery query); +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dao/mapper/StInventoryMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dao/mapper/StInventoryMapper.xml new file mode 100644 index 0000000..c41e117 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dao/mapper/StInventoryMapper.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryDto.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryDto.java new file mode 100644 index 0000000..19c7878 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryDto.java @@ -0,0 +1,78 @@ +package org.nl.wms.warehouse_manage.inventory.dto; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class StInventoryDto { + /** + * 组盘id + */ + private String groupId; + + /** + * 存储车辆编码 + */ + private String storagevehicleCode; + + /** + * PC序列号/批次号 + */ + private String pcsn; + + /** + * 数量单位名称 + */ + private String qtyUnitName; + + /** + * 数量 + */ + private BigDecimal qty; // 或 Double/Integer,根据实际类型 + + /** + * 冻结数量 + */ + private BigDecimal frozenQty; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + private String createTime; // 或 Date + + /** + * 结构编码 + */ + private String structCode; + + /** + * 结构名称 + */ + private String structName; + + /** + * 库位名称 + */ + private String storName; + + /** + * 区域名称 + */ + private String sectName; + + /** + * 物料编码 + */ + private String materialCode; + + /** + * 物料名称 + */ + private String materialName; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryQuery.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryQuery.java new file mode 100644 index 0000000..423a345 --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/dto/StInventoryQuery.java @@ -0,0 +1,18 @@ +package org.nl.wms.warehouse_manage.inventory.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.nl.common.domain.query.BaseQuery; + +import java.math.BigDecimal; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class StInventoryQuery extends BaseQuery { + private String materialCode; + private String storCode; +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java new file mode 100644 index 0000000..803c71d --- /dev/null +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/inventory/impl/StInventoryServiceImpl.java @@ -0,0 +1,27 @@ +package org.nl.wms.warehouse_manage.inventory.impl; + +import org.nl.wms.warehouse_manage.inventory.IStInventoryService; +import org.nl.wms.warehouse_manage.inventory.dao.mapper.StInventoryMapper; +import org.nl.wms.warehouse_manage.inventory.dto.StInventoryDto; +import org.nl.wms.warehouse_manage.inventory.dto.StInventoryQuery; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * 库存查询服务 + */ +@Service +public class StInventoryServiceImpl implements IStInventoryService { + @Resource + private StInventoryMapper stInventoryMapper; + + @Override + public List queryInventory(StInventoryQuery query){ + List result = stInventoryMapper.queryInventory(query); + return result; + }; + +} diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/GroupPlate.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/GroupPlate.java index 0480c31..c69b4f4 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/GroupPlate.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/GroupPlate.java @@ -36,7 +36,7 @@ public class GroupPlate implements Serializable { /** * 物料编码 */ - private String material_id; + private String material_code; /** diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/MdPbGroupplateMapper.xml b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/MdPbGroupplateMapper.xml index 388baeb..35c05da 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/MdPbGroupplateMapper.xml +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/dao/mapper/MdPbGroupplateMapper.xml @@ -26,7 +26,7 @@ mater.material_name FROM md_pb_groupplate late - INNER JOIN md_me_materialbase mater ON mater.material_id = late.material_id + INNER JOIN md_me_materialbase mater ON mater.material_code = late.material_code 1 = 1 @@ -61,7 +61,7 @@ mater.material_name FROM md_pb_groupplate gro - LEFT JOIN md_me_materialbase mater ON mater.material_id = gro.material_id + LEFT JOIN md_me_materialbase mater ON mater.material_code = gro.material_code 1 = 1 diff --git a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/util/UpdateIvtUtils.java b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/util/UpdateIvtUtils.java index 13bd714..36bec7c 100644 --- a/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/util/UpdateIvtUtils.java +++ b/nladmin-system/wms-server/src/main/java/org/nl/wms/warehouse_manage/service/util/UpdateIvtUtils.java @@ -151,7 +151,7 @@ public class UpdateIvtUtils { GroupPlate extDao = iMdPbGroupPlateService.getOne( new QueryWrapper().lambda() .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code")) - .eq(GroupPlate::getMaterial_id, where.getString("material_id")) + .eq(GroupPlate::getMaterial_code, where.getString("material_id")) .eq(GroupPlate::getPcsn, where.getString("pcsn")) ); if (ObjectUtil.isEmpty(extDao)) { @@ -183,7 +183,7 @@ public class UpdateIvtUtils { GroupPlate extDao = iMdPbGroupPlateService.getOne( new QueryWrapper().lambda() .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code")) - .eq(GroupPlate::getMaterial_id, where.getString("material_id")) + .eq(GroupPlate::getMaterial_code, where.getString("material_id")) .eq(GroupPlate::getPcsn, where.getString("pcsn")) ); if (ObjectUtil.isEmpty(extDao)) { @@ -218,7 +218,7 @@ public class UpdateIvtUtils { GroupPlate extDao = iMdPbGroupPlateService.getOne( new QueryWrapper().lambda() .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code")) - .eq(GroupPlate::getMaterial_id, where.getString("material_id")) + .eq(GroupPlate::getMaterial_code, where.getString("material_id")) .eq(GroupPlate::getPcsn, where.getString("pcsn")) .eq(GroupPlate::getStatus, IOSEnum.GROUP_PLATE_STATUS.code("入库")) ); @@ -244,7 +244,7 @@ public class UpdateIvtUtils { GroupPlate extDao = iMdPbGroupPlateService.getOne( new QueryWrapper().lambda() .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code")) - .eq(GroupPlate::getMaterial_id, where.getString("material_id")) + .eq(GroupPlate::getMaterial_code, where.getString("material_id")) .eq(GroupPlate::getPcsn, where.getString("pcsn")) ); if (ObjectUtil.isEmpty(extDao)) { @@ -268,7 +268,7 @@ public class UpdateIvtUtils { GroupPlate extDao = iMdPbGroupPlateService.getOne( new QueryWrapper().lambda() .eq(GroupPlate::getStoragevehicle_code, where.getString("storagevehicle_code")) - .eq(GroupPlate::getMaterial_id, where.getString("material_id")) + .eq(GroupPlate::getMaterial_code, where.getString("material_id")) .eq(GroupPlate::getPcsn, where.getString("pcsn")) ); if (ObjectUtil.isEmpty(extDao)) { diff --git a/nladmin-system/wms-server/src/main/resources/sql/zzq_sql.sql b/nladmin-system/wms-server/src/main/resources/sql/zzq_sql.sql new file mode 100644 index 0000000..5e0bc07 --- /dev/null +++ b/nladmin-system/wms-server/src/main/resources/sql/zzq_sql.sql @@ -0,0 +1,38 @@ +-- MySQL 8.0+ 或 MariaDB 10.3+ +-- 需求单主表 +CREATE TABLE pm_demand_order ( + id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键ID', + order_uuid VARCHAR(64) NOT NULL COMMENT '单据唯一ID(业务主键)', + creator VARCHAR(50) NOT NULL COMMENT '操作人', + create_time DATETIME NOT NULL COMMENT '需求日期', + priority INT NOT NULL COMMENT '优先级序号', + status INT DEFAULT 0 COMMENT '0:生效;1:失效', + target_house_code VARCHAR(32) NOT NULL COMMENT '目标仓别', + remark VARCHAR(500) COMMENT '备注', + create_at DATETIME DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY uk_order_uuid (order_uuid) +) AUTO_INCREMENT=10000 COMMENT='需求单主表'; + +-- 需求单明细表 +CREATE TABLE pmd_demand_dtl ( + id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '自增主键ID', + detail_uuid VARCHAR(64) NOT NULL COMMENT '明细唯一ID(业务主键)', + order_id BIGINT NOT NULL COMMENT '关联主表自增ID', + order_uuid VARCHAR(64) NOT NULL COMMENT '关联主表业务ID', + work_order VARCHAR(64) NOT NULL COMMENT '工单编号', + sku_code VARCHAR(64) NOT NULL COMMENT '物料编码', + sku_name VARCHAR(200) NOT NULL COMMENT '物料名称', + qty DECIMAL(18,4) NOT NULL COMMENT '数量', + unit VARCHAR(20) NOT NULL COMMENT '单位', + target_area VARCHAR(64) NOT NULL COMMENT '目标库存地点', + production_line VARCHAR(64) NOT NULL COMMENT '产线', + sn VARCHAR(64) COMMENT '车辆序列号', + max_load VARCHAR(50) COMMENT '最大装载量', + batch_no VARCHAR(64) COMMENT '批次号', + remark VARCHAR(500) COMMENT '备注', + create_at DATETIME DEFAULT CURRENT_TIMESTAMP, + UNIQUE KEY uk_detail_uuid (detail_uuid), + INDEX idx_order_id (order_id), + INDEX idx_order_uuid (order_uuid), + FOREIGN KEY (order_id) REFERENCES pm_demand_order(id) ON DELETE CASCADE +) AUTO_INCREMENT=10000 COMMENT='需求单明细表'; diff --git a/nladmin-ui/src/views/wms/basedata/group/group.js b/nladmin-ui/src/views/wms/basedata/group/group.js index e927e8f..bcbfae5 100644 --- a/nladmin-ui/src/views/wms/basedata/group/group.js +++ b/nladmin-ui/src/views/wms/basedata/group/group.js @@ -24,4 +24,12 @@ export function edit(data) { }) } -export default { add, edit, del } +export function getAllGroupInfo(data) { + return request({ + url: 'api/group/getAllGroupInfo', + method: 'post', + data + }) +} + +export default { add, edit, del, getAllGroupInfo } diff --git a/nladmin-ui/src/views/wms/basedata/group/index.vue b/nladmin-ui/src/views/wms/basedata/group/index.vue index a16cda9..6caec84 100644 --- a/nladmin-ui/src/views/wms/basedata/group/index.vue +++ b/nladmin-ui/src/views/wms/basedata/group/index.vue @@ -179,6 +179,8 @@ + + @@ -190,6 +192,7 @@ 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' +import AddDialog from '@/views/wms/basedata/group/AddDialog' const defaultForm = { group_id: null, @@ -211,7 +214,7 @@ const defaultForm = { } export default { name: 'Group', - components: { pagination, MaterialDialog, crudOperation, rrOperation, udOperation }, + components: { pagination, MaterialDialog, crudOperation, rrOperation, udOperation, AddDialog }, mixins: [presenter(), header(), form(defaultForm), crud()], tableEnums: ['md_pb_measureunit#unit_name#measure_unit_id'], // 数据字典 @@ -243,6 +246,9 @@ export default { [CRUD.HOOK.beforeRefresh]() { return true }, + querytable() { + this.crud.toQuery() + }, formattStatus(row) { return this.dict.label.GROUP_STATUS[row.status] }, diff --git a/nladmin-ui/src/views/wms/pm_manage/demand/demand.js b/nladmin-ui/src/views/wms/pm_manage/demand/demand.js new file mode 100644 index 0000000..2619816 --- /dev/null +++ b/nladmin-ui/src/views/wms/pm_manage/demand/demand.js @@ -0,0 +1,51 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/pmDemand', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/pmDemand', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/pmDemand', + method: 'put', + data + }) +} + +export function queryInventory(skuCode) { + return request({ + url: 'api/pmDemand/queryInventory', + method: 'get', + params: { skuCode } + }) +} + +export function allocate(data) { + return request({ + url: 'api/pmDemand/allocate', + method: 'post', + data + }) +} + +export function push(data) { + return request({ + url: 'api/pmDemand/push', + method: 'post', + data + }) +} + +export default { add, edit, del, queryInventory, allocate, push } diff --git a/nladmin-ui/src/views/wms/pm_manage/demand/index.vue b/nladmin-ui/src/views/wms/pm_manage/demand/index.vue new file mode 100644 index 0000000..b8fb791 --- /dev/null +++ b/nladmin-ui/src/views/wms/pm_manage/demand/index.vue @@ -0,0 +1,262 @@ + + + + + diff --git a/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue b/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue index 7deac2b..d155483 100644 --- a/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue +++ b/nladmin-ui/src/views/wms/st/inbill/AddDialog.vue @@ -313,7 +313,7 @@ export default { rows.forEach((item) => { let same_mater = true this.form.tableData.forEach((row) => { - if (row.pcsn === item.pcsn) { + if (row.pcsn === item.pcsn && row.material_id === item.material_id && row.storagevehicle_code === item.storagevehicle_code) { same_mater = false } }) diff --git a/nladmin-ui/src/views/wms/st/inbill/AddDtl.vue b/nladmin-ui/src/views/wms/st/inbill/AddDtl.vue index 5b55ca8..c36550f 100644 --- a/nladmin-ui/src/views/wms/st/inbill/AddDtl.vue +++ b/nladmin-ui/src/views/wms/st/inbill/AddDtl.vue @@ -77,12 +77,12 @@ import rrOperation from '@crud/RR.operation' import crudOperation from '@crud/CRUD.operation' import pagination from '@crud/Pagination' import DateRangePicker from '@/components/DateRangePicker/index' -import crudRawAssist from '@/views/wms/st/inbill/rawassist' +import group, { getAllGroupInfo } from '@/views/wms/basedata/group/group.js' const start = new Date() export default { name: 'AddDtl', - components: { crudOperation, rrOperation, pagination, DateRangePicker }, + components: { crudOperation, rrOperation, pagination, DateRangePicker, group }, cruds() { return CRUD({ title: '用户', @@ -149,10 +149,10 @@ export default { console.log('获取的rows:') console.log(this.rows) this.$emit('tableChanged', this.rows) - // crudRawAssist.queryBoxMater(this.rows).then(res => { - // this.rows = res - // this.$emit('tableChanged', this.rows) - // }) + group.getAllGroupInfo(this.rows).then(res => { + this.rows = res.content + this.$emit('tableChanged', this.rows) + }) // this.form = this.$options.data().form } } diff --git a/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue b/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue index 6c31ceb..6c0238d 100644 --- a/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue +++ b/nladmin-ui/src/views/wms/st/inbill/DivDialog.vue @@ -72,6 +72,20 @@ label="数量" align="center" /> + + @@ -155,10 +169,13 @@ :data="form.tableMater" style="width: 100%;" max-height="300" + highlight-current-row + @row-click="clcikDisRow" border :header-cell-style="{background:'#f5f7fa',color:'#606266'}" > + @@ -215,7 +232,7 @@ export default { type: String, default: null }, - storId: { + storCode: { type: String, default: null } @@ -236,6 +253,7 @@ export default { sect_val: null, form: { dtl_row: null, + dis_row: null, storage_qty: '', point_code: null, checked: true, @@ -255,7 +273,7 @@ export default { }, methods: { open() { - crudSectattr.getSectCode({ 'stor_id': this.storId }).then(res => { + crudSectattr.getSectCode({ 'stor_code': this.storCode }).then(res => { this.sects = res.content }) @@ -283,11 +301,15 @@ export default { crudRawAssist.getIODtl({ 'bill_code': this.form.dtl_row.bill_code }).then(res => { this.openParam = res this.form.dtl_row = res[row.index] + this.form.dis_row = null }) crudRawAssist.getDisDtl(row).then(res => { this.form.tableMater = res }) }, + clcikDisRow(row, column, event) { + this.form.dis_row = row + }, tableRowClassName({ row, rowIndex }) { row.index = rowIndex }, @@ -369,6 +391,10 @@ export default { this.crud.notify('请先选择一条明细!', CRUD.NOTIFICATION_TYPE.INFO) return } + if (!this.form.dis_row) { + this.crud.notify('请先选择一条分配明细!', CRUD.NOTIFICATION_TYPE.INFO) + return + } // 如果勾选了,直接跳后台 if (this.form.checked) { if (!this.sect_code) { @@ -385,6 +411,7 @@ export default { crudRawAssist.getDisDtl(this.form.dtl_row).then(res => { this.form.tableMater = res this.divBtn = false + this.form.dis_row = null this.crud.notify('分配货位成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) }) }).finally(() => { @@ -403,9 +430,8 @@ export default { this.crud.notify('不存在载具明细!', CRUD.NOTIFICATION_TYPE.INFO) return } - const flag = this.form.tableMater.some(mater => !mater.struct_code) - if (flag) { - this.crud.notify('明细存在未分配货位!', CRUD.NOTIFICATION_TYPE.INFO) + if (!this.form.dis_row) { + this.crud.notify('请先选择一条分配明细!', CRUD.NOTIFICATION_TYPE.INFO) return } // 如果勾选了,直接跳后台 @@ -415,6 +441,7 @@ export default { }) crudRawAssist.getDisDtl(this.form.dtl_row).then(res => { this.form.tableMater = res + this.form.dis_row = null this.crud.notify('取消分配成功!', CRUD.NOTIFICATION_TYPE.SUCCESS) }) }) diff --git a/nladmin-ui/src/views/wms/st/inbill/index.vue b/nladmin-ui/src/views/wms/st/inbill/index.vue index 6aafc5d..a166def 100644 --- a/nladmin-ui/src/views/wms/st/inbill/index.vue +++ b/nladmin-ui/src/views/wms/st/inbill/index.vue @@ -379,7 +379,7 @@ export default { divOpen() { crudRawAssist.getIODtl({ 'bill_code': this.currentRow.bill_code, 'open_flag': '1' }).then(res => { this.openParam = res - this.storId = this.currentRow.stor_id + this.storCode = this.currentRow.stor_code this.billType = this.currentRow.bill_type this.divShow = true }) diff --git a/nladmin-ui/src/views/wms/st/inbill/rawassist.js b/nladmin-ui/src/views/wms/st/inbill/rawassist.js deleted file mode 100644 index e0e9cf1..0000000 --- a/nladmin-ui/src/views/wms/st/inbill/rawassist.js +++ /dev/null @@ -1,97 +0,0 @@ -import request from '@/utils/request' - -export function add(data) { - return request({ - url: '/api/in/rawAssist', - method: 'post', - data - }) -} - -export function del(ids) { - return request({ - url: '/api/in/rawAssist', - method: 'delete', - data: ids - }) -} - -export function edit(data) { - return request({ - url: '/api/in/rawAssist', - method: 'put', - data - }) -} - -export function getIODtl(params) { - return request({ - url: '/api/in/rawAssist/getIODtl', - method: 'get', - params - }) -} - -export function commit(data) { - return request({ - url: '/api/in/rawAssist/commit', - method: 'post', - data - }) -} -export function deleteDisDtl(data) { - return request({ - url: '/api/in/rawAssist/deleteDisDtl', - method: 'post', - data - }) -} - -export function getDisDtl(data) { - return request({ - url: '/api/in/rawAssist/getDisDtl', - method: 'post', - data - }) -} - -export function divStruct(data) { - return request({ - url: '/api/in/rawAssist/divStruct', - method: 'post', - data - }) -} -export function unDivStruct(data) { - return request({ - url: '/api/in/rawAssist/unDivStruct', - method: 'post', - data - }) -} - -export function divPoint(data) { - return request({ - url: '/api/in/rawAssist/divPoint', - method: 'post', - data - }) -} -export function confirm(data) { - return request({ - url: '/api/in/rawAssist/confirm', - method: 'post', - data - }) -} - -export function getInBillTaskDtl(data) { - return request({ - url: '/api/in/rawAssist/getInBillTaskDtl', - method: 'post', - data - }) -} - -export default { add, edit, del, getIODtl, commit, - deleteDisDtl, getDisDtl, divStruct, unDivStruct, divPoint, confirm, getInBillTaskDtl } diff --git a/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue b/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue index 72b9f0a..1768a21 100644 --- a/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue +++ b/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue @@ -157,21 +157,14 @@ disabled /> - - + - - + :options="outBoundRegion" + :props="{ checkStrictly: true }" + clearable + @change="outBoundChange" + /> @@ -211,6 +204,7 @@ +