From 2dacd27b7e8ed4f8022aebaf898f1a99fa56e3e5 Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 7 Apr 2023 15:17:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=9C=E8=AE=BF=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../qs/serve/common/model/dto/TargetDTO.java | 16 ++ ...rgetType.java => BazTargetTypeConsts.java} | 2 +- .../baz/controller/BazVisitController.java | 20 +- .../controller/BazVisitFlowController.java | 10 + .../BazVisitInstanceController.java | 39 ++-- .../BazVisitInstanceFlowController.java | 126 +++++++++++ .../my/BazMyVisitInstanceController.java | 95 +++++++++ .../modules/baz/entity/BazVisitFlow.java | 8 +- .../modules/baz/entity/BazVisitInstance.java | 26 ++- .../baz/entity/BazVisitInstanceFlow.java | 197 ++++++++++++++++++ .../entity/bo/BazCreateVisitInstanceBo.java | 41 ++++ .../modules/baz/entity/bo/BazVisitFlowBo.java | 1 - .../baz/entity/bo/BazVisitInstanceBo.java | 107 ---------- .../baz/entity/bo/BazVisitInstanceFlowBo.java | 63 ++++++ .../baz/entity/so/BazVisitInstanceFlowSo.java | 90 ++++++++ .../mapper/BazVisitInstanceFlowMapper.java | 14 ++ .../service/BazVisitInstanceFlowService.java | 14 ++ .../baz/service/BazVisitInstanceService.java | 6 + .../service/impl/BazVisitFlowServiceImpl.java | 14 +- .../impl/BazVisitInstanceFlowServiceImpl.java | 22 ++ .../impl/BazVisitInstanceServiceImpl.java | 92 ++++++++ .../controller/BmsChannelPointController.java | 13 ++ .../modules/bms/entity/BmsChannelPoint.java | 12 ++ .../bms/entity/bo/BmsChannelPointBo.java | 12 ++ .../entity/bo/BmsChannelPointMapInfoBo.java | 35 ++++ 25 files changed, 919 insertions(+), 156 deletions(-) create mode 100644 src/main/java/com/qs/serve/common/model/dto/TargetDTO.java rename src/main/java/com/qs/serve/modules/baz/common/{BazTargetType.java => BazTargetTypeConsts.java} (79%) create mode 100644 src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceFlowController.java create mode 100644 src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java create mode 100644 src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java create mode 100644 src/main/java/com/qs/serve/modules/baz/entity/bo/BazCreateVisitInstanceBo.java delete mode 100644 src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceBo.java create mode 100644 src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceFlowBo.java create mode 100644 src/main/java/com/qs/serve/modules/baz/entity/so/BazVisitInstanceFlowSo.java create mode 100644 src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInstanceFlowMapper.java create mode 100644 src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceFlowService.java create mode 100644 src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceFlowServiceImpl.java create mode 100644 src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointMapInfoBo.java diff --git a/src/main/java/com/qs/serve/common/model/dto/TargetDTO.java b/src/main/java/com/qs/serve/common/model/dto/TargetDTO.java new file mode 100644 index 00000000..15b38b96 --- /dev/null +++ b/src/main/java/com/qs/serve/common/model/dto/TargetDTO.java @@ -0,0 +1,16 @@ +package com.qs.serve.common.model.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author YenHex + * @since 2023/4/7 + */ +@Data +@AllArgsConstructor +public class TargetDTO { + String targetId; + String targetCode; + String targetName; +} diff --git a/src/main/java/com/qs/serve/modules/baz/common/BazTargetType.java b/src/main/java/com/qs/serve/modules/baz/common/BazTargetTypeConsts.java similarity index 79% rename from src/main/java/com/qs/serve/modules/baz/common/BazTargetType.java rename to src/main/java/com/qs/serve/modules/baz/common/BazTargetTypeConsts.java index 21ac903b..5ea69fce 100644 --- a/src/main/java/com/qs/serve/modules/baz/common/BazTargetType.java +++ b/src/main/java/com/qs/serve/modules/baz/common/BazTargetTypeConsts.java @@ -4,7 +4,7 @@ package com.qs.serve.modules.baz.common; * @author YenHex * @since 2023/4/7 */ -public interface BazTargetType { +public interface BazTargetTypeConsts { String POINT = "point"; String CUSTOMER = "customer"; 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 2baaf26f..4c6d241f 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 @@ -9,6 +9,8 @@ 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 com.qs.serve.modules.baz.entity.BazVisitFlow; +import com.qs.serve.modules.baz.service.BazVisitFlowService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; @@ -33,6 +35,8 @@ public class BazVisitController { private BazVisitService bazVisitService; + private BazVisitFlowService bazVisitFlowService; + /** * 列表 * @param param @@ -41,11 +45,25 @@ public class BazVisitController { @GetMapping("/list") public R> getList(BazVisit param){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); - PageUtil.startPage(); List list = bazVisitService.list(lqw); return R.ok(list); } + /** + * 获取第一个流程 + * @param visitId + * @return + */ + @GetMapping("/getFirstFlow/{visitId}") + @SysLog(module = SystemModule.BAZ, title = "拜访流程", biz = BizType.QUERY) + public R getFirstFlow(@PathVariable("visitId") String visitId){ + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BazVisitFlow::getFlowSort,1); + lqw.eq(BazVisitFlow::getVisitId,visitId); + BazVisitFlow bazVisitFlow = bazVisitFlowService.getOne(lqw,false); + return R.ok(bazVisitFlow); + } + /** * 翻页 * @param param diff --git a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitFlowController.java b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitFlowController.java index df1b3555..4628a1b1 100644 --- a/src/main/java/com/qs/serve/modules/baz/controller/BazVisitFlowController.java +++ b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitFlowController.java @@ -10,6 +10,8 @@ import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.CopierUtil; import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.baz.entity.bo.BazVisitFlowSortBo; +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; @@ -36,6 +38,7 @@ import java.util.List; public class BazVisitFlowController { private BazVisitFlowService bazVisitFlowService; + private BmsSupplierVisitFormService visitFormService; /** * 列表 @@ -75,9 +78,16 @@ public class BazVisitFlowController { @SysLog(module = SystemModule.BAZ, title = "拜访流程", biz = BizType.QUERY) public R getById(@PathVariable("id") String id){ BazVisitFlow bazVisitFlow = bazVisitFlowService.getById(id); + if(bazVisitFlow.getFormId()!=null&&!bazVisitFlow.getFormId().equals(0L)){ + BmsSupplierVisitForm visitForm = visitFormService.getById(bazVisitFlow.getFormId()); + bazVisitFlow.setFormInfo(visitForm); + }else { + bazVisitFlow.setFormId(null); + } return R.ok(bazVisitFlow); } + /** * 更新 * @param param 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 069c216e..6031838e 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 @@ -9,13 +9,14 @@ 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 com.qs.serve.modules.baz.entity.BazVisitInstanceFlow; +import com.qs.serve.modules.baz.service.BazVisitInstanceFlowService; 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.BazVisitInstanceSo; -import com.qs.serve.modules.baz.entity.bo.BazVisitInstanceBo; import com.qs.serve.modules.baz.entity.BazVisitInstance; import com.qs.serve.modules.baz.service.BazVisitInstanceService; @@ -34,21 +35,7 @@ import java.util.List; public class BazVisitInstanceController { private BazVisitInstanceService bazVisitInstanceService; - - /** - * 列表 - * @param param - * @return - */ - //@GetMapping("/list") - @PreAuthorize("hasRole('baz:visitInstance:query')") - public R> getList(BazVisitInstanceSo param){ - BazVisitInstance entity = CopierUtil.copy(param,new BazVisitInstance()); - LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); - PageUtil.startPage(); - List list = bazVisitInstanceService.list(lqw); - return R.ok(list); - } + private BazVisitInstanceFlowService bazVisitInstanceFlowService; /** * 翻页 @@ -60,6 +47,7 @@ public class BazVisitInstanceController { BazVisitInstance entity = CopierUtil.copy(param,new BazVisitInstance()); LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); PageUtil.startPage(); + lqw.orderByDesc(BazVisitInstance::getCreateTime); List list = bazVisitInstanceService.list(lqw); return R.byPageHelperList(list); } @@ -73,21 +61,23 @@ public class BazVisitInstanceController { @SysLog(module = SystemModule.BAZ, title = "拜访实例", biz = BizType.QUERY) public R getById(@PathVariable("id") String id){ BazVisitInstance bazVisitInstance = bazVisitInstanceService.getById(id); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.eq(BazVisitInstanceFlow::getVisitInstanceId,id); + List flowList = bazVisitInstanceFlowService.list(lqw); + bazVisitInstance.setFlowList(flowList); return R.ok(bazVisitInstance); } - /** * 更新 * @param param * @return */ - @PostMapping("/updateById") + //@PostMapping("/updateById") @SysLog(module = SystemModule.BAZ, title = "拜访实例", biz = BizType.UPDATE) - public R updateById(@RequestBody @Valid BazVisitInstanceBo param){ - BazVisitInstance entity = CopierUtil.copy(param,new BazVisitInstance()); - boolean result = bazVisitInstanceService.updateById(entity); + public R updateById(@RequestBody @Valid BazVisitInstance param){ + boolean result = bazVisitInstanceService.updateById(param); return R.isTrue(result); } @@ -96,11 +86,10 @@ public class BazVisitInstanceController { * @param param * @return */ - @PostMapping("/save") + //@PostMapping("/save") @SysLog(module = SystemModule.BAZ, title = "拜访实例", biz = BizType.INSERT) - public R save(@RequestBody @Valid BazVisitInstanceBo param){ - BazVisitInstance entity = CopierUtil.copy(param,new BazVisitInstance()); - boolean result = bazVisitInstanceService.save(entity); + public R save(@RequestBody @Valid BazVisitInstance param){ + boolean result = bazVisitInstanceService.save(param); return R.isTrue(result); } 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 new file mode 100644 index 00000000..67caf80a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/baz/controller/BazVisitInstanceFlowController.java @@ -0,0 +1,126 @@ +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 new file mode 100644 index 00000000..11b85db2 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/baz/controller/my/BazMyVisitInstanceController.java @@ -0,0 +1,95 @@ +package com.qs.serve.modules.baz.controller.my; + +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.AuthContextUtils; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.PageUtil; +import com.qs.serve.common.util.StringUtils; +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 com.qs.serve.modules.baz.service.BazVisitInstanceService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 拜访模块 拜访实例(我的) + * @author YenHex + * @since 2023-04-07 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("baz/myVisitInstance") +public class BazMyVisitInstanceController { + + private BazVisitInstanceService bazVisitInstanceService; + + /** + * 翻页 + * @param param + * @return + */ + @GetMapping("/page") + public R> getPage(BazVisitInstanceSo param){ + BazVisitInstance entity = CopierUtil.copy(param,new BazVisitInstance()); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(entity); + PageUtil.startPage(); + lqw.eq(BazVisitInstance::getVisitorId, AuthContextUtils.getSysUserId()); + lqw.orderByDesc(BazVisitInstance::getCreateTime); + List list = bazVisitInstanceService.list(lqw); + return R.byPageHelperList(list); + } + + /** + * 创建流程 + * @param param + * @return + */ + @PostMapping("/create") + @SysLog(module = SystemModule.BAZ, title = "拜访实例", biz = BizType.INSERT) + public R save(@RequestBody @Valid BazCreateVisitInstanceBo param){ + BazVisitInstance result = bazVisitInstanceService.create(param); + return R.ok(result); + } + + /** + * 提交流程 + * @param param + * @return + */ + @PostMapping("/submitFlow") + @SysLog(module = SystemModule.BAZ, title = "拜访实例", biz = BizType.INSERT) + public R save(@RequestBody @Valid BazVisitInstanceFlowBo param){ + bazVisitInstanceService.submit(param); + return R.ok(); + } + + /** + * 删除 + * @param ids + * @return + */ + @DeleteMapping("/deleteById/{ids}") + @SysLog(module = SystemModule.BAZ, title = "拜访实例", biz = BizType.DELETE) + public R deleteById(@PathVariable("ids") String ids){ + List idsLong = StringUtils.splitIdLong(ids); + LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); + lqw.in(BazVisitInstance::getId,idsLong); + lqw.eq(BazVisitInstance::getVisitorId, AuthContextUtils.getSysUserId()); + boolean result = bazVisitInstanceService.remove(lqw); + return R.isTrue(result); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitFlow.java b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitFlow.java index 6d0c2388..88f10c2a 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitFlow.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitFlow.java @@ -36,6 +36,9 @@ public class BazVisitFlow implements Serializable { @NotNull(message = "拜访id不能为空") private Long visitId; + /** 拜访名称 */ + private String visitName; + /** 目标类型 */ @NotBlank(message = "目标类型不能为空") @Length(max = 255,message = "目标类型长度不能超过255字") @@ -47,7 +50,6 @@ public class BazVisitFlow implements Serializable { private String flowTitle; /** 排序 */ - @NotNull(message = "排序不能为空") private Integer flowSort; /** 是否可忽略 */ @@ -62,7 +64,7 @@ public class BazVisitFlow implements Serializable { @NotNull(message = "是否拍照不能为空") private Integer photoState; - /** 表单id */ + /** 表单id (0表示空值)*/ @NotNull(message = "表单id不能为空") private Long formId; @@ -100,6 +102,8 @@ public class BazVisitFlow implements Serializable { @TableField(fill = FieldFill.UPDATE) private String updateBy; + @TableField(exist = false) + private Object formInfo; public static BazVisitFlow toNewObject(BazVisitFlowBo source){ BazVisitFlow visitFlow = new BazVisitFlow(); diff --git a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java index dba6ab6c..505986b9 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstance.java @@ -9,12 +9,15 @@ 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.model.dto.TargetDTO; +import com.qs.serve.modules.sys.entity.SysUser; 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; +import java.util.List; /** * 拜访实例 实体类 @@ -112,20 +115,21 @@ public class BazVisitInstance implements Serializable { @TableField(fill = FieldFill.UPDATE) private String updateBy; + @TableField(exist = false) + private List flowList; - public static BazVisitInstance toNewObject(BazVisitInstance source){ + public static BazVisitInstance toNewObject(BazVisit source, TargetDTO targetDTO, SysUser sysUser){ BazVisitInstance visitInstance = new BazVisitInstance(); - visitInstance.setId(source.getId()); - visitInstance.setTitle(source.getTitle()); - visitInstance.setVisitId(source.getVisitId()); + //visitInstance.setTitle(source.getTitle()); + visitInstance.setVisitId(source.getId()); visitInstance.setTargetType(source.getTargetType()); - visitInstance.setVisitState(source.getVisitState()); - visitInstance.setVisitorId(source.getVisitorId()); - visitInstance.setVisitorCode(source.getVisitorCode()); - visitInstance.setVisitorName(source.getVisitorName()); - visitInstance.setTargetId(source.getTargetId()); - visitInstance.setTargetCode(source.getTargetCode()); - visitInstance.setTargetName(source.getTargetName()); + visitInstance.setVisitState(0); + visitInstance.setVisitorId(sysUser.getId()); + visitInstance.setVisitorCode(sysUser.getCode()); + visitInstance.setVisitorName(sysUser.getName()); + visitInstance.setTargetId(targetDTO.getTargetId()); + visitInstance.setTargetCode(targetDTO.getTargetCode()); + visitInstance.setTargetName(targetDTO.getTargetName()); visitInstance.setRemark(source.getRemark()); visitInstance.setCreateTime(source.getCreateTime()); visitInstance.setUpdateTime(source.getUpdateTime()); 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 new file mode 100644 index 00000000..509e9044 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/baz/entity/BazVisitInstanceFlow.java @@ -0,0 +1,197 @@ +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 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.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-07 + */ +@Data +@TableName("baz_visit_instance_flow") +public class BazVisitInstanceFlow implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + /** 拜访实例id */ + @NotNull(message = "拜访实例id不能为空") + private Long visitInstanceId; + + /** 拜访id */ + @NotNull(message = "拜访id不能为空") + private Long visitId; + + /** 目标类型 */ + @NotBlank(message = "目标类型不能为空") + @Length(max = 255,message = "目标类型长度不能超过255字") + private String targetType; + + /** 目标id */ + @NotBlank(message = "目标id不能为空") + @Length(max = 255,message = "目标id长度不能超过255字") + private String targetId; + + /** 目标编码 */ + @Length(max = 255,message = "目标编码长度不能超过255字") + private String targetCode; + + /** 目标名称 */ + @NotBlank(message = "目标名称不能为空") + @Length(max = 255,message = "目标名称长度不能超过255字") + private String targetName; + + /** 目标地址id */ + @Length(max = 255,message = "目标地址id长度不能超过255字") + private String targetAddressId; + + /** 流程名称 */ + @NotBlank(message = "流程名称不能为空") + @Length(max = 255,message = "流程名称长度不能超过255字") + private String flowTitle; + + /** 排序 */ + private Integer flowSort; + + /** 是否可忽略当前流程 */ + private Integer ignoreFlag; + + /** 是否定位 */ + private Integer positionState; + + /** 是否拍照 */ + private Integer photoState; + + /** 表单id(0表示空值) */ + private Long formId; + + /** 表单Json */ + @Length(max = 0,message = "表单Json长度不能超过0字") + private String formJson; + + /** 输入值 */ + @Length(max = 255,message = "输入值长度不能超过255字") + private String valInputValue; + + /** 地图地址 */ + private String mapAddress; + + /** 纬度 */ + @Length(max = 255,message = "纬度长度不能超过255字") + private String valLocalX; + + /** 经度 */ + @Length(max = 255,message = "经度长度不能超过255字") + private String valLocalY; + + /** 拍照图片地址 */ + @Length(max = 4000,message = "拍照图片地址长度不能超过4000字") + private String valPhotoUrls; + + /** 表单填写json */ + @Length(max = 0,message = "表单填写json长度不能超过0字") + private String valFormValue; + + /** 拜访人id */ + @NotBlank(message = "拜访人id不能为空") + @Length(max = 255,message = "拜访人id长度不能超过255字") + private String visitorId; + + /** 拜访人编码 */ + @NotBlank(message = "拜访人编码不能为空") + @Length(max = 255,message = "拜访人编码长度不能超过255字") + private String visitorCode; + + /** 拜访人 */ + @NotBlank(message = "拜访人不能为空") + @Length(max = 255,message = "拜访人长度不能超过255字") + private String visitorName; + + /** 备注 */ + @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 BazVisitInstanceFlow toNewObject(BazVisitFlow source, TargetDTO targetDTO, SysUser user){ + BazVisitInstanceFlow visitInstanceFlow = new BazVisitInstanceFlow(); + visitInstanceFlow.setVisitId(source.getVisitId()); + visitInstanceFlow.setTargetType(source.getTargetType()); + visitInstanceFlow.setTargetId(targetDTO.getTargetId()); + visitInstanceFlow.setTargetCode(targetDTO.getTargetCode()); + visitInstanceFlow.setTargetName(targetDTO.getTargetName()); + visitInstanceFlow.setFlowTitle(source.getFlowTitle()); + visitInstanceFlow.setFlowSort(source.getFlowSort()); + visitInstanceFlow.setIgnoreFlag(source.getIgnoreFlag()); + visitInstanceFlow.setPositionState(source.getPositionState()); + visitInstanceFlow.setPhotoState(source.getPhotoState()); + visitInstanceFlow.setFormId(source.getFormId()); + visitInstanceFlow.setVisitorId(user.getId()); + visitInstanceFlow.setVisitorCode(user.getCode()); + visitInstanceFlow.setVisitorName(user.getName()); + return visitInstanceFlow; + } + + + public void initInputValues(BazVisitInstanceFlowBo source){ + this.setTargetAddressId(source.getTargetAddressId()); + //this.setFormJson(source.getFormJson()); + this.setValInputValue(source.getValInputValue()); + this.setValLocalX(source.getValLocalX()); + this.setValLocalY(source.getValLocalY()); + this.setValPhotoUrls(source.getValPhotoUrls()); + this.setValFormValue(source.getValFormValue()); + this.setMapAddress(source.getMapAddress()); + } + +} + diff --git a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazCreateVisitInstanceBo.java b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazCreateVisitInstanceBo.java new file mode 100644 index 00000000..3821cdf4 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazCreateVisitInstanceBo.java @@ -0,0 +1,41 @@ +package com.qs.serve.modules.baz.entity.bo; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +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; + +/** + * 拜访实例 Bo + * @author YenHex + * @since 2023-04-07 + */ +@Data +public class BazCreateVisitInstanceBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 拜访类型id */ + @NotNull(message = "拜访类型id不能为空") + private Long visitId; + + /** 目标id */ + @NotBlank(message = "目标id不能为空") + @Length(max = 255,message = "目标id长度不能超过255字") + private String targetId; + + /** 首次提交信息对象 */ + private BazVisitInstanceFlowBo firstFlowSubmit; + +} + diff --git a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitFlowBo.java b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitFlowBo.java index 601fde23..9aae8116 100644 --- a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitFlowBo.java +++ b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitFlowBo.java @@ -54,7 +54,6 @@ public class BazVisitFlowBo implements Serializable { private Integer photoState; /** 表单id */ - @NotNull(message = "表单id不能为空") private Long formId; /** 备注 */ diff --git a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceBo.java b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceBo.java deleted file mode 100644 index 1c89eb51..00000000 --- a/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceBo.java +++ /dev/null @@ -1,107 +0,0 @@ -package com.qs.serve.modules.baz.entity.bo; - -import java.time.LocalDate; -import java.io.Serializable; -import java.math.BigDecimal; -import java.time.LocalDateTime; - -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; - -/** - * 拜访实例 Bo - * @author YenHex - * @since 2023-04-07 - */ -@Data -public class BazVisitInstanceBo implements Serializable { - - private static final long serialVersionUID = 1L; - - /** id */ - private Long id; - - /** 标题 */ - @NotBlank(message = "标题不能为空") - @Length(max = 255,message = "标题长度不能超过255字") - private String title; - - /** 拜访类型id */ - @NotNull(message = "拜访类型id不能为空") - private Long visitId; - - /** 目标类型 */ - @NotBlank(message = "目标类型不能为空") - @Length(max = 255,message = "目标类型长度不能超过255字") - private String targetType; - - /** 拜访状态:0-进行中;1-完成 */ - @NotNull(message = "拜访状态:0-进行中;1-完成不能为空") - private Integer visitState; - - /** 拜访人id */ - @NotBlank(message = "拜访人id不能为空") - @Length(max = 255,message = "拜访人id长度不能超过255字") - private String visitorId; - - /** 拜访人编码 */ - @NotBlank(message = "拜访人编码不能为空") - @Length(max = 255,message = "拜访人编码长度不能超过255字") - private String visitorCode; - - /** 拜访人 */ - @NotBlank(message = "拜访人不能为空") - @Length(max = 255,message = "拜访人长度不能超过255字") - private String visitorName; - - /** 目标id */ - @NotBlank(message = "目标id不能为空") - @Length(max = 255,message = "目标id长度不能超过255字") - private String targetId; - - /** 目标i编码 */ - @Length(max = 255,message = "目标i编码长度不能超过255字") - private String targetCode; - - /** 目标名称 */ - @NotBlank(message = "目标名称不能为空") - @Length(max = 255,message = "目标名称长度不能超过255字") - private String targetName; - - /** 备注 */ - @Length(max = 255,message = "备注长度不能超过255字") - private String remark; - - /** 创建时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime createTime; - - /** 最后更新时间 */ - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime updateTime; - - /** 所属租户 */ - @JsonIgnore - @JsonProperty - private String tenantId; - - /** 逻辑删除标记(0:显示;1:隐藏) */ - @JsonIgnore - @JsonProperty - private String delFlag; - - /** 创建人 */ - private String createBy; - - /** 更新人 */ - private String updateBy; - -} - 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 new file mode 100644 index 00000000..a799eb42 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/baz/entity/bo/BazVisitInstanceFlowBo.java @@ -0,0 +1,63 @@ +package com.qs.serve.modules.baz.entity.bo; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +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; + +/** + * 拜访实例流程 Bo + * @author YenHex + * @since 2023-04-07 + */ +@Data +public class BazVisitInstanceFlowBo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** 实例的流程id(首次提交可忽略) */ + @NotNull(message = "拜访实例id不能为空") + private Long instanceFlowId; + + /** 目标地址id(用不上可忽略) */ + @Length(max = 255,message = "目标地址id长度不能超过255字") + private String targetAddressId; + + /** 输入值(用不上可忽略) */ + private String valInputValue; + + /** 地图地址 */ + private String mapAddress; + + /** 纬度 */ + @Length(max = 255,message = "纬度长度不能超过255字") + private String valLocalX; + + /** 经度 */ + @Length(max = 255,message = "经度长度不能超过255字") + private String valLocalY; + + /** 拍照图片地址 */ + @Length(max = 4000,message = "拍照图片地址长度不能超过4000字") + private String valPhotoUrls; + + /** 表单填写json */ + @Length(max = 0,message = "表单填写json长度不能超过0字") + private String valFormValue; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + +} + diff --git a/src/main/java/com/qs/serve/modules/baz/entity/so/BazVisitInstanceFlowSo.java b/src/main/java/com/qs/serve/modules/baz/entity/so/BazVisitInstanceFlowSo.java new file mode 100644 index 00000000..c93828dc --- /dev/null +++ b/src/main/java/com/qs/serve/modules/baz/entity/so/BazVisitInstanceFlowSo.java @@ -0,0 +1,90 @@ +package com.qs.serve.modules.baz.entity.so; + +import java.time.LocalDate; +import java.io.Serializable; +import java.math.BigDecimal; +import java.time.LocalDateTime; + +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-07 + */ +@Data +public class BazVisitInstanceFlowSo implements Serializable { + + private static final long serialVersionUID = 1L; + + /** id */ + private Long id; + + /** 拜访实例id */ + private Long visitInstanceId; + + /** 拜访id */ + private Long visitId; + + /** 目标id */ + private String targetId; + + /** 目标编码 */ + private String targetCode; + + /** 目标名称 */ + private String targetName; + + /** 目标地址id */ + private String targetAddressId; + + /** 流程名称 */ + private String flowTitle; + + /** 排序 */ + private Integer flowSort; + + /** 是否可忽略当前流程 */ + private Integer ignoreFlag; + + /** 是否定位 */ + private Integer positionState; + + /** 是否拍照 */ + private Integer photoState; + + /** 表单id(0表示空值) */ + private Long formId; + + /** 表单Json */ + private String formJson; + + /** 输入值 */ + private String valInputValue; + + /** 纬度 */ + private String valLocalX; + + /** 经度 */ + private String valLocalY; + + /** 拍照图片地址 */ + private String valPhotoUrls; + + /** 表单填写json */ + private String valFormValue; + + /** 备注 */ + private String remark; + + +} + diff --git a/src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInstanceFlowMapper.java b/src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInstanceFlowMapper.java new file mode 100644 index 00000000..1dd198f0 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/baz/mapper/BazVisitInstanceFlowMapper.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.BazVisitInstanceFlow; + +/** + * 拜访实例流程 Mapper + * @author YenHex + * @date 2023-04-07 + */ +public interface BazVisitInstanceFlowMapper extends BaseMapper { + +} + diff --git a/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceFlowService.java b/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceFlowService.java new file mode 100644 index 00000000..6009d178 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/baz/service/BazVisitInstanceFlowService.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.BazVisitInstanceFlow; + +/** + * 拜访实例流程 服务接口 + * @author YenHex + * @date 2023-04-07 + */ +public interface BazVisitInstanceFlowService extends IService { + +} + 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 3d243502..5b5a6356 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 @@ -2,6 +2,8 @@ package com.qs.serve.modules.baz.service; 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; /** * 拜访实例 服务接口 @@ -10,5 +12,9 @@ import com.qs.serve.modules.baz.entity.BazVisitInstance; */ public interface BazVisitInstanceService extends IService { + BazVisitInstance create(BazCreateVisitInstanceBo param); + + void submit(BazVisitInstanceFlowBo param); + } diff --git a/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitFlowServiceImpl.java b/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitFlowServiceImpl.java index d9b367fe..08ae780c 100644 --- a/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitFlowServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitFlowServiceImpl.java @@ -29,20 +29,18 @@ public class BazVisitFlowServiceImpl extends ServiceImpl lqwCount = new LambdaQueryWrapper<>(); lqwCount.eq(BazVisitFlow::getVisitId,param.getVisitId()); - Long count = this.count(lqwCount); - entity.setFlowSort(count.intValue()+1); + if(id==null){ + Long count = this.count(lqwCount); + entity.setFlowSort(count.intValue()+1); + } this.saveOrUpdate(entity); return entity; } diff --git a/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceFlowServiceImpl.java b/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceFlowServiceImpl.java new file mode 100644 index 00000000..e98853a2 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/baz/service/impl/BazVisitInstanceFlowServiceImpl.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.BazVisitInstanceFlow; +import com.qs.serve.modules.baz.service.BazVisitInstanceFlowService; +import com.qs.serve.modules.baz.mapper.BazVisitInstanceFlowMapper; + +/** + * 拜访实例流程 服务实现类 + * @author YenHex + * @since 2023-04-07 + */ +@Slf4j +@Service +@AllArgsConstructor +public class BazVisitInstanceFlowServiceImpl extends ServiceImpl implements BazVisitInstanceFlowService { + +} + 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 7bbe1310..d07a879a 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 @@ -1,6 +1,28 @@ package com.qs.serve.modules.baz.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.modules.baz.common.BazTargetTypeConsts; +import com.qs.serve.modules.baz.entity.BazVisit; +import com.qs.serve.modules.baz.entity.BazVisitFlow; +import com.qs.serve.modules.baz.entity.BazVisitInstanceFlow; +import com.qs.serve.modules.baz.entity.bo.BazCreateVisitInstanceBo; +import com.qs.serve.modules.baz.entity.bo.BazVisitInstanceFlowBo; +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.mapper.BmsChannelPointMapper; +import com.qs.serve.modules.bms.mapper.BmsSupplierMapper; +import com.qs.serve.modules.bms.mapper.BmsSupplierVisitFormMapper; +import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.mapper.SysUserMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -8,6 +30,8 @@ import com.qs.serve.modules.baz.entity.BazVisitInstance; import com.qs.serve.modules.baz.service.BazVisitInstanceService; import com.qs.serve.modules.baz.mapper.BazVisitInstanceMapper; +import java.util.ArrayList; +import java.util.List; /** * 拜访实例 服务实现类 * @author YenHex @@ -18,5 +42,73 @@ import com.qs.serve.modules.baz.mapper.BazVisitInstanceMapper; @AllArgsConstructor public class BazVisitInstanceServiceImpl extends ServiceImpl implements BazVisitInstanceService { + BmsChannelPointMapper pointMapper; + BmsSupplierMapper supplierMapper; + SysUserMapper sysUserMapper; + BmsSupplierVisitFormMapper visitFormMapper; + BazVisitInstanceFlowService instanceFlowService; + BazVisitFlowMapper flowMapper; + BazVisitMapper visitMapper; + + @Override + public BazVisitInstance create(BazCreateVisitInstanceBo param) { + SysUser sysUser = sysUserMapper.selectById(AuthContextUtils.getSysUserId()); + BazVisit bazVisit = visitMapper.selectById(param.getVisitId()); + LambdaQueryWrapper flowLqw = new LambdaQueryWrapper<>(); + flowLqw.eq(BazVisitFlow::getVisitId,param.getVisitId()); + flowLqw.orderByAsc(BazVisitFlow::getFlowSort); + List visitFlowList = flowMapper.selectList(flowLqw); + if(visitFlowList.size()<1){ + Assert.throwEx("未设置流程,请联系管理员"); + } + BazVisitInstanceFlowBo flowBo = param.getFirstFlowSubmit(); + String targetType = bazVisit.getTargetType(); + TargetDTO targetDTO = null; + if(targetType.equals(BazTargetTypeConsts.CUSTOMER)){ + BmsSupplier supplier = supplierMapper.selectById(param.getTargetId()); + targetDTO = new TargetDTO(supplier.getId(),supplier.getCode(),supplier.getName()); + }else if (targetType.equals(BazTargetTypeConsts.POINT)){ + BmsChannelPoint point = pointMapper.selectById(param.getTargetId()); + targetDTO = new TargetDTO(point.getId()+"",point.getPointCode(),point.getPointName()); + } + //构建实例 + BazVisitInstance visitInstance = BazVisitInstance.toNewObject(bazVisit,targetDTO,sysUser); + visitInstance.setTitle(""); + //构建流程 + + List instanceFlowList = new ArrayList<>(); + for (BazVisitFlow visitFlow : visitFlowList) { + BazVisitInstanceFlow instanceFlow = BazVisitInstanceFlow.toNewObject(visitFlow,targetDTO,sysUser); + instanceFlow.setVisitInstanceId(visitInstance.getId()); + //设置缓存表单JSON + if(instanceFlow.getFormId()!=null&&!instanceFlow.getFormId().equals(0L)){ + BmsSupplierVisitForm visitForm = visitFormMapper.selectById(instanceFlow.getFormId()); + instanceFlow.setFormJson(visitForm.getFormContext()); + } + if(instanceFlow.getFlowSort().equals(1)){ + instanceFlow.initInputValues(flowBo); + instanceFlow.setPhotoState(1); + } + instanceFlowList.add(instanceFlow); + } + + this.save(visitInstance); + for (BazVisitInstanceFlow instanceFlow : instanceFlowList) { + instanceFlow.setVisitInstanceId(visitInstance.getId()); + } + instanceFlowService.saveBatch(instanceFlowList); + return visitInstance; + } + + + @Override + public void submit(BazVisitInstanceFlowBo param) { + BazVisitInstanceFlow instanceFlow = new BazVisitInstanceFlow(); + instanceFlow.setId(param.getInstanceFlowId()); + instanceFlow.initInputValues(param); + instanceFlow.setPhotoState(1); + instanceFlowService.updateById(instanceFlow); + } + } 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 a2b6220d..e1a890ad 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 @@ -13,6 +13,7 @@ import com.qs.serve.modules.bms.entity.BmsChannel; 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.service.BmsChannelService; import com.qs.serve.modules.bms.service.BmsRegion2Service; import com.qs.serve.modules.bms.service.BmsRegionService; @@ -106,6 +107,18 @@ public class BmsChannelPointController { return R.isTrue(bmsChannelPointService.modify(param)); } + /** + * 更新地图信息 + * @param param + * @return + */ + @PostMapping("/updateMapInfo") + public R updateById(@RequestBody BmsChannelPointMapInfoBo param){ + BmsChannelPoint channelPoint = CopierUtil.copy(param,new BmsChannelPoint()); + bmsChannelPointService.updateById(channelPoint); + return R.ok(); + } + /** * 新增 * @param param diff --git a/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java b/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java index e0e4e68d..8d571605 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/BmsChannelPoint.java @@ -90,6 +90,18 @@ public class BmsChannelPoint implements Serializable { private String bizRegionPathIds; + /** 纬度 */ + @Length(max = 255,message = "纬度长度不能超过255字") + private String localX; + + /** 经度 */ + @Length(max = 255,message = "经度长度不能超过255字") + private String localY; + + /** 地图地址 */ + @Length(max = 255,message = "地图地址长度不能超过255字") + private String mapAddress; + /** 备注 */ @Length(max = 255,message = "备注长度不能超过255字") private String remark; diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointBo.java index 54483d26..d1c7d84e 100644 --- a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointBo.java +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointBo.java @@ -68,4 +68,16 @@ public class BmsChannelPointBo { /** 可投放费用标识 */ private Integer costFlag; + /** 纬度 */ + @Length(max = 255,message = "纬度长度不能超过255字") + private String localX; + + /** 经度 */ + @Length(max = 255,message = "经度长度不能超过255字") + private String localY; + + /** 地图地址 */ + @Length(max = 255,message = "地图地址长度不能超过255字") + private String mapAddress; + } diff --git a/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointMapInfoBo.java b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointMapInfoBo.java new file mode 100644 index 00000000..ac96e83a --- /dev/null +++ b/src/main/java/com/qs/serve/modules/bms/entity/bo/BmsChannelPointMapInfoBo.java @@ -0,0 +1,35 @@ +package com.qs.serve.modules.bms.entity.bo; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author YenHex + * @since 2022/11/7 + */ +@Data +public class BmsChannelPointMapInfoBo { + + /** id */ + @TableId(type = IdType.AUTO) + private Long id; + + + /** 纬度 */ + @Length(max = 255,message = "纬度长度不能超过255字") + private String localX; + + /** 经度 */ + @Length(max = 255,message = "经度长度不能超过255字") + private String localY; + + /** 地图地址 */ + @Length(max = 255,message = "地图地址长度不能超过255字") + private String mapAddress; + +}