Преглед на файлове

Merge branch 'test' into helixiao-dev

helixiao преди 1 година
родител
ревизия
5ab2d7bbae
променени са 17 файла, в които са добавени 253 реда и са изтрити 9 реда
  1. 14 0
      src/main/java/com/ydtech/modules/admin/controller/SysUserController.java
  2. 6 0
      src/main/java/com/ydtech/modules/admin/model/report/company/CompanyQutationCountDataQueryDto.java
  3. 9 0
      src/main/java/com/ydtech/modules/admin/model/vo/OrdersDataVo.java
  4. 3 0
      src/main/java/com/ydtech/modules/admin/model/vo/TaskStatisticsVo.java
  5. 19 0
      src/main/java/com/ydtech/modules/admin/model/vo/TransferUserVo.java
  6. 16 1
      src/main/java/com/ydtech/modules/admin/service/SysUserService.java
  7. 13 2
      src/main/java/com/ydtech/modules/admin/service/impl/CompanyDataReportServiceImpl.java
  8. 100 0
      src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java
  9. 12 2
      src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java
  10. 7 1
      src/main/java/com/ydtech/modules/esm/dao/EsmUserImageMapper.java
  11. 10 0
      src/main/java/com/ydtech/modules/esm/model/EsmUserImage.java
  12. 3 0
      src/main/java/com/ydtech/modules/esm/service/EsmUserImageService.java
  13. 10 0
      src/main/java/com/ydtech/modules/esm/service/impl/EsmUserImageServiceImpl.java
  14. 4 0
      src/main/java/com/ydtech/modules/fnc/entity/InsExcelTaskEntity.java
  15. 6 0
      src/main/resources/mapper/modules/esm/EsmUserImageMapper.xml
  16. 3 2
      src/main/resources/mapper/modules/fnc/InsExcelTaskAsyncMapper.xml
  17. 18 1
      src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

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

@@ -1339,4 +1339,18 @@ public class SysUserController extends BaseController {
         return sysUserService.userLogout(userId);
     }
 
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/20 8:50
+     *  @Description:  转部门
+     */
+    @ApiOperation(value = "转部门")
+    @PostMapping("/transferPost")
+    public HttpResult<String> transferPost(@RequestBody TransferUserVo transferUserVo) {
+         String newUserId =  sysUserService.transferPost(transferUserVo);
+        return HttpResult.ok("转出部门成功,转出的新工号为:"+newUserId+",注意审核");
+    }
+
 }

+ 6 - 0
src/main/java/com/ydtech/modules/admin/model/report/company/CompanyQutationCountDataQueryDto.java

@@ -63,5 +63,11 @@ public class CompanyQutationCountDataQueryDto {
     @ApiModelProperty(value = "用户ids")
     private List<String> userIds;
 
+    @ApiModelProperty(value = "传参任务类型")
+    private String taskType;
+    @ApiModelProperty(value = "筛选签单开始时间")
+    private String signingTimeStart;
 
+    @ApiModelProperty(value = "筛选签单结束时间")
+    private String signingTimeEnd;
 }

+ 9 - 0
src/main/java/com/ydtech/modules/admin/model/vo/OrdersDataVo.java

@@ -74,4 +74,13 @@ public class OrdersDataVo {
     private List<String> deptIds;
     @ApiModelProperty(value = "用户ids")
     private List<String> userIds;
+
+    @ApiModelProperty(value = "传参任务类型")
+    private String taskType;
+    @ApiModelProperty(value = "筛选签单开始时间")
+    private String signingTimeStart;
+
+    @ApiModelProperty(value = "筛选签单结束时间")
+    private String signingTimeEnd;
+
 }

+ 3 - 0
src/main/java/com/ydtech/modules/admin/model/vo/TaskStatisticsVo.java

@@ -172,4 +172,7 @@ public class TaskStatisticsVo implements Serializable {
 
     @ApiModelProperty(value = "弹窗传参类型")
     private String reviewType;
+
+    @ApiModelProperty(value = "传参任务类型")
+    private String taskType;
 }

+ 19 - 0
src/main/java/com/ydtech/modules/admin/model/vo/TransferUserVo.java

@@ -0,0 +1,19 @@
+package com.ydtech.modules.admin.model.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "转出部门对象")
+public class TransferUserVo implements Serializable {
+
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "机构id")
+    private String  deptId;
+}

