矩阵题

This commit is contained in:
1378012178@qq.com 2025-02-05 11:23:56 +08:00
parent caa5c265a3
commit b47510d808
14 changed files with 310 additions and 27 deletions

View File

@ -9,6 +9,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx; import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx;
import org.jeecg.modules.kc.wjxWjxxTmlb.vo.ScaleItemRows;
import org.jeecg.modules.kc.wjxWjxxTmlb.vo.ScaleItems;
import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
@ -74,6 +76,12 @@ public class WjxDjxxTmxx implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private List<WjxWjxxTmxx> wjxWjxxTmxxList; private List<WjxWjxxTmxx> wjxWjxxTmxxList;
@TableField(exist = false)
private List<ScaleItems> items;
@TableField(exist = false)
private List<ScaleItemRows> itemRows;
@TableField(exist = false) @TableField(exist = false)
private String tktda; private String tktda;
@TableField(exist = false) @TableField(exist = false)
@ -82,4 +90,6 @@ public class WjxDjxxTmxx implements Serializable {
private String djtmid; private String djtmid;
@TableField(exist = false) @TableField(exist = false)
private String wjSubtype; private String wjSubtype;
@TableField(exist = false)
private String xxtitle;
} }

View File

@ -117,7 +117,7 @@
</select> </select>
<select id="findDjtmxx" parameterType="String" resultType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmxx"> <select id="findDjtmxx" parameterType="String" resultType="org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmxx">
select x.id,x.wj_index,x.wj_type,x.wj_title,x.wj_score,y.item_selected,y.item_score,y.answer_text,y.pic_path,x.wj_subtype select x.id,x.wj_index,x.wj_type,x.wj_title,x.wj_score,y.item_selected,y.item_score,y.answer_text,y.pic_path,x.wj_subtype,y.xxtitle
from ( from (
select c.id,c.wj_index,c.wj_type,c.wj_title,c.wj_score,c.wj_subtype select c.id,c.wj_index,c.wj_type,c.wj_title,c.wj_score,c.wj_subtype
from wjx_djxx a from wjx_djxx a
@ -128,7 +128,7 @@
and a.jid = #{jid} and a.jid = #{jid}
) x ) x
inner join ( inner join (
select wj_index,item_score,answer_text,GROUP_CONCAT(item_index) as item_selected,pic_path select wj_index,wj_title xxtitle,item_score,answer_text,GROUP_CONCAT(item_index) as item_selected,pic_path
from wjx_djxx_tmxx from wjx_djxx_tmxx
where vid = #{vid} where vid = #{vid}
and jid = #{jid} and jid = #{jid}

View File

@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.incrementer.DefaultIdentifierGenerator;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.system.vo.LoginUser;
@ -22,6 +23,8 @@ import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmlb;
import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx; import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx;
import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmlbMapper; import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmlbMapper;
import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmxxMapper; import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmxxMapper;
import org.jeecg.modules.kc.wjxWjxxTmlb.vo.ScaleItemRows;
import org.jeecg.modules.kc.wjxWjxxTmlb.vo.ScaleItems;
import org.jeecg.modules.kc.zyDbtx.entity.ZyDbtx; import org.jeecg.modules.kc.zyDbtx.entity.ZyDbtx;
import org.jeecg.modules.kc.zyDbtx.service.IZyDbtxService; import org.jeecg.modules.kc.zyDbtx.service.IZyDbtxService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -109,6 +112,15 @@ public class WjxDjxxServiceImpl extends ServiceImpl<WjxDjxxMapper, WjxDjxx> impl
if (wjType == 8) { if (wjType == 8) {
itemSelected = "-3"; itemSelected = "-3";
} }
if (wjType == 7) {
//量表题
itemSelected = wjxDjxxTmlbPage.getItemSelected();
if (itemSelected == null || itemSelected.equals("null") || itemSelected.equals("")) {
itemSelected = "-3";
}
}
submitDataSb.append(WjIndex); submitDataSb.append(WjIndex);
submitDataSb.append("$"); submitDataSb.append("$");
submitDataSb.append(itemSelected); submitDataSb.append(itemSelected);
@ -507,14 +519,60 @@ public class WjxDjxxServiceImpl extends ServiceImpl<WjxDjxxMapper, WjxDjxx> impl
if (djxx != null) { if (djxx != null) {
djxx.setAnswerSfm(convertSecondsToHMS(djxx.getAnswerSeconds())); djxx.setAnswerSfm(convertSecondsToHMS(djxx.getAnswerSeconds()));
List<WjxDjxxTmxx> list = baseMapper.findDjtmxx(djxx.getVid(), djxx.getJid()); List<WjxDjxxTmxx> list = baseMapper.findDjtmxx(djxx.getVid(), djxx.getJid());
for (WjxDjxxTmxx wjxDjxxTmxx : list) { List<WjxDjxxTmxx> resultList = Lists.newArrayList();
for (int i = 0; i < list.size(); i++) {
boolean searchBefore = false;
WjxDjxxTmxx wjxDjxxTmxx = list.get(i);
if(i == 0 || !(list.get(i).getId()).equals(list.get(i-1).getId())){
resultList.add(wjxDjxxTmxx);
}else{
searchBefore = true;
}
List<WjxWjxxTmxx> list2 = wjxWjxxTmxxMapper.selectByMainId(wjxDjxxTmxx.getId()); List<WjxWjxxTmxx> list2 = wjxWjxxTmxxMapper.selectByMainId(wjxDjxxTmxx.getId());
wjxDjxxTmxx.setWjxWjxxTmxxList(list2); //处理量表矩阵
List<ScaleItems> items = Lists.newArrayList();
List<ScaleItemRows> itemRows = Lists.newArrayList();
for (int j = 0; j < list2.size(); j++) {
WjxWjxxTmxx WjxWjxxTmxx = list2.get(j);
if ("items".equals(WjxWjxxTmxx.getScaleSign())) {
ScaleItems scaleItem = new ScaleItems();
scaleItem.setItemScore(WjxWjxxTmxx.getScaleItemsItemScore());
scaleItem.setItemTitle(WjxWjxxTmxx.getScaleItemsItemTitle());
items.add(scaleItem);
}
if ("item_rows".equals(WjxWjxxTmxx.getScaleSign())) {
ScaleItemRows scaleItemRow = new ScaleItemRows();
scaleItemRow.setQIndex(WjxWjxxTmxx.getScaleItemrowsQIndex());
scaleItemRow.setItemIndex(WjxWjxxTmxx.getScaleItemrowsItemIndex());
scaleItemRow.setItemTitle(WjxWjxxTmxx.getScaleItemrowsItemTitle());
if(searchBefore){
//将之前同id的都要处理下
WjxDjxxTmxx wjxDjxxTmxx1 = resultList.get(resultList.size() - 1);
wjxDjxxTmxx1.getItemRows().stream().forEach(r -> {
if(wjxDjxxTmxx.getXxtitle().endsWith(r.getItemTitle())){
r.setItemSelected(wjxDjxxTmxx.getAnswerText());
}
});
}
if(wjxDjxxTmxx.getXxtitle().endsWith(WjxWjxxTmxx.getScaleItemrowsItemTitle())){
scaleItemRow.setItemSelected(wjxDjxxTmxx.getAnswerText());
}
itemRows.add(scaleItemRow);
}
}
if ("7".equals(wjxDjxxTmxx.getWjType())) {
wjxDjxxTmxx.setItems(items);
wjxDjxxTmxx.setItemRows(itemRows);
wjxDjxxTmxx.setAnswerText(null);
wjxDjxxTmxx.setXxtitle(null);
} else {
wjxDjxxTmxx.setWjxWjxxTmxxList(list2);
}
//获取填空题答案 //获取填空题答案
WjxWjxxTmlb tmlb = wjxWjxxTmlbMapper.selectById(wjxDjxxTmxx.getId()); WjxWjxxTmlb tmlb = wjxWjxxTmlbMapper.selectById(wjxDjxxTmxx.getId());
wjxDjxxTmxx.setTktda(tmlb.getWjAnswer()); wjxDjxxTmxx.setTktda(tmlb.getWjAnswer());
} }
djxx.setWjxDjxxTmxxList(list); djxx.setWjxDjxxTmxxList(resultList);
} }
return djxx; return djxx;

View File

@ -266,7 +266,7 @@ public class WjxWjxxController extends JeecgController<WjxWjxx, IWjxWjxxService>
WjxWjxxTmlb wjxWjxxTmlb = new WjxWjxxTmlb(); WjxWjxxTmlb wjxWjxxTmlb = new WjxWjxxTmlb();
BeanUtils.copyProperties(wjxWjxxTmlbPage, wjxWjxxTmlb); BeanUtils.copyProperties(wjxWjxxTmlbPage, wjxWjxxTmlb);
wjxWjxxTmlb.setMainId(mainId); wjxWjxxTmlb.setMainId(mainId);
wjxWjxxTmlbService.saveMain(wjxWjxxTmlb, wjxWjxxTmlbPage.getWjxWjxxTmxxList()); wjxWjxxTmlbService.saveMain(wjxWjxxTmlb, wjxWjxxTmlbPage);
} }
} }

