From 4a2bbbc0345635ba658636fb5fef0cfcdd3447fc Mon Sep 17 00:00:00 2001
From: renkang <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 03 一月 2025 15:30:46 +0800
Subject: [PATCH] 客户资料 巡检任务业务

---
 server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java               |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java |   57 +++++++++--
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/ExcelTestDemo.java                             |   71 ++++++++++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java                    |    3 
 server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java                                         |    4 
 server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java                                  |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java         |    9 +
 server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java                                   |   12 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java       |    6 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolSchemeService.java              |    5 +
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java     |    2 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java     |   31 ++++++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java            |    3 
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java     |    3 
 server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java                   |   10 ++
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java           |   25 +++++
 16 files changed, 226 insertions(+), 21 deletions(-)

diff --git a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
index 63a30b8..2d9f2ef 100644
--- a/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
+++ b/server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -1968,13 +1968,13 @@
     }
 
     /**
-     * 寰楀埌褰撳墠鏃ユ湡鏃堕棿,鏍煎紡涓簓yyy-MM-dd hh:mm:ss.
+     * 寰楀埌褰撳墠鏃ユ湡鏃堕棿,鏍煎紡涓簓yyy-MM-dd HH:mm:ss.
      *
      * @return String
      */
     public static String getCurrDateTime() {
         Timestamp date = new Timestamp(System.currentTimeMillis());
-        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         return formatter.format(date);
     }
 
diff --git a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
index cc4a379..3dd4077 100644
--- a/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
+++ b/server/system_timer/src/main/java/com/doumee/jobs/fegin/VisitServiceFegin.java
@@ -94,5 +94,8 @@
     @GetMapping("/timer/yw/ywDealContractTimeOutTimer")
     ApiResponse ywDealContractTimeOutTimer();
 
+    @ApiOperation("銆愰槣瀹佽繍缁淬�戝畾鏃剁敓鎴愪粖鏃ュ贰妫�浠诲姟")
+    @GetMapping("/timer/yw/ywPatrolSchemeTaskTimer")
+    ApiResponse ywPatrolSchemeTaskTimer();
 
 }
diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
index 8a7c380..5bf7386 100644
--- a/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
+++ b/server/visits/admin_timer/src/main/java/com/doumee/api/YwTimerController.java
@@ -9,6 +9,7 @@
 import com.doumee.service.business.PlatformJobService;
 import com.doumee.service.business.YwContractBillService;
 import com.doumee.service.business.YwContractService;
+import com.doumee.service.business.YwPatrolSchemeService;
 import com.doumee.service.system.SystemDictDataService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -39,6 +40,9 @@
     @Autowired
     private YwContractService ywContractService;
 
+    @Autowired
+    private YwPatrolSchemeService ywPatrolSchemeService;
+
 
     @ApiOperation("瀹氭椂澶勭悊鍚堝悓璐﹀崟缂栫爜")
     @GetMapping("/ywDealContractBillCodeTimer")
@@ -60,9 +64,15 @@
                 .replace("APPSECRET","f228b9e3b49a37b881b51431a483c939");
         String response = HttpsUtil.get(url,false);
         JSONObject json = JSONObject.parseObject(response);
-        System.out.println(json);
+    }
 
 
+
+    @ApiOperation("瀹氭椂鐢熸垚浠婃棩宸℃浠诲姟浠诲姟")
+    @GetMapping("/ywPatrolSchemeTaskTimer")
+    public ApiResponse ywPatrolSchemeTaskTimer() {
+        ywPatrolSchemeService.timerAuto();
+        return ApiResponse.success("瀹氭椂鐢熸垚浠婃棩宸℃浠诲姟浠诲姟鎵ц涓�");
     }
 
 
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java
index 44bd24c..ff55707 100644
--- a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwDeviceCloudController.java
@@ -92,4 +92,14 @@
     public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
         return ApiResponse.success(ywDeviceService.getDetail(id));
     }
+
+    @ApiOperation("鏍规嵁缂栫爜鏌ヨ璁惧")
+    @GetMapping("/findByCode")
+    @CloudRequiredPermission("business:ywdevice:query")
+    public ApiResponse findByCode(@RequestParam String deviceCode,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
+        return ApiResponse.success(ywDeviceService.findByCode(deviceCode));
+    }
+
+
+
 }