+ 16 - 1
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -14,7 +14,6 @@ import com.ydtech.modules.admin.model.dto.*;
 import com.ydtech.modules.admin.model.vo.*;
 import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.base.model.vo.PageVo;
-import org.springframework.http.HttpHeaders;
 
 import java.util.List;
 import java.util.Map;
@@ -352,6 +351,22 @@ public interface SysUserService extends BaseIService<SysUser> {
     List<SysUser> selectByUserId(List<String> ids);
 
     HttpResult userLogout(String userId);
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/18 18:16
+     *  @Description: 转岗
+     */
+    String transferPost(TransferUserVo transferUserVo);
+
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/21 9:31
+     *  @Description: 获取最大的id
+     */
+    String findNewMaxId(String deptId);
 }
 
 

+ 13 - 2
src/main/java/com/ydtech/modules/admin/service/impl/CompanyDataReportServiceImpl.java

@@ -84,13 +84,24 @@ public class CompanyDataReportServiceImpl implements CompanyDataReportService {
      */
     @Override
     public BasePageResult<CompanyQutationCountDataDto> queryCompanyQutationCountDataPage(CompanyQutationCountDataQueryDto companyQutationCountDataQueryDto) {
+
         Page<QuotationCountDataDto> page = new Page<>(companyQutationCountDataQueryDto.getPageNum(), companyQutationCountDataQueryDto.getPageSize());
         //判断开始时间和结束时间是否为空,如果为空的走时间类型逻辑
         HashMap<String, String> dateMapByType = getDateMapByType(companyQutationCountDataQueryDto.getDateType(), companyQutationCountDataQueryDto.getBeginDate(), companyQutationCountDataQueryDto.getEndDate());
-        companyQutationCountDataQueryDto.setBeginDate(dateMapByType.get("startDate"));
-        companyQutationCountDataQueryDto.setEndDate(dateMapByType.get("endDate"));
+//        companyQutationCountDataQueryDto.setBeginDate(dateMapByType.get("startDate"));
+//        companyQutationCountDataQueryDto.setEndDate(dateMapByType.get("endDate"));
         page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
 
+        if(StringUtils.isNotEmpty(companyQutationCountDataQueryDto.getTaskType()) && "1".equals(companyQutationCountDataQueryDto.getTaskType())){
+            companyQutationCountDataQueryDto.setBeginDate(null);
+            companyQutationCountDataQueryDto.setEndDate(null);
+            companyQutationCountDataQueryDto.setSigningTimeStart(dateMapByType.get("startDate"));
+            companyQutationCountDataQueryDto.setSigningTimeEnd(dateMapByType.get("endDate"));
+        }else {
+            companyQutationCountDataQueryDto.setBeginDate(dateMapByType.get("startDate"));
+            companyQutationCountDataQueryDto.setEndDate(dateMapByType.get("endDate"));
+        }
+
         Page<CompanyQutationCountDataDto> resultSubOrder = insAreaCompanyMapper.queryCompanyQutationCountDataPage(companyQutationCountDataQueryDto, page);
         Long total = this.insAreaCompanyMapper.queryCompanyQutationCountDataPageTotal(companyQutationCountDataQueryDto);
 

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

@@ -3083,5 +3083,105 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         sysUserMapper.updateById(sysUser);
         return HttpResult.ok("账号注销成功");
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/18 18:17
+     *  @Description:  转部门
+     */
+    @Transactional
+    @Override
+    public String transferPost(TransferUserVo transferUserVo) {
+        //1.现复制用户表信息和用户信息表
+        SysUser sysUser = sysUserMapper.selectById(transferUserVo.getUserId());
+        String identity = sysUser.getIdentity();
+        String identityTime = sysUser.getIdentityTime();
+        String mobile = sysUser.getMobile();
+        sysUser.setIdentity("");
+        sysUser.setIdentityTime(null);
+        sysUser.setMobile("");
+        if(StringUtils.isBlank(transferUserVo.getDeptId())){
+           throw new SystemException("转出部门不能为空!");
+        }
+        if(transferUserVo.getDeptId().equals("9")){
+            throw new SystemException("转出部门不能为总部!");
+        }
+        if(transferUserVo.getDeptId().equals(sysUser.getDeptId())){
+            throw new SystemException("转出部门和用户当前部门一致,请重新选择");
+        }
+        SysDept dept = sysDeptMapper.selectById(transferUserVo.getDeptId());
+        if(dept.getDeptType()!=null && ("C".equals(dept.getDeptType()) || "M".equals(dept.getDeptType()))) {
+           throw new SystemException("转出部门为子公司或者门店,请重新选择");
+        }
+        if(dept.getManagementSource()!=null && ("1".equals(dept.getManagementSource()) || "2".equals(dept.getManagementSource()) || "3".equals(dept.getManagementSource()))){
+            throw new SystemException("转出部门类型不能为渠道、电销、个代,请重新选择");
+        }
+        if(sysUser.getType()!=null && sysUser.getType()!=0){
+            throw new SystemException("非后线人员不能转出");
+        }
+        //2.将原先的用户设置为离司
+        sysUser.setStatus(UserWorkStatus.UWS_0.getCode());
+        this.saveOrUpdate(sysUser);
+        //3.重新生成用户id保存用户为入司待审核
+        int noCount = 3;
+        String nextPK="";
+        String maxId = findNewMaxId(transferUserVo.getDeptId());
+        if (StringUtils.isNullOrEmpty(maxId) || "0".equals(maxId)) {
+            nextPK = transferUserVo.getDeptId() + "001";
+        } else {
+            nextPK = IdGenerate.nextCode(maxId, noCount);
+        }
+        sysUser.setId(nextPK);
+        sysUser.setIdentity(identity);
+        sysUser.setIdentityTime(identityTime);
+        sysUser.setMobile(mobile);
+        //清空领导人和管理人
+        sysUser.setLeaderId(null);
+        sysUser.setLeaderName(null);
+        sysUser.setOperatorCode(null);
+        sysUser.setDeptId(transferUserVo.getDeptId());
+        sysUser.setStatus(UserWorkStatus.UWS_2.getCode());
+        sysUser.setCreateBy(new BaseController().getUser().getId());
+        sysUser.setCreateTime(new Date());
+        sysUser.setUpdateBy(new BaseController().getUser().getId());
+        sysUser.setUpdateTime(new Date());
+        this.save(sysUser);
+        //4.添加角色
+        SysUserRole sysUserRole = sysUserRoleService.selectByUserId(transferUserVo.getUserId());
+        sysUserRole.setUserId(nextPK);
+        sysUserRole.setId(null);
+        sysUserRoleService.save(sysUserRole);
+        //5.添加用户基本信息
+        SysUserInfo userInfo = sysUserInfoService.getById(transferUserVo.getUserId());
+        userInfo.setId(nextPK);
+        sysUserInfoService.save(userInfo);
+        //6.添加影像
+        List<EsmUserImage> list = esmUserImageService.getEsmUserByUserId(transferUserVo.getUserId());
+        if(list!=null && !list.isEmpty()){
+            String finalNextPK = nextPK;
+            list.stream().forEach(item -> {
+                item.setUserId(finalNextPK);
+                item.setId(null);
+            });
+            esmUserImageService.saveBatch(list);
+        }
+        return nextPK;
+    }
+
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/21 9:28
+     *  @Description:  获取部门最大的id
+     */
+    @Override
+    public String findNewMaxId(String deptId) {
+        QueryWrapper<SysUser> qw = new QueryWrapper<>();
+        qw.select("IFNULL(MAX(id),0) maxId");
+        qw.like("id", deptId);
+        Map<String, Object> m = getMap(qw);
+        String maxId = m.get("maxId").toString();
+        return maxId;
+    }
 
 }

+ 12 - 2
src/main/java/com/ydtech/modules/admin/service/impl/TaskStatisticsServiceImpl.java

@@ -31,6 +31,7 @@ import com.ydtech.modules.base.model.vo.PageVo;
 import com.ydtech.modules.inv.utils.EasyExcelUtils;
 import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
 import com.ydtech.modules.order.dao.InsOrdersMapper;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -121,8 +122,17 @@ public class TaskStatisticsServiceImpl  implements TaskStatisticsService {
             }
         }
         HashMap<String, String> dateMapByType = getDateMapByTypeNew(taskStatisticsVo.getDays(), taskStatisticsVo.getBeginDate(), taskStatisticsVo.getEndDate());
