fix: 追加数量后重新打开已完成作业
This commit is contained in:
@@ -97,6 +97,12 @@ public interface DailyPlanMapper extends BaseMapperX<DailyPlanDO> {
|
|||||||
/** 原子确认数量并开始未开始订单。 */
|
/** 原子确认数量并开始未开始订单。 */
|
||||||
int startOrderWithVersion(@Param("plan") DailyPlanDO plan);
|
int startOrderWithVersion(@Param("plan") DailyPlanDO plan);
|
||||||
|
|
||||||
|
/** 原子追加需求数量,并重新打开已经完成的备货、套管作业。 */
|
||||||
|
int appendQuantityWithVersion(@Param("dailyPlanId") Long dailyPlanId,
|
||||||
|
@Param("appendQty") Integer appendQty,
|
||||||
|
@Param("version") Integer version,
|
||||||
|
@Param("updater") String updater);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 乐观锁恢复已取消的订单状态,并清空前一订单状态。
|
* 乐观锁恢复已取消的订单状态,并清空前一订单状态。
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -400,11 +400,21 @@ public class DailyPlanServiceImpl implements DailyPlanService {
|
|||||||
public void appendQuantity(DailyPlanAppendReqVO reqVO) {
|
public void appendQuantity(DailyPlanAppendReqVO reqVO) {
|
||||||
DailyPlanDO current = validateVersion(reqVO.getId(), reqVO.getVersion());
|
DailyPlanDO current = validateVersion(reqVO.getId(), reqVO.getVersion());
|
||||||
validateOrderStatus(current, DailyPlanOrderStatusEnum.IN_PROGRESS, "追加数量");
|
validateOrderStatus(current, DailyPlanOrderStatusEnum.IN_PROGRESS, "追加数量");
|
||||||
DailyPlanDO update = newUpdate(current);
|
Integer appendQty = safeAddQuantity(current.getAppendQty(), reqVO.getAppendQty());
|
||||||
update.setAppendQty(safeAddQuantity(current.getAppendQty(), reqVO.getAppendQty()));
|
checkAffected(dailyPlanMapper.appendQuantityWithVersion(current.getDailyPlanId(), reqVO.getAppendQty(),
|
||||||
checkAffected(dailyPlanMapper.updateStateWithVersion(update));
|
current.getVersion(), String.valueOf(getLoginUserId())));
|
||||||
insertLog(current.getDailyPlanId(), TARGET_QUANTITY, TYPE_APPEND, String.valueOf(current.getAppendQty()),
|
insertLog(current.getDailyPlanId(), TARGET_QUANTITY, TYPE_APPEND, String.valueOf(current.getAppendQty()),
|
||||||
String.valueOf(update.getAppendQty()), reqVO.getAppendQty(), null);
|
String.valueOf(appendQty), reqVO.getAppendQty(), null);
|
||||||
|
if (DailyPlanWorkStatusEnum.COMPLETED.getCode().equals(current.getStockingStatus())) {
|
||||||
|
insertLog(current.getDailyPlanId(), TARGET_STOCKING, TYPE_RESTORE,
|
||||||
|
String.valueOf(current.getStockingStatus()),
|
||||||
|
String.valueOf(DailyPlanWorkStatusEnum.IN_PROGRESS.getCode()), null, "追加数量,重新开始备货");
|
||||||
|
}
|
||||||
|
if (DailyPlanWorkStatusEnum.COMPLETED.getCode().equals(current.getSleevingStatus())) {
|
||||||
|
insertLog(current.getDailyPlanId(), TARGET_SLEEVING, TYPE_RESTORE,
|
||||||
|
String.valueOf(current.getSleevingStatus()),
|
||||||
|
String.valueOf(DailyPlanWorkStatusEnum.IN_PROGRESS.getCode()), null, "追加数量,重新开始套管");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 开始备货。 */
|
/** 开始备货。 */
|
||||||
|
|||||||
@@ -264,6 +264,21 @@
|
|||||||
AND deleted = b'0'
|
AND deleted = b'0'
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<update id="appendQuantityWithVersion">
|
||||||
|
UPDATE lms_daily_plan
|
||||||
|
SET stocking_complete_time = CASE WHEN stocking_status = 2 THEN NULL ELSE stocking_complete_time END,
|
||||||
|
sleeving_complete_time = CASE WHEN sleeving_status = 2 THEN NULL ELSE sleeving_complete_time END,
|
||||||
|
stocking_status = CASE WHEN stocking_status = 2 THEN 1 ELSE stocking_status END,
|
||||||
|
sleeving_status = CASE WHEN sleeving_status = 2 THEN 1 ELSE sleeving_status END,
|
||||||
|
append_qty = append_qty + #{appendQty},
|
||||||
|
updater = #{updater},
|
||||||
|
version = version + 1
|
||||||
|
WHERE daily_plan_id = #{dailyPlanId}
|
||||||
|
AND version = #{version}
|
||||||
|
AND order_status = 1
|
||||||
|
AND deleted = b'0'
|
||||||
|
</update>
|
||||||
|
|
||||||
<update id="updateSortWithVersion">
|
<update id="updateSortWithVersion">
|
||||||
UPDATE lms_daily_plan
|
UPDATE lms_daily_plan
|
||||||
SET sort_seq = #{sortSeq}, updater = #{updater}, version = version + 1
|
SET sort_seq = #{sortSeq}, updater = #{updater}, version = version + 1
|
||||||
|
|||||||
Reference in New Issue
Block a user