Parcourir la source

add:派单信息

caozixuan il y a 1 an
Parent
commit
07a86633b6

+ 0 - 24
sop-business/src/main/java/com/qmth/sop/business/bean/dto/SopCrmInfo.java

@@ -24,14 +24,6 @@ public class SopCrmInfo {
     @ApiModelProperty("服务单元id")
     private Long serviceUnitId;
 
-    @JsonSerialize(using = ToStringSerializer.class)
-    @ApiModelProperty("区域协调人id")
-    private Long regionCoordinatorId;
-
-    @JsonSerialize(using = ToStringSerializer.class)
-    @ApiModelProperty("区域经理id")
-    private Long regionManagerId;
-
     public String getSopNo() {
         return sopNo;
     }
@@ -63,20 +55,4 @@ public class SopCrmInfo {
     public void setServiceUnitId(Long serviceUnitId) {
         this.serviceUnitId = serviceUnitId;
     }
-
-    public Long getRegionCoordinatorId() {
-        return regionCoordinatorId;
-    }
-
-    public void setRegionCoordinatorId(Long regionCoordinatorId) {
-        this.regionCoordinatorId = regionCoordinatorId;
-    }
-
-    public Long getRegionManagerId() {
-        return regionManagerId;
-    }
-
-    public void setRegionManagerId(Long regionManagerId) {
-        this.regionManagerId = regionManagerId;
-    }
 }

+ 44 - 7
sop-business/src/main/java/com/qmth/sop/business/bean/result/CrmProjectResult.java

@@ -1,5 +1,7 @@
 package com.qmth.sop.business.bean.result;
 
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.sop.business.bean.dto.UserArchivesDto;
 import com.qmth.sop.common.enums.ProductTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
@@ -21,8 +23,8 @@ public class CrmProjectResult {
     @ApiModelProperty("派单时间")
     private Long crmBeginTime;
 
-    @ApiModelProperty("客户经理")
-    private String crmUserName;
+    @ApiModelProperty("客户经理名称")
+    private String customManagerName;
 
     @ApiModelProperty("客户类型")
     private ProductTypeEnum customType;
@@ -42,7 +44,18 @@ public class CrmProjectResult {
     @ApiModelProperty("服务单元")
     private String serviceUnitName;
 
-    @ApiModelProperty("区域负责人名称")
+    @ApiModelProperty("大区经理id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long regionManagerId;
+
+    @ApiModelProperty("大区经理名称")
+    private String regionManagerName;
+
+    @ApiModelProperty("区域协调人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long regionCoordinatorId;
+
+    @ApiModelProperty("区域协调人名称")
     private String regionCoordinatorName;
 
     @ApiModelProperty("实施工程师集合")
@@ -75,12 +88,12 @@ public class CrmProjectResult {
         this.crmBeginTime = crmBeginTime;
     }
 
-    public String getCrmUserName() {
-        return crmUserName;
+    public String getCustomManagerName() {
+        return customManagerName;
     }
 
-    public void setCrmUserName(String crmUserName) {
-        this.crmUserName = crmUserName;
+    public void setCustomManagerName(String customManagerName) {
+        this.customManagerName = customManagerName;
     }
 
     public ProductTypeEnum getCustomType() {
@@ -131,6 +144,30 @@ public class CrmProjectResult {
         this.serviceUnitName = serviceUnitName;
     }
 
+    public Long getRegionManagerId() {
+        return regionManagerId;
+    }
+
+    public void setRegionManagerId(Long regionManagerId) {
+        this.regionManagerId = regionManagerId;
+    }
+
+    public String getRegionManagerName() {
+        return regionManagerName;
+    }
+
+    public void setRegionManagerName(String regionManagerName) {
+        this.regionManagerName = regionManagerName;
+    }
+
+    public Long getRegionCoordinatorId() {
+        return regionCoordinatorId;
+    }
+
+    public void setRegionCoordinatorId(Long regionCoordinatorId) {
+        this.regionCoordinatorId = regionCoordinatorId;
+    }
+
     public String getRegionCoordinatorName() {
         return regionCoordinatorName;
     }

+ 8 - 0
sop-business/src/main/java/com/qmth/sop/business/mapper/TBCrmMapper.java

@@ -88,6 +88,14 @@ public interface TBCrmMapper extends BaseMapper<TBCrm> {
      */
     List<CrmProjectResult> findCrmProjectBySopNo(@Param("sopNo") String sopNo);
 
+    /**
+     * 根据crmNo查询派单项目信息
+     *
+     * @param crmNo crmNo
+     * @return 派单项目结果
+     */
+    List<CrmProjectResult> findCrmProjectByCrmNo(@Param("crmNo") String crmNo);
+
     /**
      * 根据sopNo查询派单信息
      *

+ 2 - 2
sop-business/src/main/java/com/qmth/sop/business/service/TBCrmService.java

@@ -119,12 +119,12 @@ public interface TBCrmService extends IService<TBCrm> {
     boolean batchDisable(long[] crmIds);
 
     /**
-     * 根据sopNo查询项目派单信息
+     * 根据sopNo或crmNo查询项目派单信息
      *
      * @param sopNo sopNo
      * @return 项目派单信息
      */
-    CrmProjectResult findCrmProjectBySopNo(String sopNo);
+    CrmProjectResult findCrmProjectBySopNoOrCrmNo(String sopNo, String crmNo);
 
     /**
      * 根据sop单号查询签到中派单信息

+ 11 - 5
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBCrmServiceImpl.java

@@ -218,18 +218,25 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
     }
 
     @Override
-    public CrmProjectResult findCrmProjectBySopNo(String sopNo) {
+    public CrmProjectResult findCrmProjectBySopNoOrCrmNo(String sopNo, String crmNo) {
         CrmProjectResult result = new CrmProjectResult();
-        List<CrmProjectResult> crmProjectResults = this.baseMapper.findCrmProjectBySopNo(sopNo);
+        List<CrmProjectResult> crmProjectResults = new ArrayList<>();
+        if (sopNo != null && sopNo.length() > 0) {
+            crmProjectResults = this.baseMapper.findCrmProjectBySopNo(sopNo);
+        } else if (crmNo != null && crmNo.length() > 0) {
+            crmProjectResults = this.baseMapper.findCrmProjectByCrmNo(crmNo);
+        } else {
+            throw ExceptionResultEnum.ERROR.exception("缺少sop单号或crm单号");
+        }
         if (CollectionUtils.isNotEmpty(crmProjectResults)) {
             if (crmProjectResults.size() > 1) {
                 throw ExceptionResultEnum.ERROR.exception("根据sop号找到多个与之对应的派单异常");
             }
             CrmProjectResult crmProjectResult = crmProjectResults.get(0);
-            String crmNo = crmProjectResult.getCrmNo();
+            String tbCrmNo = crmProjectResult.getCrmNo();
 
             List<TBUserArchivesAllocation> archivesAllocationList = tbUserArchivesAllocationService.list(new QueryWrapper<TBUserArchivesAllocation>()
-                    .lambda().eq(TBUserArchivesAllocation::getCrmNo, crmNo));
+                    .lambda().eq(TBUserArchivesAllocation::getCrmNo, tbCrmNo));
 
             RoleResult effectRole = sysRoleService.findRoleInfoByArchivesType(RoleTypeEnum.EFFECT_ENGINEER);
             Long effectRoleId = effectRole.getRoleId();
@@ -267,7 +274,6 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
 
     @Override
     public SopCrmInfo findSopCrmInfoBySop(String sopNo) {
-        // TODO: 2023/9/5 大区经理关联方式有问题
         List<SopCrmInfo> sopCrmInfoList = this.baseMapper.findSopCrmInfoBySopNo(sopNo);
         if (CollectionUtils.isEmpty(sopCrmInfoList)) {
             throw ExceptionResultEnum.ERROR.exception(String.format("未找到sop单号为[%s]的派单信息", sopNo));

+ 50 - 10
sop-business/src/main/resources/mapper/TBCrmMapper.xml

@@ -190,54 +190,94 @@
             tbc.crm_no AS crmNo,
             tbc.name AS crmName,
             tbc.begin_time AS crmBeginTime,
-            manager.real_name AS crmUserName,
             sc.type AS customType,
             sc.name AS customName,
+            customManager.real_name AS customManagerName,
             tbc.exam_start_time AS examStartTime,
             tbc.exam_end_time AS examEndTime,
             tbp.name AS productName,
             tbs.name AS serviceUnitName,
-            region.real_name AS regionCoordinatorName
+            regionManager.id AS regionManagerId,
+            regionManager.real_name AS crmUserName,
+            regionCoordinator.id AS regionCoordinatorId,
+            regionCoordinator.real_name AS regionCoordinatorName
         FROM
             t_f_custom_flow_entity tfcfe
                 LEFT JOIN
             t_b_crm tbc ON tfcfe.crm_no = tbc.crm_no
                 LEFT JOIN
-            sys_user manager ON tbc.crm_user_id = manager.id
-                LEFT JOIN
             sys_custom sc ON tbc.custom_id = sc.id
                 LEFT JOIN
             t_b_product tbp ON tbc.product_id = tbp.id
                 LEFT JOIN
             t_b_service tbs ON tbc.service_id = tbs.id
                 LEFT JOIN
-            sys_user region ON tbc.region_coordinator_id = region.id
+            sys_user regionManager ON tbc.lead_id = regionManager.id
+                LEFT JOIN
+            sys_user regionCoordinator ON tbc.region_coordinator_id = regionCoordinator.id
+                LEFT JOIN
+            sys_user customManager ON sc.manager_id = customManager.id
         <where>
             <if test="sopNo != null and sopNo != ''">
                 AND tfcfe.code = #{sopNo}
             </if>
         </where>
     </select>
+
+    <select id="findCrmProjectByCrmNo" resultType="com.qmth.sop.business.bean.result.CrmProjectResult">
+        SELECT
+            tbc.crm_no AS crmNo,
+            tbc.name AS crmName,
+            tbc.begin_time AS crmBeginTime,
+            sc.type AS customType,
+            sc.name AS customName,
+            customManager.real_name AS customManagerName,
+            tbc.exam_start_time AS examStartTime,
+            tbc.exam_end_time AS examEndTime,
+            tbp.name AS productName,
+            tbs.name AS serviceUnitName,
+            regionManager.id AS regionManagerId,
+            regionManager.real_name AS crmUserName,
+            regionCoordinator.id AS regionCoordinatorId,
+            regionCoordinator.real_name AS regionCoordinatorName
+        FROM
+            t_b_crm tbc
+                LEFT JOIN
+            sys_custom sc ON tbc.custom_id = sc.id
+                LEFT JOIN
+            t_b_product tbp ON tbc.product_id = tbp.id
+                LEFT JOIN
+            t_b_service tbs ON tbc.service_id = tbs.id
+                LEFT JOIN
+            sys_user regionManager ON tbc.lead_id = regionManager.id
+                LEFT JOIN
+            sys_user regionCoordinator ON tbc.region_coordinator_id = regionCoordinator.id
+                LEFT JOIN
+            sys_user customManager ON sc.manager_id = customManager.id
+        <where>
+            <if test="crmNo != null and crmNo != ''">
+                AND tbc.crm_no = #{crmNo}
+            </if>
+        </where>
+    </select>
+
     <select id="findSopCrmInfoBySopNo" resultType="com.qmth.sop.business.bean.dto.SopCrmInfo">
         SELECT
             tfcfe.code AS sopNo,
             tfcfe.flow_id AS flowId,
             tbc.crm_no AS crmNo,
-            tbs.id AS serviceUnitId,
-            tbc.region_coordinator_id AS regionCoordinatorId,
-            tbsr.lead_id AS regionManagerId
+            tbs.id AS serviceUnitId
         FROM
             t_f_custom_flow_entity tfcfe
                 LEFT JOIN
             t_b_crm tbc ON tfcfe.crm_no = tbc.crm_no
                 LEFT JOIN
             t_b_service tbs ON tbc.service_id = tbs.id
-                LEFT JOIN
-            t_b_service_region tbsr ON tbsr.service_id = tbs.id
         <where>
             <if test="sopNo != null and sopNo != ''">
                 AND tfcfe.code = #{sopNo}
             </if>
         </where>
     </select>
+
 </mapper>

+ 12 - 1
sop-server/src/main/java/com/qmth/sop/server/api/TBCrmController.java

@@ -4,13 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.sop.business.annotation.OperationLog;
+import com.qmth.sop.business.bean.result.DingElementResult;
 import com.qmth.sop.business.bean.result.TBCrmResult;
+import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBCrm;
 import com.qmth.sop.business.service.TBCrmService;
 import com.qmth.sop.common.contant.SystemConstant;
 import com.qmth.sop.common.enums.ProductTypeEnum;
 import com.qmth.sop.common.util.Result;
 import com.qmth.sop.common.util.ResultUtil;
+import com.qmth.sop.common.util.ServletUtil;
 import io.swagger.annotations.*;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
@@ -113,5 +117,12 @@ public class TBCrmController {
         return ResultUtil.ok(tBCrmService.count(new QueryWrapper<TBCrm>().lambda().isNull(TBCrm::getServiceId)));
     }
 
-
+    @ApiOperation(value = "查询项目派单信息")
+    @RequestMapping(value = "/crm_project_info", method = RequestMethod.POST)
+    @ApiResponses({@ApiResponse(code = 200, message = "查询成功", response = DingElementResult.class)})
+    @OperationLog
+    public Result findDingInfo(@ApiParam(value = "sop单号") @RequestParam(required = false) String sopNo,
+                               @ApiParam(value = "crm单号") @RequestParam(required = false) String crmNo) {
+        return ResultUtil.ok(tBCrmService.findCrmProjectBySopNoOrCrmNo(sopNo, crmNo));
+    }
 }

+ 3 - 3
sop-server/src/main/java/com/qmth/sop/server/api/TBDingController.java

@@ -2,11 +2,9 @@ package com.qmth.sop.server.api;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.qmth.boot.api.annotation.Aac;
 import com.qmth.boot.api.constant.ApiConstant;
 import com.qmth.sop.business.annotation.OperationLog;
 import com.qmth.sop.business.bean.params.DingSaveParam;
-import com.qmth.sop.business.bean.params.ServiceUnitParam;
 import com.qmth.sop.business.bean.result.*;
 import com.qmth.sop.business.entity.SysUser;
 import com.qmth.sop.business.entity.TBTask;
@@ -15,7 +13,9 @@ import com.qmth.sop.business.service.TBTaskService;
 import com.qmth.sop.business.templete.execute.AsyncDingAttendanceExportService;
 import com.qmth.sop.business.templete.execute.AsyncDingCountExportService;
 import com.qmth.sop.common.contant.SystemConstant;
-import com.qmth.sop.common.enums.*;
+import com.qmth.sop.common.enums.DingResultEnum;
+import com.qmth.sop.common.enums.InOutTypeEnum;
+import com.qmth.sop.common.enums.TaskTypeEnum;
 import com.qmth.sop.common.util.Result;
 import com.qmth.sop.common.util.ResultUtil;
 import com.qmth.sop.common.util.ServletUtil;