Commit f801196822b3bc298abfb76cd62ee2b8f87509eb

Authored by YunaiV
1 parent fcf7db04

✨ feat(mes): 新增盘点方案保存数据校验逻辑,优化动态盘点时间处理

yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/plan/MesWmStockTakingPlanServiceImpl.java
... ... @@ -10,6 +10,7 @@ import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.plan.vo.MesWm
10 10 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanDO;
11 11 import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO;
12 12 import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan.MesWmStockTakingPlanMapper;
  13 +import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingTypeEnum;
13 14 import jakarta.annotation.Resource;
14 15 import org.springframework.stereotype.Service;
15 16 import org.springframework.transaction.annotation.Transactional;
... ... @@ -38,8 +39,8 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ
38 39  
39 40 @Override
40 41 public Long createStockTakingPlan(MesWmStockTakingPlanSaveReqVO createReqVO) {
41   - // 校验 code 的唯一性
42   - validatePlanCodeUnique(null, createReqVO.getCode());
  42 + // 校验并处理保存数据
  43 + validatePlanSaveData(createReqVO);
43 44  
44 45 // 插入数据
45 46 MesWmStockTakingPlanDO plan = BeanUtils.toBean(createReqVO, MesWmStockTakingPlanDO.class);
... ... @@ -52,8 +53,8 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ
52 53 public void updateStockTakingPlan(MesWmStockTakingPlanSaveReqVO updateReqVO) {
53 54 // 校验盘点方案存在,并且是可编辑状态
54 55 validatePlanEditable(updateReqVO.getId());
55   - // 校验 code 的唯一性
56   - validatePlanCodeUnique(updateReqVO.getId(), updateReqVO.getCode());
  56 + // 校验并处理保存数据
  57 + validatePlanSaveData(updateReqVO);
57 58  
58 59 // 更新数据
59 60 MesWmStockTakingPlanDO updateObj = BeanUtils.toBean(updateReqVO, MesWmStockTakingPlanDO.class);
... ... @@ -152,4 +153,21 @@ public class MesWmStockTakingPlanServiceImpl implements MesWmStockTakingPlanServ
152 153 return plan;
153 154 }
154 155  
  156 + private void validatePlanSaveData(MesWmStockTakingPlanSaveReqVO saveReqVO) {
  157 + // 校验 code 的唯一性
  158 + validatePlanCodeUnique(saveReqVO.getId(), saveReqVO.getCode());
  159 +
  160 + // 校验/处理动态盘点时间
  161 + if (ObjUtil.notEqual(MesWmStockTakingTypeEnum.DYNAMIC.getType(), saveReqVO.getType())) {
  162 + // 非动态盘点类型清空时间字段
  163 + saveReqVO.setStartTime(null);
  164 + saveReqVO.setEndTime(null);
  165 + } else {
  166 + if (saveReqVO.getStartTime() == null || saveReqVO.getEndTime() == null
  167 + || saveReqVO.getStartTime().compareTo(saveReqVO.getEndTime()) >= 0) {
  168 + throw exception(WM_STOCK_TAKING_PLAN_DYNAMIC_TIME_INVALID);
  169 + }
  170 + }
  171 + }
  172 +
155 173 }
... ...