同步学生信息修改
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);//学生
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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>=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>
|
||||
|
||||
Reference in New Issue
Block a user