瀏覽代碼

- 新增 FsIntegralOrderLogs 实体类,支持订单操作记录管理
- 新增按订单ID查询操作记录接口 GET /his/logs/order/{orderId}

dengweize 1 周之前
父節點
當前提交
1dd9d3c7a5

+ 24 - 7
fs-admin/src/main/java/com/fs/his/controller/FsIntegralOrderController.java

@@ -12,10 +12,8 @@ import com.fs.common.enums.BusinessType;
 import com.fs.common.utils.CloudHostUtils;
 import com.fs.common.utils.StringUtils;
 import com.fs.common.utils.poi.ExcelUtil;
-import com.fs.his.domain.FsDfAccount;
-import com.fs.his.domain.FsIntegralOrder;
-import com.fs.his.domain.FsIntegralOrderDf;
-import com.fs.his.domain.FsStoreOrder;
+import com.fs.common.utils.uuid.IdUtils;
+import com.fs.his.domain.*;
 import com.fs.his.dto.ExpressInfoDTO;
 import com.fs.his.enums.ShipperCodeEnum;
 import com.fs.his.mapper.FsIntegralOrderMapper;
@@ -59,6 +57,8 @@ public class FsIntegralOrderController extends BaseController
     @Autowired
     private IFsStoreOrderService fsStoreOrderService;
 
+    @Autowired
+    private IFsIntegralOrderLogsService integralOrderLogsService;
 
     @Autowired
     private IFsIntegralOrderDfService integralOrderDfService;
@@ -314,12 +314,20 @@ public class FsIntegralOrderController extends BaseController
             } else {
                 integralOrderDfService.insertFsIntegralOrderDf(df);
             }
-            //积分订单操作日志暂定
+            // 添加积分订单操作记录
+            FsIntegralOrderLogs logs = new FsIntegralOrderLogs();
+            logs.setLogsId(IdUtils.fastUUID());
+            logs.setOrderId(item.getOrderId());
+            logs.setChangeType("set_erp_account");
+            logs.setChangeMessage(nickName+"设置ERP账户为:" + loginAccount);
+            logs.setChangeTime(LocalDateTime.now());
+            logs.setOperator(nickName);
+            integralOrderLogsService.insertFsIntegralOrderLogs(logs);
         });
         return R.ok();
     }
 
-//    @Log(title = "手动推管易", businessType = BusinessType.INSERT)
+    //    @Log(title = "手动推管易", businessType = BusinessType.INSERT)
     @ApiOperation("批量创建ERP订单")
 //    @PreAuthorize("@ss.hasPermi('his:storeOrder:createErpOrder')")
     @Log(title = "积分商品订单", businessType = BusinessType.UPDATE)
@@ -354,9 +362,18 @@ public class FsIntegralOrderController extends BaseController
                     integralOrderDfService.getBaseMapper().insert(df);
                     order.setLoginAccount(df.getLoginAccount());
                     integralOrderMapper.updateById(order);
-                    //日志表,待定
                 }
                 fsIntegralOrderService.createErpOrder(order.getOrderId());
+
+                // 添加积分订单操作记录
+                FsIntegralOrderLogs logs = new FsIntegralOrderLogs();
+                logs.setLogsId(IdUtils.fastUUID());
+                logs.setOrderId(order.getOrderId());
+                logs.setChangeType("create_erp_order");
+                logs.setChangeMessage(getLoginUser().getUser().getNickName()+"创建ERP订单,账户:" + loginAccount);
+                logs.setChangeTime(LocalDateTime.now());
+                logs.setOperator(getLoginUser().getUser().getNickName());
+                integralOrderLogsService.insertFsIntegralOrderLogs(logs);
             }
         }
         return R.ok("推送成功");

+ 109 - 0
fs-admin/src/main/java/com/fs/his/controller/FsIntegralOrderLogsController.java

