From 19898f3a173383540671a45a6f8ff57e76dfe1df Mon Sep 17 00:00:00 2001 From: GPU is all you need <2778335106@qq.com> Date: Mon, 17 Oct 2022 15:39:39 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E5=A2=9E=E5=8A=A0=E6=8A=A5=E5=A4=87?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=8E=A5=E5=8F=A3=EF=BC=8C=E5=92=8C=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/IORecordsController.java | 12 ++ .../ncst/ioreport/mapper/IORecordsMapper.java | 2 + .../ioreport/service/IIORecordService.java | 3 + .../service/impl/IORecordServiceImpl.java | 104 +++++++++++++++--- .../service/impl/ResourceServiceImpl.java | 2 + .../main/resources/mapping/IORecordMapper.xml | 18 ++- .../miniprogram/pages/audit/detail/index.scss | 3 +- .../miniprogram/pages/audit/detail/index.ts | 31 ++++-- .../miniprogram/pages/audit/list/auditList.ts | 13 +-- .../pages/audit/list/auditList.wxml | 3 - .../services/mods/iORecords/denyIORecord.ts | 33 ++++++ .../services/mods/iORecords/index.ts | 5 + .../services/mods/iORecords/passIORecord.ts | 33 ++++++ 13 files changed, 224 insertions(+), 38 deletions(-) create mode 100644 IOReportSysMP/miniprogram/services/mods/iORecords/denyIORecord.ts create mode 100644 IOReportSysMP/miniprogram/services/mods/iORecords/passIORecord.ts diff --git a/IOReportSysBE/src/main/java/edu/ncst/ioreport/controller/IORecordsController.java b/IOReportSysBE/src/main/java/edu/ncst/ioreport/controller/IORecordsController.java index 04027ee..0262519 100644 --- a/IOReportSysBE/src/main/java/edu/ncst/ioreport/controller/IORecordsController.java +++ b/IOReportSysBE/src/main/java/edu/ncst/ioreport/controller/IORecordsController.java @@ -49,4 +49,16 @@ public class IORecordsController { int id = iioRecordService.addIORecord(param); return ResultUtils.success(Integer.valueOf(id)); } + @ApiOperation("根据记录ID获取记录详细信息") + @GetMapping("/pass") + public ResultVO passIORecord(@RequestParam Integer recordId){ + iioRecordService.passIORecord(recordId); + return ResultUtils.success("通过成功"); + } + @ApiOperation("根据记录ID获取记录详细信息") + @GetMapping("/deny") + public ResultVO denyIORecord(@RequestParam Integer recordId){ + iioRecordService.denyIORecord(recordId); + return ResultUtils.success("拒绝成功"); + } } diff --git a/IOReportSysBE/src/main/java/edu/ncst/ioreport/mapper/IORecordsMapper.java b/IOReportSysBE/src/main/java/edu/ncst/ioreport/mapper/IORecordsMapper.java index 236f134..3556b6a 100644 --- a/IOReportSysBE/src/main/java/edu/ncst/ioreport/mapper/IORecordsMapper.java +++ b/IOReportSysBE/src/main/java/edu/ncst/ioreport/mapper/IORecordsMapper.java @@ -14,6 +14,8 @@ import java.util.List; public interface IORecordsMapper extends BaseMapper { int insertAndGetId(IORecords record); + int auditIORecord(IORecords record); + List selectAuditList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); IORecords selectDetail(@Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/IIORecordService.java b/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/IIORecordService.java index 4189446..23a970e 100644 --- a/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/IIORecordService.java +++ b/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/IIORecordService.java @@ -14,4 +14,7 @@ public interface IIORecordService { int addIORecord(IORecords record); List getIORecordsAuditList(QRecord param); + + void passIORecord(Integer recordId); + void denyIORecord(Integer recordId); } diff --git a/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/impl/IORecordServiceImpl.java b/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/impl/IORecordServiceImpl.java index 39461c3..38cea01 100644 --- a/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/impl/IORecordServiceImpl.java +++ b/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/impl/IORecordServiceImpl.java @@ -1,5 +1,6 @@ package edu.ncst.ioreport.service.impl; +import afu.org.checkerframework.checker.oigj.qual.O; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; @@ -8,7 +9,6 @@ import edu.ncst.ioreport.exception.BusinessException; import edu.ncst.ioreport.exception.CodeMsg; import edu.ncst.ioreport.mapper.IORecordsMapper; import edu.ncst.ioreport.model.IORecords; -import edu.ncst.ioreport.model.User; import edu.ncst.ioreport.service.IIORecordService; import edu.ncst.ioreport.utils.SessionUtils; import edu.ncst.ioreport.vo.QRToken; @@ -18,9 +18,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.Date; import java.util.List; -import java.util.Random; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; @Service public class IORecordServiceImpl implements IIORecordService { @@ -28,6 +29,7 @@ public class IORecordServiceImpl implements IIORecordService { private IORecordsMapper recordsMapper; @Autowired private RedisTemplate stringRedisTemplate; + @Override public List getIORecordsList(QRecord query) { IORecords ioRecords = new IORecords(); @@ -78,7 +80,7 @@ public class IORecordServiceImpl implements IIORecordService { } @Override public IORecords getIORecordsDetail(Integer ID) { - if(null==ID){ + if (null == ID) { throw new BusinessException(CodeMsg.PARAM_ERROR.fillArgs("记录单ID为空")); } @@ -86,22 +88,22 @@ public class IORecordServiceImpl implements IIORecordService { queryWrapper.eq("id",ID); IORecords records = recordsMapper.selectDetail(queryWrapper); - if(records.getStatus().compareTo("SCHOOL_PASS")==0){ - if(!stringRedisTemplate.hasKey("qrToken_"+ID)){ + if (records.getStatus().compareTo("SCHOOL_PASS") == 0) { + if (!stringRedisTemplate.hasKey("qrToken_" + ID)) { QRToken qrToken = new QRToken(); qrToken.setRecordID(ID); - stringRedisTemplate.opsForValue().set("qrToken_"+ID,JSON.toJSONString(qrToken),1, TimeUnit.MINUTES); + stringRedisTemplate.opsForValue().set("qrToken_" + ID, JSON.toJSONString(qrToken), 1, TimeUnit.MINUTES); } - String qrTokenStr = stringRedisTemplate.opsForValue().get("qrToken_"+ID); - QRToken qrToken = JSON.parseObject(qrTokenStr,QRToken.class); - if(qrToken!=null){ - Long seconds = stringRedisTemplate.getExpire("qrToken_"+ID); + String qrTokenStr = stringRedisTemplate.opsForValue().get("qrToken_" + ID); + QRToken qrToken = JSON.parseObject(qrTokenStr, QRToken.class); + if (qrToken != null) { + Long seconds = stringRedisTemplate.getExpire("qrToken_" + ID); qrToken.setExpireTime(seconds); records.setQrToken(qrToken); } } - if(null==records){ + if (null == records) { throw new BusinessException("记录不存在"); } return records; @@ -111,18 +113,88 @@ public class IORecordServiceImpl implements IIORecordService { public int addIORecord(IORecords record) { UserInfoVO user = SessionUtils.getCurrentUser(); List roles = user.getRoles(); - if(roles==null||(roles.size()==1&&user.getRoles().get(0).compareTo("DOORMEN")==0)){ + if(roles==null||(roles.size()==1&&user.getRoles().get(0).compareTo("DOOR_GUARD")==0)){ throw new BusinessException(CodeMsg.CAN_NOT_DATA_ACCESS); } - if(user.getTeacherID().compareTo(record.getTeacherID())!=0){ - throw new BusinessException(CodeMsg.BUSINESS_ERROR.fillArgs("当前用户为"+user.getTeacherID()+",与单据中提交人不一致")); + if (user.getTeacherID().compareTo(record.getTeacherID()) != 0) { + throw new BusinessException(CodeMsg.BUSINESS_ERROR.fillArgs("当前用户为" + user.getTeacherID() + ",与单据中提交人不一致")); } record.setStatus("SUBMIT"); int id = recordsMapper.insertAndGetId(record); - if(id==1){ + if (id == 1) { return record.getId(); - }else{ + } else { throw new BusinessException(CodeMsg.ADD_ERROR); } } + + // 审核通过接口 + @Override + public void passIORecord(Integer recordId) { + if (null == recordId) { + throw new BusinessException(CodeMsg.PARAM_ERROR.fillArgs("记录单ID为空")); + } + // user 是审核人信息 + IORecords ioRecords = recordsMapper.selectById(recordId); + if (ioRecords == null) { + throw new BusinessException("记录不存在"); + } +// if (!ioRecords.getStatus().equals("SUBMIT")) { +// throw new BusinessException("记录不存在"); +// } + UserInfoVO user = SessionUtils.getCurrentUser(); + List roles = user.getRoles(); + List res_1 = roles.stream().filter(role -> role.equals("SCHOOL_AUDITOR") || role.equals("DEPART_AUDITOR")).collect(Collectors.toList()); + if (res_1.size() == 0) { + throw new BusinessException(CodeMsg.CAN_NOT_DATA_ACCESS); + } + List res_2 = res_1.stream().filter(role -> role.equals("DEPT_AUDITOR")).collect(Collectors.toList()); + if (res_2.size() != 0) { + ioRecords.setStatus("DEPT_PASS"); + ioRecords.setDeptAuditorID(user.getUserID()); + ioRecords.setDeptAuditTime(new Date()); + } + List res_3 = res_1.stream().filter(role -> role.equals("SCHOOL_AUDITOR")).collect(Collectors.toList()); + if (res_3.size() != 0) { + ioRecords.setStatus("SCHOOL_PASS"); + ioRecords.setSchoolAuditorID(user.getUserID()); + ioRecords.setSchoolAuditTime(new Date()); + } + // 更新数据库 + recordsMapper.auditIORecord(ioRecords); + } + + // 审核通过接口 + @Override + public void denyIORecord(Integer recordId) { + if (null == recordId) { + throw new BusinessException(CodeMsg.PARAM_ERROR.fillArgs("记录单ID为空")); + } + // user 是审核人信息 + IORecords ioRecords = recordsMapper.selectById(recordId); + if (ioRecords == null) { + throw new BusinessException("记录不存在"); + } + UserInfoVO user = SessionUtils.getCurrentUser(); + List roles = user.getRoles(); + List res_1 = roles.stream().filter(role -> role.equals("SCHOOL_AUDITOR") || role.equals("DEPART_AUDITOR")).collect(Collectors.toList()); + if (res_1.size() == 0) { + throw new BusinessException(CodeMsg.CAN_NOT_DATA_ACCESS); + } + List res_2 = res_1.stream().filter(role -> role.equals("DEPT_AUDITOR")).collect(Collectors.toList()); + if (res_2.size() != 0) { + ioRecords.setStatus("DEPT_DENY"); + ioRecords.setDeptAuditorID(user.getUserID()); + ioRecords.setDeptAuditTime(new Date()); + } + List res_3 = res_1.stream().filter(role -> role.equals("SCHOOL_AUDITOR")).collect(Collectors.toList()); + if (res_3.size() != 0) { + ioRecords.setStatus("SCHOOL_DENY"); + ioRecords.setSchoolAuditorID(user.getUserID()); + ioRecords.setSchoolAuditTime(new Date()); + } + // 更新数据库 + recordsMapper.auditIORecord(ioRecords); + } + } diff --git a/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/impl/ResourceServiceImpl.java b/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/impl/ResourceServiceImpl.java index 5e0a453..e091358 100644 --- a/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/impl/ResourceServiceImpl.java +++ b/IOReportSysBE/src/main/java/edu/ncst/ioreport/service/impl/ResourceServiceImpl.java @@ -59,6 +59,8 @@ public class ResourceServiceImpl implements IResourceService { urls.add("/api/records/list"); urls.add("/api/records/audit-list"); urls.add("/api/records/add"); + urls.add("/api/records/pass"); + urls.add("/api/records/deny"); return urls; } } diff --git a/IOReportSysBE/src/main/resources/mapping/IORecordMapper.xml b/IOReportSysBE/src/main/resources/mapping/IORecordMapper.xml index 0f1133e..4d354c5 100644 --- a/IOReportSysBE/src/main/resources/mapping/IORecordMapper.xml +++ b/IOReportSysBE/src/main/resources/mapping/IORecordMapper.xml @@ -10,8 +10,24 @@ insert into iorecords (teacherid,iotype,outerResidence,innerResidence,reason,committime,status) - values(#{teacherID},#{ioType},#{outerResidence},#{innerResidence},#{reason},#{commitTime},#{status}) + values(1,#{ioType},#{outerResidence},#{innerResidence},#{reason},#{commitTime},#{status}) + + update iorecords set teacherid = #{teacherID}, + + set deptAuditorID = #{deptAuditorID}, + + + set DeptAuditTime = #{deptAuditTime}, + + + set SchoolAuditorID = #{schoolAuditorID}, + + + set SchoolAuditTime = #{schoolAuditTime}, + + status = #{status} where id = #{id} +