Преглед на файлове

还差标本审批的日志

hyy преди 7 месеца
родител
ревизия
8734cf95dd

+ 1 - 0
yudao-module-museums/yudao-module-museums-api/src/main/java/cn/iocoder/yudao/module/museums/enums/social/LogRecordConstants.java

@@ -15,6 +15,7 @@ public interface LogRecordConstants {
     String MUSEUMS_SPECIMEN_CREATE_SUCCESS = "创建了标本【{{#specimenInfo.specimenNumber}}】";
     String MUSEUMS_SPECIMEN_UPDATE_SUB_TYPE = "更新标本";
     String MUSEUMS_SPECIMEN_UPDATE_SUCCESS = "更新了标本【{{#updateReqVO.specimenNumber}}】: {_DIFF{#updateReqVO}}";
+
     String MUSEUMS_SPECIMEN_DELETE_SUB_TYPE = "删除标本";
     String MUSEUMS_SPECIMEN_DELETE_SUCCESS = "删除了标本【编号: {{#specimenNumber}}】, 理由: {{#deletedReason}}";
 

+ 7 - 2
yudao-module-museums/yudao-module-museums-biz/src/main/java/cn/iocoder/yudao/module/museums/controller/admin/specimeninfo/vo/SpecimenOutboundFormRespVO.java

@@ -1,10 +1,11 @@
 package cn.iocoder.yudao.module.museums.controller.admin.specimeninfo.vo;
 
+import com.mzt.logapi.starter.annotation.DiffLogField;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
-import java.math.BigDecimal;
 import java.util.List;
 
 @Schema(description = "管理后台 - 标本出库单 Request VO")
@@ -18,6 +19,10 @@ public class SpecimenOutboundFormRespVO {
     @NotNull(message = "标本类型(矿物、岩石矿石、化石、陨石)不能为空")
     private Integer specimenType;
 
+    @Schema(description = "标本编号", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotNull(message = "标本编号不能为空")
+    private String specimenNumber;
+
     @Schema(description = "中文名称", example = "赵六")
     private String chineseName;
 
@@ -40,5 +45,5 @@ public class SpecimenOutboundFormRespVO {
     private List<String> imagePath;
 
     @Schema(description = "标本数量")
-    private String specimenAmount;
+    private Integer specimenAmount;
 }

+ 0 - 1
yudao-module-museums/yudao-module-museums-biz/src/main/java/cn/iocoder/yudao/module/museums/dal/dataobject/specimenoutbound/SpecimenOutboundDO.java

@@ -123,7 +123,6 @@ public class SpecimenOutboundDO extends BaseDO {
     private LocalDateTime estimatedReturnTime;
 
 
-
     /**
      * 存放位置
      */

+ 8 - 6
yudao-module-museums/yudao-module-museums-biz/src/main/java/cn/iocoder/yudao/module/museums/service/specimeninfo/SpecimenInfoServiceImpl.java

@@ -60,13 +60,16 @@ public class SpecimenInfoServiceImpl implements SpecimenInfoService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    @LogRecord(type = MUSEUMS_SPECIMEN_TYPE, subType = MUSEUMS_SPECIMEN_CREATE_SUB_TYPE, bizNo = "{{#specimenInfo.id}}",
-            success = MUSEUMS_SPECIMEN_CREATE_SUCCESS)
+    @LogRecord(type = MUSEUMS_SPECIMEN_TYPE, subType = MUSEUMS_SPECIMEN_CREATE_SUB_TYPE,
+            bizNo = "{{#specimenInfo.id}}",
+            success = MUSEUMS_SPECIMEN_CREATE_SUCCESS,
+            extra = "{{#specimenInfo.id}}")
     public String createSpecimenInfo(SpecimenInfoSaveReqVO createReqVO) {
         // 校验标本编号是否已存在
         if (specimenInfoMapper.existsByNumber(createReqVO.getSpecimenNumber())) {
             return "标本编号已存在,无法新增";
         }
+
         // 插入新标本信息
         SpecimenInfoDO specimenInfo = BeanUtils.toBean(createReqVO, SpecimenInfoDO.class);
         specimenInfoMapper.insert(specimenInfo);
@@ -79,6 +82,7 @@ public class SpecimenInfoServiceImpl implements SpecimenInfoService {
     }
 
 
+
 //    @Override
 //    public void updateSpecimenInfo(SpecimenInfoSaveReqVO updateReqVO) {
 //        // 校验存在
@@ -90,7 +94,7 @@ public class SpecimenInfoServiceImpl implements SpecimenInfoService {
 
     @Override
     @LogRecord(type = MUSEUMS_SPECIMEN_TYPE, subType = MUSEUMS_SPECIMEN_UPDATE_SUB_TYPE, bizNo = "{{#updateReqVO.id}}",
-            success = MUSEUMS_SPECIMEN_UPDATE_SUCCESS)
+            success = MUSEUMS_SPECIMEN_UPDATE_SUCCESS , extra = "{{#updateReqVO.id}}")
     public void updateSpecimenInfo(SpecimenInfoSaveReqVO updateReqVO) {
         // 校验存在
         validateSpecimenInfoExists(updateReqVO.getId());
@@ -106,7 +110,7 @@ public class SpecimenInfoServiceImpl implements SpecimenInfoService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     @LogRecord(type = MUSEUMS_SPECIMEN_TYPE, subType = MUSEUMS_SPECIMEN_DELETE_SUB_TYPE, bizNo = "{{#id}}",
-            success = MUSEUMS_SPECIMEN_DELETE_SUCCESS)
+            success = MUSEUMS_SPECIMEN_DELETE_SUCCESS, extra = "{{#id}}")
     public void deleteSpecimenInfo(Integer id, String deletedReason) {
         // 校验存在
         validateSpecimenInfoExists(id);
@@ -211,8 +215,6 @@ public class SpecimenInfoServiceImpl implements SpecimenInfoService {
         return respVO;
     }
 
-
-
     private boolean isValidImageName(String imageNames) {
         if (imageNames == null || imageNames.trim().isEmpty()) {
             return true; // 如果图片名称为空或仅含空格,则视为通过校验

+ 14 - 13
yudao-module-museums/yudao-module-museums-biz/src/main/java/cn/iocoder/yudao/module/museums/service/specimenoutbound/SpecimenOutboundServiceImpl.java

@@ -93,7 +93,7 @@ public class SpecimenOutboundServiceImpl implements SpecimenOutboundService {
     @Transactional(rollbackFor = Exception.class)
     @LogRecord(type = MUSEUMS_SPECIMEN_TYPE, subType = MUSEUMS_SPECIMEN_OUTBOUND_SUB_TYPE,
             bizNo = "{{#specimenOutbound.id}}", // 使用新增的出库单 ID
-            success = MUSEUMS_SPECIMEN_CREATE_OUTBOUND_SUCCESS) // 使用_DIFF记录变化
+            success = MUSEUMS_SPECIMEN_CREATE_OUTBOUND_SUCCESS, extra = "{{#createReqVO.infoId}}")
     public Long createSpecimenOutbound(SpecimenOutboundSaveReqVO createReqVO) {
         // 将逗号分隔的字符串拆分为List<String>
         List<String> infoIds = Arrays.asList(createReqVO.getInfoId().split(","));
@@ -144,7 +144,7 @@ public class SpecimenOutboundServiceImpl implements SpecimenOutboundService {
     @Transactional(rollbackFor = Exception.class)
     @LogRecord(type = MUSEUMS_SPECIMEN_TYPE, subType = MUSEUMS_SPECIMEN_RETURN_SUB_TYPE,
             bizNo = "{{#existingSpecimen.id}}", // 使用更新的出库单 ID
-            success = MUSEUMS_SPECIMEN_UPDATE_RETURN_SUCCESS) // 定义更新成功的日志消息
+            success = MUSEUMS_SPECIMEN_UPDATE_RETURN_SUCCESS , extra = "{{#createReqVO.infoId}}") // 定义更新成功的日志消息
     public void updateSpecimenOutbound(SpecimenOutboundReturnReqVO updateReqVO) {
         // 校验存在
         validateSpecimenOutboundExists(updateReqVO.getId());
@@ -184,7 +184,7 @@ public class SpecimenOutboundServiceImpl implements SpecimenOutboundService {
     @Override
     @LogRecord(type = MUSEUMS_SPECIMEN_TYPE, subType = MUSEUMS_SPECIMEN_OUTBOUND_SUB_TYPE,
             bizNo = "{{#updateReqVO.id}}", // 使用更新的出库单 ID
-            success = MUSEUMS_SPECIMEN_UPDATE_RECOMPILE_SUCCESS) // 使用_DIFF记录变化
+            success = MUSEUMS_SPECIMEN_UPDATE_RECOMPILE_SUCCESS, extra = "{{#updateReqVO.infoId}}")
     public void recompileSpecimenOutbound(@Valid SpecimenOutboundSaveReqVO updateReqVO) {
         // 校验存在
         validateSpecimenOutboundExists(updateReqVO.getId());
@@ -246,37 +246,38 @@ public class SpecimenOutboundServiceImpl implements SpecimenOutboundService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     @LogRecord(type = MUSEUMS_SPECIMEN_TYPE, subType = MUSEUMS_SPECIMEN_OUTBOUND_SUB_TYPE,
-            bizNo = "{{#id}}", // 使用出库单 ID
-            success = MUSEUMS_SPECIMEN_CREATE_CONFIEM_OUTBOUND_SUCCESS)
+            bizNo = "{{#existingSpecimen.id}}", // 使用出库单 ID
+            success = MUSEUMS_SPECIMEN_CREATE_CONFIEM_OUTBOUND_SUCCESS,
+            extra = "{{#existingSpecimen.infoId}}") // 使用标本信息 ID
     public String confirmOutbound(Long id, Long operator) {
         // 校验存在
         validateSpecimenOutboundExists(id);
+
         // 获取当前标本的状态
         SpecimenOutboundDO existingSpecimen = specimenOutboundMapper.selectById(id);
-        // 判断状态是否为审批通过(1
+        // 判断状态是否为审批通过(5
         if (existingSpecimen == null || existingSpecimen.getStatus() != 5) {
             return "只有状态为二审通过的标本才能确认出库";
         }
-        // 使用链式调用合并设置
         existingSpecimen.setStatus(3) // 更新状态为已出库(3)
                 .setOperator(operator) // 设置出库员ID
                 .setOutgoingTime(LocalDateTime.now()); // 设置出库时间
 
         // 更新数据库
         specimenOutboundMapper.updateById(existingSpecimen);
-
         // 更新标本信息的馆藏状态为1(借出)
-        specimenInfoMapper.updateCollectionStatus(Long.valueOf(existingSpecimen.getInfoId()), 1);
+        String[] infoIds = existingSpecimen.getInfoId().split(",");
 
+        for (String infoId : infoIds) {
+            specimenInfoMapper.updateCollectionStatus(Long.valueOf(infoId.trim()), 1);
+        }
         // 记录日志上下文
-        LogRecordContext.putVariable("specimenOutbound", existingSpecimen); // 添加出库单对象
-        LogRecordContext.putVariable("operator", operator); // 添加操作员ID
+        LogRecordContext.putVariable("existingSpecimen", existingSpecimen); // 添加更新后的出库单对象
 
-        return null;
+        return "标本ID"+existingSpecimen.getId()+"出库成功";
     }
 
 
-
     @Override
     public void deleteSpecimenOutbound(Long id) {
         // TODO 删除方法待考虑是否关闭开放,如果开放可以考虑鉴权,或者需要多个老师确认(先不弄)