Browse Source

监督端-投诉举报

v6
zouyx 2 years ago
parent
commit
dff717d47b
  1. 118
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/complaintsReport/complaintReportDetails.html
  2. 133
      lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/complaintsReport/complaintsReport.html
  3. 104
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/ComplaintsReportController.java
  4. 81
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/ComplaintStatistics.java
  5. 19
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/EnterpriseComplaint.java
  6. 11
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/MssqOrderFlow.java
  7. 18
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/SearchType.java
  8. 12
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/ComplaintStatisticsMapper.java
  9. 22
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/ComplaintsReportService.java
  10. 4
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ComplaintStatisticsImpl.java
  11. 84
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ComplaintsReportServiceImpl.java
  12. 27
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/ComplaintStatisticsMapper.xml

118
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/complaintsReport/complaintReportDetails.html

@ -0,0 +1,118 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('执法投诉统计')"/>
<th:block th:include="zdxtInclude :: datetimepicker-css" />
<link type="text/css" href="/css/stat1.css" rel="stylesheet"/>
<link href="/layui/css/layui.css" rel="stylesheet">
<style>
</style>
</head>
<body>
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-information-add">
<div class="form-group">
<label class="col-sm-3 control-label">投诉部门:</label>
<div class="col-sm-8">
<input name="enterpriseName" th:value="${complaintStatistics.complaintDepartment}" class="form-control" disabled type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">投诉时间:</label>
<div class="col-sm-8">
<input name="enterpriseName" th:value="${complaintStatistics.enterpriseComplaint.createTimeStr}" class="form-control" disabled type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">投诉类型:</label>
<div class="col-sm-8">
<input name="enterpriseName" th:value="${complaintStatistics.enterpriseComplaint.enforceTypeStr}" class="form-control" disabled type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">投诉内容:</label>
<div class="col-sm-8">
<input name="enterpriseName" th:value="${complaintStatistics.enterpriseComplaint.problemDescription}" class="form-control" disabled type="textarea">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">涉事地址:</label>
<div class="col-sm-8">
<input name="enterpriseName" th:value="${complaintStatistics.enterpriseComplaint.enterpriseAddress}" class="form-control" disabled type="textarea">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">附件:</label>
<div class="col-sm-8">
<img th:src="${url}" th:each="url:${complaintStatistics.fileList}" style="height: 100px;width: 100px;padding: 10px;cursor: pointer;" onclick="openPicture(this)"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">授权状态:</label>
<div class="col-sm-8" th:if="${complaintStatistics.enterpriseComplaint.authorization==1}" style="padding: 6px">
<input type="checkbox" title="同意" lay-text="同意" checked disabled><label style="margin-left: 10px;margin-right: 15px;">同意</label>
<input type="checkbox" title="不同意" disabled><label style="margin-left: 10px;margin-right: 15px;">不同意</label>
</div>
<div class="col-sm-8" th:if="${complaintStatistics.enterpriseComplaint.authorization==0}" style="padding: 6px">
<input type="checkbox" title="同意" lay-text="同意" disabled><label style="margin-left: 10px;margin-right: 15px;">同意</label>
<input type="checkbox" title="不同意" checked disabled><label style="margin-left: 10px;margin-right: 15px;">不同意</label>
</div>
</div>
<div class="form-group" th:if="${complaintStatistics.enterpriseComplaint.authorization==1}">
<label class="col-sm-3 control-label">联系人:</label>
<div class="col-sm-8">
<input name="enterpriseName" th:value="${complaintStatistics.enterpriseComplaint.linkman}" class="form-control" disabled type="text">
</div>
</div>
<div class="form-group" th:if="${complaintStatistics.enterpriseComplaint.authorization==1}">
<label class="col-sm-3 control-label">联系电话:</label>
<div class="col-sm-8">
<input name="enterpriseName" th:value="${complaintStatistics.enterpriseComplaint.linkmanTel}" class="form-control" disabled type="text">
</div>
</div>
<div class="form-group" th:if="${mssqOrderFlowList != null and mssqOrderFlowList.size()>0}">
<label class="col-sm-3 control-label">处置进度:</label>
<div class="col-sm-8">
<div class="layui-timeline" th:each="mssqOrderFlow,status:${mssqOrderFlowList}">
<div class="layui-timeline-item">
<i class="layui-icon layui-timeline-axis" th:if="${status.first}"></i>
<i class="layui-icon layui-timeline-axis" th:if="${!status.first}" style="color: rgba(0,0,0,0.5)"></i>
<div class="layui-timeline-content layui-text">
<h3 class="layui-timeline-title" th:text="${mssqOrderFlow.appOrgShortname}"></h3>
<ul>
<li style="display: flex"><strong>处理部门:</strong><p th:text="${mssqOrderFlow.appOrgName}"></p></li>
<li style="display: flex"><strong>处理意见:</strong><p th:text="${mssqOrderFlow.approveContent}"></p></li>
<li style="display: flex"><strong>处理结果:</strong><p th:text="${mssqOrderFlow.operName}"></p></li>
<li style="display: flex"><strong>处理时间:</strong><p th:text="${mssqOrderFlow.approveTime}"></p></li>
<!-- <li th:if="${mssqOrderFlow.AppFiles!=null}"><strong>处理时间:</strong><p th:text="${mssqOrderFlow.AppFiles.fileName}" onclick="openFile(this)"></p></li>-->
</ul>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
<th:block th:include="zdxtInclude :: footer"/>
<script th:inline="javascript">
function openPicture(body){
url=body.src;
if(url!=null&&url!=''){
window.open(url);
}else{
this.$message.warning('图片不存在');
}
}
function openFile(body){
url=body.value;
if(url!=null&&url!=''){
window.open(url);
}else{
this.$message.warning('图片不存在');
}
}
</script>
</body>
</html>

