feat(wms): 添加钢卷待操作记录恢复功能

- 在restoreAction方法中添加actionId参数非空验证
- 添加updateDelFlag自定义SQL方法绕过@TableLogic注解限制
- 修改restoreAction逻辑使用新的updateDelFlag方法更新删除标志
- 优化异常处理使用ServiceException替换RuntimeException
- 修正查询条件将del_flag检查从2改为1表示已删除状态
This commit is contained in:
2026-03-12 16:48:16 +08:00
parent 2b213f7475
commit db8696f9e7
3 changed files with 23 additions and 10 deletions

View File

@@ -106,7 +106,7 @@ public class WmsCoilPendingActionController extends BaseController {
*/ */
@Log(title = "钢卷待操作", businessType = BusinessType.UPDATE) @Log(title = "钢卷待操作", businessType = BusinessType.UPDATE)
@PutMapping("/status/{actionId}/{status}") @PutMapping("/status/{actionId}/{status}")
public R<Void> updateStatus(@PathVariable("actionId") Long actionId, public R<Void> updateStatus(@PathVariable("actionId") Long actionId,
@PathVariable("status") Integer status) { @PathVariable("status") Integer status) {
return toAjax(iWmsCoilPendingActionService.updateStatus(actionId, status)); return toAjax(iWmsCoilPendingActionService.updateStatus(actionId, status));
} }
@@ -143,7 +143,7 @@ public class WmsCoilPendingActionController extends BaseController {
*/ */
@Log(title = "钢卷待操作", businessType = BusinessType.UPDATE) @Log(title = "钢卷待操作", businessType = BusinessType.UPDATE)
@PutMapping("/restore/{actionId}") @PutMapping("/restore/{actionId}")
public R<Void> restoreAction(@PathVariable("actionId") Long actionId) { public R<Void> restoreAction(@PathVariable("actionId")@NotNull Long actionId) {
return toAjax(iWmsCoilPendingActionService.restoreAction(actionId)); return toAjax(iWmsCoilPendingActionService.restoreAction(actionId));
} }

View File

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.klp.common.core.domain.PageQuery; import com.klp.common.core.domain.PageQuery;
import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.page.TableDataInfo;
import com.klp.common.exception.ServiceException;
import com.klp.common.helper.LoginHelper; import com.klp.common.helper.LoginHelper;
import com.klp.common.utils.StringUtils; import com.klp.common.utils.StringUtils;
import com.klp.domain.WmsCoilPendingAction; import com.klp.domain.WmsCoilPendingAction;
@@ -286,20 +287,23 @@ public class WmsCoilPendingActionServiceImpl implements IWmsCoilPendingActionSer
*/ */
@Override @Override
public Boolean restoreAction(Long actionId) { public Boolean restoreAction(Long actionId) {
// 使用QueryWrapper查询不受逻辑删除影响检查记录是否存在且del_flag为2 // 参数校验
if (actionId == null) {
throw new ServiceException("操作ID不能为空");
}
// 使用QueryWrapper查询不受逻辑删除影响检查记录是否存在且del_flag为1(已删除)
WmsCoilPendingAction oldAction = baseMapper.selectOne(new QueryWrapper<WmsCoilPendingAction>() WmsCoilPendingAction oldAction = baseMapper.selectOne(new QueryWrapper<WmsCoilPendingAction>()
.eq("action_id", actionId) .eq("action_id", actionId)
.eq("del_flag", 2) .eq("del_flag", 2)
.last("LIMIT 1")); .last("LIMIT 1"));
if (oldAction == null) { if (oldAction == null) {
throw new RuntimeException("待操作记录不存在或未被删除"); throw new ServiceException("待操作记录不存在或未被删除");
} }
// 将del_flag改为0 // 使用自定义更新方法更新del_flag绕过@TableLogic注解限制
WmsCoilPendingAction action = new WmsCoilPendingAction(); int rows = baseMapper.updateDelFlag(actionId, 0);
action.setActionId(actionId); return rows > 0;
action.setDelFlag(0); // 恢复为正常状态
return baseMapper.updateById(action) > 0;
} }
@Override @Override

View File

@@ -88,5 +88,14 @@
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<!-- 更新删除标志(绕过@TableLogic注解限制) -->
<update id="updateDelFlag">
UPDATE wms_coil_pending_action
SET del_flag = #{delFlag}
WHERE action_id = #{actionId}
</update>
</mapper> </mapper>