Procházet zdrojové kódy

Merge branch 'dev'

huhu před 1 měsícem
rodič
revize
c1e119e82f
22 změnil soubory, kde provedl 549 přidání a 105 odebrání
  1. 4 0
      sql/zfjq_2024122701.sql
  2. 3 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/other/EnforceObjArchitectureRelate.java
  3. 4 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/other/EnforceObjArchitectureRelateHis.java
  4. 4 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/other/WReport.java
  5. 2 2
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceOrgAverageTimeDto.java
  6. 9 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforcementJobProcessQuery.java
  7. 3 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/EnforceObjArchitectureRelateAdd.java
  8. 3 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/EnforceObjArchitectureRelateUpdate.java
  9. 213 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/ObjArchitectureDTO.java
  10. 5 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/WReportDto.java
  11. 8 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/vo/other/WReportVo.java
  12. 13 2
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceSuperviseController.java
  13. 23 2
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/EnforceObjArchitectureRelateController.java
  14. 10 2
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/WReportController.java
  15. 5 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/other/WReportMapper.java
  16. 4 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/EnforceObjArchitectureRelateServiceImpl.java
  17. 14 4
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/WReportServiceImpl.java
  18. 156 87
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/pdf/PDFServiceImpl.java
  19. 4 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/other/WReportBizService.java
  20. 8 4
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/utils/seal/SealSignUtils.java
  21. 16 2
      zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/job/EnforceSuperviseMapper.xml
  22. 38 0
      zfjg-modules/zfjg-manage/src/main/resources/mapper/other/WreportMapper.xml

+ 4 - 0
sql/zfjq_2024122701.sql

@@ -0,0 +1,4 @@
+ALTER TABLE enforce_obj_architecture_relate ADD `architecture_name` varchar(512) DEFAULT NULL COMMENT '建筑名称';
+ALTER TABLE enforce_obj_architecture_relate_his ADD `before_architecture_name` varchar(512) DEFAULT NULL COMMENT '更正前建筑名称';
+ALTER TABLE enforce_obj_architecture_relate_his ADD `after_architecture_name` varchar(512) DEFAULT NULL COMMENT '更正后建筑名称';
+ALTER TABLE w_report ADD `clue_resource` varchar(50) DEFAULT NULL COMMENT '线索来源(SUPERVISE-内部执法监督,REPORT-举报投诉,RECONSIDERATION-复议、诉讼,PATROL-上级巡察,SUPERVISION-上级督导,上级考评-EVALUATE,FIREINVESTIGATION-火灾事故调查,OTHER-其他工作中)';

+ 3 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/other/EnforceObjArchitectureRelate.java