-        taskStatisticsVo.setBeginDate(dateMapByType.get("startDate"));
-        taskStatisticsVo.setEndDate(dateMapByType.get("endDate"));
+
+//       控制台逻辑  人员渠道跳转任务的时间应该是签单日期查询
+        if(StringUtils.isNotEmpty(taskStatisticsVo.getTaskType()) && "1".equals(taskStatisticsVo.getTaskType())){
+            taskStatisticsVo.setBeginDate(null);
+            taskStatisticsVo.setEndDate(null);
+            taskStatisticsVo.setSigningTimeStart(dateMapByType.get("startDate"));
+            taskStatisticsVo.setSigningTimeEnd(dateMapByType.get("endDate"));
+        }else {
+            taskStatisticsVo.setBeginDate(dateMapByType.get("startDate"));
+            taskStatisticsVo.setEndDate(dateMapByType.get("endDate"));
+        }
 
         IPage<TaskStatisticsDto> list = this.insAreaCompanyMapper.queryPageTaskStatistics(page,taskStatisticsVo);
         Long  total  = this.insAreaCompanyMapper.queryPageTaskStatisticsTotal(taskStatisticsVo);

+ 7 - 1
src/main/java/com/ydtech/modules/esm/dao/EsmUserImageMapper.java

@@ -16,7 +16,13 @@ import java.util.List;
 public interface EsmUserImageMapper extends BaseMapper<EsmUserImage> {
 
     List<EsmUserImageQueryVo> selectEsmUserImageQueryVo(@Param("userId") String userId);
-
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/20 18:49
+     *  @Description: 通过用户id查询对象
+     */
+    List<EsmUserImage> getEsmUserByUserId(@Param("userId") String userId);
 }
 
 

