Browse Source

拜访模板

contract
Yen 2 years ago
parent
commit
76f28ada39
  1. 13
      src/main/java/com/qs/serve/common/model/dto/TargetDTO.java
  2. 2
      src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java
  3. 117
      src/main/java/com/qs/serve/modules/baz/entity/BazVisitInfo.java
  4. 4
      src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java
  5. 2
      src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java
  6. 14
      src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInfoMapper.java
  7. 14
      src/main/java/com/qs/serve/modules/baz/service/BazVisitInfoService.java
  8. 22
      src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInfoServiceImpl.java
  9. 25
      src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java
  10. 3
      src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java
  11. 11
      src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierVisitAddressController.java
  12. 8
      src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java
  13. 4
      src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointMapInfoBo.java
  14. 3
      src/main/java/com/qs/serve/modules/bms/entity/vo/BmsUserPoint4VisitVo.java
  15. 4
      src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java
  16. 10
      src/main/resources/mapper/bms/BmsChannelPointMapper.xml

13
src/main/java/com/qs/serve/common/model/dto/TargetDTO.java

@ -13,4 +13,17 @@ public class TargetDTO {
String targetId;
String targetCode;
String targetName;
public TargetDTO(String targetId, String targetCode, String targetName) {
this.targetId = targetId;
this.targetCode = targetCode;
this.targetName = targetName;
}
//拜访相关业务
String localX;
String localY;
String address;
String mapAddress;
}

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

