diff --git a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitController.java b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitController.java index 4c6d241f..85761093 100644 --- a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitController.java +++ b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitController.java @@ -11,6 +11,8 @@ import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.baz.entity.BazVisitFlow; import com.qs.serve.modules.baz.service.BazVisitFlowService; +import com.qs.serve.modules.bms.entity.BmsSupplierVisitForm; +import com.qs.serve.modules.bms.service.BmsSupplierVisitFormService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -37,6 +39,8 @@ public class BazVisitController { private BazVisitFlowService bazVisitFlowService; + private BmsSupplierVisitFormService bmsSupplierVisitFormService; + /** * 列表 * @param param @@ -61,6 +65,12 @@ public class BazVisitController { lqw.eq(BazVisitFlow::getFlowSort,1); lqw.eq(BazVisitFlow::getVisitId,visitId); BazVisitFlow bazVisitFlow = bazVisitFlowService.getOne(lqw,false); + if(bazVisitFlow.getFormId()!=null&&!bazVisitFlow.getFormId().equals(0L)){ + BmsSupplierVisitForm visitForm = bmsSupplierVisitFormService.getById(bazVisitFlow.getFormId()); + bazVisitFlow.setFormInfo(visitForm); + }else { + bazVisitFlow.setFormId(null); + } return R.ok(bazVisitFlow); } diff --git a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java index 6031838e..27bdfe56 100644 --- a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java +++ b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceController.java @@ -68,6 +68,17 @@ public class BazVisitInstanceController { return R.ok(bazVisitInstance); } + /** + * ID查询(流程项) + * @param id + * @return + */ + @GetMapping("/getByFlowId/{id}") + public R getByFlowId(@PathVariable("id") String id){ + BazVisitInstanceFlow instanceFlow = bazVisitInstanceFlowService.getById(id); + return R.ok(instanceFlow); + } + /** * 更新 diff --git a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceFlowController.java b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceFlowController.java deleted file mode 100644 index 67caf80a..00000000 --- a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceFlowController.java +++ /dev/null @@ -1,126 +0,0 @@ -package com.qs.serve.modules.baz.controller; - -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.qs.serve.common.model.annotation.SysLog; -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.PageUtil; -import com.qs.serve.common.util.CopierUtil; -import com.qs.serve.common.util.StringUtils; -import lombok.AllArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; - -import com.qs.serve.modules.baz.entity.so.BazVisitInstanceFlowSo; -import com.qs.serve.modules.baz.entity.bo.BazVisitInstanceFlowBo; -import com.qs.serve.modules.baz.entity.BazVisitInstanceFlow; -import com.qs.serve.modules.baz.service.BazVisitInstanceFlowService; - -import javax.validation.Valid; -import java.util.List; - -/** - * 拜访模块 拜访实例流程 - * @author YenHex - * @since 2023-04-07 - */ -@Slf4j -@AllArgsConstructor -//@RestController -//@RequestMapping("baz/visitInstanceFlow") -public class BazVisitInstanceFlowController { - - private BazVisitInstanceFlowService bazVisitInstanceFlowService; - - /** - * 列表 - * @param param - * @return - */ - //@GetMapping("/list") - @PreAuthorize("hasRole('baz:visitInstanceFlow:query')") - public R> getList(BazVisitInstanceFlowSo param){ - BazVisitInstanceFlow entity = CopierUtil.copy(param,new BazVisitInstanceFlow()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = bazVisitInstanceFlowService.list(lqw); - return R.ok(list); - } - - /** - * 翻页 - * @param param - * @return - */ - //@GetMapping("/page") - @PreAuthorize("hasRole('baz:visitInstanceFlow:query')") - public R> getPage(BazVisitInstanceFlowSo param){ - BazVisitInstanceFlow entity = CopierUtil.copy(param,new BazVisitInstanceFlow()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = bazVisitInstanceFlowService.list(lqw); - return R.byPageHelperList(list); - } - - /** - * ID查询 - * @param id - * @return - */ - //@GetMapping("/getById/{id}") - @SysLog(module = SystemModule.BAZ, title = "拜访实例流程", biz = BizType.QUERY) - @PreAuthorize("hasRole('baz:visitInstanceFlow:query')") - public R getById(@PathVariable("id") String id){ - BazVisitInstanceFlow bazVisitInstanceFlow = bazVisitInstanceFlowService.getById(id); - return R.ok(bazVisitInstanceFlow); - } - - - - /** - * 更新 - * @param param - * @return - */ - //@PostMapping("/updateById") - @SysLog(module = SystemModule.BAZ, title = "拜访实例流程", biz = BizType.UPDATE) - @PreAuthorize("hasRole('baz:visitInstanceFlow:update')") - public R updateById(@RequestBody @Valid BazVisitInstanceFlowBo param){ - BazVisitInstanceFlow entity = CopierUtil.copy(param,new BazVisitInstanceFlow()); - boolean result = bazVisitInstanceFlowService.updateById(entity); - return R.isTrue(result); - } - - /** - * 新增 - * @param param - * @return - */ - //@PostMapping("/save") - @SysLog(module = SystemModule.BAZ, title = "拜访实例流程", biz = BizType.INSERT) - @PreAuthorize("hasRole('baz:visitInstanceFlow:insert')") - public R save(@RequestBody @Valid BazVisitInstanceFlowBo param){ - BazVisitInstanceFlow entity = CopierUtil.copy(param,new BazVisitInstanceFlow()); - boolean result = bazVisitInstanceFlowService.save(entity); - return R.isTrue(result); - } - - /** - * 删除 - * @param ids - * @return - */ - @DeleteMapping("/deleteById/{ids}") - @SysLog(module = SystemModule.BAZ, title = "拜访实例流程", biz = BizType.DELETE) - @PreAuthorize("hasRole('baz:visitInstanceFlow:delete')") - public R deleteById(@PathVariable("ids") String ids){ - List idsLong = StringUtils.splitIdLong(ids); - boolean result = bazVisitInstanceFlowService.removeByIds(idsLong); - return R.isTrue(result); - } - -} - diff --git a/src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java b/src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java index 11b85db2..1796f1a5 100644 --- a/src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java +++ b/src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java @@ -75,6 +75,18 @@ public class BazMyVisitInstanceController { return R.ok(); } + /** + * 完成流程 + * @param id + * @return + */ + @PostMapping("/finished/{instanceId}") + @SysLog(module = SystemModule.BAZ, title = "拜访实例", biz = BizType.INSERT) + public R finished(@PathVariable("instanceId")Long id){ + bazVisitInstanceService.finished(id); + return R.ok(); + } + /** * 删除 * @param ids diff --git a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java index 509e9044..fa567591 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java @@ -9,10 +9,12 @@ 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 com.qs.serve.common.model.dto.TargetDTO; import com.qs.serve.modules.baz.entity.bo.BazVisitInstanceFlowBo; import com.qs.serve.modules.sys.entity.SysUser; import lombok.Data; +import org.apache.ibatis.type.JdbcType; import org.hibernate.validator.constraints.Length; import org.springframework.format.annotation.DateTimeFormat; @@ -25,7 +27,7 @@ import javax.validation.constraints.NotBlank; * @since 2023-04-07 */ @Data -@TableName("baz_visit_instance_flow") +@TableName(value = "baz_visit_instance_flow",autoResultMap = true) public class BazVisitInstanceFlow implements Serializable { private static final long serialVersionUID = 1L; @@ -73,6 +75,9 @@ public class BazVisitInstanceFlow implements Serializable { /** 排序 */ private Integer flowSort; + /** 状态:0-进行中;1-完成;2-跳过 */ + private Integer flowState; + /** 是否可忽略当前流程 */ private Integer ignoreFlag; @@ -105,8 +110,8 @@ public class BazVisitInstanceFlow implements Serializable { private String valLocalY; /** 拍照图片地址 */ - @Length(max = 4000,message = "拍照图片地址长度不能超过4000字") - private String valPhotoUrls; + @TableField(typeHandler = SplitStringTypeHandler.class,jdbcType= JdbcType.VARCHAR) + private String[] valPhotoUrls; /** 表单填写json */ @Length(max = 0,message = "表单填写json长度不能超过0字") diff --git a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceFlowBo.java b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceFlowBo.java index a799eb42..3ab22ee8 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceFlowBo.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceFlowBo.java @@ -48,11 +48,9 @@ public class BazVisitInstanceFlowBo implements Serializable { private String valLocalY; /** 拍照图片地址 */ - @Length(max = 4000,message = "拍照图片地址长度不能超过4000字") - private String valPhotoUrls; + private String[] valPhotoUrls; /** 表单填写json */ - @Length(max = 0,message = "表单填写json长度不能超过0字") private String valFormValue; /** 备注 */ diff --git a/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceService.java b/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceService.java index 5b5a6356..f98bb6e2 100644 --- a/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceService.java +++ b/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceService.java @@ -16,5 +16,7 @@ public interface BazVisitInstanceService extends IService { void submit(BazVisitInstanceFlowBo param); + void finished(Long id); + } diff --git a/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java b/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java index d07a879a..63967f6e 100644 --- a/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceServiceImpl.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.qs.serve.common.model.dto.TargetDTO; import com.qs.serve.common.util.Assert; import com.qs.serve.common.util.AuthContextUtils; +import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.baz.common.BazTargetTypeConsts; import com.qs.serve.modules.baz.entity.BazVisit; import com.qs.serve.modules.baz.entity.BazVisitFlow; @@ -73,9 +74,8 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl instanceFlowList = new ArrayList<>(); for (BazVisitFlow visitFlow : visitFlowList) { BazVisitInstanceFlow instanceFlow = BazVisitInstanceFlow.toNewObject(visitFlow,targetDTO,sysUser); @@ -87,7 +87,20 @@ public class BazVisitInstanceServiceImpl extends ServiceImpl countLqw = new LambdaQueryWrapper<>(); + countLqw.eq(BazVisitInstanceFlow::getVisitInstanceId,instanceFlowDb.getVisitInstanceId()); + countLqw.eq(BazVisitInstanceFlow::getFlowState,0); + long count = instanceFlowService.count(countLqw); + if(count<1){ + BazVisitInstance visitInstance = new BazVisitInstance(); + visitInstance.setVisitState(1); + visitInstance.setId(instanceFlowDb.getVisitInstanceId()); + this.updateById(visitInstance); + } } + @Override + public void finished(Long instanceId) { + BazVisitInstance instanceDb = this.getById(instanceId); + if(instanceDb.getVisitState().equals(0)){ + LambdaQueryWrapper countLqw = new LambdaQueryWrapper<>(); + countLqw.select( + BazVisitInstanceFlow::getId, + BazVisitInstanceFlow::getFlowTitle, + BazVisitInstanceFlow::getIgnoreFlag); + countLqw.eq(BazVisitInstanceFlow::getVisitInstanceId,instanceId); + countLqw.eq(BazVisitInstanceFlow::getFlowState,0); + List instanceFlowList = instanceFlowService.list(countLqw); + for (BazVisitInstanceFlow instanceFlow : instanceFlowList) { + if(instanceFlow.getIgnoreFlag().equals(0)){ + Assert.throwEx("["+instanceFlow.getFlowTitle()+"]未完成"); + } + instanceFlow.setFlowState(2); + } + instanceFlowService.updateBatchById(instanceFlowList); + BazVisitInstance visitInstance = new BazVisitInstance(); + visitInstance.setVisitState(1); + visitInstance.setId(instanceId); + this.updateById(visitInstance); + } + } } diff --git a/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java b/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java index e1a890ad..3071b3fd 100644 --- a/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.java +++ b/src/main/java/com/qs/serve/modules/bms/controller/BmsChannelPointController.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.CopierUtil; import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.StringUtils; @@ -14,6 +15,9 @@ import com.qs.serve.modules.bms.entity.BmsRegion; import com.qs.serve.modules.bms.entity.BmsRegion2; import com.qs.serve.modules.bms.entity.bo.BmsChannelPointBo; import com.qs.serve.modules.bms.entity.bo.BmsChannelPointMapInfoBo; +import com.qs.serve.modules.bms.entity.so.BmsPointVisitSo; +import com.qs.serve.modules.bms.entity.vo.BmsUserPoint4VisitVo; +import com.qs.serve.modules.bms.mapper.BmsChannelPointMapper; import com.qs.serve.modules.bms.service.BmsChannelService; import com.qs.serve.modules.bms.service.BmsRegion2Service; import com.qs.serve.modules.bms.service.BmsRegionService; @@ -46,6 +50,21 @@ public class BmsChannelPointController { private BmsRegionService bmsRegionService; private BmsRegion2Service bmsRegion2Service; private TbsActivityChannelPointService activityChannelPointService; + private BmsChannelPointMapper channelPointMapper; + + /** + * 获取我负责的网点 + * @param param + * @return + */ + @GetMapping("/page4Visit") + public R> getPage4Visit(BmsPointVisitSo param){ + String sysUserId = AuthContextUtils.getSysUserId(); + param.setUserId(sysUserId); + PageUtil.startPage(); + List list = channelPointMapper.selectUserPointList4Visit(param); + return R.byPageHelperList(list); + } /** * 翻页 diff --git a/src/main/java/com/qs/serve/modules/bms/entity/so/BmsPointVisitSo.java b/src/main/java/com/qs/serve/modules/bms/entity/so/BmsPointVisitSo.java new file mode 100644 index 00000000..4b379501 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/so/BmsPointVisitSo.java @@ -0,0 +1,23 @@ +package com.qs.serve.modules.bms.entity.so; + +import lombok.Data; + +/** + * @author YenHex + * @since 2023/4/7 + */ +@Data +public class BmsPointVisitSo { + + String pointCode; + + String pointName; + + Double localY; + + Double localX; + + /** 忽略这个参数,后端设值 */ + String userId; + +} diff --git a/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsUserPoint4VisitVo.java b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsUserPoint4VisitVo.java new file mode 100644 index 00000000..1075078e --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/vo/BmsUserPoint4VisitVo.java @@ -0,0 +1,29 @@ +package com.qs.serve.modules.bms.entity.vo; + +import com.qs.serve.modules.bms.entity.BmsMasterUser; +import lombok.Data; + +/** + * @author YenHex + * @since 2022/11/11 + */ +@Data +public class BmsUserPoint4VisitVo { + + /** 网点id */ + String pointId; + + /** 网点编码 */ + String pointCode; + + /** 网点名称 */ + String pointName; + + /** 地址*/ + String address; + + /** 距离 */ + Double distance; + + +} diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java index bc40a862..d7015c6d 100644 --- a/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java +++ b/src/main/java/com/qs/serve/modules/bms/mapper/BmsChannelPointMapper.java @@ -5,6 +5,8 @@ import java.util.List; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.qs.serve.modules.bms.entity.BmsChannelPoint; +import com.qs.serve.modules.bms.entity.so.BmsPointVisitSo; +import com.qs.serve.modules.bms.entity.vo.BmsUserPoint4VisitVo; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Update; @@ -25,5 +27,8 @@ public interface BmsChannelPointMapper extends BaseMapper { List selectChannelPointList(@Param("query") BmsChannelPoint channelPoint); + + List selectUserPointList4Visit(@Param("query") BmsPointVisitSo param); + } diff --git a/src/main/java/com/qs/serve/modules/bms/mapper/BmsMasterUserMapper.java b/src/main/java/com/qs/serve/modules/bms/mapper/BmsMasterUserMapper.java index 51b69863..8962321d 100644 --- a/src/main/java/com/qs/serve/modules/bms/mapper/BmsMasterUserMapper.java +++ b/src/main/java/com/qs/serve/modules/bms/mapper/BmsMasterUserMapper.java @@ -23,6 +23,7 @@ public interface BmsMasterUserMapper extends BaseMapper { */ List selectChannelMasterUserList(@Param("query") BmsMasterUserChannelVo userChannel); + /** * 查询站点负责人 * @param userChannel diff --git a/src/main/resources/mapper/bms/BmsChannelPointMapper.xml b/src/main/resources/mapper/bms/BmsChannelPointMapper.xml index 540e5a06..dff268b3 100644 --- a/src/main/resources/mapper/bms/BmsChannelPointMapper.xml +++ b/src/main/resources/mapper/bms/BmsChannelPointMapper.xml @@ -93,4 +93,9 @@ ORDER BY `bms_channel_point`.`create_time` DESC + +