+ 10 - 0
src/main/java/com/ydtech/modules/esm/model/EsmUserImage.java

@@ -48,4 +48,14 @@ public class EsmUserImage implements Serializable {
         this.userId = userId;
         this.type = esmUserImageVo.getType();
     }
+
+    public EsmUserImage() {
+    }
+
+    public EsmUserImage(Long id, String imagesId, String userId, String type) {
+        this.id = id;
+        this.imagesId = imagesId;
+        this.userId = userId;
+        this.type = type;
+    }
 }

+ 3 - 0
src/main/java/com/ydtech/modules/esm/service/EsmUserImageService.java

@@ -16,4 +16,7 @@ public interface EsmUserImageService extends IService<EsmUserImage> {
 
     List<EsmUserImageQueryVo> getEsmUserImageQueryVo(String userId);
 
+
+    List<EsmUserImage> getEsmUserByUserId(String userId);
+
 }

+ 10 - 0
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserImageServiceImpl.java

@@ -22,6 +22,16 @@ public class EsmUserImageServiceImpl extends ServiceImpl<EsmUserImageMapper, Esm
     public List<EsmUserImageQueryVo> getEsmUserImageQueryVo(String userId) {
         return baseMapper.selectEsmUserImageQueryVo(userId);
     }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2025/1/20 18:49
+     *  @Description: 通过用户id查询关联的对象
+     */
+    @Override
+    public List<EsmUserImage> getEsmUserByUserId(String userId) {
+        return baseMapper.getEsmUserByUserId(userId);
+    }
 
 }
 

+ 4 - 0
src/main/java/com/ydtech/modules/fnc/entity/InsExcelTaskEntity.java

@@ -56,4 +56,8 @@ public class InsExcelTaskEntity {
     @TableField("end_time")
     private LocalDateTime endTime;
 
+    @ApiModelProperty("用户名称")
+    @TableField(exist = false)
+    private String userName;
+
 }

+ 6 - 0
src/main/resources/mapper/modules/esm/EsmUserImageMapper.xml

@@ -30,4 +30,10 @@
                            on i.images_id = f.id
         where i.user_id = #{userId};
     </select>
+    <select id="getEsmUserByUserId" resultType="com.ydtech.modules.esm.model.EsmUserImage">
+        select
+            id,images_id,user_id,type
+        from esm_user_image
+        where user_id = #{userId};
+    </select>
 </mapper>

+ 3 - 2
src/main/resources/mapper/modules/fnc/InsExcelTaskAsyncMapper.xml

@@ -3,8 +3,9 @@
 <mapper namespace="com.ydtech.modules.fnc.dao.InsExcelTaskAsyncMapper">
 
         <select id="queryPage" resultType="com.ydtech.modules.fnc.entity.InsExcelTaskEntity">