diff --git a/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/ExcelTestDemo.java b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/ExcelTestDemo.java
new file mode 100644
index 0000000..555a682
--- /dev/null
+++ b/server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/board/ExcelTestDemo.java
@@ -0,0 +1,71 @@
+package com.doumee.cloud.board;
+
+import org.apache.poi.xwpf.usermodel.XWPFDocument;
+import org.apache.poi.xwpf.usermodel.XWPFParagraph;
+import org.apache.poi.xwpf.usermodel.XWPFRun;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2025/1/3 9:11
+ */
+public class ExcelTestDemo {
+
+    public static void main(String[] args) {
+        modifyWordTemplate("https://bdreport.oss-cn-beijing.aliyuncs.com/xczl/20250103/temp/F0F4B90E185A4A9BA2147841B90F3909.docx", "d://output.docx", "寮犱笁", "Java璇剧▼");
+    }
+
+    public static void modifyWordTemplate(String templatePath, String outputPath, String name, String product) {
+        try (
+//            FileInputStream fis = new FileInputStream(templatePath);
+             XWPFDocument document = new XWPFDocument(getFileInputStream(templatePath))) {
+            // 姝ゅ杩炴帴鍒板悗缁浛鎹㈡楠�
+            // 閬嶅巻娈佃惤
+            for (XWPFParagraph paragraph : document.getParagraphs()) {
+                for (XWPFRun run : paragraph.getRuns()) {
+                    // 鏇挎崲鍗犱綅绗�
+                    String text = run.getText(0);
+                    if (text != null) {
+                        text = text.replace("{{name}}", name)
+                                .replace("{{text}}", product);
+                        run.setText(text, 0); // 閲嶆柊璁剧疆鏂囨湰
+                    }
+                }
+            }
+            try (FileOutputStream fos = new FileOutputStream(outputPath)) {
+                document.write(fos); // 灏嗕慨鏀瑰悗鐨勬枃妗e啓鍏ヨ緭鍑烘祦
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /*璇诲彇缃戠粶鏂囦欢*/
+    public static InputStream getFileInputStream(String path) {
+        URL url = null;
+        try {
+            url = new URL(path);
+            HttpURLConnection conn = (HttpURLConnection)url.openConnection();
+            //璁剧疆瓒呮椂闂翠负3绉�
+            conn.setConnectTimeout(3*1000);
+            //闃叉灞忚斀绋嬪簭鎶撳彇鑰岃繑鍥�403閿欒
+            conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
+            //寰楀埌杈撳叆娴�
+            return conn.getInputStream();
+        } catch (Exception e) {
+
+        }
+        return null;
+    }
+
+
+
+}
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java
index 1cf5188..e3905db 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwPatrolTaskRecord.java
@@ -113,6 +113,9 @@
     @TableField(exist = false)
     private String pointCode;
 
+    @ApiModelProperty(value = "璁惧涓婚敭")
+    @TableField(exist = false)
+    private Integer deviceId;
 
     @ApiModelProperty(value = "闄勪欢鍒楄〃")
     @TableField(exist = false)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java
index 4e5501e..0b9b7c9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwDeviceService.java
@@ -103,4 +103,7 @@
 
     YwDeviceDataVO getYwDeviceData();
 
+    YwDevice findByCode(String deviceCode);
+
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolSchemeService.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolSchemeService.java
index 413946d..fc868bc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolSchemeService.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwPatrolSchemeService.java
@@ -101,4 +101,9 @@
      * @param ywPatrolScheme
      */
     void updateStatus(YwPatrolScheme ywPatrolScheme);
+
+    /**
+     * 瀹氭椂鐢熸垚浠婃棩浠诲姟
+     */
+    void timerAuto();
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
index 2108dd2..a978630 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/CompanyServiceImpl.java
@@ -537,7 +537,8 @@
         queryWrapper.select("t1.name",Company::getParentName);
         queryWrapper.select("t1.company_path",Company::getParentCompanyPath);
         queryWrapper.apply(" t.isdeleted = 0 ") ;
-        queryWrapper.eq(Objects.nonNull(company.getStatus()),Company::getStatus,Constants.ZERO);
+        queryWrapper.apply(" t.status = 0 ") ;
+//        queryWrapper.eq(Objects.nonNull(company.getStatus()),Company::getStatus,Constants.ZERO);
         queryWrapper.like(StringUtils.isNotBlank(company.getName()),Company::getName,company.getName());
         queryWrapper.like(StringUtils.isNotBlank(company.getParentName()),"t1.name",company.getParentName());
         return companyMapper.selectList(queryWrapper);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
index 4580e1d..5bc2097 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
@@ -393,7 +393,7 @@
 
             if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractRoomList)){
                 for (YwContractBill ywContractBill:ywContractBillList) {
-                    if(Constants.equalsInteger(ywContractBill.getType(),Constants.ZERO)){
+                    if(Constants.equalsInteger(ywContractBill.getType(),Constants.ZERO) || Constants.equalsInteger(ywContractBill.getType(),Constants.TWO)){
                         ywContractBill.setYwContractRoomList(
                                 ywContractRoomList.stream().filter(i->(Constants.equalsInteger(i.getType(),Constants.TWO)||Constants.equalsInteger(i.getType(),Constants.ZERO))&&Constants.equalsInteger(i.getContractId(),ywContractBill.getContractId())).collect(Collectors.toList())
                         );
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
index 4b51994..9e3df6e 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -399,6 +399,7 @@
         List<YwContractBill> noBills = new ArrayList<>();//涓嶉渶瑕佺粨绠楃殑璐﹀崟
         List<YwContractBill> yjBills = new ArrayList<>();//鎶奸噾璐﹀崟
         List<YwContractBill> canBills = new ArrayList<>();//鍙��绉熶慨鏀规暟鎹�
+        Integer canBillCount = Constants.ZERO;
         List<YwContractBill> allBills = ywContractBillMapper.selectList(new QueryWrapper<YwContractBill>().
                 select("*," +
                         "( select ifnull(sum(case when yw.REVENUE_TYPE = 0 then yw.ACT_RECEIVABLE_FEE  else  -yw.ACT_RECEIVABLE_FEE end),0) from  yw_contract_revenue yw where yw.bill_id = yw_contract_bill.id and yw.status = 0 and yw.isdeleted = 0 ) as  actReceivableFee " )
@@ -420,6 +421,7 @@
                         ||Constants.equalsInteger(bill.getPayStatus(),Constants.THREE)){
                     if(bill.getStartDate().getTime()<=param.getBtDate().getTime()){
                         canBills.add(bill);
+                        canBillCount = canBillCount ++;
                     }else{
                         //濡傛灉杩樻病寮�濮嬶紝璐﹀崟鐩存帴鍏抽棴
                         closeBills.add(bill);
@@ -431,9 +433,11 @@
                         noBills.add(bill);
                     }else{
                         canBills.add(bill);
+                        canBillCount = canBillCount ++;
                     }
                 }else  if(Constants.equalsInteger(bill.getPayStatus(),Constants.TWO) ){
                      canBills.add(bill);
+                    canBillCount = canBillCount ++;
                 }
             }
         }
@@ -461,6 +465,7 @@
                     if(fee.compareTo(new BigDecimal(0))== 0){
                         //濡傛灉璐圭敤姝eソ锛屽垯淇敼璐﹀崟淇℃伅涓哄凡缁撴竻
                         b.setPayStatus(Constants.ONE);
+                        canBillCount = canBillCount --;
                     }else if(fee.compareTo(new BigDecimal(0))> 0){
                         //濡傛灉闇�瑕佽繘琛岄��娆撅紝鏇存柊璐﹀崟淇℃伅涓哄緟閫�娆�
                         b.setPayStatus(Constants.FOUR);
@@ -487,6 +492,8 @@
             for(YwContractBill addBill : param.getAddBillList()){
                 addBill.setIsdeleted(Constants.ZERO);
                 addBill.setContractId(param.getId());
+                addBill.setCreateDate(new Date());
+                addBill.setCreator(param.getEditor());
                 addBill.setType(Constants.TWO);
                 addBill.setStatus(Constants.ZERO);
                 addBill.setTotleFee(addBill.getReceivableFee());
@@ -548,7 +555,7 @@
                 }
             }
         }
-        param.setBtWaitBill(canBills.size() + newBills.size()+yjNoBills);//鏈竻绠楃殑璐﹀崟鏁伴噺
+        param.setBtWaitBill(canBillCount  + newBills.size()+yjNoBills);//鏈竻绠楃殑璐﹀崟鏁伴噺
         param.setBtCLoseBill(closeBills.size());
         param.setBtFee(totalBackFee);
     }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java
index a1a9b36..36f4e94 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceRecordServiceImpl.java
@@ -189,4 +189,7 @@
         QueryWrapper<YwDeviceRecord> wrapper = new QueryWrapper<>(ywDeviceRecord);
         return ywDeviceRecordMapper.selectCount(wrapper);
     }
