weaver-hrm-organization/src/com/engine/organization/service/impl/QuickSearchServiceImpl.java

471 lines
24 KiB
Java
Raw Normal View History

2023-08-09 09:39:37 +08:00
package com.engine.organization.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
2023-08-15 17:30:20 +08:00
import com.api.browser.bean.SearchConditionItem;
import com.api.browser.bean.SearchConditionOption;
import com.api.hrm.bean.HrmFieldBean;
import com.api.hrm.util.HrmFieldSearchConditionComInfo;
2023-08-09 09:39:37 +08:00
import com.cloudstore.dev.api.util.TextUtil;
import com.engine.core.impl.Service;
2023-08-15 17:30:20 +08:00
import com.engine.organization.entity.jclimport.po.CusFormFieldPO;
import com.engine.organization.entity.search.QuickSearchCondition;
import com.engine.organization.entity.search.QuickSearchDetail;
import com.engine.organization.entity.search.QuickSearchField;
import com.engine.organization.entity.search.QuickSearchSetting;
2023-08-15 09:07:41 +08:00
import com.engine.organization.entity.search.condition.ConditionOption;
import com.engine.organization.entity.search.condition.RangeCondition;
2023-08-11 15:44:58 +08:00
import com.engine.organization.enums.LogModuleNameEnum;
2023-08-09 09:39:37 +08:00
import com.engine.organization.mapper.condition.QuickSearchMapper;
import com.engine.organization.service.QuickSearchService;
import com.engine.organization.util.db.MapperProxyFactory;
2023-08-09 17:12:50 +08:00
import org.apache.commons.collections.CollectionUtils;
2023-08-09 09:39:37 +08:00
import org.apache.commons.lang.StringUtils;
2023-08-15 17:30:20 +08:00
import org.json.JSONException;
2023-08-09 09:39:37 +08:00
import weaver.formmode.exttools.impexp.common.DateUtils;
import weaver.general.BaseBean;
import weaver.general.Util;
2023-08-15 17:30:20 +08:00
import weaver.hrm.definedfield.HrmFieldManager;
2023-08-09 09:39:37 +08:00
import weaver.systeminfo.SystemEnv;
2023-08-15 09:07:41 +08:00
import java.util.*;
2023-08-09 17:12:50 +08:00
import java.util.stream.Collectors;
2023-08-09 09:39:37 +08:00
/**
* @author:dxfeng
* @createTime: 2023/08/08
* @version: 1.0
*/
public class QuickSearchServiceImpl extends Service implements QuickSearchService {
private QuickSearchMapper getQuickSearchMapper() {
return MapperProxyFactory.getProxy(QuickSearchMapper.class);
}
@Override
2023-08-15 09:07:41 +08:00
public Map<String, Object> getQuickSearchCondition(Map<String, Object> params) {
Map<String, Object> apiDatas = new HashMap<>(16);
2023-08-15 14:09:58 +08:00
QuickSearchSetting quickSearchSetting = getQuickSearchMapper().getQuickSearchSetting(user.getUID());
if (null != quickSearchSetting) {
2023-08-15 15:38:28 +08:00
apiDatas.put("enable", "1".equals(Util.null2String(quickSearchSetting.getIsQuickSearch())));
2023-08-15 14:09:58 +08:00
} else {
2023-08-15 15:38:28 +08:00
apiDatas.put("enable", false);
2023-08-15 14:09:58 +08:00
}
2023-08-15 11:11:39 +08:00
List<Object> rangeConditions = new ArrayList<>();
2023-08-15 09:07:41 +08:00
List<QuickSearchCondition> quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(), LogModuleNameEnum.RESOURCE.getValue());
for (QuickSearchCondition quickSearchCondition : quickSearchConditionList) {
RangeCondition condition = new RangeCondition();
condition.setLabel(quickSearchCondition.getCustomName());
2023-08-15 17:30:20 +08:00
condition.setDomkey(Collections.singletonList(quickSearchCondition.getFieldId()));
2023-08-15 09:07:41 +08:00
// 根据条件字段类型,组装展示样式
switch (quickSearchCondition.getType()) {
case 5:
2023-08-15 17:30:20 +08:00
List<SearchConditionOption> selectOptions = getSelectOptions(quickSearchCondition);
if (CollectionUtils.isEmpty(selectOptions)) {
2023-08-15 15:30:27 +08:00
condition.setCom("未设置选项");
} else {
// 字段本身值、判断有无下拉框选项
2023-08-15 17:30:20 +08:00
List<ConditionOption> options = selectOptions.stream().map(item -> ConditionOption.builder().key(item.getKey()).showname(item.getShowname()).build()).collect(Collectors.toList());
2023-08-16 13:49:10 +08:00
options.add(0,ConditionOption.builder().key("-1").showname("全部").build());
2023-08-15 14:09:58 +08:00
condition.setOptions(options);
2023-08-15 09:07:41 +08:00
}
2023-08-15 15:30:27 +08:00
rangeConditions.add(condition);
2023-08-15 09:07:41 +08:00
break;
case 3:
// 日期类型数据
List<ConditionOption> options = new ArrayList<>();
2023-08-15 17:30:20 +08:00
options.add(ConditionOption.builder().key("0").showname(SystemEnv.getHtmlLabelName(332, user.getLanguage())).build());
2023-08-15 09:07:41 +08:00
options.add(ConditionOption.builder().key("1").showname(SystemEnv.getHtmlLabelName(15537, user.getLanguage())).build());
options.add(ConditionOption.builder().key("2").showname(SystemEnv.getHtmlLabelName(15539, user.getLanguage())).build());
options.add(ConditionOption.builder().key("3").showname(SystemEnv.getHtmlLabelName(15541, user.getLanguage())).build());
options.add(ConditionOption.builder().key("7").showname(SystemEnv.getHtmlLabelName(27347, user.getLanguage())).build());
options.add(ConditionOption.builder().key("4").showname(SystemEnv.getHtmlLabelName(21904, user.getLanguage())).build());
options.add(ConditionOption.builder().key("5").showname(SystemEnv.getHtmlLabelName(15384, user.getLanguage())).build());
options.add(ConditionOption.builder().key("8").showname(SystemEnv.getHtmlLabelName(81716, user.getLanguage())).build());
options.add(ConditionOption.builder().key("6").showname(SystemEnv.getHtmlLabelName(32530, user.getLanguage())).build());
condition.setOptions(options);
Map<String, Object> selectLinkageDataMap = new HashMap<>(1);
Map<String, Object> map = new HashMap<>(2);
map.put("conditionType", "RANGEPICKER");
2023-08-15 18:10:05 +08:00
map.put("domkey", Arrays.asList(quickSearchCondition.getFieldId() + "_start", quickSearchCondition.getFieldId() + "_end"));
2023-08-15 15:30:27 +08:00
selectLinkageDataMap.put("6", map);
2023-08-15 14:09:58 +08:00
condition.setSelectLinkageDatas(selectLinkageDataMap);
2023-08-15 11:11:39 +08:00
rangeConditions.add(condition);
2023-08-15 09:07:41 +08:00
break;
case 1:
2023-08-15 11:11:39 +08:00
// 整数-浮点数
List<QuickSearchDetail> quickSearchDetailList = getQuickSearchMapper().getQuickSearchDetailByCid(quickSearchCondition.getId().toString());
2023-08-16 13:49:10 +08:00
2023-08-15 15:30:27 +08:00
if (CollectionUtils.isEmpty(quickSearchDetailList)) {
condition.setCom("未设置选项");
} else {
2023-08-16 13:49:10 +08:00
List<ConditionOption> collect = quickSearchDetailList.stream().map(item -> ConditionOption.builder().key(item.getId().toString()).showname(item.getCustomName()).build()).collect(Collectors.toList());
collect.add(0,ConditionOption.builder().key("-1").showname("全部").build());
condition.setOptions(collect);
2023-08-15 15:30:27 +08:00
}
2023-08-15 11:11:39 +08:00
rangeConditions.add(condition);
2023-08-15 09:07:41 +08:00
break;
case -1:
case -3:
case -4:
default:
2023-08-15 15:30:27 +08:00
rangeConditions.add(condition);
2023-08-15 09:07:41 +08:00
break;
}
}
apiDatas.put("rangeConditions", rangeConditions);
return apiDatas;
2023-08-09 09:39:37 +08:00
}
@Override
public Map<String, Object> getQuickSearchInfo(Map<String, Object> params) {
Map<String, Object> apiDatas = new HashMap<>(16);
//开关查询
2023-08-09 17:12:50 +08:00
QuickSearchSetting quickSearchSetting = getQuickSearchMapper().getQuickSearchSetting(user.getUID());
2023-08-09 09:39:37 +08:00
JSONObject json = new JSONObject();
2023-08-09 17:12:50 +08:00
if (null != quickSearchSetting) {
json.put("isquicksearch", Util.null2String(quickSearchSetting.getIsQuickSearch()));
json.put("isshowtype", null != quickSearchSetting.getIsShowType() ? quickSearchSetting.getIsShowType() : "1");
json.put("ishidename", null != quickSearchSetting.getIsHideName() ? quickSearchSetting.getIsHideName() : "0");
json.put("id", Util.null2String(quickSearchSetting.getId()));
2023-08-09 09:39:37 +08:00
} else {
json.put("isquicksearch", "0");
json.put("isshowtype", "0");
json.put("ishidename", "0");
json.put("id", "0");
}
apiDatas.put("setting", json);
//条件字段查询
2023-08-11 15:44:58 +08:00
List<QuickSearchCondition> quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(), LogModuleNameEnum.RESOURCE.getValue());
2023-08-09 09:39:37 +08:00
JSONArray datas = new JSONArray();
2023-08-10 11:34:08 +08:00
if (CollectionUtils.isNotEmpty(quickSearchConditionList)) {
2023-08-09 17:12:50 +08:00
for (QuickSearchCondition quickSearchCondition : quickSearchConditionList) {
JSONObject obj = new JSONObject();
String id = Util.null2String(quickSearchCondition.getId());
String fieldId = Util.null2String(quickSearchCondition.getFieldId());
String customName = Util.null2String(quickSearchCondition.getCustomName());
String type = Util.null2String(quickSearchCondition.getType());
String orderId = Util.null2String(quickSearchCondition.getOrderId());
2023-08-10 11:34:08 +08:00
String showModel = null != quickSearchCondition.getShowModel() ? quickSearchCondition.getShowModel().toString() : "0";
2023-08-09 17:12:50 +08:00
obj.put("cid", id);
obj.put("key", id);
obj.put("fieldid", fieldId);
obj.put("orifieldid", fieldId);
obj.put("customname", TextUtil.toBase64ForMultilang(customName));
obj.put("type", type);
obj.put("orderid", orderId);
obj.put("groupid", "");
obj.put("showmodel", showModel);
datas.add(obj);
}
2023-08-09 09:39:37 +08:00
}
apiDatas.put("datas", datas);
//字段下拉框查询
2023-08-15 17:30:20 +08:00
List<CusFormFieldPO> allFieldInfo = getQuickSearchMapper().getAllFieldInfo();
//List<QuickSearchOption> quickSearchOptionList = getQuickSearchMapper().getQuickSearchOptionList();
2023-08-09 09:39:37 +08:00
JSONArray options = new JSONArray();
2023-08-15 17:30:20 +08:00
if (CollectionUtils.isNotEmpty(allFieldInfo)) {
for (CusFormFieldPO formFieldPO : allFieldInfo) {
2023-08-09 17:12:50 +08:00
JSONObject obj = new JSONObject();
2023-08-15 17:30:20 +08:00
String fieldHtmlType = Util.null2String(formFieldPO.getFieldHtmlType());
String fieldId = Util.null2String(formFieldPO.getScopeId() + "_" + formFieldPO.getTableName() + "_" + formFieldPO.getFieldName());
2023-08-09 17:12:50 +08:00
// String fieldName = Util.null2String(quickSearchOption.getFieldName());
2023-08-15 17:30:20 +08:00
String type = Util.null2String(formFieldPO.getType());
int fieldLabel = Util.getIntValue(formFieldPO.getFieldLabel(), 0);
String labelName = SystemEnv.getHtmlLabelName(Util.getIntValue(formFieldPO.getFieldLabel()), user.getLanguage());
2023-08-09 17:12:50 +08:00
String fieldType = "2";
boolean isShowModel = false;
if ("1".equals(fieldHtmlType)) {
if ("1".equals(type)) {
//单行文本
2023-08-15 11:11:39 +08:00
continue;
2023-08-09 17:12:50 +08:00
} else {
//整数或浮点数
fieldType = "1";
isShowModel = true;
}
} else if ("5".equals(fieldHtmlType) && "3".equals(type)) {
//选择框单选框
fieldType = "5";
2023-08-09 09:39:37 +08:00
isShowModel = true;
2023-08-09 17:12:50 +08:00
} else if ("5".equals(fieldHtmlType) && "2".equals(type)) {
//选择框多选框
fieldType = "5";
isShowModel = true;
2023-08-15 09:07:41 +08:00
} else if ("5".equals(fieldHtmlType) && "0".equals(type)) {
2023-08-09 17:12:50 +08:00
//选择框
fieldType = "5";
isShowModel = true;
} else if ("4".equals(fieldHtmlType) && "1".equals(type)) {
//check框
fieldType = "5";
isShowModel = true;
} else if ("3".equals(fieldHtmlType)) {
switch (type) {
case "2":
//日期
fieldType = "3";
break;
case "1":
case "3":
case "5":
default:
2023-08-15 15:30:27 +08:00
continue;
2023-08-09 17:12:50 +08:00
}
2023-08-09 09:39:37 +08:00
} else {
2023-08-09 17:12:50 +08:00
continue;
2023-08-09 09:39:37 +08:00
}
2023-08-09 17:12:50 +08:00
if ("".equals(labelName)) {
labelName = SystemEnv.getHtmlLabelName(fieldLabel, user.getLanguage());
}
2023-08-09 09:39:37 +08:00
2023-08-09 17:12:50 +08:00
obj.put("key", fieldId);
obj.put("fieldid", fieldId);
obj.put("showname", labelName);
obj.put("isdetailtable", "0");
obj.put("type", fieldType);
obj.put("isShowModel", isShowModel);
options.add(obj);
}
2023-08-09 09:39:37 +08:00
}
apiDatas.put("options", options);
2023-08-09 17:12:50 +08:00
apiDatas.put("groupidOptions", new JSONArray());
2023-08-09 09:39:37 +08:00
return apiDatas;
}
@Override
public Map<String, Object> saveQuickSearchInfo(Map<String, Object> params) {
2023-08-10 11:34:08 +08:00
Map<String, Object> apiDatas = new HashMap<>(16);
String isQuickSearch = Util.null2String(params.get("isquicksearch"));
String isShowType = Util.null2String(params.get("isshowtype"));
isShowType = StringUtils.isBlank(isShowType) ? "0" : isShowType;
String isHideName = Util.null2String(params.get("ishidename"));
isHideName = StringUtils.isBlank(isHideName) ? "0" : isHideName;
String id = Util.null2String(params.get("id"));
String data = Util.null2String(params.get("data"));
JSONArray datas = JSONArray.parseArray(data);
2023-08-09 09:39:37 +08:00
//配置信息更新
2023-08-10 11:34:08 +08:00
if ("0".equals(id) || "".equals(id)) {
2023-08-09 17:12:50 +08:00
QuickSearchSetting quickSearchSetting = QuickSearchSetting.builder()
.belongTo(user.getUID())
2023-08-10 11:34:08 +08:00
.isQuickSearch(Integer.parseInt(isQuickSearch))
.isShowType(Integer.parseInt(isShowType))
.isHideName(Integer.parseInt(isHideName))
2023-08-09 17:12:50 +08:00
.updateTor(user.getUID())
.updateDate(DateUtils.getCurrentDate())
.updateTime(DateUtils.getCurrentTime())
.build();
2023-08-09 09:39:37 +08:00
//第一次修改配置
2023-08-09 17:12:50 +08:00
getQuickSearchMapper().insertQuickSearchSetting(quickSearchSetting);
2023-08-09 09:39:37 +08:00
} else {
2023-08-09 17:12:50 +08:00
QuickSearchSetting quickSearchSetting = QuickSearchSetting.builder()
2023-08-10 11:34:08 +08:00
.id(Integer.parseInt(id))
.isQuickSearch(Integer.parseInt(isQuickSearch))
.isShowType(Integer.parseInt(isShowType))
.isHideName(Integer.parseInt(isHideName))
2023-08-09 17:12:50 +08:00
.build();
getQuickSearchMapper().updateQuickSearchSetting(quickSearchSetting);
2023-08-09 09:39:37 +08:00
}
2023-08-15 09:07:41 +08:00
List<QuickSearchCondition> quickSearchConditionList = getQuickSearchMapper().getQuickSearchConditionList(user.getUID(), LogModuleNameEnum.RESOURCE.getValue());
2023-08-09 17:12:50 +08:00
List<Integer> list = quickSearchConditionList.stream().map(QuickSearchCondition::getId).collect(Collectors.toList());
2023-08-09 09:39:37 +08:00
for (int i = 0; i < datas.size(); i++) {
JSONObject obj = (JSONObject) datas.get(i);
2023-08-10 11:34:08 +08:00
String fieldId = obj.getString("fieldid");
String oriFieldId = obj.getString("orifieldid");
Integer cid = Util.getIntValue(obj.getString("cid"));
String customName = obj.getString("customname");
2023-08-09 09:39:37 +08:00
String type = obj.getString("type");
2023-08-10 11:34:08 +08:00
String orderId = obj.getString("orderid");
String showModel = obj.getString("showmodel");
2023-08-09 09:39:37 +08:00
if (cid > 0) {
2023-08-09 17:12:50 +08:00
list.remove(cid);
QuickSearchCondition quickSearchCondition = QuickSearchCondition.builder()
.belongTo(user.getUID())
2023-08-10 11:34:08 +08:00
.fieldId(fieldId)
.customName(customName)
2023-08-09 17:12:50 +08:00
.type(StringUtils.isBlank(type) ? null : Integer.parseInt(type))
2023-08-10 11:34:08 +08:00
.orderId(StringUtils.isBlank(orderId) ? null : Integer.parseInt(orderId))
.showModel(StringUtils.isBlank(showModel) ? null : Integer.parseInt(showModel))
2023-08-09 17:12:50 +08:00
.id(cid)
2023-08-11 15:44:58 +08:00
.modelId(LogModuleNameEnum.RESOURCE.getValue())
2023-08-09 17:12:50 +08:00
.build();
getQuickSearchMapper().updateQuickSearchCondition(quickSearchCondition);
2023-08-10 11:34:08 +08:00
if (!fieldId.equals(oriFieldId)) {
2023-08-09 09:39:37 +08:00
//改变了字段,将原先字段的明细删除
2023-08-09 17:12:50 +08:00
getQuickSearchMapper().deleteQuickSearchDetailByCid(cid);
2023-08-09 09:39:37 +08:00
}
} else {
2023-08-09 17:12:50 +08:00
QuickSearchCondition quickSearchCondition = QuickSearchCondition.builder()
.belongTo(user.getUID())
2023-08-10 11:34:08 +08:00
.fieldId(fieldId)
.customName(customName)
2023-08-09 17:12:50 +08:00
.type(StringUtils.isBlank(type) ? null : Integer.parseInt(type))
2023-08-10 11:34:08 +08:00
.orderId(StringUtils.isBlank(orderId) ? null : Integer.parseInt(orderId))
.showModel(StringUtils.isBlank(showModel) ? null : Integer.parseInt(showModel))
2023-08-11 15:44:58 +08:00
.modelId(LogModuleNameEnum.RESOURCE.getValue())
2023-08-09 17:12:50 +08:00
.build();
getQuickSearchMapper().insertQuickSearchCondition(quickSearchCondition);
2023-08-09 09:39:37 +08:00
}
}
2023-08-09 17:12:50 +08:00
if (CollectionUtils.isNotEmpty(list)) {
getQuickSearchMapper().deleteQuickSearchConditionByIds(list);
getQuickSearchMapper().deleteQuickSearchDetailByCids(list);
2023-08-09 09:39:37 +08:00
}
2023-08-10 11:34:08 +08:00
return apiDatas;
2023-08-09 09:39:37 +08:00
}
@Override
public Map<String, Object> getQuickSearchDetailInfo(Map<String, Object> params) {
2023-08-10 11:34:08 +08:00
Map<String, Object> apiDatas = new HashMap<>(16);
2023-08-09 09:39:37 +08:00
String cid = weaver.formmode.exttools.impexp.common.StringUtils.null2String(params.get("cid"));
//开关查询
2023-08-10 11:34:08 +08:00
List<QuickSearchDetail> quickSearchDetailList = getQuickSearchMapper().getQuickSearchDetailByCid(cid);
2023-08-09 09:39:37 +08:00
JSONArray datas = new JSONArray();
2023-08-10 11:34:08 +08:00
for (QuickSearchDetail quickSearchDetail : quickSearchDetailList) {
2023-08-09 09:39:37 +08:00
JSONObject obj = new JSONObject();
2023-08-10 11:34:08 +08:00
String id = Util.null2String(quickSearchDetail.getId());
String customName = Util.null2String(quickSearchDetail.getCustomName());
String minNum = Util.null2String(quickSearchDetail.getMinNum());
minNum = minNum.startsWith("0E") ? "0" : minNum;
String maxNum = Util.null2String(quickSearchDetail.getMaxNum());
maxNum = maxNum.startsWith("0E") ? "0" : maxNum;
String type = Util.null2String(quickSearchDetail.getType());
String orderId = Util.null2String(quickSearchDetail.getOrderId());
String fieldId = Util.null2String(quickSearchDetail.getFieldId());
String belongTo = Util.null2String(quickSearchDetail.getBelongTo());
2023-08-09 09:39:37 +08:00
obj.put("id", id);
obj.put("cid", cid);
obj.put("key", id);
2023-08-10 11:34:08 +08:00
obj.put("customname", customName);
obj.put("minnum", minNum);
obj.put("maxnum", maxNum);
2023-08-09 09:39:37 +08:00
obj.put("type", type);
2023-08-10 11:34:08 +08:00
obj.put("fieldid", fieldId);
obj.put("belongto", belongTo);
obj.put("orderid", orderId);
2023-08-09 09:39:37 +08:00
datas.add(obj);
}
2023-08-10 11:34:08 +08:00
List<QuickSearchField> quickSearchFieldList = getQuickSearchMapper().getQuickSearchFieldListByConditionId(cid);
2023-08-09 09:39:37 +08:00
int precision = 0;
2023-08-10 11:34:08 +08:00
for (QuickSearchField quickSearchField : quickSearchFieldList) {
String fieldHtmlType = quickSearchField.getFieldHtmlType();
String type = quickSearchField.getType();
String fieldDbType = quickSearchField.getFieldDbType();
if ("1".equals(fieldHtmlType) && !"1".equals(type)) {
int digitsIndex = fieldDbType.indexOf(",");
precision = Util.getIntValue(fieldDbType.substring(digitsIndex + 1, fieldDbType.length() - 1), 0);
2023-08-09 09:39:37 +08:00
}
}
2023-08-10 11:34:08 +08:00
apiDatas.put("datas", datas);
apiDatas.put("precision", precision);
return apiDatas;
2023-08-09 09:39:37 +08:00
}
@Override
public Map<String, Object> saveQuickSearchDetailInfo(Map<String, Object> params) {
2023-08-10 11:34:08 +08:00
Map<String, Object> apiDatas = new HashMap<>(16);
2023-08-09 09:39:37 +08:00
String cid = Util.null2String(params.get("cid"));
2023-08-10 11:34:08 +08:00
String data = Util.null2String(params.get("data"));
JSONArray datas = JSONArray.parseArray(data);
List<Integer> list = getQuickSearchMapper().getQuickSearchDetailByCid(cid).stream().map(QuickSearchDetail::getId).collect(Collectors.toList());
2023-08-09 09:39:37 +08:00
try {
2023-08-09 17:12:50 +08:00
for (int i = 0; i < datas.size(); i++) {
JSONObject obj = (JSONObject) datas.get(i);
2023-08-10 11:34:08 +08:00
String customName = obj.getString("customname");
String fieldId = obj.getString("fieldid");
String minNum = obj.getString("minnum");
minNum = "".equals(minNum) ? null : minNum;
String maxNum = obj.getString("maxnum");
maxNum = "".equals(maxNum) ? null : maxNum;
2023-08-09 09:39:37 +08:00
String type = obj.getString("type");
2023-08-10 11:34:08 +08:00
String orderId = obj.getString("orderid");
Integer id = Util.getIntValue(obj.getString("id"));
QuickSearchDetail quickSearchDetail = QuickSearchDetail.builder()
.cId(StringUtils.isBlank(cid) ? null : Integer.parseInt(cid))
.customName(customName)
.minNum(StringUtils.isBlank(minNum) ? null : Integer.parseInt(minNum))
.maxNum(StringUtils.isBlank(maxNum) ? null : Integer.parseInt(maxNum))
.type(StringUtils.isBlank(type) ? null : Integer.parseInt(type))
.orderId(StringUtils.isBlank(orderId) ? null : Integer.parseInt(orderId))
.fieldId(fieldId)
.belongTo(user.getUID())
.build();
2023-08-09 09:39:37 +08:00
if (id > 0) {
2023-08-10 11:34:08 +08:00
list.remove(id);
quickSearchDetail.setId(id);
getQuickSearchMapper().updateQuickSearchDetail(quickSearchDetail);
2023-08-09 09:39:37 +08:00
} else {
2023-08-10 11:34:08 +08:00
getQuickSearchMapper().insertQuickSearchDetail(quickSearchDetail);
2023-08-09 09:39:37 +08:00
}
}
2023-08-10 11:34:08 +08:00
if (CollectionUtils.isNotEmpty(list)) {
getQuickSearchMapper().deleteQuickSearchDetailByIds(list);
2023-08-09 09:39:37 +08:00
}
} catch (Exception e) {
new BaseBean().writeLog(e);
e.printStackTrace();
}
2023-08-10 11:34:08 +08:00
return apiDatas;
2023-08-09 09:39:37 +08:00
}
2023-08-15 17:30:20 +08:00
/**
* 获取人员自定义选择字段所有选择选项
*
* @param quickSearchCondition 快速搜索条件
* @return 选择字段所有选项列表
*/
private List<SearchConditionOption> getSelectOptions(QuickSearchCondition quickSearchCondition) {
try {
String fieldId = quickSearchCondition.getFieldId();
HrmFieldSearchConditionComInfo hrmFieldSearchConditionComInfo = new HrmFieldSearchConditionComInfo();
int scopeid = Integer.parseInt(fieldId.split("_")[0]);
HrmFieldManager hfm = new HrmFieldManager("HrmCustomFieldByInfoType", scopeid);
String fieldName = fieldId.substring(fieldId.lastIndexOf("_") + 1);
org.json.JSONObject hrmFieldConf = hfm.getHrmFieldConf(fieldName);
if (null == hrmFieldConf) {
return new ArrayList<>();
2023-08-09 09:39:37 +08:00
}
2023-08-15 17:30:20 +08:00
boolean baseField = hfm.isBaseField(fieldName);
HrmFieldBean hrmFieldBean = new HrmFieldBean();
hrmFieldBean.setFieldid(Util.null2String(hrmFieldConf.getString("id")));
hrmFieldBean.setFieldname(scopeid + "_" + (baseField ? "hrm" : "cus") + "_" + fieldName);
hrmFieldBean.setFieldlabel(hrmFieldConf.getString("fieldlabel"));
hrmFieldBean.setFieldhtmltype(hrmFieldConf.getString("fieldhtmltype"));
hrmFieldBean.setType(hrmFieldConf.getString("type"));
hrmFieldBean.setDmlurl(hrmFieldConf.getString("dmlurl"));
hrmFieldBean.setIssystem(baseField ? "1" : "0");
hrmFieldBean.setIsFormField(true);
hrmFieldBean.setIsQuickSearch(false);
hrmFieldBean.setIsScope(false);
if ("jobactivity".equals(fieldName)) {
// 职务282
hrmFieldBean.setType("282");
2023-08-09 09:39:37 +08:00
}
2023-08-15 17:30:20 +08:00
SearchConditionItem searchConditionItem = hrmFieldSearchConditionComInfo.getSearchConditionItem(hrmFieldBean, user);
return searchConditionItem.getOptions();
} catch (JSONException e) {
throw new RuntimeException(e);
2023-08-09 09:39:37 +08:00
}
}
}