1
0

6 コミット 64bbd42638 ... 0b4cd90eff

作者 SHA1 メッセージ 日付
  linjiawei 0b4cd90eff 考评功能开发 1 ヶ月 前
  linjiawei 7771eb1385 考评功能开发 1 ヶ月 前
  linjiawei 3d131ae4ab 考评功能开发 1 ヶ月 前
  linjiawei 55b40f04da 考评功能开发 1 ヶ月 前
  linjiawei fd64831fc2 Merge remote-tracking branch 'origin/dev' into dev 1 ヶ月 前
  linjiawei 61fbdc86ac 考评功能开发 1 ヶ月 前
24 ファイル変更1619 行追加0 行削除
  1. 46 0
      sql/zfjq_2024121301.sql
  2. 83 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/enforce/job/EnforceDeductRecord.java
  3. 45 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/enforce/job/EnforceDeductRecordSituation.java
  4. 52 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/enforce/job/EnforceDeductSituation.java
  5. 52 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceDeductRecordDTO.java
  6. 24 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceDeductRecordQuery.java
  7. 61 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceEvaluateDTO.java
  8. 21 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceEvaluateQuery.java
  9. 82 0
      zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/vo/enforce/job/WReportDeductVo.java
  10. 69 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceDeductRecordController.java
  11. 70 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceDeductSituationController.java
  12. 53 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceEvaluateController.java
  13. 26 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/enforce/job/EnforceDeductRecordMapper.java
  14. 19 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/enforce/job/EnforceDeductRecordSituationMapper.java
  15. 19 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/enforce/job/EnforceDeductSituationMapper.java
  16. 31 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/enforce/job/IEnforceDeductRecordService.java
  17. 18 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/enforce/job/IEnforceDeductRecordSituationService.java
  18. 18 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/enforce/job/IEnforceDeductSituationService.java
  19. 612 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/job/EnforceDeductRecordServiceImpl.java
  20. 30 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/job/EnforceDeductRecordSituationServiceImpl.java
  21. 30 0
      zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/job/EnforceDeductSituationServiceImpl.java
  22. 135 0
      zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/job/EnforceDeductRecordMapper.xml
  23. 13 0
      zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/job/EnforceDeductRecordSituationMapper.xml
  24. 10 0
      zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/job/EnforceDeductSituationMapper.xml

+ 46 - 0
sql/zfjq_2024121301.sql

@@ -0,0 +1,46 @@
+DROP TABLE IF EXISTS `enforce_deduct_situation`;
+CREATE TABLE `enforce_deduct_situation` (
+                                                   `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+                                                   `situation_content` varchar(1000) DEFAULT NULL COMMENT '情形内容',
+                                                   `single_deduct` double DEFAULT NULL COMMENT '单次扣分',
+                                                   `create_user_id` varchar(64) DEFAULT NULL,
+                                                   `create_user_name` varchar(64) DEFAULT NULL,
+                                                   `create_time` datetime DEFAULT NULL,
+                                                   `update_user_id` varchar(64) DEFAULT NULL,
+                                                   `update_user_name` varchar(128) DEFAULT NULL COMMENT '更新人名称',
+                                                   `update_time` datetime DEFAULT NULL,
+                                                   PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='扣分情形';
+
+
+DROP TABLE IF EXISTS `enforce_deduct_record`;
+CREATE TABLE `enforce_deduct_record` (
+                                            `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
+                                            `enforce_org_id` varchar(64) CHARACTER SET utf8 DEFAULT NULL COMMENT '执法机构ID',
+                                            `enforce_org_name` varchar(128) CHARACTER SET utf8 DEFAULT NULL COMMENT '执法机构名称',
+                                            `executor_id` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '扣分人员id',
+                                            `executor_name` varchar(200) CHARACTER SET utf8 DEFAULT NULL COMMENT '扣分人员名称',
+                                            `deduct_resource` varchar(50) CHARACTER SET utf8 DEFAULT NULL COMMENT '扣分来源(SUPERVISE-内部执法监督,REPORT-举报投诉,RECONSIDERATION-复议、诉讼,PATROL-上级巡察、督导、考评,FIREINVESTIGATION-火灾事故调查,OTHER-其他工作中)',
+                                            `synopsis` text DEFAULT NULL COMMENT '案件简介',
+                                            `deduct_value` double DEFAULT NULL COMMENT '扣分分值',
+                                            `deduct_time` datetime DEFAULT NULL COMMENT '扣分时间',
+                                            `f_down` text COMMENT '上传文件',
+                                            `create_user_id` varchar(64) DEFAULT NULL,
+                                            `create_user_name` varchar(64) DEFAULT NULL,
+                                            `create_time` datetime DEFAULT NULL,
+                                            `update_user_id` varchar(64) DEFAULT NULL,
+                                            `update_user_name` varchar(128) DEFAULT NULL COMMENT '更新人名称',
+                                            `update_time` datetime DEFAULT NULL,
+                                            PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='其他扣分记录';
+
+DROP TABLE IF EXISTS `enforce_deduct_record_situation`;
+CREATE TABLE `enforce_deduct_record_situation` (
+                                            `deduct_record_id` bigint(20) NOT NULL  COMMENT '扣分记录主键id',
+                                            `deduct_situation_id` bigint(20) NOT NULL  COMMENT '扣分情形主键id',
+                                            `times` int(10) DEFAULT NULL COMMENT '扣分次数',
+                                            `single_deduct` double DEFAULT NULL COMMENT '单次扣分',
+                                            `total_deduct` double DEFAULT NULL COMMENT '总扣分(扣分次数*单次扣分)',
+                                            `situation_content` varchar(1000) DEFAULT NULL COMMENT '情形内容 ',
+                                            PRIMARY KEY ( `deduct_record_id`, `deduct_situation_id` ) USING BTREE
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='扣分记录情形关联表';

+ 83 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/enforce/job/EnforceDeductRecord.java

@@ -0,0 +1,83 @@
+package com.zfjg.manage.api.domain.enforce.job;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <p>
+ * 扣分记录
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Getter
+@Setter
+@TableName("enforce_deduct_record")
+@ApiModel(value = "EnforceDeductRecord对象", description = "扣分记录")
+public class EnforceDeductRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("执法机构ID")
+    private String enforceOrgId;
+
+    @ApiModelProperty("执法机构名称")
+    private String enforceOrgName;
+
+    @ApiModelProperty("扣分人员id")
+    private String executorId;
+
+    @ApiModelProperty("扣分人员名称")
+    private String executorName;
+
+    @ApiModelProperty("扣分来源(SUPERVISE-内部执法监督,REPORT-举报投诉,RECONSIDERATION-复议、诉讼,PATROL-上级巡察、督导、考评,FIREINVESTIGATION-火灾事故调查,OTHER-其他工作中)")
+    private String deductResource;
+
+    @ApiModelProperty("案件简介")
+    private String synopsis;
+
+    @ApiModelProperty("扣分分值")
+    private Double deductValue;
+
+    @ApiModelProperty("扣分时间")
+    private Date deductTime;
+
+    @ApiModelProperty("上传文件")
+    private String fDown;
+
+    private String createUserId;
+
+    private String createUserName;
+
+    private Date createTime;
+
+    private String updateUserId;
+
+    @ApiModelProperty("更新人名称")
+    private String updateUserName;
+
+    private Date updateTime;
+
+    @ApiModelProperty("文件")
+    @TableField(exist = false)
+    private List<String> files;
+
+    @ApiModelProperty("扣分情形")
+    @TableField(exist = false)
+    private List<EnforceDeductRecordSituation> enforceDeductRecordSituationList;
+}

+ 45 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/enforce/job/EnforceDeductRecordSituation.java

@@ -0,0 +1,45 @@
+package com.zfjg.manage.api.domain.enforce.job;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 扣分记录情形关联表
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Getter
+@Setter
+@TableName("enforce_deduct_record_situation")
+@ApiModel(value = "EnforceDeductRecordSituation对象", description = "扣分记录情形关联表")
+public class EnforceDeductRecordSituation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("扣分记录主键id(新增前端不用传值)")
+    private Long deductRecordId;
+
+    @ApiModelProperty("扣分情形主键id")
+    private Long deductSituationId;
+
+    @ApiModelProperty("扣分次数")
+    private Integer times;
+
+    @ApiModelProperty("单次扣分")
+    private Double singleDeduct;
+
+    @ApiModelProperty("总扣分(扣分次数*单次扣分)")
+    private Double totalDeduct;
+
+    @ApiModelProperty("情形内容")
+    private String situationContent;
+
+}

