From e23edcf2619ad46fd77a710fca6c21de78234bc0 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 07 一月 2025 17:33:06 +0800
Subject: [PATCH] 核算重构完成

---
 ycl-server/src/main/java/com/ycl/task/HKTask.java                                      |   35 +++---
 ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java    |    4 
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java               |    2 
 ycl-server/src/main/java/com/ycl/task/ContractResultTask.java                          |   23 +++-
 ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml                    |   70 ++++++++-----
 ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml                     |   16 ++-
 ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java            |    2 
 ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResult.java              |    3 
 ycl-pojo/src/main/java/com/ycl/platform/domain/excel/CalculateExport.java              |    2 
 ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml                    |    2 
 ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractResultVO.java                |    2 
 ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java |   41 ++++++--
 ycl-server/src/main/java/com/ycl/platform/service/impl/ContractResultServiceImpl.java  |   25 ++++
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java       |    4 
 ycl-server/src/main/java/com/ycl/task/MonitorTask.java                                 |    3 
 ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java          |    8 
 ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml                           |    2 
 ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java         |    1 
 18 files changed, 162 insertions(+), 83 deletions(-)

diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResult.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResult.java
index 4160aca..30daa2b 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResult.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/entity/ContractResult.java
@@ -45,4 +45,7 @@
     private Integer deleted;
 
     private Date updateTime;
+
+    private Integer whichYear;
+    private Integer whichMonth;
 }
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/excel/CalculateExport.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/excel/CalculateExport.java
index 7a6cb83..1239d93 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/excel/CalculateExport.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/excel/CalculateExport.java
@@ -40,7 +40,7 @@
      * 鍒嗘暟
      */
     @ExcelProperty({"鑷础甯傚叕鍏辫棰戠洃鎺х郴缁熺画缁村悎鍚�", "鍒嗘暟"})
-    private Integer score;
+    private BigDecimal score;
 
     /**
      * 閲戦
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java
index 88650ea..3c630d7 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/query/CalculateReportQuery.java
@@ -28,5 +28,6 @@
     private Integer contractId;
 
     private Integer whichYear;
+
 }
 
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java
index 0dbfcf4..6af1baa 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/CalculateReportVO.java
@@ -54,6 +54,8 @@
     private List<CalculateRecordVO> recordList;
 
     private Integer whichYear;
+    private Integer whichMonth;
+    private Integer latestMonth;
 
     public static CalculateReportVO getVoByEntity(@NonNull CalculateReport entity, CalculateReportVO vo) {
         if(vo == null) {
diff --git a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractResultVO.java b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractResultVO.java
index ca7956c..ce5e3f5 100644
--- a/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractResultVO.java
+++ b/ycl-pojo/src/main/java/com/ycl/platform/domain/vo/ContractResultVO.java
@@ -49,4 +49,6 @@
     @JsonFormat(pattern = "yyyy-MM-dd")
     private Date createEndTime;
 
+    private Integer whichYear;
+    private Integer whichMonth;
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java b/ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java
index 945bbaf..74a671a 100644
--- a/ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java
+++ b/ycl-server/src/main/java/com/ycl/platform/controller/CalculateReportController.java
@@ -69,8 +69,8 @@
     @PostMapping("/export")
     @ApiOperation(value = "瀵煎嚭", notes = "瀵煎嚭")
     @PreAuthorize("@ss.hasPermi('system:calculate:report:export')")
-    public void export(Integer contractId, HttpServletResponse response) {
-        calculateReportService.export(contractId, response);
+    public void export(Integer calculateId,Integer contractId, HttpServletResponse response) {
+        calculateReportService.export(calculateId,contractId, response);
     }
 
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java b/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java
index dea68e4..5f1d47d 100644
--- a/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java
+++ b/ycl-server/src/main/java/com/ycl/platform/mapper/CalculateReportMapper.java
@@ -42,5 +42,5 @@
      * 瀵煎嚭鏁版嵁
      * @return 鏁版嵁
      */
