Browse Source

签到,拜访导出

v1.0
Yen 2 years ago
parent
commit
6acb312f96
  1. 19
      src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java
  2. 45
      src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java
  3. 3
      src/main/java/com/qs/serve/modules/baz/entity/BazVisitFlow.java
  4. 34
      src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java
  5. 4
      src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java
  6. 4
      src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitFlowBo.java
  7. 5
      src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInstanceMapper.java
  8. 5
      src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceService.java
  9. 6
      src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java
  10. 29
      src/main/java/com/qs/serve/modules/biz/controller/BizVisitController.java
  11. 14
      src/main/java/com/qs/serve/modules/biz/controller/my/BizVisitMyController.java
  12. 120
      src/main/resources/mapper/baz/BazVisitInstanceMapper.xml

19
src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java

@ -6,6 +6,7 @@ import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType;
import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.PageUtil;
import com.qs.serve.common.util.CopierUtil;
import com.qs.serve.common.util.StringUtils;
@ -58,6 +59,24 @@ public class BazVisitInstanceController {
return R.byPageHelperList(list);
}
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<BazVisitInstance>> getList(BazVisitInstanceSo param){
BazVisitInstance query = CopierUtil.copy(param,new BazVisitInstance());
if(param.getQueryStartDate()!=null){
query.setQueryEndDate(param.getQueryStartDate().atStartOfDay());
}
if(param.getQueryEndDate()!=null){
query.setQueryEndDate(param.getQueryEndDate().atTime(23,59,59));
}
List<BazVisitInstance> list = bazVisitInstanceService.selectBazVisitInstanceList(query);
return R.ok(list);
}
/**
* ID查询
* @param id

45
src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java

@ -94,6 +94,51 @@ public class BazMyVisitInstanceController {
}
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<BazVisitInstance>> getList(BazVisitInstanceSo param){
BazVisitInstance query = CopierUtil.copy(param,new BazVisitInstance());
if(param.getQueryStartDate()!=null){
query.setQueryEndDate(param.getQueryStartDate().atStartOfDay());
}
if(param.getQueryEndDate()!=null){
query.setQueryEndDate(param.getQueryEndDate().atTime(23,59,59));
}
param.setVisitorId(AuthContextUtils.getSysUserId());
List<BazVisitInstance> list = bazVisitInstanceService.selectBazVisitInstanceList(query);
return R.ok(list);
}
/**
* 列表(我的部下)
* @param param
* @return
*/
@GetMapping("/list4Under")
public R<List<BazVisitInstance>> list4Under(BazVisitInstanceSo param){
BazVisitInstance query = CopierUtil.copy(param,new BazVisitInstance());
if(param.getQueryStartDate()!=null){
query.setQueryEndDate(param.getQueryStartDate().atStartOfDay());
}
if(param.getQueryEndDate()!=null){
query.setQueryEndDate(param.getQueryEndDate().atTime(23,59,59));
}
List<String> userIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId());
if(userIds.size()<1){
return R.ok();
}
String userId = AuthContextUtils.getSysUserId();
PageUtil.startPage();
query.setQueryUserIds(userIds);
query.setIgnoreUserId(userId);
List<BazVisitInstance> list = bazVisitInstanceService.selectBazVisitInstanceList(query);
return R.ok(list);
}
/**
* 获取用户未完成拜访数量
* @param visitId 拜访id

3
src/main/java/com/qs/serve/modules/baz/entity/BazVisitFlow.java

@ -52,6 +52,9 @@ public class BazVisitFlow implements Serializable {
/** 排序 */
private Integer flowSort;
/** 业务类型:0-普通;1->签到;2-签退;3->小结 */
private Integer flowBizType;
/** 是否可忽略 */
@NotNull(message = "是否可忽略不能为空")
private Integer ignoreFlag;

34
src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java

