From 9a0c42d3aae0303a45a48554e07f90f7f25438be Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 15 Nov 2024 11:57:58 +0800 Subject: [PATCH] =?UTF-8?q?opt:=2011/14=E6=8F=90=E4=BA=A4=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/thirty/ThirtyVisitController.java | 48 ++++++---- .../thirty/entity/VisitThemeThirtyParam.java | 85 ++++++++++++++---- .../modules/visit/api/VisitMainOuterApi.java | 88 ++++++++++++++----- .../visit/controller/VisitMainController.java | 37 ++++---- .../controller/VisitThemeController.java | 11 ++- .../serve/modules/visit/entity/VisitMain.java | 7 +- .../modules/visit/entity/VisitTheme.java | 14 +++ .../modules/visit/entity/vo/VisitMainVo.java | 32 +++++++ .../visit/service/VisitMainService.java | 11 ++- .../visit/service/VisitThemeService.java | 2 +- .../service/impl/VisitMainServiceImpl.java | 64 +++++++++++++- .../service/impl/VisitThemeServiceImpl.java | 26 +----- 12 files changed, 317 insertions(+), 108 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/thirty/ThirtyVisitController.java b/src/main/java/com/qs/serve/modules/thirty/ThirtyVisitController.java index 472fb4d..a889b99 100644 --- a/src/main/java/com/qs/serve/modules/thirty/ThirtyVisitController.java +++ b/src/main/java/com/qs/serve/modules/thirty/ThirtyVisitController.java @@ -8,6 +8,7 @@ import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.CodeGenUtil; import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.StringUtils; import com.qs.serve.modules.sys.entity.SysDept; import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.service.SysDeptService; @@ -47,28 +48,41 @@ public class ThirtyVisitController { @PostMapping("/saveTheme") @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.INSERT) public R save(@RequestBody @Valid VisitThemeThirtyParam param){ - VisitTheme entity = CopierUtil.copy(param,new VisitTheme()); - SysUser sysUser = sysUserService.getByAccount(param.getUserCode()); + VisitTheme entity = new VisitTheme(); + entity.setId(param.getId()); + SysUser applyUser = sysUserService.getByAccount(param.getUserId()); + if(applyUser==null){ + return R.error("申请人的编码无效或未被收录"); + } + entity.setCreateBy(applyUser.getId()); + SysUser sysUser = sysUserService.getByAccount(param.getVisitEmpNo()); if(sysUser==null){ - return R.error("用户编码无效或未被收录"); + return R.error("拜访用户的编码无效或未被收录"); } entity.setUserId(sysUser.getId()); entity.setUserCode(sysUser.getCode()); - entity.setUserName(sysUser.getName()); - SysDept dept = sysDeptService.getOne(new LambdaQueryWrapper() - .eq(SysDept::getCode,param.getDeptCode()),false); - if(dept==null){ - return R.error("部门编码无效或未被收录"); + if(StringUtils.hasText(param.getVisitEmpName())){ + entity.setUserName(param.getVisitEmpName()); + }else { + entity.setUserName(sysUser.getName()); } - entity.setDeptId(dept.getId()); - entity.setDeptName(dept.getName()); - - entity.setThemeCode("TP"+ CodeGenUtil.getDataCode(CodeGenUtil.SourceDataKey.VISIT)); - entity.setUserId(sysUser.getId()); - entity.setUserCode(sysUser.getCode()); - entity.setUserName(sysUser.getName()); - - boolean result = visitThemeService.save(entity); + if(entity.getId()==null){ + if(StringUtils.hasText(param.getVisitCode())){ + entity.setThemeCode(param.getVisitCode()); + }else { + entity.setThemeCode("TP"+ CodeGenUtil.getDataCode(CodeGenUtil.SourceDataKey.VISIT)); + } + } + entity.setThemeTitle(param.getThemeTitle()); + entity.setDeptName(param.getDeptName()); + entity.setVisitCompany(param.getVisitCompany()); + entity.setVisitAddress(param.getVisitAddress()); + entity.setUserRoom(param.getUserRoom()); + entity.setVisitStartDate(param.getVisitStartDate()); + entity.setVisitEndDate(param.getVisitEndDate()); + entity.setSkipApprovalFlag(param.getIsNeedVerify()?0:1); + entity.setSkipMessageFlag(param.getIsNeedVerifyStatus()?0:1); + boolean result = visitThemeService.saveOrUpdate(entity); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/thirty/entity/VisitThemeThirtyParam.java b/src/main/java/com/qs/serve/modules/thirty/entity/VisitThemeThirtyParam.java index fb9af01..39f9ba8 100644 --- a/src/main/java/com/qs/serve/modules/thirty/entity/VisitThemeThirtyParam.java +++ b/src/main/java/com/qs/serve/modules/thirty/entity/VisitThemeThirtyParam.java @@ -18,36 +18,85 @@ import java.time.LocalDateTime; @Data public class VisitThemeThirtyParam { - /** 拜访主题 */ - @NotNull(message = "拜访主题不能为空") - private String themeTitle; + /** + * 用于更新 + */ + public String id; - /** 部门编码 */ - @NotNull(message = "部门昵称不能为空") - private String deptCode; + /** + * 拜访编号(非必须,系统自动生成,不支持更新) + */ + public String visitCode; + /** + * 拜访主题 + */ + @NotNull(message = "themeTitle is null") + public String themeTitle; - /** 用户编码 */ - @NotNull(message = "用户编码不能为空") - private String userCode; + /** + * 拜访部门 + */ + @NotNull(message = "deptName is null") + public String deptName; - /** 接待地点 */ - @NotNull(message = "接待地点不能为空") - private String userRoom; + /** + * 拜访地址 + */ + @NotNull(message = "visitAddress is null") + public String visitAddress; + + /** + * 拜访公司 + */ + @NotNull(message = "visitCompany is null") + public String visitCompany; + + /** + * 申请人工号(也是企业微信ID) + */ + @NotNull(message = "userId is null") + public String userId; + + /** + * 被拜访人工号 + */ + @NotNull(message = "visitEmpNo is null") + public String visitEmpNo; + + /** + * 被拜访人名称 + */ + @NotNull(message = "visitEmpName is null") + public String visitEmpName; + + /** + * 拜访接待地点 + */ + @NotNull(message = "userRoom is null") + public String userRoom; /** 来访开始时间 */ - @NotNull(message = "来访开始时间不能为空") + @NotNull(message = "visitStartDate is null") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime visitStartDate; /** 来访结束时间 */ - @NotNull(message = "来访结束时间不能为空") - @DateTimeFormat(pattern = "yyyy-MM-dd") + @NotNull(message = "visitEndDate is null") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime visitEndDate; - /** 备注 */ - @Length(max = 255,message = "备注长度不能超过255字") - private String remark; + /** + * 是否需要表单审批 true/false + */ + @NotNull(message = "isNeedVerify is null") + public Boolean isNeedVerify; + + /** + * 调用短信通知 true/false + */ + @NotNull(message = "isNeedVerifyStatus is null") + public Boolean isNeedVerifyStatus; } diff --git a/src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java b/src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java index 76b1900..875866d 100644 --- a/src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java +++ b/src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java @@ -2,6 +2,7 @@ package com.qs.serve.modules.visit.api; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.model.annotation.SysLog; +import com.qs.serve.common.model.consts.ResultFlag; import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.enums.BizType; @@ -18,6 +19,7 @@ import com.qs.serve.modules.wx.entity.WxUser; import com.qs.serve.modules.wx.service.WxUserService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; @@ -66,14 +68,8 @@ public class VisitMainOuterApi { @GetMapping("/getById/{id}") @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) public R getById(@PathVariable("id") String id){ - VisitMain visitMain = visitMainService.getById(id); - VisitTheme visitTheme = visitThemeService.getById(visitMain.getThemeId()); - VisitMainVo mainVo = CopierUtil.copy(visitMain,new VisitMainVo()); - if(visitTheme!=null){ - mainVo.setThemeTitle(visitTheme.getThemeTitle()); - mainVo.setThemeCode(visitTheme.getThemeCode()); - } - return R.ok(mainVo); + VisitMainVo visitMain = visitMainService.getDetail(id); + return R.ok(visitMain); } /** @@ -85,7 +81,6 @@ public class VisitMainOuterApi { @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) public R getByThemeId_old(@PathVariable("id") String id){ WxUser wxUser = wxUserService.getCurrentWxUser(); - VisitMain dbMain = visitMainService.getOne(new LambdaQueryWrapper() .eq(VisitMain::getThemeId,id) .eq(VisitMain::getVisitorId,wxUser.getId()), @@ -107,10 +102,28 @@ public class VisitMainOuterApi { */ @GetMapping("/getThemeById/{id}") @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) - public R getByThemeId(@PathVariable("id") String id){ + public R getByThemeId(@PathVariable("id") String id){ VisitTheme visitTheme = visitThemeService.getById(id); - VisitMainVo mainVo = CopierUtil.copy(visitTheme,new VisitMainVo()); - return R.ok(mainVo); + return R.ok(visitTheme); + } + + /** + * ID查询并校验是否可填写(查询主题id) + * @param id + * @return + */ + @GetMapping("/validThemeById/{id}") + @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) + public R getThemeAndValidById(@PathVariable("id") String id){ + VisitTheme visitTheme = visitThemeService.getById(id); + LocalDateTime nowTime = LocalDateTime.now(); + if(nowTime.isBefore(visitTheme.getCodeStartDate())){ + return R.ok(false,"登记时间未开始"); + } + if(nowTime.isAfter(visitTheme.getCodeEndDate())){ + return R.ok(false,"已结束登记"); + } + return R.ok(true); } /** @@ -154,6 +167,7 @@ public class VisitMainOuterApi { * @param param * @return */ + @Transactional(rollbackFor = Exception.class) @PostMapping("/submit") @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.SUBMIT) public R submit(@RequestBody @Valid VisitMain param){ @@ -168,19 +182,49 @@ public class VisitMainOuterApi { if(visitTheme==null){ return R.error("主题标识为空"); } + if(visitTheme.getStopState().equals(1)){ + return R.error("主题已停用"); + } + LocalDateTime nowTime = LocalDateTime.now(); + if(nowTime.isBefore(visitTheme.getCodeStartDate())){ + return R.error("登记时间未开始"); + } + if(nowTime.isAfter(visitTheme.getCodeEndDate())){ + return R.error("已结束登记"); + } + VisitMain entity = CopierUtil.copy(visitTheme,new VisitMain()); + //页面参数 + entity.setVisitorName(param.getVisitorName()); + entity.setVisitorMobile(param.getVisitorMobile()); + entity.setVisitorIdentity(param.getVisitorIdentity()); + entity.setVisitorCompany(param.getVisitorCompany()); + entity.setVisitorCar(param.getVisitorCar()); + entity.setVisitorEmail(param.getVisitorEmail()); + entity.setThemeId(visitTheme.getId()); + //其它 entity.setId(null); - param.setCheckState(null); - param.setVisitStatus(null); - param.setSubmitTime(null); - CopierUtil.copy(param,entity); + entity.setVisitCode(CodeGenUtil.getDataCode(CodeGenUtil.SourceDataKey.VISIT)); + entity.setCheckState(null); + entity.setVisitStatus(null); + entity.setSubmitTime(null); + entity.setCreateBy(null); + entity.setCreateTime(null); + entity.setUpdateBy(null); + entity.setUpdateTime(null); // 审批参数 - param.setSyFormId("test"); - param.setSubmitTime(LocalDateTime.now()); - param.setCheckState(VisitMainConst.CheckState_1); - param.setVisitStatus(VisitMainConst.VisitStatus_1); - visitMainService.saveOrUpdate(param); - //visitMainService.submitOaFlow(param.getId()); + entity.setSyFormId("0"); + entity.setSubmitTime(LocalDateTime.now()); + visitMainService.saveOrUpdate(entity); + + if(visitTheme.getSkipApprovalFlag()!=null + &&visitTheme.getSkipApprovalFlag().equals(ResultFlag.OK)){ + // 跳过审批 + visitMainService.doFinish(entity.getId(),null); + }else { + // 申请审批 + visitMainService.submitOaFlow(entity.getId()); + } return R.ok(param.getId()); } diff --git a/src/main/java/com/qs/serve/modules/visit/controller/VisitMainController.java b/src/main/java/com/qs/serve/modules/visit/controller/VisitMainController.java index a3b7a3c..9fbd9ba 100644 --- a/src/main/java/com/qs/serve/modules/visit/controller/VisitMainController.java +++ b/src/main/java/com/qs/serve/modules/visit/controller/VisitMainController.java @@ -48,13 +48,17 @@ public class VisitMainController { @GetMapping("/page") public R> getPage(VisitMain param){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + lqw.orderByDesc(VisitMain::getCreateTime); PageUtil.startPage(); List list = visitMainService.list(lqw); for (VisitMain visit : list) { // 仅审批中数据进行补偿 if(visit.getCheckState().equals(VisitMainConst.CheckState_0)){ try { - visitMainService.runCompensate(visit.getId()); + VisitTheme visitTheme = visitThemeService.getById(visit.getThemeId()); + if(visitTheme.getSkipApprovalFlag()==null || !visitTheme.getSkipApprovalFlag().equals(1)){ + visitMainService.runCompensate(visit.getId()); + } } catch (Exception e) { e.printStackTrace(); } @@ -74,12 +78,6 @@ public class VisitMainController { lqw.eq(VisitMain::getUserId,AuthContextUtils.getSysUserId()); PageUtil.startPage(); List list = visitMainService.list(lqw); - for (VisitMain visit : list) { - // 仅审批中数据进行补偿 - if(visit.getCheckState().equals(VisitMainConst.CheckState_0)){ - //visitMainService.runCompensate(visit.getId()); - } - } return R.byPageHelperList(list); } @@ -91,17 +89,20 @@ public class VisitMainController { @GetMapping("/getById/{id}") @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) public R getById(@PathVariable("id") String id){ - VisitMain visitMain = visitMainService.getById(id); - if(visitMain==null){ - return R.error("来访实例不存在"); - } - VisitMainVo mainVo = CopierUtil.copy(visitMain,new VisitMainVo()); - VisitTheme visitTheme = visitThemeService.getById(visitMain.getThemeId()); - if(visitTheme!=null){ - mainVo.setThemeTitle(visitTheme.getThemeTitle()); - mainVo.setThemeCode(visitTheme.getThemeCode()); - } - return R.ok(mainVo); + VisitMainVo visitMain = visitMainService.getDetail(id); + return R.ok(visitMain); + } + + /** + * ID查询 + * @param id + * @return + */ + @GetMapping("/devSubmit/{id}") + @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) + public R devSubmit(@PathVariable("id") String id){ + visitMainService.submitOaFlow(id); + return R.ok(); } /** diff --git a/src/main/java/com/qs/serve/modules/visit/controller/VisitThemeController.java b/src/main/java/com/qs/serve/modules/visit/controller/VisitThemeController.java index f5656f6..d55845f 100644 --- a/src/main/java/com/qs/serve/modules/visit/controller/VisitThemeController.java +++ b/src/main/java/com/qs/serve/modules/visit/controller/VisitThemeController.java @@ -8,7 +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.sys.entity.SysDept; import com.qs.serve.modules.sys.entity.SysUser; +import com.qs.serve.modules.sys.service.SysDeptService; import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.visit.common.VisitMainConst; import com.qs.serve.modules.visit.entity.VisitTheme; @@ -33,6 +35,7 @@ public class VisitThemeController { private VisitThemeServiceImpl visitThemeService; private SysUserService sysUserService; + private SysDeptService sysDeptService; /** * 翻页 @@ -42,6 +45,7 @@ public class VisitThemeController { @GetMapping("/page") public R> getPage(VisitTheme param){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); + lqw.orderByDesc(VisitTheme::getCreateTime); PageUtil.startPage(); List list = visitThemeService.list(lqw); return R.byPageHelperList(list); @@ -56,6 +60,7 @@ public class VisitThemeController { public R> getPageMy(VisitTheme param){ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(param); lqw.eq(VisitTheme::getUserId,AuthContextUtils.getSysUserId()); + lqw.orderByDesc(VisitTheme::getCreateTime); PageUtil.startPage(); List list = visitThemeService.list(lqw); return R.byPageHelperList(list); @@ -112,7 +117,11 @@ public class VisitThemeController { param.setUserId(sysUser.getId()); param.setUserCode(sysUser.getCode()); param.setUserName(sysUser.getName()); - + SysDept dept = sysDeptService.getById(sysUser.getDeptId()); + if(dept!=null){ + param.setDeptId(dept.getId()); + param.setDeptName(dept.getName()); + } boolean result = visitThemeService.save(param); return R.isTrue(result); } diff --git a/src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java b/src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java index 8f7b062..34edf02 100644 --- a/src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java +++ b/src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java @@ -78,9 +78,9 @@ public class VisitMain implements Serializable { private String checkUserName; /** 预约拜访日期 */ - @DateTimeFormat(pattern = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") - private LocalDate preVisitDate; + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime preVisitDate; /** 实际来访时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @@ -197,5 +197,6 @@ public class VisitMain implements Serializable { return main; } + } diff --git a/src/main/java/com/qs/serve/modules/visit/entity/VisitTheme.java b/src/main/java/com/qs/serve/modules/visit/entity/VisitTheme.java index dd32dc3..54b437a 100644 --- a/src/main/java/com/qs/serve/modules/visit/entity/VisitTheme.java +++ b/src/main/java/com/qs/serve/modules/visit/entity/VisitTheme.java @@ -38,6 +38,9 @@ public class VisitTheme implements Serializable { /** 跳过审批:0-需要审批;1-不需要审批 */ private Integer skipApprovalFlag; + /** 跳过发送短信:0-发送短信;1-跳过发送短信 */ + private Integer skipMessageFlag; + /** 部门id */ @Length(max = 255,message = "部门id长度不能超过255字") private String deptId; @@ -88,6 +91,17 @@ public class VisitTheme implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") private LocalDateTime visitEndDate; + + /** 二维码开始时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime codeStartDate; + + /** 二维码结束时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime codeEndDate; + /** 实际来访时间 */ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") diff --git a/src/main/java/com/qs/serve/modules/visit/entity/vo/VisitMainVo.java b/src/main/java/com/qs/serve/modules/visit/entity/vo/VisitMainVo.java index 6b645d8..a760e30 100644 --- a/src/main/java/com/qs/serve/modules/visit/entity/vo/VisitMainVo.java +++ b/src/main/java/com/qs/serve/modules/visit/entity/vo/VisitMainVo.java @@ -1,7 +1,11 @@ package com.qs.serve.modules.visit.entity.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import com.qs.serve.modules.visit.entity.VisitMain; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; /** * @author YenHex @@ -15,4 +19,32 @@ public class VisitMainVo extends VisitMain { private String themeTitle; + /** 接待地址 */ + private String visitAddress; + + /** 接待公司 */ + private String visitCompany; + + /** 接待地址 */ + private String localX; + + /** 接待公司 */ + private String localY; + + /** 跳过审批:0-需要审批;1-不需要审批 */ + private Integer skipApprovalFlag; + + /** 跳过发送短信:0-发送短信;1-跳过发送短信 */ + private Integer skipMessageFlag; + + + /** 二维码开始时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime codeStartDate; + + /** 二维码结束时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime codeEndDate; } diff --git a/src/main/java/com/qs/serve/modules/visit/service/VisitMainService.java b/src/main/java/com/qs/serve/modules/visit/service/VisitMainService.java index 049e15e..7372720 100644 --- a/src/main/java/com/qs/serve/modules/visit/service/VisitMainService.java +++ b/src/main/java/com/qs/serve/modules/visit/service/VisitMainService.java @@ -1,14 +1,16 @@ package com.qs.serve.modules.visit.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.qs.serve.modules.flow.service.SeeYonOptionService; import com.qs.serve.modules.visit.entity.VisitMain; +import com.qs.serve.modules.visit.entity.vo.VisitMainVo; /** * 拜访 服务接口 * @author YenHex * @date 2024-09-11 */ -public interface VisitMainService extends IService { +public interface VisitMainService extends IService, SeeYonOptionService { /** * 提交方法到OA @@ -16,5 +18,12 @@ public interface VisitMainService extends IService { */ void submitOaFlow(String id); + /** + * 获取vo + * @param id + * @return + */ + VisitMainVo getDetail(String id); + } diff --git a/src/main/java/com/qs/serve/modules/visit/service/VisitThemeService.java b/src/main/java/com/qs/serve/modules/visit/service/VisitThemeService.java index 2d0eb26..7589016 100644 --- a/src/main/java/com/qs/serve/modules/visit/service/VisitThemeService.java +++ b/src/main/java/com/qs/serve/modules/visit/service/VisitThemeService.java @@ -10,7 +10,7 @@ import com.qs.serve.modules.visit.entity.VisitTheme; * @author YenHex * @date 2024-09-11 */ -public interface VisitThemeService extends IService , SeeYonOptionService { +public interface VisitThemeService extends IService { } diff --git a/src/main/java/com/qs/serve/modules/visit/service/impl/VisitMainServiceImpl.java b/src/main/java/com/qs/serve/modules/visit/service/impl/VisitMainServiceImpl.java index b1e936c..6a0eca8 100644 --- a/src/main/java/com/qs/serve/modules/visit/service/impl/VisitMainServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/visit/service/impl/VisitMainServiceImpl.java @@ -3,14 +3,20 @@ package com.qs.serve.modules.visit.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.qs.serve.common.model.consts.ResultFlag; import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.oa.BaseCreateCallbackBo; import com.qs.serve.common.model.oa.OaFormMainProcess; import com.qs.serve.common.util.Assert; +import com.qs.serve.common.util.CopierUtil; +import com.qs.serve.common.util.TianYiYunSmsUtil; import com.qs.serve.modules.flow.model.TbsAffairCommitBo; import com.qs.serve.modules.flow.service.SeeYonOptionService; import com.qs.serve.modules.flow.service.SeeYonService; import com.qs.serve.modules.visit.common.VisitMainConst; +import com.qs.serve.modules.visit.entity.VisitTheme; +import com.qs.serve.modules.visit.entity.vo.VisitMainVo; +import com.qs.serve.modules.visit.mapper.VisitThemeMapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; @@ -37,38 +43,81 @@ public class VisitMainServiceImpl extends ServiceImpl @Resource private SeeYonService seeYonService; + @Resource + private VisitThemeMapper visitThemeMapper; + @Value("${project.flowTest}") private Boolean flowDev; + @Value("${project.h5visitMainUrl}") + private String h5visitMainUrl; + @Override public String loadTemplateCode(){ return flowDev?"visitApplyForm_Test":"visitApplyForm"; } + @Override + public VisitMainVo getDetail(String id) { + VisitMain visitMain = this.getById(id); + if(visitMain==null){ + Assert.throwEx("来访实例不存在"); + } + VisitMainVo mainVo = CopierUtil.copy(visitMain,new VisitMainVo()); + VisitTheme visitTheme = visitThemeMapper.selectById(visitMain.getThemeId()); + if(visitTheme!=null){ + mainVo.setThemeTitle(visitTheme.getThemeTitle()); + mainVo.setThemeCode(visitTheme.getThemeCode()); + mainVo.setVisitAddress(visitTheme.getVisitAddress()); + mainVo.setVisitCompany(visitTheme.getVisitCompany()); + mainVo.setLocalX(visitTheme.getLocalX()); + mainVo.setLocalY(visitTheme.getLocalY()); + mainVo.setSkipApprovalFlag(visitTheme.getSkipApprovalFlag()); + mainVo.setSkipMessageFlag(visitTheme.getSkipMessageFlag()); + mainVo.setCodeEndDate(visitTheme.getCodeEndDate()); + mainVo.setCodeStartDate(visitTheme.getCodeStartDate()); + mainVo.setVisitStartDate(visitTheme.getVisitStartDate()); + mainVo.setVisitEndDate(visitTheme.getVisitEndDate()); + } + return mainVo; + } + @Override public void submitOaFlow(String id) { String templateCode = loadTemplateCode(); VisitMain visitMain = this.getById(id); Map mainData = new HashMap<>(); - + VisitTheme visitTheme = visitThemeMapper.selectById(visitMain.getThemeId()); mainData.put("target_id",id); mainData.put("target_code",visitMain.getVisitCode()); mainData.put("template_code",templateCode); mainData.put("rowState","03"); + mainData.put("themeCode",visitTheme.getThemeCode()); + mainData.put("themeTitle",visitTheme.getThemeTitle()); + mainData.put("visitCOde",visitMain.getVisitCode()); + mainData.put("visitCode",visitMain.getVisitCode()); + mainData.put("deptName",visitMain.getDeptName()); mainData.put("userCode",visitMain.getUserCode()); mainData.put("userName",visitMain.getUserName()); + mainData.put("userRoom",visitMain.getUserRoom()); mainData.put("preVisitDate",visitMain.getPreVisitDate()); + mainData.put("submitTime",visitMain.getSubmitTime()); mainData.put("visitorCompany",visitMain.getVisitorCompany()); + mainData.put("visitorIdentity",visitMain.getVisitorIdentity()); + mainData.put("visitStartDate",visitMain.getVisitStartDate()); + mainData.put("visitEndDate",visitMain.getVisitEndDate()); mainData.put("visitorName",visitMain.getVisitorName()); mainData.put("visitorMobile",visitMain.getVisitorMobile()); + mainData.put("visitorCart",visitMain.getVisitorCar()); mainData.put("visitorSum",visitMain.getVisitorSum()); + mainData.put("visitorEmail",visitMain.getVisitorEmail()); mainData.put("visitorContext",visitMain.getVisitorContext()); mainData.put("remark",visitMain.getRemark()); OaFormMainProcess mainProcess = new OaFormMainProcess(); mainProcess.setTargetId(visitMain.getId()); mainProcess.setUploadFiles(new ArrayList<>()); - mainProcess.setTableName("formmain_2228"); + mainProcess.setTableName("formmain_2282"); mainProcess.setData(mainData); mainProcess.setTemplateCode(templateCode); mainProcess.setUserId(visitMain.getUserId()); @@ -116,8 +165,19 @@ public class VisitMainServiceImpl extends ServiceImpl @Override public Object doFinish(String targetId, TbsAffairCommitBo commit) { VisitMain visitMain = this.getById(targetId); + visitMain.setSubmitTime(LocalDateTime.now()); visitMain.setCheckState(VisitMainConst.CheckState_1); + visitMain.setVisitStatus(VisitMainConst.VisitStatus_1); this.updateById(visitMain); + VisitTheme visitTheme = visitThemeMapper.selectById(visitMain.getThemeId()); + // 判断是否需要发送短信 + if(visitTheme.getSkipMessageFlag()==null || !visitTheme.getSkipMessageFlag().equals(ResultFlag.OK)){ + TianYiYunSmsUtil.sendVisitSuccess( + visitTheme.getVisitorMobile(), + h5visitMainUrl + visitMain.getId(), + visitMain.getPreVisitDate(), + visitMain.getUserName()); + } return null; } diff --git a/src/main/java/com/qs/serve/modules/visit/service/impl/VisitThemeServiceImpl.java b/src/main/java/com/qs/serve/modules/visit/service/impl/VisitThemeServiceImpl.java index 160723f..9e92cdf 100644 --- a/src/main/java/com/qs/serve/modules/visit/service/impl/VisitThemeServiceImpl.java +++ b/src/main/java/com/qs/serve/modules/visit/service/impl/VisitThemeServiceImpl.java @@ -34,32 +34,8 @@ import java.util.Map; */ @Slf4j @Service -public class VisitThemeServiceImpl extends ServiceImpl implements VisitThemeService, SeeYonOptionService { +public class VisitThemeServiceImpl extends ServiceImpl implements VisitThemeService { - @Override - public String loadTemplateCode() { - return null; - } - - @Override - public Object doNext(String targetId, TbsAffairCommitBo commit) { - return null; - } - - @Override - public Object doBack(String targetId, TbsAffairCommitBo commit) { - return null; - } - - @Override - public Object doFinish(String targetId, TbsAffairCommitBo commit) { - return null; - } - - @Override - public Object doRefuse(String targetId, TbsAffairCommitBo commit) { - return null; - } }