133
lib/EmergencyService/zdxtEmergencyBootStart/src/main/resources/templates/project/code/complaintsReport/complaintsReport.html

@ -0,0 +1,133 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('执法投诉统计')"/>
<link type="text/css" href="/css/stat1.css" rel="stylesheet"/>
<style>
</style>
</head>
<body>
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<div id="one-tab1" class="tab-content active">
<form id="formId">
<div class="select-list">
<ul>
<li>
<p>被投诉对象:</p>
<input type="text" name="name"/>
</li>
<li>
<p>投诉类型:</p>
<select id="cType" name="cType" th:with="type=${@dict.getType('caseType')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<a class="btn btn-success btn-sm" onclick="searchReport()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-reset btn-sm" onclick="reportRest()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="col-sm-12 select-table table-bordered">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
</div>
<th:block th:include="zdxtInclude :: footer"/>
<script type="text/javascript" src="/js/echarts.min.js"></script>
<script th:inline="javascript">
var prefix = ctx + "code/complaintsReport";
var caseType = [[${@dict.getType('caseType')}]];
window.onload = function () {
rTable();
}
$(function () {
var options = {
modalName: "投诉举报",
pagination: true,
pageSize: 10,
pageList: [10, 25, 50],
columns: [
{
field: 'complaintDepartment',
title: '投诉部门'
},
{
field: 'enforceType',
title: '投诉类型',
formatter: function (value, row, index) {
for (let i = 0; i < caseType.length; i++) {
if (value == caseType[i].dictValue) {
return caseType[i].dictLabel;
}
}
return value;
}
},
{
field: 'problemDescription',
title: '描述'
},
{
field: 'progress',
title: '处理进度',
},
{
field: 'results',
title: '处理结果',
},
{
title:'操作',
formatter(value, row, index){
return '<a class="btn btn-success btn-xs " onclick="openDetails(\'' + row.id + '\')"><i class="fa fa-edit"></i> 查看</a> ';
}
}
]
};
$("#bootstrap-table").bootstrapTable(options);
});
function rTable() {
var currentId = $('form').eq(0).attr('id');
var params = $.common.formToJSON(currentId);
var $table = $('#bootstrap-table');
var pageNumber = $table.bootstrapTable('getOptions').pageNumber;
var pageSize = $table.bootstrapTable('getOptions').pageSize;
params.pageNumber=pageNumber;
params.pageSize=pageSize;
$.ajax({
url: prefix + "/list",
method: 'post',
data: params,
success: function (response) {
$('#bootstrap-table').bootstrapTable('load', response);
}, error: function (xhr, status, error) {
console.error("请求失败:", status, error);
}
})
}
function searchReport() {
rTable();
}
function reportRest() {
$('form').eq(0).trigger("reset");
searchReport();
}
function openDetails(id){
$.modal.openClose("投诉举报详情", prefix + "/details/" + id);
}
</script>
</body>
</html>

