feat(wms): 添加钢卷待操作记录恢复功能
- 在restoreAction方法中添加actionId参数非空验证 - 添加updateDelFlag自定义SQL方法绕过@TableLogic注解限制 - 修改restoreAction逻辑使用新的updateDelFlag方法更新删除标志 - 优化异常处理使用ServiceException替换RuntimeException - 修正查询条件将del_flag检查从2改为1表示已删除状态
This commit is contained in:
@@ -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));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user