From cb1b37e05dfa1e7eb337fdc52b1e4665786fe95a Mon Sep 17 00:00:00 2001 From: dxfeng Date: Tue, 24 May 2022 13:53:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E9=97=A8=E7=AE=A1=E7=90=86=E6=A8=A1?= =?UTF-8?q?=E5=9D=97=E6=8E=A5=E5=8F=A3=20=E6=8B=93=E5=B1=95=E8=A1=A8?= =?UTF-8?q?=E9=80=9A=E7=94=A8=E6=96=B9=E6=B3=95=E6=8A=BD=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/department/bo/DepartmentBO.java | 3 - .../entity/extend/bo/ExtendInfoBO.java | 310 +++++++++++++++++- .../entity/extend/po/ExtendInfoPO.java | 6 + .../ExtDTMapper.java} | 6 +- .../ExtDTMapper.xml} | 4 +- .../ExtMapper.java} | 4 +- .../ExtMapper.xml} | 2 +- .../mapper/extend/ExtendInfoMapper.xml | 2 + .../organization/service/ExtService.java | 77 +++++ .../service/impl/CompServiceImpl.java | 185 +---------- .../service/impl/ExtServiceImpl.java | 167 ++++++++++ 11 files changed, 577 insertions(+), 189 deletions(-) rename src/com/engine/organization/mapper/{comp/CompExtDTMapper.java => extend/ExtDTMapper.java} (85%) rename src/com/engine/organization/mapper/{comp/CompExtDTMapper.xml => extend/ExtDTMapper.xml} (85%) rename src/com/engine/organization/mapper/{comp/CompExtMapper.java => extend/ExtMapper.java} (92%) rename src/com/engine/organization/mapper/{comp/CompExtMapper.xml => extend/ExtMapper.xml} (94%) create mode 100644 src/com/engine/organization/service/ExtService.java create mode 100644 src/com/engine/organization/service/impl/ExtServiceImpl.java diff --git a/src/com/engine/organization/entity/department/bo/DepartmentBO.java b/src/com/engine/organization/entity/department/bo/DepartmentBO.java index df1d5b60..d07d15ab 100644 --- a/src/com/engine/organization/entity/department/bo/DepartmentBO.java +++ b/src/com/engine/organization/entity/department/bo/DepartmentBO.java @@ -46,10 +46,7 @@ public class DepartmentBO { .build() ).collect(Collectors.toList()); Map> 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()); diff --git a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java index 50db87a4..479fcc67 100644 --- a/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java +++ b/src/com/engine/organization/entity/extend/bo/ExtendInfoBO.java @@ -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> convertInfoListToTable(List infoPOList, int viewAttr, boolean showLabel) { + public static List> convertInfoListToTable(User user, List infoPOList, int viewAttr, boolean showLabel) { List> lsCol = new ArrayList>(); Map 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 getFieldDetialInfo(ExtendInfoPO extendInfoPO, int viewAttr, boolean showLabel, int width) { + private static List getFieldDetialInfo(User user, ExtendInfoPO extendInfoPO, int viewAttr, boolean showLabel, int width) { List ls = new ArrayList(); - 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(); + } + 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> replaceDatas = new ArrayList>(); + 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 replaceData = new HashMap(); + 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 replaceData = new HashMap(); + replaceData.put("id", fieldvalues[i]); + replaceData.put("name", fieldshowname); + replaceDatas.add(replaceData); + } + } else if (detailtype.equals("doccategory")) { + List 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 replaceData = new HashMap(); + 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 replaceData = new HashMap(); + 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 statusOptions = hrmFieldBean.getSelectOption(); + // if (statusOptions == null) statusOptions = new ArrayList(); + // 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 otherParamsMap = new HashMap<>(); + otherParamsMap.put("showClearAll", false); + otherParamsMap.put("showOrder", true); + searchConditionItem.setOtherParams(otherParamsMap); + if (Util.null2String(fieldvalue).length() > 0) { + List datas = new ArrayList(); + Map 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(); + 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; + } } diff --git a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java index acdd7b1a..aba76bc9 100644 --- a/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java +++ b/src/com/engine/organization/entity/extend/po/ExtendInfoPO.java @@ -53,6 +53,12 @@ public class ExtendInfoPO { */ private Integer controlType; + + /** + * 浏览按钮类型 + */ + private String browserType; + /** * 分组主键 */ diff --git a/src/com/engine/organization/mapper/comp/CompExtDTMapper.java b/src/com/engine/organization/mapper/extend/ExtDTMapper.java similarity index 85% rename from src/com/engine/organization/mapper/comp/CompExtDTMapper.java rename to src/com/engine/organization/mapper/extend/ExtDTMapper.java index 31f05c9f..baf68619 100644 --- a/src/com/engine/organization/mapper/comp/CompExtDTMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtDTMapper.java @@ -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> listCompExtDT(@Param("tableName") String tableName, @Param("id") long id, @Param("fields") String fields); /** diff --git a/src/com/engine/organization/mapper/comp/CompExtDTMapper.xml b/src/com/engine/organization/mapper/extend/ExtDTMapper.xml similarity index 85% rename from src/com/engine/organization/mapper/comp/CompExtDTMapper.xml rename to src/com/engine/organization/mapper/extend/ExtDTMapper.xml index 4ecb3ac4..d9ef99a7 100644 --- a/src/com/engine/organization/mapper/comp/CompExtDTMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtDTMapper.xml @@ -1,6 +1,6 @@ - + @@ -21,7 +21,7 @@ where mainid = #{mainId} - select ${fields} from ${tableName} where mainid = #{id} diff --git a/src/com/engine/organization/mapper/comp/CompExtMapper.java b/src/com/engine/organization/mapper/extend/ExtMapper.java similarity index 92% rename from src/com/engine/organization/mapper/comp/CompExtMapper.java rename to src/com/engine/organization/mapper/extend/ExtMapper.java index ff6482d7..da7b11d5 100644 --- a/src/com/engine/organization/mapper/comp/CompExtMapper.java +++ b/src/com/engine/organization/mapper/extend/ExtMapper.java @@ -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,查询主表拓展表数据 diff --git a/src/com/engine/organization/mapper/comp/CompExtMapper.xml b/src/com/engine/organization/mapper/extend/ExtMapper.xml similarity index 94% rename from src/com/engine/organization/mapper/comp/CompExtMapper.xml rename to src/com/engine/organization/mapper/extend/ExtMapper.xml index e2305c1c..40b9672f 100644 --- a/src/com/engine/organization/mapper/comp/CompExtMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtMapper.xml @@ -1,6 +1,6 @@ - + diff --git a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml index c06dec91..5d9855cc 100644 --- a/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml +++ b/src/com/engine/organization/mapper/extend/ExtendInfoMapper.xml @@ -9,6 +9,7 @@ + @@ -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 diff --git a/src/com/engine/organization/service/ExtService.java b/src/com/engine/organization/service/ExtService.java new file mode 100644 index 00000000..4165b5b9 --- /dev/null +++ b/src/com/engine/organization/service/ExtService.java @@ -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 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> getExtendTables(User user, String extendType, String tableName, long id, int viewAttr, boolean showLabel); + + /** + * 拓展页面分组 + * + * @param extendType + * @param tableName + * @return + */ + List 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 params, String groupId, Long id); + + /** + * 更新明细表 + * + * @param user + * @param extendType + * @param tableName + * @param params + * @param id + */ + void updateExtDT(User user, String extendType, String tableName, Map params, Long id); +} diff --git a/src/com/engine/organization/service/impl/CompServiceImpl.java b/src/com/engine/organization/service/impl/CompServiceImpl.java index 5ecb7eee..bd6f7765 100644 --- a/src/com/engine/organization/service/impl/CompServiceImpl.java +++ b/src/com/engine/organization/service/impl/CompServiceImpl.java @@ -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 extInfoPOList = getExtendInfoMapper().listFields(EXTEND_TYPE, groupId, JCL_ORG_COMPEXT); - List extFields = extInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList()); - Map 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 dtInfoPOList = getExtendInfoMapper().listFields(EXTEND_TYPE, "", JCL_ORG_COMPEXT_DT1); - List dtFields = dtInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList()); - - List> 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 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 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 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 apiDatas = new HashMap<>(); apiDatas.put("result", resultMap); @@ -388,34 +338,6 @@ public class CompServiceImpl extends Service implements CompService { } - /** - * 处理明细表 - * - * @return - */ - private List> getExtendTables(long id, int viewAttr, boolean showLabel) { - List> tables = new ArrayList<>(); - // 查询所有分布模块,拓展明细表信息 - List infoPOList = getExtendInfoMapper().listFields(EXTEND_TYPE, "", JCL_ORG_COMPEXT_DT1); - Map> groupMap = infoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); - // 遍历Map,组装数据 - for (Map.Entry> entry : groupMap.entrySet()) { - Map tableMap = new HashMap<>(); - tableMap.put("hide", false); - tableMap.put("tabname", getExtendGroupMapper().getGroupNameById(entry.getKey() + "")); - Map 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 getTabInfo() { - List topTabs = new ArrayList<>(); - // 基本信息 - topTabs.add(TopTab.builder().color("#000000").groupId("0").showcount(false).title("基本信息").viewCondition("0").build()); - - List infoPOList = getExtendInfoMapper().listFields(EXTEND_TYPE, "", JCL_ORG_COMPEXT); - List 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 getExtForm(int viewAttr, long id, String groupId) { - List conditionItems = new ArrayList<>(); - - // 2编辑 1查看 - OrganizationAssert.notNull(groupId, "请选择对应的拓展页"); - List infoPOList = getExtendInfoMapper().listFields(EXTEND_TYPE, groupId, JCL_ORG_COMPEXT); - String fields = infoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.joining(",")); - Map 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; - } } diff --git a/src/com/engine/organization/service/impl/ExtServiceImpl.java b/src/com/engine/organization/service/impl/ExtServiceImpl.java new file mode 100644 index 00000000..fc2b4edc --- /dev/null +++ b/src/com/engine/organization/service/impl/ExtServiceImpl.java @@ -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 getExtForm(User user, String extendType, String tableName, int viewAttr, long id, String groupId) { + List conditionItems = new ArrayList<>(); + + // 2编辑 1查看 + OrganizationAssert.notNull(groupId, "请选择对应的拓展页"); + List 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 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> getExtendTables(User user, String extendType, String tableName, long id, int viewAttr, boolean showLabel) { + List> tables = new ArrayList<>(); + // 查询所有分布模块,拓展明细表信息 + List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName); + Map> groupMap = infoPOList.stream().collect(Collectors.groupingBy(ExtendInfoPO::getExtendGroupId)); + // 遍历Map,组装数据 + for (Map.Entry> entry : groupMap.entrySet()) { + Map tableMap = new HashMap<>(); + tableMap.put("hide", false); + tableMap.put("tabname", getExtendGroupMapper().getGroupNameById(entry.getKey() + "")); + Map 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 getTabInfo(String extendType, String tableName) { + List topTabs = new ArrayList<>(); + // 基本信息 + topTabs.add(TopTab.builder().color("#000000").groupId("0").showcount(false).title("基本信息").viewCondition("0").build()); + + List infoPOList = getExtendInfoMapper().listFields(extendType, "", tableName); + List 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 params, String groupId, Long id) { + int updateBaseComp; + List extInfoPOList = getExtendInfoMapper().listFields(extendType, groupId, tableName); + List extFields = extInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList()); + Map 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 params, Long id) { + List dtInfoPOList = getExtendInfoMapper().listFields(extendType, "", tableName); + List dtFields = dtInfoPOList.stream().map(ExtendInfoPO::getFieldName).collect(Collectors.toList()); + + List> insertList = new ArrayList<>(); + // 删除明细表数据 + getExtDTMapper().deleteByMainID(tableName, id); + // 处理明细表数据 + int rowNum = Util.getIntValue((String) params.get("rownum")); + for (int i = 0; i < rowNum; i++) { + Map 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 map : insertList) { + getExtDTMapper().insertCompExtDT(tableName, map); + } + } +}