104
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/ComplaintsReportController.java

@ -0,0 +1,104 @@
package com.zdxt.code.controller;
import com.zdxt.auth.framework.web.controller.BaseController;
import com.zdxt.auth.framework.web.page.TableDataInfo;
import com.zdxt.code.domain.ComplaintStatistics;
import com.zdxt.code.domain.MssqOrderFlow;
import com.zdxt.code.domain.SearchType;
import com.zdxt.code.service.ComplaintsReportService;
import com.zdxt.code.service.IEnterpriseComplaintService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/code/complaintsReport")
public class ComplaintsReportController extends BaseController {
private String prefix = "project/code/complaintsReport";
@Autowired
private ComplaintsReportService complaintsReportService;
@Autowired
private IEnterpriseComplaintService iEnterpriseComplaintService;
@RequiresPermissions("code:complaintsReport:view")
@GetMapping()
public String complaintStatic(Model model) {
return prefix + "/complaintsReport";
}
@RequiresPermissions("code:complaintsReport:view")
@PostMapping("/list")
@ResponseBody
public TableDataInfo complaintGetComplaintDepartment(SearchType searchType) {
startPage();
List<ComplaintStatistics> list = complaintsReportService.complaintGetComplaintDepartment(searchType);
return getDataTable(list);
}
@GetMapping("/details/{id}")
public String complaintsReportDetails(@PathVariable("id") String id, Model model) {
ComplaintStatistics complaintStatistics = complaintsReportService.complaintById(id);
model.addAttribute("complaintStatistics", complaintStatistics);
List<MssqOrderFlow> mssqOrderFlowList = iEnterpriseComplaintService.selectEnterpriseComplaintProcess(complaintStatistics.getCid());
/* MssqOrderFlow mssqOrderFlow1=new MssqOrderFlow();
mssqOrderFlow1.setAppOrgName("处理部门1");
mssqOrderFlow1.setApproveContent("处理1");
mssqOrderFlow1.setApproveTime("2025-03-20 12:30");
MssqOrderFlow mssqOrderFlow2=new MssqOrderFlow();
mssqOrderFlow2.setAppOrgName("处理部门2");
mssqOrderFlow2.setApproveContent("处理2");
mssqOrderFlow2.setApproveTime("2025-03-20 14:30");
mssqOrderFlowList.add(mssqOrderFlow2);
mssqOrderFlowList.add(mssqOrderFlow1);*/
model.addAttribute("mssqOrderFlowList", mssqOrderFlowList);
return prefix + "/complaintReportDetails.html";
}
/*民生诉求查询结果:
{
"result":
"{\"resultCode\":0,\"resultMsg\":\"查询成功\",\"approveDatas\":[{\"appFiles\":[],\"approveType\":0,\"appOrgName\":\"市统一受理分拨中心\",\"approveUserNo\":\"hwbz\",\"stateDesc\":\"派单员审核\",\"proWoId\":\"ae81062ab30d4e24bdeae3c42b2946c7\",\"backReasonNorx\":null,\"proWoCode\":\"672408011518283246701\",\"approveUserId\":\"8b0008377cd84e25914afc738fa37b17\",\"backReason\":null,\"approveUserName\":\"诉求受理员\",\"shortHandleName\":\"分拨\",\"appOrgShortname\":\"市统一受理分拨中心\",\"operName\":\"拟交办/转送处理\",\"approveContent\":\"测试\",\"id\":\"b66633f8ea7148ea87decda51b90850d\",\"replyContent\":null,\"state\":2,\"approveTime\":\"2024-08-01 15:38:39\",\"assignOrgName\":\"政通\"},{\"appFiles\":[],\"approveType\":0,\"appOrgName\":\"政通\",\"approveUserNo\":\"xiaoyuming\",\"stateDesc\":\"职能局处理\",\"proWoId\":\"ae81062ab30d4e24bdeae3c42b2946c7\",\"backReasonNorx\":\"\",\"proWoCode\":\"672408011518283246701\",\"approveUserId\":\"1582564358314156033\",\"backReason\":\"\",\"approveUserName\":\"肖裕明\",\"shortHandleName\":\"处置\",\"appOrgShortname\":\"政通\",\"operName\":\"处理完成,转市民生诉求平台复核\",\"approveContent\":\"测试\",\"id\":\"041c90c61890469fb665992a7429c2bf\",\"replyContent\":\"测试\",\"state\":7,\"approveTime\":\"2024-08-01 15:39:53\",\"assignOrgName\":\"市统一受理分拨中心\"},{\"appFiles\":[],\"approveType\":2,\"appOrgName\":\"市统一受理分拨中心\",\"approveUserNo\":\"hwbz\",\"stateDesc\":\"机构复核\",\"proWoId\":\"ae81062ab30d4e24bdeae3c42b2946c7\",\"backReasonNorx\":\"\",\"proWoCode\":\"672408011518283246701\",\"approveUserId\":\"8b0008377cd84e25914afc738fa37b17\",\"backReason\":\"\",\"approveUserName\":\"诉求受理员\",\"shortHandleName\":\"办结审核\",\"appOrgShortname\":\"市统一受理分拨中心\",\"operName\":\"审核通过,工单办结\",\"approveContent\":\"复核通过,办结工单。\",\"id\":\"d260312476854396b251bf007678f61d\",\"replyContent\":null,\"state\":8,\"approveTime\":\"2024-08-01 15:40:45\",\"assignOrgName\":null},{\"appFiles\":[],\"approveType\":99,\"appOrgName\":null,\"approveUserNo\":null,\"stateDesc\":\"\",\"proWoId\":\"ae81062ab30d4e24bdeae3c42b2946c7\",\"backReasonNorx\":null,\"proWoCode\":\"672408011518283246701\",\"approveUserId\":null,\"backReason\":null,\"approveUserName\":\"市民评价\",\"shortHandleName\":\"市民评价\",\"appOrgShortname\":\"市民评价\",\"operName\":\"市民评价\",\"approveContent\":\"非常满意\",\"id\":\"e4b771bb315bc57fce2bd7633727a92e\",\"replyContent\":null,\"state\":null,\"approveTime\":\"2024-08-02 10:07:56\",\"assignOrgName\":null}]}", "code":
200
}
2025-03-24 10:08:11,719INFO [http-nio-85-exec-7]c.z.c.s.IEnterpriseComplaintService [EnterpriseComplaintServiceImpl.java :115]查询工单信息结果返回:
{
"resultCode":0, "resultMsg":"查询成功", "approveDatas":[{
"appFiles":[],"approveType":0, "appOrgName":"市统一受理分拨中心", "approveUserNo":"hwbz", "stateDesc":
"派单员审核", "proWoId":"ae81062ab30d4e24bdeae3c42b2946c7", "backReasonNorx":null, "proWoCode":
"672408011518283246701", "approveUserId":"8b0008377cd84e25914afc738fa37b17", "backReason":
null, "approveUserName":"诉求受理员", "shortHandleName":"分拨", "appOrgShortname":
"市统一受理分拨中心", "operName":"拟交办/转送处理", "approveContent":"测试", "id":
"b66633f8ea7148ea87decda51b90850d", "replyContent":null, "state":2, "approveTime":
"2024-08-01 15:38:39", "assignOrgName":"政通"
},{
"appFiles":[],"approveType":0, "appOrgName":"政通", "approveUserNo":"xiaoyuming", "stateDesc":
"职能局处理", "proWoId":"ae81062ab30d4e24bdeae3c42b2946c7", "backReasonNorx":"", "proWoCode":
"672408011518283246701", "approveUserId":"1582564358314156033", "backReason":"", "approveUserName":
"肖裕明", "shortHandleName":"处置", "appOrgShortname":"政通", "operName":
"处理完成,转市民生诉求平台复核", "approveContent":"测试", "id":
"041c90c61890469fb665992a7429c2bf", "replyContent":"测试", "state":7, "approveTime":
"2024-08-01 15:39:53", "assignOrgName":"市统一受理分拨中心"
},{
"appFiles":[],"approveType":2, "appOrgName":"市统一受理分拨中心", "approveUserNo":"hwbz", "stateDesc":
"机构复核", "proWoId":"ae81062ab30d4e24bdeae3c42b2946c7", "backReasonNorx":"", "proWoCode":
"672408011518283246701", "approveUserId":"8b0008377cd84e25914afc738fa37b17", "backReason":"", "approveUserName":
"诉求受理员", "shortHandleName":"办结审核", "appOrgShortname":"市统一受理分拨中心", "operName":
"审核通过,工单办结", "approveContent":"复核通过,办结工单。", "id":
"d260312476854396b251bf007678f61d", "replyContent":null, "state":8, "approveTime":
"2024-08-01 15:40:45", "assignOrgName":null
},{
"appFiles":[],"approveType":99, "appOrgName":null, "approveUserNo":null, "stateDesc":"", "proWoId":
"ae81062ab30d4e24bdeae3c42b2946c7", "backReasonNorx":null, "proWoCode":"672408011518283246701", "approveUserId":
null, "backReason":null, "approveUserName":"市民评价", "shortHandleName":"市民评价", "appOrgShortname":
"市民评价", "operName":"市民评价", "approveContent":"非常满意", "id":
"e4b771bb315bc57fce2bd7633727a92e", "replyContent":null, "state":null, "approveTime":
"2024-08-02 10:07:56", "assignOrgName":null
}]}*/
}

