You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
163 lines
6.6 KiB
Java
163 lines
6.6 KiB
Java
package com.engine.organization.service.impl;
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.engine.core.impl.Service;
|
|
import com.engine.organization.entity.extend.bo.ExtendGroupBO;
|
|
import com.engine.organization.entity.extend.param.ExtendTitleSaveParam;
|
|
import com.engine.organization.entity.extend.po.ExtendGroupPO;
|
|
import com.engine.organization.entity.extend.po.ExtendTitlePO;
|
|
import com.engine.organization.entity.fieldset.param.FieldTypeTreeParam;
|
|
import com.engine.organization.entity.fieldset.vo.TypeTreeVO;
|
|
import com.engine.organization.enums.ModuleTypeEnum;
|
|
import com.engine.organization.mapper.extend.ExtendGroupMapper;
|
|
import com.engine.organization.mapper.extend.ExtendInfoMapper;
|
|
import com.engine.organization.mapper.extend.ExtendTitleMapper;
|
|
import com.engine.organization.service.FieldDefinedService;
|
|
import com.engine.organization.util.OrganizationAssert;
|
|
import com.engine.organization.util.db.MapperProxyFactory;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import weaver.general.Util;
|
|
|
|
import java.util.*;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* @Author weaver_cl
|
|
* @Description:
|
|
* @Date 2022/6/13
|
|
* @Version V1.0
|
|
**/
|
|
public class FieldDefinedServiceImpl extends Service implements FieldDefinedService {
|
|
|
|
private ExtendTitleMapper getExtendTitleMapper() {
|
|
return MapperProxyFactory.getProxy(ExtendTitleMapper.class);
|
|
}
|
|
|
|
private ExtendInfoMapper getExtendInfoMapper() {
|
|
return MapperProxyFactory.getProxy(ExtendInfoMapper.class);
|
|
}
|
|
|
|
@Override
|
|
public List<TypeTreeVO> getTree(ModuleTypeEnum moduleTypeEnum) {
|
|
Integer extendType = moduleTypeEnum.getValue();
|
|
List<ExtendGroupPO> extendGroupPOS = MapperProxyFactory.getProxy(ExtendGroupMapper.class).listByType(extendType);
|
|
return ExtendGroupBO.buildTypeTree(extendGroupPOS);
|
|
}
|
|
|
|
@Override
|
|
public Map<String, Object> getTabInfo(String groupType) {
|
|
OrganizationAssert.notBlank(groupType, "分组信息有误,请确认");
|
|
Map<String, Object> datas = new HashMap<>();
|
|
Long groupId = Long.parseLong(groupType);
|
|
List<ExtendTitlePO> extendTitleList = getExtendTitleMapper().getTitlesByGroupID(groupId);
|
|
List<Map<String, Object>> tabs = new ArrayList<>();
|
|
int idx = 1;
|
|
for (ExtendTitlePO extendTitle : extendTitleList) {
|
|
Map<String, Object> tab = new HashMap<>();
|
|
tab.put("tabkey", idx++);
|
|
tab.put("title", extendTitle.getTitle());
|
|
tab.put("isShow", extendTitle.getIsShow());
|
|
tab.put("groupid", extendTitle.getGroupId());
|
|
tab.put("viewAttr", extendTitle.getGroupId() < 0 ? 1 : 2);
|
|
tab.put("editable", getExtendInfoMapper().countFieldsByGroupId(extendTitle.getId()) > 0);
|
|
tabs.add(tab);
|
|
}
|
|
datas.put("status", "1");
|
|
datas.put("tabs", tabs);
|
|
return datas;
|
|
}
|
|
|
|
@Override
|
|
public int saveFields(String data) {
|
|
if (StringUtils.isEmpty(data)) {
|
|
return 0;
|
|
}
|
|
JSONObject jsonObject = JSON.parseObject(data);
|
|
String groupType = Util.null2String(jsonObject.getString("groupType"));
|
|
String groupId = Util.null2String(jsonObject.getString("groupId"));
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public Map<String, Object> saveGroup(ExtendTitleSaveParam param) {
|
|
Map<String, Object> datas = new HashMap<>();
|
|
Long groupType = param.getGroupType();
|
|
Set<Long> lsDelGroupId = new HashSet<>();
|
|
List<ExtendTitlePO> extendTitleList = getExtendTitleMapper().getTitlesByGroupID(groupType);
|
|
extendTitleList.forEach(item -> lsDelGroupId.add(item.getId()));
|
|
String data = param.getData();
|
|
JSONObject jsonObject = JSON.parseObject(data);
|
|
Set<Long> ids = new HashSet<>();
|
|
JSONArray records = (JSONArray) jsonObject.get("records");
|
|
for (int i = 0; i < records.size(); i++) {
|
|
ExtendTitlePO extendTitle = new ExtendTitlePO();
|
|
JSONObject object = (JSONObject) records.get(i);
|
|
extendTitle.setId(object.getLong("id"));
|
|
extendTitle.setGroupId(groupType);
|
|
extendTitle.setIsShow(object.getString("isShow"));
|
|
extendTitle.setTitle(object.getString("groupName"));
|
|
extendTitle.setShowOrder(i + 1);
|
|
|
|
if (null != extendTitle.getId()) {
|
|
lsDelGroupId.remove(extendTitle.getId());
|
|
}
|
|
|
|
if (null == extendTitle.getId()) {
|
|
extendTitle.setCreator(user.getUID());
|
|
extendTitle.setCreateTime(new Date());
|
|
extendTitle.setDeleteType(0);
|
|
getExtendTitleMapper().insertIgnoreNull(extendTitle);
|
|
} else {
|
|
extendTitle.setUpdateTime(new Date());
|
|
getExtendTitleMapper().updateExtendTitle(extendTitle);
|
|
}
|
|
ids.add(extendTitle.getId());
|
|
}
|
|
if (CollectionUtils.isNotEmpty(lsDelGroupId)) {
|
|
getExtendTitleMapper().deleteExtendTitleByIds(lsDelGroupId);
|
|
}
|
|
datas.put("groupid", StringUtils.join(ids, ","));
|
|
datas.put("status", "1");
|
|
return datas;
|
|
}
|
|
|
|
@Override
|
|
public Map<String, Object> saveTitle(ExtendTitleSaveParam param) {
|
|
Map<String, Object> datas = new HashMap<>();
|
|
|
|
List<ExtendTitlePO> titlesByGroupID = getExtendTitleMapper().getTitlesByGroupID(param.getGroupType());
|
|
ExtendTitlePO extendTitlePO = titlesByGroupID.stream().max(Comparator.comparing(ExtendTitlePO::getShowOrder)).get();
|
|
Set<Long> ids = titlesByGroupID.stream().map(ExtendTitlePO::getId).collect(Collectors.toSet());
|
|
ExtendTitlePO extendTitle = new ExtendTitlePO();
|
|
extendTitle.setGroupId(param.getGroupType());
|
|
extendTitle.setIsShow(param.getIsShow());
|
|
extendTitle.setTitle(param.getGroupName());
|
|
extendTitle.setShowOrder(null == extendTitlePO ? 0 : extendTitlePO.getShowOrder() + 1);
|
|
extendTitle.setCreator(user.getUID());
|
|
extendTitle.setCreateTime(new Date());
|
|
extendTitle.setDeleteType(0);
|
|
getExtendTitleMapper().insertIgnoreNull(extendTitle);
|
|
ids.add(extendTitle.getId());
|
|
|
|
datas.put("groupid", StringUtils.join(ids, ","));
|
|
datas.put("status", "1");
|
|
return datas;
|
|
}
|
|
|
|
public void addTree(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) {
|
|
buildExtentGroup(moduleTypeEnum,fieldTypeTreeParam);
|
|
}
|
|
|
|
private void buildExtentGroup(ModuleTypeEnum moduleTypeEnum, FieldTypeTreeParam fieldTypeTreeParam) {
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|