From 68d9932527d3fc879b0422d7d9c29d3f9437c65c Mon Sep 17 00:00:00 2001
From: tangxiaobao <303826152@qq.com>
Date: 星期六, 31 七月 2021 21:01:15 +0800
Subject: [PATCH] 防火防汛接口开发

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java |  164 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 152 insertions(+), 12 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 e623c1a..6875d1a 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
@@ -10,19 +10,23 @@
 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;
@@ -31,6 +35,7 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @auther txb
@@ -45,6 +50,9 @@
     private ComSwRotaDAO comSwRotaDAO;
     @Resource
     private UserService userService;
+
+    @Resource
+    private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
 
     @Override
     public R pageRota(ComSwRotaPageDTO comSwRotaPageDTO) {
@@ -61,28 +69,126 @@
         page.setCurrent(pageNum);
 
         IPage<ComSwRotaVO> iPage = comSwRotaDAO.pageRota(page, comSwRotaPageDTO);
+        if (null != iPage.getRecords()) {
+            iPage.getRecords().forEach(comSwRotaVO -> {
+                comSwRotaVO.setWeekDay(DateUtils.dateToWeek(comSwRotaVO.getRotaDate()));
+                StringBuilder leaderNameString = new StringBuilder();
+                StringBuilder leaderPhoneString = new StringBuilder();
+                //值班领导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){
+                                leaderNameString.append(",");
+                                leaderPhoneString.append(",");
+                            }
+                            leaderNameString.append(leader.get("name"));
+                            leaderPhoneString.append(leader.get("phone"));
+                        }
+                    }
+                    comSwRotaVO.setLeaderName(leaderNameString.toString());
+                    comSwRotaVO.setLeaderPhone(leaderPhoneString.toString());
+                }
+                //值班人员id查询值班人员的名字和电话
+                StringBuilder personNameString = new StringBuilder();
+                StringBuilder personPhoneString = new StringBuilder();
+                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){
+                                personNameString.append(",");
+                                personPhoneString.append(",");
+                            }
+                            personNameString.append(person.get("name"));
+                            personPhoneString.append(person.get("phone"));
+                        }
+                    }
+                    comSwRotaVO.setPersonName(personNameString.toString());
+                    comSwRotaVO.setPersonPhone(personPhoneString.toString());
+                }
+            });
+        }
         return R.ok(iPage);
+    }
+
+    @Override
+    public R detailRota(Long rotaId) {
+        ComSwRotaVO comSwRotaVO = new ComSwRotaVO();
+        ComSwRotaDO comSwRotaDO = comSwRotaDAO.selectById(rotaId);
+        if (null == comSwRotaDO) {
+            return R.fail("该值班表不存在");
+        }
+        BeanUtils.copyProperties(comSwRotaDO,comSwRotaVO);
+        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())){
+            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){
+                        leaderNameString.append(",");
+                        leaderPhoneString.append(",");
+                    }
+                    leaderNameString.append(leader.get("name"));
+                    leaderPhoneString.append(leader.get("phone"));
+                }
+            }
+            comSwRotaVO.setLeaderName(leaderNameString.toString());
+            comSwRotaVO.setLeaderPhone(leaderPhoneString.toString());
+        }
+        //值班人员id查询值班人员的名字和电话
+        StringBuilder personNameString = new StringBuilder();
+        StringBuilder personPhoneString = new StringBuilder();
+        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){
+                        personNameString.append(",");
+                        personPhoneString.append(",");
+                    }
+                    personNameString.append(person.get("name"));
+                    personPhoneString.append(person.get("phone"));
+                }
+            }
+            comSwRotaVO.setPersonName(personNameString.toString());
+            comSwRotaVO.setPersonPhone(personPhoneString.toString());
+        }
+        return R.ok(comSwRotaVO);
     }
 
     @Override
     public R addRota(List<ComSwRotaSaveDTO> comSwRotaSaveDTOs) {
         comSwRotaSaveDTOs.forEach(comSwRotaSaveDTO -> {
-            try {
                 if (comSwRotaSaveDTO.getId() != null && comSwRotaSaveDTO.getId() != 0) {
                     ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
                     BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO);
-                    comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate()));
+                    try {
+                        comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate()));
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
                     comSwRotaDAO.updateById(comSwRotaDO);
                 } else {
                     ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
                     BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO);
                     comSwRotaDO.setId(Snowflake.getId());
-                    comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate()));
+                    try {
+                        comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate()));
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
                     comSwRotaDAO.insert(comSwRotaDO);
                 }
-            } catch (ParseException e) {
-                e.printStackTrace();
-            }
         });
         return R.ok();
     }
@@ -107,13 +213,13 @@
         List<ComSwRotaPersonVO> rotaPersons = new ArrayList<>();
         if (null != comSwRotaDO){
             String rotaPerson = comSwRotaDO.getRotaPerson();
-            String rotaPersonName = comSwRotaDO.getPersonName();
             String[] rotaPersonArray = rotaPerson.split(",");
-            String[] rotaPersonNameArray = rotaPersonName.split(",");
             for (int i = 0; i <= rotaPersonArray.length - 1; i++){
                 ComSwRotaPersonVO comSwRotaPersonVO = new ComSwRotaPersonVO();
+                Map<String,String> person = comSwPatrolRecordDAO.getPbServiceTeamById(rotaPersonArray[i]);
                 comSwRotaPersonVO.setId(Long.valueOf(rotaPersonArray[i]));
-                comSwRotaPersonVO.setName(rotaPersonNameArray[i]);
+                comSwRotaPersonVO.setName(person.get("name"));
+                comSwRotaPersonVO.setPhone(Long.valueOf(person.get("phone")));
                 rotaPersons.add(comSwRotaPersonVO);
             }
         }
@@ -131,13 +237,13 @@
         List<ComSwRotaPersonVO> rotaLeaders = new ArrayList<>();
         if (null != comSwRotaDO){
             String rotaPerson = comSwRotaDO.getRotaLeader();
-            String rotaPersonName = comSwRotaDO.getLeaderName();
             String[] rotaPersonArray = rotaPerson.split(",");
-            String[] rotaPersonNameArray = rotaPersonName.split(",");
             for (int i = 0; i <= rotaPersonArray.length - 1; i++){
                 ComSwRotaPersonVO comSwRotaPersonVO = new ComSwRotaPersonVO();
+                Map<String,String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(rotaPersonArray[i]);
                 comSwRotaPersonVO.setId(Long.valueOf(rotaPersonArray[i]));
-                comSwRotaPersonVO.setName(rotaPersonNameArray[i]);
+                comSwRotaPersonVO.setName(leader.get("name"));
+                comSwRotaPersonVO.setPhone(Long.valueOf(leader.get("phone")));
                 rotaLeaders.add(comSwRotaPersonVO);
             }
         }
@@ -148,4 +254,38 @@
     public R getTotlePerson(String param, Long communityId) {
         return userService.listActivityManager(param,communityId);
     }
+
+    @Override
+    public R listSaveSwRotaExcelVO(List<ComSwRotaExcelVO> list, Long communityId) {
+        List<ComSwRotaDO> comSwRotaDOS = new ArrayList<>();
+            list.forEach(comSwRotaExcelVO -> {
+                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, ","));
+                comSwRotaDOS.add(comSwRotaDO);
+            });
+        this.saveBatch(comSwRotaDOS);
+        return R.ok();
+    }
 }

--
Gitblit v1.7.1