+ 52 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/domain/enforce/job/EnforceDeductSituation.java

@@ -0,0 +1,52 @@
+package com.zfjg.manage.api.domain.enforce.job;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 扣分情形
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Getter
+@Setter
+@TableName("enforce_deduct_situation")
+@ApiModel(value = "EnforceDeductSituation对象", description = "扣分情形")
+public class EnforceDeductSituation implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("情形内容")
+    private String situationContent;
+
+    @ApiModelProperty("单次扣分")
+    private Double singleDeduct;
+
+    private String createUserId;
+
+    private String createUserName;
+
+    private Date createTime;
+
+    private String updateUserId;
+
+    @ApiModelProperty("更新人名称")
+    private String updateUserName;
+
+    private Date updateTime;
+}

+ 52 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceDeductRecordDTO.java

@@ -0,0 +1,52 @@
+package com.zfjg.manage.api.dto.enforce.job;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 扣分记录
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Data
+@ApiModel("扣分记录")
+public class EnforceDeductRecordDTO{
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("执法机构ID")
+    private String enforceOrgId;
+
+    @ApiModelProperty("执法机构名称")
+    private String enforceOrgName;
+
+    @ApiModelProperty("扣分人员id")
+    private String executorId;
+
+    @ApiModelProperty("扣分人员名称")
+    private String executorName;
+
+    @ApiModelProperty("扣分来源(SUPERVISE-内部执法监督,REPORT-举报投诉,RECONSIDERATION-复议、诉讼,PATROL-上级巡察、督导、考评,FIREINVESTIGATION-火灾事故调查,OTHER-其他工作中)")
+    private String deductResource;
+
+    @ApiModelProperty("扣分分值")
+    private Double deductValue;
+
+    @ApiModelProperty("扣分时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date deductTime;
+
+    @ApiModelProperty("扣分情形次数")
+    private Integer situationTimes;
+
+
+}

+ 24 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceDeductRecordQuery.java

@@ -0,0 +1,24 @@
+package com.zfjg.manage.api.dto.enforce.job;
+
+import com.zfjg.common.core.web.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("其他扣分情形列表查询条件")
+public class EnforceDeductRecordQuery extends PageQuery {
+
+    @ApiModelProperty(value = "执法机构ID")
+    private String enforceOrgId;
+
+    @ApiModelProperty(value = "扣分人员id")
+    private String executorId;
+
+    @ApiModelProperty(value = "扣分开始时间")
+    private String startDate;
+
+    @ApiModelProperty(value = "扣分结束时间")
+    private String endDate;
+
+}

+ 61 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceEvaluateDTO.java

@@ -0,0 +1,61 @@
+package com.zfjg.manage.api.dto.enforce.job;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * <p>
+ * 执法检查考评
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Data
+@ApiModel("执法检查考评")
+public class EnforceEvaluateDTO {
+
+    @ApiModelProperty("执法机构ID")
+    private String enforceOrgId;
+
+    @ApiModelProperty("执法机构名称")
+    private String enforceOrgName;
+
+    @ApiModelProperty("执法全过程无记录数量")
+    private Integer noProcessCount = 0;
+
+
+    @ApiModelProperty("执法全过程无记录扣分")
+    private Double noProcessScore = 0D;
+
+
+    @ApiModelProperty("超期任务数量")
+    private Integer timeoutCount = 0;
+
+
+    @ApiModelProperty("超期扣分")
+    private Double timeoutScore = 0D;
+
+
+    @ApiModelProperty("执法过错情形数量")
+    private Integer wrongCount = 0;
+
+
+    @ApiModelProperty("执法过错扣分")
+    private Double wrongScore = 0D;
+
+    @ApiModelProperty("其他扣分情形数量")
+    private Integer deductCount = 0;
+
+
+    @ApiModelProperty("其他扣分")
+    private Double deductScore = 0D;
+
+    @ApiModelProperty("总扣分")
+    private Double totalScore = 0D;
+
+
+}

+ 21 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceEvaluateQuery.java

@@ -0,0 +1,21 @@
+package com.zfjg.manage.api.dto.enforce.job;
+
+import com.zfjg.common.core.web.page.PageQuery;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("执法检查考评查询条件")
+public class EnforceEvaluateQuery extends PageQuery {
+
+    @ApiModelProperty(value = "执法机构ID")
+    private String enforceOrgId;
+
+    @ApiModelProperty(value = "开始时间")
+    private String startDate;
+
+    @ApiModelProperty(value = "结束时间")
+    private String endDate;
+
+}

+ 82 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/vo/enforce/job/WReportDeductVo.java

@@ -0,0 +1,82 @@
+package com.zfjg.manage.api.vo.enforce.job;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author linjiawei
+ * @since 2024-12-14
+ */
+@Data
+@ApiModel("执法过错扣分列表")
+public class WReportDeductVo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    private Long id;
+
+    @ApiModelProperty("执法机构")
+    private String orgId;
+
+    @ApiModelProperty("执法机构名称")
+    private String orgName;
+
+    @ApiModelProperty("过错责任人")
+    private String wUser;
+
+    @ApiModelProperty("不当履行职责执法过错情形")
+    private String wType;
+
+    @ApiModelProperty("不当履行职责执法过错情形数量")
+    private Integer wTypeC = 0;
+
+    @ApiModelProperty("不当履行职责执法过错情形扣分")
+    private Double wTypeScore = 0D;
+
+    private String wTypeT;
+
+    @ApiModelProperty("未履行职责执法过错情形")
+    private String nType;
+
+    @ApiModelProperty("未履行职责执法过错情形数量")
+    private Integer nTypeC = 0;
+
+
+    @ApiModelProperty("未履行职责执法过错情形扣分")
+    private Double nTypeScore = 0D;
+
+    private String nTypeT;
+
+    @ApiModelProperty("违法履行职责执法过错情形")
+    private String sType;
+
+    @ApiModelProperty("处理方式")
+    private String dDo;
+
+    @ApiModelProperty("违法履行职责执法过错情形数量")
+    private Integer sTypeC = 0;
+
+    @ApiModelProperty("违法履行职责执法过错情形扣分")
+    private Double sTypeScore = 0D;
+
+    private String sTypeT;
+
+    @ApiModelProperty("执法过错总扣分")
+    private Double wrongScore = 0D;
+
+    private String userId;
+
+
+}

+ 69 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceDeductRecordController.java

