list=lawEnfOfficerMapper.selectLawEnfOfficerDetailsPageList(buildPage(pageQuery),bo);
return TableDataInfo.build(list);
}
+
+
+
+ /**
+ * 构建双列数据权限过滤条件:bureau_dept_id(执法单位)或 entrust_dept_id(委托执法部门)。
+ * 任一列在权限范围内即可保留记录。带 "AND " 前缀,可直接拼在现有 WHERE 条件后。
+ *
超管或 ViewAllDataRole 返回 null(不过滤)。
+ *
+ * @param tableAlias 表别名(不带点),无别名传 ""
+ * @return 拼接后的 "AND (...)" SQL片段;超管/全数据角色返回 null
+ */
+ private String buildDualColumnFilter(String tableAlias) {
+ String bureauFilter = DataFilterUtil.buildFilterSql(tableAlias, "bureau_dept_id", true, true);
+ if (bureauFilter == null) {
+ // 超管或 ViewAllDataRole,全部放行
+ return null;
+ }
+ String entrustFilter = DataFilterUtil.buildFilterSql(tableAlias, "entrust_dept_id", true, true);
+ return "AND (" + bureauFilter + " OR " + entrustFilter + ")";
+ }
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/report/impl/StatisticsInspectionPlanReportImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/report/impl/StatisticsInspectionPlanReportImpl.java
index 8f6ce40a..2c8fbb00 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/report/impl/StatisticsInspectionPlanReportImpl.java
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/report/impl/StatisticsInspectionPlanReportImpl.java
@@ -1,18 +1,30 @@
package com.zdxt.enforcementcode.report.impl;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zdxt.enforcementcode.common.util.DataFilterUtil;
+import com.zdxt.enforcementcode.domain.ZdxtFile;
import com.zdxt.enforcementcode.domain.bo.EnforcementInspectionProgramBo;
+import com.zdxt.enforcementcode.domain.bo.ZdxtFileBo;
+import com.zdxt.enforcementcode.domain.vo.ZdxtFileVo;
import com.zdxt.enforcementcode.domain.vo.report.*;
import com.zdxt.enforcementcode.mapper.EnforcementInspectionProgramMapper;
+import com.zdxt.enforcementcode.mapper.ZdxtFileMapper;
import com.zdxt.enforcementcode.report.IStatisticsInspectionPlanReport;
+import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.pdfbox.Loader;
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.PDDocumentInformation;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import java.io.FileInputStream;
+import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -32,6 +44,10 @@ import java.util.stream.Collectors;
public class StatisticsInspectionPlanReportImpl implements IStatisticsInspectionPlanReport {
private final EnforcementInspectionProgramMapper programMapper;
+ private final ZdxtFileMapper zdxtFileMapper;
+
+ @Value("${ruoyi.profile}")
+ private String urlProfile;
@Override
public InspectionPlanOverviewVo overview(EnforcementInspectionProgramBo bo) {
@@ -126,6 +142,44 @@ public class StatisticsInspectionPlanReportImpl implements IStatisticsInspection
}).collect(Collectors.toList());
}
+
+
+ @Override
+ public void previewFile(String id, HttpServletResponse response) {
+ LambdaQueryWrapper bo = new LambdaQueryWrapper<>();
+ bo.eq(ZdxtFile::getGuid, id);
+ List files = zdxtFileMapper.selectVoList(bo);
+ if (files.size() == 0) return;
+ String path = files.get(0).getUploadPath().replace("/profile", urlProfile);
+ OutputStream os=null;
+ try{
+ FileInputStream is=new FileInputStream(path);
+ response.reset();
+ response.setContentType("application/pdf;charset=UTF-8");
+ response.setHeader("Content-Disposition", "inline;filename=file." + path);
+ byte[] bs = new byte[is.available()];
+ is.read(bs);
+ os = response.getOutputStream();
+ PDDocument doc= Loader.loadPDF(bs);
+ PDDocumentInformation info =doc.getDocumentInformation();
+ info.setTitle("附件");
+ doc.setDocumentInformation(info);
+ doc.save(os);
+ doc.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ if(os!=null){
+ try{
+ os.flush();
+ os.close();
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
// ===== 私有方法 =====
/**
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/ComplaintsReportService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/ComplaintsReportService.java
new file mode 100644
index 00000000..fac6df4a
--- /dev/null
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/ComplaintsReportService.java
@@ -0,0 +1,22 @@
+package com.zdxt.enforcementcode.service;
+
+
+import com.zdxt.enforcementcode.domain.ComplaintStatistics;
+
+import java.util.List;
+
+public interface ComplaintsReportService {
+ /**
+ * 获取投诉举报列表,合并两个投诉表的投诉部门
+ * @param complaintStatistics
+ * @return
+ */
+ List complaintGetComplaintDepartment(ComplaintStatistics complaintStatistics);
+
+ /**
+ * 根据投诉统计id获取投诉举报详情
+ * @param id
+ * @return
+ */
+ ComplaintStatistics complaintById(String id);
+}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnterpriseComplaintService.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnterpriseComplaintService.java
index c63a8784..299cebe3 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnterpriseComplaintService.java
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/IEnterpriseComplaintService.java
@@ -1,5 +1,6 @@
package com.zdxt.enforcementcode.service;
+import com.zdxt.enforcementcode.domain.MssqOrderFlow;
import com.zdxt.enforcementcode.domain.vo.EnterpriseComplaintVo;
import com.zdxt.enforcementcode.domain.bo.EnterpriseComplaintBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -65,4 +66,12 @@ public interface IEnterpriseComplaintService {
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+
+ /**
+ * 查询执法投诉处置进度
+ *
+ * @param id 企业执法-在线投诉ID
+ * @return 企业执法-在线投诉
+ */
+ List selectEnterpriseComplaintProcess(String id);
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/ComplaintsReportServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/ComplaintsReportServiceImpl.java
new file mode 100644
index 00000000..bc19ab21
--- /dev/null
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/ComplaintsReportServiceImpl.java
@@ -0,0 +1,78 @@
+package com.zdxt.enforcementcode.service.impl;
+
+
+import com.zdxt.enforcementcode.domain.ComplaintStatistics;
+import com.zdxt.enforcementcode.domain.EnterpriseComplaint;
+import com.zdxt.enforcementcode.domain.ZdxtFile;
+import com.zdxt.enforcementcode.mapper.ComplaintStatisticsMapper;
+import com.zdxt.enforcementcode.mapper.EnterpriseComplaintMapper;
+import com.zdxt.enforcementcode.mapper.ZdxtFileMapper;
+import com.zdxt.enforcementcode.service.ComplaintsReportService;
+import com.zdxt.enforcementcode.service.IEnterpriseComplaintService;
+import org.dromara.system.mapper.SysDictDataMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class ComplaintsReportServiceImpl implements ComplaintsReportService {
+ @Autowired
+ private ComplaintStatisticsMapper complaintStatisticsMapper;
+ @Autowired
+ private EnterpriseComplaintMapper enterpriseComplaintMapper;
+ @Autowired
+ private ZdxtFileMapper zdxtFileCommonMapper;
+ @Autowired
+ private SysDictDataMapper dictDataMapper;
+ @Autowired
+ private IEnterpriseComplaintService iEnterpriseComplaintService;
+
+
+ /**
+ * 获取投诉部门
+ * @param complaintStatistics
+ * @return
+ */
+ @Override
+ public List complaintGetComplaintDepartment(ComplaintStatistics complaintStatistics) {
+ List list=complaintStatisticsMapper.complaintGetComplaintDepartment(complaintStatistics);
+ return list;
+ }
+
+
+ /**
+ * 获取投诉信息
+ * @param id
+ * @return
+ */
+ @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());
+ ZdxtFile zdxtFileCommon = new ZdxtFile();
+ zdxtFileCommon.setBusinessId(complaintStatistics.getCid());
+ List zdxtFileCommonList = zdxtFileCommonMapper.selectZdxtFileList(zdxtFileCommon);
+ if (zdxtFileCommonList.size() > 0) {
+ complaintStatistics.setFileList(zdxtFileCommonList.stream().map(ZdxtFile::getUploadPath).collect(Collectors.toList()));
+ }
+ if(enterpriseComplaint.getEnforceType()!=null) {
+ String enforceTypeText = dictDataMapper.selectDictLabel("caseType", enterpriseComplaint.getEnforceType() + "");
+ if (enforceTypeText == null || enforceTypeText.isEmpty()) {
+
+ enterpriseComplaint.setEnforceTypeStr(enterpriseComplaint.getEnforceType() + "");
+ } else {
+ enterpriseComplaint.setEnforceTypeStr(enforceTypeText);
+ }
+ }else{
+ enterpriseComplaint.setEnforceTypeStr(" ");
+ }
+ enterpriseComplaint.setCreateTimeStr(simpleDateFormat.format(enterpriseComplaint.getCreateTime()));
+ complaintStatistics.setEnterpriseComplaint(enterpriseComplaint);
+ return complaintStatistics;
+ }
+}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java
index ada4ef96..32f25e49 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnforcementRegistrationServiceImpl.java
@@ -18,6 +18,7 @@ import com.zdxt.enforcementcode.domain.bo.EnforcementRegistrationQueryBo;
import com.zdxt.enforcementcode.domain.vo.*;
import com.zdxt.enforcementcode.domain.vo.enterprise.*;
import com.zdxt.enforcementcode.mapper.*;
+import com.zdxt.enforcementcode.service.ISjIndivCreditRatingInfoService;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
@@ -67,6 +68,7 @@ public class EnforcementRegistrationServiceImpl implements IEnforcementRegistrat
private final ZdxtFileMapper zdxtFileMapper;
private final SysDeptMapper sysDeptMapper;
private final EnterpriseInformationMapper enterpriseInformationMapper;
+ private final ISjIndivCreditRatingInfoService sjIndivCreditRatingInfoService;
/**
@@ -716,7 +718,10 @@ public class EnforcementRegistrationServiceImpl implements IEnforcementRegistrat
});
}
-
+ // 查风险信用等级(异步执行,不阻塞执法登记保存)
+ if (bo.getLawEnforceCategory().equals("1")){
+ sjIndivCreditRatingInfoService.insertRiskCreditWarningInfoAsync(bo);
+ }
return resNum;
}
@@ -1034,6 +1039,12 @@ public class EnforcementRegistrationServiceImpl implements IEnforcementRegistrat
zdxtFileMapper.insertZdxtFile(zdxtFile);
});
}
+
+ // 查风险信用等级
+ if (bo.getLawEnforceCategory().equals("1")){
+ sjIndivCreditRatingInfoService.insertRiskCreditWarningInfoAsync(bo);
+ }
+
return i;
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnterpriseComplaintServiceImpl.java b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnterpriseComplaintServiceImpl.java
index c5fd277a..c524f8f5 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnterpriseComplaintServiceImpl.java
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/java/com/zdxt/enforcementcode/service/impl/EnterpriseComplaintServiceImpl.java
@@ -1,5 +1,12 @@
package com.zdxt.enforcementcode.service.impl;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.zdxt.enforcementcode.domain.MssqAddOrder;
+import com.zdxt.enforcementcode.domain.MssqOrderFlow;
+import com.zdxt.enforcementcode.domain.bo.MssqAddOrderBo;
+import com.zdxt.enforcementcode.service.IMssqApiService;
+import org.apache.commons.compress.utils.Lists;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -16,6 +23,7 @@ import com.zdxt.enforcementcode.domain.EnterpriseComplaint;
import com.zdxt.enforcementcode.mapper.EnterpriseComplaintMapper;
import com.zdxt.enforcementcode.service.IEnterpriseComplaintService;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Collection;
@@ -32,6 +40,7 @@ import java.util.Collection;
public class EnterpriseComplaintServiceImpl implements IEnterpriseComplaintService {
private final EnterpriseComplaintMapper baseMapper;
+ private final IMssqApiService mssqApiService;
/**
* 查询企业执法-在线投诉
@@ -152,4 +161,37 @@ public class EnterpriseComplaintServiceImpl implements IEnterpriseComplaintServi
}
return baseMapper.deleteByIds(ids) > 0;
}
+
+ @Override
+ public List selectEnterpriseComplaintProcess(String id) {
+ EnterpriseComplaint enterpriseComplaint = baseMapper.selectEnterpriseComplaintById(id);
+ if(StringUtils.isNotEmpty(enterpriseComplaint.getProWoCode())){
+ log.info("查询投诉信息:{}", JSONObject.toJSONString(enterpriseComplaint));
+ //查询民生诉求接口 获取处置进度,判断是否存在诉求工单编码
+
+ log.info("查询工单编码:{}",enterpriseComplaint.getProWoCode());
+ //查询工单处置流程信息
+ MssqAddOrderBo mssqAddOrder = new MssqAddOrderBo();
+ mssqAddOrder.setProWoCode(enterpriseComplaint.getProWoCode());
+ String s = null;
+ try {
+ //查询进度详细信息 TODO 异常捕捉之后,前端超时
+ s = mssqApiService.queryMssq(mssqAddOrder, "/api/API_YX/proProcess/queryAppInfo");
+ log.info("查询工单信息结果返回:{}",s);
+ JSONObject jsonObject = JSONObject.parseObject(s);
+ //获取进度数据
+ List approveDatas1 =
+ JSONArray.parseArray(jsonObject.getString("approveDatas"), MssqOrderFlow.class);
+ //列表排序反转
+ Collections.reverse(approveDatas1);
+ enterpriseComplaint.setMssqOrderFlows(approveDatas1);
+ return approveDatas1;
+ } catch (Exception e) {
+ e.printStackTrace();
+ log.info("查询工单信息结果异常,{}",s);
+ }
+
+ }
+ return Lists.newArrayList();
+ }
}
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnterpriseComplaintMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnterpriseComplaintMapper.xml
index 0c71e9cd..8cb8060a 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnterpriseComplaintMapper.xml
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/EnterpriseComplaintMapper.xml
@@ -3,4 +3,45 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, rel_id, enforce_type, problem_description, enterprise_address, linkman,
+ linkman_tel, com_or_opi, authorization, create_time, pro_wo_code,enterprise_number,
+ enterprise_name,status,evaluate_time,complaint_departments,complaint_department_ids,
+ enforcement_time,handle_time,complaint_type,complaint_item_codes,complaint_item_names,complaint_record_item,
+ record_type
+ from enterprise_complaint
+
+
+
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/ZdxtFileMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/ZdxtFileMapper.xml
index e33f8054..6a821c80 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/ZdxtFileMapper.xml
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/ZdxtFileMapper.xml
@@ -3,6 +3,32 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -65,4 +91,41 @@
#{businessId}
+
+
+ select guid, business_id, sort_code, file_name, upload_person_id, upload_person_name, upload_path, upload_time, org_code, org_name, file_type, file_suffix, file_save_name, file_size, file_remark, update_time, update_person_name, is_delete2, expand1, expand2, expand3, sass_id from zdxt_file
+
+
+
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/report/ComplaintStatisticsReportMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/report/ComplaintStatisticsReportMapper.xml
index 69fc7bb7..2444c89d 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/report/ComplaintStatisticsReportMapper.xml
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/report/ComplaintStatisticsReportMapper.xml
@@ -145,5 +145,36 @@
${dataFilter}
+
+
+
diff --git a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/report/EnforcementRegistrationEINOFTReportMapper.xml b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/report/EnforcementRegistrationEINOFTReportMapper.xml
index 23d4c45e..279837a2 100644
--- a/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/report/EnforcementRegistrationEINOFTReportMapper.xml
+++ b/zdxt-modules/zdxt-enforcement-code/src/main/resources/mapper/enforcementcode/report/EnforcementRegistrationEINOFTReportMapper.xml
@@ -44,8 +44,11 @@
GROUP BY er.enterprise_number, er.enterprise_name, er.district, er.street
) t
-
- AND t.num >= #{bo.num}
+
+ AND t.num >= #{bo.numMin}
+
+
+ AND t.num >= #{bo.numMax}
ORDER BY t.num DESC, t.enforcement_time DESC
diff --git a/zdxt-modules/zdxt-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java b/zdxt-modules/zdxt-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java
index 8b5084ee..3afd7b7e 100644
--- a/zdxt-modules/zdxt-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java
+++ b/zdxt-modules/zdxt-system/src/main/java/org/dromara/system/mapper/SysDictDataMapper.java
@@ -1,6 +1,7 @@
package org.dromara.system.mapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.apache.ibatis.annotations.Param;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.system.domain.SysDictData;
import org.dromara.system.domain.bo.SysDictDataBo;
@@ -36,4 +37,14 @@ public interface SysDictDataMapper extends BaseMapperPlus
+
+