同步学生信息修改
This commit is contained in:
@@ -4,13 +4,11 @@ import com.srs.common.core.controller.BaseController;
|
|||||||
import com.srs.common.core.domain.AjaxResult;
|
import com.srs.common.core.domain.AjaxResult;
|
||||||
import com.srs.common.core.page.TableDataInfo;
|
import com.srs.common.core.page.TableDataInfo;
|
||||||
import com.srs.comprehensive.domain.Dto.SelectClass;
|
import com.srs.comprehensive.domain.Dto.SelectClass;
|
||||||
import com.srs.comprehensive.service.ICphTeacherService;
|
import com.srs.comprehensive.service.*;
|
||||||
import com.srs.comprehensive.service.ISrsClassService;
|
|
||||||
import com.srs.comprehensive.service.ISrsMajorsService;
|
|
||||||
import com.srs.comprehensive.service.SyncDataService;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -25,6 +23,8 @@ public class SyncDataController extends BaseController {
|
|||||||
ISrsMajorsService iSrsMajorsService;
|
ISrsMajorsService iSrsMajorsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
ISrsClassService iSrsClassService;
|
ISrsClassService iSrsClassService;
|
||||||
|
@Autowired
|
||||||
|
ISrsStudentService iSrsStudentService;
|
||||||
//中间表教职工信息
|
//中间表教职工信息
|
||||||
@RequestMapping("/getEmployEEInfoList")
|
@RequestMapping("/getEmployEEInfoList")
|
||||||
public TableDataInfo getEmployEEInfoList(String zgh){
|
public TableDataInfo getEmployEEInfoList(String zgh){
|
||||||
@@ -73,9 +73,28 @@ public class SyncDataController extends BaseController {
|
|||||||
public AjaxResult getStudentInfoList(@RequestParam("pageNum")Integer pageNum,
|
public AjaxResult getStudentInfoList(@RequestParam("pageNum")Integer pageNum,
|
||||||
@RequestParam("pageSize") Integer pageSize,
|
@RequestParam("pageSize") Integer pageSize,
|
||||||
@RequestParam(value = "stuNo", required = false)String stuNo){
|
@RequestParam(value = "stuNo", required = false)String stuNo){
|
||||||
int studentInfoNumber = syncDataService.getStudentInfoNumber();
|
int studentInfoNumber = syncDataService.getStudentInfoNumber(null);
|
||||||
List<Map> list=syncDataService.getStudentInfoList(pageNum,pageSize,stuNo);
|
List<Map> list=syncDataService.getStudentInfoList(pageNum,pageSize,stuNo,null);
|
||||||
return success(list).put("total", studentInfoNumber);
|
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<Map> stuNoList = new ArrayList<>();
|
||||||
|
for (pageNum=1; pageNum <= sumS; pageNum++){
|
||||||
|
List<Map> list=syncDataService.getStudentInfoList(pageNum,pageSize,null,gradeCode);
|
||||||
|
List<Map> maps = iSrsStudentService.synchronousMYSQL(list);//同步到mysql
|
||||||
|
stuNoList.addAll(maps);
|
||||||
|
list.clear();
|
||||||
|
}
|
||||||
|
//iSrsStudentService.addStudentData(stuNoList);//添加到学生表
|
||||||
|
//iSrsStudentService.Usertb();//同步到用户表
|
||||||
|
return success();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ public interface SyncDataMapper {
|
|||||||
public List<Map> getSpecialtyALLInfo();//所有专业
|
public List<Map> getSpecialtyALLInfo();//所有专业
|
||||||
public List<Map> getClassInfoList(SelectClass selectClass);//所有班级
|
public List<Map> getClassInfoList(SelectClass selectClass);//所有班级
|
||||||
//统计学生数量
|
//统计学生数量
|
||||||
int selectNumber();
|
int selectNumber(String gradCode);
|
||||||
/*
|
/*
|
||||||
* 学生
|
* 学生
|
||||||
* */
|
* */
|
||||||
public List<Map> getStudentInfoList(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize,@Param("stuNo") String stuNo);
|
public List<Map> getStudentInfoList(@Param("offset") Integer offset, @Param("pageSize") Integer pageSize,@Param("stuNo") String stuNo,@Param("gradeCode") String gradeCode);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,6 +148,8 @@ public interface ISrsStudentService extends IService<SrsStudent>
|
|||||||
int initializePwd();
|
int initializePwd();
|
||||||
|
|
||||||
List<Map> sqlserverSynchronousMYSQL(List<Map> mapList);
|
List<Map> sqlserverSynchronousMYSQL(List<Map> mapList);
|
||||||
|
List<Map> synchronousMYSQL(List<Map> mapList);
|
||||||
|
|
||||||
|
|
||||||
//添加学生
|
//添加学生
|
||||||
public void addStudentData(List<Map> mapList);
|
public void addStudentData(List<Map> mapList);
|
||||||
|
|||||||
@@ -10,6 +10,6 @@ public interface SyncDataService {
|
|||||||
List<Map> getSpecialtyInfoList(String zydm);//专业
|
List<Map> getSpecialtyInfoList(String zydm);//专业
|
||||||
List<Map> getSpecialtyALLInfo();//所有专业
|
List<Map> getSpecialtyALLInfo();//所有专业
|
||||||
List<Map> getClassInfoList(SelectClass selectClass);//班级
|
List<Map> getClassInfoList(SelectClass selectClass);//班级
|
||||||
public int getStudentInfoNumber();
|
public int getStudentInfoNumber(String gradeCode);
|
||||||
public List<Map> getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo);//学生
|
public List<Map> getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo,String gradeCode);//学生
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -787,6 +787,122 @@ public class SrsStudentServiceImpl extends ServiceImpl<SrsStudentMapper, SrsStud
|
|||||||
}
|
}
|
||||||
return addMap;
|
return addMap;
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
//@Transactional(rollbackFor = Exception.class)
|
||||||
|
public List<Map> synchronousMYSQL(List<Map> mapList){
|
||||||
|
//List<SrsStudent> srsStudentList = srsStudentMapper.selectSrsStudentList(null);//学生列表
|
||||||
|
List<Map> 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<SrsStudent> objectQueryWrapper = new QueryWrapper<>();
|
||||||
|
objectQueryWrapper.orderByDesc("stu_no");
|
||||||
|
for (pageNum=1; pageNum <= sumS; pageNum++) {
|
||||||
|
List<SrsStudent> srsStudentList = srsStudentMapper
|
||||||
|
.selectPage(new Page<>(pageNum, pageSize), objectQueryWrapper).getRecords();
|
||||||
|
List<Map> 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<String> kshList2 = srsStudentList.stream()
|
||||||
|
// .map(SrsStudent::getStuNo)
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
//
|
||||||
|
// List<Map> insertMap = mapList.stream()
|
||||||
|
// .filter(obj -> {
|
||||||
|
// Object xhObj = obj.get("xh");
|
||||||
|
// return xhObj != null && !kshList2.contains(xhObj.toString());
|
||||||
|
// })
|
||||||
|
// .collect(Collectors.toList());
|
||||||
|
Iterator<Map> 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<SrsStudent> 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<List<SrsStudent>> lists = ListSliceUtil.updateSlice(updateSrsStudent);
|
||||||
|
if (lists != null) {
|
||||||
|
for (List<SrsStudent> studentList : lists) {
|
||||||
|
srsStudentMapper.updateSrsStudentList(studentList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return addMap;
|
||||||
|
}
|
||||||
|
|
||||||
//添加学生
|
//添加学生
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -33,11 +33,11 @@ public class SyncDataServiceImpl implements SyncDataService {
|
|||||||
}
|
}
|
||||||
//统计学生数量
|
//统计学生数量
|
||||||
@Override
|
@Override
|
||||||
public int getStudentInfoNumber() {
|
public int getStudentInfoNumber(String gradeCode) {
|
||||||
return syncDataMapper.selectNumber();
|
return syncDataMapper.selectNumber(gradeCode);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public List<Map> getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo) {
|
public List<Map> getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo,String gradeCode) {
|
||||||
// 1. 参数校验:页码/条数不能为空,且≥1
|
// 1. 参数校验:页码/条数不能为空,且≥1
|
||||||
if (pageNum == null || pageNum < 1) {
|
if (pageNum == null || pageNum < 1) {
|
||||||
pageNum = 1;
|
pageNum = 1;
|
||||||
@@ -46,6 +46,6 @@ public class SyncDataServiceImpl implements SyncDataService {
|
|||||||
pageSize = 10; // 默认每页10条
|
pageSize = 10; // 默认每页10条
|
||||||
}
|
}
|
||||||
int offset = (pageNum - 1) * pageSize;
|
int offset = (pageNum - 1) * pageSize;
|
||||||
return syncDataMapper.getStudentInfoList(offset,pageSize,stuNo);
|
return syncDataMapper.getStudentInfoList(offset,pageSize,stuNo,gradeCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,19 +32,26 @@
|
|||||||
<if test="gradeCode != null and gradeCode!= '' ">and BJSSNJ=#{gradeCode}</if>
|
<if test="gradeCode != null and gradeCode!= '' ">and BJSSNJ=#{gradeCode}</if>
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
<select id="selectNumber" resultType="java.lang.Integer">
|
<select id="selectNumber" resultType="java.lang.Integer" parameterType="String">
|
||||||
select count(1) as number from from_gxsdxyxxzx_student
|
select count(1) as number from from_gxsdxyxxzx_student a left join from_gxsdxyxxzx_class b ON a.SZBJBH=b.BJBH
|
||||||
|
<where>
|
||||||
|
<if test="gradeCode != null and gradeCode != ''">and b.BJSSNJ=#{gradeCode}</if>
|
||||||
|
</where>
|
||||||
</select>
|
</select>
|
||||||
<select id="getStudentInfoList" resultType="java.util.Map">
|
<select id="getStudentInfoList" resultType="java.util.Map">
|
||||||
SELECT ROW_NUMBER() OVER(ORDER BY TBA.XH) as xsid,TBA.XH as xh,TBA.XM as xm,CASE
|
SELECT ROW_NUMBER() OVER(ORDER BY TBA.XH) as xsid,TBA.XH as xh,TBA.XM as xm,CASE
|
||||||
WHEN TBA.XBDM = 1 THEN '男'
|
WHEN TBA.XBDM = 1 THEN '男'
|
||||||
WHEN TBA.XBDM = 2 THEN '女'
|
WHEN TBA.XBDM = 2 THEN '女'
|
||||||
ELSE '未知' -- 可选:添加默认值,避免NULL
|
ELSE '未知' -- 可选:添加默认值,避免NULL
|
||||||
END as xb,TBA.XSDQZTDM as sfzx,TBA.XSDQZTDMMC as status,TBA.MZDM as mz,TBB.BJMC as bjmc
|
END as xb,TBA.XSDQZTDM as sfzx,TBA.XSDQZTDMMC as status,TBA.MZDM as mz,TBB.BJMC as bjmc,
|
||||||
|
TBB.BJSSNJ,TBD.BMMC,TBC.JXZYMC
|
||||||
FROM `from_gxsdxyxxzx_student` TBA
|
FROM `from_gxsdxyxxzx_student` TBA
|
||||||
LEFT JOIN from_gxsdxyxxzx_class TBB ON TBA.SZBJBH=TBB.BJBH
|
LEFT JOIN from_gxsdxyxxzx_class TBB ON TBA.SZBJBH=TBB.BJBH
|
||||||
|
LEFT JOIN from_gxsdxyxxzx_zyxx TBC ON TBB.BJSSJXZYBH=TBC.JXZYBH
|
||||||
|
LEFT JOIN from_gxsdxyxxzx_xzbm TBD ON TBC.JXZYSSYXBBH=TBD.BMBH
|
||||||
where TBB.BJSSNJ>=2019 and TBA.XH is not null
|
where TBB.BJSSNJ>=2019 and TBA.XH is not null
|
||||||
<if test="stuNo != null and stuNo != ''">and TBA.XH=#{stuNo}</if>
|
<if test="stuNo != null and stuNo != ''">and TBA.XH=#{stuNo}</if>
|
||||||
|
<if test="gradeCode != null and gradeCode != ''">and TBB.BJSSNJ=#{gradeCode}</if>
|
||||||
LIMIT #{offset}, #{pageSize}
|
LIMIT #{offset}, #{pageSize}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
Reference in New Issue
Block a user