package com.sercurityControl.proteam.service.impl; import com.google.common.collect.Maps; import com.securityControl.common.core.utils.StringUtils; import com.securityControl.common.core.utils.aes.DateTimeHelper; import com.securityControl.common.core.utils.aes.ListHelper; import com.securityControl.common.core.web.domain.AjaxResult; import com.securityControl.common.security.utils.SecurityUtils; import com.sercurityControl.proteam.domain.*; import com.sercurityControl.proteam.domain.vo.TeamLabelVo; import com.sercurityControl.proteam.mapper.TeamMapper; import com.sercurityControl.proteam.service.TeamService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; import javax.validation.constraints.Size; import java.util.*; /** * @author bonus * @data 2022/12/8 9:47 * @description 班组 */ @Slf4j @Service public class TeamServiceImpl implements TeamService { @Autowired private TeamMapper mapper; /** * 获取班组详细信息 * * @param teamData 条件 * @return 班组集合 */ @Override public List getTeamList(TeamData teamData) { if (StringUtils.isNotBlank(teamData.getStatus())) { String[] riskLevelArr = teamData.getStatus().split(","); List riskLevelList = Arrays.asList(riskLevelArr); teamData.setTeamStatus(riskLevelList); } List teamList = mapper.getTeamList(teamData); if(ListHelper.isNotEmpty(teamList)){ teamList.forEach(item->{ Integer num1 = mapper.getTodayNum(item.getTeamId()); if(num1==null){ num1=0; } item.setDayNum(num1.toString()); Integer num2 = mapper.getYesNum(item.getTeamId()); if(num2==null){ num2=0; } item.setYeNum(num2.toString()); int num = mapper.getTeamVoiNum(item.getTeamId()); item.setVzNum(num + ""); }); } return teamList; } /** * 获取班组详细信息 * * @param teamEvaData 条件 * @return 班组评价集合 */ @Override public List getTeamEvaList(TeamEvaData teamEvaData) { return mapper.getTeamEvaList(teamEvaData); } /** * 获取班组黑名单信息 * * @param teamBlackData 条件 * @return 班组黑名单集合 */ @Override public List getTeamBlackList(TeamBlackData teamBlackData) { List teamBlackList = mapper.getTeamBlackList(teamBlackData); for (TeamBlackData data : teamBlackList) { if (data.getPhone() >= 6 && data.getPhone() < 12) { data.setContent("重点关注人员"); } if (data.getPhone() >= 12) { data.setContent("拉黑人员"); } List teamScoreList = mapper.getTeamScoreList(data.getIdNumber()); StringBuilder str = new StringBuilder(); for (int i = 0; i < teamScoreList.size(); i++) { str.append("第").append(convert(i + 1)).append("次违章扣分:").append(teamScoreList.get(i)).append(";"); } data.setZhpj(String.valueOf(str)); data.setList(teamScoreList); } return teamBlackList; } /** * 获取班组人员信息 * * @param entity 条件 * @return 获取班组人员信息 */ @Override public List getTeamPeople(PeopleEntity entity) { return mapper.getTeamPeople(entity); } /** * 新增班组评价信息 * * @param teamEvaData 条件 * @return 班组评价集合 */ @Override @Transactional(rollbackFor = Exception.class) public AjaxResult insertTeamEva(TeamEvaData teamEvaData) { try { teamEvaData.setCreatetDay(DateTimeHelper.getNowTime()); teamEvaData.setCreatetTime(DateTimeHelper.getNowTime()); Long userid = SecurityUtils.getLoginUser().getUserid(); String nickName = SecurityUtils.getLoginUser().getSysUser().getNickName(); teamEvaData.setUserId(userid + ""); teamEvaData.setUserName(nickName); Integer integer = mapper.insertTeamEva(teamEvaData); Integer avg = mapper.getAvg(teamEvaData); teamEvaData.setZhpj(String.valueOf(avg)); if (avg <= 4) { teamEvaData.setAqwm("1"); } else { teamEvaData.setAqwm("0"); } //班组业务需要修改 // mapper.updateTeamEva(teamEvaData); mapper.updateClasscheck(teamEvaData); mapper.addTeamLabelData(teamEvaData); if (integer > 0) { return AjaxResult.success("班组评价成功"); } else { return AjaxResult.error("班组评价失败"); } } catch (Exception e) { e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error("服务异常,请稍后重试"); } } /** * 获取班组黑名单信息 * * @param classData 条件 * @return 班组黑名单集合 */ @Override public List getClassList(ClassData classData) { if (StringUtils.isNotBlank(classData.getOrg())) { String[] arr = classData.getOrg().split(","); List list = Arrays.asList(arr); classData.setOrgList(list); } if (StringUtils.isNotBlank(classData.getRiskLevel())) { String[] arr = classData.getRiskLevel().split(","); List list = Arrays.asList(arr); classData.setRiskList(list); } return mapper.getClassList(classData); } /** * 插入班组拉黑 * * @param teamEvaData 条件 * @return 条数 */ @Override public AjaxResult insertTeamBlack(TeamEvaData teamEvaData) { try { teamEvaData.setCreatetDay(DateTimeHelper.getNowTime()); teamEvaData.setCreatetTime(DateTimeHelper.getNowTime()); Integer integer = mapper.insertTeamBlack(teamEvaData); if (integer > 0) { return AjaxResult.success("拉黑成功"); } else { return AjaxResult.error("拉黑失败"); } } catch (Exception e) { e.printStackTrace(); return AjaxResult.error("拉黑失败"); } } /** * 移出班组拉黑 * * @param teamEvaData 条件 * @return 条数 */ @Override public AjaxResult deleteTeamBlack(TeamEvaData teamEvaData) { try { Integer integer = mapper.deleteTeamBlack(teamEvaData); if (integer > 0) { return AjaxResult.success("移出成功"); } else { return AjaxResult.error("移出失败"); } } catch (Exception e) { e.printStackTrace(); return AjaxResult.error("移出失败"); } } /** * 查询组织机构下拉选 * * @return 集合 */ @Override public AjaxResult getOrgSelected() { return AjaxResult.success(mapper.getOrgSelected()); } /** * 查询组织机构下拉选 * * @return 集合 */ @Override public AjaxResult getSelectParams(String code) { return AjaxResult.success(mapper.getSelectParams(code)); } /** * 查询数量 * * @return 集合 */ @Override public AjaxResult getPerNum(TeamData entity) { Map map= Maps.newHashMap(); try { List> lists=new ArrayList<>(); List list = mapper.getPerNum(entity); if (ListHelper.isNotEmpty(list)) { map.put("dTeam", list.get(0)); map.put("dZTeam", list.get(1)); map.put("dPer", list.get(2)); map.put("dZPer", list.get(3)); map.put("dWTeam", list.get(4)); map.put("xZteam", list.get(5)); map.put("yTeam", list.get(6)); map.put("yPer", list.get(7)); int num = mapper.getMonthPeopleNum(); map.put("yPer", num); lists.add(map); } return AjaxResult.success(lists); } catch (Exception e) { log.error(e.toString(), e); } return AjaxResult.success(mapper.getPerNum(entity)); } public String convert(int number) { //数字对应的汉字 String[] num = {"一", "二", "三", "四", "五", "六", "七", "八", "九"}; //单位 String[] unit = {"", "十", "百", "千", "万", "十", "百", "千", "亿", "十", "百", "千", "万亿"}; //将该字符串分割为数组存放 String result = String.valueOf(number); char[] ch = result.toCharArray(); //结果 字符串 String str = ""; int length = ch.length; for (int i = 0; i < length; i++) { int c = (int) ch[i] - 48; if (c != 0) { str += num[c - 1] + unit[length - i - 1]; } } return str; } @Override @Transactional(rollbackFor = Exception.class) public AjaxResult addTeamLabel(TeamLabelVo vo) { try { int result = mapper.labelIsRepeat(vo); if (result > 0) { return AjaxResult.error("标签已存在"); } vo.setUserId(SecurityUtils.getUserId() + ""); vo.setCreateTime(DateTimeHelper.getNowTime()); mapper.addTeamLabel(vo); } catch (Exception e) { //手动回滚异常 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); log.error("添加班组评价标签",e); return AjaxResult.error(); } return AjaxResult.success(); } @Override public AjaxResult getTeamLabel() { List list = new ArrayList<>(); try { list = mapper.getTeamLabel(); } catch (Exception e) { log.error("获取班组评价标签",e); } return AjaxResult.success(list); } @Override @Transactional(rollbackFor = Exception.class) public AjaxResult delTeamLabel(TeamLabelVo vo) { try { mapper.delTeamLabel(vo); } catch (Exception e) { //手动回滚异常 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); log.error("删除班组评价标签",e); return AjaxResult.error(); } return AjaxResult.success(); } @Override public AjaxResult getTeamLabelIds(TeamLabelVo vo) { Map map = new HashMap<>(16); try { if(StringUtils.isNotEmpty(vo.getLabelName())){ String[] labelNameArr = vo.getLabelName().split(","); List labelNameList = Arrays.asList(labelNameArr); vo.setLabelNameList(labelNameList); List list = mapper.getTeamLabelIds(vo); map.put("nameList",labelNameList); map.put("valueList",list); } } catch (Exception e) { log.error("查询班组标签真实ID",e); } return AjaxResult.success(map); } }