Commit 536ac158 authored by KeYong's avatar KeYong

Merge remote-tracking branch 'origin/develop_dl_plan6' into develop_dl_plan6

parents 61f5956a e75446c5
......@@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint;
......@@ -12,7 +13,9 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
import java.util.List;
/**
......@@ -59,6 +62,10 @@ public class OrgUsrExcelDto extends BaseDto {
private String parentId;
@ExcelIgnore
@ApiModelProperty(value = "机构名称")
private String parentName;
@ExcelIgnore
@ApiModelProperty(value = "扩展属性1")
private String orgExpandAttr1;
@ExcelIgnore
......@@ -94,11 +101,11 @@ public class OrgUsrExcelDto extends BaseDto {
@ExcelProperty(value = "审核周期", index = 3)
@ExplicitConstraint(type = "SHZQ", indexNum =3, sourceClass = CommonExplicitConstraint.class) //动态下拉内
private String auditCycle; //审核周期
@ExcelProperty(value = "证件号码", index = 4)
private String certificatesNumber;// 证件号码
@ExcelProperty(value = "证件类型", index = 5)
@ExplicitConstraint(type = "RYZJLX", indexNum =5, sourceClass = CommonExplicitConstraint.class) //动态下拉内
@ExcelProperty(value = "证件类型", index = 4)
@ExplicitConstraint(type = "RYZJLX", indexNum =4, sourceClass = CommonExplicitConstraint.class) //动态下拉内
private String certificatesTypeCode; //证件类型
@ExcelProperty(value = "证件号码", index = 5)
private String certificatesNumber;// 证件号码
@ExcelProperty(value = "持证类别", index = 6)
@ExplicitConstraint(type = "CZLB", indexNum =6, sourceClass = CommonExplicitConstraint.class) //动态下拉内
private String certificateType; //持证类别
......@@ -113,19 +120,137 @@ public class OrgUsrExcelDto extends BaseDto {
private String internalPositionCode; //消防管理组织机构内部职务
@ExcelProperty(value = "员工编号", index = 10)
private String personNumber; //员工编号
@ExcelProperty(value = "岗位类型", index = 11)
@ExplicitConstraint(type = "GWMC", indexNum =11, sourceClass = CommonExplicitConstraint.class) //动态下拉内
private String positionType; //岗位类型
@ExcelProperty(value = "是否进行安全培训", index = 12)
@ExplicitConstraint(type = "AQPX", indexNum =12, sourceClass = CommonExplicitConstraint.class) //动态下拉内
private String safetyTraining; //是否进行安全培训
@ExcelProperty(value = "人员状态", index = 13)
@ExplicitConstraint(type = "RYZT", indexNum =13, sourceClass = CommonExplicitConstraint.class) //动态下拉内
private String stateCode; //人员状态
@ExcelProperty(value = "联系电话", index = 14)
private String telephone; //联系电话
@ExcelProperty(value = "人员类型", index = 15)
@ExplicitConstraint(type = "DWRYLX", indexNum =15, sourceClass = CommonExplicitConstraint.class) //动态下拉内
private String peopleType; //人员类型
@ExplicitConstraint(indexNum = 16, sourceClass = CommonExplicitConstraint.class, method = "getNations") //固定下拉内容
@ExcelProperty(value = "民族", index = 16)
@ApiModelProperty(value = "民族")
private String nation;
@ExcelProperty(value = "出生日期", index = 17)
@ApiModelProperty(value = "出生日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date birthdayTime;
@ExplicitConstraint(indexNum = 18, sourceClass = CommonExplicitConstraint.class, method = "getMaritalStatus") //固定下拉内容
@ExcelProperty(value = "婚姻状况", index = 18)
@ApiModelProperty(value = "婚姻状况")
private String maritalStatus;
@ExplicitConstraint(indexNum = 19, sourceClass = CommonExplicitConstraint.class,method="getCitys") //动态下拉内容
@ExcelProperty(value = "户籍所在地", index = 19)
@ApiModelProperty(value = "籍贯/户口所在地的值")
private String nativePlace;
@ExcelProperty(value = "籍贯/户口所在地详细地址", index = 20)
@ApiModelProperty(value = "籍贯/户口所在地详细地址")
private String nativePlaceVal;
@ExplicitConstraint(indexNum = 21, sourceClass = CommonExplicitConstraint.class, method = "getPoliticalOutlook") //固定下拉内容
@ExcelProperty(value = "政治面貌", index = 21)
@ApiModelProperty(value = "政治面貌代码")
private String politicalOutlook;
@ExplicitConstraint(indexNum = 22, sourceClass = CommonExplicitConstraint.class,method="getCitys") //动态下拉内容// BUG 2760 修改消防人员导出模板和 导入问题 bykongfm
@ExcelProperty(value = "现居住地", index = 22)
@ApiModelProperty(value = "现居住地")
private String residenceDetails;
@ExcelProperty(value = "现居住地详细地址", index = 23)
@ApiModelProperty(value = "现居住地详细地址")
private String residenceDetailVal;
@ExcelProperty(value = "住宿情况", index = 24)
@ApiModelProperty(value = "住宿情况")
private String airportAccommodation;
@ExcelProperty(value = "紧急联系人", index = 25)
@ApiModelProperty(value = "紧急联系人")
private String emergencyContact;
@ExplicitConstraint(type = "RJGX", indexNum = 26, sourceClass = CommonExplicitConstraint.class) //动态下拉内容
@ExcelProperty(value = "与紧急联系人关系", index = 26)
@ApiModelProperty(value = "紧急联系人与本人所属关系")
private String relationship;
@ExcelProperty(value = "紧急联系人电话", index = 27)
@ApiModelProperty(value = "紧急联系人电话")
private String emergencyContactPhone;
@ApiModelProperty(value = "员工层级")
@ExcelProperty(value = "员工层级", index = 28)
@ExplicitConstraint(type = "YGCJ", indexNum = 28, sourceClass = CommonExplicitConstraint.class) //动态下拉内容
private String employeeHierarchy;
@ApiModelProperty(value = "岗位资质")
@ExplicitConstraint(type = "GWZZ", indexNum = 29, sourceClass = CommonExplicitConstraint.class) //动态下拉内容
@ExcelProperty(value = "岗位资质", index = 29)
private String postQualification;
/*************************学历教育***********************/
@ApiModelProperty(value = "第一学历")
@ExplicitConstraint(type = "XLLX", indexNum = 30, sourceClass = CommonExplicitConstraint.class) //动态下拉内容
@ExcelProperty(value = "第一学历", index = 30)
private String firstDegree;
@ApiModelProperty(value = "最高学历")
@ExplicitConstraint(type = "XLLX", indexNum = 31, sourceClass = CommonExplicitConstraint.class) //动态下拉内容
@ExcelProperty(value = "最高学历", index = 31)
private String highestEducation;
@ApiModelProperty(value = "学位")
@ExplicitConstraint(type = "XWLX", indexNum = 32, sourceClass = CommonExplicitConstraint.class) //动态下拉内容
@ExcelProperty(value = "学位", index = 32)
private String academicDegree;
@ApiModelProperty(value = "毕业院校")
@ExcelProperty(value = "毕业院校", index = 33)
private String school;
@ApiModelProperty(value = "毕业专业名称")
@ExcelProperty(value = "毕业专业名称", index = 34)
private String professionalName;
/*************************工作履历岗***********************/
@ApiModelProperty(value = "参加工作时间")
@ExcelProperty(value = "参加工作时间", index = 35)
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date workingHours;
@ApiModelProperty(value = "参加消防部门工作时间")
@ExcelProperty(value = "参加消防部门工作时间", index = 36)
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date fireWorkingHours;
@ExcelIgnore
@ApiModelProperty(value = "单位人员id")
private String orgUsrId;
@ExcelIgnore
@ApiModelProperty(value = "消防人员id")
private Long firefightersId;
......
......@@ -116,14 +116,14 @@ public class OrgPersonController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "更新人员数据", notes = "更新人员数据")
public ResponseModel<?> updateByIdOrgUsr(HttpServletRequest request, @RequestBody OrgPersonDto OrgPersonVo,
public ResponseModel<?> updateByIdOrgUsr(HttpServletRequest request, @RequestBody OrgPersonDto orgPersonDto,
@PathVariable Long id) throws Exception {
OrgPersonVo.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
orgPersonDto.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
/*同步修改关联账号用户名 chenzhao*/
AgencyUserModel amosUser = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult();
OrgPersonVo.setAmosOrgCode(amosUser.getRealName());
AgencyUserModel amosUser = Privilege.agencyUserClient.queryByUserId(orgPersonDto.getAmosOrgId()).getResult();
orgPersonDto.setAmosOrgCode(amosUser.getRealName());
return ResponseHelper.buildResponse( iOrgUsrService.updateByIdOrgPerson(OrgPersonVo, id));
return ResponseHelper.buildResponse( iOrgUsrService.updateByIdOrgPerson(orgPersonDto, id));
}
......
......@@ -233,7 +233,7 @@ public class KeySiteServiceImpl extends BaseService<KeySiteDto, KeySite, KeySite
OrgPersonEnum.公司.getKey() + "," + OrgPersonEnum.部门.getKey(),
reginParams.getPersonIdentity().getBizOrgCode());
List<KeySite> keySiteList = this.list(new LambdaQueryWrapper<KeySite>().eq(BaseEntity::getIsDelete, false));
comDeptList = comDeptList.stream().map(c -> c.setTotal(keySiteList.stream()
comDeptList = comDeptList.stream().filter(u->StringUtils.isNotEmpty(u.getBizOrgCode())).map(c -> c.setTotal(keySiteList.stream()
.filter(k -> StringUtils.isNotBlank(k.getBizOrgCode()) && k.getBizOrgCode().contains(c.getBizOrgCode()))
.count())).collect(Collectors.toList());
List<OrgMenuDto> menuList = comDeptList.stream().map(o -> {
......@@ -242,10 +242,9 @@ public class KeySiteServiceImpl extends BaseService<KeySiteDto, KeySite, KeySite
* + o.getTotal() + ")", ObjectUtils.isEmpty(o.getParentId()) ? 0L :
* Long.valueOf(o.getParentId()), o.getBizOrgType(), false, o.getBizOrgCode());
*/
OrgMenuDto menu = new OrgMenuDto(o.getSequenceNbr(), o.getBizOrgName(),
ObjectUtils.isEmpty(o.getParentId()) ? 0L : Long.valueOf(o.getParentId()), o.getBizOrgType(), false,
return new OrgMenuDto(o.getSequenceNbr(), o.getBizOrgName(),
ObjectUtils.isEmpty(o.getParentId()) ? 0L : Long.parseLong(o.getParentId()), o.getBizOrgType(), false,
o.getBizOrgCode());
return menu;
}).collect(Collectors.toList());
return buildTreeParallel(menuList);
}
......
......@@ -113,7 +113,7 @@ public class MaintenanceCompanyServiceImpl
maintenanceCompany.setType(maintenanceCompany.getType().toUpperCase());
maintenanceCompany.setIsDelete(false);
this.save(maintenanceCompany);
if (maintenanceCompany.getAttachments().isEmpty()) {
if (!maintenanceCompany.getAttachments().isEmpty()) {
sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments());
}
return maintenanceCompany;
......@@ -148,7 +148,7 @@ public class MaintenanceCompanyServiceImpl
maintenanceCompany.setParentId(parentId);
maintenanceCompany.setIsDelete(false);
this.save(maintenanceCompany);
if (maintenanceCompany.getAttachments().isEmpty()) {
if (!maintenanceCompany.getAttachments().isEmpty()) {
sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments());
}
return maintenanceCompany;
......@@ -182,7 +182,7 @@ public class MaintenanceCompanyServiceImpl
maintenanceCompany.setParentId(parentId);
maintenanceCompany.setIsDelete(false);
this.save(maintenanceCompany);
if (maintenanceCompany.getAttachments().isEmpty()) {
if (!maintenanceCompany.getAttachments().isEmpty()) {
sourceFileService.saveAttachments(maintenanceCompany.getSequenceNbr(), maintenanceCompany.getAttachments());
}
return maintenanceCompany;
......
......@@ -612,15 +612,17 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
String chargePersonId = iOrgUsrService.getIdNumberByAmosId(t.get("amosOrgId").toString());
t.put("chargePersonId", chargePersonId);
if (!ObjectUtils.isEmpty(t.get("state"))) {
DataDictionary gwmc = dataDictionaryService.getByCode(t.get("state").toString(), "RYZT");
if (!ObjectUtils.isEmpty(gwmc)) {
t.put("stateName", gwmc.getName());
}
}
} else {
t.put("chargePersonId", null);
}
if (!ObjectUtils.isEmpty(t.get("state"))) {
DataDictionary gwmc = dataDictionaryService.getByCode(t.get("state").toString(), "RYZT");
if (!ObjectUtils.isEmpty(gwmc)) {
t.put("stateName", gwmc.getName());
} else {
t.put("stateName", t.get("state"));
}
}
});
/* Bug2652 根据名字和工号模糊查询失效 已添加模糊匹配 2021-09-01 陈召 结束 */
......@@ -667,15 +669,14 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
@Override
public void saveOrgUsr(OrgUsr orgUsr, OrgUsr oriOrgUsr) throws Exception {
public void saveOrgUsr(OrgUsr orgUsr, OrgUsr oldOrgUsr) throws Exception {
if (oriOrgUsr.getParentId() != oriOrgUsr.getParentId()) {
if (!orgUsr.getParentId().equals(oldOrgUsr.getParentId())) {
OrgUsr parent = getById(orgUsr.getParentId());
if (parent != null && !ObjectUtils.isEmpty(parent.getBizOrgCode())) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
updateChildOrgCode(oriOrgUsr.getBizOrgCode(), orgUsr.getBizOrgCode());
orgUsr.setParentId(oriOrgUsr.getParentId());
updateChildOrgCode(oldOrgUsr.getBizOrgCode(), orgUsr.getBizOrgCode());
}
AgencyUserModel me = Privilege.agencyUserClient.getme().getResult();
orgUsr.setRecDate(new Date());
......@@ -817,7 +818,11 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
FirefightersPost firefightersPost = iFirefightersPostService.getOne(queryWrapperf);
if (!ObjectUtils.isEmpty(result.get("stateCode"))) {
DataDictionary gwmc = dataDictionaryService.getByCode(result.get("stateCode").toString(), "RYZT");
result.put("state", gwmc.getName());
if (!ObjectUtils.isEmpty(gwmc)) {
result.put("state", gwmc.getName());
} else {
result.put("state", result.get("stateCode"));
}
}
if (!ObjectUtils.isEmpty(firefightersPost)) {
result.put("fireManagementPostCode",firefightersPost.getFireManagementPost());
......@@ -917,7 +922,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
return saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.getDynamicFormValue());
}
public void saveOrgPersonExcel(OrgUsrExcelDto OrgPersonVo) throws Exception {
public OrgUsrDto saveOrgPersonExcel(OrgUsrExcelDto OrgPersonVo) throws Exception {
OrgUsr orgUsr = new OrgUsr();
BeanUtils.copyProperties(OrgPersonVo, orgUsr);
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
......@@ -935,7 +940,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
OrgPersonVo.setAmosOrgCode(user.getRealName());
}
saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.getDynamicFormValue());
return saveOrgUsrDynamicFormInstance(orgUsr, OrgPersonVo.getDynamicFormValue());
}
@Transactional(rollbackFor = Exception.class)
......@@ -1077,44 +1082,45 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
}
@Override
public OrgPersonDto updateByIdOrgPerson(OrgPersonDto OrgPersonVo, Long id) throws Exception {
public OrgPersonDto updateByIdOrgPerson(OrgPersonDto orgPersonDto, Long id) throws Exception {
try {
updatePersonNumber(id, OrgPersonVo);
updatePersonNumber(id, orgPersonDto);
} catch (Exception e) {
logger.info("同步修改培训计划中的人员编号:---------------" + id);
}
// 修改人员信息
OrgUsr orgUsr = new OrgUsr();
OrgUsr oriOrgUsr = getById(id);
BeanUtils.copyProperties(OrgPersonVo, orgUsr);
OrgUsr oldOrgUsr = getById(id);
BeanUtils.copyProperties(orgPersonDto, orgUsr);
/*
* Bug 2647 编辑用户所属单位后按单位筛选人员结果错误 增加了 638 639 两行代码 根据修改的部门调整部门code 2021-09-03 陈召
* 开始
*/
OrgUsr parent = getById(OrgPersonVo.getParentId());
if (parent != null) {
orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
}
// 下面saveOrgUsr有处理逻辑,这段代码多余
// OrgUsr parent = getById(OrgPersonVo.getParentId());
// if (parent != null) {
// orgUsr.setBizOrgCode(parent.getBizOrgCode() + getOrgCodeStr());
// }
/*
* Bug 2647 编辑用户所属单位后按单位筛选人员结果错误 增加了 638 639 两行代码 根据修改的部门调整部门code 2021-09-03 陈召
* 结束
*/
orgUsr.setSequenceNbr(id);
if (!ObjectUtils.isEmpty(OrgPersonVo.getAmosOrgId())) {
AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(OrgPersonVo.getAmosOrgId()).getResult();
// oriOrgUsr.setAmosOrgCode(user.getRealName()); 去掉AmosOrgCode by litw
if (!ObjectUtils.isEmpty(orgPersonDto.getAmosOrgId())) {
AgencyUserModel user = Privilege.agencyUserClient.queryByUserId(orgPersonDto.getAmosOrgId()).getResult();
// oldOrgUsr.setAmosOrgCode(user.getRealName()); 去掉AmosOrgCode by litw
// 2021年9月10日
oriOrgUsr.setAmosOrgId(user.getUserId());
oldOrgUsr.setAmosOrgId(user.getUserId());
// orgUsr.setAmosOrgCode(user.getRealName()); 去掉AmosOrgCode by litw 2021年9月10日
orgUsr.setAmosOrgId(user.getUserId());
}
saveOrgUsr(orgUsr, oriOrgUsr);
saveOrgUsr(orgUsr, oldOrgUsr);
// 保存动态表单数据
updateDynamicFormInstance(orgUsr.getSequenceNbr(), OrgPersonVo.getDynamicFormValue());
updateDynamicFormInstance(orgUsr.getSequenceNbr(), orgPersonDto.getDynamicFormValue());
if (orgUsr.getBizOrgCode() != null) {
OrgPersonVo.setBizOrgCode(orgUsr.getBizOrgCode());
orgPersonDto.setBizOrgCode(orgUsr.getBizOrgCode());
}
return OrgPersonVo;
return orgPersonDto;
}
void updatePersonNumber(Long id, OrgPersonDto OrgPersonVo) {
......@@ -2789,7 +2795,13 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
public OrgUsr peopleSaveOrgUsr(PeopleBasicInfoDto peopleBasicInfoDto) {
OrgUsr orgUsr = new OrgUsr();
orgUsr.setBizOrgType(CommonConstant.BIZ_ORG_TYPE_PERSON);
orgUsr.setBizOrgCode(peopleBasicInfoDto.getBizOrgCode());
if (ValidationUtil.isEmpty(peopleBasicInfoDto.getSequenceNbr())) { // 新增
// cb_org_user表biz_org_code表示该资源自己的编码,同一单位下唯一。只用父单位bizOrgCode会引起bug6259,遂改为父单位bizOrgCode + getOrgCodeStr()
orgUsr.setBizOrgCode(peopleBasicInfoDto.getBizOrgCode() + getOrgCodeStr());
} else { // 编辑
OrgUsr o = getById(peopleBasicInfoDto.getSequenceNbr());
orgUsr.setBizOrgCode(o.getBizOrgCode());
}
orgUsr.setAmosOrgId(peopleBasicInfoDto.getAmosUserId());
orgUsr.setAmosOrgCode(peopleBasicInfoDto.getAmosName());
orgUsr.setBizOrgName(peopleBasicInfoDto.getName());
......
......@@ -126,7 +126,7 @@ public class ExcelController extends BaseController {
return ResponseHelper.buildResponse(uuidString);
} catch (RuntimeException e) {
e.printStackTrace();
throw new BadRequest("文件格式不正确或excel 模板不匹配"); // BUG 2821 by litw 2021年9月16日
throw new BadRequest(e.getMessage());
} catch (Exception e) {
throw new BadRequest("文件格式不正确或excel 模板不匹配!");
}
......
......@@ -308,9 +308,16 @@ public class AlertCalledServiceImpl extends BaseService<AlertCalledDto, AlertCal
List<FormValue> formValue = new ArrayList<FormValue>();
if (list != null && list.size() > 0) {
for (AlertFormValue alertFormValue : list) {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(), "text",
alertFormValue.getFieldValue(), alertFormValue.getBlock());
formValue.add(value);
if(alertFormValue.getFieldCode().equals("flightNumber")){
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(), "text",
alertFormValue.getFieldValueCode(), alertFormValue.getBlock());
formValue.add(value);
}else {
FormValue value = new FormValue(alertFormValue.getFieldCode(), alertFormValue.getFieldName(), "text",
alertFormValue.getFieldValue(), alertFormValue.getBlock());
formValue.add(value);
}
}
}
AlertCalledFormDto alertCalledFormVo = new AlertCalledFormDto(alertCalled, formValue);
......
package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartFile;
import org.typroject.tyboot.core.foundation.context.RequestContext;
......@@ -129,7 +129,7 @@ import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
*/
@Service
public class ExcelServiceImpl {
private final Logger logger = LoggerFactory.getLogger(OrgUsrServiceImpl.class);
private static final String NOT_DUTY = "休班";
private static final String PERSON = "PERSON";
private static final String MAINTENANCE_PERSON = "maintenancePerson";
......@@ -461,7 +461,8 @@ public class ExcelServiceImpl {
excelImportKeySite(multipartFile);
break;
case "JCDWRY":
excelImportOrgUsrExcelDto(multipartFile);
// excelImportOrgUsrExcelDto(multipartFile);
excelImportOrgUsrExcelDtoNew(multipartFile);
break;
case "LDDW":
excelImportLinkageUnitZhDto(multipartFile);
......@@ -713,6 +714,253 @@ public class ExcelServiceImpl {
}
private void excelImportOrgUsrExcelDtoNew(MultipartFile multipartFile) throws Exception {
List<OrgUsrExcelDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile, OrgUsrExcelDto.class, 1);
if (!ObjectUtils.isEmpty(excelDtoList)) {
Set<String> set = new HashSet<>();
excelDtoList.forEach(orgUsrExcelDto -> {
if (orgUsrExcelDto.getParentId() != null) {
String[] certificates = orgUsrExcelDto.getParentId().split("@");
orgUsrExcelDto.setParentName(certificates[0]);
orgUsrExcelDto.setParentId(certificates[1]);
}
// 动态字段填充
List<DynamicFormInitDto> dynamicFormColumn = dynamicFormColumnServiceImpl.getFormlist("246");
Map<String, Object> map = new HashMap<>();
// 获取对象属性和值
Field[] fields = orgUsrExcelDto.getClass().getDeclaredFields();
for (Field field : fields) {
try{
field.setAccessible(true);
Object value = field.get(orgUsrExcelDto);
String name = field.getName();
// 解析注解信息
ExplicitConstraint explicitConstraint = field.getAnnotation(ExplicitConstraint.class);
if (!ObjectUtils.isEmpty(explicitConstraint)) {
name = name + "@";
}
map.put(name, value);
} catch (Exception ex){
logger.error("获取{}字段值失败, {}", field.getName(), ex);
}
}
List<DynamicFormInstanceDto> dynamicFormValue = new ArrayList<>();
List<DynamicFormInstance> dynamicFormInstancelist = new ArrayList<>();
dynamicFormColumn.forEach(DynamicFormInitDto -> {
dynamicFormValue.add(DynamicFormInitDto.getFormItemDescr());
});
dynamicFormValue.forEach(dynamicFormInstanceDto -> {
String key = dynamicFormInstanceDto.getFieldCode();
Object value = map.get(key);
if (value != null) {
dynamicFormInstanceDto.setFieldValue(value.toString());
} else {
Object o = map.get(key + "@");
if (!ObjectUtils.isEmpty(o)) {
if (o.toString().contains("@")) {
String[] certificates = o.toString().split("@");
dynamicFormInstanceDto.setFieldValue(certificates[1]);
dynamicFormInstanceDto.setFieldValueLabel(certificates[0]);
} else {
dynamicFormInstanceDto.setFieldValue(o.toString());
}
}
}
DynamicFormInstance dynamicFormInstance = new DynamicFormInstance();
BeanUtils.copyProperties(dynamicFormInstanceDto, dynamicFormInstance);
dynamicFormInstancelist.add(dynamicFormInstance);
});
orgUsrExcelDto.setDynamicFormValue(dynamicFormInstancelist);
Bean.toPo(getCurrentInfo(), orgUsrExcelDto);
// 保存动态表单和人员单位表
if (!ObjectUtils.isEmpty(orgUsrExcelDto.getCertificatesNumber())) {
if (!set.add(orgUsrExcelDto.getCertificatesNumber())) {
throw new RuntimeException("身份证号码重复!");
} else {
boolean b = orgUsrService.checkCertificatesNumber(orgUsrExcelDto.getCertificatesNumber());
if (b) {
throw new RuntimeException("身份证号码重复!");
}
}
}
try {
OrgUsrDto orgUsrDto = orgUsrService.saveOrgPersonExcel(orgUsrExcelDto);
if (!ObjectUtils.isEmpty(orgUsrDto)) {
// 保存其余项
orgUsrExcelDto.setOrgUsrId(orgUsrDto.getSequenceNbr().toString());
savePeopleItem(orgUsrExcelDto);
}
} catch (Exception e) {
throw new RuntimeException("导入失败!");
}
});
}
}
private void savePeopleItem(OrgUsrExcelDto item) {
FirefightersContacts firefightersContacts = new FirefightersContacts();
// 手动添加主键,以便于给岗位、职位等实体赋值id
Long sequenceId = null;
firefightersContacts = Bean.toPo(item, firefightersContacts);
if (firefightersContacts.getRelationship() != null) {
String relationship = firefightersContacts.getRelationship().split("@")[1];
firefightersContacts.setRelationship(relationship);
}
if (!ObjectUtils.isEmpty(item.getPeopleType()) && item.getPeopleType().contains("@") && "2".equals(item.getPeopleType().split("@")[1])) {
// 保存消防队伍人员和紧急联系人
Firefighters firefighters = new Firefighters();
firefighters = Bean.toPo(item, firefighters);
firefighters = Bean.toPo(getCurrentInfo(), firefighters);
sequenceId = sequence.nextId();
firefighters.setSequenceNbr(sequenceId);
firefighters.setName(item.getBizOrgName());
if (firefighters.getCertificatesType() != null) {
String[] certificates = firefighters.getCertificatesType().split("@");
firefighters.setCertificatesType(certificates[0]);
firefighters.setCertificatesTypeCode(certificates[1]);
}
if (firefighters.getState() != null) {
String[] state = firefighters.getState().split("@");
firefighters.setState(state[0]);
firefighters.setStateCode(state[1]);
}
if (firefighters.getJobTitle() != null) {
String[] jobTitle = firefighters.getJobTitle().split("@");
firefighters.setJobTitle(jobTitle[0]);
firefighters.setJobTitleCode(jobTitle[1]);
}
if (item.getParentId() != null) {
// String[] tempCompany = item.getParentId().split("@");
firefighters.setCompanyName(item.getParentName());
firefighters.setCompanyCode(item.getParentId());
firefighters.setCompany(item.getParentId());
OrgUsr result = orgUsrService.getById(Long.valueOf(item.getParentId()));
firefighters.setBizOrgName(item.getParentName());
firefighters.setBizOrgCode(result.getBizOrgCode());
}
if (item.getNativePlace() != null) {
String[] tempCity = item.getNativePlace().split("@");
firefighters.setNativePlaceValue(tempCity[0]);
firefighters.setNativePlace(tempCity[1]);
}
if (item.getResidenceDetails() != null) {
String[] tempCity = item.getResidenceDetails().split("@");
firefighters.setResidence(tempCity[0]);
firefighters.setResidenceDetails(tempCity[1]);
}
if (firefighters.getGender() != null) {
String[] tempCity = firefighters.getGender().split("@");
firefighters.setGender(tempCity[0]);
}
if (firefighters.getPeopleType() != null) {
String[] tempCity = firefighters.getPeopleType().split("@");
firefighters.setPeopleType(tempCity[1]);
}
if (firefighters.getStateCode() != null) {
String[] tempCity = firefighters.getStateCode().split("@");
firefighters.setState(tempCity[0]);
firefighters.setStateCode(tempCity[1]);
}
if (firefighters.getCertificatesTypeCode() != null) {
String[] tempCity = firefighters.getCertificatesTypeCode().split("@");
firefighters.setCertificatesType(tempCity[0]);
firefighters.setCertificatesTypeCode(tempCity[1]);
}
if (firefighters.getSafetyTraining() != null) {
String[] tempCity = firefighters.getSafetyTraining().split("@");
firefighters.setSafetyTraining(tempCity[1]);
}
if (item.getPositionType() != null) {
String[] tempCity = item.getPositionType().split("@");
firefighters.setJobTitle(tempCity[0]);
firefighters.setJobTitleCode(tempCity[1]);
}
if (item.getTelephone() != null) {
firefighters.setMobilePhone(item.getTelephone());
}
FirefightersInfoDto firefightersInfo = new FirefightersInfoDto(firefighters, firefightersContacts);
firefightersService.saveFirefighters(firefightersInfo);
} else {
// 保存紧急联系人
ifirefightersContactsService.save(firefightersContacts);
}
item.setFirefightersId(sequenceId);
FirefightersWorkexperience firefightersWorkexperience = new FirefightersWorkexperience();
FirefightersEducation firefightersEducation = new FirefightersEducation();
FirefightersPost firefightersPost = new FirefightersPost();
firefightersWorkexperience = Bean.toPo(item, firefightersWorkexperience);
firefightersEducation = Bean.toPo(item, firefightersEducation);
firefightersPost = Bean.toPo(item, firefightersPost);
/************************* 岗位职级 ***********************/
if (item.getEmployeeHierarchy() != null) {
String[] employeeHierarchy = item.getEmployeeHierarchy().split("@");
firefightersPost.setEmployeeHierarchy(employeeHierarchy[0]);
firefightersPost.setEmployeeHierarchyCode(employeeHierarchy[1]);
}
if (item.getAdministrativePositionCode() != null) {
String[] employeeHierarchy = item.getAdministrativePositionCode().split("@");
firefightersPost.setAdministrativePosition(employeeHierarchy[0]);
firefightersPost.setAdministrativePositionCode(employeeHierarchy[1]);
}
if (item.getPositionType() != null) {
String[] employeeHierarchy = item.getPositionType().split("@");
firefightersPost.setJobTitle(employeeHierarchy[0]);
firefightersPost.setJobTitleCode(employeeHierarchy[1]);
}
if (item.getPostQualification() != null) {
String[] employeeHierarchy = item.getPostQualification().split("@");
firefightersPost.setPostQualification(employeeHierarchy[0]);
firefightersPost.setPostQualificationCode(employeeHierarchy[1]);
}
if (item.getInternalPositionCode() != null) {
String[] employeeHierarchy = item.getInternalPositionCode().split("@");
firefightersPost.setInternalPosition(employeeHierarchy[0]);
firefightersPost.setInternalPositionCode(employeeHierarchy[1]);
}
if (item.getFireManagementPostCode() != null) {
String[] employeeHierarchy = item.getFireManagementPostCode().split("@");
firefightersPost.setFireManagementPost(employeeHierarchy[0]);
firefightersPost.setFireManagementPostCode(employeeHierarchy[1]);
}
if (item.getCertificateType() != null) {
String[] employeeHierarchy = item.getCertificateType().split("@");
firefightersPost.setCertificateType(employeeHierarchy[0]);
firefightersPost.setCertificateTypeCode(employeeHierarchy[1]);
}
if (item.getAuditCycle() != null) {
String[] employeeHierarchy = item.getAuditCycle().split("@");
firefightersPost.setAuditCycle(employeeHierarchy[1]);
}
/************************* 学历教育 ***********************/
if (item.getFirstDegree() != null) {
String[] employeeHierarchy = item.getFirstDegree().split("@");
firefightersEducation.setFirstDegree(employeeHierarchy[1]);
}
if (item.getHighestEducation() != null) {
String[] employeeHierarchy = item.getHighestEducation().split("@");
firefightersEducation.setHighestEducation(employeeHierarchy[1]);
}
if (item.getAcademicDegree() != null) {
String[] employeeHierarchy = item.getAcademicDegree().split("@");
firefightersEducation.setAcademicDegree(employeeHierarchy[1]);
}
iFirefightersPostService.save(firefightersPost);
ifirefightersEducationService.save(firefightersEducation);
ifirefightersWorkexperienceService.save(firefightersWorkexperience);
}
private void excelImportFirefighters(MultipartFile multipartFile) throws Exception {
List<FirefightersExcelDto> excelDtoList = ExcelUtil.readFirstSheetExcel(multipartFile,
FirefightersExcelDto.class, 1);
......
......@@ -105,7 +105,7 @@ public class PowerTransferCompanyResourcesServiceImpl extends BaseService<PowerT
QueryWrapper<PowerTransferCompanyResources> powerTransferCompanyResourcesQueryWrapper = new QueryWrapper<>();
powerTransferCompanyResourcesQueryWrapper.eq("resources_id", resourceId);
powerTransferCompanyResourcesQueryWrapper.eq("status", status);
powerTransferCompanyResourcesQueryWrapper.eq("is_deleted", 0);
powerTransferCompanyResourcesQueryWrapper.eq("is_delete", 0);
return powerTransferCompanyResourcesMapper.selectCount(powerTransferCompanyResourcesQueryWrapper);
}
}
......@@ -81,7 +81,7 @@ public class UserCarServiceImpl extends BaseService<AircraftDto, UserCar, UserCa
if (userCar == null) {
return 0;
}
return companyResourcesService.getCarExecutingCountById(userCar.getRecUserId(), "executing");
return companyResourcesService.getCarExecutingCountById(userCar.getCarId().toString(), "executing");
//bug 6065 首页报错,接口selectOne 一个资源对应多条数据。
// PowerTransferCompanyResources resource = companyResourcesService.getResourceById(userCar.getCarId().toString());
// if (resource == null) {
......
......@@ -44,8 +44,10 @@ import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalTime;
import java.util.*;
import java.util.concurrent.CompletionException;
import java.util.function.Function;
......@@ -239,6 +241,20 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
/**
* startTime > stopTime 且 startTime 与 stopTime相差1小时内返回true
* @param startTime
* @param stopTime
* @return
*/
public static boolean getTimeDifference(LocalTime startTime, LocalTime stopTime) {
int startSecond = startTime.getHour() * 3600 + startTime.getMinute() * 60 + startTime.getSecond();
int stopSecond = stopTime.getHour() * 3600 + stopTime.getMinute() * 60 + stopTime.getSecond();
BigDecimal bigDecimal = BigDecimal.valueOf((float) (startSecond - stopSecond) / 3600).setScale(3, BigDecimal.ROUND_HALF_UP);
BigDecimal bigDecimal1 = new BigDecimal(1).setScale(3, BigDecimal.ROUND_HALF_UP);
return bigDecimal.compareTo(bigDecimal1) <= 0 && bigDecimal.compareTo(new BigDecimal(0)) >= 0;
}
/**
* 自动任务执行
*/
@Override
......@@ -257,6 +273,23 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
log.info(strDate + " " + " 暂无待生成执行数据的计划");
return;
}
//bug 5980 待办任务消息应只触发执行中的任务,漏检的任务和未开始的任务不需要触发待办任务消息.
List<Plan> planListTwo = new ArrayList<>();
//将日期格式化
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm:ss");
LocalTime nowTime = LocalTime.parse(simpleDateFormat.format(new Date()));
for (Plan plan : planList) {
LocalTime dayTime = LocalTime.parse(plan.getDayTime());
// LocalTime plusHoursTime = dayTime.plusHours(1);
if (getTimeDifference(nowTime, dayTime)) {
planListTwo.add(plan);
}
}
if (planListTwo == null || planListTwo.size() <= 0) {
log.info(strDate + " " + " 暂无待生成执行数据的计划 (更改后,只执行进行中的数据)");
return;
}
planList = planListTwo;
//2.循环遍历执行
HashMap<String, Object> paramMap = new HashMap<String, Object>();
for (Plan plan : planList) {
......
......@@ -165,6 +165,8 @@
m.maintenance_expiration_time,
m.fire_facility_code,
m.owner_unit_name,
m.maintenance_company_name,
m.maintenance_cycle,
m.create_date
FROM
mt_maintenance_resource_data m
......
......@@ -116,6 +116,6 @@ mybatis.interceptor.enabled = false
fire-rescue=1432549862557130753
#阿里云实时语音识别参数
speech-config.access-key-id=LTAI5t7mGN6dYoCwMdKiLTgt
speech-config.access-key-secret=0LYdEnvKzQxBg0lpIahDp5rzB2r4Dp
speech-config.app-key=EG5fJBBIqkNMj6bM
\ No newline at end of file
speech-config.access-key-id=LTAI5t62oH95jgbjRiNXPsho
speech-config.access-key-secret=shy9SpogYgcdDoyTB3bvP21VSRmz8n
speech-config.app-key=FC84bGUpbNFrexoL
\ No newline at end of file
......@@ -3179,5 +3179,20 @@
ALTER TABLE cb_firefighters MODIFY COLUMN job_title_code text CHARACTER SET utf8 DEFAULT NULL COMMENT '岗位数据字典code';
</sql>
</changeSet>
<changeSet id="20220608-1" author="tb">
<preConditions onFail="MARK_RAN">
<not>
<indexExists indexName="u_idx_biz_org_code"/>
</not>
</preConditions>
<comment>业务编码唯一索引</comment>
<createIndex
indexName="u_idx_biz_org_code"
tableName="cb_org_usr"
unique="true">
<column name="biz_org_code"/>
</createIndex>
</changeSet>
</databaseChangeLog>
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