Commit bab71fce0017f010d96b85d35defe7fe8859dc35
1 parent
f8011968
✨ feat(mes): 优化库存冻结逻辑,更新盘点任务处理流程
重构库存冻结和解冻逻辑,合并相关方法以提高代码可读性和维护性。 新增表单提交和执行盘点的处理逻辑,确保用户操作的流畅性和准确性。
Showing
2 changed files
with
11 additions
and
35 deletions
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskLineServiceImpl.java
| ... | ... | @@ -12,12 +12,12 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.wm.materialstock.MesWmMaterial |
| 12 | 12 | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.plan.MesWmStockTakingPlanParamDO; |
| 13 | 13 | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskDO; |
| 14 | 14 | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskLineDO; |
| 15 | -import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.plan.MesWmStockTakingPlanParamMapper; | |
| 16 | 15 | import cn.iocoder.yudao.module.mes.dal.mysql.wm.stocktaking.task.MesWmStockTakingTaskLineMapper; |
| 17 | 16 | import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingPlanParamTypeEnum; |
| 18 | 17 | import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingTaskLineStatusEnum; |
| 19 | 18 | import cn.iocoder.yudao.module.mes.enums.wm.MesWmStockTakingTypeEnum; |
| 20 | 19 | import cn.iocoder.yudao.module.mes.service.wm.materialstock.MesWmMaterialStockService; |
| 20 | +import cn.iocoder.yudao.module.mes.service.wm.stocktaking.plan.MesWmStockTakingPlanParamService; | |
| 21 | 21 | import jakarta.annotation.Resource; |
| 22 | 22 | import org.springframework.stereotype.Service; |
| 23 | 23 | import org.springframework.transaction.annotation.Transactional; |
| ... | ... | @@ -44,7 +44,7 @@ public class MesWmStockTakingTaskLineServiceImpl implements MesWmStockTakingTask |
| 44 | 44 | @Resource |
| 45 | 45 | private MesWmStockTakingTaskLineMapper stockTakingTaskLineMapper; |
| 46 | 46 | @Resource |
| 47 | - private MesWmStockTakingPlanParamMapper stockTakingPlanParamMapper; | |
| 47 | + private MesWmStockTakingPlanParamService stockTakingPlanParamService; | |
| 48 | 48 | @Resource |
| 49 | 49 | private MesWmMaterialStockService materialStockService; |
| 50 | 50 | @Resource |
| ... | ... | @@ -139,7 +139,7 @@ public class MesWmStockTakingTaskLineServiceImpl implements MesWmStockTakingTask |
| 139 | 139 | */ |
| 140 | 140 | private MesWmMaterialStockListReqVO buildStockQueryReqVO(MesWmStockTakingTaskDO task) { |
| 141 | 141 | // 1. 从方案参数中提取过滤条件 |
| 142 | - List<MesWmStockTakingPlanParamDO> params = stockTakingPlanParamMapper.selectListByPlanId(task.getPlanId()); | |
| 142 | + List<MesWmStockTakingPlanParamDO> params = stockTakingPlanParamService.getStockTakingPlanParamListByPlanId(task.getPlanId()); | |
| 143 | 143 | Assert.notEmpty(params, "盘点方案参数不能为空"); |
| 144 | 144 | |
| 145 | 145 | // 2.1 拼接通用参数 | ... | ... |
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/wm/stocktaking/task/MesWmStockTakingTaskServiceImpl.java
| ... | ... | @@ -4,7 +4,6 @@ import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.hutool.core.util.ObjUtil; |
| 5 | 5 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 6 | 6 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 7 | -import cn.iocoder.yudao.module.mes.controller.admin.wm.materialstock.vo.MesWmMaterialStockFreezeReqVO; | |
| 8 | 7 | import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.MesWmStockTakingTaskPageReqVO; |
| 9 | 8 | import cn.iocoder.yudao.module.mes.controller.admin.wm.stocktaking.task.vo.MesWmStockTakingTaskSaveReqVO; |
| 10 | 9 | import cn.iocoder.yudao.module.mes.dal.dataobject.wm.stocktaking.task.MesWmStockTakingTaskDO; |
| ... | ... | @@ -20,10 +19,10 @@ import org.springframework.stereotype.Service; |
| 20 | 19 | import org.springframework.transaction.annotation.Transactional; |
| 21 | 20 | import org.springframework.validation.annotation.Validated; |
| 22 | 21 | |
| 23 | -import java.math.BigDecimal; | |
| 24 | 22 | import java.util.List; |
| 25 | 23 | |
| 26 | 24 | import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; |
| 25 | +import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList; | |
| 27 | 26 | import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; |
| 28 | 27 | |
| 29 | 28 | /** |
| ... | ... | @@ -128,13 +127,8 @@ public class MesWmStockTakingTaskServiceImpl implements MesWmStockTakingTaskServ |
| 128 | 127 | .setStatus(MesWmStockTakingTaskStatusEnum.APPROVING.getStatus())); |
| 129 | 128 | |
| 130 | 129 | // 3. 根据冻结标识,对物资进行冻结 |
| 131 | - // TODO @芋艿:后续跟进下! | |
| 132 | 130 | if (Boolean.TRUE.equals(task.getFrozen())) { |
| 133 | - for (MesWmStockTakingTaskLineDO line : lines) { | |
| 134 | - if (line.getMaterialStockId() != null) { | |
| 135 | - updateMaterialStockFrozen(line.getMaterialStockId(), true); | |
| 136 | - } | |
| 137 | - } | |
| 131 | + updateMaterialStockFrozen(lines, true); | |
| 138 | 132 | } |
| 139 | 133 | } |
| 140 | 134 | |
| ... | ... | @@ -149,10 +143,9 @@ public class MesWmStockTakingTaskServiceImpl implements MesWmStockTakingTaskServ |
| 149 | 143 | .setStatus(MesWmStockTakingTaskStatusEnum.FINISHED.getStatus())); |
| 150 | 144 | |
| 151 | 145 | // 3. 解冻库存 |
| 152 | - // TODO @芋艿:后续跟进下! | |
| 153 | 146 | if (Boolean.TRUE.equals(task.getFrozen())) { |
| 154 | 147 | List<MesWmStockTakingTaskLineDO> lines = stockTakingTaskLineService.getStockTakingTaskLineListByTaskId(id); |
| 155 | - unfreezeStockTakingTaskStocks(lines); | |
| 148 | + updateMaterialStockFrozen(lines, false); | |
| 156 | 149 | } |
| 157 | 150 | } |
| 158 | 151 | |
| ... | ... | @@ -167,7 +160,7 @@ public class MesWmStockTakingTaskServiceImpl implements MesWmStockTakingTaskServ |
| 167 | 160 | task.setStatus(MesWmStockTakingTaskStatusEnum.CANCELED.getStatus()); |
| 168 | 161 | stockTakingTaskMapper.updateById(task); |
| 169 | 162 | if (Boolean.TRUE.equals(task.getFrozen())) { |
| 170 | - unfreezeStockTakingTaskStocks(stockTakingTaskLineService.getStockTakingTaskLineListByTaskId(id)); | |
| 163 | + updateMaterialStockFrozen(stockTakingTaskLineService.getStockTakingTaskLineListByTaskId(id), false); | |
| 171 | 164 | } |
| 172 | 165 | } |
| 173 | 166 | |
| ... | ... | @@ -208,30 +201,13 @@ public class MesWmStockTakingTaskServiceImpl implements MesWmStockTakingTaskServ |
| 208 | 201 | return stockTakingTaskMapper.selectPage(pageReqVO); |
| 209 | 202 | } |
| 210 | 203 | |
| 211 | - private void updateMaterialStockFrozen(Long materialStockId, boolean frozen) { | |
| 212 | - MesWmMaterialStockFreezeReqVO reqVO = new MesWmMaterialStockFreezeReqVO(); | |
| 213 | - reqVO.setId(materialStockId); | |
| 214 | - reqVO.setFrozen(frozen); | |
| 215 | - materialStockService.updateMaterialStockFrozen(reqVO); | |
| 216 | - } | |
| 217 | - | |
| 218 | - private void unfreezeStockTakingTaskStocks(List<MesWmStockTakingTaskLineDO> lines) { | |
| 204 | + private void updateMaterialStockFrozen(List<MesWmStockTakingTaskLineDO> lines, boolean frozen) { | |
| 219 | 205 | if (CollUtil.isEmpty(lines)) { |
| 220 | 206 | return; |
| 221 | 207 | } |
| 222 | - for (MesWmStockTakingTaskLineDO line : lines) { | |
| 223 | - if (line.getMaterialStockId() != null) { | |
| 224 | - updateMaterialStockFrozen(line.getMaterialStockId(), false); | |
| 225 | - } | |
| 226 | - } | |
| 227 | - } | |
| 228 | - | |
| 229 | - private BigDecimal calculateStockTakingDifferenceQuantity(MesWmStockTakingTaskLineDO line) { | |
| 230 | - return getDefaultQuantity(line.getTakingQuantity()).subtract(getDefaultQuantity(line.getQuantity())); | |
| 231 | - } | |
| 232 | - | |
| 233 | - private BigDecimal getDefaultQuantity(BigDecimal quantity) { | |
| 234 | - return quantity == null ? BigDecimal.ZERO : quantity; | |
| 208 | + List<Long> materialStockIds = convertList(lines, | |
| 209 | + MesWmStockTakingTaskLineDO::getMaterialStockId, line -> line.getMaterialStockId() != null); | |
| 210 | + materialStockService.updateMaterialStockFrozen(materialStockIds, frozen); | |
| 235 | 211 | } |
| 236 | 212 | |
| 237 | 213 | private void validateStockTakingTaskCodeUnique(Long id, String code) { | ... | ... |