81
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/ComplaintStatistics.java

@ -5,27 +5,38 @@ import com.zdxt.common.BaseDomain;
import java.util.List;
public class ComplaintStatistics extends BaseDomain {
public String id;
public String cid;
public String rid;
public String complaintTime;
public int complaintType;
public String complaintDepartment;
public String complaintDepartmentId;
public List<String> complaintDepartmentIdList;
public String enterpriseName;
public String enterpriseNumber;
public int enforceType;
public String problemDescription;
public String linkman;
public String linkmanTel;
public String enterpriseAddress;
public String beginTime;
public String endTime;
public String total;
private String id;
private String cid;
private String rid;
private String complaintTime;
private int complaintType;
private String complaintDepartment;
private String complaintDepartmentId;
private List<String> complaintDepartmentIdList;
private String enterpriseName;
private String enterpriseNumber;
private int enforceType;
private String problemDescription;
private String linkman;
private String linkmanTel;
private String enterpriseAddress;
private String beginTime;
private String endTime;
private String total;
private Integer nullType;
public List<String> fileList;
private List<String> fileList;
private EnterpriseComplaint enterpriseComplaint;
private String proWoCode;
/**
* 工单处理进度
*/
private String progress;
/**
* 工单处理结果
*/
private String results;
public String getId() {
return id;
}
@ -185,4 +196,36 @@ public class ComplaintStatistics extends BaseDomain {
public void setFileList(List<String> fileList) {
this.fileList = fileList;
}
public EnterpriseComplaint getEnterpriseComplaint() {
return enterpriseComplaint;
}
public void setEnterpriseComplaint(EnterpriseComplaint enterpriseComplaint) {
this.enterpriseComplaint = enterpriseComplaint;
}
public String getProWoCode() {
return proWoCode;
}
public void setProWoCode(String proWoCode) {
this.proWoCode = proWoCode;
}
public String getProgress() {
return progress;
}
public void setProgress(String progress) {
this.progress = progress;
}
public String getResults() {
return results;
}
public void setResults(String results) {
this.results = results;
}
}

19
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/EnterpriseComplaint.java

@ -89,7 +89,8 @@ public class EnterpriseComplaint extends BaseDomain
* 投诉事项编码 多个逗号隔开
*/
private String complaintItemNames;
private String enforceTypeStr;
private String createTimeStr;
public String getEnforcementTime() {
return enforcementTime;
}
@ -434,6 +435,22 @@ public class EnterpriseComplaint extends BaseDomain
this.complaintItemNames = complaintItemNames;
}
public String getEnforceTypeStr() {
return enforceTypeStr;
}
public void setEnforceTypeStr(String enforceTypeStr) {
this.enforceTypeStr = enforceTypeStr;
}
public String getCreateTimeStr() {
return createTimeStr;
}
public void setCreateTimeStr(String createTimeStr) {
this.createTimeStr = createTimeStr;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

11
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/MssqOrderFlow.java

@ -37,6 +37,7 @@ public class MssqOrderFlow extends BaseDomain {
* 文件
*/
private AppFiles appFiles;
private String appOrgShortname;
public String getAppOrgName() {
return appOrgName;
@ -93,6 +94,15 @@ public class MssqOrderFlow extends BaseDomain {
public void setAppFiles(AppFiles appFiles) {
this.appFiles = appFiles;
}
public String getAppOrgShortname() {
return appOrgShortname;
}
public void setAppOrgShortname(String appOrgShortname) {
this.appOrgShortname = appOrgShortname;
}
class AppFiles {
/**
* 文件名称
@ -118,6 +128,7 @@ public class MssqOrderFlow extends BaseDomain {
public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl;
}
}
}

18
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/SearchType.java

@ -34,6 +34,8 @@ public class SearchType implements Cloneable{
private String enterpriseName;
private String enterpriseNumber;
private String enterpriseAddress;
private Integer pageNumber;
private Integer pageSize;
public List<String> getAreaStreet() {
return areaStreet;
@ -243,6 +245,22 @@ public class SearchType implements Cloneable{
this.enterpriseAddress = enterpriseAddress;
}
public Integer getPageNumber() {
return pageNumber;
}
public void setPageNumber(Integer pageNumber) {
this.pageNumber = pageNumber;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public SearchType(){}
public SearchType(SearchType searchType){
this.areaStreet=searchType.getAreaStreet();

12
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/ComplaintStatisticsMapper.java

@ -29,4 +29,16 @@ public interface ComplaintStatisticsMapper {
* @return
*/
List<ComplaintStatistics> selectComplaintStatisticsLEFTEnterpriseList(ComplaintStatistics complaintStatistics);
/**
* 获取投诉举报列表,合并两个投诉表的投诉部门
* @param searchType
* @return
*/
List<ComplaintStatistics> complaintGetComplaintDepartment(SearchType searchType);
/**
* 根据投诉统计id获取投诉举报详情
* @param id
* @return
*/
ComplaintStatistics complaintGetComplaintDepartmentById(String id);
}

22
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/ComplaintsReportService.java

@ -0,0 +1,22 @@
package com.zdxt.code.service;
import com.zdxt.code.domain.ComplaintStatistics;
import com.zdxt.code.domain.SearchType;
import java.util.List;
public interface ComplaintsReportService {
/**
* 获取投诉举报列表,合并两个投诉表的投诉部门
* @param searchType
* @return
*/
List<ComplaintStatistics> complaintGetComplaintDepartment(SearchType searchType);
/**
* 根据投诉统计id获取投诉举报详情
* @param id
* @return
*/
ComplaintStatistics complaintById(String id);
}

4
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ComplaintStatisticsImpl.java

@ -230,8 +230,8 @@ public class ComplaintStatisticsImpl implements ComplaintStatisticsService {
}
List<ComplaintStatistics> complaintStatisticsList=complaintStatisticsMapper.selectComplaintStatisticsGroup(complaintStatistics);
for (int i=0;i<complaintStatisticsList.size();i++){
if(deptMap.containsKey(complaintStatisticsList.get(i).complaintDepartmentId)){
complaintStatisticsList.get(i).setComplaintDepartment(deptMap.get(complaintStatisticsList.get(i).complaintDepartmentId).getDeptName());
if(deptMap.containsKey(complaintStatisticsList.get(i).getComplaintDepartmentId())){
complaintStatisticsList.get(i).setComplaintDepartment(deptMap.get(complaintStatisticsList.get(i).getComplaintDepartmentId()).getDeptName());
}/*else {
complaintStatisticsList.get(i).setComplaintDepartment(complaintStatisticsList.get(i).getComplaintDepartmentId());
}*/

84
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/ComplaintsReportServiceImpl.java

@ -0,0 +1,84 @@
package com.zdxt.code.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.zdxt.auth.project.system.dict.mapper.DictDataMapper;
import com.zdxt.auth.project.zdxtFile.mapper.ZdxtFileCommonMapper;
import com.zdxt.code.domain.ComplaintStatistics;
import com.zdxt.code.domain.EnterpriseComplaint;
import com.zdxt.code.domain.MssqOrderFlow;
import com.zdxt.code.domain.SearchType;
import com.zdxt.code.mapper.ComplaintStatisticsMapper;
import com.zdxt.code.mapper.EnterpriseComplaintMapper;
import com.zdxt.code.service.ComplaintsReportService;
import com.zdxt.code.service.IEnterpriseComplaintService;
import com.zdxt.common.zdxtFile.ZdxtFileCommon;
import com.zdxt.domain.auth.DictData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@Service
public class ComplaintsReportServiceImpl implements ComplaintsReportService {
@Autowired
private ComplaintStatisticsMapper complaintStatisticsMapper;
@Autowired
private EnterpriseComplaintMapper enterpriseComplaintMapper;
@Autowired
private ZdxtFileCommonMapper zdxtFileCommonMapper;
@Autowired
private DictDataMapper dictDataMapper;
@Autowired
private IEnterpriseComplaintService iEnterpriseComplaintService;
@Override
public List<ComplaintStatistics> complaintGetComplaintDepartment(SearchType searchType) {
List<ComplaintStatistics> list=complaintStatisticsMapper.complaintGetComplaintDepartment(searchType);
for(int i = 0; i<(Math.min(list.size(), searchType.getPageNumber() * searchType.getPageSize())); i++){
/* List<MssqOrderFlow> mssqOrderFlowList =iEnterpriseComplaintService.selectEnterpriseComplaintProcess(list.get(i).getCid());
if(mssqOrderFlowList.size()>0){
list.get(i).setProgress(mssqOrderFlowList.get(0).getOperName());
if(mssqOrderFlowList.get(0).getState()==20){
list.get(i).setResults("已处理");
}else{
list.get(i).setResults("处理中");
}
}*/
/* list.get(i).setProgress("市统一受理分拨中心");
list.get(i).setResults("拟交办/转送处理");*/
List<MssqOrderFlow> mssqOrderFlowList =iEnterpriseComplaintService.selectEnterpriseComplaintProcess(list.get(i).getCid());
if(mssqOrderFlowList.size()>0) {
list.get(i).setProgress(mssqOrderFlowList.get(0).getAppOrgShortname());
list.get(i).setResults(mssqOrderFlowList.get(0).getOperName());
}
}
return list;
}
@Override
public ComplaintStatistics complaintById(String id) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
ComplaintStatistics complaintStatistics = complaintStatisticsMapper.complaintGetComplaintDepartmentById(id);
EnterpriseComplaint enterpriseComplaint = enterpriseComplaintMapper.selectEnterpriseComplaintById(complaintStatistics.getCid());
ZdxtFileCommon zdxtFileCommon = new ZdxtFileCommon();
zdxtFileCommon.setBusinessId(complaintStatistics.getCid());
List<ZdxtFileCommon> zdxtFileCommonList = zdxtFileCommonMapper.selectZdxtFileList(zdxtFileCommon);
if (zdxtFileCommonList.size() > 0) {
complaintStatistics.setFileList(zdxtFileCommonList.stream().map(ZdxtFileCommon::getUploadPath).collect(Collectors.toList()));
}
String enforceTypeText = dictDataMapper.selectDictLabel("caseType", enterpriseComplaint.getEnforceType() + "");
if (enforceTypeText == null || enforceTypeText.isEmpty()) {
enterpriseComplaint.setEnforceTypeStr(enterpriseComplaint.getEnforceType() + "");
} else {
enterpriseComplaint.setEnforceTypeStr(enforceTypeText);
}
enterpriseComplaint.setCreateTimeStr(simpleDateFormat.format(enterpriseComplaint.getCreateTime()));
complaintStatistics.setEnterpriseComplaint(enterpriseComplaint);
return complaintStatistics;
}
}

27
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/ComplaintStatisticsMapper.xml

@ -18,6 +18,7 @@
<result property="linkman" column="linkman"/>
<result property="linkmanTel" column="linkman_tel"/>
<result property="enterpriseAddress" column="enterprise_address"/>
<result property="proWoCode" column="pro_wo_code"/>
</resultMap>
<sql id="selectComplaintStatisticsVo">
@ -160,4 +161,30 @@
</if>
</where>
</select>
<select id="complaintGetComplaintDepartment" parameterType="SearchType" resultMap="ComplaintStatisticsResult">
select (CASE WHEN c.rid IS NULL THEN c.complaint_department_id ELSE r.bureau_dept_id END) AS complaint_department_id,
(CASE WHEN c.rid IS NULL THEN c.complaint_department ELSE r.bureau_dept_name END) AS complaint_department,
c.enforce_type, c.problem_description,c.cid,c.id,ec.pro_wo_code from complaint_statistics c
left join (select id, bureau_dept_id, bureau_dept_name from enforcement_registration
where enterprise_number is not null and check_category is not null) r
on c.rid = r.id
left join enterprise_complaint ec
on c.cid=ec.id
<where>
and (c.rid is not null or c.complaint_department_id is not null)
and c.enforce_type is not null
and c.enterprise_number is not null
<if test="cType != null and cType != '' ">and c.enforce_type=#{cType}</if>
<if test="name != null and name != '' ">and( c.complaint_department like concat('%',#{name},'%') or r.bureau_dept_name like concat('%',#{name},'%') )</if>
</where>
</select>
<select id="complaintGetComplaintDepartmentById" parameterType="String" resultMap="ComplaintStatisticsResult">
select (CASE WHEN c.rid IS NULL THEN c.complaint_department_id ELSE r.bureau_dept_id END) AS complaint_department_id,
(CASE WHEN c.rid IS NULL THEN c.complaint_department ELSE r.bureau_dept_name END) AS complaint_department,c.cid,c.id
from (select * from complaint_statistics where id=#{id}) c
left join (select id, bureau_dept_id, bureau_dept_name
from enforcement_registration
where enterprise_number is not null and check_category is not null) r
on c.rid = r.id
</select>
</mapper>
Loading…
Cancel
Save