From 5a8a90c095280fbd2106869ecd2bad10e01a57a6 Mon Sep 17 00:00:00 2001
From: 101captain <237651143@qq.com>
Date: 星期四, 23 十二月 2021 18:10:22 +0800
Subject: [PATCH] 12/23  大屏修改

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java |  250 ++++++++++++++++++++++++++++---------------------
 1 files changed, 143 insertions(+), 107 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java
index 9c1afe2..e043486 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java
@@ -1,41 +1,38 @@
 package com.panzhihua.service_community.service.impl;
 
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.panzhihua.common.model.dtos.community.ComSwRotaPageDTO;
-import com.panzhihua.common.model.dtos.community.ComSwRotaSaveDTO;
-import com.panzhihua.common.model.vos.LoginUserInfoVO;
-import com.panzhihua.common.model.vos.R;
-import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
-import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO;
-import com.panzhihua.common.model.vos.community.ComSwRotaPersonVO;
-import com.panzhihua.common.model.vos.community.ComSwRotaVO;
-import com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO;
-import com.panzhihua.common.service.user.UserService;
-import com.panzhihua.common.utlis.DateUtils;
-import com.panzhihua.common.utlis.Snowflake;
-import com.panzhihua.common.utlis.StringUtils;
-import com.panzhihua.service_community.dao.ComOpsAccUserDAO;
-import com.panzhihua.service_community.dao.ComSwPatrolRecordDAO;
-import com.panzhihua.service_community.dao.ComSwRotaDAO;
-import com.panzhihua.service_community.model.dos.ComMngUserTagDO;
-import com.panzhihua.service_community.model.dos.ComSwRotaDO;
-import com.panzhihua.service_community.service.ComSwRotaService;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-import org.springframework.context.annotation.Bean;
-import org.springframework.stereotype.Service;
-
-import javax.annotation.Resource;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.ComSwRotaPageDTO;
+import com.panzhihua.common.model.dtos.community.ComSwRotaSaveDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO;
+import com.panzhihua.common.model.vos.community.ComSwRotaPersonVO;
+import com.panzhihua.common.model.vos.community.ComSwRotaVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComSwPatrolRecordDAO;
+import com.panzhihua.service_community.dao.ComSwRotaDAO;
+import com.panzhihua.service_community.model.dos.ComSwRotaDO;
+import com.panzhihua.service_community.service.ComSwRotaService;
+
+import cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @auther txb
@@ -74,13 +71,13 @@
                 comSwRotaVO.setWeekDay(DateUtils.dateToWeek(comSwRotaVO.getRotaDate()));
                 StringBuilder leaderNameString = new StringBuilder();
                 StringBuilder leaderPhoneString = new StringBuilder();