+
+
+
 }
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
index 2f9f45b..e96dd30 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwDeviceServiceImpl.java
@@ -12,6 +12,7 @@
 import com.doumee.dao.business.YwDeviceMapper;
 import com.doumee.dao.business.YwDeviceRecordMapper;
 import com.doumee.dao.business.model.Category;
+import com.doumee.dao.business.model.Company;
 import com.doumee.dao.business.model.YwDevice;
 import com.doumee.dao.business.model.YwDeviceRecord;
 import com.doumee.dao.business.vo.YwDeviceDataVO;
@@ -184,6 +185,30 @@
     }
 
 
+    /**
+     * 鏍规嵁缂栫爜鏌ヨ
+     * @param deviceCode
+     * @return
+     */
+    @Override
+    public YwDevice findByCode(String deviceCode) {
+        YwDevice ywDevice =  ywDeviceMapper.selectOne(
+                new QueryWrapper<YwDevice>()
+                        .lambda()
+                        .eq(YwDevice::getIsdeleted,Constants.ZERO)
+                        .eq(YwDevice::getCode,deviceCode)
+                        .last(" limit  1 ")
+        );
+        if(Objects.isNull(ywDevice)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+
+        return ywDevice;
+    }
+
+
+
+
     @Override
     public YwDevice findOne(YwDevice ywDevice) {
         QueryWrapper<YwDevice> wrapper = new QueryWrapper<>(ywDevice);
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
index 0afc0a7..59adbcc 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolSchemeServiceImpl.java
@@ -105,6 +105,23 @@
         }
     }
 
