diff --git a/srs-admin/src/main/java/com/srs/web/controller/comprehensive/SyncDataController.java b/srs-admin/src/main/java/com/srs/web/controller/comprehensive/SyncDataController.java index 734791a..82938ed 100644 --- a/srs-admin/src/main/java/com/srs/web/controller/comprehensive/SyncDataController.java +++ b/srs-admin/src/main/java/com/srs/web/controller/comprehensive/SyncDataController.java @@ -4,13 +4,11 @@ import com.srs.common.core.controller.BaseController; import com.srs.common.core.domain.AjaxResult; import com.srs.common.core.page.TableDataInfo; import com.srs.comprehensive.domain.Dto.SelectClass; -import com.srs.comprehensive.service.ICphTeacherService; -import com.srs.comprehensive.service.ISrsClassService; -import com.srs.comprehensive.service.ISrsMajorsService; -import com.srs.comprehensive.service.SyncDataService; +import com.srs.comprehensive.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -25,6 +23,8 @@ public class SyncDataController extends BaseController { ISrsMajorsService iSrsMajorsService; @Autowired ISrsClassService iSrsClassService; + @Autowired + ISrsStudentService iSrsStudentService; //中间表教职工信息 @RequestMapping("/getEmployEEInfoList") public TableDataInfo getEmployEEInfoList(String zgh){ @@ -73,9 +73,28 @@ public class SyncDataController extends BaseController { public AjaxResult getStudentInfoList(@RequestParam("pageNum")Integer pageNum, @RequestParam("pageSize") Integer pageSize, @RequestParam(value = "stuNo", required = false)String stuNo){ - int studentInfoNumber = syncDataService.getStudentInfoNumber(); - List list=syncDataService.getStudentInfoList(pageNum,pageSize,stuNo); + int studentInfoNumber = syncDataService.getStudentInfoNumber(null); + List list=syncDataService.getStudentInfoList(pageNum,pageSize,stuNo,null); return success(list).put("total", studentInfoNumber); } + //同步学生 + @RequestMapping("/synchronousStudent") + public AjaxResult synchronousStudent(String gradeCode){ + int pageNum=1; + int pageSize=500; + int studentInfoNumber = syncDataService.getStudentInfoNumber(gradeCode);//总数 + int sum=studentInfoNumber/ pageSize;//需要循环的次数 + int sumS=studentInfoNumber%pageSize>0? sum + 1: sum; + List stuNoList = new ArrayList<>(); + for (pageNum=1; pageNum <= sumS; pageNum++){ + List list=syncDataService.getStudentInfoList(pageNum,pageSize,null,gradeCode); + List maps = iSrsStudentService.synchronousMYSQL(list);//同步到mysql + stuNoList.addAll(maps); + list.clear(); + } + //iSrsStudentService.addStudentData(stuNoList);//添加到学生表 + //iSrsStudentService.Usertb();//同步到用户表 + return success(); + } } diff --git a/srs-comprehensive/src/main/java/com/srs/comprehensive/mapper/SyncDataMapper.java b/srs-comprehensive/src/main/java/com/srs/comprehensive/mapper/SyncDataMapper.java index 884424b..cf8f73d 100644 --- a/srs-comprehensive/src/main/java/com/srs/comprehensive/mapper/SyncDataMapper.java +++ b/srs-comprehensive/src/main/java/com/srs/comprehensive/mapper/SyncDataMapper.java @@ -12,9 +12,9 @@ public interface SyncDataMapper { public List getSpecialtyALLInfo();//所有专业 public List getClassInfoList(SelectClass selectClass);//所有班级 //统计学生数量 - int selectNumber(); + int selectNumber(String gradCode); /* * 学生 * */ - public List getStudentInfoList(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize,@Param("stuNo") String stuNo); + public List getStudentInfoList(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize,@Param("stuNo") String stuNo,@Param("gradeCode") String gradeCode); } diff --git a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/ISrsStudentService.java b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/ISrsStudentService.java index 04410a4..590e8fa 100644 --- a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/ISrsStudentService.java +++ b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/ISrsStudentService.java @@ -148,6 +148,8 @@ public interface ISrsStudentService extends IService int initializePwd(); List sqlserverSynchronousMYSQL(List mapList); + List synchronousMYSQL(List mapList); + //添加学生 public void addStudentData(List mapList); diff --git a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/SyncDataService.java b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/SyncDataService.java index e8fd639..904a19b 100644 --- a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/SyncDataService.java +++ b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/SyncDataService.java @@ -10,6 +10,6 @@ public interface SyncDataService { List getSpecialtyInfoList(String zydm);//专业 List getSpecialtyALLInfo();//所有专业 List getClassInfoList(SelectClass selectClass);//班级 - public int getStudentInfoNumber(); - public List getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo);//学生 + public int getStudentInfoNumber(String gradeCode); + public List getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo,String gradeCode);//学生 } diff --git a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/SrsStudentServiceImpl.java b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/SrsStudentServiceImpl.java index ffc2a0e..7422857 100644 --- a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/SrsStudentServiceImpl.java +++ b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/SrsStudentServiceImpl.java @@ -787,6 +787,122 @@ public class SrsStudentServiceImpl extends ServiceImpl synchronousMYSQL(List mapList){ + //List srsStudentList = srsStudentMapper.selectSrsStudentList(null);//学生列表 + List addMap = new ArrayList<>(mapList);//添加列表 + Long aLong = srsStudentMapper.selectCount(null);//总数 + int pageNum=1; + int pageSize=500; + long sum=aLong/ pageSize;//需要循环的次数 + long sumS=aLong%pageSize>0? sum + 1: sum; + QueryWrapper objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.orderByDesc("stu_no"); + for (pageNum=1; pageNum <= sumS; pageNum++) { + List srsStudentList = srsStudentMapper + .selectPage(new Page<>(pageNum, pageSize), objectQueryWrapper).getRecords(); + List updateMap = mapList.stream() + .filter(obj1 -> srsStudentList + .stream().anyMatch(obj2 -> { + Object xhObj = obj1.get("xh"); + if (xhObj != null) { + String xh = xhObj.toString(); + return obj2.getStuNo().equals(xh); + } + return false; + })) + .collect(Collectors.toList()); + //添加需要 +// List kshList2 = srsStudentList.stream() +// .map(SrsStudent::getStuNo) +// .collect(Collectors.toList()); +// +// List insertMap = mapList.stream() +// .filter(obj -> { +// Object xhObj = obj.get("xh"); +// return xhObj != null && !kshList2.contains(xhObj.toString()); +// }) +// .collect(Collectors.toList()); + Iterator iterator = addMap.iterator(); + while (iterator.hasNext()) { + Map map = iterator.next(); + for (Map m : updateMap) { + if (map.get("xh").toString().equals(m.get("xh").toString())) { + iterator.remove(); + break; + } + } + } + + //修改 + List updateSrsStudent = new ArrayList<>(); + for (Map map:updateMap){ + SrsStudent srsStudent = new SrsStudent(); + Object xhObj = map.get("xh"); + if (xhObj != null) { + srsStudent.setStuNo(xhObj.toString()); + } + + Object xmObj = map.get("xm"); + if (xmObj != null) { + srsStudent.setName(xmObj.toString()); + } + Object xbObj = map.get("xb"); + if (xbObj != null) { + srsStudent.setGender(xbObj.toString()); + } + /*Object sfzhObj = map.get("sfzh"); + if (sfzhObj != null && !Objects.equals(sfzhObj.toString(), "null")) { + if (sfzhObj.toString().length()>20){ + srsStudent.setIdCard(sfzhObj.toString().substring(0,20)); + }else { + srsStudent.setIdCard(sfzhObj.toString()); + } + }*/ + Object bjdmObj = map.get("bjdm"); + if (bjdmObj != null) { + Long l = srsStudentMapper.selectClassId(bjdmObj.toString()); + if (l != null) { + srsStudent.setClassId(l); + } + srsStudent.setClassCode(bjdmObj.toString()); + } +// Object jtdzObj = map.get("jtdz"); +// if (jtdzObj != null) { +// srsStudent.setAddress(jtdzObj.toString()); +// } + Object sfzxobj=map.get("sfzx"); + if (sfzxobj!=null) { + if(Objects.equals(sfzxobj.toString(), "1")) + { + srsStudent.setStatus("01");//在校状态 + }else + if(Objects.equals(sfzxobj.toString(), "2")) + { + srsStudent.setStatus("02");//在校状态 + }else + if(Objects.equals(sfzxobj.toString(), "3")) + { + srsStudent.setStatus("03");//在校状态 + }else { + srsStudent.setStatus(sfzxobj.toString());//在校状态 + } + } + srsStudent.setUpdateTime(DateUtils.getNowDate()); + updateSrsStudent.add(srsStudent); + } + if (updateSrsStudent.size()!=0) { + List> lists = ListSliceUtil.updateSlice(updateSrsStudent); + if (lists != null) { + for (List studentList : lists) { + srsStudentMapper.updateSrsStudentList(studentList); + } + } + } + } + return addMap; + } //添加学生 @Override diff --git a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/SyncDataServiceImpl.java b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/SyncDataServiceImpl.java index 5a12db8..13005d0 100644 --- a/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/SyncDataServiceImpl.java +++ b/srs-comprehensive/src/main/java/com/srs/comprehensive/service/impl/SyncDataServiceImpl.java @@ -33,11 +33,11 @@ public class SyncDataServiceImpl implements SyncDataService { } //统计学生数量 @Override - public int getStudentInfoNumber() { - return syncDataMapper.selectNumber(); + public int getStudentInfoNumber(String gradeCode) { + return syncDataMapper.selectNumber(gradeCode); } @Override - public List getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo) { + public List getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo,String gradeCode) { // 1. 参数校验:页码/条数不能为空,且≥1 if (pageNum == null || pageNum < 1) { pageNum = 1; @@ -46,6 +46,6 @@ public class SyncDataServiceImpl implements SyncDataService { pageSize = 10; // 默认每页10条 } int offset = (pageNum - 1) * pageSize; - return syncDataMapper.getStudentInfoList(offset,pageSize,stuNo); + return syncDataMapper.getStudentInfoList(offset,pageSize,stuNo,gradeCode); } } diff --git a/srs-comprehensive/src/main/resources/mapper/comprehensive/SyncDataMapper.xml b/srs-comprehensive/src/main/resources/mapper/comprehensive/SyncDataMapper.xml index 5fcdde8..a228b35 100644 --- a/srs-comprehensive/src/main/resources/mapper/comprehensive/SyncDataMapper.xml +++ b/srs-comprehensive/src/main/resources/mapper/comprehensive/SyncDataMapper.xml @@ -32,19 +32,26 @@ and BJSSNJ=#{gradeCode} - + select count(1) as number from from_gxsdxyxxzx_student a left join from_gxsdxyxxzx_class b ON a.SZBJBH=b.BJBH + + and b.BJSSNJ=#{gradeCode} +