From 8bf43f03da3a291c90e48072e837d254d11a88b0 Mon Sep 17 00:00:00 2001
From: huanghongfa <huanghongfa123456>
Date: 星期六, 09 十月 2021 15:20:45 +0800
Subject: [PATCH] bug修复
---
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java | 292 +++++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 245 insertions(+), 47 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..e7aaaf5 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,36 +1,38 @@
package com.panzhihua.service_community.service.impl;
-import com.alibaba.fastjson.JSONObject;
+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.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.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 cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
/**
* @auther txb
@@ -45,6 +47,9 @@
private ComSwRotaDAO comSwRotaDAO;
@Resource
private UserService userService;
+
+ @Resource
+ private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
@Override
public R pageRota(ComSwRotaPageDTO comSwRotaPageDTO) {
@@ -61,29 +66,142 @@
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);
+ 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())) {
+ 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().equals(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();
}
@@ -100,20 +218,27 @@
public R getRotaPersonByDate(String rotaDate) {
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)));
+ } 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 rotaPersonName = comSwRotaDO.getPersonName();
String[] rotaPersonArray = rotaPerson.split(",");
- String[] rotaPersonNameArray = rotaPersonName.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]));
- 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);
}
}
@@ -124,20 +249,27 @@
public R getRotaLeaderByDate(String rotaDate) {
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)));
} 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 rotaPersonName = comSwRotaDO.getLeaderName();
String[] rotaPersonArray = rotaPerson.split(",");
- String[] rotaPersonNameArray = rotaPersonName.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]));
- 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);
}
}
@@ -146,6 +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) {
+ Date date = DateUtil.parse(comSwRotaExcelVO.getRotaDate(), parsePatterns);
+ Integer count =
+ comSwRotaDAO.selectCount(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, date));
+ 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 < 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 {
+ // 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