@@ -0,0 +1,69 @@
+package com.zfjg.manage.controller.enforce.job;
+
+
+import com.zfjg.common.core.domain.R;
+import com.zfjg.common.core.web.page.TableInfo;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductRecord;
+import com.zfjg.manage.api.dto.enforce.job.EnforceDeductRecordDTO;
+import com.zfjg.manage.api.dto.enforce.job.EnforceDeductRecordQuery;
+import com.zfjg.manage.service.enforce.job.IEnforceDeductRecordService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.ApiOperation;
+
+import java.util.List;
+
+import static com.zfjg.common.core.utils.PageUtils.startPage;
+
+/**
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Api(tags = "其他扣分记录")
+@RestController
+@RequestMapping("/supervise")
+public class EnforceDeductRecordController {
+    @Autowired
+    private IEnforceDeductRecordService enforceDeductRecordService;
+
+    @ApiOperation(value="保存对象")
+    @PostMapping("/enforceDeductRecord")
+    public R<Boolean> save(@RequestBody EnforceDeductRecord param) {
+        return R.ok(enforceDeductRecordService.saveEnforceDeductRecord(param));
+    }
+
+    @ApiOperation(value="根据id修改对象")
+    @PutMapping("/enforceDeductRecord/{id}")
+    public R<Boolean> update(@PathVariable Long id, @RequestBody EnforceDeductRecord param) {
+        EnforceDeductRecord dt = enforceDeductRecordService.getById(id);
+        if(dt==null){
+            return R.fail("扣分记录不存在,无法修改");
+        }
+        param.setId(id);
+        return R.ok(enforceDeductRecordService.updateById(param));
+    }
+
+    @ApiOperation(value="根据id删除对象")
+    @DeleteMapping("/enforceDeductRecord/{id}")
+    public R<Boolean> delete(@PathVariable Long id) {
+        return R.ok(enforceDeductRecordService.deleteEnforceDeductRecord(id));
+    }
+
+    @ApiOperation(value="根据id查询对象")
+    @GetMapping("/enforceDeductRecord/{id}")
+    public R<EnforceDeductRecord> get(@PathVariable Long id) {
+        return R.ok(enforceDeductRecordService.getEnforceDeductRecord(id));
+    }
+
+	@ApiOperation(value="分页查询")
+    @GetMapping("/enforceDeductRecord/page")
+    public TableInfo<EnforceDeductRecordDTO> getPage(EnforceDeductRecordQuery query) {
+        startPage();
+        List<EnforceDeductRecordDTO> list = enforceDeductRecordService.selectEnforceDeductRecordList(query);
+        return new TableInfo<>(list);
+    }
+
+}
+
+

+ 70 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceDeductSituationController.java

@@ -0,0 +1,70 @@
+package com.zfjg.manage.controller.enforce.job;
+
+import java.util.*;
+
+import com.zfjg.common.core.domain.R;
+import com.zfjg.common.security.utils.SecurityUtils;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductSituation;
+import com.zfjg.manage.service.enforce.job.IEnforceDeductSituationService;
+import com.zfjg.system.api.domain.SysUser;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+/**
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Api(tags = "其他扣分情形")
+@RestController
+@RequestMapping("/supervise")
+public class EnforceDeductSituationController {
+    @Autowired
+    private IEnforceDeductSituationService enforceDeductSituationService;
+
+    @ApiOperation(value="保存对象")
+    @PostMapping("/enforceDeductSituation")
+    public R<Long> save(@RequestBody EnforceDeductSituation param) {
+        SysUser user = SecurityUtils.getLoginUser().getSysUser();
+        param.setCreateUserId(user.getUid());
+        param.setCreateUserName(user.getUserName());
+        param.setCreateTime(new Date());
+        enforceDeductSituationService.save(param);
+        return R.ok(param.getId());
+    }
+
+//    @ApiOperation(value="根据id修改对象")
+//    @PutMapping("/enforceDeductSituation/{id}")
+//    public R<Boolean> update(@PathVariable Long id, @RequestBody EnforceDeductSituation param) {
+//        EnforceDeductSituation dt = enforceDeductSituationService.getById(id);
+//        param.setId(id);
+//        return R.ok(enforceDeductSituationService.updateById(param));
+//    }
+//
+//    @ApiOperation(value="根据id删除对象")
+//    @DeleteMapping("/enforceDeductSituation/{id}")
+//    public R<Boolean> delete(@PathVariable Long id) {
+//        return R.ok(enforceDeductSituationService.removeById(id));
+//    }
+
+//    @ApiOperation(value="根据id查询对象")
+//    @GetMapping("/enforceDeductSituation/{id}")
+//    public R<EnforceDeductSituation> get(@PathVariable Long id) {
+//        return R.ok(enforceDeductSituationService.getById(id));
+//    }
+
+    @ApiOperation(value="列表查询")
+    @GetMapping("/enforceDeductSituation/list")
+    public R<List<EnforceDeductSituation>> getList(@ApiParam("关键字") String keyword) {
+		Map paramMap = new HashMap();
+		paramMap.put("keyword", keyword);
+        return R.ok(enforceDeductSituationService.list(paramMap));
+    }
+
+
+
+}
+
+

+ 53 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceEvaluateController.java

@@ -0,0 +1,53 @@
+package com.zfjg.manage.controller.enforce.job;
+
+
+import com.zfjg.common.core.domain.R;
+import com.zfjg.common.core.web.page.TableInfo;
+import com.zfjg.manage.api.dto.enforce.job.EnforceEvaluateDTO;
+import com.zfjg.manage.api.dto.enforce.job.EnforceEvaluateQuery;
+import com.zfjg.manage.api.dto.other.WReportQuery;
+import com.zfjg.manage.api.vo.enforce.job.WReportDeductVo;
+import com.zfjg.manage.api.vo.other.WReportVo;
+import com.zfjg.manage.service.enforce.job.IEnforceDeductRecordService;
+import com.zfjg.manage.service.other.WReportBizService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static com.zfjg.common.core.utils.PageUtils.startPage;
+
+
+/**
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Api(tags = "执法检查考评")
+@RestController
+@RequestMapping("/supervise")
+class EnforceEvaluateController {
+    @Autowired
+    private IEnforceDeductRecordService enforceDeductRecordService;
+    @ApiOperation(value="查询执法考评列表(不分页)")
+    @GetMapping("/evaluate/list")
+    public R<List<EnforceEvaluateDTO>> getList(EnforceEvaluateQuery query) {
+        List<EnforceEvaluateDTO> list = enforceDeductRecordService.selectEvaluateList(query);
+        return R.ok(list);
+    }
+
+
+    @ApiOperation(value = "执法过错扣分列表(分页)")
+    @GetMapping("/wreport/list")
+    public TableInfo<WReportDeductVo> getWreportList(EnforceEvaluateQuery query) {
+        startPage();
+        List<WReportDeductVo> wReportList = enforceDeductRecordService.selectWreportList(query);
+        return new TableInfo<>(wReportList);
+    }
+
+
+}
+
+

+ 26 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/enforce/job/EnforceDeductRecordMapper.java

@@ -0,0 +1,26 @@
+package com.zfjg.manage.mapper.enforce.job;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductRecord;
+import com.zfjg.manage.api.dto.enforce.job.EnforceDeductRecordDTO;
+import com.zfjg.manage.api.dto.enforce.job.EnforceDeductRecordQuery;
+import com.zfjg.manage.api.dto.enforce.job.EnforceEvaluateDTO;
+import com.zfjg.manage.api.dto.enforce.job.EnforceEvaluateQuery;
+import com.zfjg.manage.api.vo.enforce.job.WReportDeductVo;
+import org.apache.ibatis.annotations.Param;
+import java.util.List;
+
+/**
+ * <p>
+ * 扣分记录 Mapper 接口
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+public interface EnforceDeductRecordMapper extends BaseMapper<EnforceDeductRecord> {
+  List<EnforceDeductRecordDTO> list(@Param("pm") EnforceDeductRecordQuery param);
+  List<EnforceEvaluateDTO> selectEvaluateList(@Param("pm") EnforceEvaluateQuery param);
+  List<WReportDeductVo> selectWreportList(@Param("pm") EnforceEvaluateQuery param);
+
+}

+ 19 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/enforce/job/EnforceDeductRecordSituationMapper.java

@@ -0,0 +1,19 @@
+package com.zfjg.manage.mapper.enforce.job;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductRecordSituation;
+import org.apache.ibatis.annotations.Param;
+import java.util.Map;
+import java.util.List;
+
+/**
+ * <p>
+ * 扣分记录情形关联表 Mapper 接口
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+public interface EnforceDeductRecordSituationMapper extends BaseMapper<EnforceDeductRecordSituation> {
+  List<EnforceDeductRecordSituation> list(@Param("pm") Map<String, Object> param);
+}

+ 19 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/enforce/job/EnforceDeductSituationMapper.java

@@ -0,0 +1,19 @@
+package com.zfjg.manage.mapper.enforce.job;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductSituation;
+import org.apache.ibatis.annotations.Param;
+import java.util.Map;
+import java.util.List;
+
+/**
+ * <p>
+ * 扣分情形 Mapper 接口
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+public interface EnforceDeductSituationMapper extends BaseMapper<EnforceDeductSituation> {
+  List<EnforceDeductSituation> list(@Param("pm") Map<String, Object> param);
+}

+ 31 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/enforce/job/IEnforceDeductRecordService.java

@@ -0,0 +1,31 @@
+package com.zfjg.manage.service.enforce.job;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductRecord;
+import com.zfjg.manage.api.dto.enforce.job.EnforceDeductRecordDTO;
+import com.zfjg.manage.api.dto.enforce.job.EnforceDeductRecordQuery;
+import com.zfjg.manage.api.dto.enforce.job.EnforceEvaluateDTO;
+import com.zfjg.manage.api.dto.enforce.job.EnforceEvaluateQuery;
+import com.zfjg.manage.api.vo.enforce.job.WReportDeductVo;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+/**
+ * <p>
+ * 扣分记录 服务类
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+public interface IEnforceDeductRecordService extends IService<EnforceDeductRecord> {
+    boolean saveEnforceDeductRecord(EnforceDeductRecord record);
+    boolean updateEnforceDeductRecord(EnforceDeductRecord record);
+    boolean deleteEnforceDeductRecord(Long id);
+    EnforceDeductRecord getEnforceDeductRecord(Long id);
+    List<EnforceDeductRecordDTO> selectEnforceDeductRecordList(EnforceDeductRecordQuery query);
+    List<EnforceEvaluateDTO> selectEvaluateList(EnforceEvaluateQuery param);
+    List<WReportDeductVo> selectWreportList(EnforceEvaluateQuery param);
+
+
+}

+ 18 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/enforce/job/IEnforceDeductRecordSituationService.java

@@ -0,0 +1,18 @@
+package com.zfjg.manage.service.enforce.job;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductRecordSituation;
+
+import java.util.Map;
+import java.util.List;
+/**
+ * <p>
+ * 扣分记录情形关联表 服务类
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+public interface IEnforceDeductRecordSituationService extends IService<EnforceDeductRecordSituation> {
+    List<EnforceDeductRecordSituation> list(Map<String, Object> param);
+}

+ 18 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/enforce/job/IEnforceDeductSituationService.java

@@ -0,0 +1,18 @@
+package com.zfjg.manage.service.enforce.job;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductSituation;
+
+import java.util.Map;
+import java.util.List;
+/**
+ * <p>
+ * 扣分情形 服务类
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+public interface IEnforceDeductSituationService extends IService<EnforceDeductSituation> {
+    List<EnforceDeductSituation> list(Map<String, Object> param);
+}

+ 612 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/job/EnforceDeductRecordServiceImpl.java

@@ -0,0 +1,612 @@
+package com.zfjg.manage.service.impl.enforce.job;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zfjg.common.security.utils.SecurityUtils;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductRecord;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductRecordSituation;
+import com.zfjg.manage.api.domain.other.WReport;
+import com.zfjg.manage.api.dto.enforce.job.*;
+import com.zfjg.manage.api.vo.enforce.job.WReportDeductVo;
+import com.zfjg.manage.mapper.enforce.job.EnforceDeductRecordMapper;
+import com.zfjg.manage.mapper.sys.DeptMapper;
+import com.zfjg.manage.service.enforce.job.IEnforceDeductRecordService;
+import com.zfjg.manage.service.enforce.job.IEnforceDeductRecordSituationService;
+import com.zfjg.system.api.domain.SysDept;
+import com.zfjg.system.api.domain.SysUser;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 扣分记录 服务实现类
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Service
+public class EnforceDeductRecordServiceImpl extends ServiceImpl<EnforceDeductRecordMapper, EnforceDeductRecord> implements IEnforceDeductRecordService {
+    @Autowired(required = false)
+    private EnforceDeductRecordMapper enforceDeductRecordMapper;
+    @Autowired(required = false)
+    private DeptMapper deptMapper;
+    @Autowired
+    private IEnforceDeductRecordSituationService enforceDeductRecordSituationService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean saveEnforceDeductRecord(EnforceDeductRecord record) {
+        SysUser user = SecurityUtils.getLoginUser().getSysUser();
+        record.setCreateUserId(user.getUid());
+        record.setCreateUserName(user.getUserName());
+        record.setCreateTime(new Date());
+        //文件
+        if (ObjectUtil.isNotEmpty(record.getFiles())) {
+            record.setFDown(String.join("|||", record.getFiles()));
+        }
+        this.save(record);
+        //扣分情形
+        List<EnforceDeductRecordSituation> edrsList = record.getEnforceDeductRecordSituationList();
+        if (ObjectUtil.isNotEmpty(edrsList)) {
+            edrsList.forEach(e -> {
+                e.setDeductRecordId(record.getId());
+            });
+            enforceDeductRecordSituationService.saveBatch(edrsList);
+        }
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean updateEnforceDeductRecord(EnforceDeductRecord record) {
+        SysUser user = SecurityUtils.getLoginUser().getSysUser();
+        record.setUpdateUserId(user.getUid());
+        record.setUpdateUserName(user.getUserName());
+        record.setUpdateTime(new Date());
+        //文件
+        if (ObjectUtil.isNotEmpty(record.getFiles())) {
+            record.setFDown(String.join("|||", record.getFiles()));
+        }
+        this.updateById(record);
+        //扣分情形
+        enforceDeductRecordSituationService.remove(new LambdaQueryWrapper<EnforceDeductRecordSituation>()
+                .eq(EnforceDeductRecordSituation::getDeductRecordId, record.getId()));
+        List<EnforceDeductRecordSituation> edrsList = record.getEnforceDeductRecordSituationList();
+        if (ObjectUtil.isNotEmpty(edrsList)) {
+            edrsList.forEach(e -> {
+                e.setDeductRecordId(record.getId());
+            });
+            enforceDeductRecordSituationService.saveBatch(edrsList);
+        }
+        return true;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean deleteEnforceDeductRecord(Long id) {
+        this.removeById(id);
+        enforceDeductRecordSituationService.remove(new LambdaQueryWrapper<EnforceDeductRecordSituation>()
+                .eq(EnforceDeductRecordSituation::getDeductRecordId, id));
+        return true;
+    }
+
+    @Override
+    public EnforceDeductRecord getEnforceDeductRecord(Long id) {
+        EnforceDeductRecord record = this.getById(id);
+        List<EnforceDeductRecordSituation> list = enforceDeductRecordSituationService
+                .list(new LambdaQueryWrapper<EnforceDeductRecordSituation>()
+                        .eq(EnforceDeductRecordSituation::getDeductRecordId, id));
+        if (ObjectUtils.isNotEmpty(list)) {
+            record.setEnforceDeductRecordSituationList(list);
+        }
+        return record;
+    }
+
+    @Override
+    public List<EnforceDeductRecordDTO> selectEnforceDeductRecordList(EnforceDeductRecordQuery query) {
+        if (ObjectUtil.isEmpty(query.getEnforceOrgId())) {
+            String orgId = SecurityUtils.getOrgId();
+            List<SysDept> sysDepts = deptMapper.selectList(new LambdaQueryWrapper<SysDept>()
+                    .select(SysDept::getRegionCode, SysDept::getParentId)
+                    .eq(SysDept::getEnforceOrgId, orgId));
+            if (CollectionUtils.isEmpty(sysDepts)) return new ArrayList<>();
+            List<Long> parentIds = sysDepts.stream().map(SysDept::getParentId).collect(Collectors.toList());
+            //总队
+            if (!parentIds.contains(0L)) {
+                query.setEnforceOrgId(orgId);
+            }
+        }
+        return enforceDeductRecordMapper.list(query);
+    }
+
+    @Override
+    public List<EnforceEvaluateDTO> selectEvaluateList(EnforceEvaluateQuery param) {
+        List<EnforceEvaluateDTO> list = enforceDeductRecordMapper.selectEvaluateList(param);
+        List<WReportDeductVo> wReportList = enforceDeductRecordMapper.selectWreportList(param);
+        Map<String, List<WReportDeductVo>> wmap = wReportList.stream().collect(Collectors.groupingBy(WReportDeductVo::getOrgId));
+        list.forEach(e -> {
+            e.setNoProcessScore(e.getNoProcessCount() * 0.5 >= 2 ? 2 : e.getNoProcessCount() * 0.5);
+            e.setTimeoutScore(e.getTimeoutCount() * 0.3 >= 2 ? 2 : e.getTimeoutCount() * 0.3);
+            e.setDeductScore(e.getDeductScore() >= 2 ? 2 : e.getDeductScore());
+            //一个机构的
+            List<WReportDeductVo> wReports = wmap.get(e.getEnforceOrgId());
+            double wscore = 0;
+            double nscore = 0;
+            double sscore = 0;
+            double w1 = 0, w2 = 0, w3 = 0, w4 = 0, w5 = 0, w6 = 0, w7 = 0, w8 = 0, w9 = 0, w10 = 0;
+            double n1 = 0, n2 = 0, n3 = 0, n4 = 0, n5 = 0, n6 = 0, n7 = 0, n8 = 0, n9 = 0, n10 = 0, n11 = 0, n12 = 0, n13 = 0;
+            double s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, s6 = 0, s7 = 0, s8 = 0, s9 = 0, s10 = 0, s11 = 0, s12 = 0, s13 = 0, s14 = 0, s15 = 0, s16 = 0, s17 = 0, s18 = 0;
+            int wrongCount = 0;
+            if (ObjectUtils.isNotEmpty(wReports)) {
+                for (WReportDeductVo w : wReports) {
+                    //(一)不当履行职责
+                    if (w.getWTypeC() > 0) {
+                        JSONArray warray =  JSON.parseArray(w.getWTypeT());
+                        for (int i = 1; i <= 9; i++) {
+                            int v = ((JSONObject)warray.get(i-1)).getInteger("num" + i);
+                            wrongCount += v;
+                            double vvalue = v * 0.1;
+                            switch (i) {
+                                case 1:
+                                    w1 += vvalue;
+                                    break;
+                                case 2:
+                                    w2 += vvalue;
+                                    break;
+                                case 3://监督执法事项未通过消防监督管理系统进行流转、办理的,以及无正当理由随意删除、作废的;(扣0.5分/次,该项每个单位总扣分不超过2分)
+                                    w3 += v * 0.5;
+                                    break;
+                                case 4://选择性执法或者错误适用行政处罚裁量标准一类阶次及以上,执法行为明显不当或者执法结果明显不公正的;(扣0.3分/次,该项每个单位总扣分不超过2分)
+                                    w4 += v * 0.3;
+                                    break;
+                                case 5://作出终止调查或不予处罚决定不符合规定的;(扣2分/次,该项每个单位总扣分不超过2分)
+                                    w5 += v * 2;
+                                    break;
+                                case 6:
+                                    w6 += vvalue;
+                                    break;
+                                case 7:
+                                    w7 += vvalue;
+                                    break;
+                                case 8://当事人不履行罚款决定,且在法定期限内不申请行政复议或者提起行政诉讼的,自期限届满之日起三个月内,未依法申请人民法院强制执行的;(扣0.3分/次,该项每个单位总扣分不超过2分
+                                    w8 += v * 0.3;
+                                    break;
+                                case 9:
+                                    w9 += vvalue;
+                                    break;
+                                case 10:
+                                    w10 += vvalue;
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }
+                    }
+                    //(二)未履行职责
+                    if (w.getNTypeC() > 0) {
+                        JSONArray narray =  JSON.parseArray(w.getNTypeT());
+                        for (int i = 1; i <= 12; i++) {
+                            int v = ((JSONObject)narray.get(i-1)).getInteger("wlxNum" + i);
+                            wrongCount += v;
+                            double vvalue = v * 0.1;
+                            switch (i) {
+                                case 1:
+                                    n1 += vvalue;
+                                    break;
+                                case 2:
+                                    n2 += vvalue;
+                                    break;
+                                case 3:
+                                    n3 += vvalue;
+                                    break;
+                                case 4:
+                                    n4 += vvalue;
+                                    break;
+                                case 5://对符合行政处罚立案标准的案件不立案或者不及时立案的;(扣1分/次,该项每个单位总扣分不超过2分)
+                                    n5 += v * 1;
+                                    break;
+                                case 6://执法过程中违反执法公示、重大执法决定法制审核制度的;(扣0.2分/次,该项每个单位总扣分不超过2分)
+                                    n6 += v * 0.2;
+                                case 7:
+                                    n7 += vvalue;
+                                    break;
+                                case 8:
+                                    n8 += vvalue;
+                                    break;
+                                case 9:
+                                    n9 += vvalue;
+                                    break;
+                                case 10:
+                                    n10 += vvalue;
+                                    break;
+                                case 11:
+                                    n11 += vvalue;
+                                    break;
+                                case 12:
+                                    n12 += vvalue;
+                                    break;
+                                case 13:
+                                    n13 += vvalue;
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }
+                    }
+                    //(三)违法履行职责
+                    if (w.getSTypeC() > 0) {
+                        JSONArray sarray =  JSON.parseArray(w.getSTypeT());
+                        for (int i = 1; i <= 17; i++) {
+                            int v = ((JSONObject)sarray.get(i-1)).getInteger("wflxNum" + i);
+                            wrongCount += v;
+                            double vvalue = v * 0.1;
+                            switch (i) {
+                                case 1:
+                                    s1 += vvalue;
+                                    break;
+                                case 2:
+                                    s2 += vvalue;
+                                    break;
+                                case 3:
+                                    s3 += vvalue;
+                                    break;
+                                case 4:
+                                    s4 += vvalue;
+                                    break;
+                                case 5:
+                                    s5 += vvalue;
+                                    break;
+                                case 6:
+                                    s6 += vvalue;
+                                    break;
+                                case 7://无故拖延,不在法定期限内作出行政决定的(扣0.3分/次,该项每个单位总扣分不超过2分)
+                                    s7 += v * 0.3;
+                                    break;
+                                case 8:
+                                    s8 += vvalue;
+                                    break;
+                                case 9:
+                                    s9 += vvalue;
+                                    break;
+                                case 10:
+                                    s10 += vvalue;
+                                    break;
+                                case 11:
+                                    s11 += vvalue;
+                                    break;
+                                case 12:
+                                    s12 += vvalue;
+                                    break;
+                                case 13:
+                                    s13 += vvalue;
+                                    break;
+                                case 14:
+                                    s14 += vvalue;
+                                    break;
+                                case 15:
+                                    s15 += vvalue;
+                                    break;
+                                case 16:
+                                    s16 += vvalue;
+                                    break;
+                                case 17:
+                                    s17 += vvalue;
+                                    break;
+                                case 18:
+                                    s18 += vvalue;
+                                    break;
+                                default:
+                                    break;
+                            }
+                        }
+                    }
+                }
+            }
+
+            w1 = w1 >= 2 ? 2 : w1;
+            w2 = w2 >= 2 ? 2 : w2;
+            w3 = w3 >= 2 ? 2 : w3;
+            w4 = w4 >= 2 ? 2 : w4;
+            w5 = w5 >= 2 ? 2 : w5;
+            w6 = w6 >= 2 ? 2 : w6;
+            w7 = w7 >= 2 ? 2 : w7;
+            w8 = w8 >= 2 ? 2 : w8;
+            w9 = w9 >= 2 ? 2 : w9;
+            w10 = w10 >= 2 ? 2 : w10;
+            wscore = w1 + w2 + w3 + w4 + w5 + w6 + w7 + w8 + w9 + w10;
+
+
+            n1 = n1 >= 2 ? 2 : n1;
+            n2 = n2 >= 2 ? 2 : n2;
+            n3 = n3 >= 2 ? 2 : n3;
+            n4 = n4 >= 2 ? 2 : n4;
+            n5 = n5 >= 2 ? 2 : n5;
+            n6 = n6 >= 2 ? 2 : n6;
+            n7 = n7 >= 2 ? 2 : n7;
+            n8 = n8 >= 2 ? 2 : n8;
+            n9 = n9 >= 2 ? 2 : n9;
+            n10 = n10 >= 2 ? 2 : n10;
+            n11 = n11 >= 2 ? 2 : n11;
+            n12 = n12 >= 2 ? 2 : n12;
+            n13 = n13 >= 2 ? 2 : n13;
+            nscore = n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8 + n9 + n10 + n11 + n12 + n13;
+
+            s1 = s1 >= 2 ? 2 : s1;
+            s2 = s2 >= 2 ? 2 : s2;
+            s3 = s3 >= 2 ? 2 : s3;
+            s4 = s4 >= 2 ? 2 : s4;
+            s5 = s5 >= 2 ? 2 : s5;
+            s6 = s6 >= 2 ? 2 : s6;
+            s7 = s7 >= 2 ? 2 : s7;
+            s8 = s8 >= 2 ? 2 : s8;
+            s9 = s9 >= 2 ? 2 : s9;
+            s10 = s10 >= 2 ? 2 : s10;
+            s11 = s11 >= 2 ? 2 : s11;
+            s12 = s12 >= 2 ? 2 : s12;
+            s13 = s13 >= 2 ? 2 : s13;
+            s14 = s14 >= 2 ? 2 : s14;
+            s15 = s15 >= 2 ? 2 : s15;
+            s16 = s16 >= 2 ? 2 : s16;
+            s17 = s17 >= 2 ? 2 : s17;
+            s18 = s18 >= 2 ? 2 : s18;
+            sscore = s1 + s2 + s3 + s4 + s5 + s6 + s7 + s8 + s9 + s10 + s11 + s12 + s13 + s14 + s15 + s16 + s17 + s17 + s18;
+
+            e.setWrongCount(wrongCount);
+            e.setWrongScore(wscore + nscore + sscore);
+            e.setTotalScore(e.getDeductScore() + e.getWrongScore() + e.getTimeoutScore() + e.getNoProcessScore());
+        });
+        list.sort(Comparator.comparing(EnforceEvaluateDTO::getTotalScore).thenComparing(EnforceEvaluateDTO::getEnforceOrgId));
+        return list;
+    }
+
+    public  void handleWreporData(){
+
+
+    }
+
+    @Override
+    public List<WReportDeductVo> selectWreportList(EnforceEvaluateQuery param) {
+        List<WReportDeductVo> wReportList = enforceDeductRecordMapper.selectWreportList(param);
+        if (ObjectUtils.isNotEmpty(wReportList)) {
+            for (WReportDeductVo w : wReportList) {
+                double wscore = 0;
+                double nscore = 0;
+                double sscore = 0;
+                double w1 = 0, w2 = 0, w3 = 0, w4 = 0, w5 = 0, w6 = 0, w7 = 0, w8 = 0, w9 = 0, w10 = 0;
+                double n1 = 0, n2 = 0, n3 = 0, n4 = 0, n5 = 0, n6 = 0, n7 = 0, n8 = 0, n9 = 0, n10 = 0, n11 = 0, n12 = 0, n13 = 0;
+                double s1 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, s6 = 0, s7 = 0, s8 = 0, s9 = 0, s10 = 0, s11 = 0, s12 = 0, s13 = 0, s14 = 0, s15 = 0, s16 = 0, s17 = 0, s18 = 0;
+                int wrongCount = 0;
+                //(一)不当履行职责
+                if (w.getWTypeC() > 0) {
+                    JSONArray warray =  JSON.parseArray(w.getWTypeT());
+                    for (int i = 1; i <= 9; i++) {
+                        int v = ((JSONObject)warray.get(i-1)).getInteger("num" + i);
+                        wrongCount += v;
+                        double vvalue = v * 0.1;
+                        switch (i) {
+                            case 1:
+                                w1 += vvalue;
+                                break;
+                            case 2:
+                                w2 += vvalue;
+                                break;
+                            case 3://监督执法事项未通过消防监督管理系统进行流转、办理的,以及无正当理由随意删除、作废的;(扣0.5分/次,该项每个单位总扣分不超过2分)
+                                w3 += v * 0.5;
+                                break;
+                            case 4://选择性执法或者错误适用行政处罚裁量标准一类阶次及以上,执法行为明显不当或者执法结果明显不公正的;(扣0.3分/次,该项每个单位总扣分不超过2分)
+                                w4 += v * 0.3;
+                                break;
+                            case 5://作出终止调查或不予处罚决定不符合规定的;(扣2分/次,该项每个单位总扣分不超过2分)
+                                w5 += v * 2;
+                                break;
+                            case 6:
+                                w6 += vvalue;
+                                break;
+                            case 7:
+                                w7 += vvalue;
+                                break;
+                            case 8://当事人不履行罚款决定,且在法定期限内不申请行政复议或者提起行政诉讼的,自期限届满之日起三个月内,未依法申请人民法院强制执行的;(扣0.3分/次,该项每个单位总扣分不超过2分
+                                w8 += v * 0.3;
+                                break;
+                            case 9:
+                                w9 += vvalue;
+                                break;
+                            case 10:
+                                w10 += vvalue;
+                                break;
+                            default:
+                                break;
+                        }
+                    }
+                }
+                //(二)未履行职责
+                if (w.getNTypeC() > 0) {
+                    JSONArray narray =  JSON.parseArray(w.getNTypeT());
+                    for (int i = 1; i <= 12; i++) {
+                        int v = ((JSONObject)narray.get(i-1)).getInteger("wlxNum" + i);
+                        wrongCount += v;
+                        double vvalue = v * 0.1;
+                        switch (i) {
+                            case 1:
+                                n1 += vvalue;
+                                break;
+                            case 2:
+                                n2 += vvalue;
+                                break;
+                            case 3:
+                                n3 += vvalue;
+                                break;
+                            case 4:
+                                n4 += vvalue;
+                                break;
+                            case 5://对符合行政处罚立案标准的案件不立案或者不及时立案的;(扣1分/次,该项每个单位总扣分不超过2分)
+                                n5 += v * 1;
+                                break;
+                            case 6://执法过程中违反执法公示、重大执法决定法制审核制度的;(扣0.2分/次,该项每个单位总扣分不超过2分)
+                                n6 += v * 0.2;
+                            case 7:
+                                n7 += vvalue;
+                                break;
+                            case 8:
+                                n8 += vvalue;
+                                break;
+                            case 9:
+                                n9 += vvalue;
+                                break;
+                            case 10:
+                                n10 += vvalue;
+                                break;
+                            case 11:
+                                n11 += vvalue;
+                                break;
+                            case 12:
+                                n12 += vvalue;
+                                break;
+                            case 13:
+                                n13 += vvalue;
+                                break;
+                            default:
+                                break;
+                        }
+                    }
+                }
+                //(三)违法履行职责
+                if (w.getSTypeC() > 0) {
+                    JSONArray sarray =  JSON.parseArray(w.getSTypeT());
+                    for (int i = 1; i <= 17; i++) {
+                        int v = ((JSONObject)sarray.get(i-1)).getInteger("wflxNum" + i);
+                        wrongCount += v;
+                        double vvalue = v * 0.1;
+                        switch (i) {
+                            case 1:
+                                s1 += vvalue;
+                                break;
+                            case 2:
+                                s2 += vvalue;
+                                break;
+                            case 3:
+                                s3 += vvalue;
+                                break;
+                            case 4:
+                                s4 += vvalue;
+                                break;
+                            case 5:
+                                s5 += vvalue;
+                                break;
+                            case 6:
+                                s6 += vvalue;
+                                break;
+                            case 7://无故拖延,不在法定期限内作出行政决定的(扣0.3分/次,该项每个单位总扣分不超过2分)
+                                s7 += v * 0.3;
+                                break;
+                            case 8:
+                                s8 += vvalue;
+                                break;
+                            case 9:
+                                s9 += vvalue;
+                                break;
+                            case 10:
+                                s10 += vvalue;
+                                break;
+                            case 11:
+                                s11 += vvalue;
+                                break;
+                            case 12:
+                                s12 += vvalue;
+                                break;
+                            case 13:
+                                s13 += vvalue;
+                                break;
+                            case 14:
+                                s14 += vvalue;
+                                break;
+                            case 15:
+                                s15 += vvalue;
+                                break;
+                            case 16:
+                                s16 += vvalue;
+                                break;
+                            case 17:
+                                s17 += vvalue;
+                                break;
+                            case 18:
+                                s18 += vvalue;
+                                break;
+                            default:
+                                break;
+                        }
+                    }
+                }
+
+                w1 = w1 >= 2 ? 2 : w1;
+                w2 = w2 >= 2 ? 2 : w2;
+                w3 = w3 >= 2 ? 2 : w3;
+                w4 = w4 >= 2 ? 2 : w4;
+                w5 = w5 >= 2 ? 2 : w5;
+                w6 = w6 >= 2 ? 2 : w6;
+                w7 = w7 >= 2 ? 2 : w7;
+                w8 = w8 >= 2 ? 2 : w8;
+                w9 = w9 >= 2 ? 2 : w9;
+                w10 = w10 >= 2 ? 2 : w10;
+                wscore = w1 + w2 + w3 + w4 + w5 + w6 + w7 + w8 + w9 + w10;
+
+
+                n1 = n1 >= 2 ? 2 : n1;
+                n2 = n2 >= 2 ? 2 : n2;
+                n3 = n3 >= 2 ? 2 : n3;
+                n4 = n4 >= 2 ? 2 : n4;
+                n5 = n5 >= 2 ? 2 : n5;
+                n6 = n6 >= 2 ? 2 : n6;
+                n7 = n7 >= 2 ? 2 : n7;
+                n8 = n8 >= 2 ? 2 : n8;
+                n9 = n9 >= 2 ? 2 : n9;
+                n10 = n10 >= 2 ? 2 : n10;
+                n11 = n11 >= 2 ? 2 : n11;
+                n12 = n12 >= 2 ? 2 : n12;
+                n13 = n13 >= 2 ? 2 : n13;
+                nscore = n1 + n2 + n3 + n4 + n5 + n6 + n7 + n8 + n9 + n10 + n11 + n12 + n13;
+
+                s1 = s1 >= 2 ? 2 : s1;
+                s2 = s2 >= 2 ? 2 : s2;
+                s3 = s3 >= 2 ? 2 : s3;
+                s4 = s4 >= 2 ? 2 : s4;
+                s5 = s5 >= 2 ? 2 : s5;
+                s6 = s6 >= 2 ? 2 : s6;
+                s7 = s7 >= 2 ? 2 : s7;
+                s8 = s8 >= 2 ? 2 : s8;
+                s9 = s9 >= 2 ? 2 : s9;
+                s10 = s10 >= 2 ? 2 : s10;
+                s11 = s11 >= 2 ? 2 : s11;
+                s12 = s12 >= 2 ? 2 : s12;
+                s13 = s13 >= 2 ? 2 : s13;
+                s14 = s14 >= 2 ? 2 : s14;
+                s15 = s15 >= 2 ? 2 : s15;
+                s16 = s16 >= 2 ? 2 : s16;
+                s17 = s17 >= 2 ? 2 : s17;
+                s18 = s18 >= 2 ? 2 : s18;
+                sscore = s1 + s2 + s3 + s4 + s5 + s6 + s7 + s8 + s9 + s10 + s11 + s12 + s13 + s14 + s15 + s16 + s17 + s17 + s18;
+
+//                w.setWrongCount(wrongCount);
+                w.setNTypeScore(nscore);
+                w.setWTypeScore(wscore);
+                w.setSTypeScore(sscore);
+                w.setWrongScore(wscore + nscore + sscore);
+            }
+
+        }
+        return wReportList;
+    }
+
+}

+ 30 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/job/EnforceDeductRecordSituationServiceImpl.java

@@ -0,0 +1,30 @@
+package com.zfjg.manage.service.impl.enforce.job;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductRecordSituation;
+import com.zfjg.manage.mapper.enforce.job.EnforceDeductRecordSituationMapper;
+import com.zfjg.manage.service.enforce.job.IEnforceDeductRecordSituationService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+/**
+ * <p>
+ * 扣分记录情形关联表 服务实现类
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Service
+public class EnforceDeductRecordSituationServiceImpl extends ServiceImpl<EnforceDeductRecordSituationMapper, EnforceDeductRecordSituation> implements IEnforceDeductRecordSituationService {
+    @Autowired(required = false)
+    private EnforceDeductRecordSituationMapper enforceDeductRecordSituationMapper;
+
+    @Override
+    public List<EnforceDeductRecordSituation> list(Map<String, Object> param) {
+        return enforceDeductRecordSituationMapper.list(param);
+    }
+}

+ 30 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/service/impl/enforce/job/EnforceDeductSituationServiceImpl.java

@@ -0,0 +1,30 @@
+package com.zfjg.manage.service.impl.enforce.job;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zfjg.manage.api.domain.enforce.job.EnforceDeductSituation;
+import com.zfjg.manage.mapper.enforce.job.EnforceDeductSituationMapper;
+import com.zfjg.manage.service.enforce.job.IEnforceDeductSituationService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import org.springframework.beans.factory.annotation.Autowired;
+/**
+ * <p>
+ * 扣分情形 服务实现类
+ * </p>
+ *
+ * @author ljw
+ * @since 2024-12-13
+ */
+@Service
+public class EnforceDeductSituationServiceImpl extends ServiceImpl<EnforceDeductSituationMapper, EnforceDeductSituation> implements IEnforceDeductSituationService {
+    @Autowired(required = false)
+    private EnforceDeductSituationMapper enforceDeductSituationMapper;
+
+    @Override
+    public List<EnforceDeductSituation> list(Map<String, Object> param) {
+        return enforceDeductSituationMapper.list(param);
+    }
+}

