部门管理模块接口 拓展表通用方法抽取
This commit is contained in:
parent
cd6121f0b0
commit
cb1b37e05d
|
|
@ -46,10 +46,7 @@ public class DepartmentBO {
|
|||
.build()
|
||||
).collect(Collectors.toList());
|
||||
Map<Long, List<DepartmentListDTO>> collects = dtoList.stream().filter(item -> null != item.getParentDept() && 0 != item.getParentDept()).collect(Collectors.groupingBy(DepartmentListDTO::getParentDept));
|
||||
System.out.println(collects);
|
||||
return dtoList.stream().map(e -> {
|
||||
System.out.println(e.getId());
|
||||
System.out.println(collects.get(e.getId()));
|
||||
e.setChildren(collects.get(e.getId()));
|
||||
return e;
|
||||
}).filter(item -> null == item.getParentDept() || 0 == item.getParentDept()).collect(Collectors.toList());
|
||||
|
|
|
|||
|
|
@ -1,8 +1,24 @@
|
|||
package com.engine.organization.entity.extend.bo;
|
||||
|
||||
import com.api.browser.bean.BrowserBean;
|
||||
import com.api.browser.bean.BrowserValueInfo;
|
||||
import com.api.browser.bean.SearchConditionItem;
|
||||
import com.api.browser.service.BrowserValueInfoService;
|
||||
import com.api.browser.util.BrowserInitUtil;
|
||||
import com.api.browser.util.ConditionFactory;
|
||||
import com.api.browser.util.ConditionType;
|
||||
import com.api.hrm.bean.FieldItem;
|
||||
import com.api.hrm.util.FieldType;
|
||||
import com.api.hrm.util.ServiceUtil;
|
||||
import com.engine.kq.cmd.shiftmanagement.toolkit.ShiftManagementToolKit;
|
||||
import com.engine.organization.entity.extend.po.ExtendInfoPO;
|
||||
import com.engine.organization.util.OrganizationFormItemUtil;
|
||||
import com.engine.sensitive.biz.SensitiveWordTypeComInfo;
|
||||
import weaver.file.ImageFileManager;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.definedfield.HrmFieldManager;
|
||||
import weaver.systeminfo.SystemEnv;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -17,8 +33,14 @@ import java.util.Map;
|
|||
*/
|
||||
public class ExtendInfoBO {
|
||||
|
||||
public static String DATE_SELECT = "select";
|
||||
public static String DATE_FROM = "from";
|
||||
public static String DATE_TO = "to";
|
||||
public static String DATE_Time_FROM = "_start";
|
||||
public static String DATE_Time_TO = "_end";
|
||||
|
||||
// 封装对象为table组件
|
||||
public static List<Map<String, Object>> convertInfoListToTable(List<ExtendInfoPO> infoPOList, int viewAttr, boolean showLabel) {
|
||||
public static List<Map<String, Object>> convertInfoListToTable(User user, List<ExtendInfoPO> infoPOList, int viewAttr, boolean showLabel) {
|
||||
List<Map<String, Object>> lsCol = new ArrayList<Map<String, Object>>();
|
||||
Map<String, Object> col = null;
|
||||
|
||||
|
|
@ -31,7 +53,7 @@ public class ExtendInfoBO {
|
|||
|
||||
col.put("key", tmpkey);
|
||||
col.put("dataIndex", tmpkey);
|
||||
col.put("com", getFieldDetialInfo(extendInfoPO, viewAttr, showLabel, width));
|
||||
col.put("com", getFieldDetialInfo(user, extendInfoPO, viewAttr, showLabel, width));
|
||||
|
||||
col.put("width", width + "%");
|
||||
|
||||
|
|
@ -45,13 +67,14 @@ public class ExtendInfoBO {
|
|||
/**
|
||||
* 明细表字段
|
||||
*
|
||||
* @param user
|
||||
* @param extendInfoPO
|
||||
* @param viewAttr
|
||||
* @return
|
||||
*/
|
||||
private static List<FieldItem> getFieldDetialInfo(ExtendInfoPO extendInfoPO, int viewAttr, boolean showLabel, int width) {
|
||||
private static List<FieldItem> getFieldDetialInfo(User user, ExtendInfoPO extendInfoPO, int viewAttr, boolean showLabel, int width) {
|
||||
List<FieldItem> ls = new ArrayList<FieldItem>();
|
||||
FieldItem fieldItem = createField(extendInfoPO, viewAttr, showLabel, width);
|
||||
FieldItem fieldItem = createField(user, extendInfoPO, viewAttr, showLabel, width);
|
||||
ls.add(fieldItem);
|
||||
return ls;
|
||||
}
|
||||
|
|
@ -59,13 +82,14 @@ public class ExtendInfoBO {
|
|||
/**
|
||||
* 创建列表字段信息
|
||||
*
|
||||
* @param user
|
||||
* @param extendInfoPO
|
||||
* @param viewAttr
|
||||
* @param showLabel
|
||||
* @param width
|
||||
* @return
|
||||
*/
|
||||
private static FieldItem createField(ExtendInfoPO extendInfoPO, int viewAttr, boolean showLabel, int width) {
|
||||
private static FieldItem createField(User user, ExtendInfoPO extendInfoPO, int viewAttr, boolean showLabel, int width) {
|
||||
FieldItem fieldItem = new FieldItem();
|
||||
if (showLabel) {
|
||||
fieldItem.setLabel(extendInfoPO.getFieldNameDesc());
|
||||
|
|
@ -88,6 +112,12 @@ public class ExtendInfoBO {
|
|||
}
|
||||
}
|
||||
|
||||
// 浏览按钮特殊处理
|
||||
if (FieldType.BROWSER.equals(fieldItem.getType())) {
|
||||
BrowserBean browserConditionParam = OrganizationFormItemUtil.browserItem(user, 2, 16, fieldItem.getViewAttr(), false, extendInfoPO.getFieldNameDesc(), extendInfoPO.getBrowserType(), extendInfoPO.getFieldName(), "").getBrowserConditionParam();
|
||||
fieldItem.setBrowserConditionParam(browserConditionParam);
|
||||
}
|
||||
|
||||
fieldItem.setWidth(width + "%");
|
||||
return fieldItem;
|
||||
}
|
||||
|
|
@ -98,7 +128,7 @@ public class ExtendInfoBO {
|
|||
* @param fieldhtmltype
|
||||
* @return
|
||||
*/
|
||||
public static FieldType getFieldhtmltype(String fieldhtmltype) {
|
||||
private static FieldType getFieldhtmltype(String fieldhtmltype) {
|
||||
FieldType fieldtype = null;
|
||||
if (fieldhtmltype.equals("1")) {
|
||||
fieldtype = FieldType.INPUT;
|
||||
|
|
@ -117,4 +147,272 @@ public class ExtendInfoBO {
|
|||
}
|
||||
return fieldtype;
|
||||
}
|
||||
|
||||
|
||||
public static SearchConditionItem getSearchConditionItem(User user, int viewAttr, ExtendInfoPO extendInfoPO, Object fieldvalue) {
|
||||
SearchConditionItem searchConditionItem = null;
|
||||
try {
|
||||
if (user == null) {
|
||||
user = new User();
|
||||
user.setLanguage(7);
|
||||
}
|
||||
ConditionFactory conditionFactory = new ConditionFactory(user);
|
||||
HrmFieldManager hrmFieldManager = new HrmFieldManager();
|
||||
String fieldid = Util.null2String(extendInfoPO.getId());//字段id
|
||||
String fieldname = Util.null2String(extendInfoPO.getFieldName());//字段名
|
||||
String fieldlabel = Util.null2String(extendInfoPO.getFieldNameDesc());//字段显示名
|
||||
String fieldhtmltype = Util.null2String(extendInfoPO.getControlType());//字段类型
|
||||
String detailtype = Util.null2String(extendInfoPO.getBrowserType());//字段二级类型(浏览框--单人力)
|
||||
String dmlurl = Util.null2String("");
|
||||
boolean isQuickSearch = true;
|
||||
boolean isScope = false;
|
||||
|
||||
if (fieldhtmltype.equals("1")) {//单行文本框
|
||||
if (isScope) {//范围
|
||||
if (Util.null2String(fieldvalue).length() == 0) {
|
||||
fieldvalue = new HashMap<String, Object>();
|
||||
}
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.SCOPE, fieldlabel, new String[]{fieldname, fieldname + "to"});
|
||||
} else if (detailtype.equals("2")) {//数字
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.INPUTNUMBER, fieldlabel, fieldname, isQuickSearch);
|
||||
} else {
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.INPUT, fieldlabel, fieldname, isQuickSearch);
|
||||
}
|
||||
} else if (fieldhtmltype.equals("2")) {//多行文本框
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.TEXTAREA, fieldlabel, fieldname);
|
||||
} else if (fieldhtmltype.equals("3")) {//浏览按钮
|
||||
if (detailtype.equals("2")) {
|
||||
if (!extendInfoPO.getTableName().toLowerCase().contains("_dt")) {
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.DATEPICKER, fieldlabel, fieldname);
|
||||
} else {
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.DATE, fieldlabel, fieldname, detailtype);
|
||||
searchConditionItem.setDomkey(new String[]{fieldname + DATE_SELECT, fieldname + DATE_FROM, fieldname + DATE_TO});
|
||||
searchConditionItem.setOptions(ServiceUtil.getDateSelectFromTo(user.getLanguage()));
|
||||
}
|
||||
} else if (detailtype.equals("19")) {
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.TIMEPICKER, fieldlabel, fieldname, detailtype);
|
||||
} else if (detailtype.equals("402")) { // 年
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.DATEPICKER, fieldlabel, fieldname, detailtype);
|
||||
searchConditionItem.setFormat("yyyy");
|
||||
searchConditionItem.setMode("year");
|
||||
searchConditionItem.setPlaceholder(SystemEnv.getHtmlLabelNames("526306", user.getLanguage()));
|
||||
searchConditionItem.setShowTime(false);
|
||||
} else if (detailtype.equals("403")) {
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.DATEPICKER, fieldlabel, fieldname, detailtype);
|
||||
searchConditionItem.setFormat("yyyy-MM");
|
||||
searchConditionItem.setMode("month");
|
||||
searchConditionItem.setPlaceholder(SystemEnv.getHtmlLabelNames("126137", user.getLanguage()));
|
||||
searchConditionItem.setShowTime(false);
|
||||
} else if (detailtype.equals("RANGEPICKER")) {//日期区间
|
||||
String[] domkey = new String[]{DATE_FROM + fieldname, DATE_TO + fieldname};
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.RANGEPICKER, fieldlabel, domkey);
|
||||
searchConditionItem.setValue(fieldvalue);
|
||||
} else if (detailtype.equals("TIMERANGEPICKER")) {//时间区间
|
||||
String[] domkey = new String[]{fieldname + DATE_Time_FROM, fieldname + DATE_Time_TO};
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.TIMERANGEPICKER, fieldlabel, domkey);
|
||||
searchConditionItem.setValue(fieldvalue);
|
||||
} else {
|
||||
//if (detailtype.equals("161") || detailtype.equals("162") || detailtype.equals("256") || detailtype.equals("257")) {
|
||||
// BrowserBean browserbean = new BrowserBean(detailtype + "");
|
||||
// BrowserInitUtil browserInitUtil = new BrowserInitUtil();
|
||||
// String fielddbtype = dmlurl;
|
||||
// if (!dmlurl.startsWith("browser.")) {
|
||||
// fielddbtype = "browser." + dmlurl;
|
||||
// }
|
||||
// if (detailtype.equals("161") || detailtype.equals("162")) {
|
||||
// browserInitUtil.initCustomizeBrow(browserbean, fielddbtype, Util.getIntValue(detailtype), user.getUID());
|
||||
// } else {
|
||||
// browserbean.getDataParams().put("cube_treeid", dmlurl);
|
||||
// browserbean.getDataParams().put("currenttime", System.currentTimeMillis());
|
||||
// browserInitUtil.initBrowser(browserbean, user.getLanguage());
|
||||
// }
|
||||
// searchConditionItem = new SearchConditionItem(ConditionType.BROWSER, SystemEnv.getHtmlLabelNames(fieldlabel, user.getLanguage()), new String[]{fieldname}, browserbean);
|
||||
//} else {
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.BROWSER, fieldlabel, fieldname, detailtype);
|
||||
//}
|
||||
// searchConditionItem.getBrowserConditionParam().setHideVirtualOrg(hrmFieldBean.getHideVirtualOrg());
|
||||
List<Map<String, Object>> replaceDatas = new ArrayList<Map<String, Object>>();
|
||||
String tmpFieldValue = Util.null2String(fieldvalue);
|
||||
if (detailtype.equals("mkqshift")) {
|
||||
ShiftManagementToolKit shiftManagementToolKit = new ShiftManagementToolKit();
|
||||
String[] fieldvalues = Util.splitString(tmpFieldValue, ",");
|
||||
for (int i = 0; fieldvalues != null && i < fieldvalues.length; i++) {
|
||||
String fieldshowname = Util.null2String(shiftManagementToolKit.getShiftOnOffWorkSections(fieldvalues[i], user.getLanguage()));
|
||||
if (fieldshowname.length() == 0) continue;
|
||||
Map<String, Object> replaceData = new HashMap<String, Object>();
|
||||
replaceData.put("id", fieldvalues[i]);
|
||||
replaceData.put("name", fieldshowname);
|
||||
replaceDatas.add(replaceData);
|
||||
}
|
||||
} else if (detailtype.equals("sensitivewordstype")) {
|
||||
SensitiveWordTypeComInfo sensitiveWordTypeComInfo = new SensitiveWordTypeComInfo();
|
||||
String[] fieldvalues = Util.splitString(tmpFieldValue, ",");
|
||||
for (int i = 0; fieldvalues != null && i < fieldvalues.length; i++) {
|
||||
String fieldshowname = Util.null2String(sensitiveWordTypeComInfo.getName(fieldvalues[i]));
|
||||
if (fieldshowname.length() == 0) continue;
|
||||
Map<String, Object> replaceData = new HashMap<String, Object>();
|
||||
replaceData.put("id", fieldvalues[i]);
|
||||
replaceData.put("name", fieldshowname);
|
||||
replaceDatas.add(replaceData);
|
||||
}
|
||||
} else if (detailtype.equals("doccategory")) {
|
||||
List<BrowserValueInfo> fieldvalues = new BrowserValueInfoService().getBrowserValueInfo(detailtype, Util.null2String(fieldvalue));
|
||||
for (int i = 0; fieldvalues != null && i < fieldvalues.size(); i++) {
|
||||
BrowserValueInfo valueInfo = fieldvalues.get(i);
|
||||
String fieldshowname = valueInfo.getName();
|
||||
if (fieldshowname.length() == 0) continue;
|
||||
Map<String, Object> replaceData = new HashMap<String, Object>();
|
||||
replaceData.put("id", valueInfo.getId());
|
||||
replaceData.put("name", fieldshowname);
|
||||
replaceDatas.add(replaceData);
|
||||
}
|
||||
} else {
|
||||
if (tmpFieldValue.length() > 0) {
|
||||
String fieldshowname = hrmFieldManager.getFieldvalue(user, dmlurl, Util.getIntValue(fieldid), Util.getIntValue(fieldhtmltype), Util.getIntValue(detailtype), tmpFieldValue, 0);
|
||||
String[] fieldvalues = Util.splitString(tmpFieldValue, ",");
|
||||
String[] fieldshownames = Util.splitString(fieldshowname, ",");
|
||||
if (detailtype.equals("257")) {
|
||||
if (fieldshowname.endsWith(" ")) {
|
||||
fieldshowname = fieldshowname.substring(0, fieldshowname.length() - 5);
|
||||
}
|
||||
fieldshownames = Util.splitString(fieldshowname, " ");
|
||||
}
|
||||
for (int i = 0; fieldvalues != null && i < fieldvalues.length; i++) {
|
||||
if (fieldvalues.length != fieldshownames.length) {
|
||||
break;
|
||||
}
|
||||
if (Util.null2String(fieldshownames[i]).length() == 0) continue;
|
||||
Map<String, Object> replaceData = new HashMap<String, Object>();
|
||||
replaceData.put("id", fieldvalues[i]);
|
||||
replaceData.put("name", fieldshownames[i]);
|
||||
replaceDatas.add(replaceData);
|
||||
}
|
||||
}
|
||||
}
|
||||
fieldvalue = replaceDatas;
|
||||
}
|
||||
} else if (fieldhtmltype.equals("4")) {//Check框
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.CHECKBOX, fieldlabel, fieldname);
|
||||
if (detailtype.equals("2")) {
|
||||
searchConditionItem.setConditionType(ConditionType.SWITCH);
|
||||
}
|
||||
|
||||
} else if (fieldhtmltype.equals("5")) { //选择框
|
||||
// List<SearchConditionOption> statusOptions = hrmFieldBean.getSelectOption();
|
||||
// if (statusOptions == null) statusOptions = new ArrayList<SearchConditionOption>();
|
||||
// try {
|
||||
// if (fieldid.length() > 0) {
|
||||
// rs = new RecordSet();
|
||||
// char flag = Util.getSeparator();
|
||||
// if (hrmFieldBean.getIsFormField()) {
|
||||
// if (Util.null2String(hrmFieldBean.getIssystem()).equals("1")) {
|
||||
// rs.executeProc("hrm_selectitembyid_new", "" + fieldid + flag + 1);
|
||||
// } else {
|
||||
// rs.executeProc("cus_selectitembyid_new", "" + fieldid + flag + 1);
|
||||
// }
|
||||
// } else {
|
||||
// if (fieldname.startsWith("column_")) {
|
||||
// rs.executeProc("cus_selectitembyid_new", "" + fieldid + flag + 1);
|
||||
// } else {
|
||||
// rs.executeProc("hrm_searchselectitembyid", fieldid);
|
||||
// }
|
||||
// }
|
||||
// while (rs.next()) {
|
||||
// String tmpselectvalue = Util.null2String(rs.getString("selectvalue"));
|
||||
// String tmpselectname = Util.toScreen(rs.getString("selectname"), user.getLanguage());
|
||||
// if (Util.null2String(rs.getString("cancel")).equals("1")) continue;
|
||||
// boolean isDefault = Util.null2String(rs.getString("isdefault")).equals("y");
|
||||
// if (!isDefault) {
|
||||
// isDefault = Util.null2String(rs.getString("hrm_isdefault")).equals("1");
|
||||
// }
|
||||
// SearchConditionOption searchConditionOption = new SearchConditionOption(tmpselectvalue, tmpselectname, isDefault);
|
||||
// if (!statusOptions.contains(searchConditionOption)) {
|
||||
// statusOptions.add(searchConditionOption);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// } catch (Exception e) {
|
||||
// writeLog(e);
|
||||
// }
|
||||
// searchConditionItem = conditionFactory.createCondition(ConditionType.SELECT, fieldlabel, fieldname, statusOptions);
|
||||
// if (detailtype.equals("") || detailtype.equals("0")) {
|
||||
// detailtype = "1";
|
||||
// }
|
||||
// searchConditionItem.setKey(Util.null2String(fieldvalue));
|
||||
// searchConditionItem.setValue(fieldvalue);
|
||||
// searchConditionItem.setDetailtype(Util.getIntValue(detailtype, 3));
|
||||
} else if (fieldhtmltype.equals("6")) {//附件
|
||||
if (fieldname.equals("resourceimageid")) {
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.RESOURCEIMG, fieldlabel, fieldname, isQuickSearch);
|
||||
} else {
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.UPLOAD, fieldlabel, fieldname, isQuickSearch);
|
||||
searchConditionItem.setUploadUrl("/api/doc/upload/uploadFile");
|
||||
searchConditionItem.setCategory("category");
|
||||
searchConditionItem.setMaxFilesNumber(10);
|
||||
searchConditionItem.setMultiSelection(true);
|
||||
Map<String, Object> otherParamsMap = new HashMap<>();
|
||||
otherParamsMap.put("showClearAll", false);
|
||||
otherParamsMap.put("showOrder", true);
|
||||
searchConditionItem.setOtherParams(otherParamsMap);
|
||||
if (Util.null2String(fieldvalue).length() > 0) {
|
||||
List<Object> datas = new ArrayList<Object>();
|
||||
Map<String, Object> data = null;
|
||||
String[] tmpIds = Util.splitString(Util.null2String(fieldvalue), ",");
|
||||
for (int i = 0; i < tmpIds.length; i++) {
|
||||
String fileid = tmpIds[i];
|
||||
ImageFileManager manager = new ImageFileManager();
|
||||
manager.getImageFileInfoById(Util.getIntValue(fileid));
|
||||
String filename = manager.getImageFileName();
|
||||
String extname = filename.contains(".") ? filename.substring(filename.lastIndexOf(".") + 1) : "";
|
||||
data = new HashMap<String, Object>();
|
||||
data.put("acclink", "/weaver/weaver.file.FileDownload?fileid=" + fileid);
|
||||
data.put("fileExtendName", extname);
|
||||
data.put("fileid", fileid);
|
||||
//if (Util.null2String(this.isMobile).equals("1")) {
|
||||
// data.put("filelink", "/spa/document/static4mobile/index.html#/attach/" + fileid);
|
||||
//} else {
|
||||
data.put("filelink", "/spa/document/index2file.jsp?imagefileId=" + fileid + "#/main/document/fileView");
|
||||
//}
|
||||
data.put("filename", filename);
|
||||
data.put("filesize", manager.getImgsize());
|
||||
data.put("imgSrc", "");
|
||||
data.put("isImg", "");
|
||||
data.put("loadlink", "/weaver/weaver.file.FileDownload?fileid=" + fileid + "&download=1");
|
||||
data.put("showDelete", "true");
|
||||
data.put("showLoad", "true");
|
||||
datas.add(data);
|
||||
}
|
||||
searchConditionItem.setDatas(datas);
|
||||
}
|
||||
}
|
||||
} else if (fieldhtmltype.equals("7")) {//颜色选择
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.COLORPICKER, fieldlabel, fieldname, true);
|
||||
searchConditionItem.setValue(fieldvalue);
|
||||
} else if (fieldhtmltype.equals("8")) {//DESCRIPTION
|
||||
searchConditionItem = conditionFactory.createCondition(ConditionType.DESCRIPTION, fieldlabel, fieldname);
|
||||
searchConditionItem.setValue(fieldvalue);
|
||||
}
|
||||
if (searchConditionItem != null) {
|
||||
BrowserInitUtil.setConditionItemDefaultValue(searchConditionItem, fieldvalue, 2);
|
||||
searchConditionItem.setLabelcol(6);
|
||||
searchConditionItem.setFieldcol(12);
|
||||
searchConditionItem.setViewAttr(viewAttr);
|
||||
if (searchConditionItem.getBrowserConditionParam() != null) {
|
||||
searchConditionItem.getBrowserConditionParam().setViewAttr(viewAttr);
|
||||
}
|
||||
if (searchConditionItem.getConditionType().equals(ConditionType.DATE)) {
|
||||
searchConditionItem.setFieldcol(18);
|
||||
}
|
||||
|
||||
if (Util.null2String(extendInfoPO.getFieldNameDesc()).length() > 0) {
|
||||
searchConditionItem.setLabel(extendInfoPO.getFieldNameDesc());
|
||||
}
|
||||
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
return searchConditionItem;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,6 +53,12 @@ public class ExtendInfoPO {
|
|||
*/
|
||||
private Integer controlType;
|
||||
|
||||
|
||||
/**
|
||||
* 浏览按钮类型
|
||||
*/
|
||||
private String browserType;
|
||||
|
||||
/**
|
||||
* 分组主键
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.engine.organization.mapper.comp;
|
||||
package com.engine.organization.mapper.extend;
|
||||
|
||||
import org.apache.ibatis.annotations.MapKey;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -12,7 +11,7 @@ import java.util.Map;
|
|||
* @createTime: 2022/05/20
|
||||
* @version: 1.0
|
||||
*/
|
||||
public interface CompExtDTMapper {
|
||||
public interface ExtDTMapper {
|
||||
|
||||
/**
|
||||
* 根据主表id,查询拓展表数据
|
||||
|
|
@ -21,7 +20,6 @@ public interface CompExtDTMapper {
|
|||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@MapKey("id")
|
||||
List<Map<String, Object>> listCompExtDT(@Param("tableName") String tableName, @Param("id") long id, @Param("fields") String fields);
|
||||
|
||||
/**
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.engine.organization.mapper.comp.CompExtDTMapper">
|
||||
<mapper namespace="com.engine.organization.mapper.extend.ExtDTMapper">
|
||||
|
||||
|
||||
<insert id="insertCompExtDT" parameterType="java.util.Map">
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
where mainid = #{mainId}
|
||||
</delete>
|
||||
|
||||
<select id="listCompExtDT" resultType="java.util.Map">
|
||||
<select id="listCompExtDT" resultType="map">
|
||||
select ${fields}
|
||||
from ${tableName}
|
||||
where mainid = #{id}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.engine.organization.mapper.comp;
|
||||
package com.engine.organization.mapper.extend;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
|
|
@ -10,7 +10,7 @@ import java.util.Map;
|
|||
* @createTime: 2022/05/20
|
||||
* @version: 1.0
|
||||
*/
|
||||
public interface CompExtMapper {
|
||||
public interface ExtMapper {
|
||||
|
||||
/**
|
||||
* 根据主表id,查询主表拓展表数据
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="com.engine.organization.mapper.comp.CompExtMapper">
|
||||
<mapper namespace="com.engine.organization.mapper.extend.ExtMapper">
|
||||
|
||||
|
||||
<insert id="insertCompExt" parameterType="java.util.Map">
|
||||
|
|
@ -9,6 +9,7 @@
|
|||
<result column="field_name_desc" property="fieldNameDesc"/>
|
||||
<result column="field_type" property="fieldType"/>
|
||||
<result column="control_type" property="controlType"/>
|
||||
<result column="browser_type" property="browserType"/>
|
||||
<result column="extend_group_id" property="extendGroupId"/>
|
||||
<result column="isenable" property="isenable"/>
|
||||
<result column="isrequired" property="isrequired"/>
|
||||
|
|
@ -35,6 +36,7 @@
|
|||
, t.field_name_desc
|
||||
, t.field_type
|
||||
, t.control_type
|
||||
, t.browser_type
|
||||
, t.extend_group_id
|
||||
, t.isenable
|
||||
, t.isrequired
|
||||
|
|
|
|||
|
|
@ -0,0 +1,77 @@
|
|||
package com.engine.organization.service;
|
||||
|
||||
import com.api.browser.bean.SearchConditionItem;
|
||||
import com.engine.organization.entity.TopTab;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @description: TODO
|
||||
* @author:dxfeng
|
||||
* @createTime: 2022/05/24
|
||||
* @version: 1.0
|
||||
*/
|
||||
public interface ExtService {
|
||||
|
||||
/**
|
||||
* 组装主表拓展表表单
|
||||
*
|
||||
* @param user
|
||||
* @param extendType
|
||||
* @param tableName
|
||||
* @param viewAttr
|
||||
* @param id
|
||||
* @param groupId
|
||||
* @return
|
||||
*/
|
||||
List<SearchConditionItem> getExtForm(User user, String extendType, String tableName, int viewAttr, long id, String groupId);
|
||||
|
||||
/**
|
||||
* 组装明细表表单
|
||||
*
|
||||
* @param user
|
||||
* @param extendType
|
||||
* @param tableName
|
||||
* @param id
|
||||
* @param viewAttr
|
||||
* @param showLabel
|
||||
* @return
|
||||
*/
|
||||
List<Map<String, Object>> getExtendTables(User user, String extendType, String tableName, long id, int viewAttr, boolean showLabel);
|
||||
|
||||
/**
|
||||
* 拓展页面分组
|
||||
*
|
||||
* @param extendType
|
||||
* @param tableName
|
||||
* @return
|
||||
*/
|
||||
List<TopTab> getTabInfo(String extendType, String tableName);
|
||||
|
||||
|
||||
/**
|
||||
* 更新主表拓展表
|
||||
*
|
||||
* @param user
|
||||
* @param extendType
|
||||
* @param tableName
|
||||
* @param params
|
||||
* @param groupId
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
int updateExtForm(User user, String extendType, String tableName, Map<String, Object> params, String groupId, Long id);
|
||||
|
||||
/**
|
||||
* 更新明细表
|
||||
*
|
||||
* @param user
|
||||
* @param extendType
|
||||
* @param tableName
|
||||
* @param params
|
||||
* @param id
|
||||
*/
|
||||
void updateExtDT(User user, String extendType, String tableName, Map<String, Object> params, Long id);
|
||||
}
|
||||
|
|
@ -8,21 +8,17 @@ import com.api.browser.bean.SearchConditionItem;
|
|||
import com.api.browser.bean.SearchConditionOption;
|
||||
import com.cloudstore.eccom.pc.table.WeaTableColumn;
|
||||
import com.cloudstore.eccom.result.WeaResultMsg;
|
||||
import com.engine.common.util.ServiceUtil;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.organization.component.OrganizationWeaTable;
|
||||
import com.engine.organization.entity.TopTab;
|
||||
import com.engine.organization.entity.comp.bo.CompBO;
|
||||
import com.engine.organization.entity.comp.dto.CompListDTO;
|
||||
import com.engine.organization.entity.comp.param.CompSearchParam;
|
||||
import com.engine.organization.entity.comp.po.CompPO;
|
||||
import com.engine.organization.entity.extend.bo.ExtendInfoBO;
|
||||
import com.engine.organization.entity.extend.po.ExtendInfoPO;
|
||||
import com.engine.organization.mapper.comp.CompExtDTMapper;
|
||||
import com.engine.organization.mapper.comp.CompExtMapper;
|
||||
import com.engine.organization.mapper.comp.CompMapper;
|
||||
import com.engine.organization.mapper.extend.ExtendGroupMapper;
|
||||
import com.engine.organization.mapper.extend.ExtendInfoMapper;
|
||||
import com.engine.organization.service.CompService;
|
||||
import com.engine.organization.service.ExtService;
|
||||
import com.engine.organization.util.MenuBtn;
|
||||
import com.engine.organization.util.OrganizationAssert;
|
||||
import com.engine.organization.util.OrganizationFormItemUtil;
|
||||
|
|
@ -34,6 +30,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
|||
import weaver.crm.Maint.SectorInfoComInfo;
|
||||
import weaver.general.StringUtil;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
import weaver.hrm.resource.ResourceComInfo;
|
||||
|
||||
import java.util.*;
|
||||
|
|
@ -70,16 +67,8 @@ public class CompServiceImpl extends Service implements CompService {
|
|||
return MapperProxyFactory.getProxy(ExtendGroupMapper.class);
|
||||
}
|
||||
|
||||
private ExtendInfoMapper getExtendInfoMapper() {
|
||||
return MapperProxyFactory.getProxy(ExtendInfoMapper.class);
|
||||
}
|
||||
|
||||
private CompExtDTMapper getCompExtDTMapper() {
|
||||
return MapperProxyFactory.getProxy(CompExtDTMapper.class);
|
||||
}
|
||||
|
||||
private CompExtMapper getCompExtMapper() {
|
||||
return MapperProxyFactory.getProxy(CompExtMapper.class);
|
||||
private ExtService getExtService(User user) {
|
||||
return ServiceUtil.getService(ExtServiceImpl.class, user);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -148,52 +137,12 @@ public class CompServiceImpl extends Service implements CompService {
|
|||
// 更新主表数据
|
||||
updateBaseComp = getCompMapper().updateBaseComp(compPO);
|
||||
} else {
|
||||
List<ExtendInfoPO> extInfoPOList = getExtendInfoMapper().listFields(EXTEND_TYPE, groupId, JCL_ORG_COMPEXT);
|
||||
List<String> extFields = extInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList());
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
for (String dtField : extFields) {
|
||||
map.put(dtField, params.get(dtField));
|
||||
}
|
||||
// 判断更新还是插入
|
||||
int count = getCompExtMapper().countCompExtById(JCL_ORG_COMPEXT, searchParam.getId());
|
||||
if (count > 0) {
|
||||
map.put("update_time", compPO.getUpdateTime());
|
||||
updateBaseComp = getCompExtMapper().updateCompExt(JCL_ORG_COMPEXT, compPO.getId(), map);
|
||||
} else {
|
||||
map.put("creator", compPO.getCreator());
|
||||
map.put("delete_type", compPO.getDeleteType());
|
||||
map.put("create_time", compPO.getCreateTime());
|
||||
map.put("update_time", compPO.getUpdateTime());
|
||||
map.put("id", compPO.getId());
|
||||
updateBaseComp = getCompExtMapper().insertCompExt(JCL_ORG_COMPEXT, map);
|
||||
}
|
||||
// 更新主表拓展表
|
||||
updateBaseComp = getExtService(user).updateExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, params, groupId, compPO.getId());
|
||||
}
|
||||
|
||||
// 获取分部明细表的所有拓展列
|
||||
List<ExtendInfoPO> dtInfoPOList = getExtendInfoMapper().listFields(EXTEND_TYPE, "", JCL_ORG_COMPEXT_DT1);
|
||||
List<String> dtFields = dtInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList());
|
||||
|
||||
List<Map<String, Object>> insertList = new ArrayList<>();
|
||||
// 删除明细表数据
|
||||
getCompExtDTMapper().deleteByMainID(JCL_ORG_COMPEXT_DT1, compPO.getId());
|
||||
// 处理明细表数据
|
||||
int rowNum = Util.getIntValue((String) params.get("rownum"));
|
||||
for (int i = 0; i < rowNum; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
for (String dtField : dtFields) {
|
||||
map.put(dtField, params.get(dtField + "_" + i));
|
||||
}
|
||||
map.put("mainid", compPO.getId());
|
||||
map.put("creator", compPO.getCreator());
|
||||
map.put("delete_type", compPO.getDeleteType());
|
||||
map.put("create_time", compPO.getCreateTime());
|
||||
map.put("update_time", compPO.getUpdateTime());
|
||||
insertList.add(map);
|
||||
}
|
||||
// 更新拓展表数据
|
||||
for (Map<String, Object> map : insertList) {
|
||||
getCompExtDTMapper().insertCompExtDT(JCL_ORG_COMPEXT_DT1, map);
|
||||
}
|
||||
//更新明细表
|
||||
getExtService(user).updateExtDT(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, params, compPO.getId());
|
||||
|
||||
return updateBaseComp;
|
||||
}
|
||||
|
|
@ -281,16 +230,17 @@ public class CompServiceImpl extends Service implements CompService {
|
|||
if (StringUtil.isEmpty(groupId) || "0".equals(groupId)) {
|
||||
addGroups.add(new SearchConditionGroup("基本信息", true, getBaseForm(viewAttr, id)));
|
||||
} else {
|
||||
addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtForm(viewAttr, id, groupId)));
|
||||
addGroups.add(new SearchConditionGroup(getExtendGroupMapper().getGroupNameById(groupId), true, getExtService(user).getExtForm(user, EXTEND_TYPE, JCL_ORG_COMPEXT, viewAttr, id, groupId)));
|
||||
}
|
||||
|
||||
|
||||
HashMap<String, Object> resultMap = new HashMap<>();
|
||||
resultMap.put("buttons", buttonsMap);
|
||||
resultMap.put("conditions", addGroups);
|
||||
resultMap.put("id", id);
|
||||
resultMap.put("tabInfo", getTabInfo());
|
||||
resultMap.put("tables", getExtendTables(id, viewAttr, false));
|
||||
// 拓展页面分组
|
||||
resultMap.put("tabInfo", getExtService(user).getTabInfo(EXTEND_TYPE, JCL_ORG_COMPEXT));
|
||||
// 处理明细表
|
||||
resultMap.put("tables", getExtService(user).getExtendTables(user, EXTEND_TYPE, JCL_ORG_COMPEXT_DT1, id, viewAttr, false));
|
||||
Map<String, Object> apiDatas = new HashMap<>();
|
||||
|
||||
apiDatas.put("result", resultMap);
|
||||
|
|
@ -388,34 +338,6 @@ public class CompServiceImpl extends Service implements CompService {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* 处理明细表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private List<Map<String, Object>> getExtendTables(long id, int viewAttr, boolean showLabel) {
|
||||
List<Map<String, Object>> tables = new ArrayList<>();
|
||||
// 查询所有分布模块,拓展明细表信息
|
||||
List<ExtendInfoPO> infoPOList = getExtendInfoMapper().listFields(EXTEND_TYPE, "", JCL_ORG_COMPEXT_DT1);
|
||||
Map<Long, List<ExtendInfoPO>> groupMap = infoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId));
|
||||
// 遍历Map,组装数据
|
||||
for (Map.Entry<Long, List<ExtendInfoPO>> entry : groupMap.entrySet()) {
|
||||
Map<String, Object> tableMap = new HashMap<>();
|
||||
tableMap.put("hide", false);
|
||||
tableMap.put("tabname", getExtendGroupMapper().getGroupNameById(entry.getKey() + ""));
|
||||
Map<String, Object> tabinfoMap = new HashMap<>();
|
||||
tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(entry.getValue(), viewAttr, showLabel));
|
||||
tabinfoMap.put("rownum", "rownum");
|
||||
|
||||
String fields = entry.getValue().stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(","));
|
||||
tabinfoMap.put("datas", getCompExtDTMapper().listCompExtDT(JCL_ORG_COMPEXT_DT1, id, fields));
|
||||
tableMap.put("tabinfo", tabinfoMap);
|
||||
tables.add(tableMap);
|
||||
}
|
||||
return tables;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 浏览按钮类型赋值转换
|
||||
*
|
||||
|
|
@ -433,26 +355,6 @@ public class CompServiceImpl extends Service implements CompService {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* 拓展页面分组
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private List<TopTab> getTabInfo() {
|
||||
List<TopTab> topTabs = new ArrayList<>();
|
||||
// 基本信息
|
||||
topTabs.add(TopTab.builder().color("#000000").groupId("0").showcount(false).title("基本信息").viewCondition("0").build());
|
||||
|
||||
List<ExtendInfoPO> infoPOList = getExtendInfoMapper().listFields(EXTEND_TYPE, "", JCL_ORG_COMPEXT);
|
||||
List<Long> extendGroups = infoPOList.stream().map(ExtendInfoPO::getExtendGroupId).collect(Collectors.toList());
|
||||
// 拓展信息
|
||||
if (CollectionUtils.isNotEmpty(extendGroups)) {
|
||||
for (Long groupId : extendGroups) {
|
||||
topTabs.add(TopTab.builder().color("#000000").groupId(groupId + "").showcount(false).title(getExtendGroupMapper().getGroupNameById(groupId + "")).viewCondition(groupId + "").build());
|
||||
}
|
||||
}
|
||||
return topTabs;
|
||||
}
|
||||
|
||||
/**
|
||||
* 基本信息基础表单
|
||||
|
|
@ -534,63 +436,4 @@ public class CompServiceImpl extends Service implements CompService {
|
|||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据viewCondition获取拓展表单
|
||||
*
|
||||
* @param viewAttr
|
||||
* @param id
|
||||
* @param groupId
|
||||
* @return
|
||||
*/
|
||||
private List<SearchConditionItem> getExtForm(int viewAttr, long id, String groupId) {
|
||||
List<SearchConditionItem> conditionItems = new ArrayList<>();
|
||||
|
||||
// 2编辑 1查看
|
||||
OrganizationAssert.notNull(groupId, "请选择对应的拓展页");
|
||||
List<ExtendInfoPO> infoPOList = getExtendInfoMapper().listFields(EXTEND_TYPE, groupId, JCL_ORG_COMPEXT);
|
||||
String fields = infoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(","));
|
||||
Map<String, Object> compExtMap = getCompExtMapper().listCompExt(JCL_ORG_COMPEXT, fields, id);
|
||||
|
||||
// 组装拓展页内容
|
||||
for (ExtendInfoPO extendInfoPO : infoPOList) {
|
||||
SearchConditionItem item = null;
|
||||
switch (ExtendInfoBO.getFieldhtmltype(extendInfoPO.getControlType() + "")) {
|
||||
case INPUT:
|
||||
item = OrganizationFormItemUtil.inputItem(user, 2, 16, 1, 50, extendInfoPO.getFieldNameDesc(), extendInfoPO.getFieldName());
|
||||
item.setValue(compExtMap.get(extendInfoPO.getFieldName()));
|
||||
break;
|
||||
case TEXTAREA:
|
||||
item = OrganizationFormItemUtil.textareaItem(user, 2, 16, true, 1, 60, extendInfoPO.getFieldNameDesc(), extendInfoPO.getFieldName());
|
||||
item.setValue(compExtMap.get(extendInfoPO.getFieldName()));
|
||||
break;
|
||||
case BROWSER:
|
||||
// TODO
|
||||
// item=OrganizationFormItemUtil.browserItem()
|
||||
break;
|
||||
case CHECKBOX:
|
||||
item = OrganizationFormItemUtil.checkboxItem(user, 2, 16, 1, true, extendInfoPO.getFieldNameDesc(), extendInfoPO.getFieldName());
|
||||
item.setValue(compExtMap.get(extendInfoPO.getFieldName()));
|
||||
break;
|
||||
case SELECT:
|
||||
// TODO
|
||||
// item = OrganizationFormItemUtil.selectItem();
|
||||
break;
|
||||
case FILEUPLOAD:
|
||||
case TEXT:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (null != item) {
|
||||
// 根据viewAttr设置编辑或只读
|
||||
item.setViewAttr(viewAttr);
|
||||
// 是否必填
|
||||
if (1 == extendInfoPO.getIsrequired()) {
|
||||
item.setViewAttr(3);
|
||||
item.setRules("required|string");
|
||||
}
|
||||
conditionItems.add(item);
|
||||
}
|
||||
}
|
||||
return conditionItems;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,167 @@
|
|||
package com.engine.organization.service.impl;
|
||||
|
||||
import com.api.browser.bean.SearchConditionItem;
|
||||
import com.engine.core.impl.Service;
|
||||
import com.engine.organization.entity.TopTab;
|
||||
import com.engine.organization.entity.extend.bo.ExtendInfoBO;
|
||||
import com.engine.organization.entity.extend.po.ExtendInfoPO;
|
||||
import com.engine.organization.mapper.extend.ExtDTMapper;
|
||||
import com.engine.organization.mapper.extend.ExtMapper;
|
||||
import com.engine.organization.mapper.extend.ExtendGroupMapper;
|
||||
import com.engine.organization.mapper.extend.ExtendInfoMapper;
|
||||
import com.engine.organization.service.ExtService;
|
||||
import com.engine.organization.util.OrganizationAssert;
|
||||
import com.engine.organization.util.db.MapperProxyFactory;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import weaver.general.Util;
|
||||
import weaver.hrm.User;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @description: TODO
|
||||
* @author:dxfeng
|
||||
* @createTime: 2022/05/24
|
||||
* @version: 1.0
|
||||
*/
|
||||
public class ExtServiceImpl extends Service implements ExtService {
|
||||
|
||||
private ExtendInfoMapper getExtendInfoMapper() {
|
||||
return MapperProxyFactory.getProxy(ExtendInfoMapper.class);
|
||||
}
|
||||
|
||||
private ExtendGroupMapper getExtendGroupMapper() {
|
||||
return MapperProxyFactory.getProxy(ExtendGroupMapper.class);
|
||||
}
|
||||
|
||||
private ExtDTMapper getExtDTMapper() {
|
||||
return MapperProxyFactory.getProxy(ExtDTMapper.class);
|
||||
}
|
||||
|
||||
private ExtMapper getExtMapper() {
|
||||
return MapperProxyFactory.getProxy(ExtMapper.class);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public List<SearchConditionItem> getExtForm(User user, String extendType, String tableName, int viewAttr, long id, String groupId) {
|
||||
List<SearchConditionItem> conditionItems = new ArrayList<>();
|
||||
|
||||
// 2编辑 1查看
|
||||
OrganizationAssert.notNull(groupId, "请选择对应的拓展页");
|
||||
List<ExtendInfoPO> infoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName);
|
||||
String fields = infoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(","));
|
||||
infoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(","));
|
||||
Map<String, Object> compExtMap = getExtMapper().listCompExt(tableName, fields, id);
|
||||
// 组装拓展页内容
|
||||
for (ExtendInfoPO extendInfoPO : infoPOList) {
|
||||
SearchConditionItem item = ExtendInfoBO.getSearchConditionItem(user, viewAttr, extendInfoPO, compExtMap.get(extendInfoPO.getFieldName()));
|
||||
item.setFieldcol(16);
|
||||
if (null != item && 2 == viewAttr && 1 == extendInfoPO.getIsrequired()) {
|
||||
item.setViewAttr(3);
|
||||
item.setRules("required|string");
|
||||
}
|
||||
conditionItems.add(item);
|
||||
}
|
||||
return conditionItems;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getExtendTables(User user, String extendType, String tableName, long id, int viewAttr, boolean showLabel) {
|
||||
List<Map<String, Object>> tables = new ArrayList<>();
|
||||
// 查询所有分布模块,拓展明细表信息
|
||||
List<ExtendInfoPO> infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName);
|
||||
Map<Long, List<ExtendInfoPO>> groupMap = infoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId));
|
||||
// 遍历Map,组装数据
|
||||
for (Map.Entry<Long, List<ExtendInfoPO>> entry : groupMap.entrySet()) {
|
||||
Map<String, Object> tableMap = new HashMap<>();
|
||||
tableMap.put("hide", false);
|
||||
tableMap.put("tabname", getExtendGroupMapper().getGroupNameById(entry.getKey() + ""));
|
||||
Map<String, Object> tabinfoMap = new HashMap<>();
|
||||
tabinfoMap.put("columns", ExtendInfoBO.convertInfoListToTable(user, entry.getValue(), viewAttr, showLabel));
|
||||
tabinfoMap.put("rownum", "rownum");
|
||||
|
||||
String fields = entry.getValue().stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(","));
|
||||
tabinfoMap.put("datas", getExtDTMapper().listCompExtDT(tableName, id, fields));
|
||||
tableMap.put("tabinfo", tabinfoMap);
|
||||
tables.add(tableMap);
|
||||
}
|
||||
return tables;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 拓展页面分组
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public List<TopTab> getTabInfo(String extendType, String tableName) {
|
||||
List<TopTab> topTabs = new ArrayList<>();
|
||||
// 基本信息
|
||||
topTabs.add(TopTab.builder().color("#000000").groupId("0").showcount(false).title("基本信息").viewCondition("0").build());
|
||||
|
||||
List<ExtendInfoPO> infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName);
|
||||
List<Long> extendGroups = infoPOList.stream().map(ExtendInfoPO::getExtendGroupId).collect(Collectors.toList());
|
||||
// 拓展信息
|
||||
if (CollectionUtils.isNotEmpty(extendGroups)) {
|
||||
for (Long groupId : extendGroups) {
|
||||
topTabs.add(TopTab.builder().color("#000000").groupId(groupId + "").showcount(false).title(getExtendGroupMapper().getGroupNameById(groupId + "")).viewCondition(groupId + "").build());
|
||||
}
|
||||
}
|
||||
return topTabs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int updateExtForm(User user, String extendType, String tableName, Map<String, Object> params, String groupId, Long id) {
|
||||
int updateBaseComp;
|
||||
List<ExtendInfoPO> extInfoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName);
|
||||
List<String> extFields = extInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList());
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
for (String dtField : extFields) {
|
||||
map.put(dtField, params.get(dtField));
|
||||
}
|
||||
// 判断更新还是插入
|
||||
int count = getExtMapper().countCompExtById(tableName, id);
|
||||
if (count > 0) {
|
||||
map.put("update_time", new Date());
|
||||
updateBaseComp = getExtMapper().updateCompExt(tableName, id, map);
|
||||
} else {
|
||||
map.put("creator", user.getUID());
|
||||
map.put("delete_type", 0);
|
||||
map.put("create_time", new Date());
|
||||
map.put("update_time", new Date());
|
||||
map.put("id", id);
|
||||
updateBaseComp = getExtMapper().insertCompExt(tableName, map);
|
||||
}
|
||||
return updateBaseComp;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateExtDT(User user, String extendType, String tableName, Map<String, Object> params, Long id) {
|
||||
List<ExtendInfoPO> dtInfoPOList = getExtendInfoMapper().listFields(extendType, "", tableName);
|
||||
List<String> dtFields = dtInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList());
|
||||
|
||||
List<Map<String, Object>> insertList = new ArrayList<>();
|
||||
// 删除明细表数据
|
||||
getExtDTMapper().deleteByMainID(tableName, id);
|
||||
// 处理明细表数据
|
||||
int rowNum = Util.getIntValue((String) params.get("rownum"));
|
||||
for (int i = 0; i < rowNum; i++) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
for (String dtField : dtFields) {
|
||||
map.put(dtField, params.get(dtField + "_" + i));
|
||||
}
|
||||
map.put("mainid", id);
|
||||
map.put("creator", user.getUID());
|
||||
map.put("delete_type", 0);
|
||||
map.put("create_time", new Date());
|
||||
map.put("update_time", new Date());
|
||||
insertList.add(map);
|
||||
}
|
||||
// 更新拓展表数据
|
||||
for (Map<String, Object> map : insertList) {
|
||||
getExtDTMapper().insertCompExtDT(tableName, map);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue