Przeglądaj źródła

修复Jackson序列化出现的bug,待测;订单审核操作待测

Huanyi 2 tygodni temu
rodzic
commit
1ba86e6282
46 zmienionych plików z 696 dodań i 242 usunięć
  1. 21 6
      ruoyi-admin/src/main/java/org/dromara/web/service/impl/WechatAppletAuthStrategy.java
  2. 3 4
      ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/CustomerNameTranslationImpl.java
  3. 3 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysCustomerController.java
  4. 4 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCustomerServiceImpl.java
  5. 5 0
      ruoyi-modules/yingpaipay-erp/pom.xml
  6. 3 3
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpClientController.java
  7. 50 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpOrderAuditController.java
  8. 19 17
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpOrderController.java
  9. 6 6
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpOrderDetailController.java
  10. 8 8
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpClient.java
  11. 6 6
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpColorKind.java
  12. 8 8
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpModel.java
  13. 21 14
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpOrder.java
  14. 93 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpOrderAudit.java
  15. 15 8
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpOrderDetail.java
  16. 6 6
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpPack.java
  17. 5 5
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/bo/ErpOrderBo.java
  18. 2 2
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/bo/ErpOrderDetailBo.java
  19. 3 3
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpClientQuery.java
  20. 2 2
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpColorKindQuery.java
  21. 2 2
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpModelQuery.java
  22. 1 1
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpOrderDetailQuery.java
  23. 3 3
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpOrderQuery.java
  24. 2 2
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpPackQuery.java
  25. 4 4
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpClientVo.java
  26. 3 3
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpColorKindVo.java
  27. 3 3
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpModelVo.java
  28. 64 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpOrderAuditVo.java
  29. 2 2
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpOrderDetailVo.java
  30. 16 5
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpOrderVo.java
  31. 3 3
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpPackVo.java
  32. 20 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/enums/ErpAuditResult.java
  33. 12 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpOrderAuditMapper.java
  34. 1 1
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpClientService.java
  35. 30 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpOrderAuditService.java
  36. 2 2
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpOrderDetailService.java
  37. 10 8
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpOrderService.java
  38. 14 14
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpClientServiceImpl.java
  39. 1 1
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpColorKindServiceImpl.java
  40. 5 5
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpModelServiceImpl.java
  41. 56 0
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpOrderAuditServiceImpl.java
  42. 11 11
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpOrderDetailServiceImpl.java
  43. 97 62
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpOrderServiceImpl.java
  44. 1 1
      ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpPackServiceImpl.java
  45. 47 0
      script/sql/sqlserver/v1/HTSail_CS-create.sql
  46. 3 3
      yingpaipay-api/yingpaipay-api-erp/src/main/java/org/dromara/yingpaipay/api/erp/domain/vo/CommonErpClientVo.java

+ 21 - 6
ruoyi-admin/src/main/java/org/dromara/web/service/impl/WechatAppletAuthStrategy.java

@@ -106,12 +106,27 @@ public class WechatAppletAuthStrategy implements IAuthStrategy {
     }
 
     private String generateToken(Long customerId, SysClientVo client) {
-        String loginId = "customer:" + customerId;
-        StpUtil.login(loginId, new SaLoginParameter()
-            .setDeviceType(client.getDeviceType())
-            .setTimeout(client.getTimeout())
-            .setActiveTimeout(client.getActiveTimeout())
-            .setExtra(LoginHelper.CLIENT_KEY, client.getClientId()));
+        // 构造登录用户对象
+        org.dromara.common.core.domain.model.LoginUser loginUser = new org.dromara.common.core.domain.model.LoginUser();
+        loginUser.setUserId(customerId);
+        loginUser.setUserType(org.dromara.common.core.enums.UserType.APP_USER.getUserType());
+
+        // 查询客户信息补全基础数据
+        SysCustomerVo customer = customerService.queryById(customerId);
+        if (customer != null) {
+            loginUser.setUsername(customer.getUserName());
+            loginUser.setNickname(customer.getUserName());
+        }
+
+        SaLoginParameter model = new SaLoginParameter();
+        model.setDeviceType(client.getDeviceType());
+        model.setTimeout(client.getTimeout());
+        model.setActiveTimeout(client.getActiveTimeout());
+        model.setExtra(LoginHelper.CLIENT_KEY, client.getClientId());
+
+        // 使用 LoginHelper 进行标准登录,确保 Extra 信息(如 userId)被注入
+        LoginHelper.login(loginUser, model);
+
         return StpUtil.getTokenValue();
     }
 }

+ 3 - 4
ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/CustomerNameTranslationImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.common.translation.core.impl;
 
+import cn.hutool.core.convert.Convert;
 import lombok.AllArgsConstructor;
 import org.dromara.common.core.service.CustomerService;
 import org.dromara.common.translation.annotation.TranslationType;
@@ -17,10 +18,8 @@ public class CustomerNameTranslationImpl implements TranslationInterface<String>
 
     @Override
     public String translation(Object key, String other) {
-        if (key instanceof Long id) {
-            return customerService.selectUserNameById(id);
-        }
-        return null;
+        String userName = customerService.selectUserNameById(Convert.toLong(key));
+        return userName;
     }
 
 }

+ 3 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysCustomerController.java

@@ -12,6 +12,7 @@ import org.dromara.common.log.annotation.Log;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.web.core.BaseController;
 import org.dromara.system.domain.bo.SysCustomerBo;
 import org.dromara.system.domain.vo.SysCustomerVo;
