Explorar o código

添加代客录单报价功能

li.pengfei %!s(int64=2) %!d(string=hai) anos
pai
achega
17e4626f2d

+ 8 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -455,6 +455,14 @@ public class SysUserController extends BaseController {
 
     }
 
+    @ApiOperation(value = "获取可选业务员列表")
+    @GetMapping(value = "/getAllUsers")
+    public HttpResult getAllUsers(@RequestParam(required = false) String userId) {
+        List<SysUser> userList = sysUserService.getAllUsers(userId);
+        return HttpResult.ok(userList);
+
+    }
+
     @ApiOperation(value = "(new)是否绑定微信")
     @GetMapping(value = "/isBindWechat")
     public HttpResult<Object> isBindWechat() {

+ 2 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -99,6 +99,8 @@ public interface SysUserService extends IService<SysUser> {
 
     HttpResult updateUserInfo(String userId, SysUser2Vo sysUserVo);
 
+    public List<SysUser> getAllUsers(String userId);
+
 }
 
 

+ 10 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -492,6 +492,16 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
 
         return HttpResult.ok("修改成功");
     }
+
+
+    @Override
+    public List<SysUser> getAllUsers(String userId) {
+        LambdaQueryWrapper<SysUser> lqw = new LambdaQueryWrapper<>();
+        lqw.eq(SysUser::getStatus, "1");
+        lqw.eq(StringUtils.isNotEmpty(userId),SysUser::getId,userId);
+        List<SysUser> lst = list(lqw);
+        return lst;
+    }
 }
 
 

+ 6 - 2
src/main/java/com/ydtech/modules/order/aop/aspect/QuoteVerificationAspect.java

@@ -4,6 +4,7 @@ package com.ydtech.modules.order.aop.aspect;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.order.entity.vo.BaseQuoteVo;
 import com.ydtech.modules.protocol.service.PtlAgreementDeptService;
+import com.ydtech.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
@@ -28,8 +29,11 @@ public class QuoteVerificationAspect {
         for (Object arg : args) {
             if (arg instanceof BaseQuoteVo) {
                 String agreementId = ((BaseQuoteVo<?>) arg).getAgreementId();
-                // 判断协议是否可以报价
-                String deptId = new BaseController().getDeptId();
+                String deptId=((BaseQuoteVo<?>) arg).getDeptId();
+                // 判断协议是否可以报价(代客录单时,机构需要传过来 没传为空时,为车险录单进来的 直接取登录用户机构即可)
+                if(StringUtils.isEmpty(deptId)){
+                    deptId = new BaseController().getDeptId();
+                }
                 ptlAgreementDeptService.agreementIsAuthorized(deptId, agreementId);
             }
         }

+ 6 - 2
src/main/java/com/ydtech/modules/order/controller/InsOrdersController.java

@@ -16,6 +16,7 @@ import com.ydtech.modules.order.service.InsAccidentalDrivingService;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.protocol.entity.dto.PtlAgreementInsCompanyDto;
+import com.ydtech.utils.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.BeanUtils;
@@ -49,8 +50,11 @@ public class InsOrdersController extends BaseController {
 
     @GetMapping("/getAgreementInsCompany")
     @ApiOperation(value = "获取协议报价保险公司")
-    public HttpResult<List<PtlAgreementInsCompanyDto>> getAgreementInsCompany() {
-        return this.insOrdersService.getAgreementInsCompany(getDeptId());
+    public HttpResult<List<PtlAgreementInsCompanyDto>> getAgreementInsCompany(@RequestParam(required = false) String deptId) {
+        if(StringUtils.isEmpty(deptId)){
+            deptId=getDeptId();
+        }
+        return this.insOrdersService.getAgreementInsCompany(deptId);
     }
 
     @PostMapping("/generateOrder")

+ 8 - 0
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -77,6 +77,14 @@ public class InsOrders implements Serializable {
     @TableField(value = "userid")
     private String userid;
 
+
+
+    /**
+     * 代客录单时操作员ID
+     */
+    @TableField(value = "operatorid")
+    private String operatorid;
+
     /**
      * 用户名称
      */

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/vo/BaseQuoteInfoVo.java

@@ -21,6 +21,9 @@ public class BaseQuoteInfoVo extends YaQuoteInfoVo {
     @ApiModelProperty("车船税信息")
     private VehicleAndVesselTax vehicleAndVesselTax;
 
+    @ApiModelProperty("代客录单用-实际业务归属人")
+    private String userId;
+
     public BaseQuoteInfoVo() {
     }
 

+ 3 - 0
src/main/java/com/ydtech/modules/order/entity/vo/BaseQuoteVo.java

@@ -34,5 +34,8 @@ public class BaseQuoteVo<T> {
     @ApiModelProperty("商业险查询码")
     private String cQryCdeSy;
 
+    @ApiModelProperty("归属机构-代客录单时需要传,选择业务员的归属机构")
+    private String deptId;
+
 
 }

+ 22 - 2
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -172,16 +172,36 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         return insOrders;
     }
 
+    /**
+     *
+     * @param userId  当前登录人id
+     * @param quoteInfoVo 报价信息
+     * @return
+     */
     @Override
     public InsOrders generateOrder(String userId, BaseQuoteInfoVo quoteInfoVo) {
+
+        String realUserId=userId;//实际跟单业务人默认登录人
+        boolean daikeFlag=false;//是否代客录单业务
+        //如果传递的业务归属人且与登录人不一致,则是代客录单业务
+        if(StringUtils.isNotEmpty(quoteInfoVo.getUserId())&&!userId.equals(quoteInfoVo.getUserId())){
+            //实际跟单业务人变更为手工选择的人
+            realUserId=quoteInfoVo.getUserId();
+            daikeFlag=true;
+        }
         // 1. 验证订单参数
         orderComponents.checkEmpty(quoteInfoVo);
-        SysUser user = sysUserService.getById(userId);
+        SysUser user = sysUserService.getById(realUserId);
         SysDept dept = sysDeptService.getById(user.getDeptId());
         // 2 构造订单
         InsOrders insOrders = new InsOrders(user, dept, quoteInfoVo);
+        if(daikeFlag){//当时代客录单业务时,才需要赋值该字段
+            insOrders.setOperatorid(userId);//赋值代客录单操作人为登录人
+        }
         InsOrders insOrders1 = baseMapper.selectById(quoteInfoVo.getOrderNo());
 
+        //需要赋值代录单人ID
+
         if (ObjectUtils.isEmpty(insOrders1)) {
             insOrders1 = insOrders;
         }
@@ -191,7 +211,7 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
 
         // 3 订单操作
-        if (!userId.equals(insOrders1.getUserid()) || StringUtils.isEmpty(quoteInfoVo.getOrderNo())) {
+        if (!realUserId.equals(insOrders1.getUserid()) || StringUtils.isEmpty(quoteInfoVo.getOrderNo())) {
             // 存入订单
             String orderno = IdGenerate.nextId();
             insOrders.setOrderno(orderno);