From cc1098fc00a50cb1591d182f04bc37066ff0a9e2 Mon Sep 17 00:00:00 2001
From: 罗元桥 <2376770955@qq.com>
Date: 星期四, 05 八月 2021 15:12:39 +0800
Subject: [PATCH] Merge branch 'test' into 'master'

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java |   42 +++++++++++++++++++++++++++++++++++-------
 1 files changed, 35 insertions(+), 7 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..92faf27 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
@@ -36,6 +36,8 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 /**
  * @auther txb
@@ -123,7 +125,9 @@
             return R.fail("该值班表不存在");
         }
         BeanUtils.copyProperties(comSwRotaDO,comSwRotaVO);
-        comSwRotaVO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").format(comSwRotaDO.getRotaDate()));
+        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();
@@ -175,7 +179,7 @@
                     return R.fail("该值班表不存在");
                 }
                 ComSwRotaDO checkCreditCode = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, comSwRotaSaveDTO.getRotaDate()));
-                if (null != checkCreditCode && comSwRotaDO.getId() != checkCreditCode.getId()) {
+                if (null != checkCreditCode && !comSwRotaDO.getId().equals(checkCreditCode.getId())) {
                     return R.fail("该值班表已存在,值班日期重复");
                 }
                 BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO);
@@ -221,6 +225,9 @@
         }catch (ParseException e) {
                 e.printStackTrace();
         }
+        if (comSwRotaDO == null) {
+            return R.fail(rotaDate + "值班表不存在");
+        }
         List<ComSwRotaPersonVO> rotaPersons = new ArrayList<>();
         if (null != comSwRotaDO){
             String rotaPerson = comSwRotaDO.getRotaPerson();
@@ -247,6 +254,9 @@
             comSwRotaDO = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, new SimpleDateFormat("yyyy-MM-dd").parse(rotaDate)));
         } catch (ParseException e) {
             e.printStackTrace();
+        }
+        if (comSwRotaDO == null) {
+            return R.fail(rotaDate + "值班表不存在");
         }
         List<ComSwRotaPersonVO> rotaLeaders = new ArrayList<>();
         if (null != comSwRotaDO){
@@ -282,23 +292,41 @@
                 }
                 ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
                 String[] leaderPhones = comSwRotaExcelVO.getLeaderPhone().split("、");
+                String[] leaderNames = comSwRotaExcelVO.getLeaderName().split("、");
                 List<String> leaderIds = new ArrayList<>();
-                for (String leaderPhone : leaderPhones) {
-                    String id = comSwRotaDAO.getTeamIdsByTeamPhone(leaderPhone);
+                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 (String personPhone : personPhones) {
-                    String id = comSwRotaDAO.getTeamIdsByTeamPhone(personPhone);
+                for (int i = 0; i < leaderPhones.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 {
-                comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaExcelVO.getRotaDate()));
+                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                    comSwRotaDO.setRotaDate(sdf.parse(comSwRotaExcelVO.getRotaDate()));
                 } catch (ParseException e) {
                     e.printStackTrace();
                 }

--
Gitblit v1.7.1