-    List<CalculateExport> exportData(Integer contractId);
+    List<CalculateExport> exportData(Integer calculateId);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java b/ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java
index 8503154..5dc44c8 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/CalculateReportService.java
@@ -55,7 +55,7 @@
 
     /**
      * 鏍规嵁id鏌ユ壘
-     * @param id
+     * @param
      * @return
      */
     Result detail(CalculateReportQuery query);
@@ -77,14 +77,14 @@
     /**
      * 淇敼鍙戝竷鐘舵��
      *
-     * @param reportId
+     * @param
      * @return
      */
     Result updatePublishStatus(Integer contractId,Integer whichYear);
     /**
      * 淇敼鍙戝竷鐘舵��
      *
-     * @param reportId
+     * @param
      * @return
      */
     Result updatePublishStatusById(Integer id,String status);
@@ -92,5 +92,5 @@
      * 瀵煎嚭
      * @param response 鍝嶅簲
      */
-    void export(Integer contractId, HttpServletResponse response);
+    void export(Integer calculateId,Integer contractId, HttpServletResponse response);
 }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java
index 839dde9..5921403 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/CalculateReportServiceImpl.java
@@ -16,14 +16,18 @@
 import com.ycl.platform.domain.query.CalculateReportQuery;
 import com.ycl.platform.domain.vo.CalculateReportDetailVO;
 import com.ycl.platform.domain.vo.CalculateReportVO;
+import com.ycl.platform.domain.vo.ContractResultVO;
 import com.ycl.platform.mapper.CalculateRecordMapper;
 import com.ycl.platform.mapper.CalculateReportMapper;
 import com.ycl.platform.service.CalculateReportService;
 import com.ycl.platform.service.ICalculateRuleService;
 import com.ycl.system.Result;
+import com.ycl.system.entity.SysRole;
+import com.ycl.system.entity.SysUser;
 import com.ycl.system.page.PageUtil;
 import com.ycl.utils.SecurityUtils;
 import enumeration.general.CalculateReportStatusEnum;
