Commit bb09efff by wangjian

2024-7-12

parent 324f4eea
......@@ -13,6 +13,7 @@ import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysDeptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
......@@ -27,8 +28,10 @@ import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolGkAchievement;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolGkAchievementVo;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXteachingAchievements;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolGkAchievementService;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXteachingAchievementsService;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.SchoolTeacherBasichlnformationService;
......@@ -223,4 +226,29 @@ public class SchoolGkAchievementController extends BaseController
}
}
}
/**
* 下载模板
* */
@PostMapping("/importTemplate")
public void importTemplate(HttpServletResponse response) {
schoolGkAchievementService.importTemplate(response);
}
/**
* 导入
*/
@PostMapping("/importData")
@Transactional(rollbackFor = Exception.class)
public AjaxResult importData(MultipartFile file) throws Exception {
ExcelUtil<SchoolGkAchievement> util = new ExcelUtil<SchoolGkAchievement>(SchoolGkAchievement.class);
List<SchoolGkAchievement> list = util.importExcelNdkh(file.getInputStream());
//先校验
schoolGkAchievementService.checkImport(list);
//数据导入
String message = schoolGkAchievementService.importData(list);
return AjaxResult.success(message);
}
}
......@@ -91,4 +91,16 @@ public class SchoolEquipmentLedger extends OurBaseEntity
/** 批号 */
@Excel(name = "批号")
private String ph;
/** 编号 */
@Excel(name = "编号")
private String bh;
/** 部门 */
@Excel(name = "部门")
private String bmmc;
private String bmbm;
/** 责任人 */
@Excel(name = "责任人")
private String zrr;
}
package yangtz.cs.liu.campus.service.impl.schoolNewTeacherDzdn;
import java.io.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collector;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.mapper.SysDictDataMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolGkAchievement;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolGkAchievementVo;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolXteachingAchievements;
import yangtz.cs.liu.campus.mapper.schoolNewTeacherDzdn.SchoolGkAchievementMapper;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolGkAchievementService;
import yangtz.cs.liu.campus.service.schoolNewTeacherDzdn.ISchoolXteachingAchievementsService;
import javax.servlet.http.HttpServletResponse;
/**
* 高考成绩Service业务层处理
......@@ -22,6 +37,11 @@ public class SchoolGkAchievementServiceImpl extends ServiceImpl<SchoolGkAchievem
{
@Autowired
private SchoolGkAchievementMapper schoolGkAchievementMapper;
@Autowired
private SysDictDataMapper sysDictDataMapper;
@Autowired
private ISchoolXteachingAchievementsService schoolXteachingAchievementsService;
/**
* 查询高考成绩
......@@ -100,4 +120,161 @@ public class SchoolGkAchievementServiceImpl extends ServiceImpl<SchoolGkAchievem
{
return schoolGkAchievementMapper.deleteSchoolGkAchievementById(id);
}
/**
* 下载模板
* @param response
*/
@Override
public void importTemplate(HttpServletResponse response) {
// 以流的形式下载文件。
try {
//读取文件
InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("file/高考成绩导入模板.xlsx");
InputStream fis = new BufferedInputStream(resourceAsStream);
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
// 清空response
response.reset();
// 设置response的Header
response.setHeader("Content-Disposition", "attachment;filename="+java.net.URLEncoder.encode("高考成绩导入模板.xlsx", "utf-8"));
//response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.getBytes()));
response.addHeader("Content-Length", "" + buffer.length);
OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
toClient.write(buffer);
toClient.flush();
toClient.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 校验高考成绩数据
* @param list
*/
@Override
@Transactional
public void checkImport(List<SchoolGkAchievement> list) {
//检验是否为空
if (StringUtils.isNull(list) || list.size() == 0) {
throw new ServiceException("导入数据不能为空");
}
//查询学科字典键值
List<SysDictData> sub = sysDictDataMapper.selectDictDataByType("teaching_subjects");
List<SysDictData> sub2 = sysDictDataMapper.selectDictDataByType("sub_dzdn");
//查询届别字典键值
List<SysDictData> jbs = sysDictDataMapper.selectDictDataByType("rankda");
//查询授课班级字典键值
List<SysDictData> skbjs = sysDictDataMapper.selectDictDataByType("class_num");
//查询班级类型字典键值
List<SysDictData> type = sysDictDataMapper.selectDictDataByType("class_type");
//查询高考评优字典键值
List<SysDictData> gkpys = sysDictDataMapper.selectDictDataByType("gk_appraising");
//获取所有用户
List<Map<String, Object>> userList = schoolXteachingAchievementsService.getUserList(new SysUser());
// 准备记录日志数据
int failureNum = 0;
StringBuilder failureMsg = new StringBuilder();
for (SchoolGkAchievement entity : list) {
if (StringUtils.isNull(entity.getSub())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、学科为空,请您重新输入! ");
} else if (StringUtils.isEmpty(entity.getTeacherName())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、教师姓名为空,请您重新输入! ");
} else if (StringUtils.isEmpty(entity.getYear())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、届别为空,请您重新输入! ");
} else if (StringUtils.isEmpty(entity.getTeachingClassName())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、授课班级为空,请您重新输入! ");
} else if (StringUtils.isEmpty(entity.getClassType())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、班级类型为空,请您重新输入! ");
} else if (StringUtils.isEmpty(entity.getGkAppraising())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、高考评优为空,请您重新输入! ");
} else if (StringUtils.isEmpty(entity.getTopStudentsCulture())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、尖子生培养为空,请您重新输入! ");
} else if (StringUtils.isEmpty(entity.getIncrementSituation())) {
failureNum++;
failureMsg.append("<br/>" + failureNum + "、增量情况为空,请您重新输入! ");
} else {
//学科
SysDictData d1 = sub.stream().filter(e->e.getDictValue().equals(entity.getSub())).findFirst().orElse(new SysDictData());
String v_sub = d1.getDictValue();
if (StringUtils.isEmpty(v_sub)){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、学科输入错误,请您重新输入! ");
} else {
entity.setSub(v_sub);
}
//授课班级
SysDictData d2 = skbjs.stream().filter(e->e.getDictLabel().equals(entity.getTeachingClassName())).findFirst().orElse(new SysDictData());
String v_skbj = d2.getDictValue();
if (StringUtils.isEmpty(v_skbj)){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、授课班级输入错误,请您重新输入! ");
} else {
entity.setTeachingClassName(v_skbj);
}
//高考评优
SysDictData d3 = gkpys.stream().filter(e->e.getDictValue().equals(entity.getGkAppraising())).findFirst().orElse(new SysDictData());
String v_gkpy = d3.getDictValue();
if (StringUtils.isEmpty(v_gkpy)){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、高考评优输入错误,请您重新输入! ");
} else {
entity.setGkAppraising(v_gkpy);
}
//教师姓名
String teacherName = entity.getTeacherName();
Map d4 = userList.stream().filter(e-> teacherName.equals(e.get("userName"))).findFirst().orElse(new HashMap());
String uid = String.valueOf(d4.get("userId"));
if (StringUtils.isEmpty(uid) || "null".equals(uid)){
failureNum++;
failureMsg.append("<br/>" + failureNum + "、教师姓名输入错误,请您重新输入! ");
} else {
Long v_userId = Long.parseLong(uid);
entity.setUserId(v_userId);
}
entity.setAuditState("2");
}
}
if (failureNum > 0) {
failureMsg.insert(0, "很抱歉,导入失败!共" + failureNum + "条数据格式不正确,错误如下:");
throw new ServiceException(failureMsg.toString());
}
}
/**
* 导入教学成绩数据
* @param list
* @return
*/
@Override
@Transactional
public String importData(List<SchoolGkAchievement> list) {
StringBuilder successMsg = new StringBuilder();
//批量导入年度考核数据
boolean b = saveBatch(list);
if (!b){
throw new ServiceException("导入失败");
}
successMsg.insert(0, "恭喜您,数据已导入成功!");
return successMsg.toString();
}
}
......@@ -5,6 +5,7 @@ import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolAworkload;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolGkAchievement;
import yangtz.cs.liu.campus.domain.schoolNewTeacherDzdn.SchoolGkAchievementVo;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
......@@ -63,4 +64,23 @@ public interface ISchoolGkAchievementService extends IService<SchoolGkAchieveme
* @return 结果
*/
public int deleteSchoolGkAchievementById(Long id);
/**
* 下载模板
* @param response
*/
void importTemplate(HttpServletResponse response);
/**
* 校验导入数据
* @param list
*/
void checkImport(List<SchoolGkAchievement> list);
/**
* 导入数据
* @param list
* @return
*/
String importData(List<SchoolGkAchievement> list);
}
......@@ -96,4 +96,16 @@ public class SchoolEquipmentLedgerVo extends BaseEntity
/** 批号 */
@Excel(name = "批号")
private String ph;
/** 编号 */
@Excel(name = "编号")
private String bh;
/** 部门 */
@Excel(name = "部门")
private String bmmc;
private String bmbm;
/** 责任人 */
@Excel(name = "责任人")
private String zrr;
}
......@@ -29,11 +29,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateTime" column="update_time" />
<result property="delFalg" column="del_flag" />
<result property="ph" column="ph" />
<result property="bh" column="bh" />
<result property="bmmc" column="bmmc" />
<result property="bmbm" column="bmbm" />
<result property="zrr" column="zrr" />
</resultMap>
<select id="selectSchoolEquipmentLedgerList" parameterType="SchoolEquipmentLedgerVo" resultMap="schoolEquipmentLedgerResult">
select el.id,el.encode,el.equipment_name,el.model,el.specification,el.classification_code,el.unit,el.affiliation_type,
el.equipment_state,el.is_allow_lend,el.is_lend,el.date_of_production, el.ph,
el.equipment_state,el.is_allow_lend,el.is_lend,el.date_of_production, el.ph, el.bh, el.bmmc, el.bmbm, el.zrr,
el.price,el.life_of_utility,el.place,el.use_id,el.use_name,el.remark,el.create_by,el.create_time,el.update_by,el.update_time
from school_equipment_ledger el
left join school_product_category pc on el.classification_code = pc.classification_code
......@@ -48,7 +52,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="selectSchoolEquipmentLedgerListGr" parameterType="SchoolEquipmentLedgerVo" resultMap="schoolEquipmentLedgerResult">
select el.id,el.encode,el.equipment_name,el.model,el.specification,el.classification_code,el.unit, el.ph,
select el.id,el.encode,el.equipment_name,el.model,el.specification,el.classification_code,el.unit, el.ph, el.bh, el.bmmc, el.bmbm, el.zrr,
el.affiliation_type,el.equipment_state,el.is_allow_lend,el.is_lend,el.date_of_production,
el.price,el.life_of_utility,el.place,el.use_id,el.use_name,el.remark,el.create_by,el.create_time,el.update_by,el.update_time
from school_equipment_ledger el
......@@ -86,7 +90,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select>
<select id="getEquipmentledger" parameterType="String" resultType="Map">
select id as id, encode as encode, equipment_name as equipmentName, model as model, place as place, ph, unit, specification, remark
select id as id, encode as encode, equipment_name as equipmentName, model as model, place as place, ph, bh, bmmc, bmbm, zrr, unit, specification, remark
from school_equipment_ledger where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment