兴安出门证申请开发
This commit is contained in:
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ public class CheckCodeVo {
|
||||
|
||||
private String visitorId;
|
||||
|
||||
private String stuffId;
|
||||
private String exitId;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
/**
|
||||
* 是否返厂0:否,1:是
|
||||
*/
|
||||
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;
|
||||
|
||||
|
||||
}
|
||||
@@ -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() {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user