Merge branch 'dev/feat/partner1.1_20230727' of http://git.hsayi.com:19062/HSAY/hsay-partner into dev/feat/partner1.1_20230727

This commit is contained in:
俞扬
2023-07-24 18:00:29 +08:00
23 changed files with 508 additions and 42 deletions

View File

@@ -1,5 +1,6 @@
package com.cool.store.dao; package com.cool.store.dao;
import cn.hutool.core.convert.Convert;
import com.cool.store.dto.partner.ApplyReservationProvinceDTO; import com.cool.store.dto.partner.ApplyReservationProvinceDTO;
import com.cool.store.entity.HyOpenAreaInfoDO; import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.entity.HyPartnerBaseInfoDO; import com.cool.store.entity.HyPartnerBaseInfoDO;
@@ -129,4 +130,22 @@ public class HyOpenAreaInfoDAO {
return hyOpenAreaInfoMapper.filterLeafNode(openAreaIds); return hyOpenAreaInfoMapper.filterLeafNode(openAreaIds);
} }
public List<HyOpenAreaInfoDO> getAllAreaCode(String id) {
if (StringUtils.isEmpty(id)){
return new ArrayList<>();
}
//获取省下所有数据
List<HyOpenAreaInfoDO> provinceCodeList= hyOpenAreaInfoMapper.getProvinceAllCode(id);
if(CollectionUtils.isEmpty(provinceCodeList)){
//获取市区下所有数据
List<HyOpenAreaInfoDO> cityCodeList= hyOpenAreaInfoMapper.getSonArea(id);
if(CollectionUtils.isEmpty(cityCodeList)){
return new ArrayList<HyOpenAreaInfoDO>(){{ add(hyOpenAreaInfoMapper.selectById(Convert.toLong(id)));}};
}else {
return cityCodeList;
}
}else {
return provinceCodeList;
}
}
} }

View File

@@ -28,10 +28,14 @@ public interface HyInspectionMapper {
List<InterviewInspectionVO> interviewInspectionGetList(GetInterviewInspectionListReq request); List<InterviewInspectionVO> interviewInspectionGetList(GetInterviewInspectionListReq request);
List<InterviewInspectionVO> interviewInspectionGetProvinceList(GetInterviewInspectionListReq request);
InterviewInspectionInfo interviewInspectionGetDetail(@Param("id") Long id); InterviewInspectionInfo interviewInspectionGetDetail(@Param("id") Long id);
List<InterviewInspectionHistoryInfo> interviewInspectionGetHistoryDetail(@Param("id") Long id);
List<InterviewInspectionResultVO> interviewInspectionResultGetList(GetInterviewInspectionResultListReq request); List<InterviewInspectionResultVO> interviewInspectionResultGetList(GetInterviewInspectionResultListReq request);
List<InterviewInspectionResultVO> interviewInspectionResultGetProvinceList(GetInterviewInspectionResultListReq setUserId);
} }

View File

@@ -1,7 +1,11 @@
package com.cool.store.mapper; package com.cool.store.mapper;
import com.cool.store.vo.interview.InterviewInspectionHistoryInfo;
import com.cool.store.entity.HyInterviewInspectionLogDO; import com.cool.store.entity.HyInterviewInspectionLogDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper @Mapper
public interface HyInterviewInspectionLogMapper { public interface HyInterviewInspectionLogMapper {
@@ -15,5 +19,7 @@ public interface HyInterviewInspectionLogMapper {
int updateByPrimaryKeySelective(HyInterviewInspectionLogDO record); int updateByPrimaryKeySelective(HyInterviewInspectionLogDO record);
List<InterviewInspectionHistoryInfo> interviewInspectionGetHistoryDetail(@Param("inspectionId") Long id);
int updateByPrimaryKey(HyInterviewInspectionLogDO record); int updateByPrimaryKey(HyInterviewInspectionLogDO record);
} }

View File

@@ -118,4 +118,7 @@ public interface HyOpenAreaInfoMapper {
*/ */
List<Long> filterLeafNode(@Param("openAreaIds") List<Long> openAreaIds); List<Long> filterLeafNode(@Param("openAreaIds") List<Long> openAreaIds);
List<HyOpenAreaInfoDO> getSonArea(@Param("id") String id);
List<HyOpenAreaInfoDO> getProvinceAllCode(@Param("id") String id);
} }

View File

@@ -17,4 +17,7 @@ public interface MdmAreaMapper {
List<MDMAreaDO> getSonArea(@Param("code") String code); List<MDMAreaDO> getSonArea(@Param("code") String code);
List<MDMAreaDO> getProvinceAllCode(@Param("code") String code);
List<MDMAreaDO> getArea(@Param("code") String code);
} }

View File