@@ -0,0 +1,109 @@
+package com.fs.his.controller;
+
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.his.domain.FsIntegralOrderLogs;
+import com.fs.his.service.IFsIntegralOrderLogsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 订单操作记录Controller
+ *
+ * @author fs
+ * @date 2025-11-25
+ */
+@RestController
+@RequestMapping("/his/logs")
+public class FsIntegralOrderLogsController extends BaseController
+{
+    @Autowired
+    private IFsIntegralOrderLogsService fsIntegralOrderLogsService;
+
+    /**
+     * 查询订单操作记录列表
+     */
+//    @PreAuthorize("@ss.hasPermi('his:logs:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(FsIntegralOrderLogs fsIntegralOrderLogs)
+    {
+        startPage();
+        List<FsIntegralOrderLogs> list = fsIntegralOrderLogsService.selectFsIntegralOrderLogsList(fsIntegralOrderLogs);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出订单操作记录列表
+     */
+//    @PreAuthorize("@ss.hasPermi('his:logs:export')")
+    @Log(title = "订单操作记录", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(FsIntegralOrderLogs fsIntegralOrderLogs)
+    {
+        List<FsIntegralOrderLogs> list = fsIntegralOrderLogsService.selectFsIntegralOrderLogsList(fsIntegralOrderLogs);
+        ExcelUtil<FsIntegralOrderLogs> util = new ExcelUtil<FsIntegralOrderLogs>(FsIntegralOrderLogs.class);
+        return util.exportExcel(list, "订单操作记录数据");
+    }
+
+    /**
+     * 获取订单操作记录详细信息
+     */
+//    @PreAuthorize("@ss.hasPermi('his:logs:query')")
+    @GetMapping(value = "/{logsId}")
+    public AjaxResult getInfo(@PathVariable("logsId") String logsId)
+    {
+        return AjaxResult.success(fsIntegralOrderLogsService.selectFsIntegralOrderLogsByLogsId(logsId));
+    }
+
+    /**
+     * 新增订单操作记录
+     */
+//    @PreAuthorize("@ss.hasPermi('his:logs:add')")
+    @Log(title = "订单操作记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody FsIntegralOrderLogs fsIntegralOrderLogs)
+    {
+        return toAjax(fsIntegralOrderLogsService.insertFsIntegralOrderLogs(fsIntegralOrderLogs));
+    }
+
+    /**
+     * 修改订单操作记录
+     */
+//    @PreAuthorize("@ss.hasPermi('his:logs:edit')")
+    @Log(title = "订单操作记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody FsIntegralOrderLogs fsIntegralOrderLogs)
+    {
+        return toAjax(fsIntegralOrderLogsService.updateFsIntegralOrderLogs(fsIntegralOrderLogs));
+    }
+
+    /**
+     * 根据订单ID查询操作记录
+     */
+//    @PreAuthorize("@ss.hasPermi('his:logs:query')")
+    @GetMapping("/order/{orderId}")
+    public AjaxResult getLogsByOrderId(@PathVariable("orderId") Long orderId)
+    {
+        FsIntegralOrderLogs queryParam = new FsIntegralOrderLogs();
+        queryParam.setOrderId(orderId);
+        List<FsIntegralOrderLogs> list = fsIntegralOrderLogsService.selectFsIntegralOrderLogsList(queryParam);
+        return AjaxResult.success(list);
+    }
+
+    /**
+     * 删除订单操作记录
+     */
+//    @PreAuthorize("@ss.hasPermi('his:logs:remove')")
+    @Log(title = "订单操作记录", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{logsIds}")
+    public AjaxResult remove(@PathVariable String[] logsIds)
+    {
+        return toAjax(fsIntegralOrderLogsService.deleteFsIntegralOrderLogsByLogsIds(logsIds));
+    }
+}

+ 6 - 0
fs-service/src/main/java/com/fs/erp/service/impl/DfOrderServiceImpl.java

@@ -162,6 +162,8 @@ public class DfOrderServiceImpl implements IErpOrderService {
     @Autowired
     private LiveOrderMapper liveOrderMapper;
 
+    @Autowired
+    private FsIntegralOrderLogsMapper fsIntegralOrderLogsMapper;
     @Autowired
     private LiveOrderItemMapper liveOrderItemMapper;
 
@@ -1057,10 +1059,12 @@ public class DfOrderServiceImpl implements IErpOrderService {
             order.setStatus(1);//设置待发货状态
             order.setDeliverySn("");
             integralOrderMapper.updateById(order);
+            fsIntegralOrderLogsMapper.insert(FsIntegralOrderLogs.builder().orderId(order.getOrderId()).changeType(FsStoreOrderLogEnum.UPDATE_ORDER_DF.getValue()).changeMessage("运单不存在," + FsStoreOrderLogEnum.UPDATE_ORDER_DF.getDesc()).build());
         } else {
             log.info("积分订单物流被取消,退款积分订单{}",order.getOrderCode());
             //以前查询到过物流信息,现在查不到,物流被人为取消
             integralOrderService.mandatoryRefunds(order.getOrderCode());
+            fsIntegralOrderLogsMapper.insert(FsIntegralOrderLogs.builder().orderId(order.getOrderId()).changeType(FsStoreOrderLogEnum.REFUND_ORDER_DF.getValue()).changeMessage("运单不存在," + FsStoreOrderLogEnum.REFUND_ORDER_DF.getDesc()).build());
         }
         log.info("取消订单代服记录更新id{}",order.getOrderCode());
         FsIntegralOrderDf df = new FsIntegralOrderDf();
@@ -1983,6 +1987,8 @@ public class DfOrderServiceImpl implements IErpOrderService {
                                             order.setStatus(2);//修改积分订单为待收货状态
                                             order.setDeliveryTime(DateUtils.getNowDate()); //更新发货时间
                                             fsIntegralOrderMapper.updateById(order);
+                                            //订单发货日志
+                                            fsIntegralOrderLogsMapper.insert(FsIntegralOrderLogs.builder().orderId(order.getOrderId()).changeType("delivery_goods").changeMessage(FsStoreOrderLogEnum.DELIVERY_GOODS.getDesc()).build());
 //                                            fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.DELIVERY_GOODS.getValue(), FsStoreOrderLogEnum.DELIVERY_GOODS.getDesc());
 //                                            redisCache.deleteObject(DELIVERY+":"+order.getOrderCode());
 //                                            if (order.getCompanyId() != null && order.getCompanyId() > 0) {

+ 47 - 0
fs-service/src/main/java/com/fs/his/domain/FsIntegralOrderLogs.java

@@ -0,0 +1,47 @@
+package com.fs.his.domain;
+
+import com.fs.common.annotation.Excel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+/**
+ * 订单操作记录对象 fs_integral_order_logs
+ *
+ * @author fs
+ * @date 2025-11-25
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+public class FsIntegralOrderLogs{
+
+    /** $column.columnComment */
+    private String logsId;
+
+    /** 订单id */
+    @Excel(name = "订单id")
+    private Long orderId;
+
+    /** 操作类型 */
+    @Excel(name = "操作类型")
+    private String changeType;
+
+    /** 操作备注 */
+    @Excel(name = "操作备注")
+    private String changeMessage;
+
+    /** 操作时间 */
+    private LocalDateTime changeTime;
+
+    /** 操作员 */
+    @Excel(name = "操作员")
+    private String operator;
+
+
+}

+ 62 - 0
fs-service/src/main/java/com/fs/his/mapper/FsIntegralOrderLogsMapper.java

@@ -0,0 +1,62 @@
+package com.fs.his.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fs.his.domain.FsIntegralOrderLogs;
+
+import java.util.List;
+
+/**
+ * 订单操作记录Mapper接口
+ *
+ * @author fs
+ * @date 2025-11-25
+ */
+public interface FsIntegralOrderLogsMapper extends BaseMapper<FsIntegralOrderLogs> {
+    /**
+     * 查询订单操作记录
+     *
+     * @param logsId 订单操作记录主键
+     * @return 订单操作记录
+     */
+    FsIntegralOrderLogs selectFsIntegralOrderLogsByLogsId(String logsId);
+
+    /**
+     * 查询订单操作记录列表
+     *
+     * @param fsIntegralOrderLogs 订单操作记录
+     * @return 订单操作记录集合
+     */
+    List<FsIntegralOrderLogs> selectFsIntegralOrderLogsList(FsIntegralOrderLogs fsIntegralOrderLogs);
+
+    /**
+     * 新增订单操作记录
+     *
+     * @param fsIntegralOrderLogs 订单操作记录
+     * @return 结果
+     */
+    int insertFsIntegralOrderLogs(FsIntegralOrderLogs fsIntegralOrderLogs);
+
+    /**
+     * 修改订单操作记录
+     *
+     * @param fsIntegralOrderLogs 订单操作记录
+     * @return 结果
+     */
+    int updateFsIntegralOrderLogs(FsIntegralOrderLogs fsIntegralOrderLogs);
+
+    /**
+     * 删除订单操作记录
+     *
+     * @param logsId 订单操作记录主键
+     * @return 结果
+     */
+    int deleteFsIntegralOrderLogsByLogsId(String logsId);
+
+    /**
+     * 批量删除订单操作记录
+     *
+     * @param logsIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    int deleteFsIntegralOrderLogsByLogsIds(String[] logsIds);
+}

+ 62 - 0
fs-service/src/main/java/com/fs/his/service/IFsIntegralOrderLogsService.java

@@ -0,0 +1,62 @@
+package com.fs.his.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fs.his.domain.FsIntegralOrderLogs;
+
+import java.util.List;
+
+/**
+ * 订单操作记录Service接口
+ *
+ * @author fs
+ * @date 2025-11-25
+ */
+public interface IFsIntegralOrderLogsService extends IService<FsIntegralOrderLogs> {
+    /**
+     * 查询订单操作记录
+     *
+     * @param logsId 订单操作记录主键
+     * @return 订单操作记录
+     */
+    FsIntegralOrderLogs selectFsIntegralOrderLogsByLogsId(String logsId);
+
+    /**
+     * 查询订单操作记录列表
+     *
+     * @param fsIntegralOrderLogs 订单操作记录
+     * @return 订单操作记录集合
+     */
+    List<FsIntegralOrderLogs> selectFsIntegralOrderLogsList(FsIntegralOrderLogs fsIntegralOrderLogs);
+
+    /**
+     * 新增订单操作记录
+     *
+     * @param fsIntegralOrderLogs 订单操作记录
+     * @return 结果
+     */
+    int insertFsIntegralOrderLogs(FsIntegralOrderLogs fsIntegralOrderLogs);
+
+    /**
+     * 修改订单操作记录
+     *
+     * @param fsIntegralOrderLogs 订单操作记录
+     * @return 结果
+     */
+    int updateFsIntegralOrderLogs(FsIntegralOrderLogs fsIntegralOrderLogs);
+
+    /**
+     * 批量删除订单操作记录
+     *
+     * @param logsIds 需要删除的订单操作记录主键集合
+     * @return 结果
+     */
+    int deleteFsIntegralOrderLogsByLogsIds(String[] logsIds);
+
+    /**
+     * 删除订单操作记录信息
+     *
+     * @param logsId 订单操作记录主键
+     * @return 结果
+     */
+    int deleteFsIntegralOrderLogsByLogsId(String logsId);
+}

+ 92 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsIntegralOrderLogsServiceImpl.java

@@ -0,0 +1,92 @@
+package com.fs.his.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fs.his.domain.FsIntegralOrderLogs;
+import com.fs.his.mapper.FsIntegralOrderLogsMapper;
+import com.fs.his.service.IFsIntegralOrderLogsService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 订单操作记录Service业务层处理
+ *
+ * @author fs
+ * @date 2025-11-25
+ */
+@Service
+public class FsIntegralOrderLogsServiceImpl extends ServiceImpl<FsIntegralOrderLogsMapper, FsIntegralOrderLogs> implements IFsIntegralOrderLogsService {
+
+    /**
+     * 查询订单操作记录
+     *
+     * @param logsId 订单操作记录主键
+     * @return 订单操作记录
+     */
+    @Override
+    public FsIntegralOrderLogs selectFsIntegralOrderLogsByLogsId(String logsId)
+    {
+        return baseMapper.selectFsIntegralOrderLogsByLogsId(logsId);
+    }
+
+    /**
+     * 查询订单操作记录列表
+     *
+     * @param fsIntegralOrderLogs 订单操作记录
+     * @return 订单操作记录
+     */
+    @Override
+    public List<FsIntegralOrderLogs> selectFsIntegralOrderLogsList(FsIntegralOrderLogs fsIntegralOrderLogs)
+    {
+        return baseMapper.selectFsIntegralOrderLogsList(fsIntegralOrderLogs);
+    }
+
+    /**
+     * 新增订单操作记录
+     *
+     * @param fsIntegralOrderLogs 订单操作记录
+     * @return 结果
+     */
+    @Override
+    public int insertFsIntegralOrderLogs(FsIntegralOrderLogs fsIntegralOrderLogs)
+    {
+        return baseMapper.insertFsIntegralOrderLogs(fsIntegralOrderLogs);
+    }
+
+    /**
+     * 修改订单操作记录
+     *
+     * @param fsIntegralOrderLogs 订单操作记录
+     * @return 结果
+     */
+    @Override
+    public int updateFsIntegralOrderLogs(FsIntegralOrderLogs fsIntegralOrderLogs)
+    {
+        return baseMapper.updateFsIntegralOrderLogs(fsIntegralOrderLogs);
+    }
+
+    /**
+     * 批量删除订单操作记录
+     *
+     * @param logsIds 需要删除的订单操作记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteFsIntegralOrderLogsByLogsIds(String[] logsIds)
+    {
+        return baseMapper.deleteFsIntegralOrderLogsByLogsIds(logsIds);
+    }
+
+    /**
+     * 删除订单操作记录信息
+     *
+     * @param logsId 订单操作记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteFsIntegralOrderLogsByLogsId(String logsId)
+    {
+        return baseMapper.deleteFsIntegralOrderLogsByLogsId(logsId);
+    }
+}

+ 76 - 0
fs-service/src/main/resources/mapper/his/FsIntegralOrderLogsMapper.xml

@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fs.his.mapper.FsIntegralOrderLogsMapper">
+
+    <resultMap type="FsIntegralOrderLogs" id="FsIntegralOrderLogsResult">
+        <result property="logsId"    column="logs_id"    />
+        <result property="orderId"    column="order_id"    />
+        <result property="changeType"    column="change_type"    />
+        <result property="changeMessage"    column="change_message"    />
+        <result property="changeTime"    column="change_time"    />
+        <result property="operator"    column="operator"    />
+    </resultMap>
+
+    <sql id="selectFsIntegralOrderLogsVo">
+        select logs_id, order_id, change_type, change_message, change_time, operator from fs_integral_order_logs
+    </sql>
+
+    <select id="selectFsIntegralOrderLogsList" parameterType="FsIntegralOrderLogs" resultMap="FsIntegralOrderLogsResult">
+        <include refid="selectFsIntegralOrderLogsVo"/>
+        <where>
+            <if test="orderId != null  and orderId != ''"> and order_id = #{orderId}</if>
+            <if test="changeType != null  and changeType != ''"> and change_type = #{changeType}</if>
+            <if test="changeMessage != null  and changeMessage != ''"> and change_message = #{changeMessage}</if>
+            <if test="changeTime != null "> and change_time = #{changeTime}</if>
+            <if test="operator != null  and operator != ''"> and operator = #{operator}</if>
+        </where>
+    </select>
+
+    <select id="selectFsIntegralOrderLogsByLogsId" parameterType="String" resultMap="FsIntegralOrderLogsResult">
+        <include refid="selectFsIntegralOrderLogsVo"/>
+        where logs_id = #{logsId}
+    </select>
+
+    <insert id="insertFsIntegralOrderLogs" parameterType="FsIntegralOrderLogs" useGeneratedKeys="true" keyProperty="logsId">
+        insert into fs_integral_order_logs
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="orderId != null and orderId != ''">order_id,</if>
+            <if test="changeType != null and changeType != ''">change_type,</if>
+            <if test="changeMessage != null and changeMessage != ''">change_message,</if>
+            <if test="changeTime != null">change_time,</if>
+            <if test="operator != null">operator,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="orderId != null and orderId != ''">#{orderId},</if>
+            <if test="changeType != null and changeType != ''">#{changeType},</if>
+            <if test="changeMessage != null and changeMessage != ''">#{changeMessage},</if>
+            <if test="changeTime != null">#{changeTime},</if>
+            <if test="operator != null">#{operator},</if>
+        </trim>
+    </insert>
+
+    <update id="updateFsIntegralOrderLogs" parameterType="FsIntegralOrderLogs">
+        update fs_integral_order_logs
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="orderId != null and orderId != ''">order_id = #{orderId},</if>
+            <if test="changeType != null and changeType != ''">change_type = #{changeType},</if>
+            <if test="changeMessage != null and changeMessage != ''">change_message = #{changeMessage},</if>
+            <if test="changeTime != null">change_time = #{changeTime},</if>
+            <if test="operator != null">operator = #{operator},</if>
+        </trim>
+        where logs_id = #{logsId}
+    </update>
+
+    <delete id="deleteFsIntegralOrderLogsByLogsId" parameterType="String">
+        delete from fs_integral_order_logs where logs_id = #{logsId}
+    </delete>
+
+    <delete id="deleteFsIntegralOrderLogsByLogsIds" parameterType="String">
+        delete from fs_integral_order_logs where logs_id in
+        <foreach item="logsId" collection="array" open="(" separator="," close=")">
+            #{logsId}
+        </foreach>
+    </delete>
+</mapper>