+import enumeration.general.PublishType;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
@@ -34,6 +38,7 @@
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 import java.util.Date;
@@ -125,7 +130,10 @@
     @Override
     public Result page(CalculateReportQuery query) {
         IPage<CalculateReportVO> page = PageUtil.getPage(query, CalculateReportVO.class);
+        //鍙兘鐪嬭嚜宸卞崟浣�
         query.setUnitId(SecurityUtils.getUnitId());
+        //鍙兘鐪嬪凡鍙戝竷
+        roleControl(query);
         baseMapper.page(query, page);
         page.getRecords().stream().forEach(item -> {
             if (Objects.isNull(item)) {
@@ -139,23 +147,29 @@
 
     /**
      * 鏍规嵁id鏌ユ壘
-     * @param id
+     * @param
      * @return
      */
     @Override
     public Result detail(CalculateReportQuery query) {
+        roleControl(query);
         // 鏄庣粏鍒楄〃
         CalculateReportDetailVO detail = baseMapper.getById(query);
-        if (Objects.nonNull(detail) && ! CollectionUtils.isEmpty(detail.getRecordList())) {
-            if (CalculateReportStatusEnum.NOT_PUBLISH.equals(detail.getStatus())) {
-                detail.getRecordList().get(0).setLatest(Boolean.TRUE);
-            } else {
-                detail.getRecordList().get(0).setLatest(Boolean.FALSE);
-            }
-        }
         return Result.ok().data(detail);
     }
 
+    private void roleControl(CalculateReportQuery query) {
+        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        if (!user.isAdmin()) {
+            for (SysRole role : roles) {
+                //鑿滃崟鐨勫湴鏂瑰鍔犱簡涓�涓寜閽紝瑙掕壊鏉冮檺缂栬緫濡傛灉鍕句笂浜嗚鏄庡彧鑳芥煡鐪嬪凡鍙戝竷
+                if (role.getPermissions().contains("check:contract:role:publish")) {
+                    query.setStatus(PublishType.PUBLISHED.getCode());
+                }
+            }
+        }
+    }
     /**
      * 鍒楄〃
      * @return
@@ -211,13 +225,18 @@
 
     @Override
     @SneakyThrows
-    public void export(Integer contractId, HttpServletResponse response) {
+    public void export(Integer calculateId,Integer contractId, HttpServletResponse response) {
         // 鑾峰彇鏁版嵁
-        List<CalculateExport> list = baseMapper.exportData(contractId);
+        List<CalculateExport> list = baseMapper.exportData(calculateId);
         CalculateExport calculateExport = new CalculateExport();
         calculateExport.setRuleName("鍚堣");
         calculateExport.setNum(list.stream().mapToInt(CalculateExport::getNum).sum());
-        calculateExport.setScore(100 + list.stream().mapToInt(CalculateExport::getScore).sum());
+
+        calculateExport.setScore(list.stream()
+                .map(CalculateExport::getScore)
+                .reduce(BigDecimal.ZERO, BigDecimal::add) // 璁$畻鎬诲拰
+                .add(BigDecimal.valueOf(100)) // 鍔犱笂100
+                .setScale(1, RoundingMode.HALF_UP));
         list.add(calculateExport);
         // 鑾峰彇瑙勫垯
         List<CalculateRule> ruleList = calculateRuleService.list(new LambdaQueryWrapper<CalculateRule>().eq(CalculateRule::getContractId, contractId));
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractResultServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractResultServiceImpl.java
index 8843ace..80320a1 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractResultServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/ContractResultServiceImpl.java
@@ -8,7 +8,11 @@
 import com.ycl.platform.mapper.ContractResultMapper;
 import com.ycl.platform.mapper.ContractResultRecordMapper;
 import com.ycl.platform.service.IContractResultService;
+import com.ycl.system.entity.BaseEntity;
+import com.ycl.system.entity.SysRole;
+import com.ycl.system.entity.SysUser;
 import com.ycl.utils.SecurityUtils;
+import enumeration.general.PublishType;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -16,6 +20,7 @@
 
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 
 /**
@@ -52,7 +57,7 @@
     @Override
     public List<ContractResultVO> selectCheckResultList(ContractResultVO contractResult) {
         //閬垮厤鏌ヨ鏉′欢澶辨晥
-        if(contractResult.getUnitId()==null) {
+        if (contractResult.getUnitId() == null) {
             Integer unitId = SecurityUtils.getUnitId();
             Long uid = null;
             if (Objects.nonNull(unitId)) {
@@ -60,8 +65,22 @@
             }
             contractResult.setUnitId(uid);
         }
+        roleControl(contractResult);
         return checkResultMapper.selectCheckResultList(contractResult);
     }
+
+    private void roleControl(ContractResultVO contractResult) {
+        List<SysRole> roles = SecurityUtils.getLoginUser().getUser().getRoles();
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        if (!user.isAdmin()) {
+            for (SysRole role : roles) {
+                if (role.getPermissions().contains("check:contract:role:publish")) {
+                    contractResult.setPublish(1);
+                }
+            }
+        }
+    }
+
 
     /**
      * 鏂板鑰冩牳缁撴灉
@@ -122,9 +141,11 @@
 
     @Override
     public Boolean publish(Long id) {
+        ContractResult contractResult = checkResultMapper.selectById(id);
+
         return new LambdaUpdateChainWrapper<>(checkResultMapper)
                 .eq(ContractResult::getId, id)
-                .set(ContractResult::getPublish, 1)
+                .set(ContractResult::getPublish, contractResult.getPublish() == 0 ? 1 : 0)
                 .set(ContractResult::getPublishId, SecurityUtils.getLoginUser().getUserId())
                 .update();
     }
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index 81b9299..4e40269 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -1155,6 +1155,7 @@
             Boolean deptTag = false;
             List<String> dynamicTags = new ArrayList<>();
             for (TMonitorResult tagVO : monitorVOS) {
+                //鐪佸巺鏍囩閫氳繃ip鍒ゆ柇 (杩愮淮瑕佹眰)
                 if(tagVO.getIp().equals(result.getIp())){
                     if(tagVO.getProvinceTagVideo()) provinceTagVideo = true;
                     if(tagVO.getProvinceTagCar()) provinceTagCar = true;
@@ -1162,6 +1163,9 @@
                     if(tagVO.getImportantTag()) importantTag = true;
                     if(tagVO.getImportantCommandImageTag()) importantCommandImageTag = true;
                     if(tagVO.getDeptTag()) deptTag = true;
+                }
+                //鍔ㄦ�佸垪鏍规嵁鍥芥爣鍒ゆ柇
+                if (tagVO.getNo().equals(result.getSerialNumber())) {
                     //鍔ㄦ�佸垪澶勭悊鍔犲湪鏍囩閲�
                     if (!CollectionUtils.isEmpty(tagVO.getDynamicColumnList())) {
                         List<DynamicColumnVO> dynamicColumnList = tagVO.getDynamicColumnList();
diff --git a/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
index a20c5bd..ce627db 100644
--- a/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/ContractResultTask.java
@@ -9,6 +9,7 @@
 import com.ycl.utils.DateUtils;
 import com.ycl.utils.bean.BeanUtils;
 import enumeration.general.CalculateReportStatusEnum;
+import enumeration.general.PublishType;
 import lombok.Data;
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
@@ -48,23 +49,28 @@
             // 涓婁釜鏈堟墸鍒嗚褰�
             List<ContractScore> contractScore = contractScoreService.getDateRangeScoreByContractId(tContract.getId(), startTime, endTime);
             // 鏂板鑰冩牳缁撴灉
+            //鑾峰彇涓婁釜鏈堟椂闂�
+            Calendar calendar = Calendar.getInstance();
+            calendar.add(Calendar.MONTH, -1);
             ContractResult contractResult = getCheckResult(tContract, contractScore);
+            contractResult.setWhichMonth(calendar.get(Calendar.MONTH)+1);
+            contractResult.setWhichYear(calendar.get(Calendar.YEAR));
             checkResultService.save(contractResult);
-            // 鏂板鑰冩牳缁撴灉璁板綍
-            List<ContractResultRecord> contractResultRecord = getContractResultRecord(contractScore, contractResult);
-            checkResultService.saveBatchRecord(contractResultRecord);
+//            // 鏂板鑰冩牳缁撴灉璁板綍
+//            List<ContractResultRecord> contractResultRecord = getContractResultRecord(contractScore, contractResult);
+//            checkResultService.saveBatchRecord(contractResultRecord);
             // 鏂板鏍哥畻鏄庣粏璁板綍
             CalculateRecord calculateRecord = new CalculateRecord();
-            calculateRecord.setScore(contractResult.getScore());
+            //鏀逛负鐩存帴鍘绘煡
+//            calculateRecord.setScore(contractResult.getScore());
             calculateRecord.setContractId(Integer.parseInt(tContract.getId()+""));
             calculateRecord.setCreateTime(new Date());
             calculateRecord.setUpdateTime(new Date());
-            calculateRecord.setStatus(CalculateReportStatusEnum.NOT_PUBLISH.getValue());
-            Calendar calendar = Calendar.getInstance();
+            calculateRecord.setStatus(PublishType.UNPUBLISHED.getCode());
+
             calculateRecord.setWhichYear(calendar.get(Calendar.YEAR));
             calculateRecord.setWhichMonth(calendar.get(Calendar.MONTH)+1);
             calculateRecordMapper.insert(calculateRecord);
-
         }
     }
 
@@ -100,7 +106,8 @@
         contractResult.setContractId(tContract.getId());
         contractResult.setPublish(0);
         contractResult.setCheckTime(DateUtils.getNowDate());
-        contractResult.setScore(contractScore.isEmpty() ? new BigDecimal("100") : new BigDecimal("100").subtract(contractScore.stream().map(ContractScore::getScore).reduce(BigDecimal::add).get()));
+        //鏀逛负鐩存帴鍘绘煡
+//        contractResult.setScore(contractScore.isEmpty() ? new BigDecimal("100") : new BigDecimal("100").subtract(contractScore.stream().map(ContractScore::getScore).reduce(BigDecimal::add).get()));
         return contractResult;
     }
 
diff --git a/ycl-server/src/main/java/com/ycl/task/HKTask.java b/ycl-server/src/main/java/com/ycl/task/HKTask.java
index 77ea50f..91b9159 100644
--- a/ycl-server/src/main/java/com/ycl/task/HKTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/HKTask.java
@@ -204,23 +204,24 @@
                 TMonitor monitor = map.get(item.getExternalIndexCode());
                 item.setIp(monitor.getIp());
             });
-            List<UpdateOnlineVO> willUpdateList = totalResult.stream().map(item -> {
-                UpdateOnlineVO vo = new UpdateOnlineVO();
-                vo.setOnline(item.getDataCount() > 0 ? 1 : -1);
-                vo.setIp(map.get(item.getExternalIndexCode()).getIp());
-                vo.setUpdateTime(now);
-                return vo;
-            }).collect(Collectors.toList());
-            monitorMapper.updateOnlineFromUyOrHk(willUpdateList);
-            //绂荤嚎鐢熸垚宸ュ崟,涓�涓猧p鍙敓鎴愪竴涓伐鍗�
-            List<SnapshotDataMonitorResult> workOrders = new ArrayList<>(totalResult.stream()
-                    .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getDataCount() > 0 ? 1 : -1))
-                    .collect(Collectors.toMap(
-                            SnapshotDataMonitorResult::getIp,
-                            Function.identity(),
-                            (existing, replacement) -> existing // 濡傛灉閬囧埌鐩稿悓鐨� IP锛屼繚鐣欑涓�涓紙existing锛�
-                    )).values());
-            uyErrorTypeCheckService.hkOnlineCheck(workOrders);
+            //娴峰悍涓嶅仛鍦ㄧ嚎鐩戞祴
+//            List<UpdateOnlineVO> willUpdateList = totalResult.stream().map(item -> {
+//                UpdateOnlineVO vo = new UpdateOnlineVO();
+//                vo.setOnline(item.getDataCount() > 0 ? 1 : -1);
+//                vo.setIp(map.get(item.getExternalIndexCode()).getIp());
+//                vo.setUpdateTime(now);
+//                return vo;
+//            }).collect(Collectors.toList());
+//            monitorMapper.updateOnlineFromUyOrHk(willUpdateList);
+//            //绂荤嚎鐢熸垚宸ュ崟,涓�涓猧p鍙敓鎴愪竴涓伐鍗�
+//            List<SnapshotDataMonitorResult> workOrders = new ArrayList<>(totalResult.stream()
+//                    .filter(item -> ApiConstants.UY_OnlineSite_Offline.equals(item.getDataCount() > 0 ? 1 : -1))
+//                    .collect(Collectors.toMap(
+//                            SnapshotDataMonitorResult::getIp,
+//                            Function.identity(),
+//                            (existing, replacement) -> existing // 濡傛灉閬囧埌鐩稿悓鐨� IP锛屼繚鐣欑涓�涓紙existing锛�
+//                    )).values());
+//            uyErrorTypeCheckService.hkOnlineCheck(workOrders);
         }
         log.info("缁撴潫鎶撴媿鏁版嵁閲忔娴嬬粨鏋滄暟鎹悓姝�");
     }
diff --git a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
index b57ea36..d3f2964 100644
--- a/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
+++ b/ycl-server/src/main/java/com/ycl/task/MonitorTask.java
@@ -104,7 +104,6 @@
             //鍑嗗鎻掑叆鐐逛綅琛ㄧ殑鏁版嵁
             List<YwPoint> ywPointList = new ArrayList<>();
 
-
             //鍏ㄥ勾鐣欏瓨
             for (MonitorQualifyResult result : oneMachineFileResults) {
                 TMonitor monitor = getMonitor(result, monitorVOMap, osdMap);
@@ -132,7 +131,7 @@
                 //鑰佽澶囩姸鎬佹敼涓轰笉鍙備笌鑰冩牳
                 if (!points.contains(key)) {
                     value.setExamineStatus(Boolean.FALSE);
-                    //鍗曚綅璁剧疆涓虹┖锛圱ODO锛氫负鍟ワ級
+                    //鍗曚綅璁剧疆涓虹┖
                     value.setUnitId(null);
                     ywPointList.add(value);
                 }
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml
index 55a3ad0..1782835 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CalculateRecordMapper.xml
@@ -30,7 +30,7 @@
     </update>
 
     <update id="batchPublish">
-        update t_calculate_record set status = 'publish'
+        update t_calculate_record set status = 'PUBLISHED'
         where contract_id = #{contractId} and which_year =#{whichYear}
     </update>
 
diff --git a/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml
index 9733db3..67e03ba 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/CalculateReportMapper.xml
@@ -52,8 +52,9 @@
         tyu.unit_name,
         tc.name as contractName,
         tcr.which_year,
+        tcr.which_month,
         SUM(tcr.deduct_money) AS deductMoney,
-        MAX(tcr.create_time) AS latest_time,
+        MAX(tcr.which_month) AS latest_month,
         (
         SELECT deduct_money
         FROM t_calculate_record
@@ -84,7 +85,7 @@
         <result column="status" property="status"/>
         <collection property="ruleList" column="contract_id" ofType="com.ycl.platform.domain.vo.CalculateMoneyRuleVO"
                     select="selectRuleByContractId"/>
-        <collection property="recordList" column="{contractId=contract_id, whichYear=which_year}" ofType="com.ycl.platform.domain.vo.CalculateRecordVO"
+        <collection property="recordList" column="{contractId=contract_id, whichYear=which_year,status=status}" ofType="com.ycl.platform.domain.vo.CalculateRecordVO"
                     select="selectRecordByContractId"/>
     </resultMap>
 
@@ -99,44 +100,57 @@
 
     <select id="selectRecordByContractId" resultType="com.ycl.platform.domain.vo.CalculateRecordVO">
         SELECT
-               id,
-               create_time  as createTime,
-               score,
-               deduct_money as deductMoney,
-               which_year as whichYear,
-               which_month as whichMonth,
-               status
+        tcr.id,
+        tcr.create_time as createTime,
+        (IFNULL(-SUM(tcs.score), 0) + 100) AS score,
+        tcr.deduct_money as deductMoney,
+        tcr.which_year as whichYear,
+        tcr.which_month as whichMonth,
+        tcr.status
         FROM
-             t_calculate_record
-        WHERE
-              contract_id = #{contractId} AND which_year = #{whichYear} AND deleted = 0
+        t_calculate_record tcr
+        LEFT JOIN t_contract_score tcs
+            ON tcr.contract_id =tcs.contract_id
+                   AND tcs.deleted=0
+                   AND YEAR(tcs.create_time) = #{whichYear}
+                   AND MONTH(tcs.create_time) = tcr.which_month
+                   AND tcs.auditing_status = 'PASS'
+        <where>
+            tcr.contract_id = #{contractId} AND tcr.which_year = #{whichYear} AND tcr.deleted = 0
+            <if test="status!=null">
+                AND tcr.status=#{status}
+            </if>
+        </where>
         ORDER BY
-            create_time
+        tcr.create_time
     </select>
 
     <select id="getById" resultMap="DetailResultMap">
         SELECT tyu.unit_name,
-               tc.name,
-               tcr.id,
-               tcr.contract_id,
-               tcr.create_time,
-               tcr.update_time,
-               tcr.which_year
+        tc.name,
+        tcr.id,
+        tcr.contract_id,
+        tcr.create_time,
+        tcr.update_time,
+        tcr.which_year,
+        #{query.status} as status
         FROM t_calculate_record tcr
-                 INNER JOIN t_contract tc ON tcr.contract_id = tc.id
-                 INNER JOIN t_yw_unit tyu ON tyu.id = tc.unit_id
-        WHERE tcr.contract_id = #{query.contractId} AND tcr.which_year = #{query.whichYear}
+        INNER JOIN t_contract tc ON tcr.contract_id = tc.id
+        INNER JOIN t_yw_unit tyu ON tyu.id = tc.unit_id
+        <where>
+            tcr.contract_id = #{query.contractId} AND tcr.which_year = #{query.whichYear}
+        </where>
         limit 1
     </select>
 
     <select id="exportData" resultType="com.ycl.platform.domain.excel.CalculateExport">
-        SELECT
-            a.rule_name,
-            COUNT(b.id) AS num,
-            IFNULL(-SUM(score), 0) AS score
+        SELECT a.rule_name,
+               COUNT(b.id)              AS num,
+               IFNULL(-SUM(b.score), 0) AS score
         FROM t_calculate_rule a
-        LEFT JOIN t_contract_score b ON b.rule_id = a.id AND auditing_status = 'PASS' AND b.deleted = 0
-        WHERE a.contract_id = #{contractId} AND a.deleted = 0
+        LEFT JOIN t_calculate_record tcr ON a.contract_id = tcr.contract_id And tcr.id = #{calculateId}
+        LEFT JOIN t_contract_score b ON b.rule_id = a.id AND auditing_status = 'PASS' AND b.deleted = 0 AND YEAR (b.create_time) = tcr.which_year
+        WHERE a.deleted = 0
         GROUP BY a.rule_name
     </select>
 
diff --git a/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml
index 2206157..589615f 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/ContractResultMapper.xml
@@ -4,7 +4,8 @@
 
 
     <select id="selectCheckResultList" resultType="com.ycl.platform.domain.vo.ContractResultVO">
-        SELECT c.*,
+        SELECT c.id,c.publish,c.contract_id,c.check_time,c.unit_id,c.which_year,c.which_month,
+        (IFNULL(-SUM(b.score), 0) + 100) AS score,
         u.unit_name AS unitName,
         ct.name AS contractName
         FROM t_contract_result c
@@ -12,7 +13,8 @@
         t_yw_unit u ON c.unit_id = u.id and u.deleted = 0
         LEFT JOIN
         t_contract ct ON c.contract_id = ct.id and ct.deleted = 0
-        where
+        LEFT JOIN t_contract_score b ON b.contract_id = c.contract_id AND auditing_status = 'PASS' AND b.deleted = 0  AND MONTH(b.create_time) = c.which_month AND YEAR(b.create_time) = c.which_year
+        <where>
         c.deleted = 0
         <if test="unitId != null">
             AND c.unit_id = #{unitId}
@@ -23,16 +25,20 @@
         <if test="publish != null">
             AND c.publish = #{publish}
         </if>
+        </where>
+        GROUP BY c.id
     </select>
 
     <select id="selectCheckResultRecordList" resultType="com.ycl.platform.domain.entity.ContractResultRecord">
         SELECT
             a.rule_name,
             COUNT(b.id) AS num,
-            IFNULL(-SUM(score), 0) AS score
+            IFNULL(-SUM(b.score), 0) AS score
         FROM t_calculate_rule a
-                LEFT JOIN t_contract_result_record b ON SUBSTRING_INDEX(b.rule_ids, ',', -1) = a.id AND b.deleted = 0  AND b.result_id = #{resultId}
-        WHERE a.contract_id = #{contractId} AND a.deleted = 0
+            LEFT JOIN t_contract_result tcr on a.contract_id = tcr.contract_id AND tcr.id = #{resultId}
+            LEFT JOIN t_contract_score b ON b.rule_id = a.id AND auditing_status = 'PASS' AND b.deleted = 0  AND MONTH(b.create_time) = tcr.which_month AND YEAR(b.create_time) = tcr.which_year
+        WHERE
+        a.contract_id = #{contractId} AND a.deleted = 0
         GROUP BY a.rule_name
     </select>
 </mapper>
diff --git a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
index 23091ce..79d645f 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/TMonitorMapper.xml
@@ -701,7 +701,7 @@
         select m.ip,m.serial_number as no,p.id as pointId,p.province_tag_video,p.province_tag_car,p.province_tag_face,p.dept_tag,p.important_tag,p.important_command_image_tag
         from t_monitor m
         left join t_yw_point p on m.serial_number = p.serial_number
-        where m.ip in
+        where p.examine_status = 1 and m.ip in
         <foreach collection="ipList" item="ip" separator="," close=")" open="(">
             #{ip}
         </foreach>

--
Gitblit v1.8.0