Browse Source

opt: 11/14提交修改

master
Yen 8 months ago
parent
commit
9a0c42d3aa
  1. 48
      src/main/java/com/qs/serve/modules/thirty/ThirtyVisitController.java
  2. 85
      src/main/java/com/qs/serve/modules/thirty/entity/VisitThemeThirtyParam.java
  3. 88
      src/main/java/com/qs/serve/modules/visit/api/VisitMainOuterApi.java
  4. 37
      src/main/java/com/qs/serve/modules/visit/controller/VisitMainController.java
  5. 11
      src/main/java/com/qs/serve/modules/visit/controller/VisitThemeController.java
  6. 7
      src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java
  7. 14
      src/main/java/com/qs/serve/modules/visit/entity/VisitTheme.java
  8. 32
      src/main/java/com/qs/serve/modules/visit/entity/vo/VisitMainVo.java
  9. 11
      src/main/java/com/qs/serve/modules/visit/service/VisitMainService.java
  10. 2
      src/main/java/com/qs/serve/modules/visit/service/VisitThemeService.java
  11. 64
      src/main/java/com/qs/serve/modules/visit/service/impl/VisitMainServiceImpl.java
  12. 26
      src/main/java/com/qs/serve/modules/visit/service/impl/VisitThemeServiceImpl.java

48
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.AuthContextUtils;
import com.qs.serve.common.util.CodeGenUtil; import com.qs.serve.common.util.CodeGenUtil;
import com.qs.serve.common.util.CopierUtil; 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.SysDept;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.service.SysDeptService; import com.qs.serve.modules.sys.service.SysDeptService;
@ -47,28 +48,41 @@ public class ThirtyVisitController {
@PostMapping("/saveTheme") @PostMapping("/saveTheme")
@SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.INSERT) @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.INSERT)
public R<?> save(@RequestBody @Valid VisitThemeThirtyParam param){ public R<?> save(@RequestBody @Valid VisitThemeThirtyParam param){
VisitTheme entity = CopierUtil.copy(param,new VisitTheme()); VisitTheme entity = new VisitTheme();
SysUser sysUser = sysUserService.getByAccount(param.getUserCode()); 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){ if(sysUser==null){
return R.error("用户编码无效或未被收录"); return R.error("拜访用户编码无效或未被收录");
} }
entity.setUserId(sysUser.getId()); entity.setUserId(sysUser.getId());
entity.setUserCode(sysUser.getCode()); entity.setUserCode(sysUser.getCode());
entity.setUserName(sysUser.getName()); if(StringUtils.hasText(param.getVisitEmpName())){
SysDept dept = sysDeptService.getOne(new LambdaQueryWrapper<SysDept>() entity.setUserName(param.getVisitEmpName());
.eq(SysDept::getCode,param.getDeptCode()),false); }else {
if(dept==null){ entity.setUserName(sysUser.getName());
return R.error("部门编码无效或未被收录");
} }
entity.setDeptId(dept.getId()); if(entity.getId()==null){
entity.setDeptName(dept.getName()); if(StringUtils.hasText(param.getVisitCode())){
entity.setThemeCode(param.getVisitCode());
entity.setThemeCode("TP"+ CodeGenUtil.getDataCode(CodeGenUtil.SourceDataKey.VISIT)); }else {
entity.setUserId(sysUser.getId()); entity.setThemeCode("TP"+ CodeGenUtil.getDataCode(CodeGenUtil.SourceDataKey.VISIT));
entity.setUserCode(sysUser.getCode()); }
entity.setUserName(sysUser.getName()); }
entity.setThemeTitle(param.getThemeTitle());
boolean result = visitThemeService.save(entity); 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); return R.isTrue(result);
} }

85
src/main/java/com/qs/serve/modules/thirty/entity/VisitThemeThirtyParam.java