@ -139,6 +139,40 @@ public class BazVisitInstance implements Serializable {
@TableField(exist = false)
private List<?> flowList;
/** 拜访小结 */
@TableField(exist = false)
private String summary;
/** 签到时间 */
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDateTime signTime;
/** 签退时间 */
@TableField(exist = false)
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDateTime outTime;
/** 查询开始时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@TableField(exist = false)
private LocalDateTime queryStartDate;
/** 查询结束时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@TableField(exist = false)
private LocalDateTime queryEndDate;
/** 查询用户ID */
@TableField(exist = false)
private List<String> queryUserIds;
/** 忽略的用户ID */
@TableField(exist = false)
private String ignoreUserId;
public static BazVisitInstance toNewObject(BazVisit source, TargetDTO targetDTO, SysUser sysUser){
BazVisitInstance visitInstance = new BazVisitInstance();
//visitInstance.setTitle(source.getTitle());

4
src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java

@ -72,6 +72,9 @@ public class BazVisitInstanceFlow implements Serializable {
@Length(max = 255,message = "流程名称长度不能超过255字")
private String flowTitle;
/** 业务类型:0-普通;1->签到;2-签退;3->小结 */
private Integer flowBizType;
/** 排序 */
private Integer flowSort;
@ -181,6 +184,7 @@ public class BazVisitInstanceFlow implements Serializable {
visitInstanceFlow.setTargetCode(targetDTO.getTargetCode());
visitInstanceFlow.setTargetName(targetDTO.getTargetName());
visitInstanceFlow.setFlowTitle(source.getFlowTitle());
visitInstanceFlow.setFlowBizType(source.getFlowBizType());
visitInstanceFlow.setFlowSort(source.getFlowSort());
visitInstanceFlow.setIgnoreFlag(source.getIgnoreFlag());
visitInstanceFlow.setPositionState(source.getPositionState());

4
src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitFlowBo.java

@ -41,6 +41,10 @@ public class BazVisitFlowBo implements Serializable {
@NotNull(message = "排序不能为空")
private Integer flowSort;
/** 业务类型:0-普通;1->签到;2-签退;3->小结 */
@NotNull(message = "排序不能为空")
private Integer flowBizType;
/** 是否可忽略 */
@NotNull(message = "是否可忽略不能为空")
private Integer ignoreFlag;

5
src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInstanceMapper.java

@ -2,6 +2,9 @@ package com.qs.serve.modules.baz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.baz.entity.BazVisitInstance;
import com.qs.serve.modules.baz.entity.so.BazVisitInstanceSo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 拜访实例 Mapper
@ -10,5 +13,7 @@ import com.qs.serve.modules.baz.entity.BazVisitInstance;
*/
public interface BazVisitInstanceMapper extends BaseMapper<BazVisitInstance> {
List<BazVisitInstance> selectBazVisitInstanceList(@Param("query") BazVisitInstance param);
}

5
src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceService.java

@ -4,6 +4,10 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.baz.entity.BazVisitInstance;
import com.qs.serve.modules.baz.entity.bo.BazCreateVisitInstanceBo;
import com.qs.serve.modules.baz.entity.bo.BazVisitInstanceFlowBo;
import com.qs.serve.modules.baz.entity.so.BazVisitInstanceSo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 拜访实例 服务接口
@ -18,5 +22,6 @@ public interface BazVisitInstanceService extends IService<BazVisitInstance> {
void finished(Long id);
List<BazVisitInstance> selectBazVisitInstanceList( BazVisitInstance param);
}

6
src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java

@ -11,6 +11,7 @@ import com.qs.serve.modules.baz.common.BazTargetTypeConsts;
import com.qs.serve.modules.baz.entity.*;
import com.qs.serve.modules.baz.entity.bo.BazCreateVisitInstanceBo;
import com.qs.serve.modules.baz.entity.bo.BazVisitInstanceFlowBo;
import com.qs.serve.modules.baz.entity.so.BazVisitInstanceSo;
import com.qs.serve.modules.baz.mapper.BazVisitFlowMapper;
import com.qs.serve.modules.baz.mapper.BazVisitInstanceFlowMapper;
import com.qs.serve.modules.baz.mapper.BazVisitMapper;
@ -253,5 +254,10 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
this.updateById(visitInstance);
}
}
@Override
public List<BazVisitInstance> selectBazVisitInstanceList(BazVisitInstance param) {
return super.baseMapper.selectBazVisitInstanceList(param);
}
}

29
src/main/java/com/qs/serve/modules/biz/controller/BizVisitController.java

@ -69,6 +69,35 @@ public class BizVisitController {
return R.byPageHelperList(list);
}
/**
* 列表我的下属拜访记录
* @param param
* @return
*/
@GetMapping("/list4Under")
public R<List<BizVisit>> list4Under(BizVisit param){
List<String> userIds = postUserService.listByChildIds(AuthContextUtils.getSysUserId());
if(userIds.size()<1){
return R.ok();
}
LambdaQueryWrapper<BizVisit> visitWrapper = this.getBizVisitLambdaQueryWrapper(param);
visitWrapper.in(BizVisit::getVisitorId,userIds);
List<BizVisit> list = bizVisitService.list(visitWrapper);
return R.ok(list);
}
/**
* 列表
* @param param
* @return
*/
@GetMapping("/list")
public R<List<BizVisit>> getList(BizVisit param){
LambdaQueryWrapper<BizVisit> visitWrapper = this.getBizVisitLambdaQueryWrapper(param);
List<BizVisit> list = bizVisitService.list(visitWrapper);
return R.ok(list);
}
@NotNull
private LambdaQueryWrapper<BizVisit> getBizVisitLambdaQueryWrapper(BizVisit param) {
LambdaQueryWrapper<BizVisit> visitWrapper = new LambdaQueryWrapper<>(param);

14
src/main/java/com/qs/serve/modules/biz/controller/my/BizVisitMyController.java

@ -37,6 +37,20 @@ public class BizVisitMyController {
private SysUserService sysUserService;
private SysPostUserService postUserService;
/**
* 翻页
* @param param
* @return
*/
@GetMapping("/list")
public R<List<BizVisit>> getList(BizVisit param){
String userId = AuthContextUtils.getSysUserId();
param.setVisitorId(userId);
LambdaQueryWrapper<BizVisit> visitWrapper = this.getBizVisitLambdaQueryWrapper(param);
List<BizVisit> list = bizVisitService.list(visitWrapper);
return R.ok(list);
}
/**
* 翻页
* @param param

120
src/main/resources/mapper/baz/BazVisitInstanceMapper.xml

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qs.serve.modules.baz.mapper.BazVisitInstanceMapper">
<resultMap id="bazVisitInstanceMap" type="com.qs.serve.modules.baz.entity.BazVisitInstance" >
<result property="id" column="id"/>
<result property="title" column="title"/>
<result property="visitId" column="visit_id"/>
<result property="targetType" column="target_type"/>
<result property="visitState" column="visit_state"/>
<result property="visitorId" column="visitor_id"/>
<result property="visitorCode" column="visitor_code"/>
<result property="visitorName" column="visitor_name"/>
<result property="targetId" column="target_id"/>
<result property="targetCode" column="target_code"/>
<result property="targetName" column="target_name"/>
<result property="targetLocalX" column="target_local_x"/>
<result property="targetLocalY" column="target_local_y"/>
<result property="targetAddress" column="target_address"/>
<result property="targetMapAddress" column="target_map_address"/>
<result property="finishedTime" column="finished_time"/>
<result property="missLocalFlag" column="miss_local_flag"/>
<result property="remark" column="remark"/>
<result property="positionStatusContent" column="position_status_content"/>
<result property="positionStatus" column="position_status"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="tenantId" column="tenant_id"/>
<result property="delFlag" column="del_flag"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
</resultMap>
<sql id="bazVisitInstanceSql">
baz_visit_instance.`id`,
baz_visit_instance.`title`,
baz_visit_instance.`visit_id`,
baz_visit_instance.`target_type`,
baz_visit_instance.`visit_state`,
baz_visit_instance.`visitor_id`,
baz_visit_instance.`visitor_code`,
baz_visit_instance.`visitor_name`,
baz_visit_instance.`target_id`,
baz_visit_instance.`target_code`,
baz_visit_instance.`target_name`,
baz_visit_instance.`target_local_x`,
baz_visit_instance.`target_local_y`,
baz_visit_instance.`target_address`,
baz_visit_instance.`target_map_address`,
baz_visit_instance.`finished_time`,
baz_visit_instance.`miss_local_flag`,
baz_visit_instance.`remark`,
baz_visit_instance.`position_status_content`,
baz_visit_instance.`position_status`,
baz_visit_instance.`create_time`,
baz_visit_instance.`update_time`,
baz_visit_instance.`tenant_id`,
baz_visit_instance.`del_flag`,
baz_visit_instance.`create_by`,
baz_visit_instance.`update_by` </sql>
<select id="selectBazVisitInstanceList" parameterType="com.qs.serve.modules.baz.entity.BazVisitInstance" resultMap="bazVisitInstanceMap">
SELECT
ins_flow.remark as summary,
ins_flow2.create_time as sign_time,
ins_flow3.create_time as out_time,
<include refid="bazVisitInstanceSql"/>
FROM `baz_visit_instance` `baz_visit_instance`
left join (
select baz_visit_instance_flow.remark,baz_visit_instance_flow.visit_instance_id from baz_visit_instance_flow where flow_biz_type = '3'
) ins_flow on ins_flow.visit_instance_id = baz_visit_instance.id
left join (
select baz_visit_instance_flow.create_time,baz_visit_instance_flow.visit_instance_id from baz_visit_instance_flow where flow_biz_type = '1'
) ins_flow2 on ins_flow2.visit_instance_id = baz_visit_instance.id
left join (
select baz_visit_instance_flow.create_time,baz_visit_instance_flow.visit_instance_id from baz_visit_instance_flow where flow_biz_type = '2'
) ins_flow3 on ins_flow3.visit_instance_id = baz_visit_instance.id
<where>
<if test="query.id != null"> and `baz_visit_instance`.`id` = #{query.id}</if>
<if test="query.title != null and query.title != ''"> and `baz_visit_instance`.`title` = #{query.title}</if>
<if test="query.visitId != null"> and `baz_visit_instance`.`visit_id` = #{query.visitId}</if>
<if test="query.targetType != null and query.targetType != ''"> and `baz_visit_instance`.`target_type` = #{query.targetType}</if>
<if test="query.visitState != null"> and `baz_visit_instance`.`visit_state` = #{query.visitState}</if>
<if test="query.visitorId != null and query.visitorId != ''"> and `baz_visit_instance`.`visitor_id` = #{query.visitorId}</if>
<if test="query.visitorCode != null and query.visitorCode != ''"> and `baz_visit_instance`.`visitor_code` = #{query.visitorCode}</if>
<if test="query.visitorName != null and query.visitorName != ''"> and `baz_visit_instance`.`visitor_name` = #{query.visitorName}</if>
<if test="query.targetId != null and query.targetId != ''"> and `baz_visit_instance`.`target_id` = #{query.targetId}</if>
<if test="query.targetCode != null and query.targetCode != ''"> and `baz_visit_instance`.`target_code` = #{query.targetCode}</if>
<if test="query.targetName != null and query.targetName != ''"> and `baz_visit_instance`.`target_name` = #{query.targetName}</if>
<if test="query.targetLocalX != null and query.targetLocalX != ''"> and `baz_visit_instance`.`target_local_x` = #{query.targetLocalX}</if>
<if test="query.targetLocalY != null and query.targetLocalY != ''"> and `baz_visit_instance`.`target_local_y` = #{query.targetLocalY}</if>
<if test="query.targetAddress != null and query.targetAddress != ''"> and `baz_visit_instance`.`target_address` = #{query.targetAddress}</if>
<if test="query.targetMapAddress != null and query.targetMapAddress != ''"> and `baz_visit_instance`.`target_map_address` = #{query.targetMapAddress}</if>
<if test="query.finishedTime != null"> and `baz_visit_instance`.`finished_time` = #{query.finishedTime}</if>
<if test="query.missLocalFlag != null"> and `baz_visit_instance`.`miss_local_flag` = #{query.missLocalFlag}</if>
<if test="query.remark != null and query.remark != ''"> and `baz_visit_instance`.`remark` = #{query.remark}</if>
<if test="query.positionStatus != null and query.positionStatus != ''"> and `baz_visit_instance`.`position_status` = #{query.positionStatus}</if>
<if test="query.createTime != null"> and `baz_visit_instance`.`create_time` = #{query.createTime}</if>
<if test="query.updateTime != null"> and `baz_visit_instance`.`update_time` = #{query.updateTime}</if>
<if test="query.tenantId != null and query.tenantId != ''"> and `baz_visit_instance`.`tenant_id` = #{query.tenantId}</if>
<if test="query.delFlag != null and query.delFlag != ''"> and `baz_visit_instance`.`del_flag` = #{query.delFlag}</if>
<if test="query.createBy != null and query.createBy != ''"> and `baz_visit_instance`.`create_by` = #{query.createBy}</if>
<if test="query.updateBy != null and query.updateBy != ''"> and `baz_visit_instance`.`update_by` = #{query.updateBy}</if>
<if test="query.queryUserIds!=null and query.queryUserIds.size > 0">
and `baz_visit_instance`.`visitor_id` in
<foreach collection="query.queryUserIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
</if>
<if test="query.ignoreUserId != null and query.ignoreUserId != ''"> and `baz_visit_instance`.`visitor_id` != #{query.ignoreUserId}</if>
<if test="query.queryStartDate != null"> and `baz_visit_instance`.`create_time` &gt;= #{query.queryStartDate}</if>
<if test="query.queryEndDate != null"> and `baz_visit_instance`.`create_time` &lt;= #{query.queryEndDate}</if>
</where>
order by `baz_visit_instance`.`create_time` desc
</select>
</mapper>
Loading…
Cancel
Save