View File

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xkcoding.http.HttpUtil; import com.xkcoding.http.HttpUtil;
import org.apache.commons.compress.utils.Lists;
import org.apache.shiro.SecurityUtils; import org.apache.shiro.SecurityUtils;
import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.DateUtils; import org.jeecg.common.util.DateUtils;
@ -340,6 +341,37 @@ public class WjxWjxxServiceImpl extends ServiceImpl<WjxWjxxMapper, WjxWjxx> impl
} else if (wWjxWjxxTmlb.getWjType() == 8) { } else if (wWjxWjxxTmlb.getWjType() == 8) {
//文件题目 //文件题目
map.put("q_subtype", 8); map.put("q_subtype", 8);
}else if (wWjxWjxxTmlb.getWjType() == 7){
//量表题
List<WjxWjxxTmxx> tmxxList = wjxWjxxTmxxMapper.selectByMainId(wWjxWjxxTmlb.getId());
map.put("q_index", wWjxWjxxTmlb.getWjIndex());
map.put("q_type", 7);
map.put("q_title", wWjxWjxxTmlb.getWjTitle());
map.put("matrix_mode", 101);
map.put("style_mode", 0);
// 行标题
List<Map<String, Object>> itemrowList = Lists.newArrayList();
// 列内容
List<Map<String, Object>> itemList = Lists.newArrayList();
map.put("item_rows", itemrowList);
map.put("items", itemList);
for (int i = 0; i < tmxxList.size(); i++) {
WjxWjxxTmxx wjxWjxxTmxx = tmxxList.get(i);
if("items".equals(wjxWjxxTmxx.getScaleSign())){
Map<String, Object> itemMap = new HashMap<>();
itemMap.put("item_score", wjxWjxxTmxx.getScaleItemsItemScore());
itemMap.put("item_title", wjxWjxxTmxx.getScaleItemsItemTitle());
itemList.add(itemMap);
}
if("item_rows".equals(wjxWjxxTmxx.getScaleSign())){
Map<String, Object> itemrowMap = new HashMap<>();
itemrowMap.put("q_index", wjxWjxxTmxx.getScaleItemrowsQIndex());
itemrowMap.put("item_index",wjxWjxxTmxx.getScaleItemrowsItemIndex());
itemrowMap.put("item_title",wjxWjxxTmxx.getScaleItemrowsItemTitle());
itemrowList.add(itemrowMap);
}
}
} }
JSONObject json = new JSONObject(map); JSONObject json = new JSONObject(map);
questionsList.add(json); questionsList.add(json);
@ -355,6 +387,7 @@ public class WjxWjxxServiceImpl extends ServiceImpl<WjxWjxxMapper, WjxWjxx> impl
} }
map.put("publish", true); map.put("publish", true);
map.put("questions", questionsList.toString()); map.put("questions", questionsList.toString());
String result = wjxUtil.openapi(map, "1000101"); String result = wjxUtil.openapi(map, "1000101");
System.out.println(result); System.out.println(result);
if (!result.equals("")) { if (!result.equals("")) {

View File

@ -120,7 +120,7 @@ public class WjxWjxxTmlbController extends JeecgController<WjxWjxxTmlb, IWjxWjxx
return Result.OK(pageList); return Result.OK(pageList);
} }
/** /**
* 添加 * 添加
* @return * @return
@ -143,7 +143,7 @@ public class WjxWjxxTmlbController extends JeecgController<WjxWjxxTmlb, IWjxWjxx
for(WjxWjxxTmlbPage wjxWjxxTmlbPage:list){ for(WjxWjxxTmlbPage wjxWjxxTmlbPage:list){
WjxWjxxTmlb wjxWjxxTmlb = new WjxWjxxTmlb(); WjxWjxxTmlb wjxWjxxTmlb = new WjxWjxxTmlb();
BeanUtils.copyProperties(wjxWjxxTmlbPage, wjxWjxxTmlb); BeanUtils.copyProperties(wjxWjxxTmlbPage, wjxWjxxTmlb);
wjxWjxxTmlbService.saveMain(wjxWjxxTmlb, wjxWjxxTmlbPage.getWjxWjxxTmxxList()); wjxWjxxTmlbService.saveMain(wjxWjxxTmlb, wjxWjxxTmlbPage);
} }
} }
return Result.OK("添加成功!"); return Result.OK("添加成功!");
@ -169,12 +169,12 @@ public class WjxWjxxTmlbController extends JeecgController<WjxWjxxTmlb, IWjxWjxx
for(WjxWjxxTmlbPage wjxWjxxTmlbPage:list){ for(WjxWjxxTmlbPage wjxWjxxTmlbPage:list){
WjxWjxxTmlb wjxWjxxTmlb = new WjxWjxxTmlb(); WjxWjxxTmlb wjxWjxxTmlb = new WjxWjxxTmlb();
BeanUtils.copyProperties(wjxWjxxTmlbPage, wjxWjxxTmlb); BeanUtils.copyProperties(wjxWjxxTmlbPage, wjxWjxxTmlb);
wjxWjxxTmlbService.saveMain(wjxWjxxTmlb, wjxWjxxTmlbPage.getWjxWjxxTmxxList()); wjxWjxxTmlbService.saveMain(wjxWjxxTmlb, wjxWjxxTmlbPage);
} }
} }
return Result.OK("添加成功!"); return Result.OK("添加成功!");
} }
/** /**
* 编辑 * 编辑
* *
@ -194,7 +194,7 @@ public class WjxWjxxTmlbController extends JeecgController<WjxWjxxTmlb, IWjxWjxx
wjxWjxxTmlbService.updateMain(wjxWjxxTmlb, wjxWjxxTmlbPage.getWjxWjxxTmxxList()); wjxWjxxTmlbService.updateMain(wjxWjxxTmlb, wjxWjxxTmlbPage.getWjxWjxxTmxxList());
return Result.OK("编辑成功!"); return Result.OK("编辑成功!");
} }
/** /**
* 通过id删除 * 通过id删除
* *
@ -208,7 +208,7 @@ public class WjxWjxxTmlbController extends JeecgController<WjxWjxxTmlb, IWjxWjxx
wjxWjxxTmlbService.delMain(id); wjxWjxxTmlbService.delMain(id);
return Result.OK("删除成功!"); return Result.OK("删除成功!");
} }
/** /**
* 批量删除 * 批量删除
* *
@ -223,7 +223,7 @@ public class WjxWjxxTmlbController extends JeecgController<WjxWjxxTmlb, IWjxWjxx
this.wjxWjxxTmlbService.delBatchMain(Arrays.asList(ids.split(","))); this.wjxWjxxTmlbService.delBatchMain(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!"); return Result.OK("批量删除成功!");
} }
/** /**
* 通过id查询 * 通过id查询
* *
@ -241,7 +241,7 @@ public class WjxWjxxTmlbController extends JeecgController<WjxWjxxTmlb, IWjxWjxx
return Result.OK(wjxWjxxTmlb); return Result.OK(wjxWjxxTmlb);
} }
/** /**
* 通过id查询 * 通过id查询
* *
@ -348,7 +348,7 @@ public class WjxWjxxTmlbController extends JeecgController<WjxWjxxTmlb, IWjxWjxx
for (WjxWjxxTmlbPage page : list) { for (WjxWjxxTmlbPage page : list) {
WjxWjxxTmlb po = new WjxWjxxTmlb(); WjxWjxxTmlb po = new WjxWjxxTmlb();
BeanUtils.copyProperties(page, po); BeanUtils.copyProperties(page, po);
wjxWjxxTmlbService.saveMain(po, page.getWjxWjxxTmxxList()); wjxWjxxTmlbService.saveMain(po, page);
} }
return Result.OK("文件导入成功!数据行数:" + list.size()); return Result.OK("文件导入成功!数据行数:" + list.size());
} catch (Exception e) { } catch (Exception e) {

View File

@ -8,6 +8,9 @@ import java.util.List;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import lombok.Data; import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import org.jeecg.modules.kc.wjxWjxxTmlb.vo.ScaleItemRows;
import org.jeecg.modules.kc.wjxWjxxTmlb.vo.ScaleItems;
import org.jeecgframework.poi.excel.annotation.ExcelCollection;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict; import org.jeecg.common.aspect.annotation.Dict;
@ -104,6 +107,12 @@ public class WjxWjxxTmlb implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private List<WjxWjxxTmxx> wjxWjxxTmxxList; private List<WjxWjxxTmxx> wjxWjxxTmxxList;
@TableField(exist = false)
private List<ScaleItems> items;
@TableField(exist = false)
private List<ScaleItemRows> itemRows;
/**打开时间*/ /**打开时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")

View File

@ -73,4 +73,21 @@ public class WjxWjxxTmxx implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private String num; private String num;
@ApiModelProperty(value = "量表题标识对应接口questions参数的keyitems列内容item_rows行标题")
private java.lang.String scaleSign;
@ApiModelProperty(value = "量表题用对应item_rows的q_index")
private java.lang.Integer scaleItemrowsQIndex;
@ApiModelProperty(value = "量表题用对应item_rows的item_index")
private java.lang.Integer scaleItemrowsItemIndex;
@ApiModelProperty(value = "量表题用对应item_rows的item_title")
private java.lang.String scaleItemrowsItemTitle;
@ApiModelProperty(value = "量表题用对应items的item_score")
private java.lang.String scaleItemsItemScore;
@ApiModelProperty(value = "量表题用对应items的item_title")
private java.lang.String scaleItemsItemTitle;
} }

View File

@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx; import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx;
import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmlb; import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmlb;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.modules.kc.wjxWjxxTmlb.vo.WjxWjxxTmlbPage;
import java.io.Serializable; import java.io.Serializable;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@ -18,14 +20,16 @@ import java.util.List;
*/ */
public interface IWjxWjxxTmlbService extends IService<WjxWjxxTmlb> { public interface IWjxWjxxTmlbService extends IService<WjxWjxxTmlb> {
public void saveMain(WjxWjxxTmlb wjxWjxxTmlb, List<WjxWjxxTmxx> wjxWjxxTmxxList) ;
/** /**
* 添加一对多 * 添加一对多
* *
* @param wjxWjxxTmlb * @param wjxWjxxTmlb
* @param wjxWjxxTmxxList * @param wjxWjxxTmxxList
*/ */
public void saveMain(WjxWjxxTmlb wjxWjxxTmlb,List<WjxWjxxTmxx> wjxWjxxTmxxList) ; public void saveMain(WjxWjxxTmlb wjxWjxxTmlb, WjxWjxxTmlbPage wjxWjxxTmlbPage) ;
/** /**
* 修改一对多 * 修改一对多
* *
@ -33,14 +37,14 @@ public interface IWjxWjxxTmlbService extends IService<WjxWjxxTmlb> {
* @param wjxWjxxTmxxList * @param wjxWjxxTmxxList
*/ */
public void updateMain(WjxWjxxTmlb wjxWjxxTmlb,List<WjxWjxxTmxx> wjxWjxxTmxxList); public void updateMain(WjxWjxxTmlb wjxWjxxTmlb,List<WjxWjxxTmxx> wjxWjxxTmxxList);
/** /**
* 删除一对多 * 删除一对多
* *
* @param id * @param id
*/ */
public void delMain (String id); public void delMain (String id);
/** /**
* 批量删除一对多 * 批量删除一对多
* *

View File

@ -3,6 +3,7 @@ package org.jeecg.modules.kc.wjxWjxxTmlb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.commons.compress.utils.Lists;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmxx; import org.jeecg.modules.kc.wjxDjxx.entity.WjxDjxxTmxx;
import org.jeecg.modules.kc.wjxDjxx.mapper.WjxDjxxMapper; import org.jeecg.modules.kc.wjxDjxx.mapper.WjxDjxxMapper;
@ -13,6 +14,9 @@ import org.jeecg.modules.kc.wjxWjxxTmlb.entity.WjxWjxxTmxx;
import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmxxMapper; import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmxxMapper;
import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmlbMapper; import org.jeecg.modules.kc.wjxWjxxTmlb.mapper.WjxWjxxTmlbMapper;
import org.jeecg.modules.kc.wjxWjxxTmlb.service.IWjxWjxxTmlbService; import org.jeecg.modules.kc.wjxWjxxTmlb.service.IWjxWjxxTmlbService;
import org.jeecg.modules.kc.wjxWjxxTmlb.vo.ScaleItemRows;
import org.jeecg.modules.kc.wjxWjxxTmlb.vo.ScaleItems;
import org.jeecg.modules.kc.wjxWjxxTmlb.vo.WjxWjxxTmlbPage;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -42,7 +46,7 @@ public class WjxWjxxTmlbServiceImpl extends ServiceImpl<WjxWjxxTmlbMapper, WjxWj
private WjxDjxxMapper wjxDjxxMapper; private WjxDjxxMapper wjxDjxxMapper;
@Autowired @Autowired
private WjxWjxxMapper wjxWjxxMapper; private WjxWjxxMapper wjxWjxxMapper;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void saveMain(WjxWjxxTmlb wjxWjxxTmlb, List<WjxWjxxTmxx> wjxWjxxTmxxList) { public void saveMain(WjxWjxxTmlb wjxWjxxTmlb, List<WjxWjxxTmxx> wjxWjxxTmxxList) {
@ -70,14 +74,84 @@ public class WjxWjxxTmlbServiceImpl extends ServiceImpl<WjxWjxxTmlbMapper, WjxWj
} }
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void saveMain(WjxWjxxTmlb wjxWjxxTmlb, WjxWjxxTmlbPage wjxWjxxTmlbPage) {
List<WjxWjxxTmxx> wjxWjxxTmxxList = wjxWjxxTmlbPage.getWjxWjxxTmxxList();
Integer itemIndex = 0;
wjxWjxxTmlb.setWjLeixing("6");
wjxWjxxTmlbMapper.insert(wjxWjxxTmlb);
if(wjxWjxxTmxxList!=null && wjxWjxxTmxxList.size()>0) {
for(WjxWjxxTmxx entity:wjxWjxxTmxxList) {
if(entity.getItemIndex()!=null && entity.getItemIndex() > itemIndex)itemIndex = entity.getItemIndex();
entity.setId(null);
//外键设置
entity.setMainId(wjxWjxxTmlb.getId());
entity.setWjIndex(wjxWjxxTmlb.getWjIndex());
if(StringUtils.isNotBlank(wjxWjxxTmlb.getItemSelected())){
String itemSelected[] = wjxWjxxTmlb.getItemSelected().split(",");
String sfxz = wjxWjxxTmlb.getItemSelected();
for(String par:itemSelected){
if(StringUtils.equals(par, entity.getItemIndex().toString())){
sfxz = "true";
}
}
entity.setItemSelected(sfxz);
}
wjxWjxxTmxxMapper.insert(entity);
}
}
// 量表题 items 列内容
++itemIndex;
if (wjxWjxxTmlbPage.getItems() != null && !wjxWjxxTmlbPage.getItems().isEmpty()) {
List<ScaleItems> itemList = wjxWjxxTmlbPage.getItems();
for (int i = 0; i < itemList.size(); i++) {
ScaleItems item = itemList.get(i);
WjxWjxxTmxx entity = new WjxWjxxTmxx();
entity.setId(null);
entity.setMainId(wjxWjxxTmlb.getId());
entity.setWjIndex(wjxWjxxTmlb.getWjIndex());
entity.setWjIndex(itemIndex);
entity.setItemIndex(i);
entity.setItemTitle("-");
entity.setScaleSign("items");
entity.setScaleItemsItemScore(item.getItemScore());
entity.setScaleItemsItemTitle(item.getItemTitle());
wjxWjxxTmxxMapper.insert(entity);
}
}
// 量表题 itemRows 行内容
++itemIndex;
if (wjxWjxxTmlbPage.getItemRows() != null && !wjxWjxxTmlbPage.getItemRows().isEmpty()) {
List<ScaleItemRows> itemRowsList = wjxWjxxTmlbPage.getItemRows();
for (int i = 0; i < itemRowsList.size(); i++) {
ScaleItemRows item = itemRowsList.get(i);
WjxWjxxTmxx entity = new WjxWjxxTmxx();
entity.setId(null);
entity.setMainId(wjxWjxxTmlb.getId());
entity.setWjIndex(wjxWjxxTmlb.getWjIndex());
entity.setWjIndex(itemIndex);
entity.setItemIndex(i);
entity.setItemTitle("-");
entity.setScaleSign("item_rows");
entity.setScaleItemrowsQIndex(item.getQIndex());
entity.setScaleItemrowsItemIndex(item.getItemIndex());
entity.setScaleItemrowsItemTitle(item.getItemTitle());
wjxWjxxTmxxMapper.insert(entity);
}
}
}
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateMain(WjxWjxxTmlb wjxWjxxTmlb,List<WjxWjxxTmxx> wjxWjxxTmxxList) { public void updateMain(WjxWjxxTmlb wjxWjxxTmlb,List<WjxWjxxTmxx> wjxWjxxTmxxList) {
wjxWjxxTmlbMapper.updateById(wjxWjxxTmlb); wjxWjxxTmlbMapper.updateById(wjxWjxxTmlb);
//1.先删除子表数据 //1.先删除子表数据
wjxWjxxTmxxMapper.deleteByMainId(wjxWjxxTmlb.getId()); wjxWjxxTmxxMapper.deleteByMainId(wjxWjxxTmlb.getId());
//2.子表数据重新插入 //2.子表数据重新插入
if(wjxWjxxTmxxList!=null && wjxWjxxTmxxList.size()>0) { if(wjxWjxxTmxxList!=null && wjxWjxxTmxxList.size()>0) {
for(WjxWjxxTmxx entity:wjxWjxxTmxxList) { for(WjxWjxxTmxx entity:wjxWjxxTmxxList) {
@ -128,16 +202,38 @@ public class WjxWjxxTmlbServiceImpl extends ServiceImpl<WjxWjxxTmlbMapper, WjxWj
for(WjxWjxxTmlb WjxWjxxTmlb:list){ for(WjxWjxxTmlb WjxWjxxTmlb:list){
List<WjxWjxxTmxx> list2= wjxWjxxTmxxMapper.selectByMainId(WjxWjxxTmlb.getId()); List<WjxWjxxTmxx> list2= wjxWjxxTmxxMapper.selectByMainId(WjxWjxxTmlb.getId());
String itemSelected = ""; String itemSelected = "";
//处理量表矩阵
List<ScaleItems> items = Lists.newArrayList();
List<ScaleItemRows> itemRows = Lists.newArrayList();
for(WjxWjxxTmxx WjxWjxxTmxx:list2){ for(WjxWjxxTmxx WjxWjxxTmxx:list2){
if(StringUtils.equals(WjxWjxxTmxx.getItemSelected(),"true")){ if(StringUtils.equals(WjxWjxxTmxx.getItemSelected(),"true")){
itemSelected = itemSelected+WjxWjxxTmxx.getItemIndex()+","; itemSelected = itemSelected+WjxWjxxTmxx.getItemIndex()+",";
} }
if("items".equals(WjxWjxxTmxx.getScaleSign())){
ScaleItems scaleItem = new ScaleItems();
scaleItem.setItemScore(WjxWjxxTmxx.getScaleItemsItemScore());
scaleItem.setItemTitle(WjxWjxxTmxx.getScaleItemsItemTitle());
items.add(scaleItem);
}
if("item_rows".equals(WjxWjxxTmxx.getScaleSign())){
ScaleItemRows scaleItemRow = new ScaleItemRows();
scaleItemRow.setQIndex(WjxWjxxTmxx.getScaleItemrowsQIndex());
scaleItemRow.setItemIndex(WjxWjxxTmxx.getScaleItemrowsItemIndex());
scaleItemRow.setItemTitle(WjxWjxxTmxx.getScaleItemrowsItemTitle());
itemRows.add(scaleItemRow);
}
} }
if(StringUtils.isNotBlank(itemSelected)){ if(StringUtils.isNotBlank(itemSelected)){
itemSelected = itemSelected.substring(0, itemSelected.length()-1); itemSelected = itemSelected.substring(0, itemSelected.length()-1);
} }
WjxWjxxTmlb.setItemSelected(itemSelected); WjxWjxxTmlb.setItemSelected(itemSelected);
WjxWjxxTmlb.setWjxWjxxTmxxList(list2); if(WjxWjxxTmlb.getWjType() == 7){
WjxWjxxTmlb.setItems(items);
WjxWjxxTmlb.setItemRows(itemRows);
}else{
WjxWjxxTmlb.setWjxWjxxTmxxList(list2);
}
} }
return list; return list;
} }
@ -150,9 +246,37 @@ public class WjxWjxxTmlbServiceImpl extends ServiceImpl<WjxWjxxTmlbMapper, WjxWj
Date date = new Date(); Date date = new Date();
for(WjxWjxxTmlb WjxWjxxTmlb:list){ for(WjxWjxxTmlb WjxWjxxTmlb:list){
List<WjxWjxxTmxx> list2= wjxWjxxTmxxMapper.selectByMainId(WjxWjxxTmlb.getId()); List<WjxWjxxTmxx> list2= wjxWjxxTmxxMapper.selectByMainId(WjxWjxxTmlb.getId());
WjxWjxxTmlb.setWjxWjxxTmxxList(list2);
}
for(WjxWjxxTmlb WjxWjxxTmlb:list){
List<WjxWjxxTmxx> list2= wjxWjxxTmxxMapper.selectByMainId(WjxWjxxTmlb.getId());
//处理量表矩阵
List<ScaleItems> items = Lists.newArrayList();
List<ScaleItemRows> itemRows = Lists.newArrayList();
for(WjxWjxxTmxx WjxWjxxTmxx:list2){
if("items".equals(WjxWjxxTmxx.getScaleSign())){
ScaleItems scaleItem = new ScaleItems();
scaleItem.setItemScore(WjxWjxxTmxx.getScaleItemsItemScore());
scaleItem.setItemTitle(WjxWjxxTmxx.getScaleItemsItemTitle());
items.add(scaleItem);
}
if("item_rows".equals(WjxWjxxTmxx.getScaleSign())){
ScaleItemRows scaleItemRow = new ScaleItemRows();
scaleItemRow.setQIndex(WjxWjxxTmxx.getScaleItemrowsQIndex());
scaleItemRow.setItemIndex(WjxWjxxTmxx.getScaleItemrowsItemIndex());
scaleItemRow.setItemTitle(WjxWjxxTmxx.getScaleItemrowsItemTitle());
itemRows.add(scaleItemRow);
}
}
WjxWjxxTmlb.setWjAnswer(""); WjxWjxxTmlb.setWjAnswer("");
WjxWjxxTmlb.setOpenTime(date); WjxWjxxTmlb.setOpenTime(date);
if(WjxWjxxTmlb.getWjType() == 7){
WjxWjxxTmlb.setItems(items);
WjxWjxxTmlb.setItemRows(itemRows);
}else{
WjxWjxxTmlb.setWjxWjxxTmxxList(list2);
}
} }
return list; return list;
} }

View File

@ -0,0 +1,11 @@
package org.jeecg.modules.kc.wjxWjxxTmlb.vo;
import lombok.Data;
@Data
public class ScaleItemRows {
private String itemTitle;
private Integer qIndex;
private Integer itemIndex;
private String itemSelected;
}

View File

@ -0,0 +1,9 @@
package org.jeecg.modules.kc.wjxWjxxTmlb.vo;
import lombok.Data;
@Data
public class ScaleItems {
private String itemScore;
private String itemTitle;
}

View File

@ -96,4 +96,12 @@ public class WjxWjxxTmlbPage {
@ApiModelProperty(value = "选项信息") @ApiModelProperty(value = "选项信息")
private List<WjxWjxxTmxx> wjxWjxxTmxxList; private List<WjxWjxxTmxx> wjxWjxxTmxxList;
@ExcelCollection(name="量表题列内容")
@ApiModelProperty(value = "量表题列内容")
private List<ScaleItems> items;
@ExcelCollection(name="量表题行内容")
@ApiModelProperty(value = "量表题行内容")
private List<ScaleItemRows> itemRows;
} }

View File

@ -18,7 +18,7 @@
<developerConnection>https://qiaoqiaoyun.com</developerConnection> <developerConnection>https://qiaoqiaoyun.com</developerConnection>
<url>http://www.jeecg.com/vip</url> <url>http://www.jeecg.com/vip</url>
</scm> </scm>
<parent> <parent>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId> <artifactId>spring-boot-starter-parent</artifactId>
@ -488,7 +488,7 @@
<url>http://maven.jeecg.com:8090/nexus/content/repositories/snapshots/</url> <url>http://maven.jeecg.com:8090/nexus/content/repositories/snapshots/</url>
</snapshotRepository> </snapshotRepository>
</distributionManagement> </distributionManagement>
<!-- 环境 --> <!-- 环境 -->
<profiles> <profiles>
<!-- 开发 --> <!-- 开发 -->
@ -534,4 +534,4 @@
</modules> </modules>
</profile> </profile>
</profiles> </profiles>
</project> </project>