diff --git a/src/main/java/com/qs/serve/modules/thirty/ThirtyVisitController.java b/src/main/java/com/qs/serve/modules/thirty/ThirtyVisitController.java new file mode 100644 index 0000000..472fb4d --- /dev/null +++ b/src/main/java/com/qs/serve/modules/thirty/ThirtyVisitController.java @@ -0,0 +1,75 @@ +package com.qs.serve.modules.thirty; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.qs.serve.common.model.annotation.SysLog; +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.CodeGenUtil; +import com.qs.serve.common.util.CopierUtil; +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.thirty.entity.VisitThemeThirtyParam; +import com.qs.serve.modules.visit.entity.VisitTheme; +import com.qs.serve.modules.visit.service.impl.VisitThemeServiceImpl; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.Valid; + +/** + * 第三方接口 来访 + * @author YenHex + * @since 2024/11/12 + */ +@Slf4j +@AllArgsConstructor +@RestController +@RequestMapping("/thirty") +public class ThirtyVisitController { + + private VisitThemeServiceImpl visitThemeService; + private SysUserService sysUserService; + private SysDeptService sysDeptService; + + /** + * 新增 + * @param param + * @return + */ + @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()); + if(sysUser==null){ + 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("部门编码无效或未被收录"); + } + 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); + 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 new file mode 100644 index 0000000..fb9af01 --- /dev/null +++ b/src/main/java/com/qs/serve/modules/thirty/entity/VisitThemeThirtyParam.java @@ -0,0 +1,53 @@ +package com.qs.serve.modules.thirty.entity; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.hibernate.validator.constraints.Length; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotNull; +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * @author YenHex + * @since 2024/11/12 + */ +@Data +public class VisitThemeThirtyParam { + + /** 拜访主题 */ + @NotNull(message = "拜访主题不能为空") + private String themeTitle; + + /** 部门编码 */ + @NotNull(message = "部门昵称不能为空") + private String deptCode; + + /** 用户编码 */ + @NotNull(message = "用户编码不能为空") + private String userCode; + + /** 接待地点 */ + @NotNull(message = "接待地点不能为空") + private String userRoom; + + /** 来访开始时间 */ + @NotNull(message = "来访开始时间不能为空") + @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") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + private LocalDateTime visitEndDate; + + /** 备注 */ + @Length(max = 255,message = "备注长度不能超过255字") + private String remark; + +} 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 39bbf29..f5656f6 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 @@ -1,5 +1,6 @@ package com.qs.serve.modules.visit.controller; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.qs.serve.common.model.annotation.SysLog; import com.qs.serve.common.model.dto.PageVo; @@ -111,6 +112,7 @@ public class VisitThemeController { param.setUserId(sysUser.getId()); param.setUserCode(sysUser.getCode()); param.setUserName(sysUser.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 f296231..b540b73 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 @@ -98,6 +98,21 @@ public class VisitMain implements Serializable { @Length(max = 255,message = "来访公司长度不能超过255字") private String visitorCompany; + /** 来访人身份证 */ + private String visitorIdentity; + + /** 来访开始时间 */ + @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 visitStartDate; + + /** 来访结束时间 */ + @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 visitEndDate; + /** 来访人ID */ @Length(max = 255,message = "来访人姓名长度不能超过255字") private String visitorId; 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 20951ec..d58212c 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 @@ -63,6 +63,16 @@ public class VisitTheme implements Serializable { @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 visitStartDate; + + /** 来访结束时间 */ + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @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")