+ 135 - 0
zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/job/EnforceDeductRecordMapper.xml

@@ -0,0 +1,135 @@
+<?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.enforce.job.EnforceDeductRecordMapper">
+
+    <select id="list" resultType="com.zfjg.manage.api.dto.enforce.job.EnforceDeductRecordDTO">
+        SELECT
+            a.id,
+            a.enforce_org_id,
+            a.enforce_org_name,
+            a.executor_id,
+            a.executor_name,
+            a.deduct_value,
+            a.deduct_time,
+             a.deduct_resource,
+            ( SELECT sum( total_deduct ) FROM enforce_deduct_record_situation b WHERE b.deduct_record_id = a.id ) situationTimes
+        FROM
+            enforce_deduct_record a
+        <where>
+            <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
+                and a.enforce_org_id = #{pm.enforceOrgId}
+            </if>
+            <if test="pm.startDate != null and pm.startDate !=''">
+                AND a.deduct_time <![CDATA[ >= ]]> #{pm.startDate}
+            </if>
+            <if test="pm.endDate != null and pm.endDate !=''">
+                AND a.deduct_time <![CDATA[ <= ]]> #{pm.endDate}
+            </if>
+            <if test="pm.executorId  != null  and pm.executorId != ''">
+                and a.executor_id = #{pm.executorId}
+            </if>
+        </where>
+    </select>
+
+
+    <select id="selectEvaluateList" resultType="com.zfjg.manage.api.dto.enforce.job.EnforceEvaluateDTO">
+        select  enforce_org_id,enforce_org_name,(
+            SELECT
+            count( 1 )
+            FROM
+            enforce_job ej
+            WHERE
+            ej.is_deleted = '0'
+            AND ej.job_status = 'ARCHIVED'
+            AND ej.enforce_org_id = eo.enforce_org_id
+            AND ej.id NOT IN (
+            SELECT
+            ev.enfore_job_id
+            FROM
+            enforce_video ev
+            WHERE
+            is_deleted = 0
+            AND ev.enfore_job_id IS NOT NULL
+            AND ev.enforce_org_id = eo.enforce_org_id
+            )
+            <if test="pm.startDate != null and pm.startDate !=''">
+                AND finish_time <![CDATA[ >= ]]> #{pm.startDate}
+            </if>
+            <if test="pm.endDate != null and pm.endDate !=''">
+                AND finish_time <![CDATA[ <= ]]> #{pm.endDate}
+            </if>
+         ) noProcessCount,
+        (
+            SELECT
+            count( 1 )
+            FROM
+            enforce_job a
+            WHERE
+            a.enforce_org_id = eo.enforce_org_id
+            AND job_type in ('REVIEW','NORMAL','REPORT')
+            AND time_out = 1
+            AND a.is_deleted = 0
+            <if test="pm.startDate != null and pm.startDate !=''">
+                AND a.last_enforce_date <![CDATA[ >= ]]> #{pm.startDate}
+            </if>
+            <if test="pm.endDate != null and pm.endDate !=''">
+                AND a.last_enforce_date <![CDATA[ <= ]]> #{pm.endDate}
+            </if>
+        ) timeoutCount,
+        (
+        SELECT
+        sum( a.times )
+        FROM
+        enforce_deduct_record_situation a
+        LEFT JOIN enforce_deduct_record b ON a.deduct_record_id = b.id
+        WHERE
+        b.enforce_org_id = eo.enforce_org_id
+        <if test="pm.startDate != null and pm.startDate !=''">
+            AND b.deduct_time <![CDATA[ >= ]]> #{pm.startDate}
+        </if>
+        <if test="pm.endDate != null and pm.endDate !=''">
+            AND b.deduct_time <![CDATA[ <= ]]> #{pm.endDate}
+        </if>
+        ) deductCount,
+        (
+        SELECT
+        sum( a.total_deduct )
+        FROM
+        enforce_deduct_record_situation a
+        LEFT JOIN enforce_deduct_record b ON a.deduct_record_id = b.id
+        WHERE
+        b.enforce_org_id = eo.enforce_org_id
+        <if test="pm.startDate != null and pm.startDate !=''">
+            AND b.deduct_time <![CDATA[ >= ]]> #{pm.startDate}
+        </if>
+        <if test="pm.endDate != null and pm.endDate !=''">
+            AND b.deduct_time <![CDATA[ <= ]]> #{pm.endDate}
+        </if>
+        ) deductScore
+        from enforce_organize eo
+        where eo.enforce_org_id != '55c99876ec0f425aac6925a92cceeb17'
+        <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
+            and eo.enforce_org_id = #{pm.enforceOrgId}
+        </if>
+        order by eo.enforce_org_id
+    </select>
+
+
+
+    <select id="selectWreportList" resultType="com.zfjg.manage.api.vo.enforce.job.WReportDeductVo">
+        select id,user_id,org_id,org_name,w_user,w_type_c,w_type_t,n_type_c,n_type_t,s_type_c,s_type_t from w_report
+        <where>
+            <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
+                and org_id = #{pm.enforceOrgId}
+            </if>
+            <if test="pm.startDate != null and pm.startDate !=''">
+                AND s_time <![CDATA[ >= ]]> #{pm.startDate}
+            </if>
+            <if test="pm.endDate != null and pm.endDate !=''">
+                AND s_time <![CDATA[ <= ]]> #{pm.endDate}
+            </if>
+        </where>
+    </select>
+
+
+</mapper>

+ 13 - 0
zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/job/EnforceDeductRecordSituationMapper.xml

@@ -0,0 +1,13 @@
+<?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.enforce.job.EnforceDeductRecordSituationMapper">
+
+    <select id="list" resultType="com.zfjg.manage.api.domain.enforce.job.EnforceDeductRecordSituation">
+        select a.*
+        FROM enforce_deduct_record_situation a
+        <where>
+            a.deleted = 0
+
+        </where>
+    </select>
+</mapper>

+ 10 - 0
zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/job/EnforceDeductSituationMapper.xml

@@ -0,0 +1,10 @@
+<?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.enforce.job.EnforceDeductSituationMapper">
+
+    <select id="list" resultType="com.zfjg.manage.api.domain.enforce.job.EnforceDeductSituation">
+        select a.*
+        FROM enforce_deduct_situation a
+        order by a.create_time desc;
+    </select>
+</mapper>