From aa76c2b0bb73e9fe463387fb5656ea80094eceec Mon Sep 17 00:00:00 2001 From: tangxiaobao <303826152@qq.com> Date: 星期三, 04 八月 2021 15:15:59 +0800 Subject: [PATCH] 值班表导入bug修改 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java | 209 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 186 insertions(+), 23 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..9c1afe2 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,29 +69,138 @@ 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 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())); - 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())); - comSwRotaDAO.insert(comSwRotaDO); + 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")); } - } catch (ParseException e) { - e.printStackTrace(); } - }); + 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) { + 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()) { + return R.fail("该值班表已存在,值班日期重复"); + } + BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO); + try { + comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate())); + } catch (ParseException e) { + e.printStackTrace(); + } + comSwRotaDAO.updateById(comSwRotaDO); + } else { + Integer count = comSwRotaDAO.selectCount(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, comSwRotaSaveDTO.getRotaDate())); + if (count > 0) { + return R.fail("该值班表已存在,值班日期重复"); + } + ComSwRotaDO comSwRotaDO = new ComSwRotaDO(); + BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO); + comSwRotaDO.setId(Snowflake.getId()); + try { + comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate())); + } catch (ParseException e) { + e.printStackTrace(); + } + comSwRotaDAO.insert(comSwRotaDO); + } + } return R.ok(); } @@ -107,13 +224,16 @@ 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(); comSwRotaPersonVO.setId(Long.valueOf(rotaPersonArray[i])); - comSwRotaPersonVO.setName(rotaPersonNameArray[i]); + 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")); + } rotaPersons.add(comSwRotaPersonVO); } } @@ -131,13 +251,16 @@ 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(); comSwRotaPersonVO.setId(Long.valueOf(rotaPersonArray[i])); - comSwRotaPersonVO.setName(rotaPersonNameArray[i]); + 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")); + } rotaLeaders.add(comSwRotaPersonVO); } } @@ -148,4 +271,44 @@ 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<>(); + 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); + } + this.saveBatch(comSwRotaDOS); + return R.ok(); + } } -- Gitblit v1.7.1