Browse Source

Merge remote-tracking branch 'origin/dev_jzg_lipf_v20260506' into dev_jzg_lipf_v20260506

jiakai 4 months ago
parent
commit
d4a42a10d9

+ 3 - 1
commons/src/main/java/com/jzg/commons/entity/orders/po/InsOrders.java

@@ -7,13 +7,15 @@ import com.jzg.commons.core.base.BaseModel;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
-import java.time.LocalDate;
+import java.io.Serial;
 import java.time.LocalDateTime;
 
 @Data
 @Schema(description = "保险订单表")
 public class InsOrders extends BaseModel {
 
+    @Serial
+    private static final long serialVersionUID = -5057873662529403780L;
     @Schema(description = "订单ID")
     @TableId(value = "id", type = IdType.ASSIGN_ID)
     private String id;

+ 8 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/aggregated/QuoteEchoVo.java

@@ -120,6 +120,12 @@ public class QuoteEchoVo extends QuoteVo {
 
         @Schema(description = "业务员租户简称")
         private String systemShortName;
+        // 业务员对应的管理员的id(sys_user表的id)
+        @Schema(description = "业务员对应的管理员的id(sys_user表的id)")
+        private String realQuoteUserManagerId;
+        // 业务员对应的管理员的手机号
+        @Schema(description = "业务员对应的管理员的手机号")
+        private String realQuoteUserManagerUseName;
     }
 
 
@@ -315,6 +321,8 @@ public class QuoteEchoVo extends QuoteVo {
             salesman.setSystemCode(insOrdersVo.getSalesmanInfo().getSystemCode());
             salesman.setSystemName(insOrdersVo.getSalesmanInfo().getSystemName());
             salesman.setSystemShortName(insOrdersVo.getSalesmanInfo().getSystemShortName());
+            salesman.setRealQuoteUserManagerId(insOrdersVo.getSalesmanInfo().getRealQuoteUserManagerId());
+            salesman.setRealQuoteUserManagerUseName(insOrdersVo.getSalesmanInfo().getRealQuoteUserManagerUseName());
         }
         this.setSalesmanInfo(salesman);
         this.setErrorMessage(insOrdersVo.getErrorMessage());

+ 7 - 0
commons/src/main/java/com/jzg/commons/entity/quote/vo/orders/InsOrdersVo.java

@@ -126,6 +126,13 @@ public class InsOrdersVo extends QuoteVo {
 
     @Data
     public static class Salesman{
+
+        // 业务员对应的管理员的id(sys_user表的id)
+        @Schema(description = "业务员对应的管理员的id(sys_user表的id)")
+        private String realQuoteUserManagerId;
+        // 业务员对应的管理员的手机号
+        @Schema(description = "业务员对应的管理员的手机号")
+        private String realQuoteUserManagerUseName;
         @Schema(description = "业务员姓名")
         private String name;
 

+ 9 - 0
commons/src/main/java/com/jzg/commons/entity/vo/SalesmanVo.java

@@ -9,6 +9,15 @@ import lombok.Data;
 
 @Data
 public class SalesmanVo {
+
+    // 业务员的领导id(sys_user_jzg_info表的id)
+    private String leaderId;
+
+    // 业务员对应的管理员的id(sys_user表的id)
+    private String realQuoteUserManagerId;
+    // 业务员对应的管理员的手机号
+    private String realQuoteUserManagerUseName;
+
     private String id;
 
     private String name;

+ 14 - 0
commons/src/main/java/com/jzg/commons/exception/ServiceException.java

@@ -0,0 +1,14 @@
+package com.jzg.commons.exception;
+
+import java.io.Serial;
+
+
+public class ServiceException extends RuntimeException{
+    @Serial
+    private static final long serialVersionUID = -1477293094627064589L;
+
+
+    public ServiceException(String msg) {
+        super(msg);
+    }
+}

+ 16 - 6
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/controller/InsFeeAuditController.java

@@ -1,10 +1,10 @@
 package com.jzg.quotation.summary.controller;
 
 
+import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.jzg.commons.core.base.BaseController;
 import com.jzg.commons.core.page.HttpResult;
-import com.jzg.commons.entity.dto.FeeAuditAddParam;
 import com.jzg.commons.entity.dto.FeeAuditParam;
 import com.jzg.commons.entity.dto.VerifyOrderParam;
 import com.jzg.commons.entity.orders.vo.AuditCostInfoVo;
@@ -14,6 +14,8 @@ import com.jzg.commons.entity.vo.PtlAgreementCostRatioVo;
 import com.jzg.quotation.summary.service.InsFeeAuditService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -24,6 +26,8 @@ import java.util.List;
 @RequestMapping("/feeAudit")
 public class InsFeeAuditController {
 
+    private static final Logger log = LoggerFactory.getLogger(InsFeeAuditController.class);
+
     @Autowired
     private InsFeeAuditService insFeeAuditService;
 
@@ -36,7 +40,7 @@ public class InsFeeAuditController {
      */
     @PostMapping("/auditList")
     @Operation(summary = "订单审核列表分页")
-    public HttpResult auditList(@RequestBody FeeAuditParam param){
+    public HttpResult<Page<FeeAuditVo>> auditList(@RequestBody FeeAuditParam param){
         param.setSystemCode(baseController.getUserSystemCode());
         Page<FeeAuditVo> result = insFeeAuditService.queryPage(param);
         return HttpResult.ok(result);
@@ -55,11 +59,11 @@ public class InsFeeAuditController {
 
     /**
      * 订单审核详情
-     * @return
+     * @return HttpResult<QuoteEchoVo>
      */
     @GetMapping("/auditInfo")
     @Operation(summary = "订单审核详情")
-    public HttpResult auditInfo(String orderNo){
+    public HttpResult<QuoteEchoVo> auditInfo(String orderNo){
         QuoteEchoVo detailVo = insFeeAuditService.auditInfo(orderNo);
         return HttpResult.ok(detailVo);
     }
@@ -113,8 +117,14 @@ public class InsFeeAuditController {
      */
     @PostMapping("/verifyOrder")
     @Operation(summary = "审核订单")
-    public HttpResult verifyOrder(@RequestBody VerifyOrderParam param){
-        insFeeAuditService.verifyOrder(param);
+    public HttpResult<String> verifyOrder(@RequestBody VerifyOrderParam param){
+        try{
+            insFeeAuditService.verifyOrder(param);
+        }catch (Exception e){
+            log.info("审核订单发生异常:param=[{}], e", JSONUtil.toJsonStr(param), e);
+            return HttpResult.ok(e.getMessage());
+        }
+
         return HttpResult.ok("订单审核成功");
     }
 

+ 13 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsFeeAuditServiceImpl.java

@@ -24,6 +24,7 @@ import com.jzg.commons.entity.quote.vo.aggregated.QuoteEchoVo;
 import com.jzg.commons.entity.rights.po.InsOrderRights;
 import com.jzg.commons.entity.rights.po.InsOrderRightsPackage;
 import com.jzg.commons.entity.vo.*;
+import com.jzg.commons.exception.ServiceException;
 import com.jzg.commons.exception.SystemException;
 import com.jzg.commons.util.AssertionUtils;
 import com.jzg.commons.util.PDFUtil;
@@ -62,7 +63,7 @@ import java.util.concurrent.TimeUnit;
 /**
 * @author dongxin
 * @description 针对表【ins_fee_audit(费用审核表)】的数据库操作Service实现
-* @createDate 2025-07-02 14:35:50
+* @date 2025-07-02 14:35:50
 */
 @Service
 @RequiredArgsConstructor
@@ -122,7 +123,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
 
     @Override
     public Page<FeeAuditVo> queryPage(FeeAuditParam param) {
-        log.info("订单审核-任务中心,查询待审核任务。 param=[{}]", JSONUtil.toJsonStr(param));
+        log.info("订单审核-任务中心,查询待审核任务。param=[{}]", JSONUtil.toJsonStr(param));
         // 获取选中的保险公司条件
         String companyId = param.getCompanyId();
         if(StringUtils.isNotBlank(companyId)){
@@ -214,6 +215,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
 
     @Override
     public QuoteEchoVo auditInfo(String orderNo) {
+        //险种和订单类型以及业务员对应的管理员
         log.info("查看订单审核详情:orderNo=[{}]",JSONUtil.toJsonStr(orderNo));
         QuoteEchoVo detailVo = insOrdersService.getOrderDetail(orderNo);
         log.debug("查看订单审核详情:orderNo=[{}], detailVo=[{}]",orderNo, JSONUtil.toJsonStr(detailVo));
@@ -347,7 +349,16 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
 
     @Override
     public void verifyOrder(VerifyOrderParam param) {
+        log.info("审核订单. param=[{}]", JSONUtil.toJsonStr(param));
         InsFeeAudit audit = this.getById(param.getOrderNo());
+        if(audit == null){
+            throw new ServiceException("要审核的订单不存在");
+        }
+        // modify by lipf 2026年5月16日11:44:07 疑问订单无法直接审核通过
+        if(audit.getIsProblem() == 1){
+            log.info("订单号为[{}]的订单为疑问订单,无法直接审核通过",param.getOrderNo());
+            throw new ServiceException("疑问订单无法直接审核通过,请先取消疑问");
+        }
         InsOrders orders = insOrdersService.getById(audit.getOrderNo());
         if(audit.getAuditStatus() > 0){
             AssertionUtils.isFail(true, "订单已审核刷新订单详情页!");

+ 2 - 0
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -489,6 +489,8 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
             salesman.setSystemCode(salesmanInfo.getSystemCode());
             salesman.setSystemName(salesmanInfo.getSystemName());
             salesman.setSystemShortName(salesmanInfo.getSystemShortName());
+            salesman.setRealQuoteUserManagerId(salesmanInfo.getRealQuoteUserManagerId());
+            salesman.setRealQuoteUserManagerUseName(salesmanInfo.getRealQuoteUserManagerUseName());
             insOrdersVo.setSalesmanInfo(salesman);
         }
         // 2. 处理车辆用户信息列表

+ 6 - 0
tenant/organization/src/main/java/com/jzg/organization/service/SysUserService.java

@@ -205,6 +205,12 @@ public interface SysUserService extends IService<SysUser> {
 
     SysUser getUserByMobile(String mobile);
 
+    /**
+     * 通过电话获取业务员信息
+     *
+     * @author lipf
+     * @date 2026/5/16 11:55
+     */
     SalesmanVo getUserInfoBySystemCodeAndUserId(String userId);
 
     /**

+ 16 - 1
tenant/organization/src/main/java/com/jzg/organization/service/impl/SysUserServiceImpl.java

@@ -1306,7 +1306,22 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
     @Override
     public SalesmanVo getUserInfoBySystemCodeAndUserId(String userId) {
-        return sysUserJzgInfoMapper.getUserInfoBySystemCodeAndUserId(userId);
+        SalesmanVo salesmanVo = sysUserJzgInfoMapper.getUserInfoBySystemCodeAndUserId(userId);
+        String leaderId = salesmanVo.getLeaderId();
+        if(StrUtil.isEmpty(leaderId)){
+            return salesmanVo;
+        }
+        SysUserJzgInfo sysUserJzgInfo = sysUserJzgInfoMapper.selectById(leaderId);
+        if(sysUserJzgInfo == null){
+            return salesmanVo;
+        }
+        String leaderUserId = sysUserJzgInfo.getUserId();
+        salesmanVo.setRealQuoteUserManagerId(leaderUserId);
+        SysUser sysUser = sysUserMapper.selectById(leaderUserId);
+        if(sysUser != null){
+            salesmanVo.setRealQuoteUserManagerUseName(sysUser.getUsername());
+        }
+        return salesmanVo;
     }
 
     @Override

+ 1 - 0
tenant/organization/src/main/resources/mapper/SysUserJzgInfoMapper.xml

@@ -333,6 +333,7 @@
         SELECT
             suji.name,
             suji.dept_Id as deptId,
+            suji.leader_id,
             sd.name as deptName,
             suji.type_attr as typeAttr,
             su.mobile as mobile ,