Просмотр исходного кода

出单员角色 出单调整生成订单逻辑 以及查询逻辑 存储userid和operatorid

li.pengfei 2 лет назад
Родитель
Сommit
0e15121fd4
1 измененных файлов с 37 добавлено и 7 удалено
  1. 37 7
      src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

+ 37 - 7
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -190,12 +190,27 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     public InsOrders generateOrder(String userId, BaseQuoteInfoVo quoteInfoVo) {
     public InsOrders generateOrder(String userId, BaseQuoteInfoVo quoteInfoVo) {
         String realUserId = userId;//实际跟单业务人默认登录人
         String realUserId = userId;//实际跟单业务人默认登录人
         boolean daikeFlag = false;//是否代客录单业务
         boolean daikeFlag = false;//是否代客录单业务
-        //如果传递的业务归属人且与登录人不一致,则是代客录单业务
-        if (StringUtils.isNotEmpty(quoteInfoVo.getUserId()) && !userId.equals(quoteInfoVo.getUserId())) {
-            //实际跟单业务人变更为手工选择的人
-            realUserId = quoteInfoVo.getUserId();
-            daikeFlag = true;
+        //添加出单员报价的逻辑,
+        boolean isCdy=false;//是否出单员标志
+        if (StringUtils.isNotEmpty(userId)) {
+            SysUserRole userRole = sysUserRoleService.selectByUserId(userId);
+            if(19==userRole.getRoleId()){
+                isCdy=true;
+            }
+        }
+        if(isCdy){
+            //如果是出单员  获取最终实际业务员
+            SysUser user = sysUserService.getById(realUserId);
+            realUserId=user.getOperatorCode();
+        }else{
+            //如果传递的业务归属人且与登录人不一致,则是代客录单业务
+            if (StringUtils.isNotEmpty(quoteInfoVo.getUserId()) && !userId.equals(quoteInfoVo.getUserId())) {
+                //实际跟单业务人变更为手工选择的人
+                realUserId = quoteInfoVo.getUserId();
+                daikeFlag = true;
+            }
         }
         }
+
         // 1. 验证订单参数
         // 1. 验证订单参数
         orderComponents.checkEmpty(quoteInfoVo);
         orderComponents.checkEmpty(quoteInfoVo);
         SysUser user = sysUserService.getById(realUserId);
         SysUser user = sysUserService.getById(realUserId);
@@ -205,6 +220,9 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if (daikeFlag) {//当时代客录单业务时,才需要赋值该字段
         if (daikeFlag) {//当时代客录单业务时,才需要赋值该字段
             insOrders.setOperatorid(userId);//赋值代客录单操作人为登录人
             insOrders.setOperatorid(userId);//赋值代客录单操作人为登录人
         }
         }
+        if(isCdy){//赋值出单员  操作人为登录人
+            insOrders.setOperatorid(userId);
+        }
         InsOrders insOrders1 = baseMapper.selectById(quoteInfoVo.getOrderNo());
         InsOrders insOrders1 = baseMapper.selectById(quoteInfoVo.getOrderNo());
 
 
         //需要赋值代录单人ID
         //需要赋值代录单人ID
@@ -251,11 +269,15 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     @Override
     @Override
     public BasePageResult<InsOrders> queryPageOrder(OrderQueryVo orderQueryVo) {
     public BasePageResult<InsOrders> queryPageOrder(OrderQueryVo orderQueryVo) {
         boolean isTeamLeader = false;
         boolean isTeamLeader = false;
+        boolean isCdy=false;//是否出单员标志
         if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
         if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
             SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
             SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
             if (21 == userRole.getRoleId() || 1 == userRole.getRoleId()) { //团队长可查询下面所有人员订单
             if (21 == userRole.getRoleId() || 1 == userRole.getRoleId()) { //团队长可查询下面所有人员订单
                 isTeamLeader = true;
                 isTeamLeader = true;
             }
             }
+            if(19==userRole.getRoleId()){
+                isCdy=true;
+            }
         }
         }
 
 
         // 构造查询条件
         // 构造查询条件
@@ -263,8 +285,6 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         wrapper.eq(StringUtils.isNotEmpty(orderQueryVo.getOrderNo()), InsOrders::getOrderno, orderQueryVo.getOrderNo())
         wrapper.eq(StringUtils.isNotEmpty(orderQueryVo.getOrderNo()), InsOrders::getOrderno, orderQueryVo.getOrderNo())
                 .likeRight(StringUtils.isNotEmpty(orderQueryVo.getDeptId()) && isTeamLeader, InsOrders::getDeptid,
                 .likeRight(StringUtils.isNotEmpty(orderQueryVo.getDeptId()) && isTeamLeader, InsOrders::getDeptid,
                         orderQueryVo.getDeptId())
                         orderQueryVo.getDeptId())
-                .eq(!isTeamLeader && StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getUserid,
-                        orderQueryVo.getUserId())
                 .eq(StringUtils.isNotEmpty(orderQueryVo.getOrderStatus()), InsOrders::getOrderstatus,
                 .eq(StringUtils.isNotEmpty(orderQueryVo.getOrderStatus()), InsOrders::getOrderstatus,
                         orderQueryVo.getOrderStatus())
                         orderQueryVo.getOrderStatus())
                 .likeRight(StringUtils.isNotEmpty(orderQueryVo.getFrameNo()), InsOrders::getFrameno,
                 .likeRight(StringUtils.isNotEmpty(orderQueryVo.getFrameNo()), InsOrders::getFrameno,
@@ -276,6 +296,16 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
                 .between(!ObjectUtils.isEmpty(orderQueryVo.getStartDate()) && !ObjectUtils.isEmpty(orderQueryVo.getEndDate()),
                 .between(!ObjectUtils.isEmpty(orderQueryVo.getStartDate()) && !ObjectUtils.isEmpty(orderQueryVo.getEndDate()),
                         InsOrders::getCreatetime, orderQueryVo.getStartDate(), orderQueryVo.getEndDatePlusOneDay())
                         InsOrders::getCreatetime, orderQueryVo.getStartDate(), orderQueryVo.getEndDatePlusOneDay())
                 .orderBy(true, false, InsOrders::getCreatetime);
                 .orderBy(true, false, InsOrders::getCreatetime);
+
+
+        if(isCdy){//如果是出单员查询时,只查自己的  与代客录单一致,查operatorid (手机前端userid传过来是出单用户,直接用该字段查询查operatorid)
+            wrapper.eq(StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getOperatorid,
+                    orderQueryVo.getUserId());
+        }else{
+            wrapper.eq(!isTeamLeader && StringUtils.isNotEmpty(orderQueryVo.getUserId()), InsOrders::getUserid,
+                    orderQueryVo.getUserId());
+        }
+
         Page<InsOrders> page = new Page<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize());
         Page<InsOrders> page = new Page<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize());
 
 
         if (StringUtils.isNotEmpty(orderQueryVo.getCompanyId())) {
         if (StringUtils.isNotEmpty(orderQueryVo.getCompanyId())) {