From 65822e1864503e4885884e694c42d2d4d7d48ead Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 25 May 2023 20:38:18 +0800 Subject: [PATCH] =?UTF-8?q?rev=20:=20=E5=87=BA=E5=BA=93=E5=88=86=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/master/dao/MdPbMeasureunit.java | 2 + .../saleOrder/MpsSaleOrderController.java | 28 +++- .../saleOrder/IMpsSaleOrderService.java | 10 +- .../dao/mapper/MpsSaleOrderMapper.java | 9 +- .../dao/mapper/xml/MpsSaleOrderMapper.xml | 31 ++++ .../service/saleOrder/dto/OrderQuery.java | 34 +++++ .../impl/MpsSaleOrderServiceImpl.java | 20 ++- .../IStivtlostorivnCpOutController.java | 8 + .../StIfDeliveryorderCpController.java | 27 +++- .../IStIvtIostorinvCpOutService.java | 11 ++ .../IStIvtIostorinvdisCpService.java | 23 +++ .../dao/mapper/StIvtIostorinvdisCpMapper.java | 3 + .../mapper/xml/StIvtIostorinvdisCpMapper.xml | 20 +++ .../impl/StIvtIostorinvCpOutServiceImpl.java | 121 ++++++++++++--- .../impl/StIvtIostorinvCpServiceImpl.java | 2 +- .../impl/StIvtIostorinvdisCpServiceImpl.java | 51 +++++++ .../impl/StIvtIostorinvdtlCpServiceImpl.java | 9 ++ .../IStIfDeliveryorderCpService.java | 4 + .../dao/mapper/StIfDeliveryorderCpMapper.java | 8 + .../dao/mapper/StIfDeliveryorderCpMapper.xml | 32 ++++ .../service/moreOrLess/dto/DeliveQuery.java | 33 +++++ .../impl/StIfDeliveryorderCpServiceImpl.java | 16 ++ .../structIvt/IStIvtStructivtCpService.java | 7 + .../dao/mapper/StIvtStructivtCpMapper.java | 3 + .../dao/mapper/StIvtStructivtCpMapper.xml | 24 +++ .../impl/StIvtStructivtCpServiceImpl.java | 35 +++++ .../productmanage/util/ChangeIvtUtil.java | 5 + .../productmanage/util/DivRuleCpService.java | 21 ++- .../productmanage/util/RuleUtil.java | 9 +- .../util/impl/DivRuleCpServiceImpl.java | 32 +++- .../product/productIn/AddDialog.vue | 43 +++--- .../product/productIn/AddDtl.vue | 27 ++-- .../product/productOut/AddDialog.vue | 44 +++--- .../product/productOut/AddDtl.vue | 138 ++++++++++-------- .../product/productOut/DivDialog.vue | 99 ++++--------- .../product/productOut/index.vue | 2 +- .../product/productOut/productout.js | 25 +++- 37 files changed, 797 insertions(+), 219 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dto/OrderQuery.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dto/DeliveQuery.java diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/MdPbMeasureunit.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/MdPbMeasureunit.java index fcee0abb..8b9c00ef 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/MdPbMeasureunit.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/masterdata_manage/service/master/dao/MdPbMeasureunit.java @@ -1,5 +1,6 @@ package org.nl.wms.masterdata_manage.service.master.dao; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; @@ -27,6 +28,7 @@ public class MdPbMeasureunit implements Serializable { /** * 计量单位标识 */ + @TableId private String measure_unit_id; /** diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/controller/saleOrder/MpsSaleOrderController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/controller/saleOrder/MpsSaleOrderController.java index 057e7975..da14b307 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/controller/saleOrder/MpsSaleOrderController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/controller/saleOrder/MpsSaleOrderController.java @@ -1,8 +1,19 @@ package org.nl.wms.mps_manage.ordermanage.controller.saleOrder; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.IMpsSaleOrderService; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dto.OrderQuery; +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; /** @@ -14,8 +25,21 @@ import org.springframework.web.bind.annotation.RestController; * @since 2023-05-25 */ @RestController -@RequestMapping("/mpsSaleOrder") +@RequiredArgsConstructor +@Api(tags = "生产订单") +@Slf4j +@RequestMapping("/api/mpsSaleOrder") public class MpsSaleOrderController { + @Autowired + private IMpsSaleOrderService iMpsSaleOrderService; + + @GetMapping + @Log("查询生产订单") + @ApiOperation("查询生产订单") + public ResponseEntity query(OrderQuery query, PageQuery page){ + return new ResponseEntity<>(iMpsSaleOrderService.pageQuery(query,page), HttpStatus.OK); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java index ed3e74c5..7d2c3655 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/IMpsSaleOrderService.java @@ -1,7 +1,9 @@ package org.nl.wms.mps_manage.ordermanage.service.saleOrder; -import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder; +import org.nl.common.domain.query.PageQuery; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dto.OrderQuery; /** *

@@ -13,4 +15,10 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IMpsSaleOrderService extends IService { + /** + * 分页查询 + * @param query,page / + * @return JSONObject + */ + Object pageQuery(OrderQuery query, PageQuery page); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java index a8480826..f6e32569 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/MpsSaleOrderMapper.java @@ -1,7 +1,13 @@ package org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.mapper; -import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dto.OrderQuery; + +import java.util.List; +import java.util.Map; /** *

@@ -13,4 +19,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface MpsSaleOrderMapper extends BaseMapper { + List pageQuery(@Param("query") OrderQuery query, @Param("pageQuery") PageQuery pageQuery); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml index 6fc43f10..e2837d2e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dao/mapper/xml/MpsSaleOrderMapper.xml @@ -2,4 +2,35 @@ + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dto/OrderQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dto/OrderQuery.java new file mode 100644 index 00000000..a9c961e7 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/dto/OrderQuery.java @@ -0,0 +1,34 @@ +package org.nl.wms.mps_manage.ordermanage.service.saleOrder.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.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder; + +/* + * @author ZZQ + * @Date 2023/5/4 19:49 + */ +@Data +public class OrderQuery extends BaseQuery { + + + private String sale_code; + + private String status; + + private String sale_type; + + private String cust_code; + + private Boolean is_delete = false; + + + @Override + public void paramMapping() { + super.doP.put("sale_code", QParam.builder().k(new String[]{"sale_code"}).type(QueryTEnum.LK).build()); + } + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java index 6df31f6d..0e7ee167 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/mps_manage/ordermanage/service/saleOrder/impl/MpsSaleOrderServiceImpl.java @@ -1,11 +1,19 @@ package org.nl.wms.mps_manage.ordermanage.service.saleOrder.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.IMpsSaleOrderService; import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.MpsSaleOrder; import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dao.mapper.MpsSaleOrderMapper; -import org.nl.wms.mps_manage.ordermanage.service.saleOrder.IMpsSaleOrderService; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.wms.mps_manage.ordermanage.service.saleOrder.dto.OrderQuery; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; + /** *

* 生产订单表 服务实现类 @@ -17,4 +25,12 @@ import org.springframework.stereotype.Service; @Service public class MpsSaleOrderServiceImpl extends ServiceImpl implements IMpsSaleOrderService { + @Override + public Object pageQuery(OrderQuery query, PageQuery pageQuery) { + Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); + List mst_detail = baseMapper.pageQuery(query, pageQuery); + TableDataInfo build = TableDataInfo.build(mst_detail); + build.setTotalElements(page.getTotal()); + return build; + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpOutController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpOutController.java index 78cc2ece..86914254 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpOutController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/iostorInv/IStivtlostorivnCpOutController.java @@ -70,5 +70,13 @@ public class IStivtlostorivnCpOutController { return new ResponseEntity<>(iStIvtIostorinvCpOutService.getIosInvDis(whereJson),HttpStatus.OK); } + @PostMapping("/allDivIvt") + @Log("全部分配") + @ApiOperation("全部分配") + public ResponseEntity allDivIvt(@RequestBody JSONObject whereJson){ + iStIvtIostorinvCpOutService.allDivIvt(whereJson); + return new ResponseEntity<>(HttpStatus.OK); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/moreOrLess/StIfDeliveryorderCpController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/moreOrLess/StIfDeliveryorderCpController.java index 68281d2a..e1f4da8c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/moreOrLess/StIfDeliveryorderCpController.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/controller/moreOrLess/StIfDeliveryorderCpController.java @@ -1,6 +1,18 @@ package org.nl.wms.storage_manage.productmanage.controller.moreOrLess; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.anno.Log; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.storage_manage.productmanage.service.moreOrLess.IStIfDeliveryorderCpService; +import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dto.DeliveQuery; +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; @@ -13,8 +25,21 @@ import org.springframework.web.bind.annotation.RestController; * @since 2023-05-04 */ @RestController -@RequestMapping("/stIfDeliveryorderCp") +@RequiredArgsConstructor +@Api(tags = "销售发货单") +@Slf4j +@RequestMapping("/api/stIfDeliveryorderCp") public class StIfDeliveryorderCpController { + @Autowired + private IStIfDeliveryorderCpService iStIfDeliveryorderCpService; + + @GetMapping + @Log("查询生产订单") + @ApiOperation("查询生产订单") + public ResponseEntity query(DeliveQuery query, PageQuery page){ + return new ResponseEntity<>(iStIfDeliveryorderCpService.pageQuery(query,page), HttpStatus.OK); + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java index 7361207f..b30d8647 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvCpOutService.java @@ -83,4 +83,15 @@ public interface IStIvtIostorinvCpOutService extends IService */ void delete(Long[] ids); + /** + * 全部分配 + * @param whereJson + * { + * iostorinv_id : 主表标识, + * iostorinvdtl_id : 明细标识, + * stor_id : 仓库标识, + * sect_id : 库区标识 + * } + */ + void allDivIvt(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdisCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdisCpService.java index 3d5343c0..dae41843 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdisCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/IStIvtIostorinvdisCpService.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; import java.util.Collection; import java.util.List; @@ -24,7 +25,29 @@ public interface IStIvtIostorinvdisCpService extends IService list); + /** + * 查找入库分配 + * @param map / + */ List queryInvDisByInvdtl(Map map); + /** + * 查找出库分配 + * @param map / + */ + List queryInvDisByInvOutdtl(Map map); + + /** + * 入库分配处理方法 + * @param list / + * @param json / + */ List onductDataDis(List list, JSONObject json); + + /** + * 出库分配处理方法 + * @param list / + * @param dtlDao / + */ + void onductDataOutDis(List list, StIvtIostorinvdtlCp dtlDao); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/StIvtIostorinvdisCpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/StIvtIostorinvdisCpMapper.java index b56b3d38..56db37c8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/StIvtIostorinvdisCpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/StIvtIostorinvdisCpMapper.java @@ -22,4 +22,7 @@ public interface StIvtIostorinvdisCpMapper extends BaseMapper queryInvDisByInvdtl(Map map); + List queryInvDisByInvOutdtl(Map map); + + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisCpMapper.xml index 51734105..b8a8d20e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/dao/mapper/xml/StIvtIostorinvdisCpMapper.xml @@ -65,6 +65,7 @@ #{item.point_name}) + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java index 464f5718..70323553 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpOutServiceImpl.java @@ -3,18 +3,14 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import io.jsonwebtoken.lang.Assert; import org.jetbrains.annotations.NotNull; import org.nl.common.TableDataInfo; import org.nl.common.domain.query.PageQuery; -import org.nl.common.publish.BussEventMulticaster; -import org.nl.common.publish.event.PointEvent; import org.nl.common.utils.IdUtil; import org.nl.common.utils.SecurityUtils; import org.nl.modules.common.exception.BadRequestException; @@ -22,28 +18,23 @@ import org.nl.modules.system.util.CodeUtil; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbBucketrecordService; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleextService; import org.nl.wms.masterdata_manage.service.vehicle.IMdPbStoragevehicleinfoService; -import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbBucketrecord; -import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleext; -import org.nl.wms.masterdata_manage.service.vehicle.dao.MdPbStoragevehicleinfo; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtBsrealstorattrService; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtBsrealstorattr; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; -import org.nl.wms.product_manage.sch.manage.TaskStatusEnum; import org.nl.wms.scheduler_manage.service.point.ISchBasePointService; -import org.nl.wms.scheduler_manage.service.point.dao.SchBasePoint; import org.nl.wms.scheduler_manage.service.task.ISchBaseTaskService; -import org.nl.wms.scheduler_manage.service.task.dao.SchBaseTask; -import org.nl.wms.storage_manage.CHANGE_BILL_TYPE_ENUM; import org.nl.wms.storage_manage.IOSEnum; -import org.nl.wms.storage_manage.productmanage.service.iostorInv.*; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpOutService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService; +import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp; -import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp; -import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvCpMapper; import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery; import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtCpService; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; import org.nl.wms.storage_manage.productmanage.util.ChangeIvtUtil; import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService; import org.nl.wms.storage_manage.productmanage.util.RuleUtil; @@ -52,11 +43,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; +import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; -import java.util.function.Consumer; -import java.util.stream.Collectors; /** *

@@ -162,7 +152,7 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl maps = iostorinvdisCpService.queryInvDisByInvdtl(whereJson); + List maps = iostorinvdisCpService.queryInvDisByInvOutdtl(whereJson); return maps; } @@ -179,6 +169,73 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl dtlDaoList = iostorinvdtlCpService.list( + new QueryWrapper().lambda() + .eq(StIvtIostorinvdtlCp::getIostorinv_id, whereJson.getString("iostorinv_id")) + .orderByAsc(StIvtIostorinvdtlCp::getSeq_no) + ); + + // 2.找库存 + for (StIvtIostorinvdtlCp dtlDao : dtlDaoList) { + double unassign_qty = dtlDao.getUnassign_qty().doubleValue(); + + JSONObject param = new JSONObject(); + param.put("stor_id", whereJson.getString("stor_id")); + param.put("sect_id", whereJson.getString("sect_id")); + param.put("material_id", dtlDao.getMaterial_id()); + param.put("sale_id", dtlDao.getSource_billdtl_id()); + param.put("rule_type", RuleUtil.PRODUCTION_OUT_1); + + List ivtList = new ArrayList<>(); // 需要更新库存、仓位、插入分配明细的集合 + + while (unassign_qty > 0) { + StIvtStructivtCp ivtDao = divRuleCpService.divRuleOut(param); + + if (ObjectUtil.isEmpty(ivtDao)) throw new BadRequestException("库存不足"); + + // 更新未分配数 + unassign_qty = NumberUtil.sub(unassign_qty,ivtDao.getCanuse_qty().doubleValue()); + ivtList.add(ivtDao); + } + + // 3.插入分配表 + iostorinvdisCpService.onductDataOutDis(ivtList,dtlDao); + + // 4.更新明细状态 + BigDecimal assign_qty = ivtList.stream() + .map(StIvtStructivtCp::getCanuse_qty) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + dtlDao.setBill_status(IOSEnum.BILL_STATUS.code("分配完")); + dtlDao.setUnassign_qty(BigDecimal.valueOf(0)); + dtlDao.setAssign_qty(assign_qty); + + iostorinvdtlCpService.updateById(dtlDao); + + // 5.更新库存冻结数 、 锁定仓位 + updateIvt(ivtList,mstDao); + + // 6.更新主表 + updateMst(mstDao.getIostorinv_id()); + } + + } @NotNull private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) { @@ -272,4 +329,34 @@ public class StIvtIostorinvCpOutServiceImpl extends ServiceImpl ivtList,StIvtIostorinvCp mstDao) { + /* + 更新库存冻结数 + */ + for (StIvtStructivtCp ivtDao : ivtList) { + // 1.更新库存 + JSONObject param = new JSONObject(); + param.put("struct_id", ivtDao.getStruct_id()); + param.put("material_id", ivtDao.getMaterial_id()); + param.put("pcsn", ivtDao.getPcsn()); + param.put("ivt_level", ivtDao.getIvt_level()); + param.put("quality_scode", ivtDao.getQuality_scode()); + param.put("change_qty", ivtDao.getCanuse_qty()); + param.put("sale_id", ivtDao.getSale_id()); + param.put("change_type", ChangeIvtUtil.ADDFROZEN_SUBIVT_QTY); + iStIvtStructivtCpService.UpdateIvt(param); + + // 2.锁定仓位 + iStIvtStructattrService.update( + new StIvtStructattr() + .setLock_type("01") // TODO 暂时写死 + .setInv_id(mstDao.getIostorinv_id()) + .setInv_type(mstDao.getBill_type()) + .setInv_code(mstDao.getBill_code()), + new QueryWrapper().lambda() + .eq(StIvtStructattr::getStruct_id, ivtDao.getStruct_id()) + ); + } + } + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java index 67644810..d2bcfb7c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvCpServiceImpl.java @@ -361,7 +361,7 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl list) { if (!CollectionUtils.isEmpty(list)){ @@ -57,6 +65,11 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl queryInvDisByInvOutdtl(Map map) { + return baseMapper.queryInvDisByInvOutdtl(map); + } + @Override public List onductDataDis(List list, JSONObject json) { List result = new ArrayList<>(); @@ -113,4 +126,42 @@ public class StIvtIostorinvdisCpServiceImpl extends ServiceImpl list, StIvtIostorinvdtlCp dtlDao) { + + for (StIvtStructivtCp ivtDao : list) { + + StIvtStructattr attrDao = iStIvtStructattrService.getById(ivtDao.getStruct_id()); + + MdPbMeasureunit untiDao = iMdPbMeasureunitService.getById(ivtDao.getQty_unit_id()); + + StIvtIostorinvdisCp disDao = new StIvtIostorinvdisCp() + .setIostorinvdis_id(IdUtil.getStringId()) + .setIostorinvdtl_id(dtlDao.getIostorinvdtl_id()) + .setIostorinv_id(dtlDao.getIostorinv_id()) + .setSeq_no(1) + .setSect_id(attrDao.getSect_id()) + .setSect_code(attrDao.getSect_code()) + .setSect_name(attrDao.getSect_name()) + .setStruct_id(attrDao.getStruct_id()) + .setStruct_code(attrDao.getStruct_code()) + .setStruct_name(attrDao.getStruct_name()) + .setMaterial_id(ivtDao.getMaterial_id()) + .setPcsn(ivtDao.getPcsn()) + .setQuality_scode(ivtDao.getQuality_scode()) // TODO 暂时写 + .setIvt_level(ivtDao.getIvt_level()) // TODO 暂时写 + .setIs_active(true) + .setWork_status("00") // TODO 暂时写 + .setStoragevehicle_code(attrDao.getStoragevehicle_code()) + .setIs_issued(false) + .setQty_unit_id(untiDao.getMeasure_unit_id()) + .setQty_unit_name(untiDao.getUnit_name()) + .setPlan_qty(ivtDao.getCanuse_qty()) + .setReal_qty(ivtDao.getCanuse_qty()); + + this.save(disDao); + } + + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java index fd967cce..81a0a8d9 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/iostorInv/impl/StIvtIostorinvdtlCpServiceImpl.java @@ -2,11 +2,13 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService; import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService; +import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase; import org.nl.wms.storage_manage.IOSEnum; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService; import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService; @@ -62,8 +64,15 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl().eq("iostorinv_id", iostorinvCp_id)); for (int i = 0; i < rows.size(); i++) { + JSONObject json = rows.getJSONObject(i); StIvtIostorinvdtlCp row = rows.getJSONObject(i).toJavaObject(StIvtIostorinvdtlCp.class); + MdMeMaterialbase materDao = materialbaseService.getOne( + new QueryWrapper().lambda() + .eq(MdMeMaterialbase::getMaterial_code, json.getString("material_code")) + ); + row.setIostorinv_id(iostorinvCp_id); + row.setMaterial_id(materDao.getMaterial_id()); row.setIostorinvdtl_id(org.nl.common.utils.IdUtil.getStringId()); row.setSeq_no(i+1); row.setPcsn(DateUtil.today()); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/IStIfDeliveryorderCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/IStIfDeliveryorderCpService.java index df8a874a..06a5377d 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/IStIfDeliveryorderCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/IStIfDeliveryorderCpService.java @@ -1,7 +1,9 @@ package org.nl.wms.storage_manage.productmanage.service.moreOrLess; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dao.StIfDeliveryorderCp; +import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dto.DeliveQuery; /** *

@@ -13,4 +15,6 @@ import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dao.StIfDelive */ public interface IStIfDeliveryorderCpService extends IService { + Object pageQuery(DeliveQuery query, PageQuery page); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dao/mapper/StIfDeliveryorderCpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dao/mapper/StIfDeliveryorderCpMapper.java index 2c6490d6..722c0317 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dao/mapper/StIfDeliveryorderCpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dao/mapper/StIfDeliveryorderCpMapper.java @@ -1,7 +1,13 @@ package org.nl.wms.storage_manage.productmanage.service.moreOrLess.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.storage_manage.productmanage.service.moreOrLess.dao.StIfDeliveryorderCp; +import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dto.DeliveQuery; + +import java.util.List; +import java.util.Map; /** *

@@ -13,4 +19,6 @@ import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dao.StIfDelive */ public interface StIfDeliveryorderCpMapper extends BaseMapper { + List pageQuery(@Param("query") DeliveQuery query, @Param("pageQuery") PageQuery pageQuery); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dao/mapper/StIfDeliveryorderCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dao/mapper/StIfDeliveryorderCpMapper.xml index 67ca91a9..0585ae13 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dao/mapper/StIfDeliveryorderCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dao/mapper/StIfDeliveryorderCpMapper.xml @@ -2,4 +2,36 @@ + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dto/DeliveQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dto/DeliveQuery.java new file mode 100644 index 00000000..05170918 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/dto/DeliveQuery.java @@ -0,0 +1,33 @@ +package org.nl.wms.storage_manage.productmanage.service.moreOrLess.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.storage_manage.productmanage.service.moreOrLess.dao.StIfDeliveryorderCp; + +/* + * @author ZZQ + * @Date 2023/5/4 19:49 + */ +@Data +public class DeliveQuery extends BaseQuery { + + + private String deliver_code; + + private String material_code; + + private String status; + + private String cust_code; + + private String sale_code; + + @Override + public void paramMapping() { + super.doP.put("deliver_code", QParam.builder().k(new String[]{"deliver_code"}).type(QueryTEnum.LK).build()); + } + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/impl/StIfDeliveryorderCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/impl/StIfDeliveryorderCpServiceImpl.java index 42e13779..c087f3b5 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/impl/StIfDeliveryorderCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/moreOrLess/impl/StIfDeliveryorderCpServiceImpl.java @@ -1,11 +1,19 @@ package org.nl.wms.storage_manage.productmanage.service.moreOrLess.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.Page; +import com.github.pagehelper.PageHelper; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.storage_manage.productmanage.service.moreOrLess.IStIfDeliveryorderCpService; import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dao.StIfDeliveryorderCp; import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dao.mapper.StIfDeliveryorderCpMapper; +import org.nl.wms.storage_manage.productmanage.service.moreOrLess.dto.DeliveQuery; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Map; + /** *

* 销售发货单表 服务实现类 @@ -17,4 +25,12 @@ import org.springframework.stereotype.Service; @Service public class StIfDeliveryorderCpServiceImpl extends ServiceImpl implements IStIfDeliveryorderCpService { + @Override + public Object pageQuery(DeliveQuery query, PageQuery pageQuery) { + Page page = PageHelper.startPage(pageQuery.getPage() + 1, pageQuery.getSize()); + List mst_detail = baseMapper.pageQuery(query, pageQuery); + TableDataInfo build = TableDataInfo.build(mst_detail); + build.setTotalElements(page.getTotal()); + return build; + } } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/IStIvtStructivtCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/IStIvtStructivtCpService.java index f1caa535..84f7faf0 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/IStIvtStructivtCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/IStIvtStructivtCpService.java @@ -30,4 +30,11 @@ public interface IStIvtStructivtCpService extends IService { */ void UpdateIvt(JSONObject json); + /** + * 获取一个库存 + * @param json / + * @return StIvtStructivtCp + */ + StIvtStructivtCp queryIvtOutOne(JSONObject json); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java index 3b000626..1de94427 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.java @@ -1,5 +1,6 @@ package org.nl.wms.storage_manage.productmanage.service.structIvt.dao.mapper; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; @@ -13,4 +14,6 @@ import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStruct */ public interface StIvtStructivtCpMapper extends BaseMapper { + StIvtStructivtCp queryIvtOutOne(JSONObject json); + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml index 364ac3b4..ba94f130 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/dao/mapper/StIvtStructivtCpMapper.xml @@ -2,4 +2,28 @@ + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java index f92b489d..714d0db8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/service/structIvt/impl/StIvtStructivtCpServiceImpl.java @@ -60,6 +60,10 @@ public class StIvtStructivtCpServiceImpl extends ServiceImpl().lambda() + .eq(StIvtStructivtCp::getStruct_id, json.getString("struct_id")) + .eq(StIvtStructivtCp::getMaterial_id, json.getString("material_id")) + .eq(StIvtStructivtCp::getSale_id,json.getString("sale_id")) + ); + + if (ObjectUtil.isEmpty(ivtDao)) throw new BadRequestException("库存异常,请检查!"); + + // 冻结数 + double frozen_qty = NumberUtil.add(ivtDao.getFrozen_qty().doubleValue(), json.getDoubleValue("change_qty")); + // 可用数 + double canuse_qty = NumberUtil.sub(ivtDao.getCanuse_qty().doubleValue(), json.getDoubleValue("change_qty")); + + if (canuse_qty < 0) throw new BadRequestException("库存异常,请检查!"); + + ivtDao.setCanuse_qty(BigDecimal.valueOf(canuse_qty)); + ivtDao.setFrozen_qty(BigDecimal.valueOf(frozen_qty)); + this.updateById(ivtDao); + } + /* 校验数据 */ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/ChangeIvtUtil.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/ChangeIvtUtil.java index 1e196734..3246adbd 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/ChangeIvtUtil.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/ChangeIvtUtil.java @@ -17,5 +17,10 @@ public class ChangeIvtUtil { */ public static final String SUBWAREHOUSING_ADDIVT_QTY = "3"; + /* + * 加冻结、减可用 + */ + public static final String ADDFROZEN_SUBIVT_QTY = "4"; + } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/DivRuleCpService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/DivRuleCpService.java index 280b6817..ddd05476 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/DivRuleCpService.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/DivRuleCpService.java @@ -2,6 +2,7 @@ package org.nl.wms.storage_manage.productmanage.util; import com.alibaba.fastjson.JSONObject; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; /** *

@@ -17,11 +18,25 @@ public interface DivRuleCpService { * 入库分配规则 * @param whereJson * { - * "stor_id":仓库标识 - * "sect_id":库区标识 - * "rule_type":规则类型(后续优化) + * "stor_id":仓库标识 N + * "sect_id":库区标识 N + * "rule_type":规则类型(后续优化) N * } * @return StIvtStructattr / */ StIvtStructattr divRuleIn(JSONObject whereJson); + + /** + * 出库分配规则 + * @param whereJson + * { + * "stor_id":仓库标识 N + * "sect_id":库区标识 N + * "material_id":物料标识 Y + * "sale_id": 销售单标识 Y + * "rule_type":规则类型(后续优化) N + * } + * @return StIvtStructattr / + */ + StIvtStructivtCp divRuleOut(JSONObject whereJson); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/RuleUtil.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/RuleUtil.java index 91bfeede..43acf66b 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/RuleUtil.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/RuleUtil.java @@ -3,9 +3,16 @@ package org.nl.wms.storage_manage.productmanage.util; public class RuleUtil { /* + * 入库分配: * 按照仓位顺序找一个仓位 */ - public static final String PRODUCTION_IN = "1"; + public static final String PRODUCTION_IN_1 = "in_1"; + + /* + * 出库分配: + * 根据 仓库、库区、物料、销售单找库存 + */ + public static final String PRODUCTION_OUT_1 = "out_1"; } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java index c87e99be..9011dce7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/storage_manage/productmanage/util/impl/DivRuleCpServiceImpl.java @@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.nl.modules.common.exception.BadRequestException; import org.nl.wms.masterdata_manage.storage.service.storage.IStIvtStructattrService; import org.nl.wms.masterdata_manage.storage.service.storage.dao.StIvtStructattr; +import org.nl.wms.storage_manage.productmanage.service.structIvt.IStIvtStructivtCpService; +import org.nl.wms.storage_manage.productmanage.service.structIvt.dao.StIvtStructivtCp; import org.nl.wms.storage_manage.productmanage.util.DivRuleCpService; import org.nl.wms.storage_manage.productmanage.util.RuleUtil; import org.springframework.beans.factory.annotation.Autowired; @@ -25,8 +27,13 @@ public class DivRuleCpServiceImpl implements DivRuleCpService { @Autowired protected IStIvtStructattrService iStIvtStructattrService; // 仓位属性服务 + @Autowired + protected IStIvtStructivtCpService iStIvtStructivtCpService; // 仓位库存服务 + private StIvtStructattr attrDao; + private StIvtStructivtCp ivtDao; + @Override public StIvtStructattr divRuleIn(JSONObject whereJson) { @@ -37,7 +44,7 @@ public class DivRuleCpServiceImpl implements DivRuleCpService { if (ObjectUtil.isEmpty(sect_id)) throw new BadRequestException("库区不能为空!"); switch (whereJson.getString("rule_type")) { - case RuleUtil.PRODUCTION_IN : + case RuleUtil.PRODUCTION_IN_1 : attrDao = iStIvtStructattrService.getOne( new QueryWrapper().lambda() .eq(StIvtStructattr::getStor_id, stor_id) @@ -52,4 +59,27 @@ public class DivRuleCpServiceImpl implements DivRuleCpService { return attrDao; } + + @Override + public StIvtStructivtCp divRuleOut(JSONObject whereJson) { + + String stor_id = whereJson.getString("stor_id"); + String sect_id = whereJson.getString("sect_id"); + + if (ObjectUtil.isEmpty(stor_id)) throw new BadRequestException("仓库不能为空!"); + if (ObjectUtil.isEmpty(sect_id)) throw new BadRequestException("库区不能为空!"); + + switch (whereJson.getString("rule_type")) { + case RuleUtil.PRODUCTION_OUT_1 : + if (ObjectUtil.isEmpty(whereJson.getString("material_id"))) + throw new BadRequestException("物料不能为空"); + if (ObjectUtil.isEmpty(whereJson.getString("sale_id"))) + throw new BadRequestException("销售单不能为空"); + ivtDao = iStIvtStructivtCpService.queryIvtOutOne(whereJson); + break; + } + + return ivtDao; + } + } diff --git a/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue index 3036be26..d3b56523 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productIn/AddDialog.vue @@ -325,27 +325,6 @@ export default { } } }, - tableChanged(rows) { - // 对新增的行进行校验不能存在相同物料批次 - rows.forEach((item) => { - let same_mater = true - this.form.tableData.forEach((row) => { - if (row.material_code === item.material_code) { - same_mater = false - } - }) - if (same_mater) { - item.quality_scode = '01' - item.ivt_level = '01' - item.is_active = '1' - item.plan_qty = '0' - item.edit = true - this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty) - this.form.tableData.splice(-1, 0, item) - } - }) - this.form.detail_count = this.form.tableData.length - }, tableChanged1(row) { this.nowrow.material_id = row.material_id this.nowrow.material_code = row.material_code @@ -356,6 +335,28 @@ export default { }, tableChanged2(row) { + let same_mater = true + this.form.tableData.forEach((item) => { + if (item.source_bill_code === row.sale_code) { + same_mater = false + } + }) + if (same_mater) { + const data = {} + data.material_id = row.material_id + data.material_code = row.material_code + data.material_name = row.material_name + data.plan_qty = row.product_qty + data.qty_unit_name = row.qty_unit_name + data.qty_unit_id = row.qty_unit_id + data.source_billdtl_id = row.sale_id + data.source_bill_type = row.sale_type + data.source_bill_code = row.sale_code + data.edit = true + this.form.tableData.splice(-1, 0, data) + this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(data.plan_qty) + this.form.detail_count = this.form.tableData.length + } }, insertEvent(row) { diff --git a/mes/qd/src/views/wms/storage_manage/product/productIn/AddDtl.vue b/mes/qd/src/views/wms/storage_manage/product/productIn/AddDtl.vue index 78bb9632..6ce023c3 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productIn/AddDtl.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productIn/AddDtl.vue @@ -20,7 +20,7 @@ > - + @@ -62,8 +62,13 @@ :data="crud.data" style="width: 100%;" @selection-change="crud.selectionChangeHandler" + @current-change="clickChange" > - + + + @@ -72,6 +77,7 @@ + @@ -104,7 +110,7 @@ export default { cruds() { return CRUD({ title: '用户', - url: '/api/mdPbBucketrecord', + url: '/api/mpsSaleOrder', crudMethod: {}, optShow: { reset: true @@ -125,6 +131,7 @@ export default { return { dialogVisible: false, rows: [], + tableRadio: null, tableData: [] } }, @@ -146,13 +153,13 @@ export default { close() { this.$emit('update:dialogShow', false) }, + clickChange(item) { + this.tableRadio = item + }, submit() { this.$emit('update:dialogShow', false) this.rows = this.$refs.multipleTable.selection - crudProductIn.queryBoxMater(this.rows).then(res => { - this.rows = res - this.$emit('tableChanged', this.rows) - }) + this.$emit('tableChanged', this.tableRadio) } } } diff --git a/mes/qd/src/views/wms/storage_manage/product/productOut/AddDialog.vue b/mes/qd/src/views/wms/storage_manage/product/productOut/AddDialog.vue index 870873d8..c08dc22f 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productOut/AddDialog.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productOut/AddDialog.vue @@ -325,27 +325,6 @@ export default { } } }, - tableChanged(rows) { - // 对新增的行进行校验不能存在相同物料批次 - rows.forEach((item) => { - let same_mater = true - this.form.tableData.forEach((row) => { - if (row.material_code === item.material_code) { - same_mater = false - } - }) - if (same_mater) { - item.quality_scode = '01' - item.ivt_level = '01' - item.is_active = '1' - item.plan_qty = '0' - item.edit = true - this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty) - this.form.tableData.splice(-1, 0, item) - } - }) - this.form.detail_count = this.form.tableData.length - }, tableChanged1(row) { this.nowrow.material_id = row.material_id this.nowrow.material_code = row.material_code @@ -356,7 +335,28 @@ export default { }, tableChanged2(row) { - + let same_mater = true + this.form.tableData.forEach((item) => { + if (item.source_bill_code === row.sale_code) { + same_mater = false + } + }) + if (same_mater) { + const data = {} + data.material_id = row.material_id + data.material_code = row.material_code + data.material_name = row.material_name + data.plan_qty = row.delivery_qty + data.qty_unit_name = row.qty_unit_name + data.qty_unit_id = row.qty_unit_id + data.source_billdtl_id = row.sale_id + data.source_bill_type = row.sale_type + data.source_bill_code = row.sale_code + data.edit = true + this.form.tableData.splice(-1, 0, data) + this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(data.plan_qty) + this.form.detail_count = this.form.tableData.length + } }, insertEvent(row) { this.dtlShow = true diff --git a/mes/qd/src/views/wms/storage_manage/product/productOut/AddDtl.vue b/mes/qd/src/views/wms/storage_manage/product/productOut/AddDtl.vue index 09bc1ce8..c7806383 100644 --- a/mes/qd/src/views/wms/storage_manage/product/productOut/AddDtl.vue +++ b/mes/qd/src/views/wms/storage_manage/product/productOut/AddDtl.vue @@ -1,7 +1,6 @@ -