diff --git a/win-module-infra/win-module-infra-api/src/main/java/com/win/module/infra/enums/TrendsTypeEnum.java b/win-module-infra/win-module-infra-api/src/main/java/com/win/module/infra/enums/TrendsTypeEnum.java new file mode 100644 index 00000000..6a2a3c0c --- /dev/null +++ b/win-module-infra/win-module-infra-api/src/main/java/com/win/module/infra/enums/TrendsTypeEnum.java @@ -0,0 +1,48 @@ +package com.win.module.infra.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.stream.Stream; + +@Getter +@AllArgsConstructor +public enum TrendsTypeEnum { + + CREATE(1, "创建"), + UPDATE(2, "修改"), + DELETE(3, "删除"), + UPDATE_STATUS(4, "修改状态"), + UPLOAD_ANNEX(5, "上传附件"), + DELETE_ANNEX(6, "删除附件"), + CREATE_REMARK(7, "增加备注"), + DELETE_REMARK(8, "增加备注"); + + /** + * 状态值 + */ + private final Integer type; + /** + * 状态名 + */ + private final String name; + + public static TrendsTypeEnum convert(Integer value) { + return Stream.of(values()) + .filter(bean -> bean.type.equals(value)) + .findAny() + .orElse(CREATE); + } + + public static TrendsTypeEnum convert(String description) { + return Stream.of(values()) + .filter(bean -> bean.name.equals(description)) + .findAny() + .orElse(CREATE); + } + + public static String[] getStatusNameArray() { + return Stream.of(values()).map(TrendsTypeEnum::getName).toArray(String[]::new); + } + +} diff --git a/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/file/FileServiceImpl.java b/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/file/FileServiceImpl.java index c469d1b7..798b1e90 100644 --- a/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/file/FileServiceImpl.java +++ b/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/file/FileServiceImpl.java @@ -8,7 +8,10 @@ import com.win.framework.file.core.client.FileClient; import com.win.framework.file.core.utils.FileTypeUtils; import com.win.module.infra.controller.file.vo.file.FilePageReqVO; import com.win.module.infra.dal.dataobject.file.FileDO; +import com.win.module.infra.dal.dataobject.trends.TrendsDO; import com.win.module.infra.dal.mysql.file.FileMapper; +import com.win.module.infra.dal.mysql.trends.TrendsMapper; +import com.win.module.infra.enums.TrendsTypeEnum; import lombok.SneakyThrows; import org.springframework.stereotype.Service; @@ -31,6 +34,9 @@ public class FileServiceImpl implements FileService { @Resource private FileMapper fileMapper; + @Resource + private TrendsMapper trendsMapper; + @Override public PageResult getFilePage(FilePageReqVO pageReqVO) { return fileMapper.selectPage(pageReqVO); @@ -65,6 +71,13 @@ public class FileServiceImpl implements FileService { file.setTableName(tableName); file.setTableId(tableId); fileMapper.insert(file); + + TrendsDO trendsDO = new TrendsDO(); + trendsDO.setTableName(tableName); + trendsDO.setTableId(tableId); + trendsDO.setType(TrendsTypeEnum.UPLOAD_ANNEX.getType()); + trendsDO.setContent("上传了附件"); + trendsMapper.insert(trendsDO); return url; } @@ -78,6 +91,12 @@ public class FileServiceImpl implements FileService { Assert.notNull(client, "客户端({}) 不能为空", file.getConfigId()); client.delete(file.getPath()); + TrendsDO trendsDO = new TrendsDO(); + trendsDO.setTableName(file.getTableName()); + trendsDO.setTableId(file.getTableId()); + trendsDO.setType(TrendsTypeEnum.DELETE_ANNEX.getType()); + trendsDO.setContent("删除了附件"); + trendsMapper.insert(trendsDO); // 删除记录 fileMapper.deleteById(id); } diff --git a/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/remark/RemarkServiceImpl.java b/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/remark/RemarkServiceImpl.java index 6a2ed9ee..6a5e6fbf 100644 --- a/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/remark/RemarkServiceImpl.java +++ b/win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/service/remark/RemarkServiceImpl.java @@ -4,7 +4,10 @@ import com.win.module.infra.controller.remark.vo.RemarkCreateReqVO; import com.win.module.infra.controller.remark.vo.RemarkListReqVO; import com.win.module.infra.convert.remark.RemarkConvert; import com.win.module.infra.dal.dataobject.remark.RemarkDO; +import com.win.module.infra.dal.dataobject.trends.TrendsDO; import com.win.module.infra.dal.mysql.remark.RemarkMapper; +import com.win.module.infra.dal.mysql.trends.TrendsMapper; +import com.win.module.infra.enums.TrendsTypeEnum; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; @@ -23,11 +26,20 @@ public class RemarkServiceImpl implements RemarkService { @Resource private RemarkMapper remarkMapper; + @Resource + private TrendsMapper trendsMapper; + @Override public Long createRemark(RemarkCreateReqVO createReqVO) { // 插入 RemarkDO remark = RemarkConvert.INSTANCE.convert(createReqVO); remarkMapper.insert(remark); + TrendsDO trendsDO = new TrendsDO(); + trendsDO.setTableName(createReqVO.getTableName()); + trendsDO.setTableId(createReqVO.getTableId()); + trendsDO.setType(TrendsTypeEnum.CREATE_REMARK.getType()); + trendsDO.setContent("上传了附件"); + trendsMapper.insert(trendsDO); // 返回 return remark.getId(); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itembasic/ItembasicController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itembasic/ItembasicController.java index 2f389b61..3dccd015 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itembasic/ItembasicController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/itembasic/ItembasicController.java @@ -68,9 +68,17 @@ public class ItembasicController { return success(true); } + @PutMapping("/updateStatus") + @Operation(summary = "更新物品状态") + @PreAuthorize("@ss.hasPermission('wms:itembasic:update')") + public CommonResult updateItembasicStatus(@Valid @RequestBody ItembasicUpdateReqVO updateReqVO) { + itembasicService.updateItembasicStatus(updateReqVO); + return success(true); + } + @Operation(summary = "校验code唯一") public void checkCodeOnly(ItembasicBaseVO vo){ - QueryWrapper queryWrapper = new QueryWrapper(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("code",vo.getCode()); if(!(null == itembasicMapper.selectOne(queryWrapper))){ ItembasicDO itembasicDO = itembasicMapper.selectOne(queryWrapper); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java index 755e48ee..4858b4dd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicService.java @@ -30,6 +30,13 @@ public interface ItembasicService { */ void updateItembasic(@Valid ItembasicUpdateReqVO updateReqVO); + /** + * 更新物品基本信息 + * + * @param updateReqVO 更新信息 + */ + void updateItembasicStatus(ItembasicUpdateReqVO updateReqVO); + /** * 删除物品基本信息 * diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java index f76c283c..114ef893 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java @@ -7,6 +7,9 @@ import com.google.common.annotations.VisibleForTesting; import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.PageResult; import com.win.framework.datapermission.core.util.DataPermissionUtils; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.api.trends.dto.TrendsCreateReqDTO; +import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.wms.controller.itembasic.vo.*; import com.win.module.wms.convert.itembasic.ItembasicConvert; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; @@ -34,6 +37,8 @@ public class ItembasicServiceImpl implements ItembasicService { @Resource private ItembasicMapper itembasicMapper; + @Resource + private TrendsApi trendsApi; @Override public Long createItembasic(ItembasicCreateReqVO createReqVO) { @@ -43,6 +48,7 @@ public class ItembasicServiceImpl implements ItembasicService { // 插入 ItembasicDO itembasic = ItembasicConvert.INSTANCE.convert(createReqVO); itembasicMapper.insert(itembasic); + trendsApi.createTrends(this.newTrendsCreateReqDTO(itembasic.getId(), null, TrendsTypeEnum.CREATE)); // 返回 return itembasic.getId(); } @@ -54,16 +60,39 @@ public class ItembasicServiceImpl implements ItembasicService { ,updateReqVO.getEnableMake(),updateReqVO.getEnableOutsourcing(),updateReqVO.getIsRecycled(),updateReqVO.getIsPhantom(),updateReqVO.getAbcClass(),updateReqVO.getType() ,updateReqVO.getValidityDays(),updateReqVO.getAvailable()); // 更新 + ItembasicDO itembasic = this.getItembasic(updateReqVO.getId()); + trendsApi.createTrends(this.newTrendsCreateReqDTO(updateReqVO.getId(), itembasic.toString(), TrendsTypeEnum.UPDATE)); ItembasicDO updateObj = ItembasicConvert.INSTANCE.convert(updateReqVO); itembasicMapper.updateById(updateObj); } + @Override + public void updateItembasicStatus(ItembasicUpdateReqVO updateReqVO) { + // 校验存在 + ItembasicDO updateObj = validateItembasicExists(updateReqVO.getId()); + trendsApi.createTrends(this.newTrendsCreateReqDTO(updateObj.getId(), "状态由" + updateObj.getStatus() + "改为" + updateReqVO.getStatus(), TrendsTypeEnum.UPDATE_STATUS)); + // 更新 + updateObj.setId(updateReqVO.getId()); + updateObj.setStatus(updateReqVO.getStatus()); + itembasicMapper.updateById(updateObj); + } + @Override public void deleteItembasic(Long id) { // 校验存在 - validateItembasicExists(id); + ItembasicDO itembasic = validateItembasicExists(id); // 删除 itembasicMapper.deleteById(id); + trendsApi.createTrends(this.newTrendsCreateReqDTO(id, itembasic.toString(), TrendsTypeEnum.DELETE)); + } + + private TrendsCreateReqDTO newTrendsCreateReqDTO(Long id, String content, TrendsTypeEnum trendsTypeEnum) { + TrendsCreateReqDTO trendsCreateReqDTO = new TrendsCreateReqDTO(); + trendsCreateReqDTO.setTableName("basicItembasic"); + trendsCreateReqDTO.setTableId(id); + trendsCreateReqDTO.setType(trendsTypeEnum.getType()); + trendsCreateReqDTO.setContent(content); + return trendsCreateReqDTO; } @Override @@ -145,14 +174,15 @@ public class ItembasicServiceImpl implements ItembasicService { }); } @VisibleForTesting - private void validateItembasicExists(Long id) { + private ItembasicDO validateItembasicExists(Long id) { if (id == null) { - return; + return null; } ItembasicDO itembasic = itembasicMapper.selectById(id); if (itembasic == null) { throw exception(ITEMBASIC_NOT_EXISTS); } + return itembasic; } @VisibleForTesting private void validateCodeExists(Long id,String code) {