diff --git a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java index f84b6056..2740e07a 100644 --- a/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java +++ b/klp-wms/src/main/java/com/klp/controller/WmsMaterialCoilController.java @@ -81,6 +81,18 @@ public class WmsMaterialCoilController extends BaseController { return toAjax(iWmsMaterialCoilService.exportCoil(coilId)); } + /** + * 钢卷发货撤回,将钢卷状态更新为未发货,且清空发货时间 + * + * @param coilId 主键 + */ + @Log(title = "钢卷物料表", businessType = BusinessType.UPDATE) + @GetMapping("/withdrawExportCoil/{coilId}") + public R withdrawExport(@NotNull(message = "主键不能为空") + @PathVariable("coilId") Long coilId) { + + return toAjax(iWmsMaterialCoilService.withdrawExportCoil(coilId)); + } /** * 获取钢卷物料表详细信息 * diff --git a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java index 22bfa1bb..ac823082 100644 --- a/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java +++ b/klp-wms/src/main/java/com/klp/mapper/WmsMaterialCoilMapper.java @@ -53,5 +53,15 @@ public interface WmsMaterialCoilMapper extends BaseMapperPlus selectExportList(@Param("ew")QueryWrapper lqw); + + /** + * 更新钢卷发货撤回:将发货时间置空,状态改为指定值 + * + * @param coilId 钢卷ID + * @param status 目标状态 + * @return 影响行数 + */ + int updateForWithdrawExport(@Param("coilId") Long coilId, @Param("status") Integer status); + } diff --git a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java index 1fdadd3b..be612b0c 100644 --- a/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java +++ b/klp-wms/src/main/java/com/klp/service/IWmsMaterialCoilService.java @@ -6,6 +6,7 @@ import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; import java.util.Collection; import java.util.List; import java.util.Map; @@ -111,5 +112,6 @@ public interface IWmsMaterialCoilService { */ Map getUpdatedCoilIdsByOldCoilIds(List oldCoilIds); + int withdrawExportCoil(@NotNull(message = "主键不能为空") Long coilId); } diff --git a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java index 2e2d2a8f..33799888 100644 --- a/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java +++ b/klp-wms/src/main/java/com/klp/service/impl/WmsMaterialCoilServiceImpl.java @@ -1853,6 +1853,34 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService { return baseMapper.updateById(BeanUtil.toBean(wmsMaterialCoilVo,WmsMaterialCoil.class)); } + /** + * 钢卷发货撤回 + * @param coilId + * @return + */ + @Override + @Transactional + public int withdrawExportCoil(Long coilId) { + // 参数校验 + if (coilId == null) { + throw new IllegalArgumentException("钢卷ID不能为空"); + } + + WmsMaterialCoilVo wmsMaterialCoilVo = queryById(coilId); + if (wmsMaterialCoilVo == null) { + throw new RuntimeException("钢卷不存在"); + } + + // 检查当前状态是否为已发货状态 + if (wmsMaterialCoilVo.getStatus() != 1) { + throw new RuntimeException("该钢卷并没有发货,无法撤回"); + } + + // 调用自定义的Mapper方法,只更新发货时间和状态字段 + return baseMapper.updateForWithdrawExport(coilId, 0); + } + + /** * 构建查询条件 */ diff --git a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml index 714a105c..5e655e61 100644 --- a/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml +++ b/klp-wms/src/main/resources/mapper/klp/WmsMaterialCoilMapper.xml @@ -427,6 +427,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${ew.customSqlSegment} + + + UPDATE wms_material_coil + SET export_time = NULL, + status = #{status} + WHERE coil_id = #{coilId} +