Commit fae62f79 authored by chenhao's avatar chenhao

提交维保人员excle导入的功能代码 by 陈浩

没有测试,导出功能还没写
parent 726006bb
......@@ -4,10 +4,9 @@ import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.common.api.dto.MaintenanceCompanyDto;
import com.yeejoin.amos.boot.module.common.api.dto.MaintenanceDepartmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.MaintenancePersonDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgMenuDto;
import com.yeejoin.amos.boot.module.common.api.dto.MaintenancePersonExcleDto;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
......@@ -56,7 +55,7 @@ public interface IMaintenanceCompanyService {
* @param MaintenanceCompany
* @return
*/
public boolean saveDepartmentDetail(MaintenanceCompany maintenanceCompany, long sequenceNbr) ;
public boolean saveDepartmentDetail(MaintenanceCompany maintenanceCompany, long sequenceNbr);
/**
* 检查当前的员工编号是否已经存在
......@@ -76,7 +75,8 @@ public interface IMaintenanceCompanyService {
/**
* 查询分页展示的维保人员/单位/部门列表信息
* @param Map<String, Object>
*
* @param Map<String, Object>
* @param current 页码起始值
* @param size 行数
* @param informationCard 是否显示维保单位人员信息卡数据项
......@@ -84,53 +84,78 @@ public interface IMaintenanceCompanyService {
* @param maintenanceType 类型(COMPANY单位,PERSON人员,DEPARTMENT部门)
* @return
*/
IPage<Map<String, Object>> getPageMaintenanceList( Map<String, Object> paramsMap);
/**根据主键查询对应的信息
IPage<Map<String, Object>> getPageMaintenanceList(Map<String, Object> paramsMap);
/**
* 根据主键查询对应的信息
*
* @param sequenceNbr 主键
* @return
*/
Map<String, Object> findBySequenceNbr(Long sequenceNbr,String maintenanceType );
Map<String, Object> findBySequenceNbr(Long sequenceNbr, String maintenanceType);
/**
* 修改维保单位
*
* @param MaintenanceCompany
* @return
*/
boolean updateMaintenanceCompanyDetail(MaintenanceCompany model,AgencyUserModel userInfo);
boolean updateMaintenanceCompanyDetail(MaintenanceCompany model, AgencyUserModel userInfo);
/**
* 修改维保部门
*
* @param MaintenanceCompany
* @return
*/
public boolean updateMaintenancDepartmentDetail(MaintenanceCompany model,AgencyUserModel userInfo);
public boolean updateMaintenancDepartmentDetail(MaintenanceCompany model, AgencyUserModel userInfo);
/**
* 修改维保人员
*
* @param MaintenanceCompany
* @return
*/
public boolean updateMaintenancePersonDetail(MaintenanceCompany model,AgencyUserModel userInfo);
/**
* 查询所有的单位-部门树
* @return
*/
public boolean updateMaintenancePersonDetail(MaintenanceCompany model, AgencyUserModel userInfo);
/**
* 查询所有的单位-部门树
*
* @return
*/
public List<MaintenanceCompany> getCompanyAndDepartmentTree();
/**
* 查询制定公司的部门-人树
* @param sequenceNbr
* @return
*/
/**
* 查询制定公司的部门-人树
*
* @param sequenceNbr
* @return
*/
public List<MaintenanceCompany> getDepartmentAndPersonTree(long sequenceNbr);
/**
* 查询当前单位下所有的部门基本信息--下拉列表
* @param sequenceNbr
* @return
*/
/**
* 查询当前单位下所有的部门基本信息--下拉列表
*
* @param sequenceNbr
* @return
*/
public List<MaintenanceCompany> getDepartmentList(long sequenceNbr);
/**
* 维保单位人员EXCLE导入时entity的转换方法
*
* @param MaintenancePersonExcleDto
* @param List<DynamicFormColumn>
* @return MaintenanceCompany
*/
List<DynamicFormInstance> maintenancePersonExcleDtoToDynamicFormInstanceList(List<DynamicFormColumn> columns,
MaintenancePersonExcleDto maintenancePersonExcleDto, long instanceId, List<DynamicFormInstance> list);
/**
* 维保单位人员EXCLE导入时分別往动态表单和维保单位主表中插入数据
* @param companyList
* @param list
* @return
*/
public boolean saveMaintenanceCompanyBatch(List<MaintenanceCompany> companyList, List<DynamicFormInstance> list);
}
......@@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -26,7 +27,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.MaintenanceCompanyDto;
import com.yeejoin.amos.boot.module.common.api.dto.MaintenancePersonExcleDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.MaintenanceCompany;
import com.yeejoin.amos.boot.module.common.api.enums.OrgPersonEnum;
......@@ -632,4 +635,53 @@ public class MaintenanceCompanyServiceImpl
resultMap.put(key, paramsMap.get(key) != null ? paramsMap.get(key) : "");
}
}
@Override
public List<DynamicFormInstance> maintenancePersonExcleDtoToDynamicFormInstanceList(List<DynamicFormColumn> columns,
MaintenancePersonExcleDto maintenancePersonExcleDto, long instanceId, List<DynamicFormInstance> list) {
Map<String, Object> maintenancePersonExcleDtoMap = Bean.BeantoMap(maintenancePersonExcleDto);
// 填充动态表单的属性
for (Entry<String, Object> mapDetail : maintenancePersonExcleDtoMap.entrySet()) {
DynamicFormInstance dynamicFormInstance = new DynamicFormInstance();
columns.stream().forEach(item -> {
if (mapDetail.getKey().equals(item.getFieldCode())) {
Bean.copyExistPropertis(item, dynamicFormInstance);
dynamicFormInstance.setAppKey(RequestContext.getAppKey());
dynamicFormInstance.setInstanceId(instanceId);
dynamicFormInstance.setSequenceNbr(sequence.nextId());
dynamicFormInstance.setFormColumnId(item.getSequenceNbr());
dynamicFormInstance.setFieldValue(maintenancePersonExcleDtoMap.get(item.getFieldCode()) != null
? maintenancePersonExcleDtoMap.get(item.getFieldCode()).toString()
: "");
if (mapDetail.getValue().toString().contains("@")) {
String[] mapDetailArray = mapDetail.getValue().toString().split("@");
dynamicFormInstance.setFieldValue(mapDetailArray[0]);
if (mapDetailArray.length > 1) {
dynamicFormInstance.setFieldValueLabel(mapDetailArray[1]);
}
}
}
});
if (dynamicFormInstance != null && dynamicFormInstance.getSequenceNbr().longValue() > 0) {
list.add(dynamicFormInstance);
}
}
return list;
}
public boolean saveDynamicFormInstanceBatch(List<DynamicFormInstance> list) {
dynamicFormInstanceService.saveBatch(list);
return false;
}
@Transactional
public boolean saveMaintenanceCompanyBatch(List<MaintenanceCompany> companyList, List<DynamicFormInstance> list) {
saveDynamicFormInstanceBatch(list);
this.saveBatch(companyList);
return false;
}
}
\ No newline at end of file
......@@ -33,6 +33,8 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import com.alibaba.excel.support.ExcelTypeEnum;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Sequence;
import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.feign.AmosFeignService;
......@@ -50,10 +52,10 @@ import com.yeejoin.amos.boot.module.common.api.dto.FireTeamDto;
import com.yeejoin.amos.boot.module.common.api.dto.FirefightersDto;
import com.yeejoin.amos.boot.module.common.api.dto.FirefightersExcelDto;
import com.yeejoin.amos.boot.module.common.api.dto.FirefightersInfoDto;
import com.yeejoin.amos.boot.module.common.api.dto.MaintenancePersonDto;
import com.yeejoin.amos.boot.module.common.api.dto.MaintenancePersonExcleDto;
import com.yeejoin.amos.boot.module.common.api.dto.OrgUsrDto;
import com.yeejoin.amos.boot.module.common.api.dto.WaterResourceDto;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.entity.FireChemical;
import com.yeejoin.amos.boot.module.common.api.entity.FireExperts;
......@@ -70,6 +72,7 @@ import com.yeejoin.amos.boot.module.common.biz.service.impl.DutyCommonServiceImp
import com.yeejoin.amos.boot.module.common.biz.service.impl.DutyPersonServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.DutyPersonShiftServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.DutyShiftServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.DynamicFormColumnServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FireChemicalServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FireExpertsServiceImpl;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FireStationServiceImpl;
......@@ -135,9 +138,17 @@ public class ExcelController extends BaseController {
@Autowired
IMaintenanceCompanyService maintenanceCompanyService;
@Autowired
DynamicFormColumnServiceImpl dynamicFormColumnService;
@Autowired
Sequence sequence;
private static final String NOT_DUTY = "休班";
private static final String PERSON = "PERSON";
private static final String MAINTENANCE_PERSON = "maintenancePerson";
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
......@@ -254,25 +265,29 @@ public class ExcelController extends BaseController {
private void excelImportMaintenancePerson(MultipartFile multipartFile, String wbry) throws Exception {
List<MaintenancePersonExcleDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile,
MaintenancePersonExcleDto.class, 1);
excelDtoList.forEach(
item -> {
MaintenanceCompany maintenancePersonDto = new MaintenanceCompany();
List<DynamicFormInstance> dynamicFormValueList =new ArrayList<DynamicFormInstance>();
maintenancePersonDto = Bean.toPo(item, maintenancePersonDto);
maintenancePersonDto.setType(PERSON);
if (maintenancePersonDto.getParentId() != null) {
Long getParentId = Long.valueOf(item.getParentId().split("@")[1]);
maintenancePersonDto.setParentId(getParentId);
}
if(maintenanceCompanyService.checkPersonCodeExists(item.getCode())) {
maintenancePersonDto.setCode(item.getCode());
}else {
maintenancePersonDto.setCode(null);
}
maintenanceCompanyService.savePersonDetail(maintenancePersonDto, maintenancePersonDto.getParentId());
}
);
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, MAINTENANCE_PERSON));
List<MaintenanceCompany> maintenanceCompanyList = new ArrayList<MaintenanceCompany>();
List<DynamicFormInstance> dynamicFormInstanceList = new ArrayList<DynamicFormInstance>();
for (MaintenancePersonExcleDto maintenancePersonExcleDto : excelDtoList) {
Long instanceId = sequence.nextId();
// 先填充主表的属性
MaintenanceCompany maintenanceCompany = new MaintenanceCompany();
maintenanceCompany = Bean.toPo(maintenancePersonExcleDto, maintenanceCompany);
maintenanceCompany.setType(PERSON);
if (maintenanceCompany.getParentId() != null) {
long getParentId = Long.valueOf(maintenancePersonExcleDto.getParentId().split("@")[1]);
maintenanceCompany.setParentId(getParentId);
}
if (maintenanceCompanyService.checkPersonCodeExists(maintenancePersonExcleDto.getCode())) {
maintenanceCompany.setCode(maintenancePersonExcleDto.getCode());
} else {
maintenanceCompany.setCode(null);
}
maintenanceCompany.setInstanceId(instanceId);
maintenanceCompanyList.add(maintenanceCompany);
maintenanceCompanyService.maintenancePersonExcleDtoToDynamicFormInstanceList(columns,maintenancePersonExcleDto, instanceId, dynamicFormInstanceList);
}
maintenanceCompanyService.saveMaintenanceCompanyBatch(maintenanceCompanyList,dynamicFormInstanceList);
}
private void excelImportDutyPerson(MultipartFile multipartFile, String dutyType) throws Exception {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment