Kaynağa Gözat

增加子订单轨迹

wks 2 yıl önce
ebeveyn
işleme
ea1b80ff67

+ 40 - 0
src/main/java/com/ydtech/modules/order/controller/InsOrdersTrackController.java

@@ -0,0 +1,40 @@
+package com.ydtech.modules.order.controller;
+
+
+import com.ydtech.core.page.HttpResult;
+import com.ydtech.modules.order.entity.InsOrdersTrack;
+import com.ydtech.modules.order.service.InsOrdersTrackService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@Api(tags = "订单轨迹")
+@RequestMapping("/insurance/track")
+@RestController
+@RequiredArgsConstructor
+public class InsOrdersTrackController {
+
+    private final InsOrdersTrackService insOrdersTrackService;
+
+    @GetMapping("/query")
+    @ApiOperation(value = "订单轨迹查询")
+    public HttpResult<List<InsOrdersTrack>> query(@RequestParam(required = false) String orderNo) {
+        List<InsOrdersTrack> query = this.insOrdersTrackService.query(orderNo);
+        return HttpResult.ok(query);
+    }
+
+    @GetMapping("/queryBySuborder")
+    @ApiOperation(value = "子订单轨迹查询")
+    public HttpResult<List<InsOrdersTrack>> queryBySuborder(@RequestParam(required = false) String suborder) {
+        List<InsOrdersTrack> query = this.insOrdersTrackService.queryBySuborder(suborder);
+        return HttpResult.ok(query);
+    }
+
+
+}

+ 18 - 0
src/main/java/com/ydtech/modules/order/dao/InsOrdersTrackMapper.java

@@ -0,0 +1,18 @@
+package com.ydtech.modules.order.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ydtech.modules.order.entity.InsOrdersTrack;
+
+/**
+* @author Administrator
+* @description 针对表【ins_orders_track(订单轨迹表)】的数据库操作Mapper
+* @createDate 2023-12-11 15:04:11
+* @Entity generator.domain.InsOrdersTrack
+*/
+public interface InsOrdersTrackMapper extends BaseMapper<InsOrdersTrack> {
+
+}
+
+
+
+

+ 114 - 0
src/main/java/com/ydtech/modules/order/entity/InsOrdersTrack.java

@@ -0,0 +1,114 @@
+package com.ydtech.modules.order.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 订单轨迹表
+ *
+ * @TableName ins_orders_track
+ */
+@TableName(value = "ins_orders_track")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("订单轨迹")
+public class InsOrdersTrack implements Serializable {
+    /**
+     * 主键
+     */
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+
+    /**
+     * 子订单
+     */
+    @TableField(value = "suborder")
+    @ApiModelProperty("子订单")
+    private String suborder;
+
+    /**
+     * 报价保险公司
+     */
+    @TableField(value = "company_id")
+    @ApiModelProperty("报价保险公司")
+    private String companyId;
+
+    /**
+     * 保险公司名称
+     */
+    @TableField(value = "ins_company")
+    @ApiModelProperty("保险公司名称")
+    private String insCompany;
+
+    /**
+     * 订单
+     */
+    @TableField(value = "order_no")
+    @ApiModelProperty("订单号")
+    private String orderNo;
+
+    /**
+     * 订单状态
+     */
+    @TableField(value = "order_status")
+    @ApiModelProperty("订单状态")
+    private String orderStatus;
+
+    /**
+     * 提交人id
+     */
+    @TableField(value = "operator_id")
+    @ApiModelProperty("提交人id")
+    private String operatorId;
+
+    /**
+     * 提交人
+     */
+    @TableField(value = "operator")
+    @ApiModelProperty("提交人")
+    private String operator;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_time")
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+
+    public InsOrdersTrack(InsAreaCompany insAreaCompany, String operatorId, String operator) {
+        this.suborder = insAreaCompany.getId();
+        this.companyId = insAreaCompany.getCompanyId();
+        this.insCompany = insAreaCompany.getInscompany();
+        this.orderNo = insAreaCompany.getOrderno();
+        this.orderStatus = insAreaCompany.getOrderstatus();
+        this.operatorId = operatorId;
+        this.operator = operator;
+        this.createTime = LocalDateTime.now();
+    }
+
+    public InsOrdersTrack(InsOrders insOrders, String operatorId, String operator) {
+        this.orderNo = insOrders.getOrderno();
+        this.orderStatus = "订单生成";
+        this.operatorId = operatorId;
+        this.operator = operator;
+        this.createTime = LocalDateTime.now();
+    }
+
+}

+ 7 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersService.java

@@ -97,4 +97,11 @@ public interface InsOrdersService extends IService<InsOrders> {
      * @return 子订单列表
      */
     List<InsAreaCompanyQueryDto> querySuborder(String orderNo);
+
+    /**
+     *
+     * @param insOrders 订单数据
+     * @return true->成功 false->失败
+     */
+    boolean saveAndTrajectories(InsOrders insOrders);
 }

+ 49 - 0
src/main/java/com/ydtech/modules/order/service/InsOrdersTrackService.java

@@ -0,0 +1,49 @@
+package com.ydtech.modules.order.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ydtech.modules.order.entity.InsAreaCompany;
+import com.ydtech.modules.order.entity.InsOrdersTrack;
+
+import java.util.List;
+
+/**
+ * @author Administrator
+ * @description 针对表【ins_orders_track(订单轨迹表)】的数据库操作Service
+ * @createDate 2023-12-11 15:04:11
+ */
+public interface InsOrdersTrackService extends IService<InsOrdersTrack> {
+
+    /**
+     * 增加订单轨迹
+     *
+     * @param insAreaCompany 子订单信息
+     */
+    void addingTrajectories(InsAreaCompany insAreaCompany);
+
+    /**
+     * 通过订单号查询报价轨迹
+     *
+     * @param orderNo 订单号
+     * @return 订单轨迹
+     */
+    default List<InsOrdersTrack> query(String orderNo) {
+        return lambdaQuery()
+                .eq(InsOrdersTrack::getOrderNo, orderNo)
+                .orderByAsc(InsOrdersTrack::getCreateTime)
+                .list();
+    }
+
+    /**
+     * 子订单轨迹
+     *
+     * @param suborder 子订单号
+     * @return 订单轨迹
+     */
+    default List<InsOrdersTrack> queryBySuborder(String suborder) {
+        return lambdaQuery()
+                .eq(InsOrdersTrack::getSuborder, suborder)
+                .orderByAsc(InsOrdersTrack::getCreateTime)
+                .list();
+    }
+
+}

+ 8 - 1
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -8,6 +8,8 @@ import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.modules.order.service.InsOrdersTrackService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -26,8 +28,11 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
 
     private final InsOrdersService insOrdersService;
 
-    public InsAreaCompanyServiceImpl(@Lazy InsOrdersService insOrdersService) {
+    private final InsOrdersTrackService insOrdersTrackService;
+
+    public InsAreaCompanyServiceImpl(@Lazy InsOrdersService insOrdersService, InsOrdersTrackService insOrdersTrackService) {
         this.insOrdersService = insOrdersService;
+        this.insOrdersTrackService = insOrdersTrackService;
     }
 
     @Override
@@ -48,12 +53,14 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     @Transactional
     public void updateCompanyAndOrders(InsAreaCompany insAreaCompany) {
         baseMapper.updateById(insAreaCompany);
+        insOrdersTrackService.addingTrajectories(insAreaCompany);
         insOrdersService.updateByOrderStatus(insAreaCompany.getOrderno(), insAreaCompany.getOrderstatus());
     }
 
     @Override
     public void insertCompanyAndOrders(InsAreaCompany insAreaCompany) {
         baseMapper.insert(insAreaCompany);
+        insOrdersTrackService.addingTrajectories(insAreaCompany);
         insOrdersService.updateByOrderStatus(insAreaCompany.getOrderno(), insAreaCompany.getOrderstatus());
     }
 

+ 23 - 3
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ydtech.modules.order.service.impl;
 
+import cn.dev33.satoken.session.SaSession;
+import cn.dev33.satoken.stp.StpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -30,12 +32,14 @@ import com.ydtech.modules.order.dao.InsOrdersMapper;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.entity.InsOrdersTrack;
 import com.ydtech.modules.order.entity.bo.UnderwritingRulesBo;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
 import com.ydtech.modules.order.entity.vo.*;
 import com.ydtech.modules.order.entity.vo.ya.YaExtendInfoDto;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.modules.order.service.InsOrdersTrackService;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
 import com.ydtech.modules.protocol.service.PtlAgreementService;
 import com.ydtech.utils.SnowFlakeUtil;
@@ -45,6 +49,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
 import javax.validation.constraints.NotBlank;
@@ -85,13 +90,15 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
 
     private final FeeRuleSchemeServiceImpl feeRuleSchemeService;
 
+    private final InsOrdersTrackService insOrdersTrackService;
+
     public InsOrdersServiceImpl(OrderComponents orderComponents, SysUserService sysUserService,
                                 SysUserRoleService sysUserRoleService, EsmUserReferrerService esmUserReferrerService,
                                 SysDeptService sysDeptService, StringRedisTemplate redisTemplate,
                                 @Lazy InsAreaCompanyService insAreaCompanyService,
                                 PtlAgreementService ptlAgreementService,
                                 @Lazy FeeRuleSchemeServiceImpl feeRuleSchemeService,
-                                InsFeeAuditService insFeeAuditService) {
+                                InsFeeAuditService insFeeAuditService, InsOrdersTrackService insOrdersTrackService) {
 
         this.orderComponents = orderComponents;
         this.sysUserService = sysUserService;
@@ -103,6 +110,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         this.ptlAgreementService = ptlAgreementService;
         this.feeRuleSchemeService = feeRuleSchemeService;
         this.insFeeAuditService = insFeeAuditService;
+        this.insOrdersTrackService = insOrdersTrackService;
     }
 
 
@@ -180,7 +188,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
      */
     @Override
     public InsOrders generateOrder(String userId, BaseQuoteInfoVo quoteInfoVo) {
-
         String realUserId = userId;//实际跟单业务人默认登录人
         boolean daikeFlag = false;//是否代客录单业务
         //如果传递的业务归属人且与登录人不一致,则是代客录单业务
@@ -218,7 +225,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             // 将报价号返回
             long l = new SnowFlakeUtil().nextId();
             insOrders.setQuoteno(String.valueOf(l));
-            boolean save = this.save(insOrders);
+            boolean save = this.saveAndTrajectories(insOrders);
             if (!save) {
                 throw new SystemException("订单生成失败");
             }
@@ -392,4 +399,17 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
         return HttpResult.ok(byUseridAndLicenseNo);
     }
+
+
+    @Override
+    @Transactional
+    public boolean saveAndTrajectories(InsOrders insOrders) {
+        this.baseMapper.insert(insOrders);
+        SaSession saSession = StpUtil.getSessionByLoginId(StpUtil.getLoginId());
+        SysUser sysUser = (SysUser) saSession.get(SaSession.USER);
+        final InsOrdersTrack insOrdersTrack = new InsOrdersTrack(insOrders, sysUser.getId(), sysUser.getName());
+        insOrdersTrackService.save(insOrdersTrack);
+        return true;
+    }
+
 }