@@ -41,6 +41,9 @@ public class EnforceObjArchitectureRelate implements Serializable {
     @ApiModelProperty("建筑uuid")
     private String architectureUuid;
 
+    @ApiModelProperty("建筑名称")
+    private String architectureName;
+
     @ApiModelProperty("关系类型:0入驻关系 ,1管理关系")
     private Integer relateType;
 

+ 4 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/other/EnforceObjArchitectureRelateHis.java

@@ -42,6 +42,8 @@ public class EnforceObjArchitectureRelateHis implements Serializable {
     @ApiModelProperty("更正前建筑uuid")
     private String beforeArchitectureUuid;
 
+    @ApiModelProperty("更正前建筑名称")
+    private String beforeArchitectureName;
 
     @ApiModelProperty("关系类型:0入驻关系 ,1管理关系")
     private Integer beforeRelateType;
@@ -52,6 +54,8 @@ public class EnforceObjArchitectureRelateHis implements Serializable {
     @ApiModelProperty("更正后建筑uuid")
     private String afterArchitectureUuid;
 
+    @ApiModelProperty("更正后建筑名称")
+    private String afterArchitectureName;
 
     @ApiModelProperty("关系类型:0入驻关系 ,1管理关系")
     private Integer afterRelateType;

+ 4 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/other/WReport.java

@@ -94,5 +94,9 @@ public class WReport implements Serializable {
 
     private String remark;
 
+    @ApiModelProperty("线索来源(SUPERVISE-内部执法监督,REPORT-举报投诉,RECONSIDERATION-复议、诉讼," +
+            "PATROL-上级巡察,SUPERVISION-上级督导,上级考评-EVALUATE,FIREINVESTIGATION-火灾事故调查,OTHER-其他工作中)")
+    private String clueResource;
+
 
 }

+ 2 - 2
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceOrgAverageTimeDto.java

@@ -15,11 +15,11 @@ public class EnforceOrgAverageTimeDto {
     private String orgName;
 
     @Excel(name = "支队平均时长")
-    @ApiModelProperty("支队平均时长")
+    @ApiModelProperty("平均移动端检查时长")
     private String orgAvgTime;
 
     @Excel(name = "视频时长")
-    @ApiModelProperty("视频时长")
+    @ApiModelProperty("平均执法记录仪时长")
     private String headCorpsAvgTime;
 
     @ApiModelProperty("视频时长与检查终端时长的比值")

+ 9 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforcementJobProcessQuery.java

@@ -1,5 +1,6 @@
 package com.zfjg.manage.api.dto.enforce.job;
 
+import com.zfjg.common.core.annotation.Excel;
 import com.zfjg.common.core.web.page.PageQuery;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -60,4 +61,12 @@ public class EnforcementJobProcessQuery extends PageQuery {
 
     private Boolean process;
 
+    /**
+     * 单位规模 1-高危火灾单位,2-消防安全重点单位,3-派出所列管单位,4-其他单位
+     * 重点单位:消防安全重点单位
+     * 其他单位:派出所列管单位和其他单位
+     */
+    @ApiModelProperty(value = "important-重点单位,other-其他单位")
+    private String enforceObjType;
+
 }

+ 3 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/EnforceObjArchitectureRelateAdd.java

@@ -27,6 +27,9 @@ public class EnforceObjArchitectureRelateAdd implements Serializable {
     @ApiModelProperty("建筑uuid")
     private String architectureUuid;
 
+    @ApiModelProperty("建筑名称")
+    private String architectureName;
+
     @ApiModelProperty("关系类型:0入驻关系 ,1管理关系")
     private Integer relateType;
 

+ 3 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/EnforceObjArchitectureRelateUpdate.java

@@ -27,6 +27,9 @@ public class EnforceObjArchitectureRelateUpdate implements Serializable {
     @ApiModelProperty("建筑uuid")
     private String architectureUuid;
 
+    @ApiModelProperty("建筑名称")
+    private String architectureName;
+
     @ApiModelProperty("关系类型:0入驻关系 ,1管理关系")
     private Integer relateType;
 

+ 213 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/ObjArchitectureDTO.java

@@ -0,0 +1,213 @@
+package com.zfjg.manage.api.dto.other;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+
+@Data
+@ApiModel("建筑详情")
+@Accessors(chain = true)
+public class ObjArchitectureDTO {
+
+    @ApiModelProperty("id")
+    private Long id;
+    @ApiModelProperty("社会单位id(管理单位id)")
+    private Long socialUnitId;
+    @ApiModelProperty("支队id")
+    private Long organizationId;
+    @ApiModelProperty("建筑名称")
+    private String architectureName;
+    @ApiModelProperty("建筑高度")
+    private Double architectureHeight;
+    @ApiModelProperty("建筑面积")
+    private Double architectureArea;
+    @ApiModelProperty("地上楼层数")
+    private Integer floorGround;
+    @ApiModelProperty("吊层数")
+    private Integer hangingLayer;
+    @ApiModelProperty("地下楼层数")
+    private Integer floorUnderground;
+    @ApiModelProperty("楼层总数")
+    private Integer floorTotal;
+    @ApiModelProperty("建筑类别")
+    private String buildingType;
+    @ApiModelProperty("建造年代")
+    private String buildEra;
+    @ApiModelProperty("区id")
+    private Long regionId;
+    @ApiModelProperty("区名称")
+    private String regionName;
+    @ApiModelProperty("街道id")
+    private Long streetId;
+    @ApiModelProperty("街道名称")
+    private String streetName;
+    @ApiModelProperty("详细地址")
+    private String address;
+
+    @ApiModelProperty("专用配电间个数")
+    private Integer powerDistributionNum;
+    @ApiModelProperty("专用配电间位置")
+    private String powerDistributionLocation;
+    @ApiModelProperty("消防水泵房间数")
+    private Integer firePumpNum;
+    @ApiModelProperty("消防水泵房位置")
+    private String firePumpLocation;
+    @ApiModelProperty("避难层个数")
+    private Integer hideFloorNum;
+    @ApiModelProperty("避难层位置")
+    private String hideFloorPosition;
+    @ApiModelProperty("消防控制室个数")
+    private Integer fireControlNum;
+    @ApiModelProperty("消防控制室位置")
+    private String fireControlPosition;
+    @ApiModelProperty("发电机房个数")
+    private Integer generatorNum;
+    @ApiModelProperty("发电机房位置")
+    private String generatorPosition;
+    @ApiModelProperty("其他重要设备房数量")
+    private Integer otherImportantNum;
+    @ApiModelProperty("其他重要设备房位置")
+    private String otherImportantPosition;
+    @ApiModelProperty("审核状态:;1.待审核2.已驳回;3.已审核")
+    private Integer auditStatus;
+    @ApiModelProperty("审核拒绝原因")
+    private String rejectReason;
+    @ApiModelProperty("备注信息")
+    private String remark;
+    @ApiModelProperty("消防安全责任人")
+    private String fireDutyerName;
+    @ApiModelProperty("消防安全责任人联系方式")
+    private String fireDutyerPhone;
+    @ApiModelProperty("消防安全管理人")
+    private String fireManagerName;
+    @ApiModelProperty("消防安全管理人联系方式")
+    private String fireManagerPhone;
+    @ApiModelProperty("经度")
+    private String lon;
+    @ApiModelProperty("纬度")
+    private String lat;
+    @ApiModelProperty("火灾危险性")
+    private String fireDanger;
+    @ApiModelProperty("耐火等级")
+    private String fireProof;
+    @ApiModelProperty("结构类型")
+    private String structureType;
+    @ApiModelProperty("毗邻建筑物情况")
+    private String abutBuild;
+    @ApiModelProperty("安全出口位置")
+    private String emergencyExit;
+    @ApiModelProperty("安全出口形式")
+    private String emergencyExitType;
+    @ApiModelProperty("消防电梯数量")
+    private Integer fireLiftNum;
+    @ApiModelProperty("安全出口数量")
+    private Long emergencyExitNum;
+    @ApiModelProperty("日常工作时间人数")
+    private Integer workerNum;
+    @ApiModelProperty("最大容纳人数")
+    private Integer accommodateMaxNum;
+    @ApiModelProperty("储存物名称")
+    private String storageName;
+    @ApiModelProperty("消防电梯容纳总重量")
+    private Integer lifeAccommodateNum;
+    @ApiModelProperty("储存物性质")
+    private String storageNameNature;
+    @ApiModelProperty("储存物形态")
+    private String storageType;
+    @ApiModelProperty("储存容积")
+    private Double storageVolume;
+    @ApiModelProperty("储存物数量")
+    private Integer storageNum;
+    @ApiModelProperty("主要产品")
+    private String products;
+    @ApiModelProperty("主要原料")
+    private String rawMaterial;
+    @ApiModelProperty("建筑立面图id")
+    private String facadeId;
+    @ApiModelProperty("消防设施平面布置图")
+    private String planeId;
+    @ApiModelProperty("建筑平面图")
+    private String buildPlaneId;
+
+    @ApiModelProperty("消防安全责任人照片id")
+    private String fireDutyerImg;
+    @ApiModelProperty("消防安全管理人照片id")
+    private String fireManagerImg;
+    @ApiModelProperty("产权人")
+    private String propertyer;
+    @ApiModelProperty("产权人联系方式")
+    private String propertyerPhone;
+    @ApiModelProperty("产权人身份证号码")
+    private String propertyerCard;
+    @ApiModelProperty("产权人照片id")
+    private String propertyerPhotoId;
+    @ApiModelProperty("消防安全责任人身份证号码")
+    private String fireDutyerCard;
+    @ApiModelProperty("消防安全管理人身份证号码")
+    private String fireManagerCard;
+    @ApiModelProperty("建筑编码")
+    private String buildCode;
+
+    @ApiModelProperty("大数据高层建筑ID")
+    private Long dbId;
+
+
+
+    @ApiModelProperty("建筑性质:1民用 2公共 3工业")
+    private Integer architectureNature;
+
+    @ApiModelProperty("建筑用途")
+    private String architectureUse;
+
+    @ApiModelProperty("占地面积")
+    private Double floorArea;
+
+    @ApiModelProperty("是否有消控室:1是 2否")
+    private Integer hasFireControlRoom;
+
+    @ApiModelProperty("是否有微型消防站:1是 2否")
+    private Integer hasMiniFireStation;
+
+    @ApiModelProperty("存储/生产物物品类别")
+    private String productType;
+
+    @ApiModelProperty("建筑群id")
+    private Long buildGroupsId;
+
+    @ApiModelProperty("建筑类型:1高层建筑 2自建房")
+    private String type;
+
+    @ApiModelProperty("消防安全管理形式")
+    private String managementForm;
+
+    @ApiModelProperty("住房间数")
+    private Long rooms;
+
+    @ApiModelProperty("住宿人数")
+    private Long accommodation;
+
+    @ApiModelProperty("工作人员数量")
+    private Long staffs;
+
+    @ApiModelProperty("疏散楼梯数")
+    private Long escapeStairs;
+
+    @ApiModelProperty("建筑群(小区)")
+    private String buildGroupsName;
+
+    @ApiModelProperty("楼栋")
+    private String floor;
+
+    @ApiModelProperty("大数据工商ID")
+    private String gsid;
+
+    @ApiModelProperty("数据来源")
+    private String source;
+
+    private String uuid;
+
+}

+ 5 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/other/WReportDto.java

@@ -52,4 +52,9 @@ public class WReportDto {
     private String year;
 
     private String remark;
+
+
+    @ApiModelProperty("线索来源(SUPERVISE-内部执法监督,REPORT-举报投诉,RECONSIDERATION-复议、诉讼," +
+            "PATROL-上级巡察,SUPERVISION-上级督导,上级考评-EVALUATE,FIREINVESTIGATION-火灾事故调查,OTHER-其他工作中)")
+    private String clueResource;
 }

+ 8 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/vo/other/WReportVo.java

@@ -17,6 +17,7 @@ public class WReportVo {
     private String orgId;
 
     @Excel(name = "执法机构")
+    @ApiModelProperty("执法机构")
     private String orgName;
 
     @Excel(name = "过错责任人")
@@ -25,12 +26,15 @@ public class WReportVo {
     private String cUser;
 
     @Excel(name = "不当履行职责次数")
+    @ApiModelProperty("不当履行职责次数")
     private Integer dCount;
 
     @Excel(name = "未履行职责次数")
+    @ApiModelProperty("未履行职责次数")
     private Integer nCount;
 
     @Excel(name = "违法履行职责次数")
+    @ApiModelProperty("违法履行职责次数")
     private Integer wCount;
 
     @Excel(name = "处理次数")
@@ -45,4 +49,8 @@ public class WReportVo {
     private String year;
 
     private String remark;
+
+
+    @ApiModelProperty("过错责任人次数")
+    private String wUserCount;
 }

+ 13 - 2
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceSuperviseController.java

@@ -15,6 +15,8 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -159,7 +161,7 @@ public class EnforceSuperviseController {
                 }
             }
         });
-        enforceOrgTimeoutDtos.sort(Comparator.comparing(EnforceOrgTimeoutDto::getAllCount).thenComparing(EnforceOrgTimeoutDto::getOrgId));
+        enforceOrgTimeoutDtos.sort(Comparator.comparing(EnforceOrgTimeoutDto::getAllCount).reversed().thenComparing(EnforceOrgTimeoutDto::getOrgId));
         return R.ok(enforceOrgTimeoutDtos);
     }
 
@@ -200,7 +202,15 @@ public class EnforceSuperviseController {
             enforceAverageTimeDto.setOrgAvgTime(String.format("%.2f", orgAvgTime / enforceAverageTimes.size()));
             enforceAverageTimeDto.setHeadCorpsAvgTime(String.format("%.2f", headCorpsAvgTime / enforceAverageTimes.size()));
             try {
-                enforceAverageTimeDto.setRate(String.format("%.2f", (headCorpsAvgTime / enforceAverageTimes.size()) *100/(orgAvgTime / enforceAverageTimes.size())));
+                double  num1 = Double.valueOf(enforceAverageTimeDto.getHeadCorpsAvgTime());
+                double  num2 = Double.valueOf(enforceAverageTimeDto.getOrgAvgTime());
+                // 使用BigDecimal进行除法运算
+                BigDecimal result = new BigDecimal(num1).divide(new BigDecimal(num2), 4, RoundingMode.HALF_UP);
+                // 将结果乘以100转换为百分比形式
+                BigDecimal percentage = result.multiply(new BigDecimal("100"));
+                // 设置最终结果保留两位小数
+                String formattedPercentage = percentage.setScale(2, RoundingMode.HALF_UP).toString();
+                enforceAverageTimeDto.setRate(formattedPercentage);
             } catch (Exception e) {
                 log.info("计算视频时长与检查终端时长的比值异常:", e);
             }
@@ -209,6 +219,7 @@ public class EnforceSuperviseController {
         return R.ok(enforceAverageTimes);
     }
 
+
     @ApiOperation(value = "检查时长导出")
     @GetMapping(value = "/enforcement/average-time/export")
     public void selectEnforceAverageTimeExport(HttpServletResponse response, EnforcementJobProcessQuery query) {

+ 23 - 2
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/EnforceObjArchitectureRelateController.java

@@ -42,9 +42,9 @@ public class EnforceObjArchitectureRelateController extends BaseController {
     @PostMapping("/enforceObjArchitectureRelate")
     public R<Boolean> save(@RequestBody EnforceObjArchitectureRelateAdd add) {
         EnforceObjArchitectureRelate enforceObjArchitectureRelate = enforceObjArchitectureRelateService.getOne(new LambdaQueryWrapper<EnforceObjArchitectureRelate>()
-                .eq(EnforceObjArchitectureRelate::getEnforceObjId, add.getEnforceObjId()));
+                .eq(EnforceObjArchitectureRelate::getEnforceObjId, add.getEnforceObjId()).eq(EnforceObjArchitectureRelate::getRelateType,add.getRelateType()));
         if (null != enforceObjArchitectureRelate) {
-            return R.fail("该单位已关联过建筑");
+            return R.ok(true);
         }
         return R.ok(enforceObjArchitectureRelateService.insertEnforceObjArchitectureRelate(add));
     }
@@ -61,6 +61,7 @@ public class EnforceObjArchitectureRelateController extends BaseController {
 //        return R.ok(enforceObjArchitectureRelateService.removeById(id));
 //    }
 
+    // todo 这个接口可能没用
     @ApiOperation(value="根据单位id查询建筑信息")
     @GetMapping("/enforceObjArchitectureRelate/{enforceObjId}")
     public R<ArchitectureDTO> get(@PathVariable String enforceObjId) {
@@ -122,6 +123,26 @@ public class EnforceObjArchitectureRelateController extends BaseController {
 //        return R.ok(list);
 //    }
 
+    @ApiOperation(value="根据单位id查询关联的建筑列表")
+    @GetMapping("/enforceObjArchitectureRelate/architecture/{enforceObjId}")
+    public R<List<EnforceObjArchitectureRelate>> getArchitecturelist(@PathVariable String enforceObjId) {
+        List<EnforceObjArchitectureRelate> list = enforceObjArchitectureRelateService.list(new LambdaQueryWrapper<EnforceObjArchitectureRelate>()
+                .eq(EnforceObjArchitectureRelate::getEnforceObjId,enforceObjId).groupBy(EnforceObjArchitectureRelate::getRelateType));
+        list.forEach(e->{
+            ArchitectureDTO dto = architectureService.getArchitectureDTO(e.getArchitectureUuid());
+            if (dto != null) {
+                e.setArchitectureName(dto.getArchitectureName());
+            }
+        });
+        return R.ok(list);
+    }
+
+    @ApiOperation(value="解除绑定(解除单位和建筑的绑定)")
+    @GetMapping("/enforceObjArchitectureRelate/unbind/{id}")
+    public R<Boolean> unbind(@PathVariable Long id) {
+        return R.ok(enforceObjArchitectureRelateService.removeById(id));
+    }
+
 
 
 

+ 10 - 2
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/other/WReportController.java

@@ -118,7 +118,8 @@ public class WReportController extends BaseController {
             wReportDto.setWrongCategory1(Optional.ofNullable(it.getWTypeT()).map(item -> JSON.parseArray(item).toJavaList(Map.class)).orElseGet(ArrayList::new));
             wReportDto.setNotCategory1(Optional.ofNullable(it.getNTypeT()).map(item -> JSON.parseArray(item).toJavaList(Map.class)).orElseGet(ArrayList::new));
             wReportDto.setBreakLawCategory1(Optional.ofNullable(it.getSTypeT()).map(item -> JSON.parseArray(item).toJavaList(Map.class)).orElseGet(ArrayList::new));
-
+            wReportDto.setYear(it.getYear());
+            wReportDto.setClueResource(it.getClueResource());
             return wReportDto;
         }).collect(Collectors.toList());
         return R.ok(wReportDtos);
@@ -142,5 +143,12 @@ public class WReportController extends BaseController {
         return wReportBizService.listReport(wReportQuery);
     }
 
+    @ApiOperation(value = "根据机构分组查询过错列表")
+    @GetMapping("/org/list")
+    public R<List<WReportVo>> getWreportList(WReportQuery wReportQuery) {
+        return R.ok(wReportBizService.getWreportList(wReportQuery));
+    }
+
 
-}
+
+    }

+ 5 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/other/WReportMapper.java

@@ -2,6 +2,10 @@ package com.zfjg.manage.mapper.other;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zfjg.manage.api.domain.other.WReport;
+import com.zfjg.manage.api.vo.other.WReportVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -13,5 +17,6 @@ import com.zfjg.manage.api.domain.other.WReport;
  */
 public interface WReportMapper extends BaseMapper<WReport> {
 
+    List<WReportVo> getWreportList(@Param("enforceOrgIds") List<String> enforceOrgIds,@Param("year")String year);
 
 }

+ 4 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/EnforceObjArchitectureRelateServiceImpl.java

@@ -75,6 +75,7 @@ public class EnforceObjArchitectureRelateServiceImpl extends ServiceImpl<Enforce
         //第一次记录,没有变更前的原始值
         his.setAfterArchitectureId(param.getArchitectureId());
         his.setAfterArchitectureUuid(param.getArchitectureUuid());
+        his.setAfterArchitectureName(param.getArchitectureName());
         his.setAfterRelateType(param.getRelateType());
         enforceObjArchitectureRelateHisService.save(his);
         return super.save(param);
@@ -98,14 +99,17 @@ public class EnforceObjArchitectureRelateServiceImpl extends ServiceImpl<Enforce
         his.setCreateTime(new Date());
         his.setBeforeArchitectureId(dt.getArchitectureId());
         his.setBeforeArchitectureUuid(dt.getArchitectureUuid());
+        his.setBeforeArchitectureName(dt.getArchitectureName());
         his.setBeforeRelateType(dt.getRelateType());
         his.setAfterArchitectureId(param.getArchitectureId());
         his.setAfterArchitectureUuid(param.getArchitectureUuid());
+        his.setAfterArchitectureName(param.getArchitectureName());
         his.setAfterRelateType(param.getRelateType());
         enforceObjArchitectureRelateHisService.save(his);
 
         dt.setArchitectureId(param.getArchitectureId());
         dt.setArchitectureUuid(param.getArchitectureUuid());
+        dt.setArchitectureName(param.getArchitectureName());
         dt.setUpdateUserId(user.getUid());
         dt.setUpdateUserName(user.getUserName());
         dt.setUpdateTime(new Date());

+ 14 - 4
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/other/WReportServiceImpl.java

@@ -23,14 +23,12 @@ import com.zfjg.system.api.RemoteUserService;
 import com.zfjg.system.api.domain.SysDept;
 import com.zfjg.system.api.domain.SysUser;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -46,6 +44,9 @@ import java.util.stream.Collectors;
 public class WReportServiceImpl extends ServiceImpl<WReportMapper, WReport> implements IWReportService, WReportBizService {
     @Resource
     private RemoteUserService remoteUserService;
+    @Autowired
+    private WReportMapper wReportMapper;
+
 
     @Override
     public String addReport(WReportDto reportDto) {
@@ -329,4 +330,13 @@ public class WReportServiceImpl extends ServiceImpl<WReportMapper, WReport> impl
         return this.getById(id);
     }
 
+    @Override
+    public List<WReportVo> getWreportList(WReportQuery query) {
+        List<String> enforceOrgIds = new ArrayList<>();
+        if (StringUtils.isNotEmpty(query.getOrgId())) {
+            enforceOrgIds = Arrays.asList(query.getOrgId().split(","));
+        }
+        return wReportMapper.getWreportList(enforceOrgIds,query.getYear());
+    }
+
 }

+ 156 - 87
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/pdf/PDFServiceImpl.java

@@ -133,24 +133,25 @@ public class PDFServiceImpl implements IPDFService {
         Map<String,Object> map ;
         File file ;
         ManageSysFile sysFileDto ;
+        Map<String, String> companyNameMap = new HashMap<>();
         switch (type) {
             case "checkTable":
-                map = modelCheckTemplate(templateType, jobId);
+                map = modelCheckTemplate(templateType, jobId, companyNameMap);
                 file = (File) map.get("file");
                 sysFileDto = (ManageSysFile) map.get("sysFileDto");
                 break;
             case "limitTable":
-                map = modelLimitTemplate(templateType, jobId);
+                map = modelLimitTemplate(templateType, jobId, companyNameMap);
                 file = (File) map.get("file");
                 sysFileDto = (ManageSysFile) map.get("sysFileDto");
                 break;
             case "numerousTable":
-                map = modelNumsTemplate(templateType, jobId);
+                map = modelNumsTemplate(templateType, jobId, companyNameMap);
                 file = (File) map.get("file");
                 sysFileDto = (ManageSysFile) map.get("sysFileDto");
                 break;
             case "nowTable":
-                map = modelImmediately(templateType, jobId);
+                map = modelImmediately(templateType, jobId, companyNameMap);
                 file = (File) map.get("file");
                 sysFileDto = (ManageSysFile) map.get("sysFileDto");
                 break;
@@ -158,7 +159,8 @@ public class PDFServiceImpl implements IPDFService {
                 EnforceJobDTO jobLimitDTO = enforceJobService.get(jobId);
                 String fileLimitName = "限改送达回证-" + jobId + ".pdf";
                 EnforceJobCertificate certificateEntityLimit = jobCertificate(jobId, "DEADLINE");
-                Map<String, Object> limitMap = createCertificatePdf(templateType, jobLimitDTO, fileLimitName, fireDir, certificateEntityLimit);
+                Map<String, Object> limitMap = createCertificatePdf(templateType, jobLimitDTO, fileLimitName, fireDir,
+                        certificateEntityLimit, companyNameMap);
                 file = (File) limitMap.get("file");
                 sysFileDto = (ManageSysFile) limitMap.get("sysFileDto");
                 break;
@@ -166,7 +168,8 @@ public class PDFServiceImpl implements IPDFService {
                 EnforceJobDTO jobDTO = enforceJobService.get(jobId);
                 String fileName = "立改送达回证-" + jobDTO.getId() + ".pdf";
                 EnforceJobCertificate certificateEntity = jobCertificate(jobId, "IMMEDIATELY");
-                Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir, certificateEntity);
+                Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir,
+                        certificateEntity, companyNameMap);
                 file = (File) certificateMap.get("file");
                 sysFileDto = (ManageSysFile) certificateMap.get("sysFileDto");
                 break;
@@ -214,24 +217,26 @@ public class PDFServiceImpl implements IPDFService {
         fileInfo.setFileId(fileId);
         String templateType = TemplateTypeEnum.getMap().get(type);
         String fireDir = uploadDir + PDFUtils.datePath() + "/";
+        Map<String, String> companyNameMap = new HashMap<>();
         switch (type) {
             case "checkTable":
-                newCheckTemplate(templateType, jobId, entity);
+                newCheckTemplate(templateType, jobId, entity, companyNameMap);
                 break;
             case "limitTable":
-                newLimitTemplate(templateType, jobId, entity);
+                newLimitTemplate(templateType, jobId, entity, companyNameMap);
                 break;
             case "numerousTable":
-                newNumsTemplate(templateType, jobId, entity);
+                newNumsTemplate(templateType, jobId, entity, companyNameMap);
                 break;
             case "nowTable":
-                newImmediately(templateType, jobId, entity);
+                newImmediately(templateType, jobId, entity, companyNameMap);
                 break;
             case "certificateLimit":
                 EnforceJobDTO jobLimitDTO = enforceJobService.get(jobId);
                 String fileLimitName = "限改送达回证-" + jobId + ".pdf";
                 EnforceJobCertificate certificateEntityLimit = jobCertificate(jobId, "DEADLINE");
-                Map<String, Object> limitMap = createCertificatePdf(templateType, jobLimitDTO, fileLimitName, fireDir, certificateEntityLimit);
+                Map<String, Object> limitMap = createCertificatePdf(templateType, jobLimitDTO, fileLimitName, fireDir,
+                        certificateEntityLimit, companyNameMap);
                 String certificateLimitFileId = newCertificateSign(limitMap, jobId, entity, fileLimitName, fireDir);
                 EnforceJobDTO newLimitJob = new EnforceJobDTO();
                 newLimitJob.setId(jobId);
@@ -242,7 +247,8 @@ public class PDFServiceImpl implements IPDFService {
                 EnforceJobDTO jobDTO = enforceJobService.get(jobId);
                 String fileName = "立改送达回证-" + jobDTO.getId() + ".pdf";
                 EnforceJobCertificate certificateEntity = jobCertificate(jobId, "IMMEDIATELY");
-                Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir, certificateEntity);
+                Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir,
+                        certificateEntity, companyNameMap);
 //                String fileId = newCertificateSign(certificateMap, jobId, entity, fileName, fireDir);
                 EnforceJobDTO newJobDto = new EnforceJobDTO();
                 newJobDto.setId(jobId);
@@ -254,6 +260,7 @@ public class PDFServiceImpl implements IPDFService {
         }
     }
 
+    private static final String COMPANY_NAME = "companyName";
     /**
      * 100002  ("checkTable","checkTables.ftl",      "简表 检查记录"),之前位置是死的          x:380,y:650  右上
      * 100001  ("numerousTable","numerousTables.ftl","繁表 检查记录"),之前位置是死的          x:380,y:620  右上
@@ -275,25 +282,28 @@ public class PDFServiceImpl implements IPDFService {
         SignatureEntity entity = signatureInfo(false, enforceJob.getEnforceOrgId());
         String templateType = TemplateTypeEnum.getMap().get(type);
         String fireDir = uploadDir + PDFUtils.datePath() + "/";
+        Map<String, String> companyNameMap = new HashMap<>();
         switch (type) {
             case "checkTable":
-                checkTemplate(templateType, jobId, entity);
+                checkTemplate(templateType, jobId, entity, companyNameMap);
                 break;
             case "limitTable":
-                limitTemplate(templateType, jobId, entity);
+                limitTemplate(templateType, jobId, entity, companyNameMap);
                 break;
             case "numerousTable":
-                numsTemplate(templateType, jobId, entity);
+                numsTemplate(templateType, jobId, entity, companyNameMap);
                 break;
             case "nowTable":
-                immediately(templateType, jobId, entity);
+                immediately(templateType, jobId, entity, companyNameMap);
                 break;
             case "certificateLimit":
                 EnforceJobDTO jobLimitDTO = enforceJobService.get(jobId);
                 String fileLimitName = "限改送达回证-" + jobId + ".pdf";
                 EnforceJobCertificate certificateEntityLimit = jobCertificate(jobId, "DEADLINE");
-                Map<String, Object> limitMap = createCertificatePdf(templateType, jobLimitDTO, fileLimitName, fireDir, certificateEntityLimit);
-                String certificateLimitFileId = certificateSign(limitMap, jobId, entity, fileLimitName, fireDir,SignType.DEADLINE_CORRECTION_DELIVERY_RECEIPT);
+                Map<String, Object> limitMap = createCertificatePdf(templateType, jobLimitDTO, fileLimitName, fireDir,
+                        certificateEntityLimit, companyNameMap);
+                String certificateLimitFileId = certificateSign(limitMap, jobId, entity, fileLimitName, fireDir,
+                        SignType.DEADLINE_CORRECTION_DELIVERY_RECEIPT, companyNameMap);
                 EnforceJobDTO newLimitJob = new EnforceJobDTO();
                 newLimitJob.setId(jobId);
                 newLimitJob.setCertificateLimitFileId(Long.parseLong(certificateLimitFileId));
@@ -303,9 +313,10 @@ public class PDFServiceImpl implements IPDFService {
                 EnforceJobDTO jobDTO = enforceJobService.get(jobId);
                 String fileName = "立改送达回证-" + jobDTO.getId() + ".pdf";
                 EnforceJobCertificate certificateEntity = jobCertificate(jobId, "IMMEDIATELY");
-                Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir, certificateEntity);
-                String fileId = certificateSign(certificateMap,
-                        jobId, entity, fileName, fireDir, SignType.IMMEDIATE_CORRECTION_DELIVERY_RECEIPT);
+                Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir,
+                        certificateEntity, companyNameMap);
+                String fileId = certificateSign(certificateMap, jobId, entity, fileName, fireDir,
+                        SignType.IMMEDIATE_CORRECTION_DELIVERY_RECEIPT, companyNameMap);
                 EnforceJobDTO newJobDto = new EnforceJobDTO();
                 newJobDto.setId(jobId);
                 newJobDto.setCertificateNowFileId(Long.parseLong(fileId));
@@ -347,17 +358,18 @@ public class PDFServiceImpl implements IPDFService {
             entity.setSignatoriesList(signatoriesList);
         }
         String templateType = TemplateTypeEnum.getMap().get(type);
+        Map<String, String> companyNameMap = new HashMap<>();
         if (TemplateTypeEnum.CHECKTABLES.getType().equals(type)) {
-            checkTemplate(templateType, jobId, entity);
+            checkTemplate(templateType, jobId, entity, companyNameMap);
         }
         if (TemplateTypeEnum.LIMITTABLES.getType().equals(type)) {
-            limitTemplate(templateType, jobId, entity);
+            limitTemplate(templateType, jobId, entity, companyNameMap);
         }
         if (TemplateTypeEnum.NUMEROUSTABLE.getType().equals(type)) {
-            numsTemplate(templateType, jobId, entity);
+            numsTemplate(templateType, jobId, entity, companyNameMap);
         }
         if (TemplateTypeEnum.NOWTABLE.getType().equals(type)) {
-            immediately(templateType, jobId, entity);
+            immediately(templateType, jobId, entity, companyNameMap);
         }
     }
 
@@ -369,14 +381,17 @@ public class PDFServiceImpl implements IPDFService {
             e.printStackTrace();
         }
         EnforceJobDTO jobDTO = enforceJobService.get(jobId);
+        Map<String, String> companyNameMap = new HashMap<>();
         if (jobDTO.getCertificateLimitFileId() == null) {
             new Thread(() -> {
                 SignatureEntity entity = signatureInfo(false, jobDTO.getEnforceOrgId());
                 String fileName = "限改送达回证-" + jobDTO.getId() + ".pdf";
                 String fireDir = uploadDir + PDFUtils.datePath() + "/";
                 EnforceJobCertificate certificateEntity = jobCertificate(jobId, "DEADLINE");
-                Map<String, Object> certificateMap = createCertificatePdf("certificateTables.ftl", jobDTO, fileName, fireDir, certificateEntity);
-                String certificateLimitFileId = certificateSign(certificateMap, jobId, entity, fileName, fireDir, SignType.DEADLINE_CORRECTION_DELIVERY_RECEIPT);
+                Map<String, Object> certificateMap = createCertificatePdf("certificateTables.ftl", jobDTO, fileName, fireDir,
+                        certificateEntity, companyNameMap);
+                String certificateLimitFileId = certificateSign(certificateMap, jobId, entity, fileName, fireDir,
+                        SignType.DEADLINE_CORRECTION_DELIVERY_RECEIPT, companyNameMap);
                 EnforceJobDTO newJobDto = new EnforceJobDTO();
                 newJobDto.setId(jobId);
                 newJobDto.setCertificateLimitFileId(Long.parseLong(certificateLimitFileId));
@@ -384,7 +399,7 @@ public class PDFServiceImpl implements IPDFService {
             }).start();
         }
         SignatureEntity entity = signatureInfo(false, jobDTO.getEnforceOrgId());
-        limitTablePDF(jobDTO, "limitTables.ftl", jobId, entity);
+        limitTablePDF(jobDTO, "limitTables.ftl", jobId, entity, companyNameMap);
     }
 
     @Override
@@ -396,6 +411,7 @@ public class PDFServiceImpl implements IPDFService {
                 pdfLog.setType(type);
                 pdfLog.setId(id);
                 try {
+                    Map<String, String> companyNameMap = new HashMap<>();
                     String templateType = TemplateTypeEnum.getMap().get(type);
                     if (TemplateTypeEnum.CHECKTABLES.getType().equals(type)) {
                         EnforceJob jobDTO = enforceJobService.getById(id);
@@ -407,7 +423,7 @@ public class PDFServiceImpl implements IPDFService {
                         // 生成未盖章pdf
                         Map<String, Object> map;
                         try {
-                            map = createCheckPDF("checkTablesTest.ftl", jobDTO, fileName, fireDir);
+                            map = createCheckPDF("checkTablesTest.ftl", jobDTO, fileName, fireDir, companyNameMap);
                         } catch (Exception e) {
                             log.error("生成简表pdf失败", e);
                             String detail = null;
@@ -441,7 +457,8 @@ public class PDFServiceImpl implements IPDFService {
                         String storageName;
                         try {
 //                            storageName = getSignature(fireDir, fileName, file, entity);
-                            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.SUMMARY_TABLE,String.valueOf(id),appConfig);
+                            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.SUMMARY_TABLE,
+                                    String.valueOf(id), appConfig, companyNameMap.get(COMPANY_NAME));
                         } catch (Exception e) {
                             pdfLog.setErrorLog(e.getMessage());
                             pdfLog.setSignatureResult("失败");
@@ -470,7 +487,7 @@ public class PDFServiceImpl implements IPDFService {
                         // 生成未盖章pdf
                         Map<String, Object> map;
                         try {
-                            map = createLimitPdf(templateType, jobDTO, fileName, fireDir);
+                            map = createLimitPdf(templateType, jobDTO, fileName, fireDir, companyNameMap);
                         } catch (Exception e) {
                             log.error("生成限改pdf失败", e);
                             String detail = null;
@@ -526,7 +543,8 @@ public class PDFServiceImpl implements IPDFService {
                         String storageName = null;
                         try {
 //                            storageName = getSignature(fireDir, fileName, file, entity);
-                            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.DEADLINE_CORRECTION_NOTICE,String.valueOf(id),appConfig);
+                            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.DEADLINE_CORRECTION_NOTICE,
+                                    String.valueOf(id), appConfig, companyNameMap.get(COMPANY_NAME));
                         } catch (Exception e) {
                             log.error("电子签章失败", e);
                             pdfLog.setErrorLog(e.getMessage());
@@ -553,7 +571,7 @@ public class PDFServiceImpl implements IPDFService {
                         // 生成未盖章pdf
                         Map<String, Object> map = null;
                         try {
-                            map = createNumerousPDF("numerousTables.ftl", jobDTO, fileName, fireDir);
+                            map = createNumerousPDF("numerousTables.ftl", jobDTO, fileName, fireDir, companyNameMap);
                         } catch (Exception e) {
                             log.error("生成繁表pdf失败", e);
                             String detail = null;
@@ -589,7 +607,8 @@ public class PDFServiceImpl implements IPDFService {
                         String storageName = null;
                         try {
 //                            storageName = getSignature(fireDir, fileName, file, entity);
-                            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.COMPLEX_TABLE,String.valueOf(id),appConfig);
+                            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.COMPLEX_TABLE,
+                                    String.valueOf(id), appConfig, companyNameMap.get(COMPANY_NAME));
                         } catch (Exception e) {
                             log.error("电子签章失败", e);
                             // 电子签章失败则保存未签章pdf
@@ -616,7 +635,7 @@ public class PDFServiceImpl implements IPDFService {
                         // 生成未盖章pdf
                         Map<String, Object> map = null;
                         try {
-                            map = createNowPdf(templateType, jobDTO, fileName, fireDir);
+                            map = createNowPdf(templateType, jobDTO, fileName, fireDir, companyNameMap);
                         } catch (Exception e) {
                             log.error("生成立改pdf失败", e);
                             String detail = null;
@@ -669,7 +688,8 @@ public class PDFServiceImpl implements IPDFService {
                         newJobTto.setId(id);
                         try {
 //                            storageName = getSignature(fireDir, fileName, file, entity);
-                            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.IMMEDIATE_CORRECTION_NOTICE,String.valueOf(id),appConfig);
+                            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.IMMEDIATE_CORRECTION_NOTICE,
+                                    String.valueOf(id), appConfig, companyNameMap.get(COMPANY_NAME));
                         } catch (Exception e) {
                             log.error("电子签章失败", e);
                             pdfLog.setErrorLog(e.getMessage());
@@ -703,7 +723,8 @@ public class PDFServiceImpl implements IPDFService {
                         Map<String, Object> map = null;
                         try {
                             EnforceJobCertificate certificateEntity = jobCertificate(id, "DEADLINE");
-                            map = createCertificatePdf(templateType, jobDTO, fileName, fireDir, certificateEntity);
+                            map = createCertificatePdf(templateType, jobDTO, fileName, fireDir, certificateEntity,
+                                    companyNameMap);
                         } catch (Exception e) {
                             log.error("限改送达回证", e);
                             String detail = null;
@@ -726,7 +747,8 @@ public class PDFServiceImpl implements IPDFService {
                         // 生成盖章pdf
                         SignatureEntity entity = signatureInfo(false, jobDTO.getEnforceOrgId());
                         try {
-                            String certificateLimitFileId = certificateSign(map, id, entity, fileName, fireDir, SignType.DEADLINE_CORRECTION_DELIVERY_RECEIPT);
+                            String certificateLimitFileId = certificateSign(map, id, entity, fileName, fireDir,
+                                    SignType.DEADLINE_CORRECTION_DELIVERY_RECEIPT, companyNameMap);
                             EnforceJobDTO newLimitJob = new EnforceJobDTO();
                             newLimitJob.setId(id);
                             newLimitJob.setCertificateLimitFileId(Long.parseLong(certificateLimitFileId));
@@ -753,7 +775,8 @@ public class PDFServiceImpl implements IPDFService {
                         Map<String, Object> map = null;
                         try {
                             EnforceJobCertificate certificateEntity = jobCertificate(id, "IMMEDIATELY");
-                            map = createCertificatePdf(templateType, jobDTO, fileName, fireDir, certificateEntity);
+                            map = createCertificatePdf(templateType, jobDTO, fileName, fireDir, certificateEntity,
+                                    companyNameMap);
                         } catch (Exception e) {
                             log.error("限改送达回证", e);
                             String detail = null;
@@ -776,7 +799,8 @@ public class PDFServiceImpl implements IPDFService {
                         // 生成盖章pdf
                         SignatureEntity entity = signatureInfo(false, jobDTO.getEnforceOrgId());
                         try {
-                            String certificateNowFileId = certificateSign(map, id, entity, fileName, fireDir, SignType.IMMEDIATE_CORRECTION_DELIVERY_RECEIPT);
+                            String certificateNowFileId = certificateSign(map, id, entity, fileName, fireDir,
+                                    SignType.IMMEDIATE_CORRECTION_DELIVERY_RECEIPT, companyNameMap);
                             EnforceJobDTO newLimitJob = new EnforceJobDTO();
                             newLimitJob.setId(id);
                             newLimitJob.setCertificateNowFileId(Long.parseLong(certificateNowFileId));
@@ -806,20 +830,22 @@ public class PDFServiceImpl implements IPDFService {
         String templateType = TemplateTypeEnum.getMap().get(type);
         Map<String, Object> resultMap = null;
         String fireDir = uploadDir + PDFUtils.datePath() + "/";
+        Map<String, String> companyNameMap = new HashMap<>();
         if (TemplateTypeEnum.CHECKTABLES.getType().equals(type)) {
             EnforceJob jobDTO = enforceJobService.getById(jobId);
 
             String fileName = "简表记录表-" + jobDTO.getId() + ".pdf";
-            resultMap = createCheckPDF(templateType, jobDTO, fileName, fireDir);
+            resultMap = createCheckPDF(templateType, jobDTO, fileName, fireDir, companyNameMap);
         } else if (TemplateTypeEnum.NUMEROUSTABLE.getType().equals(type)) {
             EnforceJobDTO jobDTO = enforceJobService.get(jobId);
             String fileName = "繁表记录表-" + jobId + ".pdf";
-            resultMap = createNumerousPDF(templateType, jobDTO, fileName, fireDir);
+            resultMap = createNumerousPDF(templateType, jobDTO, fileName, fireDir, companyNameMap);
         } else if (TemplateTypeEnum.CERTIFICATENOW.getType().equals(type)) {
             EnforceJobDTO jobDTO = enforceJobService.get(jobId);
             String fileName = "立改送达回证-" + jobDTO.getId() + ".pdf";
             EnforceJobCertificateDTO certificateEntity = efcJobCertificateService.selectOne(jobId, "IMMEDIATELY");
-            Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir, certificateEntity);
+            Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir,
+                    certificateEntity, companyNameMap);
             ManageSysFile sysFileDto = (ManageSysFile) certificateMap.get("sysFileDto");
             fileRepository.save(sysFileDto);
             // 检查记录文件id
@@ -832,7 +858,8 @@ public class PDFServiceImpl implements IPDFService {
             EnforceJobDTO jobDTO = enforceJobService.get(jobId);
             String fileName = "限改送达回证-" + jobDTO.getId() + ".pdf";
             EnforceJobCertificateDTO certificateEntity = efcJobCertificateService.selectOne(jobId, "DEADLINE");
-            Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir, certificateEntity);
+            Map<String, Object> certificateMap = createCertificatePdf(templateType, jobDTO, fileName, fireDir,
+                    certificateEntity, companyNameMap);
             ManageSysFile sysFileDto = (ManageSysFile) certificateMap.get("sysFileDto");
             fileRepository.save(sysFileDto);
             // 检查记录文件id
@@ -899,7 +926,7 @@ public class PDFServiceImpl implements IPDFService {
     }
 
 
-    private Map<String, Object> modelCheckTemplate(String templateType, Long jobId) {
+    private Map<String, Object> modelCheckTemplate(String templateType, Long jobId, Map<String, String> companyNameMap) {
         Optional<EnforceJobDTO> ojobDTO = enforceJobService.find(jobId);
         if (!ojobDTO.isPresent()) {
             throw new ServiceException("任务不存在!", 404);
@@ -908,13 +935,14 @@ public class PDFServiceImpl implements IPDFService {
         redisUtil.setCacheObject(GlobalConstant.COMPLEX_FILE_ID + jobId, 99999, 120L, TimeUnit.SECONDS);
         String fileName = "简表记录表-" + jobDTO.getId() + ".pdf";
         String fireDir = uploadDir + PDFUtils.datePath() + "/";
-        Map<String, Object> map = createCheckPDF(templateType, jobDTO, fileName, fireDir);
+        Map<String, Object> map = createCheckPDF(templateType, jobDTO, fileName, fireDir, companyNameMap);
         ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
         fileRepository.save(sysFileDto);
         return map;
     }
 
-    private Map<String, Object> modelLimitTemplate(String templateType, Long jobId) {
+    private Map<String, Object> modelLimitTemplate(String templateType, Long jobId,
+                                                   Map<String, String> companyNameMap) {
         Optional<EnforceJobDTO> ojobDTO = enforceJobService.find(jobId);
         if (!ojobDTO.isPresent()) {
             throw new ServiceException("任务不存在!", 404);
@@ -926,14 +954,15 @@ public class PDFServiceImpl implements IPDFService {
             redisUtil.setCacheObject(GlobalConstant.DEADLINE_FILE_ID + jobId, jobDTO.getDeadlineFileId(), 120L, TimeUnit.SECONDS);
         String fileName = "责令期限改正通知书-" + jobId + ".pdf";
         String fireDir = uploadDir + PDFUtils.datePath() + "/";
-        Map<String, Object> map = createLimitPdf(templateType, jobDTO, fileName, fireDir);
+        Map<String, Object> map = createLimitPdf(templateType, jobDTO, fileName, fireDir, companyNameMap);
 
         ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
         fileRepository.save(sysFileDto);
         return map;
     }
 
-    private void newCheckTemplate(String templateType, Long jobId, NewSigntureEntity entity) {
+    private void newCheckTemplate(String templateType, Long jobId, NewSigntureEntity entity,
+                                  Map<String, String> companyNameMap) {
         Optional<EnforceJobDTO> ojobDTO = enforceJobService.find(jobId);
         if (!ojobDTO.isPresent()) {
             throw new ServiceException("任务不存在!", 404);
@@ -943,7 +972,7 @@ public class PDFServiceImpl implements IPDFService {
         new Thread(() -> {
             String fileName = "简表记录表-" + jobDTO.getId() + ".pdf";
             String fireDir = uploadDir + PDFUtils.datePath() + "/";
-            Map<String, Object> map = createCheckPDF(templateType, jobDTO, fileName, fireDir);
+            Map<String, Object> map = createCheckPDF(templateType, jobDTO, fileName, fireDir, companyNameMap);
             ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
             fileRepository.save(sysFileDto);
             // 检查记录文件id
@@ -964,7 +993,8 @@ public class PDFServiceImpl implements IPDFService {
             newJobDto.setId(jobId);
             try {
 //                storageName = newGetSignature(fireDir, fileName, file, entity);
-                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.SUMMARY_TABLE,appConfig);
+                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.SUMMARY_TABLE,
+                        appConfig, companyNameMap.get(COMPANY_NAME));
             } catch (Exception e) {
                 log.error("电子签章失败", e);
                 // 电子签章失败则保存未签章pdf
@@ -987,7 +1017,8 @@ public class PDFServiceImpl implements IPDFService {
         }).start();
     }
 
-    private void checkTemplate(String templateType, Long jobId, SignatureEntity entity) {
+    private void checkTemplate(String templateType, Long jobId, SignatureEntity entity,
+                               Map<String, String> companyNameMap) {
         Optional<EnforceJobDTO> ojobDTO = enforceJobService.find(jobId);
         if (!ojobDTO.isPresent()) {
             throw new ServiceException("任务不存在!", 404);
@@ -997,7 +1028,8 @@ public class PDFServiceImpl implements IPDFService {
         new Thread(() -> {
             String fileName = "简表记录表-" + jobDTO.getId() + ".pdf";
             String fireDir = uploadDir + PDFUtils.datePath() + "/";
-            Map<String, Object> map = createCheckPDF(templateType, jobDTO, fileName, fireDir);
+            Map<String, Object> map = createCheckPDF(templateType, jobDTO, fileName, fireDir,
+                    companyNameMap);
             ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
             fileRepository.save(sysFileDto);
             // 检查记录文件id
@@ -1018,7 +1050,8 @@ public class PDFServiceImpl implements IPDFService {
             newJobDto.setId(jobId);
             try {
 //                storageName = getSignature(fireDir, fileName, file, entity);
-                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.SUMMARY_TABLE,String.valueOf(jobId),appConfig);
+                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.SUMMARY_TABLE,
+                        String.valueOf(jobId), appConfig, companyNameMap.get(COMPANY_NAME));
             } catch (Exception e) {
                 log.error("电子签章失败", e);
                 // 电子签章失败则保存未签章pdf
@@ -1041,7 +1074,8 @@ public class PDFServiceImpl implements IPDFService {
         }).start();
     }
 
-    private void newLimitTemplate(String templateType, Long jobId, NewSigntureEntity entity) {
+    private void newLimitTemplate(String templateType, Long jobId, NewSigntureEntity entity,
+                                  Map<String, String> companyNameMap) {
         Optional<EnforceJobDTO> ojobDTO = enforceJobService.find(jobId);
         if (!ojobDTO.isPresent()) {
             throw new ServiceException("任务不存在!", 404);
@@ -1052,11 +1086,12 @@ public class PDFServiceImpl implements IPDFService {
         if (StringUtils.isNotBlank(jobDTO.getDeadlineFileId()))
             redisUtil.setCacheObject(GlobalConstant.DEADLINE_FILE_ID + jobId, jobDTO.getDeadlineFileId(), 120L, TimeUnit.SECONDS);
         new Thread(() -> {
-            newLimitTablePDF(jobDTO, templateType, jobId, entity);
+            newLimitTablePDF(jobDTO, templateType, jobId, entity, companyNameMap);
         }).start();
     }
 
-    private void limitTemplate(String templateType, Long jobId, SignatureEntity entity) {
+    private void limitTemplate(String templateType, Long jobId, SignatureEntity entity,
+                               Map<String, String> companyNameMap) {
         Optional<EnforceJobDTO> ojobDTO = enforceJobService.find(jobId);
         if (!ojobDTO.isPresent()) {
             throw new ServiceException("任务不存在!", 404);
@@ -1067,32 +1102,33 @@ public class PDFServiceImpl implements IPDFService {
         if (StringUtils.isNotBlank(jobDTO.getDeadlineFileId()))
             redisUtil.setCacheObject(GlobalConstant.DEADLINE_FILE_ID + jobId, jobDTO.getDeadlineFileId(), 120L, TimeUnit.SECONDS);
         new Thread(() -> {
-            limitTablePDF(jobDTO, templateType, jobId, entity);
+            limitTablePDF(jobDTO, templateType, jobId, entity, companyNameMap);
         }).start();
     }
 
 
-    private  Map<String, Object> modelNumsTemplate(String templateType, Long jobId) {
+    private  Map<String, Object> modelNumsTemplate(String templateType, Long jobId, Map<String, String> companyNameMap) {
         EnforceJobDTO jobDTO = enforceJobService.get(jobId);
         // 查询时校验是否生成新的pdf。
         redisUtil.setCacheObject(GlobalConstant.COMPLEX_FILE_ID + jobId, 99999, 120L, TimeUnit.SECONDS);
         String fileName = "繁表记录表-" + jobId + ".pdf";
         String fireDir = uploadDir + PDFUtils.datePath() + "/";
-        Map<String, Object> map = createNumerousPDF(templateType, jobDTO, fileName, fireDir);
+        Map<String, Object> map = createNumerousPDF(templateType, jobDTO, fileName, fireDir, companyNameMap);
         ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
         fileRepository.save(sysFileDto);
         return map;
     }
 
 
-    private void newNumsTemplate(String templateType, Long jobId, NewSigntureEntity entity) {
+    private void newNumsTemplate(String templateType, Long jobId, NewSigntureEntity entity,
+                                 Map<String, String> companyNameMap) {
         EnforceJobDTO jobDTO = enforceJobService.get(jobId);
         // 查询时校验是否生成新的pdf。
         redisUtil.setCacheObject(GlobalConstant.COMPLEX_FILE_ID + jobId, 99999, 120L, TimeUnit.SECONDS);
         new Thread(() -> {
             String fileName = "繁表记录表-" + jobId + ".pdf";
             String fireDir = uploadDir + PDFUtils.datePath() + "/";
-            Map<String, Object> map = createNumerousPDF(templateType, jobDTO, fileName, fireDir);
+            Map<String, Object> map = createNumerousPDF(templateType, jobDTO, fileName, fireDir, companyNameMap);
             ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
             fileRepository.save(sysFileDto);
             // 检查记录文件id
@@ -1116,7 +1152,8 @@ public class PDFServiceImpl implements IPDFService {
             newJobDto.setId(jobId);
             try {
 //                storageName = newGetSignature(fireDir, fileName, file, entity);
-                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.COMPLEX_TABLE,appConfig);
+                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.COMPLEX_TABLE,
+                        appConfig, companyNameMap.get(COMPANY_NAME));
             } catch (Exception e) {
                 log.error("电子签章失败", e);
                 // 电子签章失败则保存未签章pdf
@@ -1139,14 +1176,16 @@ public class PDFServiceImpl implements IPDFService {
     }
 
 
-    private void numsTemplate(String templateType, Long jobId, SignatureEntity entity) {
+    private void numsTemplate(String templateType, Long jobId, SignatureEntity entity,
+                              Map<String, String> companyNameMap) {
         EnforceJobDTO jobDTO = enforceJobService.get(jobId);
         // 查询时校验是否生成新的pdf。
         redisUtil.setCacheObject(GlobalConstant.COMPLEX_FILE_ID + jobId, 99999, 120L, TimeUnit.SECONDS);
         new Thread(() -> {
             String fileName = "繁表记录表-" + jobId + ".pdf";
             String fireDir = uploadDir + PDFUtils.datePath() + "/";
-            Map<String, Object> map = createNumerousPDF(templateType, jobDTO, fileName, fireDir);
+            Map<String, Object> map = createNumerousPDF(templateType, jobDTO, fileName, fireDir,
+                    companyNameMap);
             ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
             sysFileDto.setId(null); // ID 设置为空
             fileRepository.save(sysFileDto);
@@ -1171,7 +1210,8 @@ public class PDFServiceImpl implements IPDFService {
             newJobDto.setId(jobId);
             try {
 //                storageName = getSignature(fireDir, fileName, file, entity);
-                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.COMPLEX_TABLE,String.valueOf(jobId),appConfig);
+                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.COMPLEX_TABLE,
+                        String.valueOf(jobId), appConfig, companyNameMap.get(COMPANY_NAME));
             } catch (Exception e) {
                 log.error("电子签章失败", e);
                 // 电子签章失败则保存未签章pdf
@@ -1772,7 +1812,8 @@ public class PDFServiceImpl implements IPDFService {
         }
     }
 
-    public Map<String, Object> modelImmediately(String type, Long id) {
+    public Map<String, Object> modelImmediately(String type, Long id,
+                                                Map<String, String> companyNameMap) {
         Optional<EnforceJobDTO> ejobDTO = enforceJobService.find(id);
         if (!ejobDTO.isPresent()) {
             throw new ServiceException("任务不存在!", 404);
@@ -1783,14 +1824,15 @@ public class PDFServiceImpl implements IPDFService {
         enforceJobService.updateByNew(jobDTO);
         String fileName = "责令立即改正通知书-" + id + ".pdf";
         String fireDir = uploadDir + PDFUtils.datePath() + "/";
-        Map<String, Object> pdfMap = createNowPdf(type, jobDTO, fileName, fireDir);
+        Map<String, Object> pdfMap = createNowPdf(type, jobDTO, fileName, fireDir, companyNameMap);
         ManageSysFile sysFileDto = (ManageSysFile) pdfMap.get("sysFileDto");
         fileRepository.save(sysFileDto);
         return pdfMap;
     }
 
 
-    public void newImmediately(String type, Long id, NewSigntureEntity entity) {
+    public void newImmediately(String type, Long id, NewSigntureEntity entity,
+                               Map<String, String> companyNameMap) {
         Optional<EnforceJobDTO> ejobDTO = enforceJobService.find(id);
         if (!ejobDTO.isPresent()) {
             throw new ServiceException("任务不存在!", 404);
@@ -1802,7 +1844,7 @@ public class PDFServiceImpl implements IPDFService {
         new Thread(() -> {
             String fileName = "责令立即改正通知书-" + id + ".pdf";
             String fireDir = uploadDir + PDFUtils.datePath() + "/";
-            Map<String, Object> pdfMap = createNowPdf(type, jobDTO, fileName, fireDir);
+            Map<String, Object> pdfMap = createNowPdf(type, jobDTO, fileName, fireDir, companyNameMap);
             ManageSysFile sysFileDto = (ManageSysFile) pdfMap.get("sysFileDto");
             fileRepository.save(sysFileDto);
             // 检查记录文件id
@@ -1843,7 +1885,8 @@ public class PDFServiceImpl implements IPDFService {
             newJobTto.setId(id);
             try {
 //                storageName = newGetSignature(fireDir, fileName, file, entity);
-                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.IMMEDIATE_CORRECTION_NOTICE,appConfig);
+                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.IMMEDIATE_CORRECTION_NOTICE,
+                        appConfig, companyNameMap.get(COMPANY_NAME));
                 ManageSysFileDTO fileDTO = new ManageSysFileDTO();
                 fileDTO.setFileName(fileName);
                 fileDTO.setPath(fireDir);
@@ -1903,7 +1946,8 @@ public class PDFServiceImpl implements IPDFService {
     /**
      * 立改  暂时放在这里,后期可以放到一个合适的位置
      */
-    public void immediately(String type, Long id, SignatureEntity entity) {
+    public void immediately(String type, Long id, SignatureEntity entity,
+                            Map<String, String> companyNameMap) {
         Optional<EnforceJobDTO> ejobDTO = enforceJobService.find(id);
         if (!ejobDTO.isPresent()) {
             throw new ServiceException("任务不存在!", 404);
@@ -1915,7 +1959,8 @@ public class PDFServiceImpl implements IPDFService {
         new Thread(() -> {
             String fileName = "责令立即改正通知书-" + id + ".pdf";
             String fireDir = uploadDir + PDFUtils.datePath() + "/";
-            Map<String, Object> pdfMap = createNowPdf(type, jobDTO, fileName, fireDir);
+            Map<String, Object> pdfMap = createNowPdf(type, jobDTO, fileName, fireDir,
+                    companyNameMap);
             ManageSysFile sysFileDto = (ManageSysFile) pdfMap.get("sysFileDto");
             fileRepository.save(sysFileDto);
             // 检查记录文件id
@@ -1953,7 +1998,8 @@ public class PDFServiceImpl implements IPDFService {
             newJobTto.setId(id);
             try {
 //                storageName = getSignature(fireDir, fileName, file, entity);
-                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.IMMEDIATE_CORRECTION_NOTICE,String.valueOf(id),appConfig);
+                storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.IMMEDIATE_CORRECTION_NOTICE,
+                        String.valueOf(id), appConfig, companyNameMap.get(COMPANY_NAME));
                 ManageSysFileDTO fileDTO = new ManageSysFileDTO();
                 fileDTO.setFileName(fileName);
                 fileDTO.setPath(fireDir);
@@ -2206,10 +2252,11 @@ public class PDFServiceImpl implements IPDFService {
         return storageName;
     }
 
-    private void newLimitTablePDF(EnforceJob jobDTO, String templateType, Long jobId, NewSigntureEntity entity) {
+    private void newLimitTablePDF(EnforceJob jobDTO, String templateType, Long jobId, NewSigntureEntity entity,
+                                  Map<String, String> companyNameMap) {
         String fileName = "责令期限改正通知书-" + jobId + ".pdf";
         String fireDir = uploadDir + PDFUtils.datePath() + "/";
-        Map<String, Object> map = createLimitPdf(templateType, jobDTO, fileName, fireDir);
+        Map<String, Object> map = createLimitPdf(templateType, jobDTO, fileName, fireDir, companyNameMap);
 
         ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
         fileRepository.save(sysFileDto);
@@ -2251,7 +2298,8 @@ public class PDFServiceImpl implements IPDFService {
 
         try {
 //            storageName = newGetSignature(fireDir, fileName, file, entity);
-            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.DEADLINE_CORRECTION_NOTICE,appConfig);
+            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity, SignType.DEADLINE_CORRECTION_NOTICE,
+                    appConfig, companyNameMap.get(COMPANY_NAME));
             ManageSysFileDTO fileDTO = new ManageSysFileDTO();
             fileDTO.setFileName(fileName);
             fileDTO.setPath(fireDir);
@@ -2283,10 +2331,12 @@ public class PDFServiceImpl implements IPDFService {
         }
     }
 
-    private void limitTablePDF(EnforceJob jobDTO, String templateType, Long jobId, SignatureEntity entity) {
+    private void limitTablePDF(EnforceJob jobDTO, String templateType, Long jobId,
+                               SignatureEntity entity, Map<String, String> companyNameMap) {
         String fileName = "责令期限改正通知书-" + jobId + ".pdf";
         String fireDir = uploadDir + PDFUtils.datePath() + "/";
-        Map<String, Object> map = createLimitPdf(templateType, jobDTO, fileName, fireDir);
+        Map<String, Object> map = createLimitPdf(templateType, jobDTO, fileName,
+                fireDir, companyNameMap);
 
         ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
         fileRepository.save(sysFileDto);
@@ -2327,7 +2377,9 @@ public class PDFServiceImpl implements IPDFService {
 
         try {
 //            storageName = getSignature(fireDir, fileName, file, entity);
-            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,SignType.DEADLINE_CORRECTION_NOTICE,String.valueOf(jobId),appConfig);
+            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file,
+                    entity,SignType.DEADLINE_CORRECTION_NOTICE,String.valueOf(jobId),
+                    appConfig, companyNameMap.get(COMPANY_NAME));
             ManageSysFileDTO fileDTO = new ManageSysFileDTO();
             fileDTO.setFileName(fileName);
             fileDTO.setPath(fireDir);
@@ -2466,7 +2518,9 @@ public class PDFServiceImpl implements IPDFService {
         initData(type, jobId);
     }
 
-    private Map<String, Object> createCheckPDF(String templateType, EnforceJob jobDTO, String fileName, String fireDir) {
+    private Map<String, Object> createCheckPDF(
+            String templateType, EnforceJob jobDTO, String fileName,
+            String fireDir, Map<String, String> companyNameMap) {
         CheckTableTemplate checkTableTemplate = new CheckTableTemplate();
         String enforceOrgName = jobDTO.getEnforceOrgName();
         String orgName = enforceOrgName.replaceAll("重庆市", "");
@@ -2498,6 +2552,7 @@ public class PDFServiceImpl implements IPDFService {
                 checkTableTemplate.setPhone(enforceObj.getString("contactPhone"));
             }
         }
+        companyNameMap.put(COMPANY_NAME, checkTableTemplate.getCompany());
 
         Calendar cal = Calendar.getInstance();
         Date recordTime = jobDTO.getRecordTime();
@@ -2534,7 +2589,9 @@ public class PDFServiceImpl implements IPDFService {
         return map;
     }
 
-    private Map<String, Object> createLimitPdf(String templateType, EnforceJob jobDTO, String fileName, String fireDir) {
+    private Map<String, Object> createLimitPdf(
+            String templateType, EnforceJob jobDTO, String fileName,
+            String fireDir, Map<String, String> companyNameMap) {
         LimitTableTemplate tableTemplate = new LimitTableTemplate();
         String enforceOrgName = jobDTO.getEnforceOrgName();
         String orgName = enforceOrgName.replaceAll("重庆市", "");
@@ -2676,11 +2733,14 @@ public class PDFServiceImpl implements IPDFService {
                 }
             }
         }
+        companyNameMap.put(COMPANY_NAME, tableTemplate.getCompany());
         Map<String, Object> map = PDFUtils.process(fireDir, fileName, templateType, tableTemplate);
         return map;
     }
 
-    private Map<String, Object> createNumerousPDF(String templateType, EnforceJobDTO jobDTO, String fileName, String fireDir) {
+    private Map<String, Object> createNumerousPDF(
+            String templateType, EnforceJobDTO jobDTO, String fileName,
+            String fireDir, Map<String, String> companyNameMap) {
         NumerousTableTemplate template = new NumerousTableTemplate("init");
         String enforceOrgName = jobDTO.getEnforceOrgName();
         String orgName = enforceOrgName.replaceAll("重庆市", "");
@@ -2815,11 +2875,14 @@ public class PDFServiceImpl implements IPDFService {
                 }
             });
         }
+        companyNameMap.put(COMPANY_NAME, template.getCompany());
         Map<String, Object> map = PDFUtils.process(fireDir, fileName, templateType, template);
         return map;
     }
 
-    private Map<String, Object> createNowPdf(String templateType, EnforceJob jobDTO, String fileName, String fireDir) {
+    private Map<String, Object> createNowPdf(
+            String templateType, EnforceJob jobDTO, String fileName,
+            String fireDir, Map<String, String> companyNameMap) {
         String staticNoticeResult = jobDTO.getStaticNoticeResult();
         cn.hutool.json.JSONObject jsonObject = JSONUtil.parseObj(staticNoticeResult);
         String immediately = getJson("immediately", jsonObject);
@@ -3103,6 +3166,7 @@ public class PDFServiceImpl implements IPDFService {
             map.put("checkbox11", "");
             map.put("checkbox12", "");
         }
+        companyNameMap.put(COMPANY_NAME, map.get("company"));
 
         Map<String, Object> pdfMap = PDFUtils.process(fireDir, fileName, templateType, map);
         return pdfMap;
@@ -3118,7 +3182,9 @@ public class PDFServiceImpl implements IPDFService {
      * @param certificateEntity
      * @return
      */
-    private Map<String, Object> createCertificatePdf(String templateType, EnforceJobDTO jobDTO, String fileName, String fireDir, EnforceJobCertificate certificateEntity) {
+    private Map<String, Object> createCertificatePdf(
+            String templateType, EnforceJobDTO jobDTO, String fileName, String fireDir,
+            EnforceJobCertificate certificateEntity, Map<String, String> companyNameMap) {
         CertificateTableTemplate certificate = new CertificateTableTemplate();
         String enforceOrgName = jobDTO.getEnforceOrgName();
         String orgName = enforceOrgName.replaceAll("重庆市", "");
@@ -3209,6 +3275,7 @@ public class PDFServiceImpl implements IPDFService {
             certificate.setDay1(calendar.get(Calendar.DAY_OF_MONTH));
         }
         certificate.setRemake(certificateEntity.getRemark());
+        companyNameMap.put(COMPANY_NAME, certificate.getCompany());
 
         Map<String, Object> map = PDFUtils.process(fireDir, fileName, templateType, certificate);
         return map;
@@ -3257,7 +3324,8 @@ public class PDFServiceImpl implements IPDFService {
     /**
      * 送达回证pdf获取电子签章
      */
-    private String certificateSign(Map<String, Object> map, Long jobId, SignatureEntity entity, String fileName, String fireDir, SignType signType) {
+    private String certificateSign(Map<String, Object> map, Long jobId, SignatureEntity entity, String fileName, String fireDir,
+                                   SignType signType, Map<String, String> companyNameMap) {
         File file = (File) map.get("file");
         List<SignatureEntity.SignatoriesList> signatoriesList = entity.getSignatoriesList();
         if (CollectionUtils.isNotEmpty(signatoriesList)) {
@@ -3272,7 +3340,8 @@ public class PDFServiceImpl implements IPDFService {
         newJobDto.setId(jobId);
         try {
 //            storageName = getSignature(fireDir, fileName, file, entity);
-            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,signType,String.valueOf(jobId),appConfig);
+            storageName = SealSignUtils.sealSignAndDownLoad(fireDir, fileName, file, entity,
+                    signType,String.valueOf(jobId), appConfig, companyNameMap.get(COMPANY_NAME));
         } catch (Exception e) {
             ManageSysFile sysFileDto = (ManageSysFile) map.get("sysFileDto");
             fileRepository.save(sysFileDto);

+ 4 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/other/WReportBizService.java

@@ -6,6 +6,7 @@ import com.zfjg.manage.api.dto.other.WReportDto;
 import com.zfjg.manage.api.dto.other.WReportQuery;
 import com.zfjg.manage.api.vo.other.WReportDetailVO;
 import com.zfjg.manage.api.vo.other.WReportVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -45,4 +46,7 @@ public interface WReportBizService {
     List<WReportVo> getList(WReportQuery wReportQuery);
 
     WReport info(Long id);
+
+    List<WReportVo> getWreportList(WReportQuery query);
+
 }

+ 8 - 4
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/utils/seal/SealSignUtils.java

@@ -30,14 +30,15 @@ import java.util.Objects;
 @Slf4j
 public class SealSignUtils {
 
-    public static String sealSignAndDownLoad(String uploadDir, String fileName, File file, NewSigntureEntity signatureEntity, SignType signType,AppConfig appConfig) {
+    public static String sealSignAndDownLoad(String uploadDir, String fileName, File file, NewSigntureEntity signatureEntity,
+                                             SignType signType,AppConfig appConfig, String companyName) {
         log.info("开始签章");
         String storageName = UUID.fastUUID().toString().replace("-", "");
         String downLoadPath=uploadDir +storageName ;
         SignContentReq req=initData(file,fileName);
         fillReqData(req,signatureEntity);
         req.setSignType(signType.getCode());
-        req.setTaskName("");
+        req.setTaskName(companyName);
         sealSignAndDownLoad(appConfig,req,downLoadPath);
         return storageName;
     }
@@ -97,13 +98,16 @@ public class SealSignUtils {
          return contentReq;
     }
 
-    public static String sealSignAndDownLoad(String uploadDir, String fileName, File file, SignatureEntity signatureEntity, SignType signType,String thirdBizId,AppConfig appConfig) {
+    public static String sealSignAndDownLoad(
+            String uploadDir, String fileName, File file,
+            SignatureEntity signatureEntity, SignType signType,String thirdBizId,
+            AppConfig appConfig, String companyName) {
         String storageName = UUID.fastUUID().toString().replace("-", "");
         String downLoadPath=uploadDir +storageName ;
         SignContentReq req=initData(file,fileName);
         fillReqData(req,signatureEntity);
         req.setSignType(signType.getCode());
-        req.setTaskName("");
+        req.setTaskName(companyName);
         req.setBizId(thirdBizId);
         sealSignAndDownLoad(appConfig,req,downLoadPath);
         return storageName;

+ 16 - 2
zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/job/EnforceSuperviseMapper.xml

@@ -282,11 +282,18 @@
         ) 视频时长
         FROM
         v_rw a
+        left join enforce_obj eo on a.检查对象 = eo.id
         WHERE
         状态 = '已归档'
         <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
             and 执法机构id = #{pm.enforceOrgId}
         </if>
+        <if test="pm.enforceObjType  != null  and pm.enforceObjType == 'important'">
+            and eo.enforce_obj_type = '2'
+        </if>
+        <if test="pm.enforceObjType  != null  and pm.enforceObjType == 'other'">
+            and eo.enforce_obj_type in ('3','4')
+        </if>
         <if test="pm.enforceOrgIds !=null and pm.enforceOrgIds.size>0">
             and 执法机构id in
             <foreach item="item" index="i" collection="pm.enforceOrgIds" open="(" close=")" separator=",">
@@ -317,7 +324,7 @@
         FROM
         (
         SELECT
-        id,
+        a.id,
         任务编号 jobNo,
         任务类型 jobTypeName,
         检察员名称 executorNames,
@@ -344,6 +351,7 @@
         ) headCorpsAvgTime
         FROM
         v_rw a
+        left join enforce_obj eo on a.检查对象 = eo.id
         WHERE
         状态 = '已归档'
         AND 是否删除 = '正常'
@@ -359,6 +367,12 @@
                 #{item}
             </foreach>
         </if>
+        <if test="pm.enforceObjType  != null  and pm.enforceObjType == 'important'">
+            and eo.enforce_obj_type = '2'
+        </if>
+        <if test="pm.enforceObjType  != null  and pm.enforceObjType == 'other'">
+            and eo.enforce_obj_type in ('3','4')
+        </if>
         <if test="pm.executorId  != null  and pm.executorId != ''">
             and ${pm.executorId} in (检察员ID)
         </if>
@@ -371,7 +385,7 @@
         <if test="pm.endDate != null and pm.endDate !=''">
             AND 结束执行任务时间 <![CDATA[ <= ]]> #{pm.endDate}
         </if>
-        group by id
+        group by a.id
         ) t
         ORDER BY
         rate,enforceOrgId

+ 38 - 0
zfjg-modules/zfjg-manage/src/main/resources/mapper/other/WreportMapper.xml

@@ -0,0 +1,38 @@
+<?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.zfjg.manage.mapper.other.WReportMapper">
+
+    <!-- 根据机构分组查询过错列表   -->
+    <select id="getWreportList" resultType="com.zfjg.manage.api.vo.other.WReportVo">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    org_id orgId,
+                    org_name orgName,
+                    count( user_id ) wUserCount,
+                    count( w_type_c ) dCount,
+                    sum( n_type_c ) nCount,
+                    sum( s_type_c ) wCount
+                FROM
+                    w_report
+            <where>
+                <if test="enforceOrgIds !=null and enforceOrgIds.size>0">
+                    and org_id in
+                    <foreach item="item" index="i" collection="enforceOrgIds" open="(" close=")" separator=",">
+                        #{item}
+                    </foreach>
+                </if>
+                <if test="year  != null  and year != ''">
+                    and year = #{year}
+                </if>
+            </where>
+                GROUP BY
+                    org_id
+            ) t
+        ORDER BY
+            wUserCount DESC
+    </select>
+
+</mapper>