+
+    @Override
+    public void timerAuto(){
+        List<YwPatrolScheme> ywPatrolSchemeList = ywPatrolSchemeMapper.selectList(new QueryWrapper<YwPatrolScheme>().lambda()
+                .eq(YwPatrolScheme::getIsdeleted,Constants.ZERO)
+                .eq(YwPatrolScheme::getStatus,Constants.ZERO)
+                .apply(" START_DATE <= now() and END_DATE>= now()   ")
+        );
+        if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolSchemeList)){
+            for (YwPatrolScheme ywPatrolScheme:ywPatrolSchemeList) {
+                this.createTask(new Date(),ywPatrolScheme);
+            }
+        }
+    }
+
+
+
     /**
      * 鏍规嵁鏃ユ湡鐢熸垚浠诲姟
      * @param schemeDate
@@ -192,6 +209,20 @@
 
     @Override
     public void deleteById(Integer id, LoginUserInfo user) {
+        //鍒ゆ柇鏄惁鏈夎繘琛屼腑鎴栧凡瓒呮湡鐨勪换鍔�
+        if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda()
+                .eq(YwPatrolTask::getSchemeId,id)
+                .in(YwPatrolTask::getStatus,Constants.ONE,Constants.THREE,Constants.TWO)
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪杩涜涓�/宸插畬鎴愮殑浠诲姟锛屾棤娉曡繘琛屽垹闄�");
+        }
+        if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda()
+                        .eq(YwPatrolTask::getSchemeId,id)
+                        .eq(YwPatrolTask::getStatus,Constants.ZERO)
+                        .le(YwPatrolTask::getEndDate,"now()")
+        )>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪宸茶秴鏈熺殑浠诲姟锛屾棤娉曡繘琛屽垹闄�");
+        }
         ywPatrolSchemeMapper.deleteById(id);
     }
 
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
index f463fe7..92357ea 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskRecordServiceImpl.java
@@ -56,6 +56,8 @@
     @Autowired
     private YwPatrolTaskMapper ywPatrolTaskMapper;
 
+    @Autowired
+    private YwPatrolSchemeMapper ywPatrolSchemeMapper;
 
 
     @Override
@@ -149,7 +151,8 @@
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public void patrolData(YwPatrolTaskRecord ywPatrolTaskRecord) {
         if(Objects.isNull(ywPatrolTaskRecord)
-        || Objects.isNull(ywPatrolTaskRecord.getId())
+            || Objects.isNull(ywPatrolTaskRecord.getId())
+            || Objects.isNull(ywPatrolTaskRecord.getDealStatus())
         ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
@@ -161,13 +164,17 @@
         if(!Constants.equalsInteger(model.getStatus(),Constants.ZERO)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�佸凡娴佽浆");
         }
+
         YwPatrolPoint ywPatrolPoint = ywPatrolPointMapper.selectById(model.getPointId());
         if(Objects.isNull(ywPatrolPoint)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        YwDevice ywDevice = ywDeviceMapper.selectById(ywPatrolPoint.getDeviceId());
-        if(Objects.isNull(ywDevice)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        YwPatrolScheme ywPatrolScheme = ywPatrolSchemeMapper.selectById(model.getSchemeId());
+        if(Objects.isNull(ywPatrolScheme)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌宸℃璁″垝淇℃伅");
+        }
+        if(!ywPatrolScheme.getUserIds().equals(loginUserInfo.getId().toString())){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"闈炴偍鐨勫贰妫�浠诲姟鏃犳硶杩涜澶勭悊");
         }
         YwPatrolTask ywPatrolTask = ywPatrolTaskMapper.selectById(model.getTaskId());
         if(Objects.isNull(ywPatrolTask)){
@@ -176,8 +183,9 @@
         if(ywPatrolTask.getStartDate().getTime()>System.currentTimeMillis()){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈埌宸℃鏃堕棿鏃犳硶杩涜璇ユ搷浣�");
         }
+
         ywPatrolTaskRecordMapper.update(null,new UpdateWrapper<YwPatrolTaskRecord>().lambda()
-                .set(YwPatrolTaskRecord::getDealStatus,ywDevice.getStatus())
+                .set(YwPatrolTaskRecord::getDealStatus,ywPatrolTaskRecord.getDealStatus())
                 .set(YwPatrolTaskRecord::getEditor,loginUserInfo.getId())
                 .set(YwPatrolTaskRecord::getEditDate, DateUtil.getCurrDateTime())
                 .set(YwPatrolTaskRecord::getDealDate, DateUtil.getCurrDateTime())
@@ -189,7 +197,8 @@
         if(ywPatrolTaskRecordMapper.selectCount(new QueryWrapper<YwPatrolTaskRecord>().lambda()
                 .eq(YwPatrolTaskRecord::getTaskId,ywPatrolTask.getId())
                 .eq(YwPatrolTaskRecord::getStatus,Constants.ZERO)
-                .ne(YwPatrolTaskRecord::getId,ywPatrolTaskRecord.getId()))==Constants.ZERO){
+                .ne(YwPatrolTaskRecord::getId,ywPatrolTaskRecord.getId())
+        )==Constants.ZERO){
             ywPatrolTaskMapper.update(null,new UpdateWrapper<YwPatrolTask>().lambda()
                     .eq(YwPatrolTask::getId,ywPatrolTask.getId())
                     .set(YwPatrolTask::getStatus,Constants.THREE)
@@ -198,13 +207,36 @@
                     .set(YwPatrolTask::getDealUserId,loginUserInfo.getId())
                     .set(YwPatrolTask::getEditor,loginUserInfo.getId())
             );
+
+            if(ywPatrolTaskMapper.selectCount(new QueryWrapper<YwPatrolTask>().lambda()
+                    .eq(YwPatrolTask::getSchemeId,ywPatrolTask.getSchemeId())
+                    .in(YwPatrolTask::getStatus,Constants.ZERO,Constants.ONE)
+                    .ne(YwPatrolTask::getId,ywPatrolTask.getId())
+            )==Constants.ZERO){
+                ywPatrolSchemeMapper.update(null,new UpdateWrapper<YwPatrolScheme>().lambda()
+                        .eq(YwPatrolScheme::getId,ywPatrolScheme.getId())
+                        .set(YwPatrolScheme::getStatus,Constants.TWO)
+                        .set(YwPatrolScheme::getEditDate,DateUtil.getCurrDateTime())
+                        .set(YwPatrolScheme::getEditor,loginUserInfo.getId())
+                );
+            }
         }else{
-            ywPatrolTaskMapper.update(null,new UpdateWrapper<YwPatrolTask>().lambda()
-                    .eq(YwPatrolTask::getId,ywPatrolTask.getId())
-                    .set(YwPatrolTask::getStatus,Constants.ONE)
-                    .set(YwPatrolTask::getEditDate,DateUtil.getCurrDateTime())
-                    .set(YwPatrolTask::getEditor,loginUserInfo.getId())
-            );
+            if(Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.ZERO)){
+                ywPatrolTaskMapper.update(null,new UpdateWrapper<YwPatrolTask>().lambda()
+                        .eq(YwPatrolTask::getId,ywPatrolTask.getId())
+                        .set(YwPatrolTask::getStatus,Constants.ONE)
+                        .set(YwPatrolTask::getEditDate,DateUtil.getCurrDateTime())
+                        .set(YwPatrolTask::getEditor,loginUserInfo.getId())
+                );
+            }
+            if(Constants.equalsInteger(ywPatrolScheme.getStatus(),Constants.ZERO)){
+                ywPatrolSchemeMapper.update(null,new UpdateWrapper<YwPatrolScheme>().lambda()
+                        .eq(YwPatrolScheme::getId,ywPatrolScheme.getId())
+                        .set(YwPatrolScheme::getStatus,Constants.ONE)
+                        .set(YwPatrolScheme::getEditDate,DateUtil.getCurrDateTime())
+                        .set(YwPatrolScheme::getEditor,loginUserInfo.getId())
+                );
+            }
         }
         //闄勪欢鏁版嵁
         if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywPatrolTaskRecord.getMultifileList())){
@@ -239,6 +271,7 @@
                 .selectAll(YwPatrolTaskRecord.class)
                 .selectAs(YwPatrolPoint::getName,YwPatrolTaskRecord::getPointName)
                 .selectAs(YwPatrolPoint::getContent,YwPatrolTaskRecord::getContent)
+                .selectAs(YwPatrolPoint::getDeviceId,YwPatrolTaskRecord::getDeviceId)
                 .selectAs(SystemUser::getRealname,YwPatrolTaskRecord::getRealname)
                 .selectAs(Company::getName,YwPatrolTaskRecord::getCompanyName)
                 .leftJoin(YwPatrolPoint.class,YwPatrolPoint::getId,YwPatrolTaskRecord::getPointId)
diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
index 57dc76a..b5998ec 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwPatrolTaskServiceImpl.java
@@ -94,7 +94,7 @@
                 .eq(YwPatrolTask::getId,id)
                 .last(" limit 1 "))
         ;
-        if(Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.TWO) &&
+        if((Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.ZERO) || Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.ONE) ) &&
                 ywPatrolTask.getEndDate().getTime()<System.currentTimeMillis()){
             ywPatrolTask.setStatus(Constants.TWO);
         }
@@ -156,8 +156,8 @@
         ;
         IPage<YwPatrolTask> iPage = ywPatrolTaskMapper.selectJoinPage(page,YwPatrolTask.class,queryWrapper);
         for (YwPatrolTask ywPatrolTask:iPage.getRecords()) {
-            if(Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.TWO) &&
-             ywPatrolTask.getEndDate().getTime()<System.currentTimeMillis()){
+            if((Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.ZERO) || Constants.equalsInteger(ywPatrolTask.getStatus(),Constants.ONE) ) &&
+                    ywPatrolTask.getEndDate().getTime()<System.currentTimeMillis()){
                 ywPatrolTask.setStatus(Constants.TWO);
             }
         }

--
Gitblit v1.9.3