-            select *
-            from ins_excel_task
+            select iet.*,su.name  as "userName"
+            from ins_excel_task iet
+            left join sys_user su  on su.id = iet.user_id
             order by create_time desc
         </select>
 </mapper>

+ 18 - 1
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -906,6 +906,9 @@
         <if test="vo.beginDate  != null  and  vo.beginDate!=''  and vo.endDate  != null  and  vo.endDate!=''">
             AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
         </if>
+        <if test="vo.signingTimeStart !=null and vo.signingTimeStart != '' and vo.signingTimeEnd !=null and vo.signingTimeEnd != ''">
+            AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN  DATE_FORMAT( #{vo.signingTimeStart}, '%Y-%m-%d') AND  DATE_FORMAT( #{vo.signingTimeEnd}, '%Y-%m-%d')
+        </if>
         <if test="vo.managementSource  != null  and  vo.managementSource!=''">
             AND sd.management_source =#{vo.managementSource}
         </if>
@@ -1069,6 +1072,9 @@
         <if test="vo.companyId  != null  and  vo.companyId!='' ">
             AND  agree.insurance_company_id = #{vo.companyId}
         </if>
+        <if test="vo.signingTimeStart !=null and vo.signingTimeStart != '' and vo.signingTimeEnd !=null and vo.signingTimeEnd != ''">
+            AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN  DATE_FORMAT( #{vo.signingTimeStart}, '%Y-%m-%d') AND  DATE_FORMAT( #{vo.signingTimeEnd}, '%Y-%m-%d')
+        </if>
         <if test="vo.parterCompanyId  != null  and  vo.parterCompanyId!='' ">
             AND agree.partner_companies_id = #{vo.parterCompanyId}
         </if>
@@ -1193,6 +1199,10 @@
                 AND   DATE_FORMAT( iac.createtime, '%Y-%m-%d')   BETWEEN  DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND  DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
             </if>
 
+            <if test="taskStatisticsVo.signingTimeStart !=null and taskStatisticsVo.signingTimeStart != '' and taskStatisticsVo.signingTimeEnd !=null and taskStatisticsVo.signingTimeEnd != ''">
+                AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN  DATE_FORMAT( #{taskStatisticsVo.signingTimeStart}, '%Y-%m-%d') AND  DATE_FORMAT( #{taskStatisticsVo.signingTimeEnd}, '%Y-%m-%d')
+            </if>
+
             <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
                 AND sd.id  in
                 <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
@@ -1428,6 +1438,10 @@
                 and io.deptid like "${taskStatisticsVo.houseId}%"
             </if>
 
+            <if test="taskStatisticsVo.signingTimeStart !=null and taskStatisticsVo.signingTimeStart != '' and taskStatisticsVo.signingTimeEnd !=null and taskStatisticsVo.signingTimeEnd != ''">
+                AND   DATE_FORMAT( iac.signing_time, '%Y-%m-%d')   BETWEEN  DATE_FORMAT( #{taskStatisticsVo.signingTimeStart}, '%Y-%m-%d') AND  DATE_FORMAT( #{taskStatisticsVo.signingTimeEnd}, '%Y-%m-%d')
+            </if>
+
             <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
                 AND   DATE_FORMAT( io.createtime, '%Y-%m-%d')   BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
             </if>
@@ -2091,6 +2105,10 @@
                 and iac.company_id =#{taskStatisticsVo.companyId}
             </if>
 
+
+            <if test="taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != '' and taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != ''">
+                AND   DATE_FORMAT( ifa.audittime, '%Y-%m-%d')   BETWEEN  DATE_FORMAT( #{taskStatisticsVo.auditTimeStart}, '%Y-%m-%d')   AND  DATE_FORMAT( #{taskStatisticsVo.auditTimeEnd}, '%Y-%m-%d')
+            </if>
             <if test="taskStatisticsVo.audittime !=null  and  taskStatisticsVo.audittime !=''">
                 and ifa.audittime =#{taskStatisticsVo.audittime}
             </if>
@@ -2731,7 +2749,6 @@
         FROM
         (
         SELECT
-        io.orderstatus AS orderstatus,
         io.frameno AS frameno,
         REPLACE(JSON_EXTRACT(io.carinfo, '$.engineNo'), '"', '') as "modelCode",
         REPLACE(JSON_EXTRACT(io.carinfo, '$.modelcname'), '"', '') as "modelcname",