@ -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
* /
p ublic static FieldType getFieldhtmltype ( String fieldhtmltype ) {
p rivate 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 ;
}
}