兴安出门证申请开发

This commit is contained in:
zc
2025-07-09 14:27:28 +08:00
parent 393c180817
commit 1fac9db599
17 changed files with 798 additions and 237 deletions

View File

@@ -0,0 +1,15 @@
package com.dcsoft.system.domain.vo;
import lombok.Data;
import java.io.Serializable;
@Data
public class IdNamelVo implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
private String name;
}

View File

@@ -1,25 +1,28 @@
package com.dcsoft.system.visitor.controller;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.dcsoft.common.core.constant.CacheConstants;
import com.dcsoft.common.core.constant.Constants;
import com.dcsoft.common.core.exception.ServiceException;
import com.dcsoft.common.core.utils.CollUtil;
import com.dcsoft.common.core.utils.SmsUtils;
import com.dcsoft.common.core.web.controller.BaseController;
import com.dcsoft.common.core.web.domain.AjaxResult;
import com.dcsoft.common.core.web.page.TableDataInfo;
import com.dcsoft.common.log.annotation.Log;
import com.dcsoft.common.log.enums.BusinessType;
import com.dcsoft.common.redis.service.RedisService;
import com.dcsoft.common.security.utils.SecurityUtils;
import com.dcsoft.common.sms.config.properties.SmsProperties;
import com.dcsoft.system.api.model.LoginUser;
import com.dcsoft.system.domain.SysPeople;
import com.dcsoft.system.domain.vo.IdNamelVo;
import com.dcsoft.system.service.ISysDictDataService;
import com.dcsoft.system.service.ISysPeopleService;
import com.dcsoft.system.utils.UuidUtil;
import com.dcsoft.system.visitor.domain.CheckCodeVo;
import com.dcsoft.system.visitor.domain.VisCarryStuffVo;
import com.dcsoft.system.visitor.domain.VisExitOutVo;
import com.dcsoft.system.visitor.domain.VisStuffInfoVo;
import com.dcsoft.system.visitor.domain.VisVisitorExamine;
import com.dcsoft.system.visitor.service.IVisCarryStuffService;
import com.dcsoft.system.visitor.service.IVisVisitorExamineService;
@@ -33,6 +36,7 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Slf4j
@RestController
@@ -68,26 +72,45 @@ public class VisCarryStuffController extends BaseController {
@GetMapping("/list")
public TableDataInfo list(VisCarryStuffVo vo) {
public TableDataInfo list(VisExitOutVo vo) {
startPage();
List<VisExitOutVo> list = visCarryStuffService.selectList(vo);
if (CollUtil.isEmpty(list)) {
return getDataTable(list);
}
//查询物品信息列表
List<Long> collect = list.stream().map(VisExitOutVo::getId).collect(Collectors.toList());
VisStuffInfoVo visStuffInfoVo = new VisStuffInfoVo();
visStuffInfoVo.setExitIds(collect);
List<VisStuffInfoVo> stuffList = visCarryStuffService.selectStuffList(visStuffInfoVo);
if (CollUtil.isEmpty(stuffList)) {
return getDataTable(list);
}
//处理字典值
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
List<VisCarryStuffVo> list =visCarryStuffService.selectList(vo);
list.forEach(vis -> vis.setStuffTypeName(map.get(vis.getStuffType())));
stuffList.forEach(stuff -> {
if (StrUtil.isNotBlank(stuff.getType())) {
stuff.setTypeName(map.get(stuff.getType()));
}
if (StrUtil.isNotBlank(stuff.getBackType())) {
stuff.setBackTypeName(map.get(stuff.getBackType()));
}
if (StrUtil.isNotBlank(stuff.getImgUrls())) {
stuff.setImgUrlList(Arrays.asList(stuff.getImgUrls().split(",")));
}
if (StrUtil.isNotBlank(stuff.getBackImgUrls())) {
stuff.setBackImgUrlList(Arrays.asList(stuff.getBackImgUrls().split(",")));
}
});
return getDataTable(list);
}
//构造数据
Map<Long, List<VisStuffInfoVo>> collect1 = stuffList.stream().collect(Collectors.groupingBy(VisStuffInfoVo::getExitId));
list.forEach(exit -> {
exit.setVisStuffInfoList(collect1.get(exit.getId()));
});
/**
* 小程序查询我的携物信息列表
*/
@GetMapping("/app/list")
public TableDataInfo appList(VisCarryStuffVo vo) {
LoginUser user = SecurityUtils.getLoginUser();
vo.setCreateBy(user.getUsername());
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
List<VisCarryStuffVo> list =visCarryStuffService.selectList(vo);
list.forEach(vis -> vis.setStuffTypeName(map.get(vis.getStuffType())));
return getDataTable(list);
}
@@ -96,10 +119,34 @@ public class VisCarryStuffController extends BaseController {
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) {
VisCarryStuffVo stuffVo = visCarryStuffService.selectVisStuffById(id);
VisExitOutVo stuffVo = visCarryStuffService.selectVisStuffById(id);
//查询物品信息列表
VisStuffInfoVo visStuffInfoVo = new VisStuffInfoVo();
visStuffInfoVo.setExitId(stuffVo.getId());
List<VisStuffInfoVo> stuffList = visCarryStuffService.selectStuffList(visStuffInfoVo);
if (CollUtil.isNotEmpty(stuffList)) {
//处理字典
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
stuffList.forEach(stuff -> {
if (StrUtil.isNotBlank(stuff.getType())) {
stuff.setTypeName(map.get(stuff.getType()));
}
if (StrUtil.isNotBlank(stuff.getBackType())) {
stuff.setBackTypeName(map.get(stuff.getBackType()));
}
if (StrUtil.isNotBlank(stuff.getImgUrls())) {
stuff.setImgUrlList(Arrays.asList(stuff.getImgUrls().split(",")));
}
if (StrUtil.isNotBlank(stuff.getBackImgUrls())) {
stuff.setBackImgUrlList(Arrays.asList(stuff.getBackImgUrls().split(",")));
}
});
stuffVo.setVisStuffInfoList(stuffList);
}
//查询二维码信息
CheckCodeVo codeVo = visCarryStuffService.selectStuffCheckCode(id);
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
stuffVo.setStuffTypeName(map.get(stuffVo.getStuffType()));
if (ObjectUtil.isNotNull(codeVo)) {
stuffVo.setQrCode(codeVo.getCode());
}
@@ -110,65 +157,42 @@ public class VisCarryStuffController extends BaseController {
/**
* 新增访客信息
*/
@Log(title = "携物流程审核", businessType = BusinessType.INSERT)
@Log(title = "出门证申请", businessType = BusinessType.INSERT)
@PostMapping
@Transactional
public AjaxResult add(@RequestBody VisCarryStuffVo vo) {
log.info("新增携物申请信息:{}", vo);
public AjaxResult add(@RequestBody VisExitOutVo vo) {
log.info("新增出门证申请信息:{}", vo);
try {
visCarryStuffService.insertVisCarryStuff(vo);
//新增出门申请
visCarryStuffService.insertVisExitOut(vo);
//新增物资信息
List<VisStuffInfoVo> visStuffInfoList = vo.getVisStuffInfoList();
visStuffInfoList.forEach(stuff -> stuff.setExitId(vo.getId()));
visCarryStuffService.insertVisStuffInfo(visStuffInfoList);
} catch (Exception e) {
log.error("携物申请add异常", e);
return AjaxResult.error("系统异常,请重新提交或联系管理员!");
log.error("出门证申请add异常", e);
throw new ServiceException("系统异常,请重新提交或联系管理员!");
}
//查询一级审核人信息
// 审核通知企微发送消息(小程序来源)
SysPeople sysPeople = new SysPeople();
sysPeople.setCarryStuffExamine("1");
sysPeople.setBranchId("0");
List<SysPeople> peopleList = sysPeopleService.selectSysPeopleLists(sysPeople);
// 通知一级审核人,企微发送消息(小程序来源)
SysPeople people = sysPeopleService.selectSysPeopleById(vo.getReviewer1());
for (SysPeople people : peopleList) {
String url = getExamineUrl(String.valueOf(vo.getId()), people.getPhone());
log.info("携物申请add发送审核链接{}", url);
//发送钉钉信息
// String content = getContent(vo);
// visitorController.asyncsendV2(sysPeople.getPhone(), "text", content + url);
String url = getExamineUrl(String.valueOf(vo.getId()), people.getPhone());
log.info("出门证申请add发送{}审核链接:{}", people.getPhone(), url);
//发送企微信息
try {
visitorController.sendWeCom(sysPeople.getPhone(), url + " --访客姓名:" + vo.getName());
} catch (Exception e) {
log.error("携物申请add-sendWeCom异常", e);
return AjaxResult.error("系统异常,请重新提交或联系管理员!");
}
//发送企微信息
try {
// visitorController.sendWeCom(people.getPhone(), url + " --访客姓名:" + vo.getName());
} catch (Exception e) {
log.error("出门证申请add-sendWeCom异常", e);
throw new ServiceException("系统异常,请重新提交或联系管理员!");
}
return AjaxResult.success();
}
/**
* 组织链接内容(申请人&随访人基本信息)
*
* @return
*/
private String getContent(VisCarryStuffVo vo) {
String matterName = "携物出门申请";
// String visTime = DateUtil.format(vo.getVisTime(), DatePattern.NORM_DATE_FORMATTER);
StringBuilder sb = new StringBuilder();
sb.append("收到新的携物出门申请:").append(matterName).append("\n");
sb.append("申请人:").append(vo.getName()).append("\n");
sb.append("物品名称:").append(vo.getStuffName()).append("\n");
sb.append("物品类型:").append(vo.getStuffTypeName()).append("\n");
sb.append("物品数量:").append(vo.getStuffNumber()).append("\n");
sb.append("点击链接进行审核:");
log.info("getContent{}", JSON.toJSONString(sb));
return sb.toString();
}
/**
* 获取审核链接
*
@@ -188,6 +212,14 @@ public class VisCarryStuffController extends BaseController {
return "https://fk.xyxaks.cn/h5/?c=" + code + "2";
}
/**
* 生成出门证编号
* @return
*/
@PostMapping("/getExitPermitNo")
public AjaxResult getExitPermitNo() {
return AjaxResult.success("操作成功", System.currentTimeMillis() + SmsUtils.generateSmsCode());
}
/**
* 流程审核
@@ -195,7 +227,7 @@ public class VisCarryStuffController extends BaseController {
@Log(title = "携物流程审核", businessType = BusinessType.UPDATE)
@PostMapping("/approve")
@Transactional
public AjaxResult approve(@RequestBody VisCarryStuffVo vo) {
public AjaxResult approve(@RequestBody VisExitOutVo vo) {
log.info("携物流程审核入参 {}", JSON.toJSONString(vo));
try {
String telephone = StringUtils.isBlank(vo.getTelephone()) ? "1" : vo.getTelephone();
@@ -208,8 +240,8 @@ public class VisCarryStuffController extends BaseController {
//查询当前审核人基本信息
SysPeople sysPeople = sysPeopleService.queryPeopleName(telephone, null);
//查询携物申请详情信息
VisCarryStuffVo stuffVo = visCarryStuffService.selectVisStuffById(vo.getId());
//查询出门证申请详情信息
VisExitOutVo stuffVo = visCarryStuffService.selectVisStuffById(vo.getId());
//保存审核环节表
vo.setReviewer(sysPeople.getId());
@@ -218,92 +250,94 @@ public class VisCarryStuffController extends BaseController {
//保存审核历史表
VisVisitorExamine examine = new VisVisitorExamine();
examine.setStuffId(vo.getId());
examine.setExitId(vo.getId());
examine.setCreateBy(sysPeople.getName());
examine.setExamine(vo.getExamineState());
//审核通过
List<SysPeople> peopleList = new ArrayList<>();
SysPeople peopleQuery = new SysPeople();
SysPeople people = new SysPeople();
if(Constants.ZERO.equals(vo.getExamineState())) {
//一级审核人审核
if (stuffVo.getCurrentNode() == 1) {
vo.setExamineState(null);
vo.setExamineState("2");
vo.setCurrentNode(2);
vo.setReviewer1(sysPeople.getId());
//查询二级审核人信息,发送审核链接
peopleQuery.setCarryStuffExamine("2");
peopleQuery.setBranchId("0");
peopleList = sysPeopleService.selectSysPeopleLists(peopleQuery);
people = sysPeopleService.selectSysPeopleById(stuffVo.getReviewer2());
}
//二级审核人审核
else if (stuffVo.getCurrentNode() == 2) {
vo.setExamineState(null);
vo.setExamineState("2");
vo.setCurrentNode(3);
vo.setReviewer2(sysPeople.getId());
//查询三级审核人信息,发送审核链接
peopleQuery.setCarryStuffExamine("3");
peopleQuery.setBranchId("0");
peopleList = sysPeopleService.selectSysPeopleLists(peopleQuery);
people = sysPeopleService.selectSysPeopleById(stuffVo.getReviewer3());
}
else {//三级审核,最后一级
vo.setReviewer3(sysPeople.getId());
//保存审核历史表
visVisitorExamineService.insertVisVisitorExamine(examine);
// 保存审核二维码地址信息
CheckCodeVo codeVo = new CheckCodeVo();
codeVo.setCode(vo.getId() + "&time=" + new Date().getTime());
codeVo.setStuffId(String.valueOf(vo.getId()));
codeVo.setExitId(String.valueOf(vo.getId()));
codeVo.setId(UUID.randomUUID().toString().replace("-", ""));
visitorService.saveVisCheckCode(codeVo);
}
}
//向下级审核人发送审核信息
for (SysPeople people : peopleList) {
String url = getExamineUrl(String.valueOf(vo.getId()), people.getPhone());
log.info("携物申请appove发送审核链接{}", url);
//发送钉钉信息
// String content = getContent(vo);
// visitorController.asyncsendV2(sysPeople.getPhone(), "text", content + url);
String url = getExamineUrl(String.valueOf(vo.getId()), people.getPhone());
log.info("出门证申请appove发送{}审核链接:{}", people.getPhone(), url);
//发送企微信息
try {
visitorController.sendWeCom(sysPeople.getPhone(), url + " --访客姓名:" + vo.getName());
} catch (Exception e) {
log.error("携物申请add-sendWeCom异常", e);
return AjaxResult.error("系统异常,请重新提交或联系管理员!");
}
//发送企微信息
try {
// visitorController.sendWeCom(people.getPhone(), url + " --访客姓名:" + vo.getName());
} catch (Exception e) {
log.error("出门证申请add-sendWeCom异常", e);
throw new ServiceException("系统异常,请重新提交或联系管理员!");
}
//审核拒绝
if (Constants.ONE.equals(vo.getExamineState())) {
//保存审核历史表
visVisitorExamineService.insertVisVisitorExamine(examine);
try {
visitorController.sendWeCom(telephone, vo.getName() + "的访客审核已驳回");
// visitorController.sendWeCom(telephone, vo.getName() + "的访客审核已驳回");
} catch (Exception e) {
log.error("访客approve-sendWeCom驳回异常", e);
}
// 申请人发送短信(审核不通过)
SysPeople sysPeople1 = sysPeopleService.selectSysPeopleById(stuffVo.getUserId());
visitorController.sendMessage(sysPeople1.getPhone(), "1", smsProperties.getTemplate3());
// visitorController.sendMessage(sysPeople1.getPhone(), "1", smsProperties.getTemplate3());
}
visCarryStuffService.updateStaff(vo);
return toAjax(true);
} catch (Exception e) {
log.error("审核异常:", e);
return toAjax(false);
throw new ServiceException("审核异常");
}finally {
redisService.deleteObject(APPROVE_KEY);
}
}
/**
* 查询审核人下拉数据
* @return
*/
@PostMapping("/getReviewerSelect")
public AjaxResult getReviewerSelect(@RequestBody SysPeople people) {
people.setBranchId("0");
List<SysPeople> peopleList = sysPeopleService.selectSysPeopleLists(people);
List<IdNamelVo> list = new ArrayList<>();
peopleList.forEach(item -> {
IdNamelVo vo = new IdNamelVo();
vo.setId(item.getId());
vo.setName(item.getName());
list.add(vo);
});
return AjaxResult.success(list);
}
}

View File

@@ -0,0 +1,63 @@
package com.dcsoft.system.visitor.controller;
import com.dcsoft.common.core.exception.ServiceException;
import com.dcsoft.common.core.web.controller.BaseController;
import com.dcsoft.common.core.web.domain.AjaxResult;
import com.dcsoft.common.core.web.page.TableDataInfo;
import com.dcsoft.common.log.annotation.Log;
import com.dcsoft.common.log.enums.BusinessType;
import com.dcsoft.system.visitor.domain.VisExitOutRecordVo;
import com.dcsoft.system.visitor.service.IVisExitOutRecordService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
@Slf4j
@RestController
@RequestMapping("/exitRecord")
public class VisExitOutRecordController extends BaseController {
@Resource
private IVisExitOutRecordService visExitOutRecordService;
@GetMapping("/list")
public TableDataInfo list(VisExitOutRecordVo vo) {
startPage();
List<VisExitOutRecordVo> list = visExitOutRecordService.selectList(vo);
return getDataTable(list);
}
/**
* 获取出门记录详情
*/
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id) {
VisExitOutRecordVo stuffVo = visExitOutRecordService.selectExitOutRecordById(id);
return success(stuffVo);
}
/**
* 新增访客信息
*/
@Log(title = "新增出门记录", businessType = BusinessType.INSERT)
@PostMapping
@Transactional
public AjaxResult add(@RequestBody VisExitOutRecordVo vo) {
log.info("新增出门记录信息:{}", vo);
try {
//新增出门申请
visExitOutRecordService.insertExitOutRecord(vo);
} catch (Exception e) {
log.error("新增出门记录异常:", e);
throw new ServiceException("系统异常");
}
return AjaxResult.success();
}
}

View File

@@ -337,7 +337,7 @@ public class VisitorController extends BaseController {
String telephone = split[1];
if (StringUtils.equals("2", type)) {
VisCarryStuffVo visCarryStuff = getVisCarryStuff(id, telephone);
VisExitOutVo visCarryStuff = getVisCarryStuff(id, telephone);
visCarryStuff.setTelephone(telephone);
return success(visCarryStuff);
}
@@ -376,15 +376,24 @@ public class VisitorController extends BaseController {
* @param telephone
* @return
*/
private VisCarryStuffVo getVisCarryStuff(Long id, String telephone) {
VisCarryStuffVo stuffVo = visCarryStuffService.selectVisStuffById(id);
CheckCodeVo codeVo = visCarryStuffService.selectStuffCheckCode(id);
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
stuffVo.setStuffTypeName(map.get(stuffVo.getStuffType()));
if (ObjectUtil.isNotNull(codeVo)) {
stuffVo.setQrCode(codeVo.getCode());
private VisExitOutVo getVisCarryStuff(Long id, String telephone) {
VisExitOutVo stuffVo = visCarryStuffService.selectVisStuffById(id);
//查询物品信息列表
VisStuffInfoVo visStuffInfoVo = new VisStuffInfoVo();
visStuffInfoVo.setExitId(stuffVo.getId());
List<VisStuffInfoVo> stuffList = visCarryStuffService.selectStuffList(visStuffInfoVo);
if (CollUtil.isNotEmpty(stuffList)) {
//处理字典
Map<String, String> map = dictDataService.queryDictData("vis_out_stuff_type");
stuffList.forEach(stuff -> {
stuff.setTypeName(map.get(stuff.getType()));
stuff.setBackTypeName(map.get(stuff.getBackType()));
});
stuffVo.setVisStuffInfoList(stuffList);
}
//查询审核流程信息
List<VisitorReviewProcessVo> reviewProcess = visCarryStuffService.queryVisitorReviewProcessList(id);
if(CollUtil.isNotEmpty(reviewProcess)) {
stuffVo.setReviewProcessList(reviewProcess);
@@ -395,11 +404,10 @@ public class VisitorController extends BaseController {
SysPeople sysPeople = sysPeopleService.queryPeopleName(telephone, null);
//如果当前点击链接的审核人员级别小于流程处于的级别,展示已审核的结果
if (Integer.parseInt(sysPeople.getCarryStuffExamine()) < stuffVo.getCurrentNode()) {
if (StringUtils.isNotBlank(sysPeople.getCarryStuffExamine()) && Integer.parseInt(sysPeople.getCarryStuffExamine()) < stuffVo.getCurrentNode()) {
VisitorReviewProcessVo processVo = visCarryStuffService.queryReviewProcessNew(stuffVo);
stuffVo.setExamineState(processVo.getState());
}
}
return stuffVo;
@@ -538,7 +546,7 @@ public class VisitorController extends BaseController {
//发送企微信息
try {
sendWeCom(sysPeople.getPhone(), url + " --访客姓名:" + visitor.getName());
// sendWeCom(sysPeople.getPhone(), url + " --访客姓名:" + visitor.getName());
} catch (Exception e) {
log.error("访客add-sendWeCom异常", e);
}
@@ -1053,7 +1061,7 @@ public class VisitorController extends BaseController {
log.info("approve发送审核链接{}", url);
try {
sendWeCom(nextPeople.getPhone(), url + " --访客姓名:" + visitor.getName());
// sendWeCom(nextPeople.getPhone(), url + " --访客姓名:" + visitor.getName());
} catch (Exception e) {
log.error("访客approve-sendWeCom异常", e);
}
@@ -1096,14 +1104,14 @@ public class VisitorController extends BaseController {
visitorService.updateVisitorReviewProcess(visitor);
try {
sendWeCom(telephone, visitor.getName() + "的访客审核已驳回");
// sendWeCom(telephone, visitor.getName() + "的访客审核已驳回");
} catch (Exception e) {
log.error("访客approve-sendWeCom驳回异常", e);
}
// 申请人发送短信(审核不通过)
log.info("临时日志,发拒绝短信{}", visitor.getPhone());
sendMessage(visitor.getPhone(), "1", smsProperties.getTemplate3());
// sendMessage(visitor.getPhone(), "1", smsProperties.getTemplate3());
}
visitorService.approve(visitor);
@@ -1111,7 +1119,7 @@ public class VisitorController extends BaseController {
return toAjax(true);
} catch (Exception e) {
log.error("审核异常:", e);
return toAjax(false);
throw new ServiceException("审核异常");
}finally {
redisService.deleteObject(APPROVE_KEY);
}

View File

@@ -16,7 +16,7 @@ public class CheckCodeVo {
private String visitorId;
private String stuffId;
private String exitId;
}

View File

@@ -0,0 +1,31 @@
package com.dcsoft.system.visitor.domain;
import com.dcsoft.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class VisExitOutRecordVo extends BaseEntity {
private Long id;
/**
* 保安
*/
private Long userId;
/**
* 保安名字
*/
private String userName;
/**
* 出门申请id
*/
private Long exitId;
}

View File

@@ -1,7 +1,6 @@
package com.dcsoft.system.visitor.domain;
import com.dcsoft.common.core.annotation.Excel;
import com.dcsoft.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@@ -10,10 +9,13 @@ import java.util.Date;
import java.util.List;
@Data
public class VisCarryStuffVo extends BaseEntity {
public class VisExitOutVo extends BaseEntity {
private Long id;
/**
* 发货人申请人
*/
private Long userId;
/**
@@ -26,47 +28,42 @@ public class VisCarryStuffVo extends BaseEntity {
*/
private String name;
/**
* 申请人联系方式
*/
private String phone;
/**
* 出门证编号
*/
private String exitPermitNo;
/**
* 经办人
*/
private String peopleId;
/**
* 申请单位
*/
private String visitingUnit;
/**
* 物品名称
*/
private String stuffName;
/**
* 物品类型
*/
private String stuffType;
/**
* 物品类型名称
*/
private String stuffTypeName;
/**
* 物品数量
*/
private String stuffNumber;
/**
* 交通工具
*/
private String vehicle;
/**
* 现场照片
*/
private String imgUrls;
/**
* 日期
*/
@JsonFormat(pattern = "yyyy-MM-dd")
private Date visTime;
/**
* 车牌
*/
private String carNo;
/**
* 一级审核人
*/
@@ -113,6 +110,11 @@ public class VisCarryStuffVo extends BaseEntity {
*/
private Integer currentNode;
/**
* 物品信息列表
*/
private List<VisStuffInfoVo> visStuffInfoList;
private List<VisitorReviewProcessVo> reviewProcessList;
}

View File

@@ -0,0 +1,140 @@
package com.dcsoft.system.visitor.domain;
import com.dcsoft.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class VisStuffInfoVo extends BaseEntity {
private Long id;
/**
* 出门申请id
*/
private Long exitId;
private List<Long> exitIds;
/**
* 物资名称
*/
private String name;
/**
* 物资用途
*/
private String purpose;
/**
* 物资类型
*/
private String type;
/**
* 物资类型名称
*/
private String typeName;
/**
* 规格型号
*/
private String model;
/**
* 计量单位
*/
private String unit;
/**
* 数量
*/
private Integer number;
/**
* 图片地址
*/
private String imgUrls;
/**
* 图片地址集合
*/
private List<String> imgUrlList;
/**
* 备注
*/
private String remark;
/**
* 是否返厂01
*/
private Integer isBack;
/**
* 返厂日期
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date backTime;
/**
* 返厂物资名称
*/
private String backName;
/**
* 返厂物资用途
*/
private String backPurpose;
/**
* 返厂物资类型
*/
private String backType;
/**
* 返厂物资类型名称
*/
private String backTypeName;
/**
* 返厂规格型号
*/
private String backModel;
/**
* 返厂计量单位
*/
private String backUnit;
/**
* 返厂数量
*/
private Integer backNumber;
/**
* 返厂图片地址
*/
private String backImgUrls;
/**
* 返厂图片地址集合
*/
private List<String> backImgUrlList;
/**
* 返厂备注
*/
private String backRemark;
/**
* 排序
*/
private Integer sort;
}

View File

@@ -31,7 +31,7 @@ public class VisVisitorExamine extends BaseEntity
private Long visitorId;
/** 访客id */
private Long stuffId;
private Long exitId;
/** 准入时间起 */
@Excel(name = "准入时间起")
@@ -66,12 +66,12 @@ passwordPermission 密码权限 */
private String rejectReason;
public Long getStuffId() {
return stuffId;
public Long getExitId() {
return exitId;
}
public void setStuffId(Long stuffId) {
this.stuffId = stuffId;
public void setExitId(Long exitId) {
this.exitId = exitId;
}
public String getRejectReason() {

View File

@@ -1,7 +1,8 @@
package com.dcsoft.system.visitor.mapper;
import com.dcsoft.system.visitor.domain.CheckCodeVo;
import com.dcsoft.system.visitor.domain.VisCarryStuffVo;
import com.dcsoft.system.visitor.domain.VisExitOutVo;
import com.dcsoft.system.visitor.domain.VisStuffInfoVo;
import com.dcsoft.system.visitor.domain.VisitorReviewProcessVo;
import org.apache.ibatis.annotations.Param;
@@ -9,19 +10,23 @@ import java.util.List;
public interface VisCarryStuffMapper {
List<VisCarryStuffVo> selectList(VisCarryStuffVo vo);
List<VisExitOutVo> selectList(VisExitOutVo vo);
void insertVisCarryStuff(VisCarryStuffVo vo);
void insertVisExitOut(VisExitOutVo vo);
VisCarryStuffVo selectVisStuffById(Long id);
VisExitOutVo selectVisStuffById(Long id);
CheckCodeVo selectStuffCheckCode(@Param("stuffId") Long id);
CheckCodeVo selectStuffCheckCode(@Param("exitId") Long id);
void updateStaff(VisCarryStuffVo vo);
void updateStaff(VisExitOutVo vo);
List<VisitorReviewProcessVo> queryVisitorReviewProcessList(Long id);
void saveVisitorReviewProcess(VisCarryStuffVo vo);
void saveVisitorReviewProcess(VisExitOutVo vo);
VisitorReviewProcessVo queryReviewProcessNew(VisCarryStuffVo stuffVo);
VisitorReviewProcessVo queryReviewProcessNew(VisExitOutVo stuffVo);
void insertVisStuffInfo(@Param("list") List<VisStuffInfoVo> visStuffInfoList);
List<VisStuffInfoVo> selectStuffList(VisStuffInfoVo visStuffInfoVo);
}

View File

@@ -0,0 +1,15 @@
package com.dcsoft.system.visitor.mapper;
import com.dcsoft.system.visitor.domain.*;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface VisExitOutRecordMapper {
List<VisExitOutRecordVo> selectList(VisExitOutRecordVo vo);
VisExitOutRecordVo selectExitOutRecordById(Long id);
void insertExitOutRecord(VisExitOutRecordVo vo);
}

View File

@@ -1,27 +1,28 @@
package com.dcsoft.system.visitor.service;
import com.dcsoft.system.visitor.domain.CheckCodeVo;
import com.dcsoft.system.visitor.domain.VisCarryStuffVo;
import com.dcsoft.system.visitor.domain.Visitor;
import com.dcsoft.system.visitor.domain.VisitorReviewProcessVo;
import com.dcsoft.system.visitor.domain.*;
import java.util.List;
public interface IVisCarryStuffService {
List<VisCarryStuffVo> selectList(VisCarryStuffVo vo);
List<VisExitOutVo> selectList(VisExitOutVo vo);
void insertVisCarryStuff(VisCarryStuffVo vo);
void insertVisExitOut(VisExitOutVo vo);
VisCarryStuffVo selectVisStuffById(Long id);
VisExitOutVo selectVisStuffById(Long id);
CheckCodeVo selectStuffCheckCode(Long id);
void updateStaff(VisCarryStuffVo vo);
void updateStaff(VisExitOutVo vo);
List<VisitorReviewProcessVo> queryVisitorReviewProcessList(Long id);
void saveVisitorReviewProcess(VisCarryStuffVo vo);
void saveVisitorReviewProcess(VisExitOutVo vo);
VisitorReviewProcessVo queryReviewProcessNew(VisCarryStuffVo stuffVo);
VisitorReviewProcessVo queryReviewProcessNew(VisExitOutVo stuffVo);
void insertVisStuffInfo(List<VisStuffInfoVo> visStuffInfoList);
List<VisStuffInfoVo> selectStuffList(VisStuffInfoVo vo);
}

View File

@@ -0,0 +1,14 @@
package com.dcsoft.system.visitor.service;
import com.dcsoft.system.visitor.domain.*;
import java.util.List;
public interface IVisExitOutRecordService {
List<VisExitOutRecordVo> selectList(VisExitOutRecordVo vo);
VisExitOutRecordVo selectExitOutRecordById(Long id);
void insertExitOutRecord(VisExitOutRecordVo vo);
}

View File

@@ -4,10 +4,7 @@ import com.dcsoft.common.core.constant.Constants;
import com.dcsoft.common.core.enums.ExamineEnum;
import com.dcsoft.common.security.utils.SecurityUtils;
import com.dcsoft.system.api.model.LoginUser;
import com.dcsoft.system.visitor.domain.CheckCodeVo;
import com.dcsoft.system.visitor.domain.VisCarryStuffVo;
import com.dcsoft.system.visitor.domain.Visitor;
import com.dcsoft.system.visitor.domain.VisitorReviewProcessVo;
import com.dcsoft.system.visitor.domain.*;
import com.dcsoft.system.visitor.mapper.VisCarryStuffMapper;
import com.dcsoft.system.visitor.mapper.VisitorMapper;
import com.dcsoft.system.visitor.service.IVisCarryStuffService;
@@ -30,21 +27,33 @@ public class VisCarryStuffImpl implements IVisCarryStuffService {
private VisitorMapper visitorMapper;
@Override
public List<VisCarryStuffVo> selectList(VisCarryStuffVo vo) {
public List<VisExitOutVo> selectList(VisExitOutVo vo) {
return visCarryStuffMapper.selectList(vo);
}
@Override
public void insertVisCarryStuff(VisCarryStuffVo vo) {
public void insertVisExitOut(VisExitOutVo vo) {
LoginUser loginUser = SecurityUtils.getLoginUser();
vo.setCreateBy(loginUser.getUsername());
vo.setUserId(loginUser.getUserid());
vo.setExamineState(ExamineEnum.IN_REVIEW.getCode());
vo.setExamineState(ExamineEnum.IN_REVIEW.getCode());
visCarryStuffMapper.insertVisCarryStuff(vo);
visCarryStuffMapper.insertVisExitOut(vo);
}
@Override
public VisCarryStuffVo selectVisStuffById(Long id) {
public void insertVisStuffInfo(List<VisStuffInfoVo> visStuffInfoList) {
LoginUser loginUser = SecurityUtils.getLoginUser();
visStuffInfoList.forEach(vo -> vo.setCreateBy(loginUser.getUsername()));
visCarryStuffMapper.insertVisStuffInfo(visStuffInfoList);
}
@Override
public List<VisStuffInfoVo> selectStuffList(VisStuffInfoVo visStuffInfoVo) {
return visCarryStuffMapper.selectStuffList(visStuffInfoVo);
}
@Override
public VisExitOutVo selectVisStuffById(Long id) {
return visCarryStuffMapper.selectVisStuffById(id);
}
@@ -54,7 +63,7 @@ public class VisCarryStuffImpl implements IVisCarryStuffService {
}
@Override
public void updateStaff(VisCarryStuffVo vo) {
public void updateStaff(VisExitOutVo vo) {
visCarryStuffMapper.updateStaff(vo);
}
@@ -64,12 +73,12 @@ public class VisCarryStuffImpl implements IVisCarryStuffService {
}
@Override
public void saveVisitorReviewProcess(VisCarryStuffVo vo) {
public void saveVisitorReviewProcess(VisExitOutVo vo) {
visCarryStuffMapper.saveVisitorReviewProcess(vo);
}
@Override
public VisitorReviewProcessVo queryReviewProcessNew(VisCarryStuffVo stuffVo) {
public VisitorReviewProcessVo queryReviewProcessNew(VisExitOutVo stuffVo) {
return visCarryStuffMapper.queryReviewProcessNew(stuffVo);
}
}

View File

@@ -0,0 +1,38 @@
package com.dcsoft.system.visitor.service.impl;
import com.dcsoft.common.core.enums.ExamineEnum;
import com.dcsoft.common.security.utils.SecurityUtils;
import com.dcsoft.system.api.model.LoginUser;
import com.dcsoft.system.visitor.domain.*;
import com.dcsoft.system.visitor.mapper.VisCarryStuffMapper;
import com.dcsoft.system.visitor.mapper.VisExitOutRecordMapper;
import com.dcsoft.system.visitor.mapper.VisitorMapper;
import com.dcsoft.system.visitor.service.IVisCarryStuffService;
import com.dcsoft.system.visitor.service.IVisExitOutRecordService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
@Service
public class VisExitOutRecordImpl implements IVisExitOutRecordService {
@Resource
private VisExitOutRecordMapper visExitOutRecordMapper;
@Override
public List<VisExitOutRecordVo> selectList(VisExitOutRecordVo vo) {
return visExitOutRecordMapper.selectList(vo);
}
@Override
public VisExitOutRecordVo selectExitOutRecordById(Long id) {
return visExitOutRecordMapper.selectExitOutRecordById(id);
}
@Override
public void insertExitOutRecord(VisExitOutRecordVo vo) {
visExitOutRecordMapper.insertExitOutRecord(vo);
}
}