-                //值班领导id查询值班领导的名字和电话
-                if(StringUtils.isNotEmpty(comSwRotaVO.getRotaLeader())){
+                // 值班领导id查询值班领导的名字和电话
+                if (StringUtils.isNotEmpty(comSwRotaVO.getRotaLeader())) {
                     String[] leaderIds = comSwRotaVO.getRotaLeader().split(",");
-                    for (int i = 0; i < leaderIds.length ; i++) {
-                        Map<String,String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(leaderIds[i]);
-                        if(leader != null){
-                            if(i != 0){
+                    for (int i = 0; i < leaderIds.length; i++) {
+                        Map<String, String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(leaderIds[i]);
+                        if (leader != null) {
+                            if (i != 0) {
                                 leaderNameString.append(",");
                                 leaderPhoneString.append(",");
                             }
@@ -91,15 +88,15 @@
                     comSwRotaVO.setLeaderName(leaderNameString.toString());
                     comSwRotaVO.setLeaderPhone(leaderPhoneString.toString());
                 }
-                //值班人员id查询值班人员的名字和电话
+                // 值班人员id查询值班人员的名字和电话
                 StringBuilder personNameString = new StringBuilder();
                 StringBuilder personPhoneString = new StringBuilder();
-                if(StringUtils.isNotEmpty(comSwRotaVO.getRotaPerson())){
+                if (StringUtils.isNotEmpty(comSwRotaVO.getRotaPerson())) {
                     String[] personIds = comSwRotaVO.getRotaPerson().split(",");
-                    for (int i = 0; i < personIds.length ; i++) {
-                        Map<String,String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
-                        if(person != null){
-                            if(i != 0){
+                    for (int i = 0; i < personIds.length; i++) {
+                        Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                        if (person != null) {
+                            if (i != 0) {
                                 personNameString.append(",");
                                 personPhoneString.append(",");
                             }
@@ -122,18 +119,20 @@
         if (null == comSwRotaDO) {
             return R.fail("该值班表不存在");
         }
-        BeanUtils.copyProperties(comSwRotaDO,comSwRotaVO);
-        comSwRotaVO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").format(comSwRotaDO.getRotaDate()));
+        BeanUtils.copyProperties(comSwRotaDO, comSwRotaVO);
+        if (null != comSwRotaDO.getRotaDate()) {
+            comSwRotaVO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").format(comSwRotaDO.getRotaDate()));
+        }
         comSwRotaVO.setWeekDay(DateUtils.dateToWeek(comSwRotaVO.getRotaDate()));
         StringBuilder leaderNameString = new StringBuilder();
         StringBuilder leaderPhoneString = new StringBuilder();
-        //值班领导id查询值班领导的名字和电话
-        if(StringUtils.isNotEmpty(comSwRotaDO.getRotaLeader())){
+        // 值班领导id查询值班领导的名字和电话
+        if (StringUtils.isNotEmpty(comSwRotaDO.getRotaLeader())) {
             String[] leaderIds = comSwRotaDO.getRotaLeader().split(",");
-            for (int i = 0; i < leaderIds.length ; i++) {
-                Map<String,String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(leaderIds[i]);
-                if(leader != null){
-                    if(i != 0){
+            for (int i = 0; i < leaderIds.length; i++) {
+                Map<String, String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(leaderIds[i]);
+                if (leader != null) {
+                    if (i != 0) {
                         leaderNameString.append(",");
                         leaderPhoneString.append(",");
                     }
@@ -144,15 +143,15 @@
             comSwRotaVO.setLeaderName(leaderNameString.toString());
             comSwRotaVO.setLeaderPhone(leaderPhoneString.toString());
         }
-        //值班人员id查询值班人员的名字和电话
+        // 值班人员id查询值班人员的名字和电话
         StringBuilder personNameString = new StringBuilder();
         StringBuilder personPhoneString = new StringBuilder();
-        if(StringUtils.isNotEmpty(comSwRotaDO.getRotaPerson())){
+        if (StringUtils.isNotEmpty(comSwRotaDO.getRotaPerson())) {
             String[] personIds = comSwRotaDO.getRotaPerson().split(",");
-            for (int i = 0; i < personIds.length ; i++) {
-                Map<String,String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
-                if(person != null){
-                    if(i != 0){
+            for (int i = 0; i < personIds.length; i++) {
+                Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                if (person != null) {
+                    if (i != 0) {
                         personNameString.append(",");
                         personPhoneString.append(",");
                     }
@@ -168,14 +167,15 @@
 
     @Override
     public R addRota(List<ComSwRotaSaveDTO> comSwRotaSaveDTOs) {
-        for (ComSwRotaSaveDTO comSwRotaSaveDTO : comSwRotaSaveDTOs){
+        for (ComSwRotaSaveDTO comSwRotaSaveDTO : comSwRotaSaveDTOs) {
             if (comSwRotaSaveDTO.getId() != null && comSwRotaSaveDTO.getId() != 0) {
                 ComSwRotaDO comSwRotaDO = comSwRotaDAO.selectById(comSwRotaSaveDTO.getId());
                 if (null == comSwRotaDO) {
                     return R.fail("该值班表不存在");
                 }
-                ComSwRotaDO checkCreditCode = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, comSwRotaSaveDTO.getRotaDate()));
-                if (null != checkCreditCode && comSwRotaDO.getId() != checkCreditCode.getId()) {
+                ComSwRotaDO checkCreditCode = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda()
+                    .eq(ComSwRotaDO::getRotaDate, comSwRotaSaveDTO.getRotaDate()).eq(ComSwRotaDO::getCommunityId,comSwRotaSaveDTO.getCommunityId()));
+                if (null != checkCreditCode && !comSwRotaDO.getId().equals(checkCreditCode.getId())) {
                     return R.fail("该值班表已存在,值班日期重复");
                 }
                 BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO);
@@ -186,7 +186,8 @@
                 }
                 comSwRotaDAO.updateById(comSwRotaDO);
             } else {
-                Integer count = comSwRotaDAO.selectCount(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, comSwRotaSaveDTO.getRotaDate()));
+                Integer count = comSwRotaDAO.selectCount(new QueryWrapper<ComSwRotaDO>().lambda()
+                    .eq(ComSwRotaDO::getRotaDate, comSwRotaSaveDTO.getRotaDate()).eq(ComSwRotaDO::getCommunityId,comSwRotaSaveDTO.getCommunityId()));
                 if (count > 0) {
                     return R.fail("该值班表已存在,值班日期重复");
                 }
@@ -214,22 +215,26 @@
     }
 
     @Override
-    public R getRotaPersonByDate(String rotaDate) {
+    public R getRotaPersonByDate(String rotaDate,Long communityId) {
         ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
         try {
-            comSwRotaDO = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, new SimpleDateFormat("yyyy-MM-dd").parse(rotaDate)));
-        }catch (ParseException e) {
-                e.printStackTrace();
+            comSwRotaDO = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate,
+                new SimpleDateFormat("yyyy-MM-dd").parse(rotaDate)).eq(ComSwRotaDO::getCommunityId,communityId));
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        if (comSwRotaDO == null) {
+            return R.fail(rotaDate + "值班表不存在");
         }
         List<ComSwRotaPersonVO> rotaPersons = new ArrayList<>();
-        if (null != comSwRotaDO){
+        if (null != comSwRotaDO) {
             String rotaPerson = comSwRotaDO.getRotaPerson();
             String[] rotaPersonArray = rotaPerson.split(",");
-            for (int i = 0; i <= rotaPersonArray.length - 1; i++){
+            for (int i = 0; i <= rotaPersonArray.length - 1; i++) {
                 ComSwRotaPersonVO comSwRotaPersonVO = new ComSwRotaPersonVO();
                 comSwRotaPersonVO.setId(Long.valueOf(rotaPersonArray[i]));
-                Map<String,String> userMap = this.comSwRotaDAO.getImageUrl(Long.valueOf(rotaPersonArray[i]));
-                if(userMap != null){
+                Map<String, String> userMap = this.comSwRotaDAO.getImageUrl(Long.valueOf(rotaPersonArray[i]));
+                if (userMap != null) {
                     comSwRotaPersonVO.setPhone(userMap.get("phone"));
                     comSwRotaPersonVO.setImageUrl(userMap.get("url"));
                     comSwRotaPersonVO.setName(userMap.get("name"));
@@ -241,22 +246,26 @@
     }
 
     @Override
-    public R getRotaLeaderByDate(String rotaDate) {
+    public R getRotaLeaderByDate(String rotaDate,Long communityId) {
         ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
         try {
-            comSwRotaDO = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, new SimpleDateFormat("yyyy-MM-dd").parse(rotaDate)));
+            comSwRotaDO = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate,
+                new SimpleDateFormat("yyyy-MM-dd").parse(rotaDate)).eq(ComSwRotaDO::getCommunityId,communityId));
         } catch (ParseException e) {
             e.printStackTrace();
         }
+        if (comSwRotaDO == null) {
+            return R.fail(rotaDate + "值班表不存在");
+        }
         List<ComSwRotaPersonVO> rotaLeaders = new ArrayList<>();
-        if (null != comSwRotaDO){
+        if (null != comSwRotaDO) {
             String rotaPerson = comSwRotaDO.getRotaLeader();
             String[] rotaPersonArray = rotaPerson.split(",");
-            for (int i = 0; i <= rotaPersonArray.length - 1; i++){
+            for (int i = 0; i <= rotaPersonArray.length - 1; i++) {
                 ComSwRotaPersonVO comSwRotaPersonVO = new ComSwRotaPersonVO();
                 comSwRotaPersonVO.setId(Long.valueOf(rotaPersonArray[i]));
-                Map<String,String> userMap = this.comSwRotaDAO.getImageUrl(Long.valueOf(rotaPersonArray[i]));
-                if(userMap != null){
+                Map<String, String> userMap = this.comSwRotaDAO.getImageUrl(Long.valueOf(rotaPersonArray[i]));
+                if (userMap != null) {
                     comSwRotaPersonVO.setPhone(userMap.get("phone"));
                     comSwRotaPersonVO.setImageUrl(userMap.get("url"));
                     comSwRotaPersonVO.setName(userMap.get("name"));
@@ -269,45 +278,72 @@
 
     @Override
     public R getTotlePerson(String param, Long communityId) {
-        return userService.listActivityManager(param,communityId);
+        return userService.listActivityManager(param, communityId);
     }
 
     @Override
     public R listSaveSwRotaExcelVO(List<ComSwRotaExcelVO> list, Long communityId) {
+        String[] parsePatterns = new String[] {"yyyy-MM-dd", "yyyy-M-dd", "yyyy-MM-d", "yyyy-M-d", "yyyy/MM/dd",
+            "yyyy/M/dd", "yyyy/MM/d", "yyyy/M/d"};
         List<ComSwRotaDO> comSwRotaDOS = new ArrayList<>();
-            for (ComSwRotaExcelVO comSwRotaExcelVO : list){
-                Integer count = comSwRotaDAO.selectCount(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, comSwRotaExcelVO.getRotaDate()));
-                if (count > 0) {
-                    return R.fail("值班日期已存在," + comSwRotaExcelVO.getRotaDate() + "重复");
-                }
-                ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
-                String[] leaderPhones = comSwRotaExcelVO.getLeaderPhone().split("、");
-                List<String> leaderIds = new ArrayList<>();
-                for (String leaderPhone : leaderPhones) {
-                    String id = comSwRotaDAO.getTeamIdsByTeamPhone(leaderPhone);
-                    leaderIds.add(id);
-                }
-
-                String[] personPhones = comSwRotaExcelVO.getPersonPhone().split("、");
-                List<String> personIds = new ArrayList<>();
-                for (String personPhone : personPhones) {
-                    String id = comSwRotaDAO.getTeamIdsByTeamPhone(personPhone);
-                    personIds.add(id);
-                }
-                BeanUtils.copyProperties(comSwRotaExcelVO, comSwRotaDO);
-                comSwRotaDO.setId(Snowflake.getId());
-                comSwRotaDO.setCommunityId(communityId);
-                try {
-                comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaExcelVO.getRotaDate()));
-                } catch (ParseException e) {
-                    e.printStackTrace();
-                }
-                comSwRotaDO.setRotaLeader(StringUtils.join(leaderIds, ","));
-                comSwRotaDO.setRotaPerson(StringUtils.join(personIds, ","));
-                comSwRotaDO.setLeaderName(comSwRotaExcelVO.getLeaderName().replace("、",","));
-                comSwRotaDO.setPersonName(comSwRotaExcelVO.getPersonName().replace("、",","));
-                comSwRotaDOS.add(comSwRotaDO);
+        for (ComSwRotaExcelVO comSwRotaExcelVO : list) {
+            Date date = DateUtil.parse(comSwRotaExcelVO.getRotaDate(), parsePatterns);
+            Integer count =
+                comSwRotaDAO.selectCount(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, date)
+                        .eq(ComSwRotaDO::getCommunityId,communityId));
+            if (count > 0) {
+                return R.fail("值班日期已存在," + comSwRotaExcelVO.getRotaDate() + "重复");
             }
+            ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
+            String[] leaderPhones = comSwRotaExcelVO.getLeaderPhone().split("、");
+            String[] leaderNames = comSwRotaExcelVO.getLeaderName().split("、");
+            List<String> leaderIds = new ArrayList<>();
+            for (int i = 0; i < leaderPhones.length; i++) {
+                String id = comSwRotaDAO.getTeamIdsByTeamPhone(leaderPhones[i]);
+                if (StringUtils.isEmpty(id)) {
+                    return R.fail(leaderNames[i] + "为非社区团队人员或该人员电话未维护!");
+                }
+                leaderIds.add(id);
+            }
+
+            String[] personPhones = comSwRotaExcelVO.getPersonPhone().split("、");
+            String[] personNames = comSwRotaExcelVO.getPersonName().split("、");
+            List<String> personIds = new ArrayList<>();
+            for (int i = 0; i < personPhones.length; i++) {
+                String id = comSwRotaDAO.getTeamIdsByTeamPhone(personPhones[i]);
+                if (StringUtils.isEmpty(id)) {
+                    return R.fail(personNames[i] + "为非社区团队人员或该人员电话未维护!");
+                }
+                personIds.add(id);
+            }
+            BeanUtils.copyProperties(comSwRotaExcelVO, comSwRotaDO);
+            comSwRotaDO.setId(Snowflake.getId());
+            comSwRotaDO.setCommunityId(communityId);
+            // if (StringUtils.isNotEmpty(comSwRotaExcelVO.getRotaDate())) {
+            // String el =
+            // "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)
+            // \n" +
+            // "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)
+            // ";
+            // Pattern p = Pattern.compile(el);
+            // Matcher m = p.matcher(comSwRotaExcelVO.getRotaDate());
+            // if (!m.matches()) {
+            // return R.fail(comSwRotaExcelVO.getRotaDate() + "日期格式不正确");
+            // }
+            // }
+            // try {
+            // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            // comSwRotaDO.setRotaDate(sdf.parse(comSwRotaExcelVO.getRotaDate()));
+            // } catch (ParseException e) {
+            // e.printStackTrace();
+            // }
+            comSwRotaDO.setRotaDate(date);
+            comSwRotaDO.setRotaLeader(StringUtils.join(leaderIds, ","));
+            comSwRotaDO.setRotaPerson(StringUtils.join(personIds, ","));
+            comSwRotaDO.setLeaderName(comSwRotaExcelVO.getLeaderName().replace("、", ","));
+            comSwRotaDO.setPersonName(comSwRotaExcelVO.getPersonName().replace("、", ","));
+            comSwRotaDOS.add(comSwRotaDO);
+        }
         this.saveBatch(comSwRotaDOS);
         return R.ok();
     }

--
Gitblit v1.7.1