@@ -40,8 +41,7 @@ public class SysCustomerController extends BaseController {
      */
     @GetMapping("/getInfo")
     public R<SysCustomerVo> getMyInfo() {
-        String loginId = StpUtil.getLoginIdAsString();
-        Long customerId = Long.parseLong(loginId.replace("customer:", ""));
+        Long customerId = LoginHelper.getUserId();
         return R.ok(sysCustomerService.queryById(customerId));
     }
 
@@ -52,8 +52,7 @@ public class SysCustomerController extends BaseController {
     @RepeatSubmit()
     @PutMapping("/updateProfile")
     public R<Void> updateMyInfo(@RequestBody SysCustomerBo bo) {
-        String loginId = StpUtil.getLoginIdAsString();
-        Long customerId = Long.parseLong(loginId.replace("customer:", ""));
+        Long customerId = LoginHelper.getUserId();
         bo.setId(customerId);
         return toAjax(sysCustomerService.updateByBo(bo));
     }

+ 4 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysCustomerServiceImpl.java

@@ -78,8 +78,8 @@ public class SysCustomerServiceImpl implements ISysCustomerService, CustomerServ
         list.forEach(vo -> {
             CommonErpClientVo erpVo = infoMap.get(vo.getAuthClientFRowID());
             if (erpVo != null) {
-                vo.setAuthClientName(erpVo.getFName());
-                vo.setAuthClientClass(erpVo.getFClass());
+                vo.setAuthClientName(erpVo.getName());
+                vo.setAuthClientClass(erpVo.getClientClass());
                 vo.setAuthClientEnterDate(erpVo.getEnterDate());
             }
         });
@@ -95,8 +95,8 @@ public class SysCustomerServiceImpl implements ISysCustomerService, CustomerServ
         Map<String, CommonErpClientVo> infoMap = commonErpClientService.selectInfoByFRowIDs(List.of(vo.getAuthClientFRowID()));
         CommonErpClientVo erpVo = infoMap.get(vo.getAuthClientFRowID());
         if (erpVo != null) {
-            vo.setAuthClientName(erpVo.getFName());
-            vo.setAuthClientClass(erpVo.getFClass());
+            vo.setAuthClientName(erpVo.getName());
+            vo.setAuthClientClass(erpVo.getClientClass());
             vo.setAuthClientEnterDate(erpVo.getEnterDate());
         }
     }

+ 5 - 0
ruoyi-modules/yingpaipay-erp/pom.xml

@@ -58,6 +58,11 @@
             <artifactId>ruoyi-common-excel</artifactId>
         </dependency>
 
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-common-translation</artifactId>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 3 - 3
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpClientController.java

@@ -37,9 +37,9 @@ public class ErpClientController {
     /**
      * 获取客户详情
      */
-    @GetMapping("/{fRowId}")
-    public R<ErpClientVo> getInfo(@PathVariable("fRowId") String fRowId) {
-        return R.ok(erpClientService.queryById(fRowId));
+    @GetMapping("/{rowId}")
+    public R<ErpClientVo> getInfo(@PathVariable("rowId") String rowId) {
+        return R.ok(erpClientService.queryById(rowId));
     }
 
 }

+ 50 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpOrderAuditController.java

@@ -0,0 +1,50 @@
+package org.dromara.erp.controller;
+
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.erp.domain.ErpOrderAudit;
+import org.dromara.erp.domain.vo.ErpOrderAuditVo;
+import org.dromara.erp.service.IErpOrderAuditService;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 订单审核记录控制器
+ * @Author: Antigravity
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/erp/orderAudit")
+public class ErpOrderAuditController {
+
+    private final IErpOrderAuditService erpOrderAuditService;
+
+    /**
+     * 查询审核记录列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo<ErpOrderAuditVo> list(ErpOrderAudit query, PageQuery pageQuery) {
+        return erpOrderAuditService.queryPageList(query, pageQuery);
+    }
+
+    /**
+     * 获取订单的审核历史
+     */
+    @GetMapping("/history/{orderId}")
+    public R<List<ErpOrderAuditVo>> history(@PathVariable("orderId") String orderId) {
+        return R.ok(erpOrderAuditService.queryByOrderId(orderId));
+    }
+
+    /**
+     * 新增审核记录
+     */
+    @PostMapping("/add")
+    public R<Void> add(@RequestBody ErpOrderAudit audit) {
+        return erpOrderAuditService.insert(audit) ? R.ok() : R.fail();
+    }
+}

+ 19 - 17
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpOrderController.java

@@ -2,6 +2,8 @@ package org.dromara.erp.controller;
 
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.domain.R;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.erp.domain.query.ErpOrderQuery;
 import org.dromara.erp.domain.vo.ErpOrderVo;
 import org.dromara.erp.service.IErpOrderService;
@@ -23,19 +25,27 @@ public class ErpOrderController {
     private final IErpOrderService erpOrderService;
 
     /**
-     * 查询订单列表
+     * 分页查询订单列表
      */
     @GetMapping("/list")
-    public R<List<ErpOrderVo>> list(ErpOrderQuery query) {
+    public TableDataInfo<ErpOrderVo> list(ErpOrderQuery query, PageQuery pageQuery) {
+        return erpOrderService.queryPageList(query, pageQuery);
+    }
+
+    /**
+     * 查询订单列表 (不分页)
+     */
+    @GetMapping("/all")
+    public R<List<ErpOrderVo>> all(ErpOrderQuery query) {
         return R.ok(erpOrderService.queryList(query));
     }
 
     /**
      * 获取订单详情
      */
-    @GetMapping("/{fRowId}")
-    public R<ErpOrderVo> getInfo(@PathVariable("fRowId") String fRowId) {
-        return R.ok(erpOrderService.queryById(fRowId));
+    @GetMapping("/{rowId}")
+    public R<ErpOrderVo> getInfo(@PathVariable("rowId") String rowId) {
+        return R.ok(erpOrderService.queryById(rowId));
     }
 
     /**
@@ -47,18 +57,10 @@ public class ErpOrderController {
     }
 
     /**
-     * 修改订单
-     */
-    @PutMapping("/edit")
-    public R<Void> edit(@RequestBody org.dromara.erp.domain.bo.ErpOrderBo bo) {
-        return erpOrderService.update(bo) ? R.ok() : R.fail();
-    }
-
-    /**
-     * 删除订单
+     * 审核订单
      */
-    @DeleteMapping("/{fRowId}")
-    public R<Void> remove(@PathVariable("fRowId") String fRowId) {
-        return erpOrderService.deleteById(fRowId) ? R.ok() : R.fail();
+    @PostMapping("/audit")
+    public R<Void> audit(@RequestBody org.dromara.erp.domain.ErpOrderAudit audit) {
+        return erpOrderService.auditOrder(audit) ? R.ok() : R.fail();
     }
 }

+ 6 - 6
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/controller/ErpOrderDetailController.java

@@ -34,9 +34,9 @@ public class ErpOrderDetailController {
     /**
      * 获取订单明细详情
      */
-    @GetMapping("/{fRowId}")
-    public R<ErpOrderDetailVo> getInfo(@PathVariable("fRowId") String fRowId) {
-        return R.ok(erpOrderDetailService.queryById(fRowId));
+    @GetMapping("/{rowId}")
+    public R<ErpOrderDetailVo> getInfo(@PathVariable("rowId") String rowId) {
+        return R.ok(erpOrderDetailService.queryById(rowId));
     }
 
     /**
@@ -58,9 +58,9 @@ public class ErpOrderDetailController {
     /**
      * 删除订单明细
      */
-    @DeleteMapping("/{fRowId}")
-    public R<Void> remove(@PathVariable("fRowId") String fRowId) {
-        return erpOrderDetailService.deleteById(fRowId) ? R.ok() : R.fail();
+    @DeleteMapping("/{rowId}")
+    public R<Void> remove(@PathVariable("rowId") String rowId) {
+        return erpOrderDetailService.deleteById(rowId) ? R.ok() : R.fail();
     }
 
 }

+ 8 - 8
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpClient.java

@@ -28,26 +28,26 @@ public class ErpClient implements Serializable {
     /**
      * 序号(主键)
      */
-    @TableId("FRowID")
-    private String fRowId;
+    @TableId("RowID")
+    private String rowId;
 
     /**
      * 代码
      */
-    @TableField("FNum")
-    private String fNum;
+    @TableField("Num")
+    private String num;
 
     /**
      * 名称
      */
-    @TableField("FName")
-    private String fName;
+    @TableField("Name")
+    private String name;
 
     /**
      * 分类(国内,国外)
      */
-    @TableField("FClass")
-    private String fClass;
+    @TableField("Class")
+    private String clientClass;
 
     /**
      * 地区

+ 6 - 6
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpColorKind.java

@@ -27,20 +27,20 @@ public class ErpColorKind implements Serializable {
     /**
      * 序号(主键)
      */
-    @TableId("FRowID")
-    private String fRowId;
+    @TableId("RowID")
+    private String rowId;
 
     /**
      * 代码
      */
-    @TableField("FNum")
-    private String fNum;
+    @TableField("Num")
+    private String num;
 
     /**
      * 名称
      */
-    @TableField("FName")
-    private String fName;
+    @TableField("Name")
+    private String name;
 
     /**
      * 停用 (0-否, 1-是)

+ 8 - 8
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpModel.java

@@ -28,20 +28,20 @@ public class ErpModel implements Serializable {
     /**
      * 记录号(主键)
      */
-    @TableId("FRowID")
-    private String fRowId;
+    @TableId("RowID")
+    private String rowId;
 
     /**
      * 代码 (型号)
      */
-    @TableField("FNum")
-    private String fNum;
+    @TableField("Num")
+    private String num;
 
     /**
      * 名称
      */
-    @TableField("FName")
-    private String fName;
+    @TableField("Name")
+    private String name;
 
     /**
      * 公司ID
@@ -94,8 +94,8 @@ public class ErpModel implements Serializable {
     /**
      * 备注
      */
-    @TableField("FNote")
-    private String fNote;
+    @TableField("Note")
+    private String note;
 
     /**
      * 创建人

+ 21 - 14
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpOrder.java

@@ -1,5 +1,6 @@
 package org.dromara.erp.domain;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -26,55 +27,61 @@ public class ErpOrder implements Serializable {
     /**
      * 订单主键
      */
-    @TableId("FRowID")
-    private String fRowId;
+    @TableId("RowID")
+    private String rowId;
 
     /**
      * 订单单号
      */
-    @TableField("FCode")
-    private String fCode;
+    @TableField("Code")
+    private String code;
 
     /**
      * 下单人
      */
-    @TableField("FPlacer")
-    private Long fPlacer;
+    @TableField("Placer")
+    private Long placer;
 
     /**
      * 下单时间
      */
-    @TableField("FPlaceTime")
-    private Date fPlaceTime;
+    @TableField("PlaceTime")
+    private Date placeTime;
 
     /**
      * 订单状态 (0-待审核)
      */
-    @TableField("FStatus")
-    private Integer fStatus;
+    @TableField("Status")
+    private Integer status;
+
+    /**
+     * 创建部门
+     */
+    @TableField(value = "CreateDept", fill = FieldFill.INSERT)
+    private Long createDept;
 
     /**
      * 创建者
      */
-    @TableField("CreateBy")
+    @TableField(value = "CreateBy", fill = FieldFill.INSERT)
     private Long createBy;
 
     /**
      * 创建时间
      */
-    @TableField("CreateTime")
+    @TableField(value = "CreateTime", fill = FieldFill.INSERT)
     private Date createTime;
 
     /**
      * 更新者
      */
-    @TableField("UpdateBy")
+    @TableField(value = "UpdateBy", fill = FieldFill.INSERT_UPDATE)
     private Long updateBy;
 
     /**
      * 更新时间
      */
-    @TableField("UpdateTime")
+    @TableField(value = "UpdateTime", fill = FieldFill.INSERT_UPDATE)
     private Date updateTime;
 
 }

+ 93 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpOrderAudit.java

@@ -0,0 +1,93 @@
+package org.dromara.erp.domain;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 订单审核记录对象 t_Applet_Order_Audit
+ * @Author: Antigravity
+ */
+@Data
+@TableName("t_Applet_Order_Audit")
+public class ErpOrderAudit implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 审核记录主键
+     */
+    @TableId(value = "RowID")
+    @JsonProperty("rowId")
+    private String rowId;
+
+    /**
+     * 订单ID
+     */
+    @TableField("OrderID")
+    @JsonProperty("orderId")
+    private String orderId;
+
+    /**
+     * 审核人
+     */
+    @TableField("Auditor")
+    private Long auditor;
+
+    /**
+     * 审核时间
+     */
+    @TableField("AuditTime")
+    private Date auditTime;
+
+    /**
+     * 审核结果(1-通过, 2-驳回)
+     */
+    @TableField("AuditResult")
+    @JsonProperty("auditResult")
+    private Integer auditResult;
+
+    /**
+     * 驳回原因
+     */
+    @TableField("RejectReason")
+    private String rejectReason;
+
+    /**
+     * 创建部门
+     */
+    @TableField(value = "CreateDept", fill = FieldFill.INSERT)
+    private Long createDept;
+
+    /**
+     * 创建者
+     */
+    @TableField(value = "CreateBy", fill = FieldFill.INSERT)
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "CreateTime", fill = FieldFill.INSERT)
+    private Date createTime;
+
+    /**
+     * 更新者
+     */
+    @TableField(value = "UpdateBy", fill = FieldFill.INSERT_UPDATE)
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(value = "UpdateTime", fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+}

+ 15 - 8
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpOrderDetail.java

@@ -1,5 +1,6 @@
 package org.dromara.erp.domain;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -28,14 +29,14 @@ public class ErpOrderDetail implements Serializable {
     /**
      * 记录主键
      */
-    @TableId("FRowID")
-    private String fRowId;
+    @TableId("RowID")
+    private String rowId;
 
     /**
      * 主订单ID
      */
-    @TableField("FOrderID")
-    private String fOrderId;
+    @TableField("OrderID")
+    private String orderId;
 
     /**
      * 型材ID
@@ -103,28 +104,34 @@ public class ErpOrderDetail implements Serializable {
     @TableField("Count")
     private Integer count;
 
+    /**
+     * 创建部门
+     */
+    @TableField(value = "CreateDept", fill = FieldFill.INSERT)
+    private Long createDept;
+
     /**
      * 创建者
      */
-    @TableField("CreateBy")
+    @TableField(value = "CreateBy", fill = FieldFill.INSERT)
     private Long createBy;
 
     /**
      * 创建时间
      */
-    @TableField("CreateTime")
+    @TableField(value = "CreateTime", fill = FieldFill.INSERT)
     private Date createTime;
 
     /**
      * 更新者
      */
-    @TableField("UpdateBy")
+    @TableField(value = "UpdateBy", fill = FieldFill.INSERT_UPDATE)
     private Long updateBy;
 
     /**
      * 更新时间
      */
-    @TableField("UpdateTime")
+    @TableField(value = "UpdateTime", fill = FieldFill.INSERT_UPDATE)
     private Date updateTime;
 
 }

+ 6 - 6
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/ErpPack.java

@@ -27,20 +27,20 @@ public class ErpPack implements Serializable {
     /**
      * 序号(主键)
      */
-    @TableId("FRowID")
-    private String fRowId;
+    @TableId("RowID")
+    private String rowId;
 
     /**
      * 代码
      */
-    @TableField("FNum")
-    private String fNum;
+    @TableField("Num")
+    private String num;
 
     /**
      * 名称
      */
-    @TableField("FName")
-    private String fName;
+    @TableField("Name")
+    private String name;
 
     /**
      * 停用 (0-否, 1-是)

+ 5 - 5
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/bo/ErpOrderBo.java

@@ -23,27 +23,27 @@ public class ErpOrderBo implements Serializable {
     /**
      * 订单主键
      */
-    private String fRowId;
+    private String rowId;
 
     /**
      * 订单单号
      */
-    private String fCode;
+    private String code;
 
     /**
      * 下单人
      */
-    private Long fPlacer;
+    private Long placer;
 
     /**
      * 下单时间
      */
-    private Date fPlaceTime;
+    private Date placeTime;
 
     /**
      * 订单状态
      */
-    private Integer fStatus;
+    private Integer status;
 
     /**
      * 绑定的订单明细 ID 列表

+ 2 - 2
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/bo/ErpOrderDetailBo.java

@@ -20,9 +20,9 @@ public class ErpOrderDetailBo implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
 
-    private String fRowId;
+    private String rowId;
 
-    private String fOrderId;
+    private String orderId;
 
     private String modelId;
 

+ 3 - 3
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpClientQuery.java

@@ -13,12 +13,12 @@ public class ErpClientQuery {
     /**
      * 名称
      */
-    private String fName;
+    private String name;
 
     /**
      * 代码
      */
-    private String fNum;
+    private String num;
 
     /**
      * 客户简称
@@ -33,7 +33,7 @@ public class ErpClientQuery {
     /**
      * 分类(国内,国外)
      */
-    private String fClass;
+    private String clientClass;
 
     /**
      * 暂停使用(0正常 1停用)

+ 2 - 2
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpColorKindQuery.java

@@ -13,11 +13,11 @@ public class ErpColorKindQuery {
     /**
      * 代码
      */
-    private String fNum;
+    private String num;
 
     /**
      * 名称
      */
-    private String fName;
+    private String name;
 
 }

+ 2 - 2
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpModelQuery.java

@@ -13,11 +13,11 @@ public class ErpModelQuery {
     /**
      * 代码 (型号)
      */
-    private String fNum;
+    private String num;
 
     /**
      * 名称
      */
-    private String fName;
+    private String name;
 
 }

+ 1 - 1
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpOrderDetailQuery.java

@@ -13,6 +13,6 @@ public class ErpOrderDetailQuery {
     /**
      * 订单ID
      */
-    private String fOrderId;
+    private String orderId;
 
 }

+ 3 - 3
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpOrderQuery.java

@@ -12,16 +12,16 @@ public class ErpOrderQuery {
     /**
      * 订单单号
      */
-    private String fCode;
+    private String code;
 
     /**
      * 下单人
      */
-    private Long fPlacer;
+    private Long placer;
 
     /**
      * 订单状态
      */
-    private Integer fStatus;
+    private Integer status;
 
 }

+ 2 - 2
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/query/ErpPackQuery.java

@@ -13,11 +13,11 @@ public class ErpPackQuery {
     /**
      * 代码
      */
-    private String fNum;
+    private String num;
 
     /**
      * 名称
      */
-    private String fName;
+    private String name;
 
 }

+ 4 - 4
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpClientVo.java

@@ -24,17 +24,17 @@ public class ErpClientVo implements Serializable {
     /**
      * 序号(主键)
      */
-    private String fRowId;
+    private String rowId;
 
     /**
      * 代码
      */
-    private String fNum;
+    private String num;
 
     /**
      * 名称
      */
-    private String fName;
+    private String name;
 
     /**
      * 客户简称
@@ -44,7 +44,7 @@ public class ErpClientVo implements Serializable {
     /**
      * 分类(国内,国外)
      */
-    private String fClass;
+    private String clientClass;
 
     /**
      * 销售部门

+ 3 - 3
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpColorKindVo.java

@@ -20,11 +20,11 @@ public class ErpColorKindVo implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
 
-    private String fRowId;
+    private String rowId;
 
-    private String fNum;
+    private String num;
 
-    private String fName;
+    private String name;
 
     private Integer stopUse;
 

+ 3 - 3
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpModelVo.java

@@ -23,17 +23,17 @@ public class ErpModelVo implements Serializable {
     /**
      * 记录号(主键)
      */
-    private String fRowId;
+    private String rowId;
 
     /**
      * 代码 (型号)
      */
-    private String fNum;
+    private String num;
 
     /**
      * 名称
      */
-    private String fName;
+    private String name;
 
     /**
      * 基准壁厚

+ 64 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpOrderAuditVo.java

@@ -0,0 +1,64 @@
+package org.dromara.erp.domain.vo;
+
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
+import org.dromara.erp.domain.ErpOrderAudit;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 订单审核记录视图对象
+ * @Author: Antigravity
+ */
+@Data
+@AutoMapper(target = ErpOrderAudit.class)
+public class ErpOrderAuditVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 审核记录主键
+     */
+    private String rowId;
+
+    /**
+     * 订单ID
+     */
+    private String orderId;
+
+    /**
+     * 审核人
+     */
+    @Translation(type = TransConstant.USER_ID_TO_NICKNAME, mapper = "auditor")
+    private Long auditor;
+
+    /**
+     * 审核人名称
+     */
+    private String auditorName;
+
+    /**
+     * 审核时间
+     */
+    private Date auditTime;
+
+    /**
+     * 审核结果(1-通过, 2-驳回)
+     */
+    private Integer auditResult;
+
+    /**
+     * 驳回原因
+     */
+    private String rejectReason;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+}

+ 2 - 2
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpOrderDetailVo.java

@@ -21,9 +21,9 @@ public class ErpOrderDetailVo implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
 
-    private String fRowId;
+    private String rowId;
 
-    private String fOrderId;
+    private String orderId;
 
     private String modelId;
 

+ 16 - 5
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpOrderVo.java

@@ -1,7 +1,10 @@
 package org.dromara.erp.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
+import org.dromara.common.translation.annotation.Translation;
+import org.dromara.common.translation.constant.TransConstant;
 import org.dromara.erp.domain.ErpOrder;
 
 import java.io.Serial;
@@ -22,27 +25,35 @@ public class ErpOrderVo implements Serializable {
     /**
      * 订单主键
      */
-    private String fRowId;
+    @JsonProperty("rowId")
+    private String rowId;
 
     /**
      * 订单单号
      */
-    private String fCode;
+    private String code;
 
     /**
      * 下单人
      */
-    private Long fPlacer;
+    private Long placer;
+
+    /**
+     * 下单人名称
+     */
+    @Translation(type = TransConstant.CUSTOMER_ID_TO_NAME, mapper = "placer")
+    @JsonProperty("placerName")
+    private String placerName;
 
     /**
      * 下单时间
      */
-    private Date fPlaceTime;
+    private Date placeTime;
 
     /**
      * 订单状态
      */
-    private Integer fStatus;
+    private Integer status;
 
     /**
      * 创建时间

+ 3 - 3
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/domain/vo/ErpPackVo.java

@@ -20,11 +20,11 @@ public class ErpPackVo implements Serializable {
     @Serial
     private static final long serialVersionUID = 1L;
 
-    private String fRowId;
+    private String rowId;
 
-    private String fNum;
+    private String num;
 
-    private String fName;
+    private String name;
 
     private Integer stopUse;
 

+ 20 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/enums/ErpAuditResult.java

@@ -0,0 +1,20 @@
+package org.dromara.erp.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 订单审核结果枚举
+ * @Author: Antigravity
+ */
+@Getter
+@AllArgsConstructor
+public enum ErpAuditResult {
+
+    PASS(1, "通过"),
+    REJECT(2, "驳回");
+
+    private final Integer code;
+    private final String info;
+
+}

+ 12 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/mapper/ErpOrderAuditMapper.java

@@ -0,0 +1,12 @@
+package org.dromara.erp.mapper;
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.erp.domain.ErpOrderAudit;
+import org.dromara.erp.domain.vo.ErpOrderAuditVo;
+
+/**
+ * 订单审核记录 Mapper 接口
+ * @Author: Antigravity
+ */
+public interface ErpOrderAuditMapper extends BaseMapperPlus<ErpOrderAudit, ErpOrderAuditVo> {
+}

+ 1 - 1
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpClientService.java

@@ -20,6 +20,6 @@ public interface IErpClientService {
     /**
      * 根据ID查询客户详情
      */
-    ErpClientVo queryById(String fRowId);
+    ErpClientVo queryById(String rowId);
 
 }

+ 30 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpOrderAuditService.java

@@ -0,0 +1,30 @@
+package org.dromara.erp.service;
+
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.erp.domain.ErpOrderAudit;
+import org.dromara.erp.domain.vo.ErpOrderAuditVo;
+
+import java.util.List;
+
+/**
+ * 订单审核记录 Service 接口
+ * @Author: Antigravity
+ */
+public interface IErpOrderAuditService {
+
+    /**
+     * 查询审核记录列表
+     */
+    TableDataInfo<ErpOrderAuditVo> queryPageList(ErpOrderAudit query, PageQuery pageQuery);
+
+    /**
+     * 根据订单ID查询审核历史
+     */
+    List<ErpOrderAuditVo> queryByOrderId(String orderId);
+
+    /**
+     * 新增审核记录
+     */
+    Boolean insert(ErpOrderAudit audit);
+}

+ 2 - 2
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpOrderDetailService.java

@@ -21,7 +21,7 @@ public interface IErpOrderDetailService {
     /**
      * 根据ID查询订单明细
      */
-    ErpOrderDetailVo queryById(String fRowId);
+    ErpOrderDetailVo queryById(String rowId);
 
     /**
      * 新增订单明细
@@ -36,6 +36,6 @@ public interface IErpOrderDetailService {
     /**
      * 删除订单明细
      */
-    Boolean deleteById(String fRowId);
+    Boolean deleteById(String rowId);
 
 }

+ 10 - 8
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/IErpOrderService.java

@@ -1,5 +1,7 @@
 package org.dromara.erp.service;
 
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.erp.domain.query.ErpOrderQuery;
 import org.dromara.erp.domain.vo.ErpOrderVo;
 
@@ -11,6 +13,11 @@ import java.util.List;
  */
 public interface IErpOrderService {
 
+    /**
+     * 分页查询订单列表
+     */
+    TableDataInfo<ErpOrderVo> queryPageList(ErpOrderQuery query, PageQuery pageQuery);
+
     /**
      * 查询订单列表
      */
@@ -19,7 +26,7 @@ public interface IErpOrderService {
     /**
      * 根据ID查询订单
      */
-    ErpOrderVo queryById(String fRowId);
+    ErpOrderVo queryById(String rowId);
 
     /**
      * 新增订单
@@ -27,12 +34,7 @@ public interface IErpOrderService {
     Boolean insert(org.dromara.erp.domain.bo.ErpOrderBo bo);
 
     /**
-     * 修改订单
-     */
-    Boolean update(org.dromara.erp.domain.bo.ErpOrderBo bo);
-
-    /**
-     * 删除订单
+     * 审核订单
      */
-    Boolean deleteById(String fRowId);
+    Boolean auditOrder(org.dromara.erp.domain.ErpOrderAudit audit);
 }

+ 14 - 14
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpClientServiceImpl.java

@@ -34,18 +34,18 @@ public class ErpClientServiceImpl implements IErpClientService, CommonErpClientS
     private final ErpClientMapper baseMapper;
 
     @Override
-    public Map<String, CommonErpClientVo> selectInfoByFRowIDs(List<String> authClientFRowIDs) {
-        if (authClientFRowIDs == null || authClientFRowIDs.isEmpty()) {
+    public Map<String, CommonErpClientVo> selectInfoByFRowIDs(List<String> authClientRowIds) {
+        if (authClientRowIds == null || authClientRowIds.isEmpty()) {
             return Map.of();
         }
         List<ErpClient> clients = baseMapper.selectList(Wrappers.lambdaQuery(ErpClient.class)
-            .select(ErpClient::getFRowId, ErpClient::getFName, ErpClient::getFClass, ErpClient::getEnterDate)
-            .in(ErpClient::getFRowId, authClientFRowIDs));
-        return clients.stream().collect(Collectors.toMap(ErpClient::getFRowId, client -> {
+            .select(ErpClient::getRowId, ErpClient::getName, ErpClient::getClass, ErpClient::getEnterDate)
+            .in(ErpClient::getRowId, authClientRowIds));
+        return clients.stream().collect(Collectors.toMap(ErpClient::getRowId, client -> {
             CommonErpClientVo vo = new CommonErpClientVo();
-            vo.setFRowId(client.getFRowId());
-            vo.setFName(client.getFName());
-            vo.setFClass(client.getFClass());
+            vo.setRowId(client.getRowId());
+            vo.setName(client.getName());
+            vo.setClientClass(client.getClientClass());
             vo.setEnterDate(client.getEnterDate());
             return vo;
         }, (v1, v2) -> v1));
@@ -59,19 +59,19 @@ public class ErpClientServiceImpl implements IErpClientService, CommonErpClientS
     }
 
     @Override
-    public ErpClientVo queryById(String fRowId) {
-        return baseMapper.selectVoById(fRowId);
+    public ErpClientVo queryById(String rowId) {
+        return baseMapper.selectVoById(rowId);
     }
 
     private LambdaQueryWrapper<ErpClient> buildQueryWrapper(ErpClientQuery query) {
         LambdaQueryWrapper<ErpClient> lqw = Wrappers.lambdaQuery();
-        lqw.like(StringUtils.isNotBlank(query.getFName()), ErpClient::getFName, query.getFName());
-        lqw.like(StringUtils.isNotBlank(query.getFNum()), ErpClient::getFNum, query.getFNum());
+        lqw.like(StringUtils.isNotBlank(query.getName()), ErpClient::getName, query.getName());
+        lqw.like(StringUtils.isNotBlank(query.getNum()), ErpClient::getNum, query.getNum());
         lqw.like(StringUtils.isNotBlank(query.getShortName()), ErpClient::getShortName, query.getShortName());
         lqw.like(StringUtils.isNotBlank(query.getPyCode()), ErpClient::getPyCode, query.getPyCode());
-        lqw.eq(StringUtils.isNotBlank(query.getFClass()), ErpClient::getFClass, query.getFClass());
+        lqw.eq(StringUtils.isNotBlank(query.getClientClass()), ErpClient::getClass, query.getClientClass());
         lqw.eq(query.getStopUse() != null, ErpClient::getStopUse, query.getStopUse());
-        lqw.orderByAsc(ErpClient::getFNum);
+        lqw.orderByAsc(ErpClient::getNum);
         return lqw;
     }
 

+ 1 - 1
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpColorKindServiceImpl.java

@@ -25,7 +25,7 @@ public class ErpColorKindServiceImpl implements IErpColorKindService {
     public List<ErpColorKindVo> queryList() {
         return baseMapper.selectVoList(Wrappers.lambdaQuery(ErpColorKind.class)
             .eq(ErpColorKind::getStopUse, 0)
-            .orderByAsc(ErpColorKind::getFNum));
+            .orderByAsc(ErpColorKind::getNum));
     }
 
 }

+ 5 - 5
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpModelServiceImpl.java

@@ -37,18 +37,18 @@ public class ErpModelServiceImpl implements IErpModelService {
     @Override
     public List<ErpModelVo> queryList(ErpModelQuery query) {
         LambdaQueryWrapper<ErpModel> lqw = buildQueryWrapper(query);
-        if (ObjectUtil.isEmpty(query.getFNum()) && ObjectUtil.isEmpty(query.getFName())) {
-            lqw.last("OFFSET 0 ROWS FETCH NEXT 100 ROWS ONLY");
+        if (ObjectUtil.isEmpty(query.getNum()) && ObjectUtil.isEmpty(query.getName())) {
+            lqw.last("OFFSET 0 ROWS ETCH NEXT 100 ROWS ONLY");
         }
         return baseMapper.selectVoList(lqw);
     }
 
     private LambdaQueryWrapper<ErpModel> buildQueryWrapper(ErpModelQuery query) {
         LambdaQueryWrapper<ErpModel> lqw = Wrappers.lambdaQuery();
-        lqw.like(ObjectUtil.isNotEmpty(query.getFNum()), ErpModel::getFNum, query.getFNum());
-        lqw.like(ObjectUtil.isNotEmpty(query.getFName()), ErpModel::getFName, query.getFName());
+        lqw.like(ObjectUtil.isNotEmpty(query.getNum()), ErpModel::getNum, query.getNum());
+        lqw.like(ObjectUtil.isNotEmpty(query.getName()), ErpModel::getName, query.getName());
         lqw.eq(ErpModel::getStopUse, 0);
-        lqw.orderByAsc(ErpModel::getFNum);
+        lqw.orderByAsc(ErpModel::getNum);
         return lqw;
     }
 

+ 56 - 0
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpOrderAuditServiceImpl.java

@@ -0,0 +1,56 @@
+package org.dromara.erp.service.impl;
+
+import cn.hutool.core.util.IdUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import lombok.RequiredArgsConstructor;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.erp.domain.ErpOrderAudit;
+import org.dromara.erp.domain.vo.ErpOrderAuditVo;
+import org.dromara.erp.mapper.ErpOrderAuditMapper;
+import org.dromara.erp.service.IErpOrderAuditService;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 订单审核记录 Service 业务层处理
+ * @Author: Antigravity
+ */
+@RequiredArgsConstructor
+@Service
+public class ErpOrderAuditServiceImpl implements IErpOrderAuditService {
+
+    private final ErpOrderAuditMapper baseMapper;
+
+    @Override
+    public TableDataInfo<ErpOrderAuditVo> queryPageList(ErpOrderAudit query, PageQuery pageQuery) {
+        LambdaQueryWrapper<ErpOrderAudit> lqw = Wrappers.lambdaQuery();
+        lqw.eq(query.getOrderId() != null, ErpOrderAudit::getOrderId, query.getOrderId());
+        lqw.orderByDesc(ErpOrderAudit::getCreateTime);
+        Page<ErpOrderAuditVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    @Override
+    public List<ErpOrderAuditVo> queryByOrderId(String orderId) {
+        LambdaQueryWrapper<ErpOrderAudit> lqw = Wrappers.lambdaQuery();
+        lqw.eq(ErpOrderAudit::getOrderId, orderId);
+        lqw.orderByDesc(ErpOrderAudit::getCreateTime);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    @Override
+    public Boolean insert(ErpOrderAudit audit) {
+        if (audit.getRowId() == null) {
+            audit.setRowId(IdUtil.fastUUID());
+        }
+        if (audit.getAuditTime() == null) {
+            audit.setAuditTime(new Date());
+        }
+        return baseMapper.insert(audit) > 0;
+    }
+}

+ 11 - 11
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpOrderDetailServiceImpl.java

@@ -30,29 +30,29 @@ public class ErpOrderDetailServiceImpl implements IErpOrderDetailService {
     @Override
     public List<ErpOrderDetailVo> queryList(ErpOrderDetailQuery query) {
         LambdaQueryWrapper<ErpOrderDetail> lqw = Wrappers.lambdaQuery();
-        if (ObjectUtil.isNotEmpty(query.getFOrderId())) {
-            lqw.eq(ErpOrderDetail::getFOrderId, query.getFOrderId());
+        if (ObjectUtil.isNotEmpty(query.getOrderId())) {
+            lqw.eq(ErpOrderDetail::getOrderId, query.getOrderId());
         } else {
-            // 如果没传订单ID,默认查询未下单的草稿(即 FOrderID 为 NULL)
-            lqw.isNull(ErpOrderDetail::getFOrderId);
+            // 如果没传订单ID,默认查询未下单的草稿(即 OrderID 为 NULL)
+            lqw.isNull(ErpOrderDetail::getOrderId);
         }
         lqw.orderByDesc(ErpOrderDetail::getCreateTime);
         return baseMapper.selectVoList(lqw);
     }
 
     @Override
-    public ErpOrderDetailVo queryById(String fRowId) {
-        return baseMapper.selectVoById(fRowId);
+    public ErpOrderDetailVo queryById(String rowId) {
+        return baseMapper.selectVoById(rowId);
     }
 
     @Override
     public Boolean insert(org.dromara.erp.domain.bo.ErpOrderDetailBo bo) {
         ErpOrderDetail entity = MapstructUtils.convert(bo, ErpOrderDetail.class);
-        if (ObjectUtil.isEmpty(entity.getFRowId())) {
-            entity.setFRowId(IdUtil.fastUUID());
+        if (ObjectUtil.isEmpty(entity.getRowId())) {
+            entity.setRowId(IdUtil.fastUUID());
         }
         // 处理其他可能为空字符串的 RowID 字段,防止 SQL Server 报错
-        if (ObjectUtil.isEmpty(entity.getFOrderId())) entity.setFOrderId(null);
+        if (ObjectUtil.isEmpty(entity.getOrderId())) entity.setOrderId(null);
         if (ObjectUtil.isEmpty(entity.getModelId())) entity.setModelId(null);
         if (ObjectUtil.isEmpty(entity.getSurfaceId())) entity.setSurfaceId(null);
         if (ObjectUtil.isEmpty(entity.getPackId())) entity.setPackId(null);
@@ -87,8 +87,8 @@ public class ErpOrderDetailServiceImpl implements IErpOrderDetailService {
     }
 
     @Override
-    public Boolean deleteById(String fRowId) {
-        return baseMapper.deleteById(fRowId) > 0;
+    public Boolean deleteById(String rowId) {
+        return baseMapper.deleteById(rowId) > 0;
     }
 
 }

+ 97 - 62
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpOrderServiceImpl.java

@@ -5,10 +5,14 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.erp.domain.ErpOrder;
 import org.dromara.erp.domain.query.ErpOrderQuery;
 import org.dromara.erp.domain.vo.ErpOrderVo;
+import org.dromara.erp.enums.ErpAuditResult;
 import org.dromara.erp.enums.ErpOrderStatus;
 import org.dromara.erp.mapper.ErpOrderMapper;
 import org.dromara.erp.service.IErpOrderService;
@@ -21,45 +25,67 @@ import java.util.List;
  * 订单 Service 业务层处理
  * @Author: Antigravity
  */
+@Slf4j
 @RequiredArgsConstructor
 @Service
 public class ErpOrderServiceImpl implements IErpOrderService {
 
     private final ErpOrderMapper baseMapper;
     private final org.dromara.erp.mapper.ErpOrderDetailMapper erpOrderDetailMapper;
+    private final org.dromara.erp.mapper.ErpOrderAuditMapper erpOrderAuditMapper;
+
+    @Override
+    public TableDataInfo<ErpOrderVo> queryPageList(ErpOrderQuery query, PageQuery pageQuery) {
+        LambdaQueryWrapper<ErpOrder> lqw = buildQueryWrapper(query);
+        com.baomidou.mybatisplus.extension.plugins.pagination.Page<ErpOrderVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        
+        List<ErpOrderVo> list = result.getRecords();
+        if (ObjectUtil.isNotEmpty(list)) {
+            fillOrderDetails(list);
+        }
+        return TableDataInfo.build(result);
+    }
 
     @Override
     public List<ErpOrderVo> queryList(ErpOrderQuery query) {
-        LambdaQueryWrapper<ErpOrder> lqw = Wrappers.lambdaQuery();
-        lqw.eq(ObjectUtil.isNotEmpty(query.getFCode()), ErpOrder::getFCode, query.getFCode());
-        lqw.eq(ObjectUtil.isNotEmpty(query.getFPlacer()), ErpOrder::getFPlacer, query.getFPlacer());
-        lqw.eq(ObjectUtil.isNotEmpty(query.getFStatus()), ErpOrder::getFStatus, query.getFStatus());
-        lqw.orderByDesc(ErpOrder::getCreateTime);
+        LambdaQueryWrapper<ErpOrder> lqw = buildQueryWrapper(query);
         List<ErpOrderVo> list = baseMapper.selectVoList(lqw);
-        
         if (ObjectUtil.isNotEmpty(list)) {
-            List<String> orderIds = list.stream().map(ErpOrderVo::getFRowId).toList();
-            LambdaQueryWrapper<org.dromara.erp.domain.ErpOrderDetail> detailLqw = Wrappers.lambdaQuery();
-            detailLqw.in(org.dromara.erp.domain.ErpOrderDetail::getFOrderId, orderIds);
-            List<org.dromara.erp.domain.vo.ErpOrderDetailVo> allDetails = erpOrderDetailMapper.selectVoList(detailLqw);
-            
-            for (ErpOrderVo vo : list) {
-                List<org.dromara.erp.domain.vo.ErpOrderDetailVo> details = allDetails.stream()
-                        .filter(d -> vo.getFRowId().equals(d.getFOrderId()))
-                        .toList();
-                vo.setDetails(details);
-                vo.setTotalCount(details.stream().mapToInt(d -> d.getCount() == null ? 0 : d.getCount()).sum());
-            }
+            fillOrderDetails(list);
         }
         return list;
     }
 
+    private LambdaQueryWrapper<ErpOrder> buildQueryWrapper(ErpOrderQuery query) {
+        LambdaQueryWrapper<ErpOrder> lqw = Wrappers.lambdaQuery();
+        lqw.eq(ObjectUtil.isNotEmpty(query.getCode()), ErpOrder::getCode, query.getCode());
+        lqw.eq(ObjectUtil.isNotEmpty(query.getPlacer()), ErpOrder::getPlacer, query.getPlacer());
+        lqw.eq(ObjectUtil.isNotEmpty(query.getStatus()), ErpOrder::getStatus, query.getStatus());
+        lqw.orderByDesc(ErpOrder::getCreateTime);
+        return lqw;
+    }
+
+    private void fillOrderDetails(List<ErpOrderVo> list) {
+        List<String> orderIds = list.stream().map(ErpOrderVo::getRowId).toList();
+        LambdaQueryWrapper<org.dromara.erp.domain.ErpOrderDetail> detailLqw = Wrappers.lambdaQuery();
+        detailLqw.in(org.dromara.erp.domain.ErpOrderDetail::getOrderId, orderIds);
+        List<org.dromara.erp.domain.vo.ErpOrderDetailVo> allDetails = erpOrderDetailMapper.selectVoList(detailLqw);
+        
+        for (ErpOrderVo vo : list) {
+            List<org.dromara.erp.domain.vo.ErpOrderDetailVo> details = allDetails.stream()
+                    .filter(d -> vo.getRowId().equals(d.getOrderId()))
+                    .toList();
+            vo.setDetails(details);
+            vo.setTotalCount(details.stream().mapToInt(d -> d.getCount() == null ? 0 : d.getCount()).sum());
+        }
+    }
+
     @Override
-    public ErpOrderVo queryById(String fRowId) {
-        ErpOrderVo vo = baseMapper.selectVoById(fRowId);
+    public ErpOrderVo queryById(String rowId) {
+        ErpOrderVo vo = baseMapper.selectVoById(rowId);
         if (vo != null) {
             LambdaQueryWrapper<org.dromara.erp.domain.ErpOrderDetail> detailLqw = Wrappers.lambdaQuery();
-            detailLqw.eq(org.dromara.erp.domain.ErpOrderDetail::getFOrderId, fRowId);
+            detailLqw.eq(org.dromara.erp.domain.ErpOrderDetail::getOrderId, rowId);
             List<org.dromara.erp.domain.vo.ErpOrderDetailVo> details = erpOrderDetailMapper.selectVoList(detailLqw);
             vo.setDetails(details);
             vo.setTotalCount(details.stream().mapToInt(d -> d.getCount() == null ? 0 : d.getCount()).sum());
@@ -71,68 +97,77 @@ public class ErpOrderServiceImpl implements IErpOrderService {
     @com.baomidou.dynamic.datasource.annotation.DSTransactional
     public Boolean insert(org.dromara.erp.domain.bo.ErpOrderBo bo) {
         ErpOrder entity = MapstructUtils.convert(bo, ErpOrder.class);
-        if (ObjectUtil.isEmpty(entity.getFRowId())) {
-            entity.setFRowId(IdUtil.fastUUID());
+        if (ObjectUtil.isEmpty(entity.getRowId())) {
+            entity.setRowId(IdUtil.fastUUID());
         }
-        if (ObjectUtil.isEmpty(entity.getFCode())) {
-            entity.setFCode(IdUtil.fastSimpleUUID());
+        if (ObjectUtil.isEmpty(entity.getCode())) {
+            entity.setCode(IdUtil.fastSimpleUUID());
         }
-        if (entity.getFPlacer() == null) {
+        if (entity.getPlacer() == null) {
             try {
-                entity.setFPlacer(org.dromara.common.satoken.utils.LoginHelper.getUserId());
+                log.info("[调试] 开始自动填充 Placer...");
+                log.info("[调试] 当前是否登录: {}", org.dromara.common.satoken.utils.LoginHelper.isLogin());
+                log.info("[调试] 当前 Token: {}", cn.dev33.satoken.stp.StpUtil.getTokenValue());
+                
+                Long userId = org.dromara.common.satoken.utils.LoginHelper.getUserId();
+                log.info("[调试] 获取到的用户 ID: {}", userId);
+                
+                if (userId != null) {
+                    entity.setPlacer(userId);
+                    log.info("[调试] 自动填充 Placer 成功: {}", userId);
+                } else {
+                    log.warn("[调试] 获取到的用户 ID 为空,请检查 Token 是否有效或 Security 上下文是否正确传递");
+                }
             } catch (Exception e) {
-                // Ignore if not in web context
+                log.error("[调试] 自动填充 Placer 发生异常: {}", e.getMessage(), e);
             }
         }
-        if (entity.getFPlaceTime() == null) {
-            entity.setFPlaceTime(new Date());
+        if (entity.getPlaceTime() == null) {
+            entity.setPlaceTime(new Date());
         }
-        if (entity.getFStatus() == null) {
-            entity.setFStatus(ErpOrderStatus.WAIT_AUDIT.getCode());
+        if (entity.getStatus() == null) {
+            entity.setStatus(ErpOrderStatus.WAIT_AUDIT.getCode());
         }
 
-        // 审计字段回填
-        Long userId = null;
-        try {
-            userId = org.dromara.common.satoken.utils.LoginHelper.getUserId();
-        } catch (Exception e) {
-            // Ignore
-        }
-        Date now = new Date();
-        entity.setCreateBy(userId);
-        entity.setCreateTime(now);
-        entity.setUpdateBy(userId);
-        entity.setUpdateTime(now);
-
         boolean result = baseMapper.insert(entity) > 0;
         
         if (result && ObjectUtil.isNotEmpty(bo.getDetailIds())) {
             // 根据前端传递的明细 ID 列表,精确更新这批明细关联的订单 ID
             com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper<org.dromara.erp.domain.ErpOrderDetail> luw = Wrappers.lambdaUpdate();
-            luw.set(org.dromara.erp.domain.ErpOrderDetail::getFOrderId, entity.getFRowId())
-               .in(org.dromara.erp.domain.ErpOrderDetail::getFRowId, bo.getDetailIds());
+            luw.set(org.dromara.erp.domain.ErpOrderDetail::getOrderId, entity.getRowId())
+               .in(org.dromara.erp.domain.ErpOrderDetail::getRowId, bo.getDetailIds());
             erpOrderDetailMapper.update(null, luw);
         }
         return result;
     }
 
     @Override
-    public Boolean update(org.dromara.erp.domain.bo.ErpOrderBo bo) {
-        ErpOrder entity = MapstructUtils.convert(bo, ErpOrder.class);
-        
-        // 审计字段回填
-        Long userId = null;
-        try {
-            userId = org.dromara.common.satoken.utils.LoginHelper.getUserId();
-        } catch (Exception e) {}
-        entity.setUpdateBy(userId);
-        entity.setUpdateTime(new Date());
+    @com.baomidou.dynamic.datasource.annotation.DSTransactional
+    public Boolean auditOrder(org.dromara.erp.domain.ErpOrderAudit audit) {
+        // 1. 修改订单状态
+        ErpOrder order = baseMapper.selectById(audit.getOrderId());
+        if (order == null) {
+            throw new org.dromara.common.core.exception.ServiceException("订单不存在");
+        }
         
-        return baseMapper.updateById(entity) > 0;
-    }
+        // 根据审核结果设置订单状态
+        if (ErpAuditResult.PASS.getCode().equals(audit.getAuditResult())) { // 通过
+            order.setStatus(ErpOrderStatus.AUDITED.getCode());
+        } else if (ErpAuditResult.REJECT.getCode().equals(audit.getAuditResult())) { // 驳回
+            order.setStatus(ErpOrderStatus.REJECTED.getCode());
+        }
+        baseMapper.updateById(order);
 
-    @Override
-    public Boolean deleteById(String fRowId) {
-        return baseMapper.deleteById(fRowId) > 0;
+        // 2. 记录审核历史
+        if (audit.getRowId() == null) {
+            audit.setRowId(IdUtil.fastUUID());
+        }
+        if (audit.getAuditor() == null) {
+            audit.setAuditor(org.dromara.common.satoken.utils.LoginHelper.getUserId());
+        }
+        if (audit.getAuditTime() == null) {
+            audit.setAuditTime(new Date());
+        }
+        return erpOrderAuditMapper.insert(audit) > 0;
     }
 }

+ 1 - 1
ruoyi-modules/yingpaipay-erp/src/main/java/org/dromara/erp/service/impl/ErpPackServiceImpl.java

@@ -25,7 +25,7 @@ public class ErpPackServiceImpl implements IErpPackService {
     public List<ErpPackVo> queryList() {
         return baseMapper.selectVoList(Wrappers.lambdaQuery(ErpPack.class)
             .eq(ErpPack::getStopUse, 0)
-            .orderByAsc(ErpPack::getFNum));
+            .orderByAsc(ErpPack::getNum));
     }
 
 }

+ 47 - 0
script/sql/sqlserver/v1/HTSail_CS-create.sql

@@ -13,6 +13,7 @@ CREATE TABLE [dbo].[t_Applet_Order] (
   [FStatus] int DEFAULT 0 NULL,
   
   -- 常规审计字段
+  [CreateDept] bigint NULL,
   [CreateBy] bigint NULL,
   [CreateTime] datetime DEFAULT GETDATE() NULL,
   [UpdateBy] bigint NULL,
@@ -34,6 +35,8 @@ EXEC sp_addextendedproperty 'MS_Description', N'下单时间', 'SCHEMA', N'dbo',
 GO
 EXEC sp_addextendedproperty 'MS_Description', N'订单状态 (0-待审核)', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order', 'COLUMN', N'FStatus'
 GO
+EXEC sp_addextendedproperty 'MS_Description', N'创建部门', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order', 'COLUMN', N'CreateDept'
+GO
 
 -- ----------------------------
 -- Table structure for t_Applet_Order_Details
@@ -66,6 +69,7 @@ CREATE TABLE [dbo].[t_Applet_Order_Details] (
   [Count] int NULL,
   
   -- 审计字段
+  [CreateDept] bigint NULL,
   [CreateBy] bigint NULL,
   [CreateTime] datetime DEFAULT GETDATE() NULL,
   [UpdateBy] bigint NULL,
@@ -103,3 +107,46 @@ EXEC sp_addextendedproperty 'MS_Description', N'壁厚(mm)', 'SCHEMA', N'dbo', '
 GO
 EXEC sp_addextendedproperty 'MS_Description', N'支数', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'Count'
 GO
+EXEC sp_addextendedproperty 'MS_Description', N'创建部门', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Details', 'COLUMN', N'CreateDept'
+GO
+
+-- ----------------------------
+-- Table structure for t_Applet_Order_Audit
+-- ----------------------------
+IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[t_Applet_Order_Audit]') AND type IN ('U'))
+	DROP TABLE [dbo].[t_Applet_Order_Audit]
+GO
+
+CREATE TABLE [dbo].[t_Applet_Order_Audit] (
+  [FRowID] [dbo].[RowID] NOT NULL,
+  [FOrderID] [dbo].[RowID] NOT NULL,
+  [FAuditor] bigint NULL,
+  [FAuditTime] datetime DEFAULT GETDATE() NULL,
+  [FAuditResult] int NULL, -- 1-通过, 2-驳回
+  [FRejectReason] nvarchar(500) NULL,
+  
+  -- 审计字段
+  [CreateDept] bigint NULL,
+  [CreateBy] bigint NULL,
+  [CreateTime] datetime DEFAULT GETDATE() NULL,
+  [UpdateBy] bigint NULL,
+  [UpdateTime] datetime NULL
+)
+GO
+
+ALTER TABLE [dbo].[t_Applet_Order_Audit] ADD CONSTRAINT [PK_t_Applet_Order_Audit] PRIMARY KEY CLUSTERED ([FRowID])
+GO
+
+-- 字段注释
+EXEC sp_addextendedproperty 'MS_Description', N'审核记录主键', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Audit', 'COLUMN', N'FRowID'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'订单ID', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Audit', 'COLUMN', N'FOrderID'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'审核人', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Audit', 'COLUMN', N'FAuditor'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'审核时间', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Audit', 'COLUMN', N'FAuditTime'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'审核结果(1-通过, 2-驳回)', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Audit', 'COLUMN', N'FAuditResult'
+GO
+EXEC sp_addextendedproperty 'MS_Description', N'驳回原因', 'SCHEMA', N'dbo', 'TABLE', N't_Applet_Order_Audit', 'COLUMN', N'FRejectReason'
+GO

+ 3 - 3
yingpaipay-api/yingpaipay-api-erp/src/main/java/org/dromara/yingpaipay/api/erp/domain/vo/CommonErpClientVo.java

@@ -20,17 +20,17 @@ public class CommonErpClientVo implements Serializable {
     /**
      * RowID
      */
-    private String fRowId;
+    private String rowId;
 
     /**
      * 名称
      */
-    private String fName;
+    private String name;
 
     /**
      * 客户类型
      */
-    private String fClass;
+    private String clientClass;
 
     /**
      * 加入时间