feat(wms): 添加钢卷变更日志功能
- 新增钢卷变更日志的Service接口及实现类 - 创建钢卷变更日志的业务对象BO和视图对象VO - 实现钢卷变更日志的控制器提供CRUD操作接口 - 添加钢卷变更日志的数据库映射和表结构定义 - 开发钢卷变更日志注解和AOP切面自动记录变更 - 定义钢卷变更类型的枚举类支持多种变更场景 - 在钢卷相关业务方法中集成变更日志记录功能 - 创建钢卷变更日志的数据表SQL脚本文件
This commit is contained in:
@@ -16,6 +16,8 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.klp.common.helper.LoginHelper;
|
||||
import com.klp.common.utils.DateUtils;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import com.klp.wms.annotation.CoilChangeLog;
|
||||
import com.klp.wms.enums.CoilChangeType;
|
||||
import com.klp.domain.*;
|
||||
import com.klp.domain.bo.*;
|
||||
import com.klp.domain.vo.*;
|
||||
@@ -1850,6 +1852,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CoilChangeLog(value = "质量改判", changeType = CoilChangeType.QUALITY_CHANGE)
|
||||
public void updateQualityStatus(Long coilId, String newQuality, String reason) {
|
||||
if (coilId == null || StringUtils.isBlank(newQuality)) {
|
||||
log.warn("updateQualityStatus 参数不足: coilId={}, newQuality={}", coilId, newQuality);
|
||||
@@ -1903,6 +1906,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CoilChangeLog(value = "入场收货", changeType = CoilChangeType.INSERT, coilIdBoField = "coilId")
|
||||
public WmsMaterialCoilVo insertByBo(WmsMaterialCoilBo bo) {
|
||||
// 检查当前钢卷号是否重复(新增)
|
||||
Map<String, Object> duplicateCheck = checkCoilNoDuplicate(null, null, bo.getCurrentCoilNo(), null);
|
||||
@@ -2056,6 +2060,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CoilChangeLog(value = "钢卷加工", changeType = CoilChangeType.PROCESS, coilIdBoField = "coilId")
|
||||
public String updateByBo(WmsMaterialCoilBo bo, String qrcodeStepType) {
|
||||
String result;
|
||||
// 判断是否批量更新
|
||||
@@ -2084,6 +2089,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CoilChangeLog(value = "简单更新", changeType = CoilChangeType.UPDATE, coilIdBoField = "coilId")
|
||||
public Boolean updateSimple(WmsMaterialCoilBo bo) {
|
||||
if (bo.getCoilId() == null) {
|
||||
throw new RuntimeException("钢卷ID不能为空");
|
||||
@@ -3279,6 +3285,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
* 批量删除钢卷物料表
|
||||
*/
|
||||
@Override
|
||||
@CoilChangeLog(value = "删除", changeType = CoilChangeType.DELETE, coilIdParam = "ids", isBatch = true)
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if (isValid) {
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
@@ -4010,6 +4017,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
@CoilChangeLog(value = "发货", changeType = CoilChangeType.EXPORT)
|
||||
public int exportCoil(Long coilId) {
|
||||
// 检查独占状态
|
||||
validateCoilOperationPermission(coilId, "发货");
|
||||
@@ -4090,6 +4098,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CoilChangeLog(value = "合卷", changeType = CoilChangeType.MERGE, coilIdBoField = "coilId")
|
||||
public Long mergeCoils(WmsMaterialCoilBo bo) {
|
||||
if (bo.getNewCoils() == null || bo.getNewCoils().isEmpty()) {
|
||||
throw new RuntimeException("合卷操作需要提供参与合卷的钢卷列表");
|
||||
@@ -4176,6 +4185,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
@CoilChangeLog(value = "发货撤回", changeType = CoilChangeType.UPDATE)
|
||||
public int withdrawExportCoil(Long coilId) {
|
||||
// 参数校验
|
||||
if (coilId == null) {
|
||||
@@ -4205,6 +4215,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
* @return 是否更新成功
|
||||
*/
|
||||
@Override
|
||||
@CoilChangeLog(value = "批量更新发货状态", changeType = CoilChangeType.UPDATE, coilIdParam = "coilIds", isBatch = true)
|
||||
public Boolean batchUpdateDeliveryStatus(List<Long> coilIds, Integer status) {
|
||||
if (coilIds == null || coilIds.isEmpty()) {
|
||||
return false;
|
||||
@@ -4616,6 +4627,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CoilChangeLog(value = "回滚", changeType = CoilChangeType.ROLLBACK, coilIdParam = "currentCoilId")
|
||||
public Map<String, Object> rollbackCoil(Long currentCoilId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
result.put("success", false);
|
||||
@@ -5596,6 +5608,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CoilChangeLog(value = "创建子卷", changeType = CoilChangeType.SPLIT, coilIdParam = "parentCoilId")
|
||||
public WmsMaterialCoilVo createChildCoilInSpecialSplit(Long parentCoilId, WmsMaterialCoilBo childCoilBo, Long pendingActionId) {
|
||||
// 1. 查询母卷信息
|
||||
WmsMaterialCoil parentCoil = baseMapper.selectById(parentCoilId);
|
||||
@@ -5921,6 +5934,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@CoilChangeLog(value = "退货", changeType = CoilChangeType.PROCESS)
|
||||
public WmsMaterialCoilVo returnCoil(Long coilId) {
|
||||
if (coilId == null) {
|
||||
throw new RuntimeException("钢卷ID不能为空");
|
||||
@@ -6200,6 +6214,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@CoilChangeLog(value = "修复材质异常", changeType = CoilChangeType.UPDATE)
|
||||
public Boolean fixMaterialMismatchCoils(Long coilId) {
|
||||
WmsMaterialCoil coil = baseMapper.selectById(coilId);
|
||||
if (coil == null) {
|
||||
@@ -6616,6 +6631,7 @@ public class WmsMaterialCoilServiceImpl implements IWmsMaterialCoilService {
|
||||
}
|
||||
|
||||
@Override
|
||||
@CoilChangeLog(value = "解锁钢卷", changeType = CoilChangeType.UPDATE)
|
||||
public Boolean unlockCoil(Long coilId) {
|
||||
if (coilId == null) {
|
||||
throw new RuntimeException("钢卷ID不能为空");
|
||||
|
||||
Reference in New Issue
Block a user