diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/controller/KcExportConfigTpkwcqkjzglxController.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/controller/KcExportConfigTpkwcqkjzglxController.java index e32ce7a4..d1c1bca0 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/controller/KcExportConfigTpkwcqkjzglxController.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/controller/KcExportConfigTpkwcqkjzglxController.java @@ -81,6 +81,21 @@ public class KcExportConfigTpkwcqkjzglxController extends JeecgController editAll(@RequestBody KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx) { + kcExportConfigTpkwcqkjzglxService.editAll(kcExportConfigTpkwcqkjzglx); + return Result.OK("编辑成功!"); + } + /** * 编辑 * @@ -95,7 +110,7 @@ public class KcExportConfigTpkwcqkjzglxController extends JeecgController> groupConfigMap = Maps.newLinkedHashMap(); + + private GroupConfig genConfig(String key, String name, String dictKey){ + GroupConfig config = new GroupConfig(); + config.setKey(key); + config.setName(name); + config.setDictKey(dictKey); + return config; + } + + private void putGroupConfigMap(String key, GroupConfig config){ + if(groupConfigMap.containsKey(key)){ + List list = groupConfigMap.get(key); + list.add(config); + }else{ + List list = Lists.newArrayList(); + list.add(config); + groupConfigMap.put(key,list); + } + } + + private void initGroupConfigMap(){ + groupConfigMap = Maps.newLinkedHashMap(); + GroupConfig config; + config = genConfig("oneList","学院(部)教务委员会委员","340");putGroupConfigMap(config.getKey(),config); + config = genConfig("twoList","行政负责人、教学副院(部)长及系(专业)负责人","220");putGroupConfigMap(config.getKey(),config); + config = genConfig("threeListSize","其他党政领导及辅导员","110");putGroupConfigMap(config.getKey(),config); + config = genConfig("threeListSize","其他党政领导及辅导员","210");putGroupConfigMap(config.getKey(),config); + config = genConfig("threeListSize","其他党政领导及辅导员","270");putGroupConfigMap(config.getKey(),config); + config = genConfig("threeListSize","其他党政领导及辅导员","280");putGroupConfigMap(config.getKey(),config); + config = genConfig("fourListSize","其他专任教师","1");putGroupConfigMap(config.getKey(),config); + } // /** // * // * 功能说明 : 将导出的文档片段按照list返回 @@ -86,16 +126,15 @@ public class Export extends BaseExport { public WordOperator export(KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx, String xqxnParam) throws Exception{ String templateName = "exp1\\tpkqk.docx"; - - Map>> mainMapList = Maps.newHashMap(); + initGroupConfigMap(); WordOperator wo = ExportWord.getWordOperator(templateName); //********************************@A.单个内容替换***************************************************/ //********************************取数据***********************************************************/ Map result = Maps.newHashMap(); //取配置表中的用户 - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper("a", kcExportConfigTpkwcqkjzglx,null); - queryWrapper.eq(StringUtils.isNotBlank(kcExportConfigTpkwcqkjzglx.getDwmc()),"b.dwmc",kcExportConfigTpkwcqkjzglx.getDwmc()); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(kcExportConfigTpkwcqkjzglx,null); +// queryWrapper.eq(StringUtils.isNotBlank(kcExportConfigTpkwcqkjzglx.getDwmc()),"b.dwmc",kcExportConfigTpkwcqkjzglx.getDwmc()); List KcExportConfigTpkwcqkjzglxList = kcExportConfigTpkwcqkjzglxService.list(queryWrapper); Map> ghMap = KcExportConfigTpkwcqkjzglxList.stream().collect(Collectors.groupingBy(KcExportConfigTpkwcqkjzglx::getGh)); Map> typeMap = KcExportConfigTpkwcqkjzglxList.stream().collect(Collectors.groupingBy(KcExportConfigTpkwcqkjzglx::getTklx)); @@ -127,97 +166,143 @@ public class Export extends BaseExport { // uqw.in("gh",typeMap.keySet()); // List xxhbuserList = xxhbuserService.list(uqw); - List oneList = typeMap.get("1"); - if(oneList == null || oneList.isEmpty()) oneList = Lists.newArrayList(); + Map> allListMap = Maps.newLinkedHashMap(); - List twoList = Lists.newArrayList(); - List twoList1 = typeMap.get("2"); - List twoList2 = typeMap.get("3"); - List twoList3 = typeMap.get("4"); + groupConfigMap.forEach((k,v) -> { + v.forEach(x -> { + if(typeMap.containsKey(x.getDictKey())){ +// allListMap.put(k,typeMap.get(x.getDictKey())); + if(allListMap.containsKey(k)){ + List list = allListMap.get(k); + list.addAll(typeMap.get(x.getDictKey())); + }else{ + List list = Lists.newArrayList(); + list.addAll(typeMap.get(x.getDictKey())); + allListMap.put(k,list); + } + }else{ + allListMap.put(k,Lists.newArrayList()); + } + }); + }); - if(twoList1 != null && !twoList1.isEmpty()) { - twoList.addAll(twoList1); - } - if(twoList2 != null && !twoList2.isEmpty()) { - twoList.addAll(twoList2); - } - if(twoList3 != null && !twoList3.isEmpty()) { - twoList.addAll(twoList3); - } - List threeList = Lists.newArrayList(); - List threeList1 = typeMap.get("5"); - List threeList2 = typeMap.get("6"); +// List oneList = typeMap.get("1"); +// if(oneList == null || oneList.isEmpty()) oneList = Lists.newArrayList(); - if(threeList1 != null && !threeList1.isEmpty()) { - threeList.addAll(threeList1); - } - if(threeList2 != null && !threeList2.isEmpty()) { - threeList.addAll(threeList2); - } +// List twoList = Lists.newArrayList(); +// List twoList1 = typeMap.get("2"); +// List twoList2 = typeMap.get("3"); +// List twoList3 = typeMap.get("4"); +// +// if(twoList1 != null && !twoList1.isEmpty()) { +// twoList.addAll(twoList1); +// } +// if(twoList2 != null && !twoList2.isEmpty()) { +// twoList.addAll(twoList2); +// } +// if(twoList3 != null && !twoList3.isEmpty()) { +// twoList.addAll(twoList3); +// } +// +// List threeList = Lists.newArrayList(); +// List threeList1 = typeMap.get("5"); +// List threeList2 = typeMap.get("6"); +// +// if(threeList1 != null && !threeList1.isEmpty()) { +// threeList.addAll(threeList1); +// } +// if(threeList2 != null && !threeList2.isEmpty()) { +// threeList.addAll(threeList2); +// } //********************************取数据END*********************************************************/ //********************************通用*************************************************************/ - //xym 学院名称 - result.put("xqxn",xqxnParam); + result.put("xym",kcExportConfigTpkwcqkjzglx.getDwmc());//学院名称 + result.put("xqxn",xqxnParam);//学期学年 //填进去数量 - result.put("oneListSize", StringUtils.defaultString(String.valueOf(oneList.size()),"0")); - result.put("twoListSize", StringUtils.defaultString(String.valueOf(twoList.size()),"0")); - result.put("threeListSize", StringUtils.defaultString(String.valueOf(threeList.size()),"0")); - //fourListSize + allListMap.forEach((k,v) -> { + result.put(k + "Size", StringUtils.defaultString(String.valueOf(v.size()),"0")); + }); +// result.put("oneListSize", StringUtils.defaultString(String.valueOf(oneList.size()),"0")); +// result.put("twoListSize", StringUtils.defaultString(String.valueOf(twoList.size()),"0")); +// result.put("threeListSize", StringUtils.defaultString(String.valueOf(threeList.size()),"0")); +// result.put("fourListSize", StringUtils.defaultString(String.valueOf(threeList.size()),"0")); //********************************表头END**********************************************************/ wo.replaceTextPlus(result); //********************************@A.单个内容替换END**************************************************/ - int index = 0; + final int[] index = {4}; List> mainList = Lists.newArrayList(); - oneList.forEach(x -> { - if(tktjMap.containsKey(x.getGh())) { - List tmpList = new ArrayList<>(); - mainList.add(tmpList); - KcTkcstj tkcstj = tktjMap.get(x.getGh()); - tmpList.add(null); - tmpList.add(StringUtils.defaultString(tkcstj.getJsxm(),x.getXm())); - tmpList.add(tkcstj.getTkxttj()); - } + + allListMap.forEach((k,v) -> { + v.forEach(x -> { + if(tktjMap.containsKey(x.getGh())) { + List tmpList = new ArrayList<>(); + mainList.add(tmpList); + KcTkcstj tkcstj = tktjMap.get(x.getGh()); +// tmpList.add(null); + int ytkcs = Integer.parseInt(StringUtils.defaultString(x.getYtkcs(),"0")); + if(ghMap.containsKey(x.getGh())){ + List list = ghMap.get(x.getGh()); + if(list != null && !list.isEmpty()){ + for(KcExportConfigTpkwcqkjzglx e : list){ + int c = Integer.parseInt(StringUtils.defaultString(e.getYtkcs(),"0")); + if(c > ytkcs) { + ytkcs = c; + } + } + } + } + tmpList.add(x.getXm()); + tmpList.add(formatDictTxt(x.getTklx(),"tpkwcqkjzglx")); + tmpList.add(String.valueOf(ytkcs));//取最大值 + + tmpList.add(tkcstj.getTkxttj()); + } + }); + WordOperator.fillNullCall(mainList,v,2,3); + //从固定位置开始添加(1为第二个表格,第二个1为固定位置) + wo.insert2Table(0, index[0], true, mainList); + index[0] += mainList.size() + 2; + mainList.clear(); }); - index = 4; - WordOperator.fillNullCall(mainList,oneList,2,3); - //从固定位置开始添加(1为第二个表格,第二个1为固定位置) - wo.insert2Table(0, index, true, mainList); - index += mainList.size() + 2; - mainList.clear(); - twoList.forEach(x -> { - if(tktjMap.containsKey(x.getGh())) { - List tmpList = new ArrayList<>(); - mainList.add(tmpList); - KcTkcstj tkcstj = tktjMap.get(x.getGh()); - tmpList.add(null); - tmpList.add(StringUtils.defaultString(tkcstj.getJsxm(),x.getXm())); - tmpList.add(tkcstj.getTkxttj()); - } - }); - //从固定位置开始添加(1为第二个表格,第二个1为固定位置) - WordOperator.fillNullCall(mainList,twoList,2,3); - wo.insert2Table(0, index, true, mainList); - index += mainList.size() + 2; - mainList.clear(); - threeList.forEach(x -> { - if(tktjMap.containsKey(x.getGh())) { - List tmpList = new ArrayList<>(); - mainList.add(tmpList); - KcTkcstj tkcstj = tktjMap.get(x.getGh()); - tmpList.add(null); - tmpList.add(StringUtils.defaultString(tkcstj.getJsxm(),x.getXm())); - tmpList.add(tkcstj.getTkxttj()); - } - }); - //从固定位置开始添加(1为第二个表格,第二个1为固定位置) - WordOperator.fillNullCall(mainList,threeList,2,3); - wo.insert2Table(0, index, true, mainList); + + + +// mainList.clear(); +// twoList.forEach(x -> { +// if(tktjMap.containsKey(x.getGh())) { +// List tmpList = new ArrayList<>(); +// mainList.add(tmpList); +// KcTkcstj tkcstj = tktjMap.get(x.getGh()); +// tmpList.add(null); +// tmpList.add(StringUtils.defaultString(tkcstj.getJsxm(),x.getXm())); +// tmpList.add(tkcstj.getTkxttj()); +// } +// }); +// //从固定位置开始添加(1为第二个表格,第二个1为固定位置) +// WordOperator.fillNullCall(mainList,twoList,2,3); +// wo.insert2Table(0, index[0], true, mainList); +// +// index[0] += mainList.size() + 2; +// mainList.clear(); +// threeList.forEach(x -> { +// if(tktjMap.containsKey(x.getGh())) { +// List tmpList = new ArrayList<>(); +// mainList.add(tmpList); +// KcTkcstj tkcstj = tktjMap.get(x.getGh()); +// tmpList.add(null); +// tmpList.add(StringUtils.defaultString(tkcstj.getJsxm(),x.getXm())); +// tmpList.add(tkcstj.getTkxttj()); +// } +// }); +// //从固定位置开始添加(1为第二个表格,第二个1为固定位置) +// WordOperator.fillNullCall(mainList,threeList,2,3); +// wo.insert2Table(0, index[0], true, mainList); return wo; } } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/IKcExportConfigTpkwcqkjzglxService.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/IKcExportConfigTpkwcqkjzglxService.java index 696b741b..885df4aa 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/IKcExportConfigTpkwcqkjzglxService.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/IKcExportConfigTpkwcqkjzglxService.java @@ -11,4 +11,5 @@ import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; */ public interface IKcExportConfigTpkwcqkjzglxService extends IService { + void editAll(KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx); } diff --git a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/impl/KcExportConfigTpkwcqkjzglxServiceImpl.java b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/impl/KcExportConfigTpkwcqkjzglxServiceImpl.java index bd4d8912..4b20b7bb 100644 --- a/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/impl/KcExportConfigTpkwcqkjzglxServiceImpl.java +++ b/jeecg-module-main/src/main/java/org/jeecg/modules/kc/config/service/impl/KcExportConfigTpkwcqkjzglxServiceImpl.java @@ -1,11 +1,20 @@ package org.jeecg.modules.kc.config.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; import org.jeecg.modules.kc.config.entity.KcExportConfigTpkwcqkjzglx; import org.jeecg.modules.kc.config.mapper.KcExportConfigTpkwcqkjzglxMapper; import org.jeecg.modules.kc.config.service.IKcExportConfigTpkwcqkjzglxService; +import org.jeecg.modules.kc.tksf.kctksfyq.entity.KcTksfyq; +import org.jeecg.modules.kc.tksf.kctksfyq.service.IKcTksfyqService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.Arrays; +import java.util.List; + /** * @Description: kc_export_config_tpkwcqkjzglx * @Author: jeecg-boot @@ -15,4 +24,40 @@ import org.springframework.stereotype.Service; @Service public class KcExportConfigTpkwcqkjzglxServiceImpl extends ServiceImpl implements IKcExportConfigTpkwcqkjzglxService { + @Autowired + private IKcTksfyqService kcTksfyqService; + + @Override + public void editAll(KcExportConfigTpkwcqkjzglx kcExportConfigTpkwcqkjzglx) { + //结构名称 + if(StringUtils.isNotBlank(kcExportConfigTpkwcqkjzglx.getTklx())){ + List zwmcs = Arrays.asList(kcExportConfigTpkwcqkjzglx.getTklx().split(",")); +// QueryWrapper qw = new QueryWrapper<>(); +// qw.in("tklx",zwmcs); +// remove(qw); + zwmcs.forEach(x -> { + kcExportConfigTpkwcqkjzglx.setTklx(x); + kcExportConfigTpkwcqkjzglx.setId(null); + UpdateWrapper uw = new UpdateWrapper(); + uw.set("ytkcs",kcExportConfigTpkwcqkjzglx.getYtkcs()); + uw.eq("tklx",x); + update(uw); + }); + } + //结构名称 + if(StringUtils.isNotBlank(kcExportConfigTpkwcqkjzglx.getTklx())){ + List zwmcs = Arrays.asList(kcExportConfigTpkwcqkjzglx.getTklx().split(",")); + QueryWrapper qw = new QueryWrapper<>(); + qw.in("zwmc",zwmcs); + kcTksfyqService.remove(qw); + zwmcs.forEach(x -> { + KcTksfyq kcTksfyq = new KcTksfyq(); + kcTksfyq.setZwmc(x); + kcTksfyq.setId(null); + kcTksfyqService.save(kcTksfyq); + }); + + } + + } } diff --git a/jeecg-module-main/src/main/resources/officetemplates/exp1/tpkqk.docx b/jeecg-module-main/src/main/resources/officetemplates/exp1/tpkqk.docx index f0bc92f7..9b3b34c5 100644 --- a/jeecg-module-main/src/main/resources/officetemplates/exp1/tpkqk.docx +++ b/jeecg-module-main/src/main/resources/officetemplates/exp1/tpkqk.docx @@ -1,37 +1,41 @@ - {xqxn}学期听评课制度落实情况 + {xym}学院(部){xqxn}学期听评课制度落实情况 - 听课制度落实清空 学院(部)党政领导、学院(部)教务委员会委员、专业负责人、基层教学组织负责人、辅导员、专任教师等人员的听评课情况,建议学院(部)党政领导关注思政课的课堂教学效果。具体要求详见《本科教育教学质量管理实施办法》(附件4)、《关于本科教学听课制度的规定》(附件5)。 - {xqxn}学期听课情况: - 学院(部)教务委员会委员人数:{oneListSize}人 - 姓名 职务 - 听课次数 - + 应评课次数 + 实际评课次数 z z - Z - + z + z 行政负责人、教学副院(部)长及系(专业)负责人等人数:{twoListSize}人 - 姓名 职务 - 听课次数 - + 应评课次数 + 实际评课次数 z z z - + z 其他党政领导及辅导员人数:{threeListSize}人 - 姓名 职务 - 听课次数 - + 应评课次数 + 实际评课次数 z z z + z +其他专任教师:{fourListSize}人 + 姓名 + 职称 + 应评课次数 + 实际评课次数 +z + z + z + z