diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java index 16df306..9cce542 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -26,35 +27,39 @@ public class VisitorApply { @TableId private Long id; - @ExcelProperty(value = "访客姓名",order = 1) + @ExcelProperty(value = "访客姓名",order = 2) private String visitorName; + @TableField(exist = false) + @ExcelProperty(value = "申请类型",order = 1) + private final String applyType = "0"; @ExcelProperty(value = "访客申请单号",order = 0) private String applyNo; - @ExcelProperty(value = "申请者工号",order = 8) + @ExcelProperty(value = "申请者工号",order = 9) private String staffCode; - @ExcelProperty(value = "申请者姓名",order = 9) + @ExcelProperty(value = "申请者姓名",order = 10) private String staffName; - @ExcelProperty(value = "访客身份证",order = 2) + @ExcelProperty(value = "访客身份证",order = 3) private String visitorIdCard; - @ExcelProperty(value = "访客联系方式",order = 3) + @ExcelProperty(value = "访客联系方式",order = 4) private String visitorPhone; - @ExcelProperty(value = "访问目的",order = 4) + @ExcelProperty(value = "访问目的",order = 5) private String visitReason; - @ExcelProperty(value = "访问楼栋",order = 5) + @ExcelProperty(value = "访问楼栋",order = 6) private String visitPosition; - @ExcelProperty(value = "备注",order = 12) + @ExcelProperty(value = "备注",order = 13) private String remarks; - @ExcelProperty(value = "访问开始时间",order = 6) + @ExcelProperty(value = "访问开始时间",order = 7) private String inTime; - @ExcelProperty(value = "访问结束时间",order = 7) + @ExcelProperty(value = "访问结束时间",order = 8) private String outTime; - @ExcelProperty(value = "状态",order = 11) + @ExcelProperty(value = "状态",order = 12) private String visitorApplyStatus; private String adminVisitorApplyStatus; - @ExcelProperty(value = "申请者联系方式",order = 10) + @ExcelProperty(value = "申请者联系方式",order = 11) private String staffPhone; - + @TableField(exist = false) + private String visitDate; private String createTime; private String updateTime; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java index 16df306..9cce542 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -26,35 +27,39 @@ public class VisitorApply { @TableId private Long id; - @ExcelProperty(value = "访客姓名",order = 1) + @ExcelProperty(value = "访客姓名",order = 2) private String visitorName; + @TableField(exist = false) + @ExcelProperty(value = "申请类型",order = 1) + private final String applyType = "0"; @ExcelProperty(value = "访客申请单号",order = 0) private String applyNo; - @ExcelProperty(value = "申请者工号",order = 8) + @ExcelProperty(value = "申请者工号",order = 9) private String staffCode; - @ExcelProperty(value = "申请者姓名",order = 9) + @ExcelProperty(value = "申请者姓名",order = 10) private String staffName; - @ExcelProperty(value = "访客身份证",order = 2) + @ExcelProperty(value = "访客身份证",order = 3) private String visitorIdCard; - @ExcelProperty(value = "访客联系方式",order = 3) + @ExcelProperty(value = "访客联系方式",order = 4) private String visitorPhone; - @ExcelProperty(value = "访问目的",order = 4) + @ExcelProperty(value = "访问目的",order = 5) private String visitReason; - @ExcelProperty(value = "访问楼栋",order = 5) + @ExcelProperty(value = "访问楼栋",order = 6) private String visitPosition; - @ExcelProperty(value = "备注",order = 12) + @ExcelProperty(value = "备注",order = 13) private String remarks; - @ExcelProperty(value = "访问开始时间",order = 6) + @ExcelProperty(value = "访问开始时间",order = 7) private String inTime; - @ExcelProperty(value = "访问结束时间",order = 7) + @ExcelProperty(value = "访问结束时间",order = 8) private String outTime; - @ExcelProperty(value = "状态",order = 11) + @ExcelProperty(value = "状态",order = 12) private String visitorApplyStatus; private String adminVisitorApplyStatus; - @ExcelProperty(value = "申请者联系方式",order = 10) + @ExcelProperty(value = "申请者联系方式",order = 11) private String staffPhone; - + @TableField(exist = false) + private String visitDate; private String createTime; private String updateTime; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java index dba4a59..2eacfaf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java @@ -1,12 +1,19 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + /** * @Description: * @Author: wangpeng * @Date: 2022/11/17 13:48 */ public interface MessageService { - Object list(MessageListRequest messageListRequest); + Page list(Page page,MessageDto dto); + + void exportList(MessageDto dto, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java index 16df306..9cce542 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -26,35 +27,39 @@ public class VisitorApply { @TableId private Long id; - @ExcelProperty(value = "访客姓名",order = 1) + @ExcelProperty(value = "访客姓名",order = 2) private String visitorName; + @TableField(exist = false) + @ExcelProperty(value = "申请类型",order = 1) + private final String applyType = "0"; @ExcelProperty(value = "访客申请单号",order = 0) private String applyNo; - @ExcelProperty(value = "申请者工号",order = 8) + @ExcelProperty(value = "申请者工号",order = 9) private String staffCode; - @ExcelProperty(value = "申请者姓名",order = 9) + @ExcelProperty(value = "申请者姓名",order = 10) private String staffName; - @ExcelProperty(value = "访客身份证",order = 2) + @ExcelProperty(value = "访客身份证",order = 3) private String visitorIdCard; - @ExcelProperty(value = "访客联系方式",order = 3) + @ExcelProperty(value = "访客联系方式",order = 4) private String visitorPhone; - @ExcelProperty(value = "访问目的",order = 4) + @ExcelProperty(value = "访问目的",order = 5) private String visitReason; - @ExcelProperty(value = "访问楼栋",order = 5) + @ExcelProperty(value = "访问楼栋",order = 6) private String visitPosition; - @ExcelProperty(value = "备注",order = 12) + @ExcelProperty(value = "备注",order = 13) private String remarks; - @ExcelProperty(value = "访问开始时间",order = 6) + @ExcelProperty(value = "访问开始时间",order = 7) private String inTime; - @ExcelProperty(value = "访问结束时间",order = 7) + @ExcelProperty(value = "访问结束时间",order = 8) private String outTime; - @ExcelProperty(value = "状态",order = 11) + @ExcelProperty(value = "状态",order = 12) private String visitorApplyStatus; private String adminVisitorApplyStatus; - @ExcelProperty(value = "申请者联系方式",order = 10) + @ExcelProperty(value = "申请者联系方式",order = 11) private String staffPhone; - + @TableField(exist = false) + private String visitDate; private String createTime; private String updateTime; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java index dba4a59..2eacfaf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java @@ -1,12 +1,19 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + /** * @Description: * @Author: wangpeng * @Date: 2022/11/17 13:48 */ public interface MessageService { - Object list(MessageListRequest messageListRequest); + Page list(Page page,MessageDto dto); + + void exportList(MessageDto dto, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 519da83..0289c88 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -1,19 +1,16 @@ package com.casic.missiles.modular.system.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; -public interface UserActionService extends IService { - - Object getUserType(); +public interface UserActionService extends IService { Object userRegister(UserDto userDto); @@ -33,9 +30,19 @@ Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); - void exportStaffList(Long page,Long limit,HttpServletResponse response); + void exportStaffList(UserRequest request,HttpServletResponse response); Object batchImportStaff(List list); Object logOut(HttpServletRequest request); + + Page getUserList(Page page, UserRequest request); + + Object addUser(StaffInfoDto userDto); + + Object delUser(IdsDTO idsDTOd); + + Object updateUser(StaffInfoDto staffInfoDto); + + void download(String fileId,HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java index 16df306..9cce542 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -26,35 +27,39 @@ public class VisitorApply { @TableId private Long id; - @ExcelProperty(value = "访客姓名",order = 1) + @ExcelProperty(value = "访客姓名",order = 2) private String visitorName; + @TableField(exist = false) + @ExcelProperty(value = "申请类型",order = 1) + private final String applyType = "0"; @ExcelProperty(value = "访客申请单号",order = 0) private String applyNo; - @ExcelProperty(value = "申请者工号",order = 8) + @ExcelProperty(value = "申请者工号",order = 9) private String staffCode; - @ExcelProperty(value = "申请者姓名",order = 9) + @ExcelProperty(value = "申请者姓名",order = 10) private String staffName; - @ExcelProperty(value = "访客身份证",order = 2) + @ExcelProperty(value = "访客身份证",order = 3) private String visitorIdCard; - @ExcelProperty(value = "访客联系方式",order = 3) + @ExcelProperty(value = "访客联系方式",order = 4) private String visitorPhone; - @ExcelProperty(value = "访问目的",order = 4) + @ExcelProperty(value = "访问目的",order = 5) private String visitReason; - @ExcelProperty(value = "访问楼栋",order = 5) + @ExcelProperty(value = "访问楼栋",order = 6) private String visitPosition; - @ExcelProperty(value = "备注",order = 12) + @ExcelProperty(value = "备注",order = 13) private String remarks; - @ExcelProperty(value = "访问开始时间",order = 6) + @ExcelProperty(value = "访问开始时间",order = 7) private String inTime; - @ExcelProperty(value = "访问结束时间",order = 7) + @ExcelProperty(value = "访问结束时间",order = 8) private String outTime; - @ExcelProperty(value = "状态",order = 11) + @ExcelProperty(value = "状态",order = 12) private String visitorApplyStatus; private String adminVisitorApplyStatus; - @ExcelProperty(value = "申请者联系方式",order = 10) + @ExcelProperty(value = "申请者联系方式",order = 11) private String staffPhone; - + @TableField(exist = false) + private String visitDate; private String createTime; private String updateTime; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java index dba4a59..2eacfaf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java @@ -1,12 +1,19 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + /** * @Description: * @Author: wangpeng * @Date: 2022/11/17 13:48 */ public interface MessageService { - Object list(MessageListRequest messageListRequest); + Page list(Page page,MessageDto dto); + + void exportList(MessageDto dto, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 519da83..0289c88 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -1,19 +1,16 @@ package com.casic.missiles.modular.system.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; -public interface UserActionService extends IService { - - Object getUserType(); +public interface UserActionService extends IService { Object userRegister(UserDto userDto); @@ -33,9 +30,19 @@ Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); - void exportStaffList(Long page,Long limit,HttpServletResponse response); + void exportStaffList(UserRequest request,HttpServletResponse response); Object batchImportStaff(List list); Object logOut(HttpServletRequest request); + + Page getUserList(Page page, UserRequest request); + + Object addUser(StaffInfoDto userDto); + + Object delUser(IdsDTO idsDTOd); + + Object updateUser(StaffInfoDto staffInfoDto); + + void download(String fileId,HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index d7e1618..d20e7ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -9,6 +9,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -30,4 +32,12 @@ Object getMessageList(Page> page,HttpServletRequest request); void exportMessage(IdsDTO idsDTO, HttpServletResponse response); + + Object delApply(String applyId, HttpServletRequest request) throws ParseException; + + Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException; + + Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request); + + void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java index 16df306..9cce542 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -26,35 +27,39 @@ public class VisitorApply { @TableId private Long id; - @ExcelProperty(value = "访客姓名",order = 1) + @ExcelProperty(value = "访客姓名",order = 2) private String visitorName; + @TableField(exist = false) + @ExcelProperty(value = "申请类型",order = 1) + private final String applyType = "0"; @ExcelProperty(value = "访客申请单号",order = 0) private String applyNo; - @ExcelProperty(value = "申请者工号",order = 8) + @ExcelProperty(value = "申请者工号",order = 9) private String staffCode; - @ExcelProperty(value = "申请者姓名",order = 9) + @ExcelProperty(value = "申请者姓名",order = 10) private String staffName; - @ExcelProperty(value = "访客身份证",order = 2) + @ExcelProperty(value = "访客身份证",order = 3) private String visitorIdCard; - @ExcelProperty(value = "访客联系方式",order = 3) + @ExcelProperty(value = "访客联系方式",order = 4) private String visitorPhone; - @ExcelProperty(value = "访问目的",order = 4) + @ExcelProperty(value = "访问目的",order = 5) private String visitReason; - @ExcelProperty(value = "访问楼栋",order = 5) + @ExcelProperty(value = "访问楼栋",order = 6) private String visitPosition; - @ExcelProperty(value = "备注",order = 12) + @ExcelProperty(value = "备注",order = 13) private String remarks; - @ExcelProperty(value = "访问开始时间",order = 6) + @ExcelProperty(value = "访问开始时间",order = 7) private String inTime; - @ExcelProperty(value = "访问结束时间",order = 7) + @ExcelProperty(value = "访问结束时间",order = 8) private String outTime; - @ExcelProperty(value = "状态",order = 11) + @ExcelProperty(value = "状态",order = 12) private String visitorApplyStatus; private String adminVisitorApplyStatus; - @ExcelProperty(value = "申请者联系方式",order = 10) + @ExcelProperty(value = "申请者联系方式",order = 11) private String staffPhone; - + @TableField(exist = false) + private String visitDate; private String createTime; private String updateTime; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java index dba4a59..2eacfaf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java @@ -1,12 +1,19 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + /** * @Description: * @Author: wangpeng * @Date: 2022/11/17 13:48 */ public interface MessageService { - Object list(MessageListRequest messageListRequest); + Page list(Page page,MessageDto dto); + + void exportList(MessageDto dto, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 519da83..0289c88 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -1,19 +1,16 @@ package com.casic.missiles.modular.system.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; -public interface UserActionService extends IService { - - Object getUserType(); +public interface UserActionService extends IService { Object userRegister(UserDto userDto); @@ -33,9 +30,19 @@ Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); - void exportStaffList(Long page,Long limit,HttpServletResponse response); + void exportStaffList(UserRequest request,HttpServletResponse response); Object batchImportStaff(List list); Object logOut(HttpServletRequest request); + + Page getUserList(Page page, UserRequest request); + + Object addUser(StaffInfoDto userDto); + + Object delUser(IdsDTO idsDTOd); + + Object updateUser(StaffInfoDto staffInfoDto); + + void download(String fileId,HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index d7e1618..d20e7ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -9,6 +9,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -30,4 +32,12 @@ Object getMessageList(Page> page,HttpServletRequest request); void exportMessage(IdsDTO idsDTO, HttpServletResponse response); + + Object delApply(String applyId, HttpServletRequest request) throws ParseException; + + Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException; + + Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request); + + void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java index 74222c1..f195b37 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java @@ -1,10 +1,22 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.modular.system.dao.MessageMapper; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.enums.VisitorApplyStatusDict; import com.casic.missiles.modular.system.service.MessageService; +import dm.jdbc.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -13,8 +25,34 @@ @Slf4j @Service public class MessageServiceImpl implements MessageService { + + @Resource + private MessageMapper messageMapper; + + @Resource + private IBaseExportService iBaseExportService; + @Override - public Object list(MessageListRequest messageListRequest) { - return null; + public Page list(Page page, MessageDto dto) { + Page result = messageMapper.list(page,dto); + result.setRecords(handleData(result.getRecords())); + return result; + } + + @Override + public void exportList(MessageDto dto, HttpServletResponse response) throws IOException { + List result = messageMapper.list(dto); + iBaseExportService.exportExcel(response, MessageDto.class,handleData(result), "sheet"); + } + private List handleData(List list){ + for (MessageDto messageDto : list) { + messageDto.setStatus(messageDto.getStatus().equals("0")?"发送成功":"发送失败"); + switch (messageDto.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_SUBMITTED:messageDto.setVisitorApplyStatus("已提交");break; + case VisitorApplyStatusDict.APPLY_PASSED:messageDto.setVisitorApplyStatus("已通过");break; + case VisitorApplyStatusDict.APPLY_FAILED:messageDto.setVisitorApplyStatus("未通过");break; + } + } + return list; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java index 16df306..9cce542 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -26,35 +27,39 @@ public class VisitorApply { @TableId private Long id; - @ExcelProperty(value = "访客姓名",order = 1) + @ExcelProperty(value = "访客姓名",order = 2) private String visitorName; + @TableField(exist = false) + @ExcelProperty(value = "申请类型",order = 1) + private final String applyType = "0"; @ExcelProperty(value = "访客申请单号",order = 0) private String applyNo; - @ExcelProperty(value = "申请者工号",order = 8) + @ExcelProperty(value = "申请者工号",order = 9) private String staffCode; - @ExcelProperty(value = "申请者姓名",order = 9) + @ExcelProperty(value = "申请者姓名",order = 10) private String staffName; - @ExcelProperty(value = "访客身份证",order = 2) + @ExcelProperty(value = "访客身份证",order = 3) private String visitorIdCard; - @ExcelProperty(value = "访客联系方式",order = 3) + @ExcelProperty(value = "访客联系方式",order = 4) private String visitorPhone; - @ExcelProperty(value = "访问目的",order = 4) + @ExcelProperty(value = "访问目的",order = 5) private String visitReason; - @ExcelProperty(value = "访问楼栋",order = 5) + @ExcelProperty(value = "访问楼栋",order = 6) private String visitPosition; - @ExcelProperty(value = "备注",order = 12) + @ExcelProperty(value = "备注",order = 13) private String remarks; - @ExcelProperty(value = "访问开始时间",order = 6) + @ExcelProperty(value = "访问开始时间",order = 7) private String inTime; - @ExcelProperty(value = "访问结束时间",order = 7) + @ExcelProperty(value = "访问结束时间",order = 8) private String outTime; - @ExcelProperty(value = "状态",order = 11) + @ExcelProperty(value = "状态",order = 12) private String visitorApplyStatus; private String adminVisitorApplyStatus; - @ExcelProperty(value = "申请者联系方式",order = 10) + @ExcelProperty(value = "申请者联系方式",order = 11) private String staffPhone; - + @TableField(exist = false) + private String visitDate; private String createTime; private String updateTime; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java index dba4a59..2eacfaf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java @@ -1,12 +1,19 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + /** * @Description: * @Author: wangpeng * @Date: 2022/11/17 13:48 */ public interface MessageService { - Object list(MessageListRequest messageListRequest); + Page list(Page page,MessageDto dto); + + void exportList(MessageDto dto, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 519da83..0289c88 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -1,19 +1,16 @@ package com.casic.missiles.modular.system.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; -public interface UserActionService extends IService { - - Object getUserType(); +public interface UserActionService extends IService { Object userRegister(UserDto userDto); @@ -33,9 +30,19 @@ Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); - void exportStaffList(Long page,Long limit,HttpServletResponse response); + void exportStaffList(UserRequest request,HttpServletResponse response); Object batchImportStaff(List list); Object logOut(HttpServletRequest request); + + Page getUserList(Page page, UserRequest request); + + Object addUser(StaffInfoDto userDto); + + Object delUser(IdsDTO idsDTOd); + + Object updateUser(StaffInfoDto staffInfoDto); + + void download(String fileId,HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index d7e1618..d20e7ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -9,6 +9,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -30,4 +32,12 @@ Object getMessageList(Page> page,HttpServletRequest request); void exportMessage(IdsDTO idsDTO, HttpServletResponse response); + + Object delApply(String applyId, HttpServletRequest request) throws ParseException; + + Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException; + + Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request); + + void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java index 74222c1..f195b37 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java @@ -1,10 +1,22 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.modular.system.dao.MessageMapper; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.enums.VisitorApplyStatusDict; import com.casic.missiles.modular.system.service.MessageService; +import dm.jdbc.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -13,8 +25,34 @@ @Slf4j @Service public class MessageServiceImpl implements MessageService { + + @Resource + private MessageMapper messageMapper; + + @Resource + private IBaseExportService iBaseExportService; + @Override - public Object list(MessageListRequest messageListRequest) { - return null; + public Page list(Page page, MessageDto dto) { + Page result = messageMapper.list(page,dto); + result.setRecords(handleData(result.getRecords())); + return result; + } + + @Override + public void exportList(MessageDto dto, HttpServletResponse response) throws IOException { + List result = messageMapper.list(dto); + iBaseExportService.exportExcel(response, MessageDto.class,handleData(result), "sheet"); + } + private List handleData(List list){ + for (MessageDto messageDto : list) { + messageDto.setStatus(messageDto.getStatus().equals("0")?"发送成功":"发送失败"); + switch (messageDto.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_SUBMITTED:messageDto.setVisitorApplyStatus("已提交");break; + case VisitorApplyStatusDict.APPLY_PASSED:messageDto.setVisitorApplyStatus("已通过");break; + case VisitorApplyStatusDict.APPLY_FAILED:messageDto.setVisitorApplyStatus("未通过");break; + } + } + return list; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java index 40e00bb..4e746f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java @@ -1,44 +1,47 @@ package com.casic.missiles.modular.system.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dao.UserActionMapper; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dao.*; +import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.enums.DocumentTypeEnum; import com.casic.missiles.modular.system.enums.RoleEnum; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.model.RuRelation; +import com.casic.missiles.modular.system.service.ICasicFileService; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.utils.JJWTRootUtils; -import com.casic.missiles.modular.system.utils.UuidUtils; import com.casic.missiles.modular.system.utils.WXUserUtils; import dm.jdbc.util.StringUtil; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.net.URLEncoder; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @Service("UserActionService") -public class UserActionServiceImpl extends ServiceImpl implements UserActionService { +public class UserActionServiceImpl extends ServiceImpl implements UserActionService { @Resource private UserActionMapper userActionDao; @@ -46,11 +49,22 @@ @Resource private RedisTemplate redisTemplate; + @Resource + private RuRelationMapper ruRelationMapper; + final String SALT = "y76dniizew"; + public static final String REG_LOWERCASE = "^[A-Z0-9]+$"; + + @Resource + private AbstractDictService dictService; + @Resource private IBaseExportService iBaseExportService; + @Resource + private ICasicFileService iCasicFileService; + @Override public Object getLoginToken(String code) { JSONObject jsonObject = WXUserUtils.getOpenId(code); @@ -61,7 +75,6 @@ Map payLoad = new HashMap<>(); payLoad.put("token", newOpenid); String token = JJWTRootUtils.generatorToken(payLoad); - System.out.println(jsonObject.get("openid")); if(StringUtil.isNotEmpty(token)){ ValueOperations operations = redisTemplate.opsForValue(); operations.set(newOpenid, jsonObject); @@ -85,6 +98,7 @@ if(null != user){ if(StringUtil.isEmpty(user.getSyncId())){ user.setSyncId(jsonObject.get("openid").toString()); + user.setLogonState("0"); userActionDao.setUserOpenId(user); } List list = userActionDao.getList(user.getSalt()); @@ -99,10 +113,18 @@ } @Override + @Transactional public Object userRegister(UserDto userDto) { try { - SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //String phone = WXUserUtils.getPhone(userDto.getPhone(),getToken()); + if(userDto.getDocumentType().equals(DocumentTypeEnum.PASS)){ + if(!userDto.getAccount().matches(REG_LOWERCASE)){ + return ResponseData.error(Status.DOCUMENT_TYPE_PASS); + } + }else{ + if(userDto.getAccount().charAt(0) != 'G'){ + userDto.setAccount("G"+userDto.getAccount()); + } + } UserDto dto = new UserDto(); dto.setAttr1(userDto.getPhone()); UserDto user = userActionDao.getUserInfo(dto); @@ -110,8 +132,17 @@ userDto.setAttr1(""); UserDto userInfo = userActionDao.getUserInfo(userDto); if(null != userInfo){ + if(StringUtil.isNotEmpty(userInfo.getDocumentType()) && !userDto.getDocumentType().equals(userInfo.getDocumentType())){ + return ResponseData.error(Status.DOCUMENT_TYPE); + } + userDto.setLogonState("0"); + userDto.setSalt(RoleEnum.REGULAR_EMPLOYEE.getCode()); userActionDao.userRegister(userDto); - userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),RoleEnum.ROLE_ORDINARY_USER.getCode(),sim.format(new Date())); + RuRelation ruRelation = new RuRelation(Long.parseLong(userInfo.getId()),Long.parseLong(RoleEnum.ROLE_ORDINARY_USER.getCode())); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("USERID",userInfo.getId()); + ruRelationMapper.delete(wrapper); + ruRelationMapper.insert(ruRelation); return ResponseData.success(); }else { return ResponseData.error(Status.EMPLOYEE_NOT_EXIS); @@ -165,6 +196,7 @@ UserDto userDto = new UserDto(); userDto.setSyncId(jsonObject.get("openid").toString()); UserDto user = userActionDao.getUserInfo(userDto); + user.setDocumentTypeName(dictService.getDictNameByCode("documentType",user.getDocumentType())); Dict dict = userActionDao.getList(user.getSalt()).get(0); user.setSalt(dict.getName()); return ResponseData.success(user); @@ -199,17 +231,6 @@ } } - @Override - public Object getUserType() { - try { - List list = userActionDao.getList(""); - return ResponseData.success(list); - }catch (Exception e){ - e.printStackTrace(); - return ResponseData.error(Status.FAIL); - } - } - public String getToken(){ ValueOperations operations = redisTemplate.opsForValue(); String token = (String) operations.get("AccessToken"); @@ -223,13 +244,18 @@ } @Override - public void exportStaffList(Long page1,Long limit,HttpServletResponse response) { + public void exportStaffList(UserRequest request,HttpServletResponse response) { try { - Page page = new Page(page1,limit); - Page list = userActionDao.exportStaffList(page); - final long start = System.currentTimeMillis(); - iBaseExportService.exportExcel(response, StaffInfoDto.class,list.getRecords(),"sheet"); - log.info("导出耗时:秒" + (System.currentTimeMillis() - start) / 1000); + List result = userActionDao.getUserList(request); + for (UserDto userDto : result) { + if(StringUtil.isNotEmpty(userDto.getDocumentType())){ + userDto.setDocumentTypeName(dictService.getDictNameByCode("documentType",userDto.getDocumentType())); + } + if(StringUtil.isNotEmpty(userDto.getLogonState())){ + userDto.setLogonState(userDto.getLogonState().equals("0")?"是":"否"); + } + } + iBaseExportService.exportExcel(response, UserDto.class,result,"sheet"); } catch (IOException e) { e.printStackTrace(); } @@ -237,11 +263,17 @@ @Override public Object batchImportStaff(List list) { + List> lists = ListUtils.partition(list, 500); list.forEach(bean -> { Long id = IdWorker.getId(); bean.setId(id); + if(StringUtil.isNotEmpty(bean.getPhone())){ + bean.setLogonState("0"); + } }); - userActionDao.batchImportStaff(list); + for (List staffInfoDtos : lists) { + userActionDao.batchImportStaff(staffInfoDtos); + } return ResponseData.success(list); } @@ -257,4 +289,82 @@ return ResponseData.error("操作失败"); } } + + @Override + public Page getUserList(Page page, UserRequest request) { + Page result = userActionDao.getUserList(page,request); + for (UserDto userDto : result.getRecords()) { + if(StringUtil.isNotEmpty(userDto.getDocumentType())){ + userDto.setDocumentTypeName(dictService.getDictNameByCode("documentType",userDto.getDocumentType())); + } + if(StringUtil.isNotEmpty(userDto.getLogonState())){ + userDto.setLogonState(userDto.getLogonState().equals("0")?"是":"否"); + } + } + return result; + } + + @Override + @Transactional + public Object addUser(StaffInfoDto staffInfoDto) { + Long id = IdWorker.getId(); + staffInfoDto.setId(id); + staffInfoDto.setLogonState("1"); + if(StringUtil.isNotEmpty(staffInfoDto.getPhone())){ + staffInfoDto.setLogonState("0"); + } + userActionDao.addUser(staffInfoDto); + RuRelation ruRelation = new RuRelation(id,Long.parseLong(staffInfoDto.getStaffRole())); + ruRelationMapper.insert(ruRelation); + return ResponseData.success(); + + } + + @Override + public Object delUser(IdsDTO idsDTO) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("id",idsDTO.getIds()); + if(this.remove(wrapper)){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + @Override + public Object updateUser(StaffInfoDto staffInfoDto) { + userActionDao.updateUser(staffInfoDto); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("USERID",staffInfoDto.getId()).set("ROLEID", staffInfoDto.getStaffRole()); + if(ruRelationMapper.update(null,updateWrapper)>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + @Override + public void download(String fileId,HttpServletResponse response) { + try { + String filePath = "/tmp/"; + File file = new File(filePath + fileId); + log.error("文件地址:"+ filePath +fileId); + String resultFileName = fileId; + resultFileName = URLEncoder.encode(resultFileName,"UTF-8").replaceAll("\\+", "%20"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + resultFileName); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + FileInputStream in = new FileInputStream(file); + OutputStream out = response.getOutputStream(); + int bytes = 0; + byte[] bufferOut = new byte[1024]; + while ((bytes = in.read(bufferOut)) != -1) { + out.write(bufferOut, 0, bytes); + } + out.close(); + in.close(); + } catch (Exception e) { + e.printStackTrace(); + log.error("下载失败:"+e); + } + } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java index 16df306..9cce542 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -26,35 +27,39 @@ public class VisitorApply { @TableId private Long id; - @ExcelProperty(value = "访客姓名",order = 1) + @ExcelProperty(value = "访客姓名",order = 2) private String visitorName; + @TableField(exist = false) + @ExcelProperty(value = "申请类型",order = 1) + private final String applyType = "0"; @ExcelProperty(value = "访客申请单号",order = 0) private String applyNo; - @ExcelProperty(value = "申请者工号",order = 8) + @ExcelProperty(value = "申请者工号",order = 9) private String staffCode; - @ExcelProperty(value = "申请者姓名",order = 9) + @ExcelProperty(value = "申请者姓名",order = 10) private String staffName; - @ExcelProperty(value = "访客身份证",order = 2) + @ExcelProperty(value = "访客身份证",order = 3) private String visitorIdCard; - @ExcelProperty(value = "访客联系方式",order = 3) + @ExcelProperty(value = "访客联系方式",order = 4) private String visitorPhone; - @ExcelProperty(value = "访问目的",order = 4) + @ExcelProperty(value = "访问目的",order = 5) private String visitReason; - @ExcelProperty(value = "访问楼栋",order = 5) + @ExcelProperty(value = "访问楼栋",order = 6) private String visitPosition; - @ExcelProperty(value = "备注",order = 12) + @ExcelProperty(value = "备注",order = 13) private String remarks; - @ExcelProperty(value = "访问开始时间",order = 6) + @ExcelProperty(value = "访问开始时间",order = 7) private String inTime; - @ExcelProperty(value = "访问结束时间",order = 7) + @ExcelProperty(value = "访问结束时间",order = 8) private String outTime; - @ExcelProperty(value = "状态",order = 11) + @ExcelProperty(value = "状态",order = 12) private String visitorApplyStatus; private String adminVisitorApplyStatus; - @ExcelProperty(value = "申请者联系方式",order = 10) + @ExcelProperty(value = "申请者联系方式",order = 11) private String staffPhone; - + @TableField(exist = false) + private String visitDate; private String createTime; private String updateTime; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java index dba4a59..2eacfaf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java @@ -1,12 +1,19 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + /** * @Description: * @Author: wangpeng * @Date: 2022/11/17 13:48 */ public interface MessageService { - Object list(MessageListRequest messageListRequest); + Page list(Page page,MessageDto dto); + + void exportList(MessageDto dto, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 519da83..0289c88 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -1,19 +1,16 @@ package com.casic.missiles.modular.system.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; -public interface UserActionService extends IService { - - Object getUserType(); +public interface UserActionService extends IService { Object userRegister(UserDto userDto); @@ -33,9 +30,19 @@ Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); - void exportStaffList(Long page,Long limit,HttpServletResponse response); + void exportStaffList(UserRequest request,HttpServletResponse response); Object batchImportStaff(List list); Object logOut(HttpServletRequest request); + + Page getUserList(Page page, UserRequest request); + + Object addUser(StaffInfoDto userDto); + + Object delUser(IdsDTO idsDTOd); + + Object updateUser(StaffInfoDto staffInfoDto); + + void download(String fileId,HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index d7e1618..d20e7ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -9,6 +9,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -30,4 +32,12 @@ Object getMessageList(Page> page,HttpServletRequest request); void exportMessage(IdsDTO idsDTO, HttpServletResponse response); + + Object delApply(String applyId, HttpServletRequest request) throws ParseException; + + Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException; + + Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request); + + void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java index 74222c1..f195b37 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java @@ -1,10 +1,22 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.modular.system.dao.MessageMapper; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.enums.VisitorApplyStatusDict; import com.casic.missiles.modular.system.service.MessageService; +import dm.jdbc.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -13,8 +25,34 @@ @Slf4j @Service public class MessageServiceImpl implements MessageService { + + @Resource + private MessageMapper messageMapper; + + @Resource + private IBaseExportService iBaseExportService; + @Override - public Object list(MessageListRequest messageListRequest) { - return null; + public Page list(Page page, MessageDto dto) { + Page result = messageMapper.list(page,dto); + result.setRecords(handleData(result.getRecords())); + return result; + } + + @Override + public void exportList(MessageDto dto, HttpServletResponse response) throws IOException { + List result = messageMapper.list(dto); + iBaseExportService.exportExcel(response, MessageDto.class,handleData(result), "sheet"); + } + private List handleData(List list){ + for (MessageDto messageDto : list) { + messageDto.setStatus(messageDto.getStatus().equals("0")?"发送成功":"发送失败"); + switch (messageDto.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_SUBMITTED:messageDto.setVisitorApplyStatus("已提交");break; + case VisitorApplyStatusDict.APPLY_PASSED:messageDto.setVisitorApplyStatus("已通过");break; + case VisitorApplyStatusDict.APPLY_FAILED:messageDto.setVisitorApplyStatus("未通过");break; + } + } + return list; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java index 40e00bb..4e746f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java @@ -1,44 +1,47 @@ package com.casic.missiles.modular.system.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dao.UserActionMapper; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dao.*; +import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.enums.DocumentTypeEnum; import com.casic.missiles.modular.system.enums.RoleEnum; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.model.RuRelation; +import com.casic.missiles.modular.system.service.ICasicFileService; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.utils.JJWTRootUtils; -import com.casic.missiles.modular.system.utils.UuidUtils; import com.casic.missiles.modular.system.utils.WXUserUtils; import dm.jdbc.util.StringUtil; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.net.URLEncoder; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @Service("UserActionService") -public class UserActionServiceImpl extends ServiceImpl implements UserActionService { +public class UserActionServiceImpl extends ServiceImpl implements UserActionService { @Resource private UserActionMapper userActionDao; @@ -46,11 +49,22 @@ @Resource private RedisTemplate redisTemplate; + @Resource + private RuRelationMapper ruRelationMapper; + final String SALT = "y76dniizew"; + public static final String REG_LOWERCASE = "^[A-Z0-9]+$"; + + @Resource + private AbstractDictService dictService; + @Resource private IBaseExportService iBaseExportService; + @Resource + private ICasicFileService iCasicFileService; + @Override public Object getLoginToken(String code) { JSONObject jsonObject = WXUserUtils.getOpenId(code); @@ -61,7 +75,6 @@ Map payLoad = new HashMap<>(); payLoad.put("token", newOpenid); String token = JJWTRootUtils.generatorToken(payLoad); - System.out.println(jsonObject.get("openid")); if(StringUtil.isNotEmpty(token)){ ValueOperations operations = redisTemplate.opsForValue(); operations.set(newOpenid, jsonObject); @@ -85,6 +98,7 @@ if(null != user){ if(StringUtil.isEmpty(user.getSyncId())){ user.setSyncId(jsonObject.get("openid").toString()); + user.setLogonState("0"); userActionDao.setUserOpenId(user); } List list = userActionDao.getList(user.getSalt()); @@ -99,10 +113,18 @@ } @Override + @Transactional public Object userRegister(UserDto userDto) { try { - SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //String phone = WXUserUtils.getPhone(userDto.getPhone(),getToken()); + if(userDto.getDocumentType().equals(DocumentTypeEnum.PASS)){ + if(!userDto.getAccount().matches(REG_LOWERCASE)){ + return ResponseData.error(Status.DOCUMENT_TYPE_PASS); + } + }else{ + if(userDto.getAccount().charAt(0) != 'G'){ + userDto.setAccount("G"+userDto.getAccount()); + } + } UserDto dto = new UserDto(); dto.setAttr1(userDto.getPhone()); UserDto user = userActionDao.getUserInfo(dto); @@ -110,8 +132,17 @@ userDto.setAttr1(""); UserDto userInfo = userActionDao.getUserInfo(userDto); if(null != userInfo){ + if(StringUtil.isNotEmpty(userInfo.getDocumentType()) && !userDto.getDocumentType().equals(userInfo.getDocumentType())){ + return ResponseData.error(Status.DOCUMENT_TYPE); + } + userDto.setLogonState("0"); + userDto.setSalt(RoleEnum.REGULAR_EMPLOYEE.getCode()); userActionDao.userRegister(userDto); - userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),RoleEnum.ROLE_ORDINARY_USER.getCode(),sim.format(new Date())); + RuRelation ruRelation = new RuRelation(Long.parseLong(userInfo.getId()),Long.parseLong(RoleEnum.ROLE_ORDINARY_USER.getCode())); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("USERID",userInfo.getId()); + ruRelationMapper.delete(wrapper); + ruRelationMapper.insert(ruRelation); return ResponseData.success(); }else { return ResponseData.error(Status.EMPLOYEE_NOT_EXIS); @@ -165,6 +196,7 @@ UserDto userDto = new UserDto(); userDto.setSyncId(jsonObject.get("openid").toString()); UserDto user = userActionDao.getUserInfo(userDto); + user.setDocumentTypeName(dictService.getDictNameByCode("documentType",user.getDocumentType())); Dict dict = userActionDao.getList(user.getSalt()).get(0); user.setSalt(dict.getName()); return ResponseData.success(user); @@ -199,17 +231,6 @@ } } - @Override - public Object getUserType() { - try { - List list = userActionDao.getList(""); - return ResponseData.success(list); - }catch (Exception e){ - e.printStackTrace(); - return ResponseData.error(Status.FAIL); - } - } - public String getToken(){ ValueOperations operations = redisTemplate.opsForValue(); String token = (String) operations.get("AccessToken"); @@ -223,13 +244,18 @@ } @Override - public void exportStaffList(Long page1,Long limit,HttpServletResponse response) { + public void exportStaffList(UserRequest request,HttpServletResponse response) { try { - Page page = new Page(page1,limit); - Page list = userActionDao.exportStaffList(page); - final long start = System.currentTimeMillis(); - iBaseExportService.exportExcel(response, StaffInfoDto.class,list.getRecords(),"sheet"); - log.info("导出耗时:秒" + (System.currentTimeMillis() - start) / 1000); + List result = userActionDao.getUserList(request); + for (UserDto userDto : result) { + if(StringUtil.isNotEmpty(userDto.getDocumentType())){ + userDto.setDocumentTypeName(dictService.getDictNameByCode("documentType",userDto.getDocumentType())); + } + if(StringUtil.isNotEmpty(userDto.getLogonState())){ + userDto.setLogonState(userDto.getLogonState().equals("0")?"是":"否"); + } + } + iBaseExportService.exportExcel(response, UserDto.class,result,"sheet"); } catch (IOException e) { e.printStackTrace(); } @@ -237,11 +263,17 @@ @Override public Object batchImportStaff(List list) { + List> lists = ListUtils.partition(list, 500); list.forEach(bean -> { Long id = IdWorker.getId(); bean.setId(id); + if(StringUtil.isNotEmpty(bean.getPhone())){ + bean.setLogonState("0"); + } }); - userActionDao.batchImportStaff(list); + for (List staffInfoDtos : lists) { + userActionDao.batchImportStaff(staffInfoDtos); + } return ResponseData.success(list); } @@ -257,4 +289,82 @@ return ResponseData.error("操作失败"); } } + + @Override + public Page getUserList(Page page, UserRequest request) { + Page result = userActionDao.getUserList(page,request); + for (UserDto userDto : result.getRecords()) { + if(StringUtil.isNotEmpty(userDto.getDocumentType())){ + userDto.setDocumentTypeName(dictService.getDictNameByCode("documentType",userDto.getDocumentType())); + } + if(StringUtil.isNotEmpty(userDto.getLogonState())){ + userDto.setLogonState(userDto.getLogonState().equals("0")?"是":"否"); + } + } + return result; + } + + @Override + @Transactional + public Object addUser(StaffInfoDto staffInfoDto) { + Long id = IdWorker.getId(); + staffInfoDto.setId(id); + staffInfoDto.setLogonState("1"); + if(StringUtil.isNotEmpty(staffInfoDto.getPhone())){ + staffInfoDto.setLogonState("0"); + } + userActionDao.addUser(staffInfoDto); + RuRelation ruRelation = new RuRelation(id,Long.parseLong(staffInfoDto.getStaffRole())); + ruRelationMapper.insert(ruRelation); + return ResponseData.success(); + + } + + @Override + public Object delUser(IdsDTO idsDTO) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("id",idsDTO.getIds()); + if(this.remove(wrapper)){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + @Override + public Object updateUser(StaffInfoDto staffInfoDto) { + userActionDao.updateUser(staffInfoDto); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("USERID",staffInfoDto.getId()).set("ROLEID", staffInfoDto.getStaffRole()); + if(ruRelationMapper.update(null,updateWrapper)>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + @Override + public void download(String fileId,HttpServletResponse response) { + try { + String filePath = "/tmp/"; + File file = new File(filePath + fileId); + log.error("文件地址:"+ filePath +fileId); + String resultFileName = fileId; + resultFileName = URLEncoder.encode(resultFileName,"UTF-8").replaceAll("\\+", "%20"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + resultFileName); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + FileInputStream in = new FileInputStream(file); + OutputStream out = response.getOutputStream(); + int bytes = 0; + byte[] bufferOut = new byte[1024]; + while ((bytes = in.read(bufferOut)) != -1) { + out.write(bufferOut, 0, bytes); + } + out.close(); + in.close(); + } catch (Exception e) { + e.printStackTrace(); + log.error("下载失败:"+e); + } + } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java index c2608e4..d466d79 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.util.DateUtils; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dao.VisitorApplyMapper; import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.*; +import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; @@ -23,7 +27,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * @Description: @@ -42,6 +50,12 @@ @Resource private UserActionMapper userActionMapper; + @Resource + private IBaseExportService iBaseExportService; + + @Resource + private AbstractDictService dictService; + @Override public Object add(VisitorApplyAddRequest visitorApplyAddRequest, HttpServletRequest request) { JSONObject jsonObject = userActionService.getLoginStatus(request); @@ -94,6 +108,32 @@ return ResponseData.success(visitorApplyPage); } + + @Override + public Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page visitorApplyPage = visitorApplyMapper.getApplyList(page,visitorApplyListRequest); + visitorApplyPage.setRecords(handleData(visitorApplyPage.getRecords())); + return ResponseData.success(visitorApplyPage); + } + + @Override + public void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + List list = visitorApplyMapper.getApplyList(visitorApplyListRequest); + iBaseExportService.exportExcel(response, VisitorApply.class,supplementList(list), "sheet"); + } + + private List handleData(List list){ + for (VisitorApply apply : list) { + switch (apply.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_SUBMITTED:apply.setVisitorApplyStatus("申请中");break; + case VisitorApplyStatusDict.APPLY_PASSED:apply.setVisitorApplyStatus("申请通过");break; + case VisitorApplyStatusDict.APPLY_FAILED:apply.setVisitorApplyStatus("申请未通过");break; + } + apply.setVisitDate(apply.getInTime()+"-"+apply.getOutTime()); + } + return list; + } + @Override public Object updateStatus(VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { try { @@ -152,11 +192,14 @@ UserDto userDto = new UserDto(); userDto.setSyncId(openid); UserDto userInfo = userActionMapper.getUserInfo(userDto); - String flag = ""; - if(userInfo.getSalt().equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ + /* String flag = ""; + QueryWrapper ruRelationWrapper = new QueryWrapper<>(); + ruRelationWrapper.eq("USERID",userInfo.getId()); + RuRelation ruRelation = ruRelationMapper.selectOne(ruRelationWrapper); + if(String.valueOf(ruRelation.getRoleId()).equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ flag = "true"; - } - Page> resMap = visitorApplyMapper.getMessageList(page,openid,flag,userInfo.getAccount()); + }*/ + Page> resMap = visitorApplyMapper.getMessageList(page,openid,userInfo.getAccount()); for (HashMap map : resMap.getRecords()){ map.put("apply_time",map.get("in_time").toString()+"-"+map.get("out_time").toString()); map.put("send_time",DateUtils.parseDate(map.get("create_time").toString()).getTime()); @@ -177,20 +220,61 @@ try { QueryWrapper qw = new QueryWrapper<>(); qw.in("id", idsDTO.getIds()); + qw.orderByDesc("create_time"); List visitorApplyList = visitorApplyMapper.selectList(qw); - visitorApplyList.forEach(visitorApply -> { - switch (visitorApply.getVisitorApplyStatus()){ - case "1": visitorApply.setVisitorApplyStatus("申请已提交");break; - case "2": visitorApply.setVisitorApplyStatus("申请通过");break; - case "3": visitorApply.setVisitorApplyStatus("申请不通过");break; - } - }); - ExportUtils.writeExcel(response,visitorApplyList,"fileName","sheet",VisitorApply.class); + ExportUtils.writeExcel(response,supplementList(visitorApplyList),"fileName","sheet",VisitorApply.class); } catch (Exception e) { e.printStackTrace(); } } + @Override + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + JSONObject jsonObject = userActionService.getLoginStatus(request); + if(null == jsonObject){ + return ResponseData.error(2401,Status.TOKEN_EXPIRES); + } + VisitorApply visitorApply = visitorApplyMapper.selectById(applyId); + if(judgeOperate(visitorApply)){ + return ResponseData.error("您的访客申请信息已无法进行删除"); + } + if(visitorApplyMapper.deleteById(visitorApply.getId())>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + private Boolean judgeOperate(VisitorApply visitorApply) throws ParseException { + Date date = DateUtils.parseDate(visitorApply.getCreateTime(),"yyyy-MM-dd"); + Date createDate = date; + Calendar calendar = Calendar.getInstance(); + // 设置为当前时间 + calendar.setTime(date); + calendar.add(Calendar.DATE,1); + calendar.add(Calendar.HOUR,8); + date = calendar.getTime(); + if(createDate.getTime()>date.getTime()){ + return true; + }else { + return false; + } + } + @Override + public Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + JSONObject jsonObject = userActionService.getLoginStatus(request); + if(null == jsonObject){ + return ResponseData.error(2401,Status.TOKEN_EXPIRES); + } + VisitorApply apply = visitorApplyMapper.selectById(visitorApply.getId()); + if(judgeOperate(apply)){ + return ResponseData.error("您的访客申请信息已无法进行编辑"); + } + if(visitorApplyMapper.updateById(visitorApply)>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + private void sentMessage(VisitorApply visitorApply,String[] dataArr) { String toUser = getToUser(visitorApply.getStaffCode()); if(StringUtil.isNotEmpty(toUser)){ @@ -232,4 +316,24 @@ MessageDto message = new MessageDto(UuidUtils.getId(),messageId,status,DateUtils.format(new Date()),toUser); userActionMapper.insertMessageLog(message); } + private List supplementList(List visitorApplyList){ + List devicePosition = dictService.findInDictByCode("devicePosition"); + Map> devicePositionMap = devicePosition.stream().collect(Collectors.groupingBy(Dict::getName)); + List visitReason = dictService.findInDictByCode("visitReason"); + Map> visitReasonMap = visitReason.stream().collect(Collectors.groupingBy(Dict::getName)); + for (VisitorApply visitorApply : visitorApplyList) { + switch (visitorApply.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_FAILED: + case VisitorApplyStatusDict.APPLY_SUBMITTED: visitorApply.setVisitorApplyStatus("0");break; + case VisitorApplyStatusDict.APPLY_PASSED: visitorApply.setVisitorApplyStatus("1");break; + } + if(devicePositionMap.get(visitorApply.getVisitPosition()) != null && devicePositionMap.get(visitorApply.getVisitPosition()).size()!=0){ + visitorApply.setVisitPosition(devicePositionMap.get(visitorApply.getVisitPosition()).get(0).getCode()); + } + if(visitReasonMap.get(visitorApply.getVisitReason()) != null && visitReasonMap.get(visitorApply.getVisitReason()).size()!=0){ + visitorApply.setVisitReason(visitReasonMap.get(visitorApply.getVisitReason()).get(0).getCode()); + } + } + return visitorApplyList; + } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java index 16df306..9cce542 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -26,35 +27,39 @@ public class VisitorApply { @TableId private Long id; - @ExcelProperty(value = "访客姓名",order = 1) + @ExcelProperty(value = "访客姓名",order = 2) private String visitorName; + @TableField(exist = false) + @ExcelProperty(value = "申请类型",order = 1) + private final String applyType = "0"; @ExcelProperty(value = "访客申请单号",order = 0) private String applyNo; - @ExcelProperty(value = "申请者工号",order = 8) + @ExcelProperty(value = "申请者工号",order = 9) private String staffCode; - @ExcelProperty(value = "申请者姓名",order = 9) + @ExcelProperty(value = "申请者姓名",order = 10) private String staffName; - @ExcelProperty(value = "访客身份证",order = 2) + @ExcelProperty(value = "访客身份证",order = 3) private String visitorIdCard; - @ExcelProperty(value = "访客联系方式",order = 3) + @ExcelProperty(value = "访客联系方式",order = 4) private String visitorPhone; - @ExcelProperty(value = "访问目的",order = 4) + @ExcelProperty(value = "访问目的",order = 5) private String visitReason; - @ExcelProperty(value = "访问楼栋",order = 5) + @ExcelProperty(value = "访问楼栋",order = 6) private String visitPosition; - @ExcelProperty(value = "备注",order = 12) + @ExcelProperty(value = "备注",order = 13) private String remarks; - @ExcelProperty(value = "访问开始时间",order = 6) + @ExcelProperty(value = "访问开始时间",order = 7) private String inTime; - @ExcelProperty(value = "访问结束时间",order = 7) + @ExcelProperty(value = "访问结束时间",order = 8) private String outTime; - @ExcelProperty(value = "状态",order = 11) + @ExcelProperty(value = "状态",order = 12) private String visitorApplyStatus; private String adminVisitorApplyStatus; - @ExcelProperty(value = "申请者联系方式",order = 10) + @ExcelProperty(value = "申请者联系方式",order = 11) private String staffPhone; - + @TableField(exist = false) + private String visitDate; private String createTime; private String updateTime; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java index dba4a59..2eacfaf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java @@ -1,12 +1,19 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + /** * @Description: * @Author: wangpeng * @Date: 2022/11/17 13:48 */ public interface MessageService { - Object list(MessageListRequest messageListRequest); + Page list(Page page,MessageDto dto); + + void exportList(MessageDto dto, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 519da83..0289c88 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -1,19 +1,16 @@ package com.casic.missiles.modular.system.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; -public interface UserActionService extends IService { - - Object getUserType(); +public interface UserActionService extends IService { Object userRegister(UserDto userDto); @@ -33,9 +30,19 @@ Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); - void exportStaffList(Long page,Long limit,HttpServletResponse response); + void exportStaffList(UserRequest request,HttpServletResponse response); Object batchImportStaff(List list); Object logOut(HttpServletRequest request); + + Page getUserList(Page page, UserRequest request); + + Object addUser(StaffInfoDto userDto); + + Object delUser(IdsDTO idsDTOd); + + Object updateUser(StaffInfoDto staffInfoDto); + + void download(String fileId,HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index d7e1618..d20e7ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -9,6 +9,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -30,4 +32,12 @@ Object getMessageList(Page> page,HttpServletRequest request); void exportMessage(IdsDTO idsDTO, HttpServletResponse response); + + Object delApply(String applyId, HttpServletRequest request) throws ParseException; + + Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException; + + Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request); + + void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java index 74222c1..f195b37 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java @@ -1,10 +1,22 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.modular.system.dao.MessageMapper; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.enums.VisitorApplyStatusDict; import com.casic.missiles.modular.system.service.MessageService; +import dm.jdbc.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -13,8 +25,34 @@ @Slf4j @Service public class MessageServiceImpl implements MessageService { + + @Resource + private MessageMapper messageMapper; + + @Resource + private IBaseExportService iBaseExportService; + @Override - public Object list(MessageListRequest messageListRequest) { - return null; + public Page list(Page page, MessageDto dto) { + Page result = messageMapper.list(page,dto); + result.setRecords(handleData(result.getRecords())); + return result; + } + + @Override + public void exportList(MessageDto dto, HttpServletResponse response) throws IOException { + List result = messageMapper.list(dto); + iBaseExportService.exportExcel(response, MessageDto.class,handleData(result), "sheet"); + } + private List handleData(List list){ + for (MessageDto messageDto : list) { + messageDto.setStatus(messageDto.getStatus().equals("0")?"发送成功":"发送失败"); + switch (messageDto.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_SUBMITTED:messageDto.setVisitorApplyStatus("已提交");break; + case VisitorApplyStatusDict.APPLY_PASSED:messageDto.setVisitorApplyStatus("已通过");break; + case VisitorApplyStatusDict.APPLY_FAILED:messageDto.setVisitorApplyStatus("未通过");break; + } + } + return list; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java index 40e00bb..4e746f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java @@ -1,44 +1,47 @@ package com.casic.missiles.modular.system.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dao.UserActionMapper; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dao.*; +import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.enums.DocumentTypeEnum; import com.casic.missiles.modular.system.enums.RoleEnum; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.model.RuRelation; +import com.casic.missiles.modular.system.service.ICasicFileService; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.utils.JJWTRootUtils; -import com.casic.missiles.modular.system.utils.UuidUtils; import com.casic.missiles.modular.system.utils.WXUserUtils; import dm.jdbc.util.StringUtil; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.net.URLEncoder; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @Service("UserActionService") -public class UserActionServiceImpl extends ServiceImpl implements UserActionService { +public class UserActionServiceImpl extends ServiceImpl implements UserActionService { @Resource private UserActionMapper userActionDao; @@ -46,11 +49,22 @@ @Resource private RedisTemplate redisTemplate; + @Resource + private RuRelationMapper ruRelationMapper; + final String SALT = "y76dniizew"; + public static final String REG_LOWERCASE = "^[A-Z0-9]+$"; + + @Resource + private AbstractDictService dictService; + @Resource private IBaseExportService iBaseExportService; + @Resource + private ICasicFileService iCasicFileService; + @Override public Object getLoginToken(String code) { JSONObject jsonObject = WXUserUtils.getOpenId(code); @@ -61,7 +75,6 @@ Map payLoad = new HashMap<>(); payLoad.put("token", newOpenid); String token = JJWTRootUtils.generatorToken(payLoad); - System.out.println(jsonObject.get("openid")); if(StringUtil.isNotEmpty(token)){ ValueOperations operations = redisTemplate.opsForValue(); operations.set(newOpenid, jsonObject); @@ -85,6 +98,7 @@ if(null != user){ if(StringUtil.isEmpty(user.getSyncId())){ user.setSyncId(jsonObject.get("openid").toString()); + user.setLogonState("0"); userActionDao.setUserOpenId(user); } List list = userActionDao.getList(user.getSalt()); @@ -99,10 +113,18 @@ } @Override + @Transactional public Object userRegister(UserDto userDto) { try { - SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //String phone = WXUserUtils.getPhone(userDto.getPhone(),getToken()); + if(userDto.getDocumentType().equals(DocumentTypeEnum.PASS)){ + if(!userDto.getAccount().matches(REG_LOWERCASE)){ + return ResponseData.error(Status.DOCUMENT_TYPE_PASS); + } + }else{ + if(userDto.getAccount().charAt(0) != 'G'){ + userDto.setAccount("G"+userDto.getAccount()); + } + } UserDto dto = new UserDto(); dto.setAttr1(userDto.getPhone()); UserDto user = userActionDao.getUserInfo(dto); @@ -110,8 +132,17 @@ userDto.setAttr1(""); UserDto userInfo = userActionDao.getUserInfo(userDto); if(null != userInfo){ + if(StringUtil.isNotEmpty(userInfo.getDocumentType()) && !userDto.getDocumentType().equals(userInfo.getDocumentType())){ + return ResponseData.error(Status.DOCUMENT_TYPE); + } + userDto.setLogonState("0"); + userDto.setSalt(RoleEnum.REGULAR_EMPLOYEE.getCode()); userActionDao.userRegister(userDto); - userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),RoleEnum.ROLE_ORDINARY_USER.getCode(),sim.format(new Date())); + RuRelation ruRelation = new RuRelation(Long.parseLong(userInfo.getId()),Long.parseLong(RoleEnum.ROLE_ORDINARY_USER.getCode())); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("USERID",userInfo.getId()); + ruRelationMapper.delete(wrapper); + ruRelationMapper.insert(ruRelation); return ResponseData.success(); }else { return ResponseData.error(Status.EMPLOYEE_NOT_EXIS); @@ -165,6 +196,7 @@ UserDto userDto = new UserDto(); userDto.setSyncId(jsonObject.get("openid").toString()); UserDto user = userActionDao.getUserInfo(userDto); + user.setDocumentTypeName(dictService.getDictNameByCode("documentType",user.getDocumentType())); Dict dict = userActionDao.getList(user.getSalt()).get(0); user.setSalt(dict.getName()); return ResponseData.success(user); @@ -199,17 +231,6 @@ } } - @Override - public Object getUserType() { - try { - List list = userActionDao.getList(""); - return ResponseData.success(list); - }catch (Exception e){ - e.printStackTrace(); - return ResponseData.error(Status.FAIL); - } - } - public String getToken(){ ValueOperations operations = redisTemplate.opsForValue(); String token = (String) operations.get("AccessToken"); @@ -223,13 +244,18 @@ } @Override - public void exportStaffList(Long page1,Long limit,HttpServletResponse response) { + public void exportStaffList(UserRequest request,HttpServletResponse response) { try { - Page page = new Page(page1,limit); - Page list = userActionDao.exportStaffList(page); - final long start = System.currentTimeMillis(); - iBaseExportService.exportExcel(response, StaffInfoDto.class,list.getRecords(),"sheet"); - log.info("导出耗时:秒" + (System.currentTimeMillis() - start) / 1000); + List result = userActionDao.getUserList(request); + for (UserDto userDto : result) { + if(StringUtil.isNotEmpty(userDto.getDocumentType())){ + userDto.setDocumentTypeName(dictService.getDictNameByCode("documentType",userDto.getDocumentType())); + } + if(StringUtil.isNotEmpty(userDto.getLogonState())){ + userDto.setLogonState(userDto.getLogonState().equals("0")?"是":"否"); + } + } + iBaseExportService.exportExcel(response, UserDto.class,result,"sheet"); } catch (IOException e) { e.printStackTrace(); } @@ -237,11 +263,17 @@ @Override public Object batchImportStaff(List list) { + List> lists = ListUtils.partition(list, 500); list.forEach(bean -> { Long id = IdWorker.getId(); bean.setId(id); + if(StringUtil.isNotEmpty(bean.getPhone())){ + bean.setLogonState("0"); + } }); - userActionDao.batchImportStaff(list); + for (List staffInfoDtos : lists) { + userActionDao.batchImportStaff(staffInfoDtos); + } return ResponseData.success(list); } @@ -257,4 +289,82 @@ return ResponseData.error("操作失败"); } } + + @Override + public Page getUserList(Page page, UserRequest request) { + Page result = userActionDao.getUserList(page,request); + for (UserDto userDto : result.getRecords()) { + if(StringUtil.isNotEmpty(userDto.getDocumentType())){ + userDto.setDocumentTypeName(dictService.getDictNameByCode("documentType",userDto.getDocumentType())); + } + if(StringUtil.isNotEmpty(userDto.getLogonState())){ + userDto.setLogonState(userDto.getLogonState().equals("0")?"是":"否"); + } + } + return result; + } + + @Override + @Transactional + public Object addUser(StaffInfoDto staffInfoDto) { + Long id = IdWorker.getId(); + staffInfoDto.setId(id); + staffInfoDto.setLogonState("1"); + if(StringUtil.isNotEmpty(staffInfoDto.getPhone())){ + staffInfoDto.setLogonState("0"); + } + userActionDao.addUser(staffInfoDto); + RuRelation ruRelation = new RuRelation(id,Long.parseLong(staffInfoDto.getStaffRole())); + ruRelationMapper.insert(ruRelation); + return ResponseData.success(); + + } + + @Override + public Object delUser(IdsDTO idsDTO) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("id",idsDTO.getIds()); + if(this.remove(wrapper)){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + @Override + public Object updateUser(StaffInfoDto staffInfoDto) { + userActionDao.updateUser(staffInfoDto); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("USERID",staffInfoDto.getId()).set("ROLEID", staffInfoDto.getStaffRole()); + if(ruRelationMapper.update(null,updateWrapper)>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + @Override + public void download(String fileId,HttpServletResponse response) { + try { + String filePath = "/tmp/"; + File file = new File(filePath + fileId); + log.error("文件地址:"+ filePath +fileId); + String resultFileName = fileId; + resultFileName = URLEncoder.encode(resultFileName,"UTF-8").replaceAll("\\+", "%20"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + resultFileName); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + FileInputStream in = new FileInputStream(file); + OutputStream out = response.getOutputStream(); + int bytes = 0; + byte[] bufferOut = new byte[1024]; + while ((bytes = in.read(bufferOut)) != -1) { + out.write(bufferOut, 0, bytes); + } + out.close(); + in.close(); + } catch (Exception e) { + e.printStackTrace(); + log.error("下载失败:"+e); + } + } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java index c2608e4..d466d79 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.util.DateUtils; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dao.VisitorApplyMapper; import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.*; +import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; @@ -23,7 +27,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * @Description: @@ -42,6 +50,12 @@ @Resource private UserActionMapper userActionMapper; + @Resource + private IBaseExportService iBaseExportService; + + @Resource + private AbstractDictService dictService; + @Override public Object add(VisitorApplyAddRequest visitorApplyAddRequest, HttpServletRequest request) { JSONObject jsonObject = userActionService.getLoginStatus(request); @@ -94,6 +108,32 @@ return ResponseData.success(visitorApplyPage); } + + @Override + public Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page visitorApplyPage = visitorApplyMapper.getApplyList(page,visitorApplyListRequest); + visitorApplyPage.setRecords(handleData(visitorApplyPage.getRecords())); + return ResponseData.success(visitorApplyPage); + } + + @Override + public void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + List list = visitorApplyMapper.getApplyList(visitorApplyListRequest); + iBaseExportService.exportExcel(response, VisitorApply.class,supplementList(list), "sheet"); + } + + private List handleData(List list){ + for (VisitorApply apply : list) { + switch (apply.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_SUBMITTED:apply.setVisitorApplyStatus("申请中");break; + case VisitorApplyStatusDict.APPLY_PASSED:apply.setVisitorApplyStatus("申请通过");break; + case VisitorApplyStatusDict.APPLY_FAILED:apply.setVisitorApplyStatus("申请未通过");break; + } + apply.setVisitDate(apply.getInTime()+"-"+apply.getOutTime()); + } + return list; + } + @Override public Object updateStatus(VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { try { @@ -152,11 +192,14 @@ UserDto userDto = new UserDto(); userDto.setSyncId(openid); UserDto userInfo = userActionMapper.getUserInfo(userDto); - String flag = ""; - if(userInfo.getSalt().equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ + /* String flag = ""; + QueryWrapper ruRelationWrapper = new QueryWrapper<>(); + ruRelationWrapper.eq("USERID",userInfo.getId()); + RuRelation ruRelation = ruRelationMapper.selectOne(ruRelationWrapper); + if(String.valueOf(ruRelation.getRoleId()).equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ flag = "true"; - } - Page> resMap = visitorApplyMapper.getMessageList(page,openid,flag,userInfo.getAccount()); + }*/ + Page> resMap = visitorApplyMapper.getMessageList(page,openid,userInfo.getAccount()); for (HashMap map : resMap.getRecords()){ map.put("apply_time",map.get("in_time").toString()+"-"+map.get("out_time").toString()); map.put("send_time",DateUtils.parseDate(map.get("create_time").toString()).getTime()); @@ -177,20 +220,61 @@ try { QueryWrapper qw = new QueryWrapper<>(); qw.in("id", idsDTO.getIds()); + qw.orderByDesc("create_time"); List visitorApplyList = visitorApplyMapper.selectList(qw); - visitorApplyList.forEach(visitorApply -> { - switch (visitorApply.getVisitorApplyStatus()){ - case "1": visitorApply.setVisitorApplyStatus("申请已提交");break; - case "2": visitorApply.setVisitorApplyStatus("申请通过");break; - case "3": visitorApply.setVisitorApplyStatus("申请不通过");break; - } - }); - ExportUtils.writeExcel(response,visitorApplyList,"fileName","sheet",VisitorApply.class); + ExportUtils.writeExcel(response,supplementList(visitorApplyList),"fileName","sheet",VisitorApply.class); } catch (Exception e) { e.printStackTrace(); } } + @Override + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + JSONObject jsonObject = userActionService.getLoginStatus(request); + if(null == jsonObject){ + return ResponseData.error(2401,Status.TOKEN_EXPIRES); + } + VisitorApply visitorApply = visitorApplyMapper.selectById(applyId); + if(judgeOperate(visitorApply)){ + return ResponseData.error("您的访客申请信息已无法进行删除"); + } + if(visitorApplyMapper.deleteById(visitorApply.getId())>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + private Boolean judgeOperate(VisitorApply visitorApply) throws ParseException { + Date date = DateUtils.parseDate(visitorApply.getCreateTime(),"yyyy-MM-dd"); + Date createDate = date; + Calendar calendar = Calendar.getInstance(); + // 设置为当前时间 + calendar.setTime(date); + calendar.add(Calendar.DATE,1); + calendar.add(Calendar.HOUR,8); + date = calendar.getTime(); + if(createDate.getTime()>date.getTime()){ + return true; + }else { + return false; + } + } + @Override + public Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + JSONObject jsonObject = userActionService.getLoginStatus(request); + if(null == jsonObject){ + return ResponseData.error(2401,Status.TOKEN_EXPIRES); + } + VisitorApply apply = visitorApplyMapper.selectById(visitorApply.getId()); + if(judgeOperate(apply)){ + return ResponseData.error("您的访客申请信息已无法进行编辑"); + } + if(visitorApplyMapper.updateById(visitorApply)>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + private void sentMessage(VisitorApply visitorApply,String[] dataArr) { String toUser = getToUser(visitorApply.getStaffCode()); if(StringUtil.isNotEmpty(toUser)){ @@ -232,4 +316,24 @@ MessageDto message = new MessageDto(UuidUtils.getId(),messageId,status,DateUtils.format(new Date()),toUser); userActionMapper.insertMessageLog(message); } + private List supplementList(List visitorApplyList){ + List devicePosition = dictService.findInDictByCode("devicePosition"); + Map> devicePositionMap = devicePosition.stream().collect(Collectors.groupingBy(Dict::getName)); + List visitReason = dictService.findInDictByCode("visitReason"); + Map> visitReasonMap = visitReason.stream().collect(Collectors.groupingBy(Dict::getName)); + for (VisitorApply visitorApply : visitorApplyList) { + switch (visitorApply.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_FAILED: + case VisitorApplyStatusDict.APPLY_SUBMITTED: visitorApply.setVisitorApplyStatus("0");break; + case VisitorApplyStatusDict.APPLY_PASSED: visitorApply.setVisitorApplyStatus("1");break; + } + if(devicePositionMap.get(visitorApply.getVisitPosition()) != null && devicePositionMap.get(visitorApply.getVisitPosition()).size()!=0){ + visitorApply.setVisitPosition(devicePositionMap.get(visitorApply.getVisitPosition()).get(0).getCode()); + } + if(visitReasonMap.get(visitorApply.getVisitReason()) != null && visitReasonMap.get(visitorApply.getVisitReason()).size()!=0){ + visitorApply.setVisitReason(visitReasonMap.get(visitorApply.getVisitReason()).get(0).getCode()); + } + } + return visitorApplyList; + } } diff --git a/casic-web/src/main/resources/mapper/MessageMapper.xml b/casic-web/src/main/resources/mapper/MessageMapper.xml new file mode 100644 index 0000000..4a6f566 --- /dev/null +++ b/casic-web/src/main/resources/mapper/MessageMapper.xml @@ -0,0 +1,45 @@ + + + + + + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java index 16df306..9cce542 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -26,35 +27,39 @@ public class VisitorApply { @TableId private Long id; - @ExcelProperty(value = "访客姓名",order = 1) + @ExcelProperty(value = "访客姓名",order = 2) private String visitorName; + @TableField(exist = false) + @ExcelProperty(value = "申请类型",order = 1) + private final String applyType = "0"; @ExcelProperty(value = "访客申请单号",order = 0) private String applyNo; - @ExcelProperty(value = "申请者工号",order = 8) + @ExcelProperty(value = "申请者工号",order = 9) private String staffCode; - @ExcelProperty(value = "申请者姓名",order = 9) + @ExcelProperty(value = "申请者姓名",order = 10) private String staffName; - @ExcelProperty(value = "访客身份证",order = 2) + @ExcelProperty(value = "访客身份证",order = 3) private String visitorIdCard; - @ExcelProperty(value = "访客联系方式",order = 3) + @ExcelProperty(value = "访客联系方式",order = 4) private String visitorPhone; - @ExcelProperty(value = "访问目的",order = 4) + @ExcelProperty(value = "访问目的",order = 5) private String visitReason; - @ExcelProperty(value = "访问楼栋",order = 5) + @ExcelProperty(value = "访问楼栋",order = 6) private String visitPosition; - @ExcelProperty(value = "备注",order = 12) + @ExcelProperty(value = "备注",order = 13) private String remarks; - @ExcelProperty(value = "访问开始时间",order = 6) + @ExcelProperty(value = "访问开始时间",order = 7) private String inTime; - @ExcelProperty(value = "访问结束时间",order = 7) + @ExcelProperty(value = "访问结束时间",order = 8) private String outTime; - @ExcelProperty(value = "状态",order = 11) + @ExcelProperty(value = "状态",order = 12) private String visitorApplyStatus; private String adminVisitorApplyStatus; - @ExcelProperty(value = "申请者联系方式",order = 10) + @ExcelProperty(value = "申请者联系方式",order = 11) private String staffPhone; - + @TableField(exist = false) + private String visitDate; private String createTime; private String updateTime; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java index dba4a59..2eacfaf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java @@ -1,12 +1,19 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + /** * @Description: * @Author: wangpeng * @Date: 2022/11/17 13:48 */ public interface MessageService { - Object list(MessageListRequest messageListRequest); + Page list(Page page,MessageDto dto); + + void exportList(MessageDto dto, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 519da83..0289c88 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -1,19 +1,16 @@ package com.casic.missiles.modular.system.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; -public interface UserActionService extends IService { - - Object getUserType(); +public interface UserActionService extends IService { Object userRegister(UserDto userDto); @@ -33,9 +30,19 @@ Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); - void exportStaffList(Long page,Long limit,HttpServletResponse response); + void exportStaffList(UserRequest request,HttpServletResponse response); Object batchImportStaff(List list); Object logOut(HttpServletRequest request); + + Page getUserList(Page page, UserRequest request); + + Object addUser(StaffInfoDto userDto); + + Object delUser(IdsDTO idsDTOd); + + Object updateUser(StaffInfoDto staffInfoDto); + + void download(String fileId,HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index d7e1618..d20e7ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -9,6 +9,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -30,4 +32,12 @@ Object getMessageList(Page> page,HttpServletRequest request); void exportMessage(IdsDTO idsDTO, HttpServletResponse response); + + Object delApply(String applyId, HttpServletRequest request) throws ParseException; + + Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException; + + Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request); + + void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java index 74222c1..f195b37 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java @@ -1,10 +1,22 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.modular.system.dao.MessageMapper; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.enums.VisitorApplyStatusDict; import com.casic.missiles.modular.system.service.MessageService; +import dm.jdbc.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -13,8 +25,34 @@ @Slf4j @Service public class MessageServiceImpl implements MessageService { + + @Resource + private MessageMapper messageMapper; + + @Resource + private IBaseExportService iBaseExportService; + @Override - public Object list(MessageListRequest messageListRequest) { - return null; + public Page list(Page page, MessageDto dto) { + Page result = messageMapper.list(page,dto); + result.setRecords(handleData(result.getRecords())); + return result; + } + + @Override + public void exportList(MessageDto dto, HttpServletResponse response) throws IOException { + List result = messageMapper.list(dto); + iBaseExportService.exportExcel(response, MessageDto.class,handleData(result), "sheet"); + } + private List handleData(List list){ + for (MessageDto messageDto : list) { + messageDto.setStatus(messageDto.getStatus().equals("0")?"发送成功":"发送失败"); + switch (messageDto.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_SUBMITTED:messageDto.setVisitorApplyStatus("已提交");break; + case VisitorApplyStatusDict.APPLY_PASSED:messageDto.setVisitorApplyStatus("已通过");break; + case VisitorApplyStatusDict.APPLY_FAILED:messageDto.setVisitorApplyStatus("未通过");break; + } + } + return list; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java index 40e00bb..4e746f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java @@ -1,44 +1,47 @@ package com.casic.missiles.modular.system.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dao.UserActionMapper; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dao.*; +import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.enums.DocumentTypeEnum; import com.casic.missiles.modular.system.enums.RoleEnum; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.model.RuRelation; +import com.casic.missiles.modular.system.service.ICasicFileService; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.utils.JJWTRootUtils; -import com.casic.missiles.modular.system.utils.UuidUtils; import com.casic.missiles.modular.system.utils.WXUserUtils; import dm.jdbc.util.StringUtil; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.net.URLEncoder; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @Service("UserActionService") -public class UserActionServiceImpl extends ServiceImpl implements UserActionService { +public class UserActionServiceImpl extends ServiceImpl implements UserActionService { @Resource private UserActionMapper userActionDao; @@ -46,11 +49,22 @@ @Resource private RedisTemplate redisTemplate; + @Resource + private RuRelationMapper ruRelationMapper; + final String SALT = "y76dniizew"; + public static final String REG_LOWERCASE = "^[A-Z0-9]+$"; + + @Resource + private AbstractDictService dictService; + @Resource private IBaseExportService iBaseExportService; + @Resource + private ICasicFileService iCasicFileService; + @Override public Object getLoginToken(String code) { JSONObject jsonObject = WXUserUtils.getOpenId(code); @@ -61,7 +75,6 @@ Map payLoad = new HashMap<>(); payLoad.put("token", newOpenid); String token = JJWTRootUtils.generatorToken(payLoad); - System.out.println(jsonObject.get("openid")); if(StringUtil.isNotEmpty(token)){ ValueOperations operations = redisTemplate.opsForValue(); operations.set(newOpenid, jsonObject); @@ -85,6 +98,7 @@ if(null != user){ if(StringUtil.isEmpty(user.getSyncId())){ user.setSyncId(jsonObject.get("openid").toString()); + user.setLogonState("0"); userActionDao.setUserOpenId(user); } List list = userActionDao.getList(user.getSalt()); @@ -99,10 +113,18 @@ } @Override + @Transactional public Object userRegister(UserDto userDto) { try { - SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //String phone = WXUserUtils.getPhone(userDto.getPhone(),getToken()); + if(userDto.getDocumentType().equals(DocumentTypeEnum.PASS)){ + if(!userDto.getAccount().matches(REG_LOWERCASE)){ + return ResponseData.error(Status.DOCUMENT_TYPE_PASS); + } + }else{ + if(userDto.getAccount().charAt(0) != 'G'){ + userDto.setAccount("G"+userDto.getAccount()); + } + } UserDto dto = new UserDto(); dto.setAttr1(userDto.getPhone()); UserDto user = userActionDao.getUserInfo(dto); @@ -110,8 +132,17 @@ userDto.setAttr1(""); UserDto userInfo = userActionDao.getUserInfo(userDto); if(null != userInfo){ + if(StringUtil.isNotEmpty(userInfo.getDocumentType()) && !userDto.getDocumentType().equals(userInfo.getDocumentType())){ + return ResponseData.error(Status.DOCUMENT_TYPE); + } + userDto.setLogonState("0"); + userDto.setSalt(RoleEnum.REGULAR_EMPLOYEE.getCode()); userActionDao.userRegister(userDto); - userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),RoleEnum.ROLE_ORDINARY_USER.getCode(),sim.format(new Date())); + RuRelation ruRelation = new RuRelation(Long.parseLong(userInfo.getId()),Long.parseLong(RoleEnum.ROLE_ORDINARY_USER.getCode())); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("USERID",userInfo.getId()); + ruRelationMapper.delete(wrapper); + ruRelationMapper.insert(ruRelation); return ResponseData.success(); }else { return ResponseData.error(Status.EMPLOYEE_NOT_EXIS); @@ -165,6 +196,7 @@ UserDto userDto = new UserDto(); userDto.setSyncId(jsonObject.get("openid").toString()); UserDto user = userActionDao.getUserInfo(userDto); + user.setDocumentTypeName(dictService.getDictNameByCode("documentType",user.getDocumentType())); Dict dict = userActionDao.getList(user.getSalt()).get(0); user.setSalt(dict.getName()); return ResponseData.success(user); @@ -199,17 +231,6 @@ } } - @Override - public Object getUserType() { - try { - List list = userActionDao.getList(""); - return ResponseData.success(list); - }catch (Exception e){ - e.printStackTrace(); - return ResponseData.error(Status.FAIL); - } - } - public String getToken(){ ValueOperations operations = redisTemplate.opsForValue(); String token = (String) operations.get("AccessToken"); @@ -223,13 +244,18 @@ } @Override - public void exportStaffList(Long page1,Long limit,HttpServletResponse response) { + public void exportStaffList(UserRequest request,HttpServletResponse response) { try { - Page page = new Page(page1,limit); - Page list = userActionDao.exportStaffList(page); - final long start = System.currentTimeMillis(); - iBaseExportService.exportExcel(response, StaffInfoDto.class,list.getRecords(),"sheet"); - log.info("导出耗时:秒" + (System.currentTimeMillis() - start) / 1000); + List result = userActionDao.getUserList(request); + for (UserDto userDto : result) { + if(StringUtil.isNotEmpty(userDto.getDocumentType())){ + userDto.setDocumentTypeName(dictService.getDictNameByCode("documentType",userDto.getDocumentType())); + } + if(StringUtil.isNotEmpty(userDto.getLogonState())){ + userDto.setLogonState(userDto.getLogonState().equals("0")?"是":"否"); + } + } + iBaseExportService.exportExcel(response, UserDto.class,result,"sheet"); } catch (IOException e) { e.printStackTrace(); } @@ -237,11 +263,17 @@ @Override public Object batchImportStaff(List list) { + List> lists = ListUtils.partition(list, 500); list.forEach(bean -> { Long id = IdWorker.getId(); bean.setId(id); + if(StringUtil.isNotEmpty(bean.getPhone())){ + bean.setLogonState("0"); + } }); - userActionDao.batchImportStaff(list); + for (List staffInfoDtos : lists) { + userActionDao.batchImportStaff(staffInfoDtos); + } return ResponseData.success(list); } @@ -257,4 +289,82 @@ return ResponseData.error("操作失败"); } } + + @Override + public Page getUserList(Page page, UserRequest request) { + Page result = userActionDao.getUserList(page,request); + for (UserDto userDto : result.getRecords()) { + if(StringUtil.isNotEmpty(userDto.getDocumentType())){ + userDto.setDocumentTypeName(dictService.getDictNameByCode("documentType",userDto.getDocumentType())); + } + if(StringUtil.isNotEmpty(userDto.getLogonState())){ + userDto.setLogonState(userDto.getLogonState().equals("0")?"是":"否"); + } + } + return result; + } + + @Override + @Transactional + public Object addUser(StaffInfoDto staffInfoDto) { + Long id = IdWorker.getId(); + staffInfoDto.setId(id); + staffInfoDto.setLogonState("1"); + if(StringUtil.isNotEmpty(staffInfoDto.getPhone())){ + staffInfoDto.setLogonState("0"); + } + userActionDao.addUser(staffInfoDto); + RuRelation ruRelation = new RuRelation(id,Long.parseLong(staffInfoDto.getStaffRole())); + ruRelationMapper.insert(ruRelation); + return ResponseData.success(); + + } + + @Override + public Object delUser(IdsDTO idsDTO) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("id",idsDTO.getIds()); + if(this.remove(wrapper)){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + @Override + public Object updateUser(StaffInfoDto staffInfoDto) { + userActionDao.updateUser(staffInfoDto); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("USERID",staffInfoDto.getId()).set("ROLEID", staffInfoDto.getStaffRole()); + if(ruRelationMapper.update(null,updateWrapper)>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + @Override + public void download(String fileId,HttpServletResponse response) { + try { + String filePath = "/tmp/"; + File file = new File(filePath + fileId); + log.error("文件地址:"+ filePath +fileId); + String resultFileName = fileId; + resultFileName = URLEncoder.encode(resultFileName,"UTF-8").replaceAll("\\+", "%20"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + resultFileName); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + FileInputStream in = new FileInputStream(file); + OutputStream out = response.getOutputStream(); + int bytes = 0; + byte[] bufferOut = new byte[1024]; + while ((bytes = in.read(bufferOut)) != -1) { + out.write(bufferOut, 0, bytes); + } + out.close(); + in.close(); + } catch (Exception e) { + e.printStackTrace(); + log.error("下载失败:"+e); + } + } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java index c2608e4..d466d79 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.util.DateUtils; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dao.VisitorApplyMapper; import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.*; +import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; @@ -23,7 +27,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * @Description: @@ -42,6 +50,12 @@ @Resource private UserActionMapper userActionMapper; + @Resource + private IBaseExportService iBaseExportService; + + @Resource + private AbstractDictService dictService; + @Override public Object add(VisitorApplyAddRequest visitorApplyAddRequest, HttpServletRequest request) { JSONObject jsonObject = userActionService.getLoginStatus(request); @@ -94,6 +108,32 @@ return ResponseData.success(visitorApplyPage); } + + @Override + public Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page visitorApplyPage = visitorApplyMapper.getApplyList(page,visitorApplyListRequest); + visitorApplyPage.setRecords(handleData(visitorApplyPage.getRecords())); + return ResponseData.success(visitorApplyPage); + } + + @Override + public void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + List list = visitorApplyMapper.getApplyList(visitorApplyListRequest); + iBaseExportService.exportExcel(response, VisitorApply.class,supplementList(list), "sheet"); + } + + private List handleData(List list){ + for (VisitorApply apply : list) { + switch (apply.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_SUBMITTED:apply.setVisitorApplyStatus("申请中");break; + case VisitorApplyStatusDict.APPLY_PASSED:apply.setVisitorApplyStatus("申请通过");break; + case VisitorApplyStatusDict.APPLY_FAILED:apply.setVisitorApplyStatus("申请未通过");break; + } + apply.setVisitDate(apply.getInTime()+"-"+apply.getOutTime()); + } + return list; + } + @Override public Object updateStatus(VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { try { @@ -152,11 +192,14 @@ UserDto userDto = new UserDto(); userDto.setSyncId(openid); UserDto userInfo = userActionMapper.getUserInfo(userDto); - String flag = ""; - if(userInfo.getSalt().equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ + /* String flag = ""; + QueryWrapper ruRelationWrapper = new QueryWrapper<>(); + ruRelationWrapper.eq("USERID",userInfo.getId()); + RuRelation ruRelation = ruRelationMapper.selectOne(ruRelationWrapper); + if(String.valueOf(ruRelation.getRoleId()).equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ flag = "true"; - } - Page> resMap = visitorApplyMapper.getMessageList(page,openid,flag,userInfo.getAccount()); + }*/ + Page> resMap = visitorApplyMapper.getMessageList(page,openid,userInfo.getAccount()); for (HashMap map : resMap.getRecords()){ map.put("apply_time",map.get("in_time").toString()+"-"+map.get("out_time").toString()); map.put("send_time",DateUtils.parseDate(map.get("create_time").toString()).getTime()); @@ -177,20 +220,61 @@ try { QueryWrapper qw = new QueryWrapper<>(); qw.in("id", idsDTO.getIds()); + qw.orderByDesc("create_time"); List visitorApplyList = visitorApplyMapper.selectList(qw); - visitorApplyList.forEach(visitorApply -> { - switch (visitorApply.getVisitorApplyStatus()){ - case "1": visitorApply.setVisitorApplyStatus("申请已提交");break; - case "2": visitorApply.setVisitorApplyStatus("申请通过");break; - case "3": visitorApply.setVisitorApplyStatus("申请不通过");break; - } - }); - ExportUtils.writeExcel(response,visitorApplyList,"fileName","sheet",VisitorApply.class); + ExportUtils.writeExcel(response,supplementList(visitorApplyList),"fileName","sheet",VisitorApply.class); } catch (Exception e) { e.printStackTrace(); } } + @Override + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + JSONObject jsonObject = userActionService.getLoginStatus(request); + if(null == jsonObject){ + return ResponseData.error(2401,Status.TOKEN_EXPIRES); + } + VisitorApply visitorApply = visitorApplyMapper.selectById(applyId); + if(judgeOperate(visitorApply)){ + return ResponseData.error("您的访客申请信息已无法进行删除"); + } + if(visitorApplyMapper.deleteById(visitorApply.getId())>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + private Boolean judgeOperate(VisitorApply visitorApply) throws ParseException { + Date date = DateUtils.parseDate(visitorApply.getCreateTime(),"yyyy-MM-dd"); + Date createDate = date; + Calendar calendar = Calendar.getInstance(); + // 设置为当前时间 + calendar.setTime(date); + calendar.add(Calendar.DATE,1); + calendar.add(Calendar.HOUR,8); + date = calendar.getTime(); + if(createDate.getTime()>date.getTime()){ + return true; + }else { + return false; + } + } + @Override + public Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + JSONObject jsonObject = userActionService.getLoginStatus(request); + if(null == jsonObject){ + return ResponseData.error(2401,Status.TOKEN_EXPIRES); + } + VisitorApply apply = visitorApplyMapper.selectById(visitorApply.getId()); + if(judgeOperate(apply)){ + return ResponseData.error("您的访客申请信息已无法进行编辑"); + } + if(visitorApplyMapper.updateById(visitorApply)>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + private void sentMessage(VisitorApply visitorApply,String[] dataArr) { String toUser = getToUser(visitorApply.getStaffCode()); if(StringUtil.isNotEmpty(toUser)){ @@ -232,4 +316,24 @@ MessageDto message = new MessageDto(UuidUtils.getId(),messageId,status,DateUtils.format(new Date()),toUser); userActionMapper.insertMessageLog(message); } + private List supplementList(List visitorApplyList){ + List devicePosition = dictService.findInDictByCode("devicePosition"); + Map> devicePositionMap = devicePosition.stream().collect(Collectors.groupingBy(Dict::getName)); + List visitReason = dictService.findInDictByCode("visitReason"); + Map> visitReasonMap = visitReason.stream().collect(Collectors.groupingBy(Dict::getName)); + for (VisitorApply visitorApply : visitorApplyList) { + switch (visitorApply.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_FAILED: + case VisitorApplyStatusDict.APPLY_SUBMITTED: visitorApply.setVisitorApplyStatus("0");break; + case VisitorApplyStatusDict.APPLY_PASSED: visitorApply.setVisitorApplyStatus("1");break; + } + if(devicePositionMap.get(visitorApply.getVisitPosition()) != null && devicePositionMap.get(visitorApply.getVisitPosition()).size()!=0){ + visitorApply.setVisitPosition(devicePositionMap.get(visitorApply.getVisitPosition()).get(0).getCode()); + } + if(visitReasonMap.get(visitorApply.getVisitReason()) != null && visitReasonMap.get(visitorApply.getVisitReason()).size()!=0){ + visitorApply.setVisitReason(visitReasonMap.get(visitorApply.getVisitReason()).get(0).getCode()); + } + } + return visitorApplyList; + } } diff --git a/casic-web/src/main/resources/mapper/MessageMapper.xml b/casic-web/src/main/resources/mapper/MessageMapper.xml new file mode 100644 index 0000000..4a6f566 --- /dev/null +++ b/casic-web/src/main/resources/mapper/MessageMapper.xml @@ -0,0 +1,45 @@ + + + + + + \ No newline at end of file diff --git a/casic-web/src/main/resources/mapper/UserActionMapper.xml b/casic-web/src/main/resources/mapper/UserActionMapper.xml index 334b90e..122bb1f 100644 --- a/casic-web/src/main/resources/mapper/UserActionMapper.xml +++ b/casic-web/src/main/resources/mapper/UserActionMapper.xml @@ -20,7 +20,7 @@ - and t.ACCOUNT = #{userDto.account} + and binary t.ACCOUNT = #{userDto.account} and t.NAME = #{userDto.name} @@ -33,10 +33,10 @@ - UPDATE sys_user SET `PHONE` = #{userDto.phone},`SALT`=#{userDto.salt} WHERE `ACCOUNT` = #{userDto.account} and `NAME` = #{userDto.name} + UPDATE sys_user SET `PHONE` = #{userDto.phone},`SALT`=#{userDto.salt},logon_state=#{userDto.logonState},DOCUMENT_TYPE=#{userDto.documentType} WHERE `ACCOUNT` = #{userDto.account} and `NAME` = #{userDto.name} - UPDATE sys_user SET `SYNC_ID` = #{userDto.syncId} WHERE `ACCOUNT` = #{userDto.account} and `NAME` = #{userDto.name} and `PHONE` = #{userDto.phone} + UPDATE sys_user SET `SYNC_ID` = #{userDto.syncId},logon_state=#{userDto.logonState} WHERE `ACCOUNT` = #{userDto.account} and `NAME` = #{userDto.name} and `PHONE` = #{userDto.phone} INSERT INTO sys_ru_relation ( `ID`, `USERID`, `ROLEID`,`UPDATE_TIME`) @@ -76,11 +76,102 @@ + - INSERT INTO sys_user(`ID`, `ACCOUNT`, `NAME`, `SEX`) VALUES + INSERT INTO sys_user ( + `ID`, + `ACCOUNT`, + `SALT`, + `NAME`, + `PHONE`, + `DOCUMENT_TYPE`, + `remark`, + `logon_state` + ) VALUES - (#{user.id},#{user.jobNo},#{user.staffName},#{user.staffGender}) + ( + #{user.id}, + #{user.account}, + #{user.staffType}, + #{user.name}, + #{user.phone}, + #{user.documentType}, + #{user.remark}, + #{user.logonState} + ) + + INSERT INTO sys_user ( + `ID`, + `ACCOUNT`, + `SALT`, + `NAME`, + `PHONE`, + `DOCUMENT_TYPE`, + `remark`, + `logon_state` + ) + VALUES( + #{user.id}, + #{user.account}, + #{user.staffType}, + #{user.name}, + #{user.phone}, + #{user.documentType}, + #{user.remark}, + #{user.logonState} + ) + + + UPDATE sys_user + SET `SALT` = #{user.staffType}, + `PHONE` = #{user.phone}, + `DOCUMENT_TYPE` = #{user.documentType}, + `remark` = #{user.remark} + WHERE + `ID` = #{user.id} + \ No newline at end of file diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java index 6f82170..c933273 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MessageController.java @@ -1,13 +1,19 @@ package com.casic.missiles.modular.system.controller; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.model.response.ResponseData; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; import com.casic.missiles.modular.system.service.MessageService; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -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 org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; /** * @Description: @@ -17,15 +23,26 @@ @Slf4j @RestController @RequestMapping("/message") -public class MessageController { +public class MessageController extends ExportController { @Autowired private MessageService messageService; /** * 消息列表 */ - @PostMapping("/apply/submit") - public Object visitorApply(@RequestBody MessageListRequest messageListRequest) { - return messageService.list(messageListRequest); + @PostMapping("/messageList") + public Object messageList(@RequestBody MessageDto dto) { + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(messageService.list(page, dto))); + } + + /** + * 消息列表导出 + */ + @ApiOperation("消息列表导出") + @PostMapping("/exportList") + @ResponseBody + public void exportList(@RequestBody MessageDto dto, HttpServletResponse response) throws Exception{ + messageService.exportList(dto,response); } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java index 87cab49..4844fa3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/UserController.java @@ -2,10 +2,13 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.handler.CommonExcelListener; import com.casic.missiles.modular.system.service.UserActionService; @@ -13,12 +16,14 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Controller; +import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.io.IOException; import java.util.List; @@ -30,7 +35,7 @@ @Controller @Slf4j @RequestMapping("user") -public class UserController { +public class UserController extends ExportController { @Resource private UserActionService userActionService; @@ -42,6 +47,16 @@ } /** + * 用户列表查询 + */ + @RequestMapping("/getUserList") + @ResponseBody + public Object getUserList(@RequestBody UserRequest request){ + Page page = PageFactory.defaultPage(); + return ResponseData.success(super.packForBT(userActionService.getUserList(page, request))); + } + + /** * 认证手机号登录 */ @RequestMapping("userLogin") @@ -59,12 +74,30 @@ return userActionService.userRegister(userDto); } /** - * 获取员工类型 + * 新增用户信息 */ - @RequestMapping("getUserType") + @RequestMapping("addUser") @ResponseBody - public Object getUserType(){ - return userActionService.getUserType(); + public Object addUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.addUser(staffInfoDto); + } + + /** + * 编辑用户信息 + */ + @RequestMapping("updateUser") + @ResponseBody + public Object updateUser(@RequestBody StaffInfoDto staffInfoDto){ + return userActionService.updateUser(staffInfoDto); + } + + /** + * 删除用户信息 + */ + @RequestMapping("delUser") + @ResponseBody + public Object delUser(@RequestBody IdsDTO idsDTO){ + return userActionService.delUser(idsDTO); } /** * 修改照片 @@ -114,21 +147,35 @@ */ @PostMapping("/exportList") @ResponseBody - public void exportStaffList(Long page,Long limit,HttpServletResponse response) { + public void exportStaffList(@RequestBody UserRequest request,HttpServletResponse response) { try { - userActionService.exportStaffList(page,limit,response); + userActionService.exportStaffList(request,response); + }catch (Exception e){ + e.printStackTrace(); + } + } + /** + * 模板下载 + */ + @RequestMapping("/download") + @ResponseBody + public void download(String fileName,HttpServletResponse response) { + try { + userActionService.download(fileName,response); }catch (Exception e){ e.printStackTrace(); } } @PostMapping(value = "/importList", headers = "content-type=multipart/form-data") @ResponseBody - public Object batchImportStaff(@RequestParam MultipartFile multipartFile) { + public Object batchImportStaff(@RequestParam MultipartFile[] multipartFile) { try { CommonExcelListener listener = new CommonExcelListener<>(); final long start = System.currentTimeMillis(); - EasyExcel.read(multipartFile.getInputStream(), StaffInfoDto.class, listener) - .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + for (MultipartFile file : multipartFile) { + EasyExcel.read(file.getInputStream(), StaffInfoDto.class, listener) + .headRowNumber(1).autoTrim(true).sheet(0).doRead(); + } log.info("耗时:秒" + (System.currentTimeMillis() - start) / 1000); //读取到的数据 List list = listener.getList(); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java index b3b2504..736bc10 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/VisitController.java @@ -3,12 +3,11 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; -import com.casic.missiles.modular.system.dto.IdsDTO; -import com.casic.missiles.modular.system.dto.VisitorApplyAddRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; -import com.casic.missiles.modular.system.dto.VisitorApplyStatusRequest; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.MessageDict; import com.casic.missiles.modular.system.enums.MessageEnum; +import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; import com.casic.missiles.modular.system.utils.WXUserUtils; @@ -20,6 +19,8 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -34,12 +35,6 @@ @Autowired private VisitorApplyService visitorApplyService; - @Resource - private UserActionService userActionService; - - @Value("${casic.file.uploadPath}") - private String path; - /** * 访客信息提交 */ @@ -64,48 +59,58 @@ public Object visitorApplyStatus(@RequestBody VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { return visitorApplyService.updateStatus(visitorApplyStatusRequest,request); } - + /** + * 消息详细信息 + */ @RequestMapping("/getMessageInfo") public Object getMessageInfo(String messageId, HttpServletRequest request) { return visitorApplyService.getMessageInfo(messageId,request); } - + /** + * 导出消息列表 + */ @PostMapping("/exportMessage") public void exportMessage(@RequestBody IdsDTO idsDTO, HttpServletResponse response) { visitorApplyService.exportMessage(idsDTO,response); } - + /** + * 获取消息列表 + */ @RequestMapping("/getMessageList") public Object getMessageList(@RequestBody HashMap map,HttpServletRequest request) { Page page = new Page(map.get("offset"),map.get("limit")); return visitorApplyService.getMessageList(page,request); } + /** + * 删除访客申请 + */ + @RequestMapping("/delApply") + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + return visitorApplyService.delApply(applyId,request); + } + /** + * 编辑访客申请 + */ + @RequestMapping("/updateApply") + public Object updateApply(@RequestBody VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + return visitorApplyService.updateApply(visitorApply,request); + } - @RequestMapping("/sendSubscribeMessage") - public Object sendSubscribeMessage(String toUser) { - String token = userActionService.getToken(); - System.out.println(token); - String param = testJson(toUser); - JSONObject result = WXUserUtils.sendSubscribeMessage(param,token); - return result; + /** + * 访客申请列表 + */ + @PostMapping("/getApplyList") + public Object getApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page page = PageFactory.defaultPage(); + return visitorApplyService.getApplyList(page,visitorApplyListRequest,request); } - @RequestMapping("/testJson") - public String testJson(String toUser) { - HashMap map = new HashMap<>(); - map.put("touser",toUser); - map.put("template_id",MessageDict.APPLICANT_MESSAGE_TEMPLATE_ID); - map.put("miniprogram_state","developer"); - HashMap dataMap = new HashMap<>(); - String[] arr = {MessageEnum.APPLY_PASSED.getValue(),"202212230001","张三","目的","2楼"}; - String [] mbarr = MessageDict.APPLICANT_MESSAGE_TEMPLATE_DATA; - for (int i = 0; i< mbarr.length; i++) { - HashMap valueMap = new HashMap<>(); - valueMap.put("value",arr[i]); - dataMap.put(mbarr[i],valueMap); - } - map.put("data",dataMap); - JSONObject jsonObject = new JSONObject(map); - System.out.println(jsonObject); - return jsonObject.toString(); + + /** + * 导出消息列表 + */ + @PostMapping("/exportApplyList") + public void exportApplyList(@RequestBody VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + visitorApplyService.exportApplyList(visitorApplyListRequest,response); } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java new file mode 100644 index 0000000..44f79ee --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MessageMapper.java @@ -0,0 +1,14 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface MessageMapper{ + + Page list(Page page, @Param("request") MessageDto dto); + + List list(@Param("request") MessageDto dto); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java index a6abe39..255eb59 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/UserActionMapper.java @@ -2,10 +2,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.casic.missiles.modular.system.dto.MessageDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.VisitorApplyListRequest; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import org.apache.ibatis.annotations.Param; @@ -13,7 +10,7 @@ import java.util.HashMap; import java.util.List; -public interface UserActionMapper extends BaseMapper { +public interface UserActionMapper extends BaseMapper { List getList(@Param("id") String id); void userRegister(@Param("userDto") UserDto userDto); @@ -22,8 +19,6 @@ void setUserOpenId(@Param("userDto")UserDto user); - void userEmpowerment(@Param("id")String id,@Param("userId")String userId,@Param("roleId") String roleId,@Param("updateTime")String updateTime); - void updateUserImg(@Param("fileId")String fileId, @Param("uid") String uid); List getUserJurisdiction(@Param("uid") String uid); @@ -35,4 +30,12 @@ Page exportStaffList(Page page); void batchImportStaff(@Param("list") List list); + + Page getUserList(Page page, @Param("request")UserRequest request); + + List getUserList(@Param("request")UserRequest request); + + void addUser(@Param("user")StaffInfoDto staffInfoDto); + + void updateUser(@Param("user")StaffInfoDto staffInfoDto); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java index be1ebb8..a479c5e 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/VisitorApplyMapper.java @@ -21,7 +21,11 @@ Page selectApplyList(Page page,@Param("request") VisitorApplyListRequest request); - Page> getMessageList(Page> page,@Param("openid") String openid,@Param("flag")String flag,@Param("user")String user); + Page> getMessageList(Page> page,@Param("openid") String openid,@Param("user")String user); String selectApplyNo(); + + Page getApplyList(Page page, @Param("request")VisitorApplyListRequest visitorApplyListRequest); + + List getApplyList(@Param("request")VisitorApplyListRequest visitorApplyListRequest); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java index a16cd1e..97ed177 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/MessageDto.java @@ -1,13 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; import lombok.Data; @Data +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class MessageDto { + /** + * 消息编号 + */ + @ExcelProperty(value = "消息编号",order = 0) private String id; + /** + * 申请编号 + */ + @ExcelProperty(value = "申请编号",order = 1) private String messageId; + /** + * 发送状态 + */ + @ExcelProperty(value = "发送状态",order = 2) private String status; + /** + * 申请状态 + */ + @ExcelProperty(value = "申请状态",order = 3) + private String visitorApplyStatus; + /** + * 接收人证件编码 + */ + @ExcelProperty(value = "接收人证件编码",order = 4) + private String account; + /** + * 接收人姓名 + */ + @ExcelProperty(value = "接收人姓名",order = 5) + private String name; + /** + * 发送开始时间 + */ + @ExcelProperty(value = "发送时间",order = 6) private String createTime; + + /** + * 发送结束时间 + */ + private String createEndTime; + /** + * 接收人openid + */ private String openId; public MessageDto(String id, String messageId, String status, String createTime, String openId) { diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java index 0cb8058..7a86231 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/StaffInfoDto.java @@ -6,10 +6,19 @@ @Data public class StaffInfoDto { private Long id; - @ExcelProperty(value = "工号",order = 0) - private String jobNo;//工号 - @ExcelProperty(value = "姓名",order = 1) - private String staffName;//姓名 - @ExcelProperty(value = "性别",order = 2) - private String staffGender;//性别 + @ExcelProperty(value = "员工证件编号",order = 0) + private String account;//工号 + @ExcelProperty(value = "员工姓名",order = 1) + private String name;//姓名 + @ExcelProperty(value = "证件类型",order = 2) + private String documentType;//证件类型 + @ExcelProperty(value = "手机号",order = 3) + private String phone;//电话 + @ExcelProperty(value = "员工类型",order = 4) + private String staffType;//员工类型 + private String staffRole;//员工角色 + @ExcelProperty(value = "备注",order = 5) + private String remark;//备注 + + private String logonState;//是否注册 } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java index a8743f2..095d526 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserDto.java @@ -1,44 +1,64 @@ package com.casic.missiles.modular.system.dto; +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.ContentStyle; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.math.BigDecimal; @Data +@TableName("sys_user") +@ColumnWidth(30) +@HeadRowHeight(15) +@ContentRowHeight(20) +@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN) +@ExcelIgnoreUnannotated public class UserDto { + @TableField("id") private String id;//主键id + @TableField("avatar") private String avatar;//头像 - @ExcelProperty(value = "工号",order = 0) + @ExcelProperty(value = "证件编号",order = 0) + @TableField("account") private String account;//账号 - private String password;//密码 + @TableField("salt") private String salt;//md5密码盐 - @ExcelProperty(value = "姓名",order = 1) + @ExcelProperty(value = "员工姓名",order = 1) + @TableField("name") private String name;//名字 - private String birthday;//生日 - @ExcelProperty(value = "性别",order = 2) + @TableField("sex") private String sex;//性别 - private String email;//电子邮件 + @TableField("phone") + @ExcelProperty(value = "电话",order = 3) private String phone;//电话 - private String roleId;//角色id(停用) - private String deptId;//部门ID - private String status;//状态 - private Integer version;//保留字段 + @TableField("syncId") private String syncId;//原ID - private String syncName;//原名称 - private String syncPwd;//同步密码 - private String syncDeptid;//同步组织ID - private Integer isSync;//是否是同步数据 - private String loginIp;//登录限制IP - private String loginMac;//登录MAC地址 - private Double positionLng;//定位经度 - private Double positionLat;//定位纬度 + @TableField("attr1") private String attr1;//预留字段 - private String lastTime;//登录时间 - private String createUser;//创建用户 - private String updateUser;//修改用户 - private String createTime;//创建时间 - private String updateTime;//修改时间 - private String delFlag;//删除状态 - private String tenantId;//租户ID + @TableField("documentType") + private String documentType;//证件类型 + @TableField("remark") + @ExcelProperty(value = "备注",order = 7) + private String remark;//备注 + @TableField(exist = false) + @ExcelProperty(value = "证件类型",order = 2) + private String documentTypeName;//证件类型名称 + @TableField("logon_state") + @ExcelProperty(value = "是否已在小程序注册",order = 4) + private String logonState; + + private String staffType; + @ExcelProperty(value = "员工类型名称",order = 5) + private String staffTypeName; + + private String staffRole; + @ExcelProperty(value = "员工角色",order = 6) + private String staffRoleName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java new file mode 100644 index 0000000..c56016d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/UserRequest.java @@ -0,0 +1,35 @@ +package com.casic.missiles.modular.system.dto; + +import lombok.Data; + +@Data +public class UserRequest { + /** + * 证件编号(工号) + */ + private String account; + /** + * 姓名 + */ + private String name; + /** + * 证件类型 + */ + private String documentType; + /** + * 手机号 + */ + private String phone; + /** + * 是否注册 + */ + private String logonState; + /** + * 员工类型 + */ + private String staffType; + /** + * 员工角色 + */ + private String roleName; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java index f6bed59..e142195 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dto/VisitorApplyListRequest.java @@ -19,4 +19,23 @@ private String ids; private Long offset; private Long limit; + + // 申请人编号 + private String account; + //申请单号 + private String applyNo; + //访客姓名 + private String visitorName; + //访问目的 + private String visitReason; + //访问区域(楼栋) + private String visitPosition; + //访问开始时间 + private String inTime; + //访问结束时间 + private String outTime; + //申请者工号 + private String staffCode; + //申请者姓名 + private String staffName; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java deleted file mode 100644 index efe2ac5..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/AdminVisitorApplyStatusDict.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.casic.missiles.modular.system.enums; - -/** - * @Description: 申请者访客申请状态 - * @Author: wangpeng - * @Date: 2022/11/15 15:44 - */ -public interface AdminVisitorApplyStatusDict { - //校验通过 - String VERIFY_PASSED = "1"; - //校验不通过 - String VERIFY_FAILED = "2"; - //无法校验 - String UNABLE_TO_VERIFY = "3"; -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java new file mode 100644 index 0000000..9a353da --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/DocumentTypeEnum.java @@ -0,0 +1,8 @@ +package com.casic.missiles.modular.system.enums; + +public interface DocumentTypeEnum { + //工作证 + String WORK = "1"; + //出入证 + String PASS = "0"; +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java index 8746e42..bcfc905 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/RoleEnum.java @@ -2,6 +2,7 @@ public enum RoleEnum { + REGULAR_EMPLOYEE("1556844891841564673", "正式员工"), PROPERTY_PERSONNEL("1556844890952372225", "物业人员"), ROLE_PROPERTY_PERSONNEL("1319814546311985641", "物业人员"), ROLE_ORDINARY_USER("1397015476211346433", "普通员工"); diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java index 88f70b2..353422f 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/Status.java @@ -6,6 +6,8 @@ String SYSTEM_ERROR = "系统异常"; String LOGIN_SUCCEEDED = "登录成功"; String EMPLOYEE_NOT_EXIS = "员工不存在"; + String DOCUMENT_TYPE = "证件类型不正确"; + String DOCUMENT_TYPE_PASS = "出入证证件编号字母必须为大写"; String USER_ALREADY_REGISTERED = "该手机号已注册"; String USER_ALREADY_NOT_REGISTERED = "您的账号未注册,请先注册"; String FAILED_CERTIFICATION = "认证不通过"; diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java new file mode 100644 index 0000000..048f3c6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/enums/VisitorApplyDict.java @@ -0,0 +1,38 @@ +package com.casic.missiles.modular.system.enums; + +/** + * @Description: 申请者访客申请状态 + * @Author: wangpeng + * @Date: 2022/11/15 15:44 + */ +public enum VisitorApplyDict { + BUSINESS_MEETINGS("1", "商务会议"), + INSTALLATION_MAINTENANCE("2", "安装维修"), + BUSINESS_CONVERSATION("3", "商务洽谈"), + PERFORMANCE("4", "节目参演"), + CONFERENCE_VISITOR("5", "会议拜访"), + ENGINEER_MAINTENANCE("6", "工程维保"), + + FIRST_BUILDING("1", "一期主楼"), + SECOND_BUILDING("2", "二期主楼"), + TRANSCRIBE_BUILDING("3", "录制楼"), + TELEVISION_STUDIO("4", "1600演播厅"), + YARD_WORK_AREA("5", "大院工作区"); + + + private String code; + private String value; + + VisitorApplyDict(String code, String value) { + this.code = code; + this.value = value; + } + + public String getCode() { + return code; + } + + public String getValue() { + return value; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java index 16df306..9cce542 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/VisitorApply.java @@ -7,6 +7,7 @@ import com.alibaba.excel.annotation.write.style.ContentStyle; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import com.alibaba.excel.enums.poi.BorderStyleEnum; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -26,35 +27,39 @@ public class VisitorApply { @TableId private Long id; - @ExcelProperty(value = "访客姓名",order = 1) + @ExcelProperty(value = "访客姓名",order = 2) private String visitorName; + @TableField(exist = false) + @ExcelProperty(value = "申请类型",order = 1) + private final String applyType = "0"; @ExcelProperty(value = "访客申请单号",order = 0) private String applyNo; - @ExcelProperty(value = "申请者工号",order = 8) + @ExcelProperty(value = "申请者工号",order = 9) private String staffCode; - @ExcelProperty(value = "申请者姓名",order = 9) + @ExcelProperty(value = "申请者姓名",order = 10) private String staffName; - @ExcelProperty(value = "访客身份证",order = 2) + @ExcelProperty(value = "访客身份证",order = 3) private String visitorIdCard; - @ExcelProperty(value = "访客联系方式",order = 3) + @ExcelProperty(value = "访客联系方式",order = 4) private String visitorPhone; - @ExcelProperty(value = "访问目的",order = 4) + @ExcelProperty(value = "访问目的",order = 5) private String visitReason; - @ExcelProperty(value = "访问楼栋",order = 5) + @ExcelProperty(value = "访问楼栋",order = 6) private String visitPosition; - @ExcelProperty(value = "备注",order = 12) + @ExcelProperty(value = "备注",order = 13) private String remarks; - @ExcelProperty(value = "访问开始时间",order = 6) + @ExcelProperty(value = "访问开始时间",order = 7) private String inTime; - @ExcelProperty(value = "访问结束时间",order = 7) + @ExcelProperty(value = "访问结束时间",order = 8) private String outTime; - @ExcelProperty(value = "状态",order = 11) + @ExcelProperty(value = "状态",order = 12) private String visitorApplyStatus; private String adminVisitorApplyStatus; - @ExcelProperty(value = "申请者联系方式",order = 10) + @ExcelProperty(value = "申请者联系方式",order = 11) private String staffPhone; - + @TableField(exist = false) + private String visitDate; private String createTime; private String updateTime; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java index dba4a59..2eacfaf 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/MessageService.java @@ -1,12 +1,19 @@ package com.casic.missiles.modular.system.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + /** * @Description: * @Author: wangpeng * @Date: 2022/11/17 13:48 */ public interface MessageService { - Object list(MessageListRequest messageListRequest); + Page list(Page page,MessageDto dto); + + void exportList(MessageDto dto, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java index 519da83..0289c88 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/UserActionService.java @@ -1,19 +1,16 @@ package com.casic.missiles.modular.system.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; -import com.casic.missiles.modular.system.dto.ParamsDto; +import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.model.Dict; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; -public interface UserActionService extends IService { - - Object getUserType(); +public interface UserActionService extends IService { Object userRegister(UserDto userDto); @@ -33,9 +30,19 @@ Object getUserPhoneNumber(ParamsDto dto,HttpServletRequest request); - void exportStaffList(Long page,Long limit,HttpServletResponse response); + void exportStaffList(UserRequest request,HttpServletResponse response); Object batchImportStaff(List list); Object logOut(HttpServletRequest request); + + Page getUserList(Page page, UserRequest request); + + Object addUser(StaffInfoDto userDto); + + Object delUser(IdsDTO idsDTOd); + + Object updateUser(StaffInfoDto staffInfoDto); + + void download(String fileId,HttpServletResponse response); } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java index d7e1618..d20e7ca 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/VisitorApplyService.java @@ -9,6 +9,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; import java.util.HashMap; /** @@ -30,4 +32,12 @@ Object getMessageList(Page> page,HttpServletRequest request); void exportMessage(IdsDTO idsDTO, HttpServletResponse response); + + Object delApply(String applyId, HttpServletRequest request) throws ParseException; + + Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException; + + Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request); + + void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException; } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java index 74222c1..f195b37 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MessageServiceImpl.java @@ -1,10 +1,22 @@ package com.casic.missiles.modular.system.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.core.base.service.IBaseExportService; +import com.casic.missiles.modular.system.dao.MessageMapper; +import com.casic.missiles.modular.system.dto.MessageDto; import com.casic.missiles.modular.system.dto.MessageListRequest; +import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.enums.VisitorApplyStatusDict; import com.casic.missiles.modular.system.service.MessageService; +import dm.jdbc.util.StringUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.List; + /** * @Description: * @Author: wangpeng @@ -13,8 +25,34 @@ @Slf4j @Service public class MessageServiceImpl implements MessageService { + + @Resource + private MessageMapper messageMapper; + + @Resource + private IBaseExportService iBaseExportService; + @Override - public Object list(MessageListRequest messageListRequest) { - return null; + public Page list(Page page, MessageDto dto) { + Page result = messageMapper.list(page,dto); + result.setRecords(handleData(result.getRecords())); + return result; + } + + @Override + public void exportList(MessageDto dto, HttpServletResponse response) throws IOException { + List result = messageMapper.list(dto); + iBaseExportService.exportExcel(response, MessageDto.class,handleData(result), "sheet"); + } + private List handleData(List list){ + for (MessageDto messageDto : list) { + messageDto.setStatus(messageDto.getStatus().equals("0")?"发送成功":"发送失败"); + switch (messageDto.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_SUBMITTED:messageDto.setVisitorApplyStatus("已提交");break; + case VisitorApplyStatusDict.APPLY_PASSED:messageDto.setVisitorApplyStatus("已通过");break; + case VisitorApplyStatusDict.APPLY_FAILED:messageDto.setVisitorApplyStatus("未通过");break; + } + } + return list; } } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java index 40e00bb..4e746f3 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/UserActionServiceImpl.java @@ -1,44 +1,47 @@ package com.casic.missiles.modular.system.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.model.response.ResponseData; -import com.casic.missiles.modular.system.dao.UserActionMapper; -import com.casic.missiles.modular.system.dto.ParamsDto; -import com.casic.missiles.modular.system.dto.StaffInfoDto; -import com.casic.missiles.modular.system.dto.UserDto; +import com.casic.missiles.modular.system.dao.*; +import com.casic.missiles.modular.system.dto.*; +import com.casic.missiles.modular.system.enums.DocumentTypeEnum; import com.casic.missiles.modular.system.enums.RoleEnum; import com.casic.missiles.modular.system.enums.Status; import com.casic.missiles.modular.system.model.Dict; +import com.casic.missiles.modular.system.model.RuRelation; +import com.casic.missiles.modular.system.service.ICasicFileService; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.utils.JJWTRootUtils; -import com.casic.missiles.modular.system.utils.UuidUtils; import com.casic.missiles.modular.system.utils.WXUserUtils; import dm.jdbc.util.StringUtil; import io.jsonwebtoken.Claims; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.ListUtils; +import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.io.*; +import java.net.URLEncoder; +import java.util.*; import java.util.concurrent.TimeUnit; @Slf4j @Service("UserActionService") -public class UserActionServiceImpl extends ServiceImpl implements UserActionService { +public class UserActionServiceImpl extends ServiceImpl implements UserActionService { @Resource private UserActionMapper userActionDao; @@ -46,11 +49,22 @@ @Resource private RedisTemplate redisTemplate; + @Resource + private RuRelationMapper ruRelationMapper; + final String SALT = "y76dniizew"; + public static final String REG_LOWERCASE = "^[A-Z0-9]+$"; + + @Resource + private AbstractDictService dictService; + @Resource private IBaseExportService iBaseExportService; + @Resource + private ICasicFileService iCasicFileService; + @Override public Object getLoginToken(String code) { JSONObject jsonObject = WXUserUtils.getOpenId(code); @@ -61,7 +75,6 @@ Map payLoad = new HashMap<>(); payLoad.put("token", newOpenid); String token = JJWTRootUtils.generatorToken(payLoad); - System.out.println(jsonObject.get("openid")); if(StringUtil.isNotEmpty(token)){ ValueOperations operations = redisTemplate.opsForValue(); operations.set(newOpenid, jsonObject); @@ -85,6 +98,7 @@ if(null != user){ if(StringUtil.isEmpty(user.getSyncId())){ user.setSyncId(jsonObject.get("openid").toString()); + user.setLogonState("0"); userActionDao.setUserOpenId(user); } List list = userActionDao.getList(user.getSalt()); @@ -99,10 +113,18 @@ } @Override + @Transactional public Object userRegister(UserDto userDto) { try { - SimpleDateFormat sim = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - //String phone = WXUserUtils.getPhone(userDto.getPhone(),getToken()); + if(userDto.getDocumentType().equals(DocumentTypeEnum.PASS)){ + if(!userDto.getAccount().matches(REG_LOWERCASE)){ + return ResponseData.error(Status.DOCUMENT_TYPE_PASS); + } + }else{ + if(userDto.getAccount().charAt(0) != 'G'){ + userDto.setAccount("G"+userDto.getAccount()); + } + } UserDto dto = new UserDto(); dto.setAttr1(userDto.getPhone()); UserDto user = userActionDao.getUserInfo(dto); @@ -110,8 +132,17 @@ userDto.setAttr1(""); UserDto userInfo = userActionDao.getUserInfo(userDto); if(null != userInfo){ + if(StringUtil.isNotEmpty(userInfo.getDocumentType()) && !userDto.getDocumentType().equals(userInfo.getDocumentType())){ + return ResponseData.error(Status.DOCUMENT_TYPE); + } + userDto.setLogonState("0"); + userDto.setSalt(RoleEnum.REGULAR_EMPLOYEE.getCode()); userActionDao.userRegister(userDto); - userActionDao.userEmpowerment(UuidUtils.getId(),userInfo.getId(),RoleEnum.ROLE_ORDINARY_USER.getCode(),sim.format(new Date())); + RuRelation ruRelation = new RuRelation(Long.parseLong(userInfo.getId()),Long.parseLong(RoleEnum.ROLE_ORDINARY_USER.getCode())); + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("USERID",userInfo.getId()); + ruRelationMapper.delete(wrapper); + ruRelationMapper.insert(ruRelation); return ResponseData.success(); }else { return ResponseData.error(Status.EMPLOYEE_NOT_EXIS); @@ -165,6 +196,7 @@ UserDto userDto = new UserDto(); userDto.setSyncId(jsonObject.get("openid").toString()); UserDto user = userActionDao.getUserInfo(userDto); + user.setDocumentTypeName(dictService.getDictNameByCode("documentType",user.getDocumentType())); Dict dict = userActionDao.getList(user.getSalt()).get(0); user.setSalt(dict.getName()); return ResponseData.success(user); @@ -199,17 +231,6 @@ } } - @Override - public Object getUserType() { - try { - List list = userActionDao.getList(""); - return ResponseData.success(list); - }catch (Exception e){ - e.printStackTrace(); - return ResponseData.error(Status.FAIL); - } - } - public String getToken(){ ValueOperations operations = redisTemplate.opsForValue(); String token = (String) operations.get("AccessToken"); @@ -223,13 +244,18 @@ } @Override - public void exportStaffList(Long page1,Long limit,HttpServletResponse response) { + public void exportStaffList(UserRequest request,HttpServletResponse response) { try { - Page page = new Page(page1,limit); - Page list = userActionDao.exportStaffList(page); - final long start = System.currentTimeMillis(); - iBaseExportService.exportExcel(response, StaffInfoDto.class,list.getRecords(),"sheet"); - log.info("导出耗时:秒" + (System.currentTimeMillis() - start) / 1000); + List result = userActionDao.getUserList(request); + for (UserDto userDto : result) { + if(StringUtil.isNotEmpty(userDto.getDocumentType())){ + userDto.setDocumentTypeName(dictService.getDictNameByCode("documentType",userDto.getDocumentType())); + } + if(StringUtil.isNotEmpty(userDto.getLogonState())){ + userDto.setLogonState(userDto.getLogonState().equals("0")?"是":"否"); + } + } + iBaseExportService.exportExcel(response, UserDto.class,result,"sheet"); } catch (IOException e) { e.printStackTrace(); } @@ -237,11 +263,17 @@ @Override public Object batchImportStaff(List list) { + List> lists = ListUtils.partition(list, 500); list.forEach(bean -> { Long id = IdWorker.getId(); bean.setId(id); + if(StringUtil.isNotEmpty(bean.getPhone())){ + bean.setLogonState("0"); + } }); - userActionDao.batchImportStaff(list); + for (List staffInfoDtos : lists) { + userActionDao.batchImportStaff(staffInfoDtos); + } return ResponseData.success(list); } @@ -257,4 +289,82 @@ return ResponseData.error("操作失败"); } } + + @Override + public Page getUserList(Page page, UserRequest request) { + Page result = userActionDao.getUserList(page,request); + for (UserDto userDto : result.getRecords()) { + if(StringUtil.isNotEmpty(userDto.getDocumentType())){ + userDto.setDocumentTypeName(dictService.getDictNameByCode("documentType",userDto.getDocumentType())); + } + if(StringUtil.isNotEmpty(userDto.getLogonState())){ + userDto.setLogonState(userDto.getLogonState().equals("0")?"是":"否"); + } + } + return result; + } + + @Override + @Transactional + public Object addUser(StaffInfoDto staffInfoDto) { + Long id = IdWorker.getId(); + staffInfoDto.setId(id); + staffInfoDto.setLogonState("1"); + if(StringUtil.isNotEmpty(staffInfoDto.getPhone())){ + staffInfoDto.setLogonState("0"); + } + userActionDao.addUser(staffInfoDto); + RuRelation ruRelation = new RuRelation(id,Long.parseLong(staffInfoDto.getStaffRole())); + ruRelationMapper.insert(ruRelation); + return ResponseData.success(); + + } + + @Override + public Object delUser(IdsDTO idsDTO) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.in("id",idsDTO.getIds()); + if(this.remove(wrapper)){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + @Override + public Object updateUser(StaffInfoDto staffInfoDto) { + userActionDao.updateUser(staffInfoDto); + UpdateWrapper updateWrapper = new UpdateWrapper<>(); + updateWrapper.eq("USERID",staffInfoDto.getId()).set("ROLEID", staffInfoDto.getStaffRole()); + if(ruRelationMapper.update(null,updateWrapper)>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + @Override + public void download(String fileId,HttpServletResponse response) { + try { + String filePath = "/tmp/"; + File file = new File(filePath + fileId); + log.error("文件地址:"+ filePath +fileId); + String resultFileName = fileId; + resultFileName = URLEncoder.encode(resultFileName,"UTF-8").replaceAll("\\+", "%20"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8" + resultFileName); + response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + FileInputStream in = new FileInputStream(file); + OutputStream out = response.getOutputStream(); + int bytes = 0; + byte[] bufferOut = new byte[1024]; + while ((bytes = in.read(bufferOut)) != -1) { + out.write(bufferOut, 0, bytes); + } + out.close(); + in.close(); + } catch (Exception e) { + e.printStackTrace(); + log.error("下载失败:"+e); + } + } + } diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java index c2608e4..d466d79 100644 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/VisitorApplyServiceImpl.java @@ -1,15 +1,19 @@ package com.casic.missiles.modular.system.service.impl; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.excel.util.DateUtils; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.application.service.AbstractDictService; +import com.casic.missiles.core.base.service.IBaseExportService; import com.casic.missiles.model.response.ResponseData; import com.casic.missiles.modular.system.dao.UserActionMapper; import com.casic.missiles.modular.system.dao.VisitorApplyMapper; import com.casic.missiles.modular.system.dto.*; import com.casic.missiles.modular.system.enums.*; +import com.casic.missiles.modular.system.model.Dict; import com.casic.missiles.modular.system.model.VisitorApply; import com.casic.missiles.modular.system.service.UserActionService; import com.casic.missiles.modular.system.service.VisitorApplyService; @@ -23,7 +27,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.util.*; +import java.util.stream.Collectors; /** * @Description: @@ -42,6 +50,12 @@ @Resource private UserActionMapper userActionMapper; + @Resource + private IBaseExportService iBaseExportService; + + @Resource + private AbstractDictService dictService; + @Override public Object add(VisitorApplyAddRequest visitorApplyAddRequest, HttpServletRequest request) { JSONObject jsonObject = userActionService.getLoginStatus(request); @@ -94,6 +108,32 @@ return ResponseData.success(visitorApplyPage); } + + @Override + public Object getApplyList(Page page, VisitorApplyListRequest visitorApplyListRequest, HttpServletRequest request) { + Page visitorApplyPage = visitorApplyMapper.getApplyList(page,visitorApplyListRequest); + visitorApplyPage.setRecords(handleData(visitorApplyPage.getRecords())); + return ResponseData.success(visitorApplyPage); + } + + @Override + public void exportApplyList(VisitorApplyListRequest visitorApplyListRequest, HttpServletResponse response) throws IOException { + List list = visitorApplyMapper.getApplyList(visitorApplyListRequest); + iBaseExportService.exportExcel(response, VisitorApply.class,supplementList(list), "sheet"); + } + + private List handleData(List list){ + for (VisitorApply apply : list) { + switch (apply.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_SUBMITTED:apply.setVisitorApplyStatus("申请中");break; + case VisitorApplyStatusDict.APPLY_PASSED:apply.setVisitorApplyStatus("申请通过");break; + case VisitorApplyStatusDict.APPLY_FAILED:apply.setVisitorApplyStatus("申请未通过");break; + } + apply.setVisitDate(apply.getInTime()+"-"+apply.getOutTime()); + } + return list; + } + @Override public Object updateStatus(VisitorApplyStatusRequest visitorApplyStatusRequest, HttpServletRequest request) { try { @@ -152,11 +192,14 @@ UserDto userDto = new UserDto(); userDto.setSyncId(openid); UserDto userInfo = userActionMapper.getUserInfo(userDto); - String flag = ""; - if(userInfo.getSalt().equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ + /* String flag = ""; + QueryWrapper ruRelationWrapper = new QueryWrapper<>(); + ruRelationWrapper.eq("USERID",userInfo.getId()); + RuRelation ruRelation = ruRelationMapper.selectOne(ruRelationWrapper); + if(String.valueOf(ruRelation.getRoleId()).equals(RoleEnum.PROPERTY_PERSONNEL.getCode())){ flag = "true"; - } - Page> resMap = visitorApplyMapper.getMessageList(page,openid,flag,userInfo.getAccount()); + }*/ + Page> resMap = visitorApplyMapper.getMessageList(page,openid,userInfo.getAccount()); for (HashMap map : resMap.getRecords()){ map.put("apply_time",map.get("in_time").toString()+"-"+map.get("out_time").toString()); map.put("send_time",DateUtils.parseDate(map.get("create_time").toString()).getTime()); @@ -177,20 +220,61 @@ try { QueryWrapper qw = new QueryWrapper<>(); qw.in("id", idsDTO.getIds()); + qw.orderByDesc("create_time"); List visitorApplyList = visitorApplyMapper.selectList(qw); - visitorApplyList.forEach(visitorApply -> { - switch (visitorApply.getVisitorApplyStatus()){ - case "1": visitorApply.setVisitorApplyStatus("申请已提交");break; - case "2": visitorApply.setVisitorApplyStatus("申请通过");break; - case "3": visitorApply.setVisitorApplyStatus("申请不通过");break; - } - }); - ExportUtils.writeExcel(response,visitorApplyList,"fileName","sheet",VisitorApply.class); + ExportUtils.writeExcel(response,supplementList(visitorApplyList),"fileName","sheet",VisitorApply.class); } catch (Exception e) { e.printStackTrace(); } } + @Override + public Object delApply(String applyId, HttpServletRequest request) throws ParseException { + JSONObject jsonObject = userActionService.getLoginStatus(request); + if(null == jsonObject){ + return ResponseData.error(2401,Status.TOKEN_EXPIRES); + } + VisitorApply visitorApply = visitorApplyMapper.selectById(applyId); + if(judgeOperate(visitorApply)){ + return ResponseData.error("您的访客申请信息已无法进行删除"); + } + if(visitorApplyMapper.deleteById(visitorApply.getId())>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + private Boolean judgeOperate(VisitorApply visitorApply) throws ParseException { + Date date = DateUtils.parseDate(visitorApply.getCreateTime(),"yyyy-MM-dd"); + Date createDate = date; + Calendar calendar = Calendar.getInstance(); + // 设置为当前时间 + calendar.setTime(date); + calendar.add(Calendar.DATE,1); + calendar.add(Calendar.HOUR,8); + date = calendar.getTime(); + if(createDate.getTime()>date.getTime()){ + return true; + }else { + return false; + } + } + @Override + public Object updateApply(VisitorApply visitorApply, HttpServletRequest request) throws ParseException { + JSONObject jsonObject = userActionService.getLoginStatus(request); + if(null == jsonObject){ + return ResponseData.error(2401,Status.TOKEN_EXPIRES); + } + VisitorApply apply = visitorApplyMapper.selectById(visitorApply.getId()); + if(judgeOperate(apply)){ + return ResponseData.error("您的访客申请信息已无法进行编辑"); + } + if(visitorApplyMapper.updateById(visitorApply)>0){ + return ResponseData.success(); + } + return ResponseData.error("操作失败"); + } + + private void sentMessage(VisitorApply visitorApply,String[] dataArr) { String toUser = getToUser(visitorApply.getStaffCode()); if(StringUtil.isNotEmpty(toUser)){ @@ -232,4 +316,24 @@ MessageDto message = new MessageDto(UuidUtils.getId(),messageId,status,DateUtils.format(new Date()),toUser); userActionMapper.insertMessageLog(message); } + private List supplementList(List visitorApplyList){ + List devicePosition = dictService.findInDictByCode("devicePosition"); + Map> devicePositionMap = devicePosition.stream().collect(Collectors.groupingBy(Dict::getName)); + List visitReason = dictService.findInDictByCode("visitReason"); + Map> visitReasonMap = visitReason.stream().collect(Collectors.groupingBy(Dict::getName)); + for (VisitorApply visitorApply : visitorApplyList) { + switch (visitorApply.getVisitorApplyStatus()){ + case VisitorApplyStatusDict.APPLY_FAILED: + case VisitorApplyStatusDict.APPLY_SUBMITTED: visitorApply.setVisitorApplyStatus("0");break; + case VisitorApplyStatusDict.APPLY_PASSED: visitorApply.setVisitorApplyStatus("1");break; + } + if(devicePositionMap.get(visitorApply.getVisitPosition()) != null && devicePositionMap.get(visitorApply.getVisitPosition()).size()!=0){ + visitorApply.setVisitPosition(devicePositionMap.get(visitorApply.getVisitPosition()).get(0).getCode()); + } + if(visitReasonMap.get(visitorApply.getVisitReason()) != null && visitReasonMap.get(visitorApply.getVisitReason()).size()!=0){ + visitorApply.setVisitReason(visitReasonMap.get(visitorApply.getVisitReason()).get(0).getCode()); + } + } + return visitorApplyList; + } } diff --git a/casic-web/src/main/resources/mapper/MessageMapper.xml b/casic-web/src/main/resources/mapper/MessageMapper.xml new file mode 100644 index 0000000..4a6f566 --- /dev/null +++ b/casic-web/src/main/resources/mapper/MessageMapper.xml @@ -0,0 +1,45 @@ + + + + + + \ No newline at end of file diff --git a/casic-web/src/main/resources/mapper/UserActionMapper.xml b/casic-web/src/main/resources/mapper/UserActionMapper.xml index 334b90e..122bb1f 100644 --- a/casic-web/src/main/resources/mapper/UserActionMapper.xml +++ b/casic-web/src/main/resources/mapper/UserActionMapper.xml @@ -20,7 +20,7 @@ - and t.ACCOUNT = #{userDto.account} + and binary t.ACCOUNT = #{userDto.account} and t.NAME = #{userDto.name} @@ -33,10 +33,10 @@ - UPDATE sys_user SET `PHONE` = #{userDto.phone},`SALT`=#{userDto.salt} WHERE `ACCOUNT` = #{userDto.account} and `NAME` = #{userDto.name} + UPDATE sys_user SET `PHONE` = #{userDto.phone},`SALT`=#{userDto.salt},logon_state=#{userDto.logonState},DOCUMENT_TYPE=#{userDto.documentType} WHERE `ACCOUNT` = #{userDto.account} and `NAME` = #{userDto.name} - UPDATE sys_user SET `SYNC_ID` = #{userDto.syncId} WHERE `ACCOUNT` = #{userDto.account} and `NAME` = #{userDto.name} and `PHONE` = #{userDto.phone} + UPDATE sys_user SET `SYNC_ID` = #{userDto.syncId},logon_state=#{userDto.logonState} WHERE `ACCOUNT` = #{userDto.account} and `NAME` = #{userDto.name} and `PHONE` = #{userDto.phone} INSERT INTO sys_ru_relation ( `ID`, `USERID`, `ROLEID`,`UPDATE_TIME`) @@ -76,11 +76,102 @@ + - INSERT INTO sys_user(`ID`, `ACCOUNT`, `NAME`, `SEX`) VALUES + INSERT INTO sys_user ( + `ID`, + `ACCOUNT`, + `SALT`, + `NAME`, + `PHONE`, + `DOCUMENT_TYPE`, + `remark`, + `logon_state` + ) VALUES - (#{user.id},#{user.jobNo},#{user.staffName},#{user.staffGender}) + ( + #{user.id}, + #{user.account}, + #{user.staffType}, + #{user.name}, + #{user.phone}, + #{user.documentType}, + #{user.remark}, + #{user.logonState} + ) + + INSERT INTO sys_user ( + `ID`, + `ACCOUNT`, + `SALT`, + `NAME`, + `PHONE`, + `DOCUMENT_TYPE`, + `remark`, + `logon_state` + ) + VALUES( + #{user.id}, + #{user.account}, + #{user.staffType}, + #{user.name}, + #{user.phone}, + #{user.documentType}, + #{user.remark}, + #{user.logonState} + ) + + + UPDATE sys_user + SET `SALT` = #{user.staffType}, + `PHONE` = #{user.phone}, + `DOCUMENT_TYPE` = #{user.documentType}, + `remark` = #{user.remark} + WHERE + `ID` = #{user.id} + \ No newline at end of file diff --git a/casic-web/src/main/resources/mapper/VisitorApplyMapper.xml b/casic-web/src/main/resources/mapper/VisitorApplyMapper.xml index 1e3a1da..6dac83e 100644 --- a/casic-web/src/main/resources/mapper/VisitorApplyMapper.xml +++ b/casic-web/src/main/resources/mapper/VisitorApplyMapper.xml @@ -20,6 +20,39 @@ and visitor_apply_status = #{request.status} + + and staff_code = #{request.account} + + ORDER BY create_time DESC + +