|
@@ -3,16 +3,18 @@ package com.ghsc.partybuild.service.impl.train;
|
|
|
import com.ghsc.partybuild.mapper.*;
|
|
|
import com.ghsc.partybuild.model.*;
|
|
|
import com.ghsc.partybuild.service.PxTrainingClassService;
|
|
|
+import com.ghsc.partybuild.util.DateUtils;
|
|
|
import com.ghsc.partybuild.util.StringUtils;
|
|
|
+import com.ghsc.partybuild.vo.trian.PxTrainingClassCourseVo;
|
|
|
+import com.ghsc.partybuild.vo.trian.PxTrainingClassUserVo;
|
|
|
import com.ghsc.partybuild.vo.trian.PxTrainingClassVo;
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.UUID;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service("PxTrainingClassService")
|
|
|
public class PxTrainingClassServiceImpl implements PxTrainingClassService {
|
|
@@ -25,7 +27,13 @@ public class PxTrainingClassServiceImpl implements PxTrainingClassService {
|
|
|
@Autowired
|
|
|
private PxTrainingClassCourseMapper pxTrainingClassCourseMapper;
|
|
|
@Autowired
|
|
|
+ private PartyUserCQuery partyUserCQuery;
|
|
|
+ @Autowired
|
|
|
+ private ZzZzqkxxMapper zzZzqkxxMapper;
|
|
|
+ @Autowired
|
|
|
private StringUtils stringUtils;
|
|
|
+ @Autowired
|
|
|
+ private DateUtils dateUtils;
|
|
|
|
|
|
@Override
|
|
|
public PageInfo<PxTrainingClassVo> getList(int pageIndex, int pageSize, String id, String dzzdm, String trainingClassName, Date startDate, Date endDate){
|
|
@@ -59,9 +67,10 @@ public class PxTrainingClassServiceImpl implements PxTrainingClassService {
|
|
|
int result = 0;
|
|
|
PxTrainingClass dbModel = pxTrainingClassMapper.selectByPrimaryKey(data.getId());
|
|
|
if (dbModel == null) {
|
|
|
- dbModel = new PxTrainingClassVo();
|
|
|
+ dbModel = new PxTrainingClass();
|
|
|
dbModel.setId(data.getId());
|
|
|
dbModel.setDzzdm(data.getDzzdm());
|
|
|
+ dbModel.setTrainingClassName(data.getTrainingClassName());
|
|
|
dbModel.setBeginDate(data.getBeginDate());
|
|
|
dbModel.setEndDate(data.getEndDate());
|
|
|
dbModel.setAddress(data.getAddress());
|
|
@@ -77,6 +86,7 @@ public class PxTrainingClassServiceImpl implements PxTrainingClassService {
|
|
|
result = pxTrainingClassMapper.insert(dbModel);
|
|
|
} else {
|
|
|
dbModel.setDzzdm(data.getDzzdm());
|
|
|
+ dbModel.setTrainingClassName(data.getTrainingClassName());
|
|
|
dbModel.setBeginDate(data.getBeginDate());
|
|
|
dbModel.setEndDate(data.getEndDate());
|
|
|
dbModel.setAddress(data.getAddress());
|
|
@@ -96,8 +106,9 @@ public class PxTrainingClassServiceImpl implements PxTrainingClassService {
|
|
|
if(data.getUserList().size() > 0){
|
|
|
data.getUserList().forEach(item -> {
|
|
|
PxTrainingClassUser userModel = new PxTrainingClassUser();
|
|
|
- userModel.setTrainingClassId(data.getId());
|
|
|
userModel.setId(UUID.randomUUID().toString());
|
|
|
+ userModel.setTrainingClassId(data.getId());
|
|
|
+ userModel.setDzzdm(item.getDzzdm());
|
|
|
userModel.setUserNo(item.getUserNo());
|
|
|
userModel.setUserName(item.getUserName());
|
|
|
userModel.setGenderId(item.getGenderId());
|
|
@@ -127,4 +138,128 @@ public class PxTrainingClassServiceImpl implements PxTrainingClassService {
|
|
|
|
|
|
return pxTrainingClassMapper.deleteByExample(exp);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PxTrainingClassUserVo> getTrainingClassUserList(String trainingClassId){
|
|
|
+
|
|
|
+ return pxTrainingClassCQuery.selectTrainingClassUserList(trainingClassId);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PxTrainingClassCourseVo> getTrainingClassCourseList(String trainingClassId){
|
|
|
+
|
|
|
+ return pxTrainingClassCQuery.selectTrainingClassCourseList(trainingClassId);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PxTrainingClassCourse getCourseById(String id) {
|
|
|
+
|
|
|
+ return pxTrainingClassCourseMapper.selectByPrimaryKey(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int saveCourse(PxTrainingClassCourse data, String userId) {
|
|
|
+ int result = 0;
|
|
|
+ PxTrainingClassCourse dbModel = pxTrainingClassCourseMapper.selectByPrimaryKey(data.getId());
|
|
|
+ if (dbModel == null) {
|
|
|
+ dbModel = new PxTrainingClassCourse();
|
|
|
+ dbModel.setId(data.getId());
|
|
|
+ dbModel.setTrainingClassId(data.getTrainingClassId());
|
|
|
+ dbModel.setTrainingTime(data.getTrainingTime());
|
|
|
+ dbModel.setCourseName(data.getCourseName());
|
|
|
+ dbModel.setTeacher(data.getTeacher());
|
|
|
+ dbModel.setCreateTime(new Date());
|
|
|
+ dbModel.setCreateUserid(userId);
|
|
|
+ dbModel.setUpdateTime(new Date());
|
|
|
+ dbModel.setUpdateUserid(userId);
|
|
|
+
|
|
|
+ result = pxTrainingClassCourseMapper.insert(dbModel);
|
|
|
+ } else {
|
|
|
+ dbModel.setTrainingClassId(data.getTrainingClassId());
|
|
|
+ dbModel.setTrainingTime(data.getTrainingTime());
|
|
|
+ dbModel.setCourseName(data.getCourseName());
|
|
|
+ dbModel.setTeacher(data.getTeacher());
|
|
|
+ dbModel.setUpdateTime(new Date());
|
|
|
+ dbModel.setUpdateUserid(userId);
|
|
|
+
|
|
|
+ result = pxTrainingClassCourseMapper.updateByPrimaryKey(dbModel);
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int deleteCourse(String id) {
|
|
|
+
|
|
|
+ return pxTrainingClassCourseMapper.deleteByPrimaryKey(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<PxTrainingClassUserVo> importUser(List<PxTrainingClassUserVo> dataList) throws Exception {
|
|
|
+ if (dataList.size() == 0)
|
|
|
+ throw new Exception("请添加导入数据");
|
|
|
+ List<PxTrainingClassUserVo> resultList = new ArrayList<>();
|
|
|
+ List<PxTrainingClassUserVo> errorList = new ArrayList<>();
|
|
|
+
|
|
|
+ List<String> nameAndMobileList = dataList.stream().filter(it -> !stringUtils.IsNullOrEmpty(it.getUserName()) && !stringUtils.IsNullOrEmpty(it.getPhone()))
|
|
|
+ .map(it -> it.getUserName().trim().concat(it.getPhone().trim())).collect(Collectors.toList());
|
|
|
+ List<HashMap<String, Object>> users = partyUserCQuery.selectAllUserByNameAndMobileList(nameAndMobileList);
|
|
|
+
|
|
|
+ List<String> partyNameList = dataList.stream().filter(e -> !stringUtils.IsNullOrEmpty(e.getDzzmc())).map(e -> e.getDzzmc().trim()).distinct().collect(Collectors.toList());
|
|
|
+ ZzZzqkxxExample zzZzqkxxExample = new ZzZzqkxxExample();
|
|
|
+ ZzZzqkxxExample.Criteria partyCri = zzZzqkxxExample.or();
|
|
|
+ partyCri.andDzzmcIn(partyNameList);
|
|
|
+ List<ZzZzqkxx> zzZzqkxxList = zzZzqkxxMapper.selectByExample(zzZzqkxxExample);
|
|
|
+
|
|
|
+ for (int i = 0; i < dataList.size(); i++) {
|
|
|
+
|
|
|
+ PxTrainingClassUserVo item = dataList.get(i);
|
|
|
+
|
|
|
+ String errorInfo = "";
|
|
|
+
|
|
|
+ if (stringUtils.IsNullOrEmpty(item.getDzzmc())) {
|
|
|
+ errorInfo += "请填写所属支部!";
|
|
|
+ }
|
|
|
+ if (stringUtils.IsNullOrEmpty(item.getUserName())) {
|
|
|
+ errorInfo += "请填写姓名!";
|
|
|
+ }
|
|
|
+ if (stringUtils.IsNullOrEmpty(item.getPhone())) {
|
|
|
+ errorInfo += "请填写手机号码!";
|
|
|
+ }
|
|
|
+ if (stringUtils.IsNullOrEmpty(errorInfo)) {
|
|
|
+
|
|
|
+ if (!stringUtils.IsNullOrEmpty(item.getDzzmc())) {
|
|
|
+ ZzZzqkxx party = zzZzqkxxList.stream().filter(it -> it.getDzzmc().equals(item.getDzzmc())).findFirst().orElse(null);
|
|
|
+ if (party == null) {
|
|
|
+ errorInfo += "所属支部匹配失败!";
|
|
|
+ } else {
|
|
|
+ item.setDzzdm(party.getDzzdm());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<HashMap<String, Object>> userList = users.stream().filter(it -> it.get("XM").toString().equals(item.getUserName().trim())
|
|
|
+ && it.get("MOBILE").toString().equals(item.getPhone().trim())).collect(Collectors.toList());
|
|
|
+ if (userList.size() > 0) {
|
|
|
+ try {
|
|
|
+ HashMap<String, Object> user = userList.get(0);
|
|
|
+ item.setUserNo(stringUtils.valueOf(user.get("RYBM")));
|
|
|
+ item.setGender(stringUtils.valueOf(user.get("XBMC")));
|
|
|
+ if (user.get("XB") != null)
|
|
|
+ item.setGenderId(Integer.parseInt(user.get("XB").toString()));
|
|
|
+ } catch (Exception ex) {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!stringUtils.IsNullOrEmpty(errorInfo)) {
|
|
|
+ item.setErrorInfo("第" + (i + 2) + "行," + errorInfo);
|
|
|
+ errorList.add(item);
|
|
|
+ } else {
|
|
|
+ resultList.add(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return errorList.size() > 0 ? errorList : resultList;
|
|
|
+ }
|
|
|
+
|
|
|
}
|