@ -18,36 +18,85 @@ import java.time.LocalDateTime;
@Data @Data
public class VisitThemeThirtyParam { 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") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime visitStartDate; private LocalDateTime visitStartDate;
/** 来访结束时间 */ /** 来访结束时间 */
@NotNull(message = "来访结束时间不能为空") @NotNull(message = "visitEndDate is null")
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime visitEndDate; private LocalDateTime visitEndDate;
/** 备注 */ /**
@Length(max = 255,message = "备注长度不能超过255字") * 是否需要表单审批 true/false
private String remark; */
@NotNull(message = "isNeedVerify is null")
public Boolean isNeedVerify;
/**
* 调用短信通知 true/false
*/
@NotNull(message = "isNeedVerifyStatus is null")
public Boolean isNeedVerifyStatus;
} }

88
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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qs.serve.common.model.annotation.SysLog; 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.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.enums.BizType; 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 com.qs.serve.modules.wx.service.WxUserService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
@ -66,14 +68,8 @@ public class VisitMainOuterApi {
@GetMapping("/getById/{id}") @GetMapping("/getById/{id}")
@SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY)
public R<VisitMainVo> getById(@PathVariable("id") String id){ public R<VisitMainVo> getById(@PathVariable("id") String id){
VisitMain visitMain = visitMainService.getById(id); VisitMainVo visitMain = visitMainService.getDetail(id);
VisitTheme visitTheme = visitThemeService.getById(visitMain.getThemeId()); return R.ok(visitMain);
VisitMainVo mainVo = CopierUtil.copy(visitMain,new VisitMainVo());
if(visitTheme!=null){
mainVo.setThemeTitle(visitTheme.getThemeTitle());
mainVo.setThemeCode(visitTheme.getThemeCode());
}
return R.ok(mainVo);
} }
/** /**
@ -85,7 +81,6 @@ public class VisitMainOuterApi {
@SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY)
public R<VisitMainVo> getByThemeId_old(@PathVariable("id") String id){ public R<VisitMainVo> getByThemeId_old(@PathVariable("id") String id){
WxUser wxUser = wxUserService.getCurrentWxUser(); WxUser wxUser = wxUserService.getCurrentWxUser();
VisitMain dbMain = visitMainService.getOne(new LambdaQueryWrapper<VisitMain>() VisitMain dbMain = visitMainService.getOne(new LambdaQueryWrapper<VisitMain>()
.eq(VisitMain::getThemeId,id) .eq(VisitMain::getThemeId,id)
.eq(VisitMain::getVisitorId,wxUser.getId()), .eq(VisitMain::getVisitorId,wxUser.getId()),
@ -107,10 +102,28 @@ public class VisitMainOuterApi {
*/ */
@GetMapping("/getThemeById/{id}") @GetMapping("/getThemeById/{id}")
@SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY)
public R<VisitMainVo> getByThemeId(@PathVariable("id") String id){ public R<VisitTheme> getByThemeId(@PathVariable("id") String id){
VisitTheme visitTheme = visitThemeService.getById(id); VisitTheme visitTheme = visitThemeService.getById(id);
VisitMainVo mainVo = CopierUtil.copy(visitTheme,new VisitMainVo()); return R.ok(visitTheme);
return R.ok(mainVo); }
/**
* ID查询并校验是否可填写(查询主题id)
* @param id
* @return
*/
@GetMapping("/validThemeById/{id}")
@SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY)
public R<Boolean> 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 * @param param
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class)
@PostMapping("/submit") @PostMapping("/submit")
@SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.SUBMIT) @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.SUBMIT)
public R<?> submit(@RequestBody @Valid VisitMain param){ public R<?> submit(@RequestBody @Valid VisitMain param){
@ -168,19 +182,49 @@ public class VisitMainOuterApi {
if(visitTheme==null){ if(visitTheme==null){
return R.error("主题标识为空"); 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()); 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); entity.setId(null);
param.setCheckState(null); entity.setVisitCode(CodeGenUtil.getDataCode(CodeGenUtil.SourceDataKey.VISIT));
param.setVisitStatus(null); entity.setCheckState(null);
param.setSubmitTime(null); entity.setVisitStatus(null);
CopierUtil.copy(param,entity); entity.setSubmitTime(null);
entity.setCreateBy(null);
entity.setCreateTime(null);
entity.setUpdateBy(null);
entity.setUpdateTime(null);
// 审批参数 // 审批参数
param.setSyFormId("test"); entity.setSyFormId("0");
param.setSubmitTime(LocalDateTime.now()); entity.setSubmitTime(LocalDateTime.now());
param.setCheckState(VisitMainConst.CheckState_1); visitMainService.saveOrUpdate(entity);
param.setVisitStatus(VisitMainConst.VisitStatus_1);
visitMainService.saveOrUpdate(param); if(visitTheme.getSkipApprovalFlag()!=null
//visitMainService.submitOaFlow(param.getId()); &&visitTheme.getSkipApprovalFlag().equals(ResultFlag.OK)){
// 跳过审批
visitMainService.doFinish(entity.getId(),null);
}else {
// 申请审批
visitMainService.submitOaFlow(entity.getId());
}
return R.ok(param.getId()); return R.ok(param.getId());
} }

37
src/main/java/com/qs/serve/modules/visit/controller/VisitMainController.java

@ -48,13 +48,17 @@ public class VisitMainController {
@GetMapping("/page") @GetMapping("/page")
public R<PageVo<VisitMain>> getPage(VisitMain param){ public R<PageVo<VisitMain>> getPage(VisitMain param){
LambdaQueryWrapper<VisitMain> lqw = new LambdaQueryWrapper<>(param); LambdaQueryWrapper<VisitMain> lqw = new LambdaQueryWrapper<>(param);
lqw.orderByDesc(VisitMain::getCreateTime);
PageUtil.startPage(); PageUtil.startPage();
List<VisitMain> list = visitMainService.list(lqw); List<VisitMain> list = visitMainService.list(lqw);
for (VisitMain visit : list) { for (VisitMain visit : list) {
// 仅审批中数据进行补偿 // 仅审批中数据进行补偿
if(visit.getCheckState().equals(VisitMainConst.CheckState_0)){ if(visit.getCheckState().equals(VisitMainConst.CheckState_0)){
try { 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) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -74,12 +78,6 @@ public class VisitMainController {
lqw.eq(VisitMain::getUserId,AuthContextUtils.getSysUserId()); lqw.eq(VisitMain::getUserId,AuthContextUtils.getSysUserId());
PageUtil.startPage(); PageUtil.startPage();
List<VisitMain> list = visitMainService.list(lqw); List<VisitMain> list = visitMainService.list(lqw);
for (VisitMain visit : list) {
// 仅审批中数据进行补偿
if(visit.getCheckState().equals(VisitMainConst.CheckState_0)){
//visitMainService.runCompensate(visit.getId());
}
}
return R.byPageHelperList(list); return R.byPageHelperList(list);
} }
@ -91,17 +89,20 @@ public class VisitMainController {
@GetMapping("/getById/{id}") @GetMapping("/getById/{id}")
@SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY) @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY)
public R<VisitMainVo> getById(@PathVariable("id") String id){ public R<VisitMainVo> getById(@PathVariable("id") String id){
VisitMain visitMain = visitMainService.getById(id); VisitMainVo visitMain = visitMainService.getDetail(id);
if(visitMain==null){ return R.ok(visitMain);
return R.error("来访实例不存在"); }
}
VisitMainVo mainVo = CopierUtil.copy(visitMain,new VisitMainVo()); /**
VisitTheme visitTheme = visitThemeService.getById(visitMain.getThemeId()); * ID查询
if(visitTheme!=null){ * @param id
mainVo.setThemeTitle(visitTheme.getThemeTitle()); * @return
mainVo.setThemeCode(visitTheme.getThemeCode()); */
} @GetMapping("/devSubmit/{id}")
return R.ok(mainVo); @SysLog(module = SystemModule.VISIT, title = "拜访", biz = BizType.QUERY)
public R<VisitMainVo> devSubmit(@PathVariable("id") String id){
visitMainService.submitOaFlow(id);
return R.ok();
} }
/** /**

11
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.BizType;
import com.qs.serve.common.model.enums.SystemModule; import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.*; 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.entity.SysUser;
import com.qs.serve.modules.sys.service.SysDeptService;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.visit.common.VisitMainConst; import com.qs.serve.modules.visit.common.VisitMainConst;
import com.qs.serve.modules.visit.entity.VisitTheme; import com.qs.serve.modules.visit.entity.VisitTheme;
@ -33,6 +35,7 @@ public class VisitThemeController {
private VisitThemeServiceImpl visitThemeService; private VisitThemeServiceImpl visitThemeService;
private SysUserService sysUserService; private SysUserService sysUserService;
private SysDeptService sysDeptService;
/** /**
* 翻页 * 翻页
@ -42,6 +45,7 @@ public class VisitThemeController {
@GetMapping("/page") @GetMapping("/page")
public R<PageVo<VisitTheme>> getPage(VisitTheme param){ public R<PageVo<VisitTheme>> getPage(VisitTheme param){
LambdaQueryWrapper<VisitTheme> lqw = new LambdaQueryWrapper<>(param); LambdaQueryWrapper<VisitTheme> lqw = new LambdaQueryWrapper<>(param);
lqw.orderByDesc(VisitTheme::getCreateTime);
PageUtil.startPage(); PageUtil.startPage();
List<VisitTheme> list = visitThemeService.list(lqw); List<VisitTheme> list = visitThemeService.list(lqw);
return R.byPageHelperList(list); return R.byPageHelperList(list);
@ -56,6 +60,7 @@ public class VisitThemeController {
public R<PageVo<VisitTheme>> getPageMy(VisitTheme param){ public R<PageVo<VisitTheme>> getPageMy(VisitTheme param){
LambdaQueryWrapper<VisitTheme> lqw = new LambdaQueryWrapper<>(param); LambdaQueryWrapper<VisitTheme> lqw = new LambdaQueryWrapper<>(param);
lqw.eq(VisitTheme::getUserId,AuthContextUtils.getSysUserId()); lqw.eq(VisitTheme::getUserId,AuthContextUtils.getSysUserId());
lqw.orderByDesc(VisitTheme::getCreateTime);
PageUtil.startPage(); PageUtil.startPage();
List<VisitTheme> list = visitThemeService.list(lqw); List<VisitTheme> list = visitThemeService.list(lqw);
return R.byPageHelperList(list); return R.byPageHelperList(list);
@ -112,7 +117,11 @@ public class VisitThemeController {
param.setUserId(sysUser.getId()); param.setUserId(sysUser.getId());
param.setUserCode(sysUser.getCode()); param.setUserCode(sysUser.getCode());
param.setUserName(sysUser.getName()); 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); boolean result = visitThemeService.save(param);
return R.isTrue(result); return R.isTrue(result);
} }

7
src/main/java/com/qs/serve/modules/visit/entity/VisitMain.java

@ -78,9 +78,9 @@ public class VisitMain implements Serializable {
private String checkUserName; private String checkUserName;
/** 预约拜访日期 */ /** 预约拜访日期 */
@DateTimeFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDate preVisitDate; private LocalDateTime preVisitDate;
/** 实际来访时间 */ /** 实际来访时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ -197,5 +197,6 @@ public class VisitMain implements Serializable {
return main; return main;
} }
} }

14
src/main/java/com/qs/serve/modules/visit/entity/VisitTheme.java

@ -38,6 +38,9 @@ public class VisitTheme implements Serializable {
/** 跳过审批:0-需要审批;1-不需要审批 */ /** 跳过审批:0-需要审批;1-不需要审批 */
private Integer skipApprovalFlag; private Integer skipApprovalFlag;
/** 跳过发送短信:0-发送短信;1-跳过发送短信 */
private Integer skipMessageFlag;
/** 部门id */ /** 部门id */
@Length(max = 255,message = "部门id长度不能超过255字") @Length(max = 255,message = "部门id长度不能超过255字")
private String deptId; private String deptId;
@ -88,6 +91,17 @@ public class VisitTheme implements Serializable {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime visitEndDate; 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") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")

32
src/main/java/com/qs/serve/modules/visit/entity/vo/VisitMainVo.java

@ -1,7 +1,11 @@
package com.qs.serve.modules.visit.entity.vo; package com.qs.serve.modules.visit.entity.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.qs.serve.modules.visit.entity.VisitMain; import com.qs.serve.modules.visit.entity.VisitMain;
import lombok.Data; import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
/** /**
* @author YenHex * @author YenHex
@ -15,4 +19,32 @@ public class VisitMainVo extends VisitMain {
private String themeTitle; 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;
} }

11
src/main/java/com/qs/serve/modules/visit/service/VisitMainService.java

@ -1,14 +1,16 @@
package com.qs.serve.modules.visit.service; package com.qs.serve.modules.visit.service;
import com.baomidou.mybatisplus.extension.service.IService; 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.VisitMain;
import com.qs.serve.modules.visit.entity.vo.VisitMainVo;
/** /**
* 拜访 服务接口 * 拜访 服务接口
* @author YenHex * @author YenHex
* @date 2024-09-11 * @date 2024-09-11
*/ */
public interface VisitMainService extends IService<VisitMain> { public interface VisitMainService extends IService<VisitMain>, SeeYonOptionService {
/** /**
* 提交方法到OA * 提交方法到OA
@ -16,5 +18,12 @@ public interface VisitMainService extends IService<VisitMain> {
*/ */
void submitOaFlow(String id); void submitOaFlow(String id);
/**
* 获取vo
* @param id
* @return
*/
VisitMainVo getDetail(String id);
} }

2
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 * @author YenHex
* @date 2024-09-11 * @date 2024-09-11
*/ */
public interface VisitThemeService extends IService<VisitTheme> , SeeYonOptionService { public interface VisitThemeService extends IService<VisitTheme> {
} }

64
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.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.dto.R;
import com.qs.serve.common.model.oa.BaseCreateCallbackBo; import com.qs.serve.common.model.oa.BaseCreateCallbackBo;
import com.qs.serve.common.model.oa.OaFormMainProcess; import com.qs.serve.common.model.oa.OaFormMainProcess;
import com.qs.serve.common.util.Assert; 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.model.TbsAffairCommitBo;
import com.qs.serve.modules.flow.service.SeeYonOptionService; import com.qs.serve.modules.flow.service.SeeYonOptionService;
import com.qs.serve.modules.flow.service.SeeYonService; import com.qs.serve.modules.flow.service.SeeYonService;
import com.qs.serve.modules.visit.common.VisitMainConst; 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.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -37,38 +43,81 @@ public class VisitMainServiceImpl extends ServiceImpl<VisitMainMapper,VisitMain>
@Resource @Resource
private SeeYonService seeYonService; private SeeYonService seeYonService;
@Resource
private VisitThemeMapper visitThemeMapper;
@Value("${project.flowTest}") @Value("${project.flowTest}")
private Boolean flowDev; private Boolean flowDev;
@Value("${project.h5visitMainUrl}")
private String h5visitMainUrl;
@Override @Override
public String loadTemplateCode(){ public String loadTemplateCode(){
return flowDev?"visitApplyForm_Test":"visitApplyForm"; 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 @Override
public void submitOaFlow(String id) { public void submitOaFlow(String id) {
String templateCode = loadTemplateCode(); String templateCode = loadTemplateCode();
VisitMain visitMain = this.getById(id); VisitMain visitMain = this.getById(id);
Map<String, Object> mainData = new HashMap<>(); Map<String, Object> mainData = new HashMap<>();
VisitTheme visitTheme = visitThemeMapper.selectById(visitMain.getThemeId());
mainData.put("target_id",id); mainData.put("target_id",id);
mainData.put("target_code",visitMain.getVisitCode()); mainData.put("target_code",visitMain.getVisitCode());
mainData.put("template_code",templateCode); mainData.put("template_code",templateCode);
mainData.put("rowState","03"); 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("userCode",visitMain.getUserCode());
mainData.put("userName",visitMain.getUserName()); mainData.put("userName",visitMain.getUserName());
mainData.put("userRoom",visitMain.getUserRoom());
mainData.put("preVisitDate",visitMain.getPreVisitDate()); mainData.put("preVisitDate",visitMain.getPreVisitDate());
mainData.put("submitTime",visitMain.getSubmitTime());
mainData.put("visitorCompany",visitMain.getVisitorCompany()); 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("visitorName",visitMain.getVisitorName());
mainData.put("visitorMobile",visitMain.getVisitorMobile()); mainData.put("visitorMobile",visitMain.getVisitorMobile());
mainData.put("visitorCart",visitMain.getVisitorCar());
mainData.put("visitorSum",visitMain.getVisitorSum()); mainData.put("visitorSum",visitMain.getVisitorSum());
mainData.put("visitorEmail",visitMain.getVisitorEmail());
mainData.put("visitorContext",visitMain.getVisitorContext()); mainData.put("visitorContext",visitMain.getVisitorContext());
mainData.put("remark",visitMain.getRemark()); mainData.put("remark",visitMain.getRemark());
OaFormMainProcess mainProcess = new OaFormMainProcess(); OaFormMainProcess mainProcess = new OaFormMainProcess();
mainProcess.setTargetId(visitMain.getId()); mainProcess.setTargetId(visitMain.getId());
mainProcess.setUploadFiles(new ArrayList<>()); mainProcess.setUploadFiles(new ArrayList<>());
mainProcess.setTableName("formmain_2228"); mainProcess.setTableName("formmain_2282");
mainProcess.setData(mainData); mainProcess.setData(mainData);
mainProcess.setTemplateCode(templateCode); mainProcess.setTemplateCode(templateCode);
mainProcess.setUserId(visitMain.getUserId()); mainProcess.setUserId(visitMain.getUserId());
@ -116,8 +165,19 @@ public class VisitMainServiceImpl extends ServiceImpl<VisitMainMapper,VisitMain>
@Override @Override
public Object doFinish(String targetId, TbsAffairCommitBo commit) { public Object doFinish(String targetId, TbsAffairCommitBo commit) {
VisitMain visitMain = this.getById(targetId); VisitMain visitMain = this.getById(targetId);
visitMain.setSubmitTime(LocalDateTime.now());
visitMain.setCheckState(VisitMainConst.CheckState_1); visitMain.setCheckState(VisitMainConst.CheckState_1);
visitMain.setVisitStatus(VisitMainConst.VisitStatus_1);
this.updateById(visitMain); 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; return null;
} }

26
src/main/java/com/qs/serve/modules/visit/service/impl/VisitThemeServiceImpl.java

@ -34,32 +34,8 @@ import java.util.Map;
*/ */
@Slf4j @Slf4j
@Service @Service
public class VisitThemeServiceImpl extends ServiceImpl<VisitThemeMapper,VisitTheme> implements VisitThemeService, SeeYonOptionService { public class VisitThemeServiceImpl extends ServiceImpl<VisitThemeMapper,VisitTheme> 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;
}
} }

Loading…
Cancel
Save