@@ -30,18 +30,240 @@
where id = #{id} where id = #{id}
</select> </select>
<select id="interviewInspectionGetList" resultType="com.cool.store.vo.interview.InterviewInspectionVO"> <select id="interviewInspectionGetList" resultType="com.cool.store.vo.interview.InterviewInspectionVO">
SELECT
eu.`name` AS interviewerName,
eu.mobile AS interviewerMobile,
hpui.username AS intervieweeName,
hpui.mobile AS intervieweeMobile,
trim(BOTH '/' FROM trim(hoai.area_path)) AS wantShopAreaName,
hi.create_time AS interviewPassTime,
hi.`status` AS `status`,
euj.`name` AS auditorName,
euj.mobile AS auditorMobile,
hi.inspection_time AS inspectionTime,
hi.id AS id,
hi.interview_plan_id AS interviewPlanId
FROM
hy_inspection hi
LEFT JOIN enterprise_user euj ON hi.operator_user_id = euj.user_id
LEFT JOIN hy_partner_interview_plan hpip ON hi.interview_plan_id = hpip.id
AND hi.deleted = 0
AND hpip.deleted = 0
LEFT JOIN hy_partner_interview hpi ON hpi.interview_plan_id = hpip.id
AND hpi.deleted = 0
LEFT JOIN enterprise_user eu ON hpi.interviewer = eu.user_id
LEFT JOIN hy_partner_user_info hpui ON hpip.partner_id = hpui.partner_id
LEFT JOIN hy_inspection_setting_mapping hism ON hpui.want_shop_area = hism.open_area_mapping_id
AND hism.deleted = 0
LEFT JOIN hy_inspection_setting his ON hism.inspection_setting_id = his.id
AND his.deleted = 0
AND eu.deleted = 0
LEFT JOIN hy_open_area_info hoai ON hpui.want_shop_area = hoai.id
AND hoai.deleted = 0
<where>
<if test="userId !=null and userId !=''">
and (his.inspection_user_id = #{userId} OR hi.operator_user_id = #{userId})
</if>
<if test="interviewerName !=null and interviewerName !=''">
and eu.`name` like concat('%',#{interviewerName},'%')
</if>
<if test="interviewerMobile !=null and interviewerMobile !=''">
and eu.mobile=#{interviewerMobile}
</if>
<if test="intervieweeName !=null and intervieweeName !=''">
and hpui.username like concat('%',#{intervieweeName},'%')
</if>
<if test="intervieweeMobile !=null and intervieweeMobile !=''">
and hpui.mobile=#{intervieweeMobile}
</if>
<if test="status !=null">
and hi.`status`=#{status}
</if>
<if test="codeList !=null and codeList.size>0">
and hpui.want_shop_area in
<foreach collection="codeList" separator="," open="(" close=")" item="code" >#{code}</foreach>
</if>
<if test="startTime != null and startTime != ''">
and hpi.pass_time &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and hpi.pass_time &lt;= #{endTime}
</if>
</where>
order by hi.id desc
</select> </select>
<select id="interviewInspectionGetDetail" resultType="com.cool.store.vo.interview.InterviewInspectionInfo"> <select id="interviewInspectionGetDetail" resultType="com.cool.store.vo.interview.InterviewInspectionInfo">
SELECT b.`name` as auditorName, b.mobile as auditorMobile,inspection_time as inspectionTime,`status` ,description,files as filesStr
FROM hy_inspection a left join enterprise_user b on a.operator_user_id=b.user_id and a.deleted=0 and b.deleted=0
where a.id=#{id}
</select> </select>
<select id="interviewInspectionGetHistoryDetail" resultType="com.cool.store.vo.interview.InterviewInspectionHistoryInfo">
</select>
<select id="interviewInspectionResultGetList" resultType="com.cool.store.vo.interview.InterviewInspectionResultVO"> <select id="interviewInspectionResultGetList" resultType="com.cool.store.vo.interview.InterviewInspectionResultVO">
SELECT
hi.id,hi.interview_plan_id as interviewPlanId,
hpui.username AS intervieweeName,
hpui.mobile AS intervieweeMobile,
trim(BOTH '/' FROM trim(hoai.area_path)) AS wantShopAreaName,
hi.create_time AS interviewPassTime,
hi.`status` AS `status`,
euj.`name` AS auditorName,
euj.mobile AS auditorMobile,
hi.inspection_time AS inspectionTime,
hi.id AS id,
hi.interview_plan_id AS interviewPlanId
FROM
hy_inspection hi
LEFT JOIN enterprise_user euj ON hi.operator_user_id = euj.user_id
LEFT JOIN hy_partner_interview_plan hpip ON hi.interview_plan_id = hpip.id
AND hi.deleted = 0
AND hpip.deleted = 0 and `status`!=0
LEFT JOIN hy_partner_interview hpi ON hpi.interview_plan_id = hpip.id
AND hpi.deleted = 0
LEFT JOIN hy_partner_user_info hpui ON hpip.partner_id = hpui.partner_id
LEFT JOIN hy_open_area_info hoai ON hpui.want_shop_area = hoai.id
AND hoai.deleted = 0
<where>
<if test="userId !=null and userId !=''">
and hpi.interviewer = #{userId}
</if>
<if test="intervieweeName !=null and intervieweeName !=''">
and hpui.username like concat('%',#{intervieweeName},'%')
</if>
<if test="intervieweeMobile !=null and intervieweeMobile !=''">
and hpui.mobile=#{intervieweeMobile}
</if>
<if test="status !=null">
and hi.`status`=#{status}
</if>
<if test="codeList !=null">
and hpui.want_shop_area in <foreach collection="codeList" separator="," open="(" close=")" item="code" >#{code}</foreach>
</if>
<if test="startTime != null and startTime != ''">
and hpi.pass_time &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and hpi.pass_time &lt;= #{endTime}
</if>
</where>
order by hi.id desc
</select> </select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> <select id="interviewInspectionGetProvinceList" resultType="com.cool.store.vo.interview.InterviewInspectionVO">
SELECT
eu.`name` AS interviewerName,
eu.mobile AS interviewerMobile,
hpui.username AS intervieweeName,
hpui.mobile AS intervieweeMobile,
trim(BOTH '/' FROM trim(hoai.area_path)) AS wantShopAreaName,
hi.create_time AS interviewPassTime,
hi.`status` AS `status`,
euj.`name` AS auditorName,
euj.mobile AS auditorMobile,
hi.inspection_time AS inspectionTime,
hi.id AS id,
hi.interview_plan_id AS interviewPlanId
FROM
hy_inspection hi
LEFT JOIN enterprise_user euj ON hi.operator_user_id = euj.user_id
LEFT JOIN hy_partner_interview_plan hpip ON hi.interview_plan_id = hpip.id
AND hi.deleted = 0
AND hpip.deleted = 0
LEFT JOIN hy_partner_interview hpi ON hpi.interview_plan_id = hpip.id
AND hpi.deleted = 0
LEFT JOIN enterprise_user eu ON hpi.interviewer = eu.user_id
LEFT JOIN hy_partner_user_info hpui ON hpip.partner_id = hpui.partner_id
LEFT JOIN hy_inspection_setting_mapping hism ON hpui.want_shop_area = hism.open_area_mapping_id
AND hism.deleted = 0
LEFT JOIN hy_inspection_setting his ON hism.inspection_setting_id = his.id
AND his.deleted = 0
AND eu.deleted = 0
LEFT JOIN hy_open_area_info hoai ON hpui.want_shop_area = hoai.id
AND hoai.deleted = 0
left join ( SELECT c.* FROM `hy_open_area_info` a left join hy_open_area_info b on a.`id`=b.`parent_id`
left join hy_open_area_info c on b.`id`=c.`parent_id`
WHERE a.`id`=#{wantShopArea} ) mdd on hpui.want_shop_area=mdd.`id`
<where>
<if test="true">
and mdd.id is not null
</if>
<if test="userId !=null and userId !=''">
and (his.inspection_user_id = #{userId} OR hi.operator_user_id = #{userId})
</if>
<if test="interviewerName !=null and interviewerName !=''">
and eu.`name` like concat('%',#{interviewerName},'%')
</if>
<if test="interviewerMobile !=null and interviewerMobile !=''">
and eu.mobile=#{interviewerMobile}
</if>
<if test="intervieweeName !=null and intervieweeName !=''">
and hpui.username like concat('%',#{intervieweeName},'%')
</if>
<if test="intervieweeMobile !=null and intervieweeMobile !=''">
and hpui.mobile=#{intervieweeMobile}
</if>
<if test="status !=null">
and hi.`status`=#{status}
</if>
<if test="startTime != null and startTime != ''">
and hpi.pass_time &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and hpi.pass_time &lt;= #{endTime}
</if>
</where>
order by hi.id desc
</select>
<select id="interviewInspectionResultGetProvinceList" resultType="com.cool.store.vo.interview.InterviewInspectionResultVO">
SELECT
hi.id,hi.interview_plan_id as interviewPlanId,
hpui.username AS intervieweeName,
hpui.mobile AS intervieweeMobile,
trim(BOTH '/' FROM trim(hoai.area_path)) AS wantShopAreaName,
hi.create_time AS interviewPassTime,
hi.`status` AS `status`,
euj.`name` AS auditorName,
euj.mobile AS auditorMobile,
hi.inspection_time AS inspectionTime,
hi.id AS id,
hi.interview_plan_id AS interviewPlanId
FROM
hy_inspection hi
LEFT JOIN enterprise_user euj ON hi.operator_user_id = euj.user_id
LEFT JOIN hy_partner_interview_plan hpip ON hi.interview_plan_id = hpip.id
AND hi.deleted = 0
AND hpip.deleted = 0 and `status`!=0
LEFT JOIN hy_partner_interview hpi ON hpi.interview_plan_id = hpip.id
AND hpi.deleted = 0
LEFT JOIN hy_partner_user_info hpui ON hpip.partner_id = hpui.partner_id
LEFT JOIN hy_open_area_info hoai ON hpui.want_shop_area = hoai.id
AND hoai.deleted = 0
left join ( SELECT c.* FROM `hy_open_area_info` a left join hy_open_area_info b on a.`id`=b.`parent_id`
left join hy_open_area_info c on b.`id`=c.`parent_id`
WHERE a.`id`=#{wantShopArea} ) mdd on hpui.want_shop_area=mdd.`id`
<where>
<if test="true">
and mdd.id is not null
</if>
<if test="userId !=null and userId !=''">
and hpi.interviewer = #{userId}
</if>
<if test="intervieweeName !=null and intervieweeName !=''">
and hpui.username like concat('%',#{intervieweeName},'%')
</if>
<if test="intervieweeMobile !=null and intervieweeMobile !=''">
and hpui.mobile=#{intervieweeMobile}
</if>
<if test="status !=null">
and hi.`status`=#{status}
</if>
<if test="startTime != null and startTime != ''">
and hpi.pass_time &gt;= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and hpi.pass_time &lt;= #{endTime}
</if>
</where>
order by hi.id desc
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from hy_inspection delete from hy_inspection
where id = #{id} where id = #{id}
</delete> </delete>

View File

@@ -25,7 +25,11 @@
from hy_interview_inspection_log from hy_interview_inspection_log
where id = #{id} where id = #{id}
</select> </select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> <select id="interviewInspectionGetHistoryDetail" resultType="com.cool.store.vo.interview.InterviewInspectionHistoryInfo">
SELECT a.id, b.`name` as operatorUserName, b.mobile as operatorUserMobile,operation_time as inspectionTime, operation_type as operationType ,description,files as filesStr
FROM hy_interview_inspection_log a left join enterprise_user b on a.operator_user_id=b.user_id and b.deleted=0 WHERE inspection_id=#{inspectionId} ORDER BY a.id
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
delete from hy_interview_inspection_log delete from hy_interview_inspection_log
where id = #{id} where id = #{id}
</delete> </delete>

View File

@@ -293,5 +293,15 @@
where where
deleted = '0' and province_city_flag = '0' and id in <foreach collection="openAreaIds" item="openAreaId" separator="," open="(" close=")">#{openAreaId}</foreach> deleted = '0' and province_city_flag = '0' and id in <foreach collection="openAreaIds" item="openAreaId" separator="," open="(" close=")">#{openAreaId}</foreach>
</select> </select>
<select id="getSonArea" resultType="com.cool.store.entity.HyOpenAreaInfoDO">
SELECT
<include refid="Base_Column_List"></include>
FROM hy_open_area_info
WHERE parent_id = #{id}
</select>
<select id="getProvinceAllCode" resultMap="BaseResultMap">
SELECT b.* FROM `hy_open_area_info` a inner join hy_open_area_info b on a.`id`=b.`parent_id`
WHERE a.parent_id=#{id} ORDER BY b.id desc
</select>
</mapper> </mapper>

View File

@@ -117,6 +117,9 @@
<if test="record.recommendPartnerMobile != null"> <if test="record.recommendPartnerMobile != null">
recommend_partner_mobile, recommend_partner_mobile,
</if> </if>
<if test="record.userChannelId!=null">
user_channel_id,
</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="record.partnerId != null"> <if test="record.partnerId != null">
@@ -167,6 +170,9 @@
<if test="record.recommendPartnerMobile != null"> <if test="record.recommendPartnerMobile != null">
#{record.recommendPartnerMobile}, #{record.recommendPartnerMobile},
</if> </if>
<if test="record.userChannelId != null">
#{record.userChannelId},
</if>
</trim> </trim>
</insert> </insert>
<update id="updateByPrimaryKeySelective"> <update id="updateByPrimaryKeySelective">

View File

@@ -15,4 +15,13 @@
FROM mdm_area FROM mdm_area
WHERE parent_code = #{code} WHERE parent_code = #{code}
</select> </select>
<select id="getProvinceAllCode" resultType="com.cool.store.entity.MDMAreaDO">
SELECT b.* FROM `mdm_area` a inner join mdm_area b on a.`code`=b.`parent_code`
WHERE a.`parent_code`=#{code} ORDER BY b.id desc
</select>
<select id="getArea" resultType="com.cool.store.entity.MDMAreaDO">
SELECT id, instance_id, code, area_name, parent_code
FROM mdm_area
WHERE `code` = #{code}
</select>
</mapper> </mapper>

View File

@@ -4,6 +4,9 @@ import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/** /**
* @Author: hxd * @Author: hxd
@@ -12,14 +15,23 @@ import lombok.Data;
*/ */
@Data @Data
@ApiModel @ApiModel
@Accessors(chain = true)
public class GetInterviewInspectionListReq extends PageBasicInfo { public class GetInterviewInspectionListReq extends PageBasicInfo {
@ApiModelProperty("搜索类型") @ApiModelProperty("面试官姓名")
private String searchType; private String interviewerName;
@ApiModelProperty("搜索内容") @ApiModelProperty("面试官手机号")
private String searchContent; private String interviewerMobile;
@ApiModelProperty("被面试人姓名")
private String intervieweeName;
@ApiModelProperty("被面试人手机号")
private String intervieweeMobile;
@ApiModelProperty("稽核状态0为未稽核1为合格2为不合格") @ApiModelProperty("稽核状态0为未稽核1为合格2为不合格")
@@ -37,6 +49,10 @@ public class GetInterviewInspectionListReq extends PageBasicInfo {
@ApiModelProperty("面试结束时间") @ApiModelProperty("面试结束时间")
private String endTime; private String endTime;
/**
* 地区编码
*/
private List<Long> codeList;
private String userId; private String userId;

View File

@@ -5,6 +5,9 @@ import com.cool.store.common.PageBasicInfo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/** /**
* @Author: hxd * @Author: hxd
@@ -13,14 +16,15 @@ import lombok.Data;
*/ */
@Data @Data
@ApiModel @ApiModel
@Accessors(chain = true)
public class GetInterviewInspectionResultListReq extends PageBasicInfo { public class GetInterviewInspectionResultListReq extends PageBasicInfo {
@ApiModelProperty("搜索类型") @ApiModelProperty("被面试人姓名")
private String searchType; private String intervieweeName;
@ApiModelProperty("搜索内容") @ApiModelProperty("被面试人手机号")
private String searchContent; private String intervieweeMobile;
@ApiModelProperty("稽核状态0为未稽核1为合格2为不合格") @ApiModelProperty("稽核状态0为未稽核1为合格2为不合格")
@@ -38,4 +42,11 @@ public class GetInterviewInspectionResultListReq extends PageBasicInfo {
@ApiModelProperty("面试结束时间") @ApiModelProperty("面试结束时间")
private String endTime; private String endTime;
/**
* 地区编码
*/
private List<Long> codeList;
private String userId;
} }

View File

@@ -18,8 +18,11 @@ import java.util.List;
@Data @Data
public class InterviewInspectionHistoryInfo { public class InterviewInspectionHistoryInfo {
@ApiModelProperty(value = "操作人") @ApiModelProperty(value = "操作人姓名")
private String operatorUser; private String operatorUserName;
@ApiModelProperty(value = "操作人电话")
private String operatorUserMobile;
@ApiModelProperty(value = "稽核时间") @ApiModelProperty(value = "稽核时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@@ -29,6 +32,16 @@ public class InterviewInspectionHistoryInfo {
@ApiModelProperty(value = "原因") @ApiModelProperty(value = "原因")
private String description; private String description;
@ApiModelProperty(value = "操作类型")
private String operationType;
@ApiModelProperty(value = "凭证或者证据") @ApiModelProperty(value = "凭证或者证据")
private List<String> files; private List<String> files;
private String filesStr;
@ApiModelProperty(value = "id")
private Long id;
} }

View File

@@ -19,8 +19,11 @@ import java.util.List;
@ApiModel(description = "面试稽核详情信息") @ApiModel(description = "面试稽核详情信息")
public class InterviewInspectionInfo { public class InterviewInspectionInfo {
@ApiModelProperty(value = "稽核人") @ApiModelProperty(value = "稽核人姓名")
private String auditor; private String auditorName;
@ApiModelProperty(value = "稽核人电话")
private String auditorMobile;
@ApiModelProperty(value = "稽核时间") @ApiModelProperty(value = "稽核时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@@ -34,4 +37,6 @@ public class InterviewInspectionInfo {
@ApiModelProperty(value = "凭证或者证据") @ApiModelProperty(value = "凭证或者证据")
private List<String> files; private List<String> files;
private String filesStr;
} }

View File

@@ -19,6 +19,17 @@ import java.util.Date;
@ApiModel(description = "面试稽核结果信息") @ApiModel(description = "面试稽核结果信息")
public class InterviewInspectionResultVO { public class InterviewInspectionResultVO {
@ApiModelProperty(value = "id")
private String id;
@ApiModelProperty(value = "面试计划id")
private Integer interviewPlanId;
@ApiModelProperty(value = "被面试人姓名") @ApiModelProperty(value = "被面试人姓名")
private String intervieweeName; private String intervieweeName;

View File

@@ -17,4 +17,7 @@ public interface MDMAreaService {
*/ */
List<MDMAreaDO> getSonArea(String code); List<MDMAreaDO> getSonArea(String code);
List<MDMAreaDO> getAllAreaCode(String code);
boolean getAreaProvinceType(String code);
} }

View File

@@ -17,6 +17,7 @@ import com.cool.store.dto.mdm.AccessTokenDTO;
import com.cool.store.dto.response.MDMResultDTO; import com.cool.store.dto.response.MDMResultDTO;
import com.cool.store.entity.*; import com.cool.store.entity.*;
import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.InspectionTyeEnum;
import com.cool.store.enums.OperateTypeEnum; import com.cool.store.enums.OperateTypeEnum;
import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.enums.WorkflowStatusEnum;
import com.cool.store.exception.ApiException; import com.cool.store.exception.ApiException;
@@ -272,6 +273,8 @@ public class FlowServiceImpl implements FlowService {
//4. 向面试稽核表中新增一条信息 //4. 向面试稽核表中新增一条信息
HyInspectionDO hyInspectionDO = new HyInspectionDO(); HyInspectionDO hyInspectionDO = new HyInspectionDO();
hyInspectionDO.setInterviewPlanId(Long.parseLong(interviewPlanId)); hyInspectionDO.setInterviewPlanId(Long.parseLong(interviewPlanId));
hyInspectionDO.setCreateTime(DateUtil.formatDateTime(passDate));
hyInspectionDO.setType(InspectionTyeEnum.INTERVIEW_INSPECTION.getCode());
inspectionMapper.insertSelective(hyInspectionDO); inspectionMapper.insertSelective(hyInspectionDO);
//发送加盟商资质审核通过短信 //发送加盟商资质审核通过短信
HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerLineId(partnerLineId); HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerLineId(partnerLineId);

View File

@@ -88,6 +88,8 @@ public class InspectionSettingServiceImpl implements InspectionSettingService {
inspectionSetting.setZoneName(param.getZoneName()); inspectionSetting.setZoneName(param.getZoneName());
inspectionSetting.setCreateUserId(userId); inspectionSetting.setCreateUserId(userId);
inspectionSetting.setCreateTime(new Date()); inspectionSetting.setCreateTime(new Date());
inspectionSetting.setUpdateUserId(userId);
inspectionSetting.setUpdateTime(new Date());
Long inspectionSettingId = hyInspectionSettingDAO.addInspectionSetting(inspectionSetting); Long inspectionSettingId = hyInspectionSettingDAO.addInspectionSetting(inspectionSetting);
hyInspectionSettingMappingDAO.addInspectionSettingMapping(inspectionSettingId, openAreaMappingIds); hyInspectionSettingMappingDAO.addInspectionSettingMapping(inspectionSettingId, openAreaMappingIds);
return inspectionSettingId; return inspectionSettingId;

View File

@@ -1,11 +1,13 @@
package com.cool.store.service.impl; package com.cool.store.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.cool.store.context.CurrentUserHolder; import com.cool.store.context.CurrentUserHolder;
import com.cool.store.dao.HyOpenAreaInfoDAO;
import com.cool.store.dto.inspection.interview.InspectionRevocationDTO; import com.cool.store.dto.inspection.interview.InspectionRevocationDTO;
import com.cool.store.dto.inspection.interview.InspectionSubmissionDTO; import com.cool.store.dto.inspection.interview.InspectionSubmissionDTO;
import com.cool.store.entity.HyInspectionDO; import com.cool.store.entity.*;
import com.cool.store.entity.HyInterviewInspectionLogDO;
import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.InspectionOperationTypeEnum; import com.cool.store.enums.InspectionOperationTypeEnum;
import com.cool.store.enums.InspectionStatusEnum; import com.cool.store.enums.InspectionStatusEnum;
@@ -15,16 +17,22 @@ import com.cool.store.request.GetInterviewInspectionListReq;
import com.cool.store.request.GetInterviewInspectionResultListReq; import com.cool.store.request.GetInterviewInspectionResultListReq;
import com.cool.store.mapper.HyInterviewInspectionLogMapper; import com.cool.store.mapper.HyInterviewInspectionLogMapper;
import com.cool.store.service.InterviewInspectionService; import com.cool.store.service.InterviewInspectionService;
import com.cool.store.service.MDMAreaService;
import com.cool.store.service.OpenAreaService;
import com.cool.store.utils.StringUtil;
import com.cool.store.vo.interview.InterviewInspectionHistoryInfo; import com.cool.store.vo.interview.InterviewInspectionHistoryInfo;
import com.cool.store.vo.interview.InterviewInspectionInfo; import com.cool.store.vo.interview.InterviewInspectionInfo;
import com.cool.store.vo.interview.InterviewInspectionResultVO; import com.cool.store.vo.interview.InterviewInspectionResultVO;
import com.cool.store.vo.interview.InterviewInspectionVO; import com.cool.store.vo.interview.InterviewInspectionVO;
import com.github.pagehelper.PageHelper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Objects; import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@@ -41,6 +49,10 @@ public class InterviewInspectionServiceImpl implements InterviewInspectionServic
@Autowired @Autowired
private HyInterviewInspectionLogMapper interviewInspectionLogMapper; private HyInterviewInspectionLogMapper interviewInspectionLogMapper;
@Resource
private HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
@Override @Override
public void submit(InspectionSubmissionDTO dto) throws ApiException { public void submit(InspectionSubmissionDTO dto) throws ApiException {
HyInspectionDO rawInspection = inspectionMapper.selectByPrimaryKey(dto.getInspectionId()); HyInspectionDO rawInspection = inspectionMapper.selectByPrimaryKey(dto.getInspectionId());
@@ -108,17 +120,47 @@ public class InterviewInspectionServiceImpl implements InterviewInspectionServic
@Override @Override
public InterviewInspectionInfo interviewInspectionGetDetail(Long id) { public InterviewInspectionInfo interviewInspectionGetDetail(Long id) {
return inspectionMapper.interviewInspectionGetDetail(id); InterviewInspectionInfo interviewInspectionInfo = inspectionMapper.interviewInspectionGetDetail(id);
if (ObjectUtil.isNotNull(interviewInspectionInfo) && ObjectUtil.isNotNull(interviewInspectionInfo.getFilesStr())) {
List<String> list = Arrays.asList(interviewInspectionInfo.getFilesStr().split(","));
interviewInspectionInfo.setFiles(list);
}
return interviewInspectionInfo;
} }
@Override @Override
public List<InterviewInspectionHistoryInfo> interviewInspectionGetHistoryDetail(Long id) { public List<InterviewInspectionHistoryInfo> interviewInspectionGetHistoryDetail(Long id) {
return inspectionMapper.interviewInspectionGetHistoryDetail(id); List<InterviewInspectionHistoryInfo> interviewInspectionHistoryInfos = interviewInspectionLogMapper.interviewInspectionGetHistoryDetail(id);
for (InterviewInspectionHistoryInfo interviewInspectionHistoryInfo : interviewInspectionHistoryInfos) {
if (ObjectUtil.isNotNull(interviewInspectionHistoryInfo) && ObjectUtil.isNotNull(interviewInspectionHistoryInfo.getFilesStr())) {
List<String> list = Arrays.asList(interviewInspectionHistoryInfo.getFilesStr().split(","));
interviewInspectionHistoryInfo.setFiles(list);
}
}
return interviewInspectionHistoryInfos;
} }
@Override @Override
public List<InterviewInspectionResultVO> interviewInspectionResultGetList(GetInterviewInspectionResultListReq request) { public List<InterviewInspectionResultVO> interviewInspectionResultGetList(GetInterviewInspectionResultListReq request) {
return inspectionMapper.interviewInspectionResultGetList(request); //给个默认时间
if (StringUtil.isEmpty(request.getStartTime()) && StringUtil.isEmpty(request.getEndTime())) {
request.setStartTime(getHourDayDate(0, -6, true)).setEndTime(getHourDayDate(0, 0, false));
}
//意向开店区域 不为空
if (StringUtil.isNotEmpty(request.getWantShopArea())) {
HyOpenAreaInfoDO hyOpenAreaInfoDO =hyOpenAreaInfoDAO.selectById(Convert.toLong(request.getWantShopArea()));
if (ObjectUtil.isNull(hyOpenAreaInfoDO.getParentId())) {
//是省
PageHelper.startPage(request.getPageNum(), request.getPageSize());
return inspectionMapper.interviewInspectionResultGetProvinceList(request.setUserId(CurrentUserHolder.getUserId()));
} else {
//并非省
List<Long> codeList = hyOpenAreaInfoDAO.getAllAreaCode(request.getWantShopArea()).stream().map(HyOpenAreaInfoDO::getId).collect(Collectors.toList());
request.setCodeList(codeList);
}
}
PageHelper.startPage(request.getPageNum(), request.getPageSize());
return inspectionMapper.interviewInspectionResultGetList(request.setUserId(CurrentUserHolder.getUserId()));
} }
private String spliceFiles(List<String> files) { private String spliceFiles(List<String> files) {
@@ -130,7 +172,38 @@ public class InterviewInspectionServiceImpl implements InterviewInspectionServic
@Override @Override
public List<InterviewInspectionVO> interviewInspectionGetList(GetInterviewInspectionListReq request) { public List<InterviewInspectionVO> interviewInspectionGetList(GetInterviewInspectionListReq request) {
String userId = CurrentUserHolder.getUserId(); //给个默认时间
return inspectionMapper.interviewInspectionGetList(request); if (StringUtil.isEmpty(request.getStartTime()) && StringUtil.isEmpty(request.getEndTime())) {
request.setStartTime(getHourDayDate(0, -6, true)).setEndTime(getHourDayDate(0, 0, false));
}
//意向开店区域 不为空
if (StringUtil.isNotEmpty(request.getWantShopArea())) {
HyOpenAreaInfoDO hyOpenAreaInfoDO =hyOpenAreaInfoDAO.selectById(Convert.toLong(request.getWantShopArea()));
if (ObjectUtil.isNull(hyOpenAreaInfoDO.getParentId())) {
//是省
PageHelper.startPage(request.getPageNum(), request.getPageSize());
return inspectionMapper.interviewInspectionGetProvinceList(request.setUserId(CurrentUserHolder.getUserId()));
} else {
//并非省
List<Long> codeList = hyOpenAreaInfoDAO.getAllAreaCode(request.getWantShopArea()).stream().map(HyOpenAreaInfoDO::getId).collect(Collectors.toList());
request.setCodeList(codeList);
}
}
PageHelper.startPage(request.getPageNum(), request.getPageSize());
return inspectionMapper.interviewInspectionGetList(request.setUserId(CurrentUserHolder.getUserId()));
} }
private String getHourDayDate(int hour, int day, boolean pan) {
Date today = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(today);
calendar.add(Calendar.HOUR, hour);
calendar.add(Calendar.DAY_OF_MONTH, day);
Date twoDay = calendar.getTime();
String partner = pan ? "yyyy-MM-dd 00:00:00" : "yyyy-MM-dd 24:00:00";
return new SimpleDateFormat(partner).format(twoDay);
}
} }

View File

@@ -6,9 +6,11 @@ import com.cool.store.entity.MDMAreaDO;
import com.cool.store.mapper.MdmAreaMapper; import com.cool.store.mapper.MdmAreaMapper;
import com.cool.store.service.MDMAreaService; import com.cool.store.service.MDMAreaService;
import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.StringUtil;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.List; import java.util.List;
@@ -57,4 +59,41 @@ public class MDMAreaServiceImpl implements MDMAreaService {
return areaDOList; return areaDOList;
} }
@Override
public List<MDMAreaDO> getAllAreaCode(String code) {
if (StringUtil.isEmpty(code)) {
return null;
}
//获取省下所有数据
List<MDMAreaDO> provinceCodeList= mdmAreaMapper.getProvinceAllCode(code);
if(CollectionUtils.isEmpty(provinceCodeList)){
//获取市区下所有数据
List<MDMAreaDO> cityCodeList= mdmAreaMapper.getSonArea(code);
if(CollectionUtils.isEmpty(cityCodeList)){
//获取区数据
return mdmAreaMapper.getArea(code);
}else {
return cityCodeList;
}
}else {
return provinceCodeList;
}
}
/**
* 省为true
* 非省为false
* @param code
* @return
*/
@Override
public boolean getAreaProvinceType(String code) {
if (StringUtil.isEmpty(code)) {
return false;
}
//获取省下所有数据
List<MDMAreaDO> provinceCodeList= mdmAreaMapper.getProvinceAllCode(code);
return CollectionUtils.isEmpty(provinceCodeList)?false:true;
}
} }

View File

@@ -1,10 +1,12 @@
package com.cool.store.service.impl; package com.cool.store.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.message.SendCardMessageDTO;
import com.cool.store.enums.FeiShuNoticeMsgEnum; import com.cool.store.enums.FeiShuNoticeMsgEnum;
import com.cool.store.enums.MessageTypeEnum; import com.cool.store.enums.MessageTypeEnum;
import com.cool.store.http.ISVHttpRequest; import com.cool.store.http.ISVHttpRequest;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -26,13 +28,17 @@ public class NoticeService {
private ISVHttpRequest isvHttpRequest; private ISVHttpRequest isvHttpRequest;
public void sendFeiShuNotice(FeiShuNoticeMsgEnum feiShuNoticeMsgEnum, List<String> userIds,Object... objects) { public void sendFeiShuNotice(FeiShuNoticeMsgEnum feiShuNoticeMsgEnum, List<String> userIds,Object... objects) {
try{ try{
SendCardMessageDTO sendCardMessageDTO = new SendCardMessageDTO(); if (CollectionUtils.isEmpty(userIds)){
sendCardMessageDTO.setUserIds(userIds); log.info("sendFeiShuNotice_feiShuNoticeMsgEnum:{} userIds:{},objects:{}",feiShuNoticeMsgEnum.getTitle(), JSONObject.toJSONString(userIds),JSONObject.toJSONString(objects));
sendCardMessageDTO.setMessageType(MessageTypeEnum.SCHEDULE_REMINDER); return;
sendCardMessageDTO.setMessageUrl(linkUrl); }
sendCardMessageDTO.setTitle(feiShuNoticeMsgEnum.getTitle()); SendCardMessageDTO sendCardMessageDTO = new SendCardMessageDTO();
sendCardMessageDTO.setContent(MessageFormat.format(feiShuNoticeMsgEnum.getContent(),objects)); sendCardMessageDTO.setUserIds(userIds);
isvHttpRequest.sendFeiShuCardMessage(sendCardMessageDTO); sendCardMessageDTO.setMessageType(MessageTypeEnum.SCHEDULE_REMINDER);
sendCardMessageDTO.setMessageUrl(linkUrl);
sendCardMessageDTO.setTitle(feiShuNoticeMsgEnum.getTitle());
sendCardMessageDTO.setContent(MessageFormat.format(feiShuNoticeMsgEnum.getContent(),objects));
isvHttpRequest.sendFeiShuCardMessage(sendCardMessageDTO);
}catch (Exception e){ }catch (Exception e){
log.info("发送飞书通知失败"); log.info("发送飞书通知失败");
} }

View File

@@ -10,6 +10,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@@ -36,8 +37,7 @@ public class AuditResultController {
*/ */
@PostMapping("/getList") @PostMapping("/getList")
@ApiOperation("获取面试稽核结果列表") @ApiOperation("获取面试稽核结果列表")
public ResponseResult<PageInfo<InterviewInspectionResultVO>> interviewInspectionResultGetList(GetInterviewInspectionResultListReq request) { public ResponseResult<PageInfo<InterviewInspectionResultVO>> interviewInspectionResultGetList(@RequestBody GetInterviewInspectionResultListReq request) {
PageHelper.startPage(request.getPageNum(), request.getPageSize());
List<InterviewInspectionResultVO> interviewInspectionResultGetList = interviewInspectionService.interviewInspectionResultGetList(request); List<InterviewInspectionResultVO> interviewInspectionResultGetList = interviewInspectionService.interviewInspectionResultGetList(request);
return ResponseResult.success(new PageInfo<>(interviewInspectionResultGetList)); return ResponseResult.success(new PageInfo<>(interviewInspectionResultGetList));
} }

View File

@@ -14,7 +14,6 @@ import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -56,8 +55,7 @@ public class InterviewInspectionController {
*/ */
@PostMapping("/getList") @PostMapping("/getList")
@ApiOperation("获取面试稽核列表") @ApiOperation("获取面试稽核列表")
public ResponseResult<PageInfo<InterviewInspectionVO>> interviewInspectionGetList(GetInterviewInspectionListReq request) { public ResponseResult<PageInfo<InterviewInspectionVO>> interviewInspectionGetList(@RequestBody GetInterviewInspectionListReq request) {
PageHelper.startPage(request.getPageNum(), request.getPageSize());
List<InterviewInspectionVO> interviewInspectionVOList = interviewInspectionService.interviewInspectionGetList(request); List<InterviewInspectionVO> interviewInspectionVOList = interviewInspectionService.interviewInspectionGetList(request);
return ResponseResult.success(new PageInfo<>(interviewInspectionVOList)); return ResponseResult.success(new PageInfo<>(interviewInspectionVOList));
} }