同步学生信息修改

This commit is contained in:
2026-01-06 17:41:42 +08:00
parent 29c99d13d3
commit 961f2bf887
7 changed files with 161 additions and 17 deletions

View File

@@ -12,9 +12,9 @@ public interface SyncDataMapper {
public List<Map> getSpecialtyALLInfo();//所有专业
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);
}

View File

@@ -148,6 +148,8 @@ public interface ISrsStudentService extends IService<SrsStudent>
int initializePwd();
List<Map> sqlserverSynchronousMYSQL(List<Map> mapList);
List<Map> synchronousMYSQL(List<Map> mapList);
//添加学生
public void addStudentData(List<Map> mapList);

View File

@@ -10,6 +10,6 @@ public interface SyncDataService {
List<Map> getSpecialtyInfoList(String zydm);//专业
List<Map> getSpecialtyALLInfo();//所有专业
List<Map> getClassInfoList(SelectClass selectClass);//班级
public int getStudentInfoNumber();
public List<Map> getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo);//学生
public int getStudentInfoNumber(String gradeCode);
public List<Map> getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo,String gradeCode);//学生
}

View File

@@ -787,6 +787,122 @@ public class SrsStudentServiceImpl extends ServiceImpl<SrsStudentMapper, SrsStud
}
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

View File

@@ -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<Map> getStudentInfoList(Integer pageNum,Integer pageSize,String stuNo) {
public List<Map> 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);
}
}

View File

@@ -32,19 +32,26 @@
<if test="gradeCode != null and gradeCode!= '' ">and BJSSNJ=#{gradeCode}</if>
</where>
</select>
<select id="selectNumber" resultType="java.lang.Integer">
select count(1) as number from from_gxsdxyxxzx_student
<select id="selectNumber" resultType="java.lang.Integer" parameterType="String">
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 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
WHEN TBA.XBDM = 1 THEN '男'
WHEN TBA.XBDM = 2 THEN '女'
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
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&gt;=2019 and TBA.XH is not null
<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}
</select>
</mapper>