| | |
| | | |
| | | 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") |
| | |
| | | { |
| | | 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); |
| | | } |
| | | |
New file |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | |
| | | 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; |
| | |
| | | |
| | | @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)); |
| | | } |
| | | |
| | | } |
| | |
| | | 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; |
| | |
| | | public class SysProfileController extends BaseController |
| | | { |
| | | private final ISysUserService userService; |
| | | private final ISysDeptService deptService; |
| | | private final TokenService tokenService; |
| | | |
| | | |
| | |
| | | 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())); |
| | |
| | | */ |
| | | public enum OrderPre { |
| | | |
| | | CZDD("充值单", 1), |
| | | XSDD("销售单", 2), |
| | | ID("ID", 3), |
| | | TKDD("退款单", 4), |
| | | TXDD("提现单", 5) |
| | | ZFD("执法单", 1) |
| | | ; |
| | | |
| | | |
| | |
| | | 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 |
| | |
| | | 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 短信内容 |
| | | */ |
| | |
| | | import lombok.EqualsAndHashCode; |
| | | import lombok.NoArgsConstructor; |
| | | import lombok.experimental.Accessors; |
| | | |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * 投诉记录对象 enforce_complaint_log |
| | | * |
| | |
| | | @ApiModelProperty("投诉类型") |
| | | private String complaintType; |
| | | |
| | | @ApiModelProperty("投诉时间") |
| | | private Date complaintTime; |
| | | |
| | | @ApiModelProperty("响应时间") |
| | | private Date inTime; |
| | | |
| | | @ApiModelProperty("处理结果时间") |
| | | private Date resultTime; |
| | | |
| | | |
| | | @ApiModelProperty("投诉内容") |
| | | private String complaintReason; |
| | |
| | | @ApiModelProperty("计划执法时间") |
| | | private Date planTime; |
| | | |
| | | @ApiModelProperty("扫码入场时间") |
| | | private Date inTime; |
| | | |
| | | |
| | | @ApiModelProperty("执法队员人数") |
| | | private Integer userNum; |
| | |
| | | private String warnReason; |
| | | |
| | | |
| | | @ApiModelProperty("订单状态:-1撤回,0待提交,1已提交,2待执行,3已执行,4已评价") |
| | | @ApiModelProperty("订单状态:-1撤回,0待提交,1已提交,2已审批待执行,3已执行待上报,4已上报") |
| | | private Integer orderStatus; |
| | | |
| | | |
| | |
| | | @ApiModelProperty("当前审批层级:") |
| | | private Integer checkLevel; |
| | | |
| | | @ApiModelProperty("当前审批人ids") |
| | | private String checkIds; |
| | | |
| | | |
| | | @ApiModelProperty("执行人id") |
| | | private Long executeId; |
New file |
| | |
| | | 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("执法单id") |
| | | private Long orderId; |
| | | |
| | | |
| | | @ApiModelProperty("同行人类型:1申请者,2同行人") |
| | | private Integer peerType; |
| | | |
| | | |
| | | @ApiModelProperty("同行人id") |
| | | 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; |
| | | |
| | | } |
| | |
| | | @ApiModelProperty("投诉类型") |
| | | private String complaintType; |
| | | |
| | | @ApiModelProperty("投诉时间") |
| | | private Date complaintTime; |
| | | |
| | | @ApiModelProperty("响应时间") |
| | | private Date inTime; |
| | | |
| | | @ApiModelProperty("处理结果时间") |
| | | private Date resultTime; |
| | | |
| | | /** 投诉内容 */ |
| | | @ApiModelProperty("投诉内容") |
| | | private String complaintReason; |
| | |
| | | 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 |
| | |
| | | @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正常,1预警 */ |
| | | @ApiModelProperty("预警状态:0正常,1预警") |
| | |
| | | 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("当前审批层级:") |
| | | private Integer checkLevel; |
| | | |
| | | @ApiModelProperty("当前审批人ids") |
| | | private String checkIds; |
| | | |
| | | /** 执行人id */ |
| | | @ApiModelProperty("执行人id") |
| | | private Long executeId; |
New file |
| | |
| | | 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; |
| | | |
| | | /** 执法单id */ |
| | | @ApiModelProperty("执法单id") |
| | | private Long orderId; |
| | | |
| | | /** 同行人类型:1申请者,2同行人 */ |
| | | @ApiModelProperty("同行人类型:1申请者,2同行人") |
| | | private Integer peerType; |
| | | |
| | | /** 同行人id */ |
| | | @ApiModelProperty("同行人id") |
| | | private Long peerId; |
| | | |
| | | /** 同行人 */ |
| | | @ApiModelProperty("同行人") |
| | | private String peerUser; |
| | | |
| | | /** 同行人电话 */ |
| | | @ApiModelProperty("同行人电话") |
| | | private String peerPhone; |
| | | |
| | | /** 同行人单位 */ |
| | | @ApiModelProperty("同行人单位") |
| | | private Long peerDeptId; |
| | | |
| | | /** 同行人单位 */ |
| | | @ApiModelProperty("同行人单位") |
| | | private String peerDeptName; |
| | | } |
| | |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.util.Date; |
| | | |
| | | |
| | | /** |
| | | * 投诉记录分页查询对象 enforce_complaint_log |
| | |
| | | /** 投诉类型 */ |
| | | @ApiModelProperty("投诉类型") |
| | | private String complaintType; |
| | | |
| | | @ApiModelProperty("投诉时间") |
| | | private Date complaintTime; |
| | | |
| | | @ApiModelProperty("响应时间") |
| | | private Date inTime; |
| | | |
| | | @ApiModelProperty("处理结果时间") |
| | | private Date resultTime; |
| | | |
| | | |
| | | /** 投诉内容 */ |
| | | @ApiModelProperty("投诉内容") |
| | | private String complaintReason; |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date planTime; |
| | | |
| | | @ApiModelProperty("扫码入场时间") |
| | | private Date inTime; |
| | | |
| | | /** 执法队员人数 */ |
| | | @ApiModelProperty("执法队员人数") |
| | | private Integer userNum; |
| | |
| | | @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("审批人单位") |
| | |
| | | /** 当前审批层级: */ |
| | | @ApiModelProperty("当前审批层级:") |
| | | private Integer checkLevel; |
| | | |
| | | @ApiModelProperty("当前审批人ids") |
| | | private String checkIds; |
| | | |
| | | /** 执行人id */ |
| | | @ApiModelProperty("执行人id") |
| | | private Long executeId; |
New file |
| | |
| | | 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; |
| | | /** 排序的方向desc或者asc */ |
| | | @ApiModelProperty(value = "排序的方向", example = "asc,desc") |
| | | private String isAsc; |
| | | |
| | | |
| | | /** 执法单id */ |
| | | @ApiModelProperty("执法单id") |
| | | private Long orderId; |
| | | /** 同行人类型:1申请者,2同行人 */ |
| | | @ApiModelProperty("同行人类型:1申请者,2同行人") |
| | | private Integer peerType; |
| | | /** 同行人id */ |
| | | @ApiModelProperty("同行人id") |
| | | private Long peerId; |
| | | /** 同行人 */ |
| | | @ApiModelProperty("同行人") |
| | | private String peerUser; |
| | | /** 同行人电话 */ |
| | | @ApiModelProperty("同行人电话") |
| | | private String peerPhone; |
| | | /** 同行人单位 */ |
| | | @ApiModelProperty("同行人单位") |
| | | private Long peerDeptId; |
| | | /** 同行人单位 */ |
| | | @ApiModelProperty("同行人单位") |
| | | private String peerDeptName; |
| | | |
| | | } |
| | |
| | | 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; |
| | | |
| | | |
| | | /** |
| | |
| | | @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; |
| | |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | private Date planTime; |
| | | |
| | | @ApiModelProperty("扫码入场时间") |
| | | private Date inTime; |
| | | |
| | | @Excel(name = "执法队员人数") |
| | | @ApiModelProperty("执法队员人数") |
| | | private Integer userNum; |
| | |
| | | @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("审批人单位") |
| | |
| | | @Excel(name = "当前审批层级:") |
| | | @ApiModelProperty("当前审批层级:") |
| | | private Integer checkLevel; |
| | | |
| | | @ApiModelProperty("当前审批人ids") |
| | | private String checkIds; |
| | | |
| | | @Excel(name = "执行人id") |
| | | @ApiModelProperty("执行人id") |
| | | private Long executeId; |
New file |
| | |
| | | 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 = "执法单id") |
| | | @ApiModelProperty("执法单id") |
| | | private Long orderId; |
| | | @Excel(name = "同行人类型:1申请者,2同行人") |
| | | @ApiModelProperty("同行人类型:1申请者,2同行人") |
| | | private Integer peerType; |
| | | @Excel(name = "同行人id") |
| | | @ApiModelProperty("同行人id") |
| | | 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; |
| | | |
| | | } |
| | |
| | | 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; |
| | |
| | | |
| | | List<EnforceOrderVo> selectCheckList(EnforceOrderQueryBo bo); |
| | | |
| | | List<KeyVal> getMonthCount(Long deptId); |
| | | |
| | | List<KeyVal> getDeptCount(String yearMonth); |
| | | } |
New file |
| | |
| | | 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> { |
| | | |
| | | } |
New file |
| | |
| | | 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; |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | |
| | | |
| | | /** |
| | | * 执法次数月度分布 |
| | | * @param deptId 机构id |
| | | * @return 月度分布 |
| | | * 获取下一级审批人电话 |
| | | * @param checkLevel 当前审批级别 |
| | | * @param applyDeptId 申请部门id |
| | | * @return 审批人ids |
| | | */ |
| | | List<KeyVal> getMonthCount(Long deptId); |
| | | List<String> getCheckPhones(Integer checkLevel, Long applyDeptId); |
| | | |
| | | |
| | | /** |
| | | * 执法次数部门分布 |
| | | * @param yearMonth 年月 |
| | | * @return 部门分布 |
| | | */ |
| | | List<KeyVal> getDeptCount(String yearMonth); |
| | | } |
New file |
| | |
| | | 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); |
| | | } |
| | |
| | | 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; |
| | |
| | | private final ISysCompanyService companyService; |
| | | private final IEnforceOrderService orderService; |
| | | private final IEnforceCheckLogService checkLogService; |
| | | private final ISysUserService userService; |
| | | private final YPSmsService smsService; |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | 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()); |
| | |
| | | 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; |
| | | |
| | | /** |
| | | * 执法单Service业务层处理 |
| | |
| | | @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") |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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//修改 |
| | |
| | | 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())); |
| | | } |
| | | |
| | | } |
| | | |
| | | //获取查询参数 |
| | |
| | | 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()); |
| | |
| | | } |
| | | return qw; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 获取审批人id |
| | | * @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); |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | 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) ; |
| | | } |
| | | } |
| | |
| | | <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" /> |
| | |
| | | <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=")"> |
| | |
| | | </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> |
New file |
| | |
| | | <?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> |
| | |
| | | } |
| | | |
| | | 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; |
New file |
| | |
| | | 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; |
| | | |
| | | |
| | | |
| | | |
| | | } |
New file |
| | |
| | | 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); |
| | | } |
| | |
| | | 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; |
| | |
| | | |
| | | /** |
| | | * 执法次数月度分布 |
| | | * @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); |
| | | } |
| | |
| | | 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; |
| | | |
| | | /** |
| | |
| | | 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); |
| | |
| | | }).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()); |
New file |
| | |
| | | <?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> |
| | |
| | | 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; |
| | | |
| | |
| | | * |
| | | * @author project |
| | | */ |
| | | public interface SysDictDataMapper |
| | | public interface SysDictDataMapper extends BaseMapper<SysDictData> |
| | | { |
| | | /** |
| | | * 根据条件分页查询字典数据 |
| | |
| | | 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; |
| | | |
| | | /** |
| | | * 用户表 数据层 |
| | |
| | | |
| | | |
| | | /** |
| | | * 查询角色标识对应人数 |
| | | * 获取角色标识人手机号 |
| | | * @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); |
| | | } |
| | |
| | | * @return 管辖机构ids |
| | | */ |
| | | List<Long> getApplyDeptIdsByLoginUserId(Long userId); |
| | | |
| | | /** |
| | | * 获取单位全名 |
| | | * @param deptId 部门id |
| | | * @return 全名 |
| | | */ |
| | | String getDeptAllName(Long deptId); |
| | | |
| | | } |
| | |
| | | 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 字典数据集合信息 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 根据字典类型和字典键值查询字典数据信息 |
| | | * |
| | | * |
| | | * @param dictType 字典类型 |
| | | * @param dictValue 字典键值 |
| | | * @return 字典标签 |
| | |
| | | |
| | | /** |
| | | * 根据字典数据ID查询信息 |
| | | * |
| | | * |
| | | * @param dictCode 字典数据ID |
| | | * @return 字典数据 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 批量删除字典数据信息 |
| | | * |
| | | * |
| | | * @param dictCodes 需要删除的字典数据ID |
| | | */ |
| | | public void deleteDictDataByIds(Long[] dictCodes); |
| | | |
| | | /** |
| | | * 新增保存字典数据信息 |
| | | * |
| | | * |
| | | * @param dictData 字典数据信息 |
| | | * @return 结果 |
| | | */ |
| | |
| | | |
| | | /** |
| | | * 修改保存字典数据信息 |
| | | * |
| | | * |
| | | * @param dictData 字典数据信息 |
| | | * @return 结果 |
| | | */ |
| | |
| | | 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; |
| | | |
| | | /** |
| | | * 用户 业务层 |
| | |
| | | public int deleteUserByDeptId(Long deptId); |
| | | |
| | | /** |
| | | * 获取角色标识人数 |
| | | * 获取角色标识人手机号 |
| | | * @param roleKey 角色标识 |
| | | * @return 人数 |
| | | * @return idList |
| | | */ |
| | | List<Long> getNumByRoleKey(String roleKey, Long deptId); |
| | | List<String> getPhonesByRoleKey(String roleKey, Long deptId); |
| | | } |
| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | | * 递归列表 |
| | | */ |
| | |
| | | { |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | |
| | | 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; |
| | |
| | | * @author project |
| | | */ |
| | | @Service |
| | | public class SysDictDataServiceImpl implements ISysDictDataService |
| | | public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDictData> implements ISysDictDataService |
| | | { |
| | | @Autowired |
| | | private SysDictDataMapper dictDataMapper; |
| | |
| | | } |
| | | |
| | | @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); |
| | | } |
| | | } |
| | |
| | | </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 |