From 3467fa64f4be6efc9b742913419e7c3a501c541b Mon Sep 17 00:00:00 2001 From: ZQN <364596817@qq.com> Date: 星期四, 20 六月 2024 16:52:21 +0800 Subject: [PATCH] 云片短信对接,审批流程优化 --- project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceOrderVo.java | 11 project-system/src/main/java/com/project/system/service/ISysDictDataService.java | 20 project-common/src/main/java/com/project/common/sms/YPSmsApi.java | 37 + project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceComplaintLogQueryBo.java | 13 project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java | 2 project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceOrderBo.java | 13 project-enforce/src/main/java/com/project/enforce/service/IEnforceOrderService.java | 16 project-system/src/main/java/com/project/system/service/impl/SysDeptServiceImpl.java | 37 + project-report/src/main/java/com/project/report/service/IReportService.java | 39 + project-system/src/main/resources/mapper/system/SysUserMapper.xml | 4 project-system/src/main/java/com/project/system/service/ISysDeptService.java | 8 project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java | 4 project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceComplaintLogVo.java | 16 project-report/src/main/resources/mapper/report/ReportMapper.xml | 126 +++++ project-enforce/src/main/java/com/project/enforce/mapper/EnforcePeerServiceImpl.java | 106 ++++ project-admin/src/main/java/com/project/admin/controller/enforce/EnforcePeerController.java | 100 ++++ project-common/src/main/java/com/project/common/enums/OrderPre.java | 6 project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java | 127 ++++- project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceOrderQueryBo.java | 9 project-enforce/src/main/java/com/project/enforce/domain/EnforceComplaintLog.java | 12 project-enforce/src/main/java/com/project/enforce/mapper/EnforceOrderMapper.java | 3 project-enforce/src/main/java/com/project/enforce/service/IEnforcePeerService.java | 53 ++ project-enforce/src/main/java/com/project/enforce/service/impl/YPSmsService.java | 65 ++ project-system/src/main/java/com/project/system/mapper/SysUserMapper.java | 12 project-enforce/src/main/java/com/project/enforce/mapper/EnforcePeerMapper.java | 13 project-admin/src/main/java/com/project/admin/controller/report/ReportController.java | 37 + project-enforce/src/main/java/com/project/enforce/domain/EnforcePeer.java | 68 ++ project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java | 19 project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforcePeerQueryBo.java | 56 ++ project-enforce/src/main/java/com/project/enforce/domain/EnforceOrder.java | 8 project-report/src/main/java/com/project/report/mapper/ReportMapper.java | 30 + project-system/src/main/java/com/project/system/mapper/SysDictDataMapper.java | 3 project-enforce/src/main/java/com/project/enforce/domain/vo/EnforcePeerVo.java | 45 + project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java | 132 ++++ project-admin/src/main/java/com/project/admin/controller/enforce/EnforceOrderController.java | 17 project-enforce/src/main/resources/mapper/enforce/EnforcePeerMapper.xml | 21 project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java | 5 project-enforce/src/main/resources/mapper/enforce/EnforceOrderMapper.xml | 39 - project-system/src/main/java/com/project/system/service/ISysUserService.java | 9 project-system/src/main/java/com/project/system/service/impl/SysDictDataServiceImpl.java | 5 project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforcePeerBo.java | 50 ++ project-report/src/main/java/com/project/report/domain/bo/query/ReportQueryBo.java | 29 + project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceComplaintLogBo.java | 9 43 files changed, 1,259 insertions(+), 175 deletions(-) diff --git a/project-admin/src/main/java/com/project/admin/controller/enforce/EnforceOrderController.java b/project-admin/src/main/java/com/project/admin/controller/enforce/EnforceOrderController.java index f02c617..8458e58 100644 --- a/project-admin/src/main/java/com/project/admin/controller/enforce/EnforceOrderController.java +++ b/project-admin/src/main/java/com/project/admin/controller/enforce/EnforceOrderController.java @@ -33,6 +33,14 @@ private final IEnforceOrderService iEnforceOrderService; + @ApiOperation("鎵ф硶鍗曞垪琛�") + @GetMapping("/list") + public TableDataInfo list(EnforceOrderQueryBo bo) + { + startPage(); + List<EnforceOrderVo> list = iEnforceOrderService.queryList(bo); + return getDataTable(list); + } @ApiOperation("淇℃伅鍏紡鍒楄〃") @GetMapping("/showList") @@ -40,15 +48,6 @@ { startPage(); List<EnforceOrderVo> list = iEnforceOrderService.showList(); - return getDataTable(list); - } - - @ApiOperation("鎵ф硶鍗曞垪琛�") - @GetMapping("/list") - public TableDataInfo list(EnforceOrderQueryBo bo) - { - startPage(); - List<EnforceOrderVo> list = iEnforceOrderService.queryList(bo); return getDataTable(list); } diff --git a/project-admin/src/main/java/com/project/admin/controller/enforce/EnforcePeerController.java b/project-admin/src/main/java/com/project/admin/controller/enforce/EnforcePeerController.java new file mode 100644 index 0000000..1ae8a80 --- /dev/null +++ b/project-admin/src/main/java/com/project/admin/controller/enforce/EnforcePeerController.java @@ -0,0 +1,100 @@ +package com.project.admin.controller.enforce; + +import com.project.common.annotation.Log; +import com.project.common.annotation.RepeatSubmit; +import com.project.common.core.controller.BaseController; +import com.project.common.core.domain.AjaxResult; +import com.project.common.core.page.TableDataInfo; +import com.project.common.enums.BusinessType; +import com.project.common.utils.poi.ExcelUtil; +import com.project.enforce.domain.bo.editBo.EnforcePeerBo; +import com.project.enforce.domain.bo.queryBo.EnforcePeerQueryBo; +import com.project.enforce.domain.vo.EnforcePeerVo; +import com.project.enforce.service.IEnforcePeerService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.Arrays; +import java.util.List; + +/** + * 鎵ф硶鍗曞悓琛屼汉Controller + * + * @author manton + */ +@Api(value = "鎵ф硶闃熷憳鎺у埗鍣�", tags = {"鎵ф硶鍗曢槦鍛樼鐞�"}) +@RequiredArgsConstructor(onConstructor_ = @Autowired) +@RestController +@RequestMapping("/enforce/peer") +public class EnforcePeerController extends BaseController { + + private final IEnforcePeerService iEnforcePeerService; + + + @ApiOperation("鏌ヨ鎵ф硶鍗曢槦鍛樺垪琛�") + @GetMapping("/list") + public TableDataInfo list(EnforcePeerQueryBo bo) + { + startPage(); + List<EnforcePeerVo> list = iEnforcePeerService.queryList(bo); + return getDataTable(list); + } + + + + @ApiOperation("瀵煎嚭鎵ф硶鍗曢槦鍛樺垪琛�") + //@PreAuthorize("@ss.hasPermi('enforce:peer:export')") + @Log(title = "鎵ф硶鍗曞悓琛屼汉", businessType = BusinessType.EXPORT) + @GetMapping("/export") + @RepeatSubmit + public AjaxResult export(EnforcePeerQueryBo bo) + { + List<EnforcePeerVo> list = iEnforcePeerService.queryList(bo); + ExcelUtil<EnforcePeerVo> util = new ExcelUtil<EnforcePeerVo>(EnforcePeerVo.class); + return util.exportExcel(list, "鎵ф硶鍗曞悓琛屼汉"); + } + + + @ApiOperation("鑾峰彇鎵ф硶鍗曢槦鍛樿缁嗕俊鎭�") + @GetMapping("/{id}") + public AjaxResult getInfo(@PathVariable("id" ) Long id) + { + return AjaxResult.success(iEnforcePeerService.queryById(id)); + } + + + @ApiOperation("鏂板鎵ф硶鍗曢槦鍛�") + //@PreAuthorize("@ss.hasPermi('enforce:peer:add')") + @Log(title = "鎵ф硶鍗曢槦鍛�", businessType = BusinessType.INSERT) + @PostMapping("/add") + @RepeatSubmit + public AjaxResult add(@RequestBody EnforcePeerBo bo) + { + return toAjax(iEnforcePeerService.insertByBo(bo) ? 1 : 0); + } + + + @ApiOperation("淇敼鎵ф硶鍗曢槦鍛�") + //@PreAuthorize("@ss.hasPermi('enforce:peer:edit')") + @Log(title = "鎵ф硶鍗曢槦鍛�", businessType = BusinessType.UPDATE) + @PostMapping("/upd") + @RepeatSubmit + public AjaxResult upd(@RequestBody EnforcePeerBo bo) + { + return toAjax(iEnforcePeerService.updateByBo(bo) ? 1 : 0); + } + + + @ApiOperation("鍒犻櫎鎵ф硶鍗曢槦鍛�") + //@PreAuthorize("@ss.hasPermi('enforce:peer:remove')") + @Log(title = "鎵ф硶鍗曢槦鍛�" , businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + @RepeatSubmit + public AjaxResult remove(@PathVariable Long[] ids) + { + return toAjax(iEnforcePeerService.deleteByIds(Arrays.asList(ids)) ? 1 : 0); + } +} diff --git a/project-admin/src/main/java/com/project/admin/controller/report/ReportController.java b/project-admin/src/main/java/com/project/admin/controller/report/ReportController.java index 323b4c7..6082639 100644 --- a/project-admin/src/main/java/com/project/admin/controller/report/ReportController.java +++ b/project-admin/src/main/java/com/project/admin/controller/report/ReportController.java @@ -2,6 +2,7 @@ import com.project.common.core.controller.BaseController; import com.project.common.core.domain.AjaxResult; +import com.project.report.domain.bo.query.ReportQueryBo; import com.project.report.service.IReportService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -32,17 +33,45 @@ @ApiOperation("鎵ф硶娆℃暟鏈堝害鍒嗗竷") @GetMapping("/getMonthCount") - public AjaxResult getMonthCount(Long deptId) + public AjaxResult getMonthCount(ReportQueryBo bo) { - return AjaxResult.success(reportService.getMonthCount(deptId)); + return AjaxResult.success(reportService.getMonthCount(bo)); } @ApiOperation("鎵ф硶娆℃暟閮ㄩ棬鍒嗗竷") @GetMapping("/getDeptCount") - public AjaxResult getDeptCount(String yearMonth) + public AjaxResult getDeptCount(ReportQueryBo bo) { - return AjaxResult.success(reportService.getDeptCount(yearMonth)); + return AjaxResult.success(reportService.getDeptCount(bo)); + } + + @ApiOperation("浼佷笟琚墽娉曟鏁板垎甯�") + @GetMapping("/getCompanyCount") + public AjaxResult getCompanyCount(ReportQueryBo bo) + { + return AjaxResult.success(reportService.getCompanyCount(bo)); + } + + @ApiOperation("鎵ф硶绫诲瀷鍗犳瘮") + @GetMapping("/getEnforceTypeCount") + public AjaxResult getEnforceTypeCount(ReportQueryBo bo) + { + return AjaxResult.success(reportService.getEnforceTypeCount(bo)); + } + + @ApiOperation("鎶曡瘔鐘舵�佸崰姣�") + @GetMapping("/getComplaintStatusCount") + public AjaxResult getComplaintStatusCount(ReportQueryBo bo) + { + return AjaxResult.success(reportService.getComplaintStatusCount(bo)); + } + + @ApiOperation("鎶曡瘔绫诲瀷鍗犳瘮") + @GetMapping("/getComplaintTypeCount") + public AjaxResult getComplaintTypeCount(ReportQueryBo bo) + { + return AjaxResult.success(reportService.getComplaintTypeCount(bo)); } } diff --git a/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java b/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java index 65cb3e9..7dacc7f 100644 --- a/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java +++ b/project-admin/src/main/java/com/project/admin/controller/system/SysProfileController.java @@ -1,6 +1,8 @@ package com.project.admin.controller.system; import com.project.common.config.ProjectConfig; +import com.project.common.core.domain.entity.SysDept; +import com.project.system.service.ISysDeptService; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -35,6 +37,7 @@ public class SysProfileController extends BaseController { private final ISysUserService userService; + private final ISysDeptService deptService; private final TokenService tokenService; @@ -45,6 +48,8 @@ public AjaxResult profile() { SysUser user = userService.getById(getUserId()); + SysDept sysDept = deptService.selectDeptById(user.getDeptId()); + user.setDept(sysDept); AjaxResult ajax = AjaxResult.success(user); ajax.put("roleGroup", userService.selectUserRoleGroup(user.getUserName())); ajax.put("postGroup", userService.selectUserPostGroup(user.getUserName())); diff --git a/project-common/src/main/java/com/project/common/enums/OrderPre.java b/project-common/src/main/java/com/project/common/enums/OrderPre.java index b8ec924..683b7f2 100644 --- a/project-common/src/main/java/com/project/common/enums/OrderPre.java +++ b/project-common/src/main/java/com/project/common/enums/OrderPre.java @@ -10,11 +10,7 @@ */ public enum OrderPre { - CZDD("鍏呭�煎崟", 1), - XSDD("閿�鍞崟", 2), - ID("ID", 3), - TKDD("閫�娆惧崟", 4), - TXDD("鎻愮幇鍗�", 5) + ZFD("鎵ф硶鍗�", 1) ; diff --git a/project-common/src/main/java/com/project/common/sms/YPSmsApi.java b/project-common/src/main/java/com/project/common/sms/YPSmsApi.java index ef68dea..b3d1067 100644 --- a/project-common/src/main/java/com/project/common/sms/YPSmsApi.java +++ b/project-common/src/main/java/com/project/common/sms/YPSmsApi.java @@ -25,9 +25,14 @@ public class YPSmsApi { /** - * 璇锋眰鍦板潃 + * 鏅鸿兘鍖归厤妯℃澘鍙戦�佸湴鍧� */ - private static final String YP_SMS_URI = "http://yunpian.com/v1/sms/send.json"; + private static final String YP_SMS_URI = "https://sms.yunpian.com/v2/sms/single_send.json"; + + /** + * 妯℃澘鍙戦�佸湴鍧� + */ + private static final String YP_SMS_TMP_URI = "https://sms.yunpian.com/v2/sms/tpl_single_send.json"; /** * KEY @@ -40,25 +45,31 @@ private static final String SIGN = "銆愰噾鏄庢簮銆�"; /** + * 鎵ф硶鍗曠敵璇锋ā鏉� + */ + public static final String APPLY_TMP = "{} 鎻愪氦浜嗘柊鐨勭敵璇峰崟锛岃鎮ㄥ強鏃跺鎵癸紒"; + + /** + * 鎵ф硶鍗曞鏍稿悗妯℃澘 + */ + public static final String CHECK_TMP = "鎮ㄦ彁浜ょ殑鐢宠鍗曞凡琚鎵逛汉 {}, 璇锋偍鍙婃椂鏌ョ湅锛�"; + + /** + * 浼佷笟閫氱煡妯℃澘 + */ + public static final String COMPANY_TMP = "{} 鍗曚綅棰勮灏嗕簬 {} 鍒拌吹鍗曚綅杩涜妫�鏌ワ紝璇锋彁鍓嶇煡鏅擄紒"; + + /** * 楠岃瘉鐮佹ā鏉� */ - public static final String VERIFY_CODE_TEMPLATE = "鎮ㄧ殑楠岃瘉鐮佹槸{}"; + public static final String CODE_TMP = "鎮ㄧ殑楠岃瘉鐮佹槸{}"; - /** - * 瀹℃壒閫氱煡妯℃澘 - */ - public static final String CHECK_NOTICE_TEMPLATE = SIGN + "{}鎻愪氦浜嗘墽娉曠敵璇峰崟锛岃鎮ㄥ強鏃跺鎵癸紒"; - - /** - * 瀹℃壒閫氳繃妯℃澘 - */ - public static final String CHECK_PASS_TEMPLATE = SIGN + "鎮ㄦ彁浜ょ殑鎵ф硶鐢宠鍗曞凡瀹℃壒閫氳繃锛岃鎮ㄥ強鏃舵煡鐪嬶紒"; /** - * 鍙戦�佺煭淇� + * 绠�鍗曞彂閫佺煭淇� * @param mobile 銆�鎺ュ彈鐨勬墜鏈哄彿 * @param msg 銆�鐭俊鍐呭 */ diff --git a/project-enforce/src/main/java/com/project/enforce/domain/EnforceComplaintLog.java b/project-enforce/src/main/java/com/project/enforce/domain/EnforceComplaintLog.java index b3a10ca..68b1881 100644 --- a/project-enforce/src/main/java/com/project/enforce/domain/EnforceComplaintLog.java +++ b/project-enforce/src/main/java/com/project/enforce/domain/EnforceComplaintLog.java @@ -9,6 +9,9 @@ import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; + +import java.util.Date; + /** * 鎶曡瘔璁板綍瀵硅薄 enforce_complaint_log * @@ -73,6 +76,15 @@ @ApiModelProperty("鎶曡瘔绫诲瀷") private String complaintType; + @ApiModelProperty("鎶曡瘔鏃堕棿") + private Date complaintTime; + + @ApiModelProperty("鍝嶅簲鏃堕棿") + private Date inTime; + + @ApiModelProperty("澶勭悊缁撴灉鏃堕棿") + private Date resultTime; + @ApiModelProperty("鎶曡瘔鍐呭") private String complaintReason; diff --git a/project-enforce/src/main/java/com/project/enforce/domain/EnforceOrder.java b/project-enforce/src/main/java/com/project/enforce/domain/EnforceOrder.java index cebd7b4..1fc4dea 100644 --- a/project-enforce/src/main/java/com/project/enforce/domain/EnforceOrder.java +++ b/project-enforce/src/main/java/com/project/enforce/domain/EnforceOrder.java @@ -100,6 +100,9 @@ @ApiModelProperty("璁″垝鎵ф硶鏃堕棿") private Date planTime; + @ApiModelProperty("鎵爜鍏ュ満鏃堕棿") + private Date inTime; + @ApiModelProperty("鎵ф硶闃熷憳浜烘暟") private Integer userNum; @@ -113,7 +116,7 @@ private String warnReason; - @ApiModelProperty("璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2寰呮墽琛岋紝3宸叉墽琛岋紝4宸茶瘎浠�") + @ApiModelProperty("璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2宸插鎵瑰緟鎵ц锛�3宸叉墽琛屽緟涓婃姤锛�4宸蹭笂鎶�") private Integer orderStatus; @@ -136,6 +139,9 @@ @ApiModelProperty("褰撳墠瀹℃壒灞傜骇:") private Integer checkLevel; + @ApiModelProperty("褰撳墠瀹℃壒浜篿ds") + private String checkIds; + @ApiModelProperty("鎵ц浜篿d") private Long executeId; diff --git a/project-enforce/src/main/java/com/project/enforce/domain/EnforcePeer.java b/project-enforce/src/main/java/com/project/enforce/domain/EnforcePeer.java new file mode 100644 index 0000000..8aa79b9 --- /dev/null +++ b/project-enforce/src/main/java/com/project/enforce/domain/EnforcePeer.java @@ -0,0 +1,68 @@ +package com.project.enforce.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableLogic; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; + +import java.io.Serializable; + +/** + * 鎵ф硶鍗曞悓琛屼汉瀵硅薄 enforce_peer + * + * @author manton + */ +@Data +@NoArgsConstructor +@Accessors(chain = true) +@TableName("enforce_peer") +@ApiModel("鎵ф硶鍗曞悓琛屼汉瀹炰綋瀵硅薄") +public class EnforcePeer implements Serializable { + + private static final long serialVersionUID=1L; + + + @TableId(value = "id") + @ApiModelProperty("ID") + private Long id; + + + @ApiModelProperty("鎵ф硶鍗昳d") + private Long orderId; + + + @ApiModelProperty("鍚岃浜虹被鍨嬶細1鐢宠鑰咃紝2鍚岃浜�") + private Integer peerType; + + + @ApiModelProperty("鍚岃浜篿d") + private Long peerId; + + + @ApiModelProperty("鍚岃浜�") + private String peerUser; + + + @ApiModelProperty("鍚岃浜虹數璇�") + private String peerPhone; + + + @ApiModelProperty("鍚岃浜哄崟浣�") + private Long peerDeptId; + + + @ApiModelProperty("鍚岃浜哄崟浣�") + private String peerDeptName; + + + /** + * 閫昏緫鍒犻櫎鐘舵�� + */ + @TableLogic(value = "0",delval = "1") + private Integer delFlag; + +} diff --git a/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceComplaintLogBo.java b/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceComplaintLogBo.java index 41ec2e8..dcaf252 100644 --- a/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceComplaintLogBo.java +++ b/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceComplaintLogBo.java @@ -67,6 +67,15 @@ @ApiModelProperty("鎶曡瘔绫诲瀷") private String complaintType; + @ApiModelProperty("鎶曡瘔鏃堕棿") + private Date complaintTime; + + @ApiModelProperty("鍝嶅簲鏃堕棿") + private Date inTime; + + @ApiModelProperty("澶勭悊缁撴灉鏃堕棿") + private Date resultTime; + /** 鎶曡瘔鍐呭 */ @ApiModelProperty("鎶曡瘔鍐呭") private String complaintReason; diff --git a/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceOrderBo.java b/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceOrderBo.java index a2cebdc..2febe57 100644 --- a/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceOrderBo.java +++ b/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforceOrderBo.java @@ -1,12 +1,14 @@ package com.project.enforce.domain.bo.editBo; import com.fasterxml.jackson.annotation.JsonFormat; +import com.project.enforce.domain.EnforcePeer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * 鎵ф硶鍗曠紪杈戝璞� enforce_order @@ -95,9 +97,15 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date planTime; + @ApiModelProperty("鎵爜鍏ュ満鏃堕棿") + private Date inTime; + /** 鎵ф硶闃熷憳浜烘暟 */ @ApiModelProperty("鎵ф硶闃熷憳浜烘暟") private Integer userNum; + + @ApiModelProperty("鍚岃浜烘暟缁�") + private List<EnforcePeer> peers; /** 棰勮鐘舵�侊細0姝e父锛�1棰勮 */ @ApiModelProperty("棰勮鐘舵�侊細0姝e父锛�1棰勮") @@ -108,7 +116,7 @@ private String warnReason; /** 璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2寰呮墽琛岋紝3宸叉墽琛岋紝4宸茶瘎浠� */ - @ApiModelProperty("璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2寰呮墽琛岋紝3宸叉墽琛岋紝4宸茶瘎浠�") + @ApiModelProperty("璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2宸插鎵瑰緟鎵ц锛�3宸叉墽琛屽緟涓婃姤锛�4宸蹭笂鎶�") private Integer orderStatus; /** 瀹℃壒浜哄崟浣� */ @@ -131,6 +139,9 @@ @ApiModelProperty("褰撳墠瀹℃壒灞傜骇:") private Integer checkLevel; + @ApiModelProperty("褰撳墠瀹℃壒浜篿ds") + private String checkIds; + /** 鎵ц浜篿d */ @ApiModelProperty("鎵ц浜篿d") private Long executeId; diff --git a/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforcePeerBo.java b/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforcePeerBo.java new file mode 100644 index 0000000..5973fbe --- /dev/null +++ b/project-enforce/src/main/java/com/project/enforce/domain/bo/editBo/EnforcePeerBo.java @@ -0,0 +1,50 @@ +package com.project.enforce.domain.bo.editBo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * 鎵ф硶鍗曞悓琛屼汉缂栬緫瀵硅薄 enforce_peer + * + * @author manton + */ + +@Data +@ApiModel("鎵ф硶鍗曞悓琛屼汉鎿嶄綔瀵硅薄") +public class EnforcePeerBo { + + + /** ID */ + @ApiModelProperty("ID") + private Long id; + + /** 鎵ф硶鍗昳d */ + @ApiModelProperty("鎵ф硶鍗昳d") + private Long orderId; + + /** 鍚岃浜虹被鍨嬶細1鐢宠鑰咃紝2鍚岃浜� */ + @ApiModelProperty("鍚岃浜虹被鍨嬶細1鐢宠鑰咃紝2鍚岃浜�") + private Integer peerType; + + /** 鍚岃浜篿d */ + @ApiModelProperty("鍚岃浜篿d") + private Long peerId; + + /** 鍚岃浜� */ + @ApiModelProperty("鍚岃浜�") + private String peerUser; + + /** 鍚岃浜虹數璇� */ + @ApiModelProperty("鍚岃浜虹數璇�") + private String peerPhone; + + /** 鍚岃浜哄崟浣� */ + @ApiModelProperty("鍚岃浜哄崟浣�") + private Long peerDeptId; + + /** 鍚岃浜哄崟浣� */ + @ApiModelProperty("鍚岃浜哄崟浣�") + private String peerDeptName; +} diff --git a/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceComplaintLogQueryBo.java b/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceComplaintLogQueryBo.java index 0955138..b87178e 100644 --- a/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceComplaintLogQueryBo.java +++ b/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceComplaintLogQueryBo.java @@ -6,6 +6,8 @@ import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; + /** * 鎶曡瘔璁板綍鍒嗛〉鏌ヨ瀵硅薄 enforce_complaint_log @@ -64,6 +66,17 @@ /** 鎶曡瘔绫诲瀷 */ @ApiModelProperty("鎶曡瘔绫诲瀷") private String complaintType; + + @ApiModelProperty("鎶曡瘔鏃堕棿") + private Date complaintTime; + + @ApiModelProperty("鍝嶅簲鏃堕棿") + private Date inTime; + + @ApiModelProperty("澶勭悊缁撴灉鏃堕棿") + private Date resultTime; + + /** 鎶曡瘔鍐呭 */ @ApiModelProperty("鎶曡瘔鍐呭") private String complaintReason; diff --git a/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceOrderQueryBo.java b/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceOrderQueryBo.java index 662a385..7c9414f 100644 --- a/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceOrderQueryBo.java +++ b/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforceOrderQueryBo.java @@ -93,6 +93,9 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date planTime; + @ApiModelProperty("鎵爜鍏ュ満鏃堕棿") + private Date inTime; + /** 鎵ф硶闃熷憳浜烘暟 */ @ApiModelProperty("鎵ф硶闃熷憳浜烘暟") private Integer userNum; @@ -103,7 +106,7 @@ @ApiModelProperty("棰勮鍘熷洜") private String warnReason; /** 璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2寰呮墽琛岋紝3宸叉墽琛岋紝4宸茶瘎浠� */ - @ApiModelProperty("璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2寰呮墽琛岋紝3宸叉墽琛岋紝4宸茶瘎浠�") + @ApiModelProperty("璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2宸插鎵瑰緟鎵ц锛�3宸叉墽琛屽緟涓婃姤锛�4宸蹭笂鎶�") private Integer orderStatus; /** 瀹℃壒浜哄崟浣� */ @ApiModelProperty("瀹℃壒浜哄崟浣�") @@ -120,6 +123,10 @@ /** 褰撳墠瀹℃壒灞傜骇: */ @ApiModelProperty("褰撳墠瀹℃壒灞傜骇:") private Integer checkLevel; + + @ApiModelProperty("褰撳墠瀹℃壒浜篿ds") + private String checkIds; + /** 鎵ц浜篿d */ @ApiModelProperty("鎵ц浜篿d") private Long executeId; diff --git a/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforcePeerQueryBo.java b/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforcePeerQueryBo.java new file mode 100644 index 0000000..e579411 --- /dev/null +++ b/project-enforce/src/main/java/com/project/enforce/domain/bo/queryBo/EnforcePeerQueryBo.java @@ -0,0 +1,56 @@ +package com.project.enforce.domain.bo.queryBo; + +import com.project.common.core.domain.BaseQuery; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + + +/** + * 鎵ф硶鍗曞悓琛屼汉鍒嗛〉鏌ヨ瀵硅薄 enforce_peer + * + * @author manton + */ +@EqualsAndHashCode(callSuper = true) +@Data +@ApiModel("鎵ф硶鍗曞悓琛屼汉鍒嗛〉鏌ヨ瀵硅薄") +public class EnforcePeerQueryBo extends BaseQuery{ + + /** 鍒嗛〉澶у皬 */ + @ApiModelProperty("鍒嗛〉澶у皬") + private Integer pageSize; + /** 褰撳墠椤垫暟 */ + @ApiModelProperty("褰撳墠椤垫暟") + private Integer pageNum; + /** 鎺掑簭鍒� */ + @ApiModelProperty("鎺掑簭鍒�") + private String orderByColumn; + /** 鎺掑簭鐨勬柟鍚慸esc鎴栬�卆sc */ + @ApiModelProperty(value = "鎺掑簭鐨勬柟鍚�", example = "asc,desc") + private String isAsc; + + + /** 鎵ф硶鍗昳d */ + @ApiModelProperty("鎵ф硶鍗昳d") + private Long orderId; + /** 鍚岃浜虹被鍨嬶細1鐢宠鑰咃紝2鍚岃浜� */ + @ApiModelProperty("鍚岃浜虹被鍨嬶細1鐢宠鑰咃紝2鍚岃浜�") + private Integer peerType; + /** 鍚岃浜篿d */ + @ApiModelProperty("鍚岃浜篿d") + private Long peerId; + /** 鍚岃浜� */ + @ApiModelProperty("鍚岃浜�") + private String peerUser; + /** 鍚岃浜虹數璇� */ + @ApiModelProperty("鍚岃浜虹數璇�") + private String peerPhone; + /** 鍚岃浜哄崟浣� */ + @ApiModelProperty("鍚岃浜哄崟浣�") + private Long peerDeptId; + /** 鍚岃浜哄崟浣� */ + @ApiModelProperty("鍚岃浜哄崟浣�") + private String peerDeptName; + +} diff --git a/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceComplaintLogVo.java b/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceComplaintLogVo.java index 82ccebb..52fe0b6 100644 --- a/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceComplaintLogVo.java +++ b/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceComplaintLogVo.java @@ -1,9 +1,12 @@ package com.project.enforce.domain.vo; +import com.fasterxml.jackson.annotation.JsonFormat; import com.project.common.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; + +import java.util.Date; /** @@ -53,6 +56,19 @@ @Excel(name = "鎶曡瘔绫诲瀷") @ApiModelProperty("鎶曡瘔绫诲瀷") private String complaintType; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("鎶曡瘔鏃堕棿") + private Date complaintTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("鍝嶅簲鏃堕棿") + private Date inTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty("澶勭悊缁撴灉鏃堕棿") + private Date resultTime; + @Excel(name = "鎶曡瘔鍐呭") @ApiModelProperty("鎶曡瘔鍐呭") private String complaintReason; diff --git a/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceOrderVo.java b/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceOrderVo.java index 6145a70..ab80c57 100644 --- a/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceOrderVo.java +++ b/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforceOrderVo.java @@ -84,6 +84,9 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date planTime; + @ApiModelProperty("鎵爜鍏ュ満鏃堕棿") + private Date inTime; + @Excel(name = "鎵ф硶闃熷憳浜烘暟") @ApiModelProperty("鎵ф硶闃熷憳浜烘暟") private Integer userNum; @@ -93,8 +96,8 @@ @Excel(name = "棰勮鍘熷洜") @ApiModelProperty("棰勮鍘熷洜") private String warnReason; - @Excel(name = "璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2寰呮墽琛岋紝3宸叉墽琛岋紝4宸茶瘎浠�") - @ApiModelProperty("璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2寰呮墽琛岋紝3宸叉墽琛岋紝4宸茶瘎浠�") + @Excel(name = "璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2宸插鎵瑰緟鎵ц锛�3宸叉墽琛屽緟涓婃姤锛�4宸蹭笂鎶�") + @ApiModelProperty("璁㈠崟鐘舵�侊細-1鎾ゅ洖锛�0寰呮彁浜わ紝1宸叉彁浜わ紝2宸插鎵瑰緟鎵ц锛�3宸叉墽琛屽緟涓婃姤锛�4宸蹭笂鎶�") private Integer orderStatus; @Excel(name = "瀹℃壒浜哄崟浣�") @ApiModelProperty("瀹℃壒浜哄崟浣�") @@ -111,6 +114,10 @@ @Excel(name = "褰撳墠瀹℃壒灞傜骇:") @ApiModelProperty("褰撳墠瀹℃壒灞傜骇:") private Integer checkLevel; + + @ApiModelProperty("褰撳墠瀹℃壒浜篿ds") + private String checkIds; + @Excel(name = "鎵ц浜篿d") @ApiModelProperty("鎵ц浜篿d") private Long executeId; diff --git a/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforcePeerVo.java b/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforcePeerVo.java new file mode 100644 index 0000000..722ed8a --- /dev/null +++ b/project-enforce/src/main/java/com/project/enforce/domain/vo/EnforcePeerVo.java @@ -0,0 +1,45 @@ +package com.project.enforce.domain.vo; + +import com.project.common.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +/** + * 鎵ф硶鍗曞悓琛屼汉瑙嗗浘瀵硅薄 mall_package + * + * @author manton + */ +@Data +@ApiModel("鎵ф硶鍗曞悓琛屼汉瑙嗗浘瀵硅薄") +public class EnforcePeerVo { + private static final long serialVersionUID = 1L; + + /** ID */ + @ApiModelProperty("ID") + private Long id; + + @Excel(name = "鎵ф硶鍗昳d") + @ApiModelProperty("鎵ф硶鍗昳d") + private Long orderId; + @Excel(name = "鍚岃浜虹被鍨嬶細1鐢宠鑰咃紝2鍚岃浜�") + @ApiModelProperty("鍚岃浜虹被鍨嬶細1鐢宠鑰咃紝2鍚岃浜�") + private Integer peerType; + @Excel(name = "鍚岃浜篿d") + @ApiModelProperty("鍚岃浜篿d") + private Long peerId; + @Excel(name = "鍚岃浜�") + @ApiModelProperty("鍚岃浜�") + private String peerUser; + @Excel(name = "鍚岃浜虹數璇�") + @ApiModelProperty("鍚岃浜虹數璇�") + private String peerPhone; + @Excel(name = "鍚岃浜哄崟浣�") + @ApiModelProperty("鍚岃浜哄崟浣�") + private Long peerDeptId; + @Excel(name = "鍚岃浜哄崟浣�") + @ApiModelProperty("鍚岃浜哄崟浣�") + private String peerDeptName; + +} diff --git a/project-enforce/src/main/java/com/project/enforce/mapper/EnforceOrderMapper.java b/project-enforce/src/main/java/com/project/enforce/mapper/EnforceOrderMapper.java index 4c291ba..e3c2a9b 100644 --- a/project-enforce/src/main/java/com/project/enforce/mapper/EnforceOrderMapper.java +++ b/project-enforce/src/main/java/com/project/enforce/mapper/EnforceOrderMapper.java @@ -1,7 +1,6 @@ package com.project.enforce.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.project.common.vo.KeyVal; import com.project.enforce.domain.EnforceOrder; import com.project.enforce.domain.bo.queryBo.EnforceOrderQueryBo; import com.project.enforce.domain.vo.EnforceOrderVo; @@ -18,7 +17,5 @@ List<EnforceOrderVo> selectCheckList(EnforceOrderQueryBo bo); - List<KeyVal> getMonthCount(Long deptId); - List<KeyVal> getDeptCount(String yearMonth); } diff --git a/project-enforce/src/main/java/com/project/enforce/mapper/EnforcePeerMapper.java b/project-enforce/src/main/java/com/project/enforce/mapper/EnforcePeerMapper.java new file mode 100644 index 0000000..a6dd957 --- /dev/null +++ b/project-enforce/src/main/java/com/project/enforce/mapper/EnforcePeerMapper.java @@ -0,0 +1,13 @@ +package com.project.enforce.mapper; + +import com.project.enforce.domain.EnforcePeer; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * 鎵ф硶鍗曞悓琛屼汉Mapper鎺ュ彛 + * + * @author manton + */ +public interface EnforcePeerMapper extends BaseMapper<EnforcePeer> { + +} diff --git a/project-enforce/src/main/java/com/project/enforce/mapper/EnforcePeerServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/mapper/EnforcePeerServiceImpl.java new file mode 100644 index 0000000..3b357ab --- /dev/null +++ b/project-enforce/src/main/java/com/project/enforce/mapper/EnforcePeerServiceImpl.java @@ -0,0 +1,106 @@ +package com.project.enforce.mapper; + +import cn.hutool.core.convert.Convert; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.project.common.utils.StringUtils; +import com.project.enforce.domain.EnforcePeer; +import com.project.enforce.domain.bo.editBo.EnforcePeerBo; +import com.project.enforce.domain.bo.queryBo.EnforcePeerQueryBo; +import com.project.enforce.domain.vo.EnforcePeerVo; +import com.project.enforce.service.IEnforcePeerService; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Collection; +import java.util.List; + +/** + * 鎵ф硶鍗曞悓琛屼汉Service涓氬姟灞傚鐞� + * + * @author manton + */ +@Service +@RequiredArgsConstructor(onConstructor_ = @Autowired) +public class EnforcePeerServiceImpl extends ServiceImpl<EnforcePeerMapper, EnforcePeer> implements IEnforcePeerService { + + + + @Override//鍒楄〃鏌ヨ + public List<EnforcePeerVo> queryList(EnforcePeerQueryBo bo) + { + QueryWrapper<EnforcePeer> qw = getQw(bo); + List<EnforcePeer> list = this.list(qw); + return Convert.toList(EnforcePeerVo.class , list); + } + + @Override//id鏌ヨ + public EnforcePeerVo queryById(Long id) + { + EnforcePeer db = this.baseMapper.selectById(id); + return Convert.convert(EnforcePeerVo.class , db); + } + + + @Override//娣诲姞 + @Transactional + public Boolean insertByBo(EnforcePeerBo bo) + { + EnforcePeer add = Convert.convert(EnforcePeer.class, bo); + validEntityBeforeSave(add); + return this.save(add); + } + + @Override//淇敼 + @Transactional + public Boolean updateByBo(EnforcePeerBo bo) + { + EnforcePeer update = Convert.convert(EnforcePeer.class, bo); + validEntityBeforeSave(update); + return this.updateById(update); + } + + @Override//鍒犻櫎 + @Transactional + public Boolean deleteByIds(Collection<Long> ids) + { + + //鍋氫竴浜涗笟鍔′笂鐨勬牎楠�,鍒ゆ柇鏄惁闇�瑕佹牎楠� + + return this.removeByIds(ids); + } + + +//------------------------------------------------------------------------------------- + + //淇濆瓨鍓嶆牎楠� + private void validEntityBeforeSave(EnforcePeer entity) + { + //鍋氫竴浜涙暟鎹牎楠�,濡傚敮涓�绾︽潫 + } + + //鑾峰彇鏌ヨ鍙傛暟 + private QueryWrapper<EnforcePeer> getQw(EnforcePeerQueryBo bo) + { + QueryWrapper<EnforcePeer> qw = Wrappers.query(); + + qw.eq(bo.getOrderId()!=null, "order_id", bo.getOrderId()); + qw.eq(bo.getPeerType() != null, "peer_type", bo.getPeerType()); + qw.eq(bo.getPeerId() != null, "peer_id", bo.getPeerId()); + qw.eq(StringUtils.isNotEmpty(bo.getPeerUser()), "peer_user", bo.getPeerUser()); + qw.eq(StringUtils.isNotEmpty(bo.getPeerPhone()), "peer_phone", bo.getPeerPhone()); + qw.eq(bo.getPeerDeptId() != null, "peer_dept_id", bo.getPeerDeptId()); + qw.like(StringUtils.isNotEmpty(bo.getPeerDeptName()), "peer_dept_name", bo.getPeerDeptName()); + if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){ + if ("acs".equals(bo.getIsAsc())) { + qw.orderByAsc(bo.getOrderByColumn()); + } else if ("desc".equals(bo.getIsAsc())) { + qw.orderByDesc(bo.getOrderByColumn()); + } + } + return qw; + } +} diff --git a/project-enforce/src/main/java/com/project/enforce/service/IEnforceOrderService.java b/project-enforce/src/main/java/com/project/enforce/service/IEnforceOrderService.java index 6a0c78e..e980db3 100644 --- a/project-enforce/src/main/java/com/project/enforce/service/IEnforceOrderService.java +++ b/project-enforce/src/main/java/com/project/enforce/service/IEnforceOrderService.java @@ -1,7 +1,6 @@ package com.project.enforce.service; import com.project.common.mybatis.IBaseService; -import com.project.common.vo.KeyVal; import com.project.enforce.domain.EnforceOrder; import com.project.enforce.domain.bo.editBo.EnforceOrderBo; import com.project.enforce.domain.bo.queryBo.EnforceOrderQueryBo; @@ -63,17 +62,12 @@ /** - * 鎵ф硶娆℃暟鏈堝害鍒嗗竷 - * @param deptId 鏈烘瀯id - * @return 鏈堝害鍒嗗竷 + * 鑾峰彇涓嬩竴绾у鎵逛汉鐢佃瘽 + * @param checkLevel 褰撳墠瀹℃壒绾у埆 + * @param applyDeptId 鐢宠閮ㄩ棬id + * @return 瀹℃壒浜篿ds */ - List<KeyVal> getMonthCount(Long deptId); + List<String> getCheckPhones(Integer checkLevel, Long applyDeptId); - /** - * 鎵ф硶娆℃暟閮ㄩ棬鍒嗗竷 - * @param yearMonth 骞存湀 - * @return 閮ㄩ棬鍒嗗竷 - */ - List<KeyVal> getDeptCount(String yearMonth); } diff --git a/project-enforce/src/main/java/com/project/enforce/service/IEnforcePeerService.java b/project-enforce/src/main/java/com/project/enforce/service/IEnforcePeerService.java new file mode 100644 index 0000000..1d53d2a --- /dev/null +++ b/project-enforce/src/main/java/com/project/enforce/service/IEnforcePeerService.java @@ -0,0 +1,53 @@ +package com.project.enforce.service; + +import com.project.enforce.domain.EnforcePeer; +import com.project.enforce.domain.vo.EnforcePeerVo; +import com.project.enforce.domain.bo.editBo.EnforcePeerBo; +import com.project.enforce.domain.bo.queryBo.EnforcePeerQueryBo; +import com.baomidou.mybatisplus.extension.service.IService; +import com.project.common.mybatis.IBaseService; +import cn.hutool.core.convert.Convert; + +import java.util.Collection; +import java.util.List; + +/** + * 鎵ф硶鍗曞悓琛屼汉Service鎺ュ彛 + * + * @author manton + */ +public interface IEnforcePeerService extends IBaseService<EnforcePeer> { + + /** + * 鏌ヨ鍒楄〃 + */ + List<EnforcePeerVo> queryList(EnforcePeerQueryBo bo); + + /** + * 鏌ヨ鍗曚釜 + * @return EnforcePeerVo + */ + EnforcePeerVo queryById(Long id); + + + /** + * 鏍规嵁鏂板涓氬姟瀵硅薄鎻掑叆鎵ф硶鍗曞悓琛屼汉 + * @param bo 鎵ф硶鍗曞悓琛屼汉鏂板涓氬姟瀵硅薄 + * @return true鎴愬姛 false澶辫触 + */ + Boolean insertByBo(EnforcePeerBo bo); + + /** + * 鏍规嵁缂栬緫涓氬姟瀵硅薄淇敼鎵ф硶鍗曞悓琛屼汉 + * @param bo 鎵ф硶鍗曞悓琛屼汉缂栬緫涓氬姟瀵硅薄 + * @return true鎴愬姛 false澶辫触 + */ + Boolean updateByBo(EnforcePeerBo bo); + + /** + * 鏍¢獙骞跺垹闄ゆ暟鎹� + * @param ids 涓婚敭闆嗗悎 + * @return true鎴愬姛 false澶辫触 + */ + Boolean deleteByIds(Collection<Long> ids); +} diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java index 29fa7fe..c6b20d5 100644 --- a/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java +++ b/project-enforce/src/main/java/com/project/enforce/service/impl/CheckServiceImpl.java @@ -14,7 +14,6 @@ import com.project.system.domain.bo.editBo.CheckBo; import com.project.system.domain.bo.editBo.SysCompanyBo; import com.project.system.service.ISysCompanyService; -import com.project.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,7 +36,7 @@ private final ISysCompanyService companyService; private final IEnforceOrderService orderService; private final IEnforceCheckLogService checkLogService; - private final ISysUserService userService; + private final YPSmsService smsService; @Override @Transactional @@ -71,16 +70,24 @@ addCheckLog(order, bo); if (bo.getCheckStatus()==-1){ order.setCheckStatus(-1); + //瀹℃壒鎷掔粷锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇� + smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus()); } else { - String roleKey = "check_enforce_" + (order.getCheckLevel() + 1); - List<Long> ids = userService.getNumByRoleKey(roleKey, order.getCheckDeptId()); - if (StringUtils.isNotEmpty(ids)){ + List<String> phones = orderService.getCheckPhones(order.getCheckLevel(), order.getApplyDeptId()); + if (StringUtils.isNotEmpty(phones)){ order.setCheckStatus(1); + //缁欎笅涓�绾у鎵逛汉鍙戦�佺煭淇� + smsService.sendApplyMsg(phones, order.getApplyUser()); } else { order.setCheckStatus(2); order.setOrderStatus(2); + //瀹℃壒閫氳繃锛岀粰鐢宠浜哄彂閫佺煭淇★紝濡傛灉閫氱煡浼佷笟涔熺粰浼佷笟鍙戦�佺煭淇� + smsService.sendCheckMsg(order.getApplyPhone(), order.getCheckStatus()); + if (order.getIsNoticeCompany()==1){ + smsService.sendCompanyMsg(order.getCompanyPhone(), order.getApplyDeptName(), order.getPlanTime()); + } } - //瀹℃壒鐧昏鍔�1 + //瀹℃壒绛夌骇鍔�1 order.setCheckLevel(order.getCheckLevel()+1); } order.setCheckReason(bo.getCheckReason()); diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java index db43b7e..fce5771 100644 --- a/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java +++ b/project-enforce/src/main/java/com/project/enforce/service/impl/EnforceOrderServiceImpl.java @@ -5,28 +5,30 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.project.common.annotation.DataScope; -import com.project.common.constant.CheckLevelCodeConstants; -import com.project.common.core.domain.entity.SysRole; import com.project.common.core.domain.entity.SysUser; -import com.project.common.exception.base.BaseException; +import com.project.common.enums.OrderPre; +import com.project.common.sms.YPSmsApi; import com.project.common.utils.SecurityUtils; import com.project.common.utils.StringUtils; -import com.project.common.vo.KeyVal; import com.project.enforce.domain.EnforceOrder; +import com.project.enforce.domain.EnforcePeer; import com.project.enforce.domain.bo.editBo.EnforceOrderBo; import com.project.enforce.domain.bo.queryBo.EnforceOrderQueryBo; import com.project.enforce.domain.vo.EnforceOrderVo; import com.project.enforce.mapper.EnforceOrderMapper; import com.project.enforce.service.IEnforceOrderService; +import com.project.enforce.service.IEnforcePeerService; import com.project.system.service.ISysDeptService; +import com.project.system.service.ISysOrderNoService; +import com.project.system.service.ISysUserService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collection; import java.util.List; -import java.util.stream.Collectors; /** * 鎵ф硶鍗昐ervice涓氬姟灞傚鐞� @@ -37,9 +39,10 @@ @RequiredArgsConstructor(onConstructor_ = @Autowired) public class EnforceOrderServiceImpl extends ServiceImpl<EnforceOrderMapper, EnforceOrder> implements IEnforceOrderService { + private final ISysUserService userService; private final ISysDeptService deptService; - private final EnforceOrderMapper orderMapper; - + private final ISysOrderNoService orderNoService; + private final IEnforcePeerService peerService; @Override//鍒楄〃鏌ヨ @DataScope(deptAlias = "apply_dept_id", userAlias = "apply_user_id") @@ -55,22 +58,8 @@ public List<EnforceOrderVo> queryCheckList(EnforceOrderQueryBo bo) { SysUser loginUser = SecurityUtils.getLoginUser().getUser(); - if (bo.getIsCheckQuery()!=null && bo.getIsCheckQuery()==1){ - List<String> roleKeys = loginUser.getRoles().stream().map(SysRole::getRoleKey).collect(Collectors.toList()); - if (roleKeys.contains(CheckLevelCodeConstants.CHECK_LEVEL_ONE) && roleKeys.contains(CheckLevelCodeConstants.CHECK_LEVEL_TWO)){ - bo.setCheckLevel(null); - } else if (roleKeys.contains(CheckLevelCodeConstants.CHECK_LEVEL_ONE)){ - bo.setCheckLevel(0); - } else if (roleKeys.contains(CheckLevelCodeConstants.CHECK_LEVEL_TWO)) { - bo.setCheckLevel(1); - } else { - throw new BaseException("鎮ㄦ病鏈夊鎵规潈闄愶紝璇烽噸璇曪紒"); - } - } - - bo.setCheckDeptId(deptService.getCheckDeptIdByLoginDeptId(loginUser.getDeptId())); + bo.setCheckIds(loginUser.getPhonenumber()); bo.setApplyDeptIds(deptService.getApplyDeptIdsByLoginUserId(loginUser.getUserId())); - return this.baseMapper.selectCheckList(bo); } @@ -94,8 +83,33 @@ public Boolean insertByBo(EnforceOrderBo bo) { EnforceOrder add = Convert.convert(EnforceOrder.class, bo); + add.setCheckLevel(0); validEntityBeforeSave(add); - return this.save(add); + List<String> phones = getCheckPhones(add.getCheckLevel(), add.getApplyDeptId()); + if (StringUtils.isNotEmpty(phones)){ + String checkPhones = StringUtils.join(phones, ","); + add.setCheckIds(checkPhones); + } + this.save(add); + bo.getPeers().add(new EnforcePeer() + .setPeerType(1) + .setPeerId(add.getApplyId()) + .setPeerUser(add.getApplyUser()) + .setPeerPhone(add.getApplyPhone()) + .setPeerDeptId(add.getApplyDeptId()) + .setPeerDeptName(add.getApplyDeptName()) + ); + //澶勭悊鎵ф硶浜哄憳淇℃伅 + for (EnforcePeer peer : bo.getPeers()) + { + peer.setOrderId(add.getOrderId()); + peer.setPeerDeptName(deptService.getDeptAllName(peer.getPeerDeptId())); + } + boolean savePeers = peerService.saveOrUpdateBatch(bo.getPeers()); + if (savePeers && StringUtils.isNotEmpty(phones)) { + sendApplyMsg(phones, add.getApplyUser()); + } + return savePeers; } @Override//淇敼 @@ -117,26 +131,48 @@ return this.removeByIds(ids); } - @Override//鏈堝害鍒嗗竷 - public List<KeyVal> getMonthCount(Long deptId) { - return orderMapper.getMonthCount(deptId); - } - - @Override//閮ㄩ棬鍒嗗竷 - public List<KeyVal> getDeptCount(String yearMonth) + @Override + public List<String> getCheckPhones(Integer checkLevel, Long applyDeptId) { - return orderMapper.getDeptCount(yearMonth); + return getCheckPhones(checkLevel, applyDeptId, 0); } //------------------------------------------------------------------------------------- + + /** + * 鍙戦�佸鎵圭煭淇� + * @param phones 鎵嬫満鍙� + * @param applyUser 鐢宠浜� + */ + @Async + public void sendApplyMsg(List<String> phones, String applyUser) + { + String applyMsg = StringUtils.format(StringUtils.format(YPSmsApi.APPLY_TMP, applyUser)); + phones.forEach(phone->{ + YPSmsApi.sendSms(phone, applyMsg) ; + }); + } + //淇濆瓨鍓嶆牎楠� private void validEntityBeforeSave(EnforceOrder entity) { if (entity.getOrderId()==null){ + String orderNo = orderNoService.getOrderNo(OrderPre.ZFD.getIndex()); + entity.setOrderNo(orderNo); entity.setCheckDeptId(deptService.getCheckDeptIdByLoginDeptId(entity.getApplyDeptId())); } + if (StringUtils.isEmpty(entity.getApplyDeptName())){ + entity.setApplyDeptName(deptService.getDeptAllName(entity.getApplyDeptId())); + } + if (StringUtils.isEmpty(entity.getExecuteDeptName())){ + entity.setExecuteDeptName(deptService.getDeptAllName(entity.getExecuteDeptId())); + } + if (StringUtils.isEmpty(entity.getCheckDeptName())){ + entity.setCheckDeptName(deptService.getDeptAllName(entity.getCheckDeptId())); + } + } //鑾峰彇鏌ヨ鍙傛暟 @@ -162,6 +198,7 @@ qw.like(StringUtils.isNotEmpty(bo.getApplyDeptName()), "apply_dept_name", bo.getApplyDeptName()); qw.eq(bo.getApplyTime() != null, "apply_time", bo.getApplyTime()); qw.eq(bo.getPlanTime() != null, "plan_time", bo.getPlanTime()); + qw.eq(bo.getInTime() != null, "in_time", bo.getInTime()); qw.eq(bo.getUserNum() != null, "user_num", bo.getUserNum()); qw.eq(bo.getWarnStatus() != null, "warn_status", bo.getWarnStatus()); qw.eq(StringUtils.isNotEmpty(bo.getWarnReason()), "warn_reason", bo.getWarnReason()); @@ -194,4 +231,32 @@ } return qw; } + + + /** + * 鑾峰彇瀹℃壒浜篿d + * @param checkLevel 瀹℃壒绾у埆锛氶粯璁�0 + * @param deptId 鐢宠閮ㄩ棬id + */ + private List<String> getCheckPhones(Integer checkLevel, Long deptId, int current) + { + if (checkLevel==3){ + if (current==1){ + return null; + } + checkLevel = 0; + deptId = deptService.getById(deptId).getParentId(); + current++; + getCheckPhones(checkLevel, deptId, current); + } + checkLevel++; + String checkKey = "check_enforce_"; + List<String> phones = userService.getPhonesByRoleKey(checkKey + checkLevel, deptId); + if (StringUtils.isNotEmpty(phones)){ + return phones; + } + return getCheckPhones(checkLevel, deptId, current); + } + + } diff --git a/project-enforce/src/main/java/com/project/enforce/service/impl/YPSmsService.java b/project-enforce/src/main/java/com/project/enforce/service/impl/YPSmsService.java new file mode 100644 index 0000000..ae27e73 --- /dev/null +++ b/project-enforce/src/main/java/com/project/enforce/service/impl/YPSmsService.java @@ -0,0 +1,65 @@ +package com.project.enforce.service.impl; + +import com.project.common.sms.YPSmsApi; +import com.project.common.utils.DateUtils; +import com.project.common.utils.StringUtils; +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.List; + +/** + * 鍔熻兘鎻忚堪锛� + * + * @author ZQN + * @version 1.0 + */ + +@Service +public class YPSmsService +{ + /** + * 鐢宠鍙戦�佸鎵圭煭淇� + * @param phones 鎵嬫満鍙� + * @param applyUser 鐢宠浜� + */ + @Async + public void sendApplyMsg(List<String> phones, String applyUser) + { + String applyMsg = StringUtils.format(StringUtils.format(YPSmsApi.APPLY_TMP, applyUser)); + phones.forEach(phone->{ + YPSmsApi.sendSms(phone, applyMsg) ; + }); + } + + /** + * 瀹℃壒鍚庡彂閫佺粨鏋滅煭淇� + * @param phone 鎵嬫満鍙� + * @param checkStatus 鐘舵�侊細-1鎷掔粷锛�2閫氳繃 + */ + @Async + public void sendCheckMsg(String phone, Integer checkStatus) + { + String result = "鎷掔粷"; + if (checkStatus>0){ + result = "瀹℃壒閫氳繃"; + } + String applyMsg = StringUtils.format(StringUtils.format(YPSmsApi.CHECK_TMP, result)); + YPSmsApi.sendSms(phone, applyMsg) ; + } + + /** + * 閫氱煡浼佷笟寮�鍚彂閫佷紒涓氱煭淇� + * @param phone 鎵嬫満鍙� + * @param applyDeptName 鎵ф硶閮ㄩ棬 + * @param planTime 鏃堕棿 + */ + @Async + public void sendCompanyMsg(String phone, String applyDeptName, Date planTime) + { + String date = DateUtils.getFormatDatedd(planTime); + String applyMsg = StringUtils.format(StringUtils.format(YPSmsApi.COMPANY_TMP, applyDeptName, date)); + YPSmsApi.sendSms(phone, applyMsg) ; + } +} diff --git a/project-enforce/src/main/resources/mapper/enforce/EnforceOrderMapper.xml b/project-enforce/src/main/resources/mapper/enforce/EnforceOrderMapper.xml index ce87128..ab4be13 100644 --- a/project-enforce/src/main/resources/mapper/enforce/EnforceOrderMapper.xml +++ b/project-enforce/src/main/resources/mapper/enforce/EnforceOrderMapper.xml @@ -24,6 +24,7 @@ <result property="applyDeptName" column="apply_dept_name" /> <result property="applyTime" column="apply_time" /> <result property="planTime" column="plan_time" /> + <result property="inTime" column="in_time" /> <result property="userNum" column="user_num" /> <result property="warnStatus" column="warn_status" /> <result property="warnReason" column="warn_reason" /> @@ -72,19 +73,12 @@ <if test="companyName != null and companyName != ''"> AND company_name like concat('%', #{companyName}, '%') </if> - <if test="orderStatus != null and orderStatus != ''"> AND order_status = #{orderStatus} </if> - - <if test="checkDeptId != null "> - AND check_dept_id = #{checkDeptId} + <if test="checkIds != null and checkIds != '' "> + AND check_ids like concat('%', #{checkIds}, '%') </if> - - <if test="checkLevel != null "> - AND check_level = #{checkLevel} - </if> - <if test="applyDeptIds != null "> AND apply_dept_id in <foreach collection="applyDeptIds" item="applyDeptId" open="(" separator="," close=")"> @@ -94,32 +88,5 @@ </where> </select> - <select id="getMonthCount" - parameterType="Long" - resultType="com.project.common.vo.KeyVal"> - select - MONTH(apply_time) AS k, - IFNULL(count(order_id),0) as v - from enforce_order - where 1=1 - <if test="deptId != null "> - AND apply_dept_id = #{deptId} - </if> - GROUP BY k - </select> - - <select id="getDeptCount" - parameterType="String" - resultType="com.project.common.vo.KeyVal"> - select - MONTH(check_dept_id) AS k, - IFNULL(count(order_id),0) as v - from enforce_order - where 1=1 - <if test="yearMonth!=null and yearMonth!=''"> - AND apply_time like concat('%', #{yearMonth}, '%') - </if> - GROUP BY k - </select> </mapper> diff --git a/project-enforce/src/main/resources/mapper/enforce/EnforcePeerMapper.xml b/project-enforce/src/main/resources/mapper/enforce/EnforcePeerMapper.xml new file mode 100644 index 0000000..892179f --- /dev/null +++ b/project-enforce/src/main/resources/mapper/enforce/EnforcePeerMapper.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.project.enforce.mapper.EnforcePeerMapper"> + + <resultMap type="EnforcePeer" id="EnforcePeerResult"> + <result property="id" column="id" /> + <result property="orderId" column="order_id" /> + <result property="peerType" column="peer_type" /> + <result property="peerId" column="peer_id" /> + <result property="peerUser" column="peer_user" /> + <result property="peerPhone" column="peer_phone" /> + <result property="peerDeptId" column="peer_dept_id" /> + <result property="peerDeptName" column="peer_dept_name" /> + <result property="delFlag" column="del_flag" /> + </resultMap> + + + +</mapper> \ No newline at end of file diff --git a/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java b/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java index d0faebe..8cb0c51 100644 --- a/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java +++ b/project-framework/src/main/java/com/project/framework/web/service/SysLoginService.java @@ -142,7 +142,7 @@ } private boolean sendYp(String phone, String code ){ - String result = YPSmsApi.sendSms(phone, StringUtils.format(YPSmsApi.VERIFY_CODE_TEMPLATE, code, Constants.PHONE_EXPIRATION)); + String result = YPSmsApi.sendSms(phone, StringUtils.format(YPSmsApi.CODE_TMP, code, Constants.PHONE_EXPIRATION)); if (result.contains("\"code\":0,\"msg\":\"OK\"")){ log.info("鍙戦�佹垚鍔� ->楠岃瘉鐮侊細"+code); return true; diff --git a/project-report/src/main/java/com/project/report/domain/bo/query/ReportQueryBo.java b/project-report/src/main/java/com/project/report/domain/bo/query/ReportQueryBo.java new file mode 100644 index 0000000..3981e79 --- /dev/null +++ b/project-report/src/main/java/com/project/report/domain/bo/query/ReportQueryBo.java @@ -0,0 +1,29 @@ +package com.project.report.domain.bo.query; + +import com.project.common.core.domain.BaseQuery; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 鍔熻兘鎻忚堪锛� + * + * @author ZQN + * @version 1.0 + */ + +@EqualsAndHashCode(callSuper = true) +@Data +public class ReportQueryBo extends BaseQuery +{ + + @ApiModelProperty("閮ㄩ棬id") + private Long deptId; + + @ApiModelProperty("鎶曡瘔澶勭悊鐘舵�侊細0鏈鐞嗭紝1宸插鐞�") + private Integer doComplaint; + + + + +} diff --git a/project-report/src/main/java/com/project/report/mapper/ReportMapper.java b/project-report/src/main/java/com/project/report/mapper/ReportMapper.java new file mode 100644 index 0000000..76e1307 --- /dev/null +++ b/project-report/src/main/java/com/project/report/mapper/ReportMapper.java @@ -0,0 +1,30 @@ +package com.project.report.mapper; + +import com.project.common.vo.KeyVal; +import com.project.report.domain.bo.query.ReportQueryBo; + +import java.util.List; + +/** + * 鍔熻兘鎻忚堪锛� + * + * @author ZQN + * @version 1.0 + */ + + +public interface ReportMapper +{ + + List<KeyVal> getMonthCount(ReportQueryBo bo); + + List<KeyVal> getDeptCount(ReportQueryBo bo); + + List<KeyVal> getCompanyCount(ReportQueryBo bo); + + List<KeyVal> getEnforceTypeCount(ReportQueryBo bo); + + List<KeyVal> getComplaintStatusCount(ReportQueryBo bo); + + List<KeyVal> getComplaintTypeCount(ReportQueryBo bo); +} diff --git a/project-report/src/main/java/com/project/report/service/IReportService.java b/project-report/src/main/java/com/project/report/service/IReportService.java index 0f5d6eb..0a89986 100644 --- a/project-report/src/main/java/com/project/report/service/IReportService.java +++ b/project-report/src/main/java/com/project/report/service/IReportService.java @@ -1,6 +1,7 @@ package com.project.report.service; import com.project.common.vo.KeyVal; +import com.project.report.domain.bo.query.ReportQueryBo; import java.util.List; import java.util.Map; @@ -22,15 +23,45 @@ /** * 鎵ф硶娆℃暟鏈堝害鍒嗗竷 - * @param deptId 閮ㄩ棬id + * @param bo 閮ㄩ棬id * @return 鎵ф硶娆℃暟 */ - List<KeyVal> getMonthCount(Long deptId); + List<KeyVal> getMonthCount(ReportQueryBo bo); /** * 鎵ф硶娆℃暟閮ㄩ棬鍒嗗竷 - * @param yearMonth 骞存湀 + * @param bo 骞存湀 * @return 鎵ф硶娆℃暟 */ - List<KeyVal> getDeptCount(String yearMonth); + List<KeyVal> getDeptCount(ReportQueryBo bo); + + /** + * 浼佷笟琚墽娉曟鏁板垎甯� + * @param bo 骞存湀 + * @return 浼佷笟琚墽娉曟鏁� + */ + List<KeyVal> getCompanyCount(ReportQueryBo bo); + + + /** + * 鎵ф硶绫诲瀷鍗犳瘮 + * @param bo 骞存湀 + * @return 鎵ф硶绫诲瀷 + */ + List<KeyVal> getEnforceTypeCount(ReportQueryBo bo); + + + /** + * 鎶曡瘔鐘舵�佸崰姣� + * @param bo 骞存湀 + * @return 鎶曡瘔鐘舵�� + */ + List<KeyVal> getComplaintStatusCount(ReportQueryBo bo); + + /** + * 鎵ф硶绫诲瀷鍗犳瘮 + * @param bo 骞存湀 + * @return 鎵ф硶绫诲瀷鍗犳瘮 + */ + List<KeyVal> getComplaintTypeCount(ReportQueryBo bo); } diff --git a/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java b/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java index b3df464..b02da7c 100644 --- a/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java +++ b/project-report/src/main/java/com/project/report/service/impl/ReportServiceImpl.java @@ -1,22 +1,26 @@ package com.project.report.service.impl; import com.project.common.core.domain.entity.SysDept; +import com.project.common.core.domain.entity.SysDictData; import com.project.common.core.domain.entity.SysUser; import com.project.common.vo.KeyVal; import com.project.enforce.domain.EnforceOrder; import com.project.enforce.service.IEnforceComplaintLogService; import com.project.enforce.service.IEnforceOrderService; +import com.project.report.domain.bo.query.ReportQueryBo; +import com.project.report.mapper.ReportMapper; import com.project.report.service.IReportService; import com.project.system.domain.SysCompany; import com.project.system.domain.SysDoc; -import com.project.system.service.ISysCompanyService; -import com.project.system.service.ISysDeptService; -import com.project.system.service.ISysDocService; -import com.project.system.service.ISysUserService; +import com.project.system.service.*; import lombok.RequiredArgsConstructor; +import org.jetbrains.annotations.NotNull; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -34,41 +38,124 @@ private final ISysDeptService deptService; private final ISysUserService userService; private final ISysDocService docService; + private final ISysDictDataService dictDataService; private final IEnforceOrderService orderService; private final IEnforceComplaintLogService complaintLogService; + private final ReportMapper reportMapper; + private final String[] months = {"1","2","3","4","5","6","7","8","9","10","11","12"}; + private final String[] complaintStatus = {"-1","0","1","2"}; @Override//姹囨�� public Map<String, Object> getTotalInfo() { - int companyNum = companyService.count(companyService.lq().eq(SysCompany::getCompanyStatus, 0)); int enforceCompanyNum = orderService.count(orderService.lq().groupBy(EnforceOrder::getCompanyId)); int enforceDeptNum = deptService.count(deptService.lq().eq(SysDept::getParentId,100)); int enforceUserNum = userService.count(userService.lq().ne(SysUser::getUserType,"02")); int enforceOrderNum = orderService.count(); + int enforceOrderCheckedNum = orderService.count(orderService.lq().eq(EnforceOrder::getOrderStatus,2)); + int enforceOrderCompleteNum = orderService.count(orderService.lq().eq(EnforceOrder::getOrderStatus,4)); int complaintNum = complaintLogService.count(); int docNum = docService.count(docService.lq().eq(SysDoc::getDocStatus,0)); - Map<String, Object> result = new HashMap<>(7); result.put("companyNum", companyNum); result.put("enforceCompanyNum", enforceCompanyNum); result.put("enforceDeptNum", enforceDeptNum); result.put("enforceUserNum", enforceUserNum); result.put("enforceOrderNum", enforceOrderNum); + result.put("enforceOrderCheckedNum", enforceOrderCheckedNum); + result.put("enforceOrderCompleteNum", enforceOrderCompleteNum); result.put("complaintNum", complaintNum); result.put("docNum", docNum); return result; } @Override//鎵ф硶鍗曚綅鎵ф硶娆℃暟鏈堝害鍒嗗竷 - public List<KeyVal> getMonthCount(Long deptId) + public List<KeyVal> getMonthCount(ReportQueryBo bo) { - List<KeyVal> list = orderService.getMonthCount(deptId); - Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK,KeyVal::getV)); + List<KeyVal> list = reportMapper.getMonthCount(bo); + return getKeyVal(list, months); + } - return Arrays.stream(months).map(e -> { + @Override//鎵ф硶鍗曚綅鎵ф硶娆℃暟閮ㄩ棬鍒嗗竷 + public List<KeyVal> getDeptCount(ReportQueryBo bo) + { + List<KeyVal> list = reportMapper.getDeptCount(bo); + Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK,KeyVal::getV)); + List<SysDept> deptList = deptService.list(deptService.lq().eq(SysDept::getParentId, 100)); + return deptList.stream().map(e -> { + KeyVal keyVal; + if (resultMap.get(e.getDeptId().toString()) == null) { + keyVal = new KeyVal(e.getDeptName(), 0); + } else { + keyVal = new KeyVal(e.getDeptName(), resultMap.get(e.getDeptId().toString())); + } + return keyVal; + }).collect(Collectors.toList()); + } + + @Override//浼佷笟琚墽娉曟鏁板垎甯� + public List<KeyVal> getCompanyCount(ReportQueryBo bo) + { + List<KeyVal> list = reportMapper.getCompanyCount(bo); + Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK, KeyVal::getV)); + + List<SysCompany> companies = companyService.list(companyService.lq().eq(SysCompany::getCompanyStatus, 0)); + + return companies.stream().map(e -> { + KeyVal keyVal; + if (resultMap.get(e.getCompanyId().toString()) == null) { + keyVal = new KeyVal(e.getCompanyName(), 0); + } else { + keyVal = new KeyVal(e.getCompanyName(), resultMap.get(e.getCompanyId().toString())); + } + return keyVal; + }).collect(Collectors.toList()); + } + + @Override//鎵ф硶绫诲瀷 + public List<KeyVal> getEnforceTypeCount(ReportQueryBo bo) + { + List<KeyVal> list = reportMapper.getEnforceTypeCount(bo); + Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK, KeyVal::getV)); + List<SysDictData> dictDataList = dictDataService.list(dictDataService.lq().eq(SysDictData::getDictType,"enforce_type")); + return getKeyVal(resultMap, dictDataList); + } + + + @Override//鎶曡瘔澶勭悊鐘舵�� + public List<KeyVal> getComplaintStatusCount(ReportQueryBo bo) + { + List<KeyVal> list = reportMapper.getComplaintStatusCount(bo); + return getKeyVal(list, complaintStatus); + } + + + @Override//鎶曡瘔绫诲瀷 + public List<KeyVal> getComplaintTypeCount(ReportQueryBo bo) + { + List<KeyVal> list = reportMapper.getComplaintTypeCount(bo); + Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK, KeyVal::getV)); + List<SysDictData> dictDataList = dictDataService.list(dictDataService.lq().eq(SysDictData::getDictType,"complaint_type")); + return getKeyVal(resultMap, dictDataList); + } + + +//----------------------------------------------------------------------------- + + /** + * 閫氳繃鏁扮粍鑾峰彇杩斿洖鏁版嵁 + * @param list 缁撴灉 + * @param array 鏁扮粍 + * @return 缁撴灉 + */ + @NotNull + private List<KeyVal> getKeyVal(List<KeyVal> list, String[] array) + { + Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK,KeyVal::getV)); + return Arrays.stream(array).map(e -> { KeyVal keyVal; if (resultMap.get(e) == null) { keyVal = new KeyVal(e, 0); @@ -79,20 +166,21 @@ }).collect(Collectors.toList()); } - @Override//鎵ф硶鍗曚綅鎵ф硶娆℃暟閮ㄩ棬鍒嗗竷 - public List<KeyVal> getDeptCount(String yearMonth) + /** + * 閫氳繃瀛楀吀鑾峰彇杩斿洖鏁版嵁 + * @param resultMap 缁撴灉 + * @param dictDataList 瀛楀吀 + * @return 缁撴灉 + */ + @NotNull + private List<KeyVal> getKeyVal(Map<String, Object> resultMap, List<SysDictData> dictDataList) { - List<KeyVal> list = orderService.getDeptCount(yearMonth); - Map<String, Object> resultMap = list.stream().collect(Collectors.toMap(KeyVal::getK,KeyVal::getV)); - - List<SysDept> depts = deptService.list(deptService.lq().eq(SysDept::getParentId, 100)); - - return depts.stream().map(e -> { + return dictDataList.stream().map(e -> { KeyVal keyVal; - if (resultMap.get(e.getDeptId().toString()) == null) { - keyVal = new KeyVal(e.getDeptName(), 0); + if (resultMap.get(e.getDictValue()) == null) { + keyVal = new KeyVal(e.getDictLabel(), 0); } else { - keyVal = new KeyVal(e.getDeptName(), resultMap.get(e.getDeptId().toString())); + keyVal = new KeyVal(e.getDictLabel(), resultMap.get(e.getDictValue())); } return keyVal; }).collect(Collectors.toList()); diff --git a/project-report/src/main/resources/mapper/report/ReportMapper.xml b/project-report/src/main/resources/mapper/report/ReportMapper.xml new file mode 100644 index 0000000..2032c8d --- /dev/null +++ b/project-report/src/main/resources/mapper/report/ReportMapper.xml @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE mapper +PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" +"http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.project.report.mapper.ReportMapper"> + + <!-- 鎵ф硶娆℃暟鏈堝害鍒嗗竷--> + <select id="getMonthCount" + parameterType="com.project.report.domain.bo.query.ReportQueryBo" + resultType="com.project.common.vo.KeyVal"> + select + MONTH(apply_time) AS k, + IFNULL(count(order_id),0) as v + from enforce_order + where 1=1 + <if test="deptId != null "> + AND apply_dept_id = #{deptId} + </if> + <if test="beginTime!=null and beginTime!=''"> + AND apply_time >= #{beginTime} + </if> + <if test="endTime!=null and endTime!=''"> + AND apply_time <= #{endTime} + </if> + GROUP BY k + </select> + + <!-- 鎵ф硶娆℃暟閮ㄩ棬鍒嗗竷--> + <select id="getDeptCount" + parameterType="com.project.report.domain.bo.query.ReportQueryBo" + resultType="com.project.common.vo.KeyVal"> + select + check_dept_id AS k, + IFNULL(count(order_id),0) as v + from enforce_order + where 1=1 + <if test="beginTime!=null and beginTime!=''"> + AND apply_time >= #{beginTime} + </if> + <if test="endTime!=null and endTime!=''"> + AND apply_time <= #{endTime} + </if> + GROUP BY k + </select> + + <!-- 琚墽娉曟鏁颁紒涓氬垎甯�--> + <select id="getCompanyCount" + parameterType="com.project.report.domain.bo.query.ReportQueryBo" + resultType="com.project.common.vo.KeyVal"> + select + company_id AS k, + IFNULL(count(order_id),0) as v + from enforce_order + where 1=1 + <if test="beginTime!=null and beginTime!=''"> + AND apply_time >= #{beginTime} + </if> + <if test="endTime!=null and endTime!=''"> + AND apply_time <= #{endTime} + </if> + GROUP BY k order by v desc + </select> + + <!-- 鎵ф硶绫诲瀷鍒嗗竷--> + <select id="getEnforceTypeCount" + parameterType="com.project.report.domain.bo.query.ReportQueryBo" + resultType="com.project.common.vo.KeyVal"> + select + enforce_type AS k, + IFNULL(count(order_id),0) as v + from enforce_order + where 1=1 + <if test="beginTime!=null and beginTime!=''"> + AND apply_time >= #{beginTime} + </if> + <if test="endTime!=null and endTime!=''"> + AND apply_time <= #{endTime} + </if> + GROUP BY k + </select> + + <!-- 鎶曡瘔澶勭悊鐘舵��--> + <select id="getComplaintStatusCount" + parameterType="com.project.report.domain.bo.query.ReportQueryBo" + resultType="com.project.common.vo.KeyVal"> + select + complaint_status AS k, + IFNULL(count(id),0) as v + from enforce_complaint_log + where 1=1 + <if test="beginTime!=null and beginTime!=''"> + AND apply_time >= #{beginTime} + </if> + <if test="endTime!=null and endTime!=''"> + AND apply_time <= #{endTime} + </if> + GROUP BY k + </select> + + <!-- 鎵ф硶绫诲瀷鍒嗗竷--> + <select id="getComplaintTypeCount" + parameterType="com.project.report.domain.bo.query.ReportQueryBo" + resultType="com.project.common.vo.KeyVal"> + select + complaint_type AS k, + IFNULL(count(id),0) as v + from enforce_complaint_log + where 1=1 + <if test="beginTime!=null and beginTime!=''"> + AND apply_time >= #{beginTime} + </if> + <if test="endTime!=null and endTime!=''"> + AND apply_time <= #{endTime} + </if> + <if test="doComplaint!=null "> + <if test="doComplaint == 0 "> + AND complaint_status = 0 + </if> + <if test="doComplaint == 1 "> + AND complaint_status != 0 + </if> + </if> + GROUP BY k + </select> + +</mapper> diff --git a/project-system/src/main/java/com/project/system/mapper/SysDictDataMapper.java b/project-system/src/main/java/com/project/system/mapper/SysDictDataMapper.java index dc02d75..9789738 100644 --- a/project-system/src/main/java/com/project/system/mapper/SysDictDataMapper.java +++ b/project-system/src/main/java/com/project/system/mapper/SysDictDataMapper.java @@ -1,5 +1,6 @@ package com.project.system.mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.project.common.core.domain.entity.SysDictData; import org.apache.ibatis.annotations.Param; @@ -10,7 +11,7 @@ * * @author project */ -public interface SysDictDataMapper +public interface SysDictDataMapper extends BaseMapper<SysDictData> { /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁 diff --git a/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java b/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java index 75c3d29..eae3dbc 100644 --- a/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java +++ b/project-system/src/main/java/com/project/system/mapper/SysUserMapper.java @@ -1,10 +1,10 @@ package com.project.system.mapper; -import java.util.List; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import org.apache.ibatis.annotations.Param; import com.project.common.core.domain.entity.SysUser; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 鐢ㄦ埛琛� 鏁版嵁灞� @@ -136,10 +136,10 @@ /** - * 鏌ヨ瑙掕壊鏍囪瘑瀵瑰簲浜烘暟 + * 鑾峰彇瑙掕壊鏍囪瘑浜烘墜鏈哄彿 * @param roleKey 鏍囪瘑 * @param deptId 閮ㄩ棬id - * @return 浜烘暟 + * @return phoneList */ - List<Long> getNumByRoleKey(@Param("roleKey") String roleKey,@Param("deptId") Long deptId); + List<String> getPhonesByRoleKey(@Param("roleKey") String roleKey,@Param("deptId") Long deptId); } diff --git a/project-system/src/main/java/com/project/system/service/ISysDeptService.java b/project-system/src/main/java/com/project/system/service/ISysDeptService.java index bd16bdf..72de54a 100644 --- a/project-system/src/main/java/com/project/system/service/ISysDeptService.java +++ b/project-system/src/main/java/com/project/system/service/ISysDeptService.java @@ -138,4 +138,12 @@ * @return 绠¤緰鏈烘瀯ids */ List<Long> getApplyDeptIdsByLoginUserId(Long userId); + + /** + * 鑾峰彇鍗曚綅鍏ㄥ悕 + * @param deptId 閮ㄩ棬id + * @return 鍏ㄥ悕 + */ + String getDeptAllName(Long deptId); + } diff --git a/project-system/src/main/java/com/project/system/service/ISysDictDataService.java b/project-system/src/main/java/com/project/system/service/ISysDictDataService.java index 5cc4bf7..19a1730 100644 --- a/project-system/src/main/java/com/project/system/service/ISysDictDataService.java +++ b/project-system/src/main/java/com/project/system/service/ISysDictDataService.java @@ -1,18 +1,20 @@ package com.project.system.service; -import java.util.List; import com.project.common.core.domain.entity.SysDictData; +import com.project.common.mybatis.IBaseService; + +import java.util.List; /** * 瀛楀吀 涓氬姟灞� - * + * * @author project */ -public interface ISysDictDataService +public interface ISysDictDataService extends IBaseService<SysDictData> { /** * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瀛楀吀鏁版嵁 - * + * * @param dictData 瀛楀吀鏁版嵁淇℃伅 * @return 瀛楀吀鏁版嵁闆嗗悎淇℃伅 */ @@ -20,7 +22,7 @@ /** * 鏍规嵁瀛楀吀绫诲瀷鍜屽瓧鍏搁敭鍊兼煡璇㈠瓧鍏告暟鎹俊鎭� - * + * * @param dictType 瀛楀吀绫诲瀷 * @param dictValue 瀛楀吀閿�� * @return 瀛楀吀鏍囩 @@ -38,7 +40,7 @@ /** * 鏍规嵁瀛楀吀鏁版嵁ID鏌ヨ淇℃伅 - * + * * @param dictCode 瀛楀吀鏁版嵁ID * @return 瀛楀吀鏁版嵁 */ @@ -46,14 +48,14 @@ /** * 鎵归噺鍒犻櫎瀛楀吀鏁版嵁淇℃伅 - * + * * @param dictCodes 闇�瑕佸垹闄ょ殑瀛楀吀鏁版嵁ID */ public void deleteDictDataByIds(Long[] dictCodes); /** * 鏂板淇濆瓨瀛楀吀鏁版嵁淇℃伅 - * + * * @param dictData 瀛楀吀鏁版嵁淇℃伅 * @return 缁撴灉 */ @@ -61,7 +63,7 @@ /** * 淇敼淇濆瓨瀛楀吀鏁版嵁淇℃伅 - * + * * @param dictData 瀛楀吀鏁版嵁淇℃伅 * @return 缁撴灉 */ diff --git a/project-system/src/main/java/com/project/system/service/ISysUserService.java b/project-system/src/main/java/com/project/system/service/ISysUserService.java index 6151278..7908b0a 100644 --- a/project-system/src/main/java/com/project/system/service/ISysUserService.java +++ b/project-system/src/main/java/com/project/system/service/ISysUserService.java @@ -1,8 +1,9 @@ package com.project.system.service; -import java.util.List; import com.project.common.core.domain.entity.SysUser; import com.project.common.mybatis.IBaseService; + +import java.util.List; /** * 鐢ㄦ埛 涓氬姟灞� @@ -214,9 +215,9 @@ public int deleteUserByDeptId(Long deptId); /** - * 鑾峰彇瑙掕壊鏍囪瘑浜烘暟 + * 鑾峰彇瑙掕壊鏍囪瘑浜烘墜鏈哄彿 * @param roleKey 瑙掕壊鏍囪瘑 - * @return 浜烘暟 + * @return idList */ - List<Long> getNumByRoleKey(String roleKey, Long deptId); + List<String> getPhonesByRoleKey(String roleKey, Long deptId); } diff --git a/project-system/src/main/java/com/project/system/service/impl/SysDeptServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysDeptServiceImpl.java index 9d3b4be..a582612 100644 --- a/project-system/src/main/java/com/project/system/service/impl/SysDeptServiceImpl.java +++ b/project-system/src/main/java/com/project/system/service/impl/SysDeptServiceImpl.java @@ -1,5 +1,7 @@ package com.project.system.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.project.common.annotation.DataScope; import com.project.common.constant.UserConstants; @@ -19,6 +21,7 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.stream.Collectors; @@ -320,6 +323,18 @@ return deptMapper.getApplyDeptIdsByLoginUserId(userId); } + @Override + public String getDeptAllName(Long deptId) + { + List<String> names = new ArrayList<>(); + names = getAncestorsNames(deptId, names); + if (CollectionUtil.isEmpty(names)){ + return ""; + } + Collections.reverse(names); + return StrUtil.join("-", names); + } + /** * 閫掑綊鍒楄〃 */ @@ -362,4 +377,26 @@ { return getChildList(list, t).size() > 0; } + + + /** + * 鑾峰彇绁栫睄names鍒楄〃 + * + * @param deptId 褰撳墠閮ㄩ棬id + * @param names 绁栫睄id鍒楄〃 + * @return names鍒楄〃 + */ + public List<String> getAncestorsNames(long deptId, List<String> names) { + SysDept dept = this.getById(deptId); + if (dept == null) { + return new ArrayList<>(); + } + if (dept.getParentId() != null && dept.getParentId() == 100) { + names.add(dept.getDeptName()); + return names; + } else { + names.add(dept.getDeptName()); + return getAncestorsNames(dept.getParentId(), names); + } + } } diff --git a/project-system/src/main/java/com/project/system/service/impl/SysDictDataServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysDictDataServiceImpl.java index a1a098e..183ed06 100644 --- a/project-system/src/main/java/com/project/system/service/impl/SysDictDataServiceImpl.java +++ b/project-system/src/main/java/com/project/system/service/impl/SysDictDataServiceImpl.java @@ -1,8 +1,11 @@ package com.project.system.service.impl; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.project.common.core.domain.entity.SysDept; import com.project.common.core.domain.entity.SysDictData; import com.project.common.exception.base.BaseException; import com.project.common.utils.DictUtils; +import com.project.system.mapper.SysDeptMapper; import com.project.system.mapper.SysDictDataMapper; import com.project.system.service.ISysDictDataService; import org.springframework.beans.factory.annotation.Autowired; @@ -16,7 +19,7 @@ * @author project */ @Service -public class SysDictDataServiceImpl implements ISysDictDataService +public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDictData> implements ISysDictDataService { @Autowired private SysDictDataMapper dictDataMapper; diff --git a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java index 50ef0de..9e244fe 100644 --- a/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java +++ b/project-system/src/main/java/com/project/system/service/impl/SysUserServiceImpl.java @@ -547,8 +547,8 @@ } @Override - public List<Long> getNumByRoleKey(String roleKey, Long deptId) + public List<String> getPhonesByRoleKey(String roleKey, Long deptId) { - return userMapper.getNumByRoleKey(roleKey, deptId); + return userMapper.getPhonesByRoleKey(roleKey, deptId); } } diff --git a/project-system/src/main/resources/mapper/system/SysUserMapper.xml b/project-system/src/main/resources/mapper/system/SysUserMapper.xml index 70b1c79..7280b60 100644 --- a/project-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/project-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -235,8 +235,8 @@ </delete> - <select id="getNumByRoleKey" resultType="Long"> - select u.user_id + <select id="getPhonesByRoleKey" resultType="String"> + select u.phonenumber from sys_user u join sys_user_role ur on u.user_id = ur.user_id join sys_role r on r.role_id=ur.role_id -- Gitblit v1.9.1