@ -76,6 +76,8 @@ public class BazVisitInstanceController {
@GetMapping("/getByFlowId/{id}")
public R<BazVisitInstanceFlow> getByFlowId(@PathVariable("id") String id){
BazVisitInstanceFlow instanceFlow = bazVisitInstanceFlowService.getById(id);
BazVisitInstance visitInstance = bazVisitInstanceService.getById(instanceFlow.getVisitInstanceId());
instanceFlow.setInstanceMainInfo(visitInstance);
return R.ok(instanceFlow);
}

117
src/main/java/com/qs/serve/modules/baz/entity/BazVisitInfo.java

@ -0,0 +1,117 @@
package com.qs.serve.modules.baz.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 供应商拜访信息 实体类
* @author YenHex
* @since 2023-04-10
*/
@Data
@TableName("baz_visit_info")
public class BazVisitInfo implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 访问id */
@NotNull(message = "访问id不能为空")
private Long visitId;
/** 目标类型 */
@NotBlank(message = "目标类型不能为空")
@Length(max = 255,message = "目标类型长度不能超过255字")
private String targetType;
/** 目标id */
@NotNull(message = "目标id不能为空")
private String targetId;
/** 拜访次数 */
@NotNull(message = "拜访次数不能为空")
private Integer visitCount;
/** 上次拜访时间 */
@Length(max = 0,message = "上次拜访时间长度不能超过0字")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime lastVisitTime;
/** 计划下一次拜访时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private LocalDate nextVisitDate;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
public static BazVisitInfo toNewObject(BazVisitInfo source){
BazVisitInfo visitInfo = new BazVisitInfo();
visitInfo.setId(source.getId());
visitInfo.setVisitId(source.getVisitId());
visitInfo.setTargetType(source.getTargetType());
visitInfo.setTargetId(source.getTargetId());
visitInfo.setVisitCount(source.getVisitCount());
visitInfo.setLastVisitTime(source.getLastVisitTime());
visitInfo.setNextVisitDate(source.getNextVisitDate());
visitInfo.setRemark(source.getRemark());
visitInfo.setCreateTime(source.getCreateTime());
visitInfo.setUpdateTime(source.getUpdateTime());
visitInfo.setTenantId(source.getTenantId());
visitInfo.setDelFlag(source.getDelFlag());
visitInfo.setCreateBy(source.getCreateBy());
visitInfo.setUpdateBy(source.getUpdateBy());
return visitInfo;
}
}

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

@ -80,6 +80,10 @@ public class BazVisitInstance implements Serializable {
@NotBlank(message = "目标名称不能为空")
@Length(max = 255,message = "目标名称长度不能超过255字")
private String targetName;
private String targetLocalX;
private String targetLocalY;
private String targetAddress;
private String targetMapAddress;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")

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

@ -166,6 +166,8 @@ public class BazVisitInstanceFlow implements Serializable {
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
@TableField(exist = false)
private Object instanceMainInfo;
public static BazVisitInstanceFlow toNewObject(BazVisitFlow source, TargetDTO targetDTO, SysUser user){
BazVisitInstanceFlow visitInstanceFlow = new BazVisitInstanceFlow();

14
src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInfoMapper.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.baz.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.baz.entity.BazVisitInfo;
/**
* 供应商拜访信息 Mapper
* @author YenHex
* @date 2023-04-10
*/
public interface BazVisitInfoMapper extends BaseMapper<BazVisitInfo> {
}

14
src/main/java/com/qs/serve/modules/baz/service/BazVisitInfoService.java

@ -0,0 +1,14 @@
package com.qs.serve.modules.baz.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qs.serve.modules.baz.entity.BazVisitInfo;
/**
* 供应商拜访信息 服务接口
* @author YenHex
* @date 2023-04-10
*/
public interface BazVisitInfoService extends IService<BazVisitInfo> {
}

22
src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInfoServiceImpl.java

@ -0,0 +1,22 @@
package com.qs.serve.modules.baz.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.qs.serve.modules.baz.entity.BazVisitInfo;
import com.qs.serve.modules.baz.service.BazVisitInfoService;
import com.qs.serve.modules.baz.mapper.BazVisitInfoMapper;
/**
* 供应商拜访信息 服务实现类
* @author YenHex
* @since 2023-04-10
*/
@Slf4j
@Service
@AllArgsConstructor
public class BazVisitInfoServiceImpl extends ServiceImpl<BazVisitInfoMapper,BazVisitInfo> implements BazVisitInfoService {
}

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

@ -16,12 +16,12 @@ import com.qs.serve.modules.baz.mapper.BazVisitFlowMapper;
import com.qs.serve.modules.baz.mapper.BazVisitInstanceFlowMapper;
import com.qs.serve.modules.baz.mapper.BazVisitMapper;
import com.qs.serve.modules.baz.service.BazVisitInstanceFlowService;
import com.qs.serve.modules.bms.entity.BmsChannelPoint;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierVisitForm;
import com.qs.serve.modules.bms.entity.*;
import com.qs.serve.modules.bms.mapper.BmsChannelPointMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierVisitAddressMapper;
import com.qs.serve.modules.bms.mapper.BmsSupplierVisitFormMapper;
import com.qs.serve.modules.bms.service.BmsSupplierVisitAddressService;
import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysUserMapper;
import lombok.AllArgsConstructor;
@ -47,6 +47,7 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
BmsSupplierMapper supplierMapper;
SysUserMapper sysUserMapper;
BmsSupplierVisitFormMapper visitFormMapper;
BmsSupplierVisitAddressMapper visitAddressMapper;
BazVisitInstanceFlowService instanceFlowService;
BazVisitFlowMapper flowMapper;
BazVisitMapper visitMapper;
@ -68,12 +69,26 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
if(targetType.equals(BazTargetTypeConsts.CUSTOMER)){
BmsSupplier supplier = supplierMapper.selectById(param.getTargetId());
targetDTO = new TargetDTO(supplier.getId(),supplier.getCode(),supplier.getName());
String addrId = flowBo.getTargetAddressId();
BmsSupplierVisitAddress visitAddress = visitAddressMapper.selectById(addrId);
targetDTO.setLocalX(visitAddress.getLocalX());
targetDTO.setLocalY(visitAddress.getLocalY());
targetDTO.setAddress(visitAddress.getAddressDetail());
targetDTO.setMapAddress(visitAddress.getLocalAddress());
}else if (targetType.equals(BazTargetTypeConsts.POINT)){
BmsChannelPoint point = pointMapper.selectById(param.getTargetId());
targetDTO = new TargetDTO(point.getId()+"",point.getPointCode(),point.getPointName());
targetDTO.setLocalX(point.getLocalX());
targetDTO.setLocalY(point.getLocalY());
targetDTO.setAddress(point.getAddress());
targetDTO.setMapAddress(point.getMapAddress());
}
//构建实例
BazVisitInstance visitInstance = BazVisitInstance.toNewObject(bazVisit,targetDTO,sysUser);
visitInstance.setTargetAddress(targetDTO.getAddress());
visitInstance.setTargetMapAddress(targetDTO.getMapAddress());
visitInstance.setTargetLocalX(targetDTO.getLocalX());
visitInstance.setTargetLocalY(targetDTO.getLocalY());
visitInstance.setTitle(sysUser.getName()+"["+bazVisit.getVisitName()+"]"+targetDTO.getTargetName());
//构建流程
List<BazVisitInstanceFlow> instanceFlowList = new ArrayList<>();
@ -125,8 +140,8 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl<BazVisitInstanceMap
}
if(instanceFlowDb.getPositionState().equals(2)
&&(StringUtils.hasEmpty(param.getValLocalX())
||StringUtils.hasEmpty(param.getValLocalY()))
||StringUtils.hasEmpty(param.getMapAddress())){
||StringUtils.hasEmpty(param.getValLocalY())
||StringUtils.hasEmpty(param.getMapAddress()))){
Assert.throwEx("定位信息缺失");
}
if(instanceFlowDb.getPhotoState().equals(2)

3
src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java

@ -136,6 +136,9 @@ public class BmsChannelPointController {
public R<?> updateById(@RequestBody BmsChannelPointMapInfoBo param){
BmsChannelPoint channelPoint = CopierUtil.copy(param,new BmsChannelPoint());
bmsChannelPointService.updateById(channelPoint);
if(!StringUtils.hasText(param.getLocalX())||!StringUtils.hasText(param.getLocalY())){
channelPointMapper.updateSetNullOfMapInfo(param.getId());
}
return R.ok();
}

11
src/main/java/com/qs/serve/modules/bms/controller/BmsSupplierVisitAddressController.java

@ -8,6 +8,9 @@ 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.*;
import com.qs.serve.modules.baz.common.BazTargetTypeConsts;
import com.qs.serve.modules.baz.entity.BazVisitInfo;
import com.qs.serve.modules.baz.service.BazVisitInfoService;
import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.bms.entity.BmsSupplierVisit;
import com.qs.serve.modules.bms.entity.so.BmsSupplierVisitSo;
@ -41,8 +44,8 @@ import java.util.stream.Collectors;
@RequestMapping("bms/supplierVisitAddress")
public class BmsSupplierVisitAddressController {
private BazVisitInfoService bazVisitInfoService;
private BmsSupplierVisitAddressService bmsSupplierVisitAddressService;
private BmsSupplierVisitService bmsSupplierVisitService;
private BmsSupplierService bmsSupplierService;
private HisUserSupplierService hisUserSupplierService;
private HisUserSupplierMapper hisUserSupplierMapper;
@ -92,8 +95,12 @@ public class BmsSupplierVisitAddressController {
addressVo.setSupplierCode(supplier.getCode());
addressVo.setSupplierName(supplier.getName());
BmsSupplierVisitAddress visitAddress = bmsSupplierVisitAddressService.getById(addressVo.getAddressId());
BmsSupplierVisit visitInfo = bmsSupplierVisitService.getOne(new LambdaQueryWrapper<BmsSupplierVisit>().eq(BmsSupplierVisit::getSupplierId,supplier.getId()),false);
//BmsSupplierVisit visitInfo = bmsSupplierVisitService.getOne(new LambdaQueryWrapper<BmsSupplierVisit>().eq(BmsSupplierVisit::getSupplierId,supplier.getId()),false);
addressVo.setAddressInfo(visitAddress);
LambdaQueryWrapper<BazVisitInfo> visitInfoLqw = new LambdaQueryWrapper<>();
visitInfoLqw.eq(BazVisitInfo::getTargetType, BazTargetTypeConsts.CUSTOMER);
visitInfoLqw.eq(BazVisitInfo::getTargetId,supplier.getId());
BazVisitInfo visitInfo = bazVisitInfoService.getOne(visitInfoLqw,false);
addressVo.setVisitInfo(visitInfo);
break;
}

8
src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java

@ -7,7 +7,9 @@ import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.common.framework.mybatis.handler.meta.SplitStringTypeHandler;
import lombok.Data;
import org.apache.ibatis.type.JdbcType;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
@ -20,7 +22,7 @@ import javax.validation.constraints.NotBlank;
* @since 2022-11-07
*/
@Data
@TableName("bms_channel_point")
@TableName(value = "bms_channel_point",autoResultMap = true)
public class BmsChannelPoint implements Serializable {
private static final long serialVersionUID = 1L;
@ -106,6 +108,10 @@ public class BmsChannelPoint implements Serializable {
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 图片多张用句号隔开 */
@TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR)
private String[] photos;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

4
src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointMapInfoBo.java

@ -32,4 +32,8 @@ public class BmsChannelPointMapInfoBo {
@Length(max = 255,message = "地图地址长度不能超过255字")
private String mapAddress;
private String address;
private String[] photos;
}

3
src/main/java/com/qs/serve/modules/bms/entity/vo/BmsUserPoint4VisitVo.java

@ -31,5 +31,8 @@ public class BmsUserPoint4VisitVo {
/** 距离 */
Double distance;
String localX;
String localY;
}

4
src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java

@ -25,6 +25,10 @@ public interface BmsChannelPointMapper extends BaseMapper<BmsChannelPoint> {
@Update("update bms_channel_point set biz_region_path = #{bizRegionPath} where biz_region_id = #{bizRegionId}")
int udpateBizRegionPathByBizRegionId(@Param("bizRegionPath") String bizRegionPath,String bizRegionId);
@InterceptorIgnore(tenantLine = "1")
@Update("update bms_channel_point set local_x = null,local_y=null where id = #{id}")
int updateSetNullOfMapInfo(@Param("id") Long id);
List<BmsChannelPoint> selectChannelPointList(@Param("query") BmsChannelPoint channelPoint);

10
src/main/resources/mapper/bms/BmsChannelPointMapper.xml

@ -21,6 +21,9 @@
<result property="bizRegionId" column="biz_region_id"/>
<result property="bizRegionPath" column="biz_region_path"/>
<result property="bizRegionPathIds" column="biz_region_path_ids"/>
<result property="localY" column="local_y"/>
<result property="localX" column="local_x"/>
<result property="mapAddress" column="map_address"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
@ -52,6 +55,9 @@
bms_channel_point.`create_time`,
bms_channel_point.`update_time`,
bms_channel_point.`tenant_id`,
bms_channel_point.`local_x`,
bms_channel_point.`local_y`,
bms_channel_point.`map_address`,
bms_channel_point.`del_flag`,
bms_channel_point.`cost_flag`,
bms_channel_point.`create_by`,
@ -102,6 +108,8 @@
<result property="channelName" column="channel_name"/>
<result property="address" column="address"/>
<result property="mapAddress" column="map_address"/>
<result property="localY" column="local_y"/>
<result property="localX" column="local_x"/>
</resultMap>
<select id="selectUserPointList4Visit" resultType="com.qs.serve.modules.bms.entity.vo.BmsUserPoint4VisitVo" resultMap="userPointList4VisitMap">
@ -111,6 +119,8 @@
`bms_channel_point`.point_name,
`bms_channel_point`.channel_name,
`bms_channel_point`.address,
`bms_channel_point`.local_y,
`bms_channel_point`.local_x,
`bms_channel_point`.map_address
<if test="query.localY!=null and query.localX!=null">
,st_distance_sphere (

Loading…
Cancel
Save