+ 35 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersTrackServiceImpl.java

@@ -0,0 +1,35 @@
+package com.ydtech.modules.order.service.impl;
+
+import cn.dev33.satoken.session.SaSession;
+import cn.dev33.satoken.stp.StpUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ydtech.modules.admin.model.SysUser;
+import com.ydtech.modules.order.dao.InsOrdersTrackMapper;
+import com.ydtech.modules.order.entity.InsAreaCompany;
+import com.ydtech.modules.order.entity.InsOrdersTrack;
+import com.ydtech.modules.order.service.InsOrdersTrackService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author Administrator
+ * @description 针对表【ins_orders_track(订单轨迹表)】的数据库操作Service实现
+ * @createDate 2023-12-11 15:04:11
+ */
+@Service
+public class InsOrdersTrackServiceImpl extends ServiceImpl<InsOrdersTrackMapper, InsOrdersTrack>
+        implements InsOrdersTrackService {
+
+    @Override
+    public void addingTrajectories(InsAreaCompany insAreaCompany) {
+        SaSession saSession = StpUtil.getSessionByLoginId(StpUtil.getLoginId());
+        SysUser sysUser = (SysUser) saSession.get(SaSession.USER);
+        InsOrdersTrack insOrdersTrack = new InsOrdersTrack(insAreaCompany, sysUser.getId(), sysUser.getName());
+        this.baseMapper.insert(insOrdersTrack);
+    }
+
+
+}
+
+
+
+

+ 24 - 0
src/main/resources/mapper/modules/order/InsOrdersTrackMapper.xml

@@ -0,0 +1,24 @@
+<?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.ydtech.modules.order.dao.InsOrdersTrackMapper">
+
+    <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.InsOrdersTrack">
+        <id property="id" column="id" jdbcType="BIGINT"/>
+        <result property="suborder" column="suborder" jdbcType="VARCHAR"/>
+        <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
+        <result property="insCompany" column="ins_company" jdbcType="VARCHAR"/>
+        <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
+        <result property="orderStatus" column="order_status" jdbcType="VARCHAR"/>
+        <result property="operatorId" column="operator_id" jdbcType="VARCHAR"/>
+        <result property="operator" column="operator" jdbcType="VARCHAR"/>
+        <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        id,suborder,company_id,ins_company,
+        order_no,order_status,operator_id,
+        operator,create_time
+    </sql>
+</mapper>