Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

24282 3 týždňov pred
rodič
commit
628b1a7964

+ 4 - 0
jy-business/src/main/java/com/jy/business/capital/controller/CapitalTransactionsController.java

@@ -76,6 +76,10 @@ public class CapitalTransactionsController {
     /**
      * 资金流水新增
      */
+    @RecordAudit(
+            moduleName = "资金流水-新增",
+            businessType = BusinessType.INSERT
+    )
     @PostMapping("/add")
     public Long add(@Validated(AddGroup.class) @RequestBody CapitalTransactionsDto dto) {
         return capitalTransactionsService.add(dto);

+ 7 - 0
jy-business/src/main/java/com/jy/business/contract/controller/ContractFundReceivedController.java

@@ -5,7 +5,9 @@ import com.jy.business.contract.model.dto.ContractFundReceivedDto;
 import com.jy.business.contract.model.dto.ContractFundReceivedSelectDto;
 import com.jy.business.contract.model.vo.ContractFundReceivedVo;
 import com.jy.business.contract.service.ContractFundReceivedService;
+import com.jy.framework.model.annotation.RecordAudit;
 import com.jy.framework.model.base.BaseSelectDto;
+import com.jy.framework.model.enums.BusinessType;
 import jakarta.annotation.Resource;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -57,6 +59,11 @@ public class ContractFundReceivedController {
     /**
      * 确认到账
      */
+    @RecordAudit(
+            moduleName = "合同到账认领-确认到账",
+            businessType = BusinessType.OTHER,
+            businessIdField = "id"
+    )
     @PostMapping("/confirmArrivalAccount")
     public void confirmArrivalAccount(@RequestBody ContractFundReceivedDto dto) {
         contractFundReceivedService.confirmArrivalAccount(dto);

+ 2 - 1
jy-business/src/main/java/com/jy/business/payment/controller/PaymentRequestsController.java

@@ -149,7 +149,8 @@ public class PaymentRequestsController {
      */
     @RecordAudit(
             moduleName = "请款-撤回流程",
-            businessType = BusinessType.OTHER
+            businessType = BusinessType.OTHER,
+            businessIdField = "businessId"
     )
     @PostMapping("/retrieve")
     public void retrieve(@RequestBody RetrieveDto dto) {

+ 1 - 1
jy-business/src/main/java/com/jy/business/payment/service/impl/PaymentRequestsServiceImpl.java

@@ -147,7 +147,7 @@ public class PaymentRequestsServiceImpl implements PaymentRequestsService {
         capitalTransactionsDto.setCorporationShopId(paymentRequests.getCorporationShopId());
         capitalTransactionsService.add(capitalTransactionsDto);
 
-        return dto.getId();
+        return dto.getPaymentRequestsId();
     }
 
     @Transactional(rollbackFor = Exception.class)

+ 5 - 0
jy-framework/src/main/java/com/jy/framework/model/annotation/RecordAudit.java

@@ -35,4 +35,9 @@ public @interface RecordAudit {
      */
     String getOldDataFunName() default "";
 
+    /**
+     * 业务id字段
+     */
+    String businessIdField() default "";
+
 }

+ 2 - 0
jy-log/src/main/java/com/jy/log/dao/LogUserOperationDao.java

@@ -1,5 +1,6 @@
 package com.jy.log.dao;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jy.framework.model.base.BaseDao;
 import com.jy.log.mapper.LogUserOperationMapper;
@@ -36,6 +37,7 @@ public class LogUserOperationDao extends BaseDao<LogUserOperationMapper, LogUser
                         luo.businessId.eq(dto.getBusinessId())
                 )
                 .orderBy(
+                        ObjectUtil.isNotNull(dto.getBusinessId()) ? luo.createTime.asc() : luo.auditStatus.asc(),
                         luo.id.desc()
                 )
                 .page(dto.getPage());

+ 9 - 17
jy-log/src/main/java/com/jy/log/record/RecordAuditAspect.java

@@ -2,12 +2,14 @@
 package com.jy.log.record;
 
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.ReflectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONObject;
 import com.jy.framework.model.annotation.RecordAudit;
 import com.jy.framework.model.base.BaseIdPo;
+import com.jy.framework.model.enums.BusinessType;
 import com.jy.framework.model.enums.LogTagExtendedType;
 import com.jy.framework.satoken.LoginContext;
 import com.jy.framework.utils.AssertUtil;
@@ -89,12 +91,6 @@ public class RecordAuditAspect {
                 if (result instanceof BaseIdPo baseIdPo) {
                     logUserOperation.setBusinessId(baseIdPo.getId());
                 }
-
-                if (args != null && args.length == 1) {
-                    Object newObject = JSON.parseObject(JSON.toJSONString(args[0]), parameterTypes[0]);
-                    String description = LogTagUtil.getObjectAllLogTag(newObject);
-                    logUserOperation.setDescription(description);
-                }
             }
             case UPDATE -> {
                 if (args != null && args.length == 1 && args[0] instanceof BaseIdPo) {
@@ -121,20 +117,16 @@ public class RecordAuditAspect {
                 logUserOperation.setAuditStatus(0);
                 Object oldData = getOldData(point, signature, recordAudit);
                 logUserOperation.setSourceData(JSONObject.toJSONString(oldData));
-
-                if (ObjectUtil.isNotEmpty(oldData)) {
-                    if (oldData instanceof Collection<?> oldDataCollection) {
-                        String description = oldDataCollection.stream().map(LogTagUtil::getObjectAllLogTag).collect(Collectors.joining("; ", "删除数据:{", "}"));
-                        logUserOperation.setDescription(description);
-                    } else {
-                        String description = LogTagUtil.getObjectAllLogTag(oldData);
-                        logUserOperation.setDescription("删除数据:" + description);
-                    }
-                }
-
             }
             case OTHER -> {
+                logUserOperation.setOperationType(BusinessType.UPDATE.getKey());
                 logUserOperation.setAuditStatus(1);
+                if (args != null && args.length == 1 && StrUtil.isNotBlank(recordAudit.businessIdField())) {
+                    Object arg = args[0];
+                    Field field = ReflectUtil.getField(arg.getClass(), recordAudit.businessIdField());
+                    field.setAccessible(true);
+                    logUserOperation.setBusinessId(Long.valueOf(field.get(arg).toString()));
+                }
                 point.proceed();
             }
         }

+ 7 - 7
jy-ui/src/views/business/log/userOperation/index.vue

@@ -150,20 +150,24 @@ const columnConfig: ColumnConfigType[] = [
       }
       return ''
     },
-    width: 120
+    width: 120,
+    if: () => !(props.logData && props.logData.id)
   },
   {
     prop: 'auditTime',
     label: '审核时间',
-    width: 160
+    width: 160,
+    if: () => !(props.logData && props.logData.id)
   },
   {
     prop: 'remark',
     label: '审核注释',
-    width: 160
+    width: 160,
+    if: () => !(props.logData && props.logData.id)
   },
   {
     width: 120,
+    if: () => !(props.logData && props.logData.id),
     handleConfig: [
       {
         if: (row) => row.auditStatus == 0,
@@ -172,10 +176,6 @@ const columnConfig: ColumnConfigType[] = [
           dialogVisible.value = true
           getDetailApi({ id: row.id }).then((resp: StrAnyObj) => {
             formData.value = resp
-            console.log(resp)
-
-            console.log(JSON.parse(resp.operationData))
-            console.log(JSON.parse(resp.sourceData))
           })
         }
       }