Commit 78d5ec14 authored by suhuiguang's avatar suhuiguang

refact(注册开通):流程调整

1.接口及流程调整,开通接口相关调整
parent 5e239106
......@@ -13,4 +13,9 @@ public class TZSCommonConstant {
* 数据刷新主题-前缀,第一个为:dataType, 第二个为:操作类型:增删改
*/
public final static String DATA_REFRESH_TOPIC = "data/refresh/%s/%s";
public static final String PROVINCE = "PROVINCE";
public static final String CITY = "CITY";
public static final String REGION = "REGION";
public static final String STREET = "STREET";
}
package com.yeejoin.amos.boot.module.common.api.dto;
import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.common.api.entity.BaseEnterpriseCert;
import io.swagger.annotations.ApiModel;
......@@ -49,7 +50,7 @@ public class BaseEnterpriseCertDto extends BaseDto {
private String approvedOrganCode;
@ApiModelProperty(value = "企业资质证书照片")
private String qualificationCertificateAttachment;
private JSONArray qualificationCertificateAttachment;
@ApiModelProperty(value = "备注")
private String remark;
......
package com.yeejoin.amos.boot.module.jyjc.api.model;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
......@@ -144,7 +145,7 @@ public class JyjcOpeningApplicationModel extends BaseModel {
@ApiModelProperty(value = "企业资质证书信息")
List<BaseEnterpriseCertDto> baseUnitLicences;
@ApiModelProperty(value = "省内办公地址省#市#区")
@ApiModelProperty(value = "省内办公地址")
private String officeRegion;
@ApiModelProperty(value = "省内详细办公地址")
......@@ -152,4 +153,16 @@ public class JyjcOpeningApplicationModel extends BaseModel {
@ApiModelProperty(value = "单位所在地:陕西省内企业,省外企业")
private String dataSources;
@ApiModelProperty(value = "仪器设备台账及检定证书")
private JSONArray equipVeriCert;
@ApiModelProperty(value = "档案室(请上传符合要求的自我声明)")
private JSONArray archivesCert;
@ApiModelProperty(value = "仪器室(请上传符合要求的自我声明)")
private JSONArray instrumentCert;
@ApiModelProperty(value = "质量保证体系(请上传符合要求的自我声明)")
private JSONArray quaSystemCert;
}
......@@ -56,19 +56,21 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增、编辑的保存", notes = "新增、编辑的保存")
public ResponseModel<JyjcOpeningApplicationModel> save(@RequestBody JSONObject model) {
public ResponseModel<JyjcOpeningApplicationModel> save(@RequestBody JSONObject jsonObject) {
JyjcOpeningApplicationModel jyjcOpeningApplicationModel = new JyjcOpeningApplicationModel();
// 兼容工作台暂存逻辑、编辑时报错逻辑
if (model.containsKey("applyInfo")) {
if (jsonObject.containsKey("applyInfo")) {
// 工作台暂存逻辑
BeanUtil.copyProperties(model.get("applyInfo"), jyjcOpeningApplicationModel);
BeanUtil.copyProperties(jsonObject.get("applyInfo"), jyjcOpeningApplicationModel);
} else {
// 详情保存逻辑
BeanUtil.copyProperties(model, jyjcOpeningApplicationModel);
BeanUtil.copyProperties(jsonObject, jyjcOpeningApplicationModel);
}
if(model.containsKey("buniessInfo")){
List<BaseEnterpriseCertDto> baseEnterpriseCertDtos = JSONArray.parseArray(JSONObject.toJSONString(model.get("buniessInfo")), BaseEnterpriseCertDto.class);
jyjcOpeningApplicationModel.setBaseUnitLicences(baseEnterpriseCertDtos);
if(jsonObject.containsKey("buniessInfo") && jsonObject.getJSONObject("buniessInfo") != null){
JSONObject businessInfo = jsonObject.getJSONObject("buniessInfo");
List<BaseEnterpriseCertDto> baseUnitLicences = businessInfo.getJSONArray("baseUnitLicences")
.toJavaList(BaseEnterpriseCertDto.class);
jyjcOpeningApplicationModel.setBaseUnitLicences(baseUnitLicences);
}
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.saveOrUpdate(jyjcOpeningApplicationModel, getCompanyCode()));
}
......@@ -84,9 +86,11 @@ public class JyjcOpeningApplicationController extends BaseController {
} else {
BeanUtil.copyProperties(jsonObject, model);
}
if(jsonObject.containsKey("buniessInfo")){
List<BaseEnterpriseCertDto> baseEnterpriseCertDtos = JSONArray.parseArray(JSONObject.toJSONString(jsonObject.get("buniessInfo")), BaseEnterpriseCertDto.class);
model.setBaseUnitLicences(baseEnterpriseCertDtos);
if(jsonObject.containsKey("buniessInfo") && jsonObject.getJSONObject("buniessInfo") != null){
JSONObject businessInfo = jsonObject.getJSONObject("buniessInfo"); // 注意拼写修正
List<BaseEnterpriseCertDto> baseUnitLicences = businessInfo.getJSONArray("baseUnitLicences")
.toJavaList(BaseEnterpriseCertDto.class);
model.setBaseUnitLicences(baseUnitLicences);
}
model.setSequenceNbr(sequenceNbr);
JyjcOpeningApplicationModel data = jyjcOpeningApplicationServiceImpl.submitApplication(model, getCompanyCode());
......@@ -275,7 +279,7 @@ public class JyjcOpeningApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/v2/users")
@ApiOperation(httpMethod = "GET", value = "查询当前登录人、指定人员类型的人员map结构", notes = "查询当前登录人、指定人员类型的人员map结构,key为jyjcUserInfos代表检验检测人员,chargeUserInfos为检验检测区域负责人")
public ResponseModel<Map<String, List<TzsUserInfoVo>>> getBizUserInfosByUnitCodeV2(@ApiParam(value = "人员类型", allowableValues = "jy,jc,charge" , defaultValue = "jy,jc,charge") @RequestParam String personType) {
public ResponseModel<Map<String, List<TzsUserInfoVo>>> getBizUserInfosByUnitCodeV2(@ApiParam(value = "人员类型", allowableValues = "jy,jc,charge" , defaultValue = "jy,jc,charge") @RequestParam(required = false ,defaultValue = "jy,jc,charge") String personType) {
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.getUserListByUnitCodeAndPostV2(getCompanyCode(), personType));
}
......
......@@ -11,6 +11,7 @@ import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.constant.TZSCommonConstant;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionHistory;
......@@ -27,6 +28,7 @@ import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import com.yeejoin.amos.feign.systemctl.model.RegionModel;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -36,8 +38,9 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Stream;
/**
* @author Administrator
......@@ -60,7 +63,7 @@ public class CommonServiceImpl {
@Value("${jyjc.charge.user-post:6667}")
private String chargeUserPost;
private final Map<String, String> CODE_NAME_MAP = new ConcurrentHashMap<>();
@Autowired
RedisUtils redisUtils;
......@@ -83,6 +86,9 @@ public class CommonServiceImpl {
private JyjcInspectionHistoryServiceImpl inspectionHistoryService;
private static Map<Integer, RegionModel> regionCodeRegionMap = new ConcurrentHashMap<>();
/**
* @return ReginParams
* @description 获取当前用户注册信息
......@@ -316,4 +322,17 @@ public class CommonServiceImpl {
String name = Optional.ofNullable(dataDictionary).map(DataDictionary::getName).orElse(null);
return name == null ? (isIntoManagement == null || !isIntoManagement) ? "二类" : "一类" : name;
}
public String getRegionName(String regionCode) {
return regionCode != null ? CODE_NAME_MAP.computeIfAbsent(regionCode, (k) -> {
List<LinkedHashMap> list1 = (List<LinkedHashMap>) redisUtils.get(TZSCommonConstant.PROVINCE);
List<LinkedHashMap> list2 = (List<LinkedHashMap>) redisUtils.get(TZSCommonConstant.CITY);
List<LinkedHashMap> list3 = (List<LinkedHashMap>) redisUtils.get(TZSCommonConstant.REGION);
List<LinkedHashMap> list4 = (List<LinkedHashMap>) redisUtils.get(TZSCommonConstant.STREET);
Optional<LinkedHashMap> op = Stream.of(list1, list2, list3, list4).flatMap(Collection::stream).filter(item -> String.valueOf(item.get("regionCode")).trim().equals(regionCode)).findFirst();
return op.map(linkedHashMap -> linkedHashMap.get("regionName").toString()).orElse("");
}) : "";
}
}
......@@ -60,6 +60,7 @@ import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -171,6 +172,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
model.setUnitCodeName(companyBo.getCompanyName());
model.setCreateUserId(RequestContext.getExeUserId());
model.setStatus(WorkFlowStatusEnum.OPENING_APPLICATION_SUBMIT.getPass());
model.setDockingUnitCode(this.getAppId(unitCode));
this.createWithModel(model);
// 2.创建待办
createDraftTask(model);
......@@ -180,6 +182,11 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
return this.updateWithModel(model);
}
private String getAppId(String unitCode) {
TzBaseEnterpriseInfo baseEnterpriseInfo = tzBaseEnterpriseInfoMapper.selectOne(new LambdaQueryWrapper<TzBaseEnterpriseInfo>().eq(TzBaseEnterpriseInfo::getUseCode, unitCode).select(BaseEntity::getSequenceNbr, TzBaseEnterpriseInfo::getAppId));
return baseEnterpriseInfo.getAppId();
}
/**
* 提交、保存并提交逻辑
*
......@@ -213,6 +220,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
model.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
model.setNextTaskId(workflowResultDto.getNextTaskId());
model.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
model.setDockingUnitCode(this.getAppId(companyCode));
// 首次提交时删除暂存的待办
this.deleteDraftTask(model);
saveModel(model);
......@@ -228,6 +236,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
this.deleteDraftTask(model);
// 存在流程,执行
executeOneStep(model, "0");
model.setDockingUnitCode(this.getAppId(companyCode));
saveModel(model);
// 存json
commonService.saveOrUpdateHistory(model.getOpenBizType(),JSONObject.parseObject(JSONObject.toJSONString(model)), model.getSequenceNbr());
......@@ -402,15 +411,21 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
unitCode = jyjcOpeningApplicationModel.getUnitCode();
JyjcInspectionHistory jyjcInspectionHistory = inspectionHistoryService.getBySSeq(jyjcOpeningApplicationModel.getSequenceNbr());
JSONObject hisData = jyjcInspectionHistory.getHistoryData();
// 人员信息:审批完成、已作废时显示历史数据
if (jyjcOpeningApplicationModel.getStatus().equals(FlowStatusEnum.TO_BE_DISCARD.getCode() + "") || jyjcOpeningApplicationModel.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getCode() + "")) {
jyjcOpeningApplicationModel.setJyjcUserInfos(JSONArray.parseArray(hisData.getString(BizCommonConstant.JYJC_USER_LIST_KEY), TzsUserInfoVo.class));
jyjcOpeningApplicationModel.setChargeUserInfos(JSONArray.parseArray(hisData.getString(BizCommonConstant.CHAGRE_USER_LIST_KEY), TzsUserInfoVo.class));
} else { // 流程中实时数据显示人
if (jyjcOpeningApplicationModel.getStatus().equals(FlowStatusEnum.TO_BE_DISCARD.getName()) ||
jyjcOpeningApplicationModel.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName())) { // 人员信息:审批完成、已作废时显示历史数据
hisData.put("status",jyjcOpeningApplicationModel.getStatus());
BeanUtil.copyProperties(hisData, jyjcOpeningApplicationModel);
} else { // 流程中实时数据显示人、企业基本信息
setJYJCUserList(unitCode, jyjcOpeningApplicationModel);
// 企业基本信息
setBaseEnterpriseInfo(unitCode, jyjcOpeningApplicationModel);
}
jyjcOpeningApplicationModel.setEquipVeriCert(hisData.getJSONArray("equipVeriCert"));
jyjcOpeningApplicationModel.setArchivesCert(hisData.getJSONArray("archivesCert"));
jyjcOpeningApplicationModel.setInstrumentCert(hisData.getJSONArray("instrumentCert"));
jyjcOpeningApplicationModel.setQuaSystemCert(hisData.getJSONArray("quaSystemCert"));
// 证书资质信息-按照json显示
jyjcOpeningApplicationModel.setBaseUnitLicences(JSONArray.parseArray(hisData.getString("baseUnitLicences"), BaseEnterpriseCertDto.class));
jyjcOpeningApplicationModel.setBaseUnitLicences(hisData.getJSONArray("baseUnitLicences").toJavaList(BaseEnterpriseCertDto.class));
} else {
jyjcOpeningApplicationModel = new JyjcOpeningApplicationModel();
jyjcOpeningApplicationModel.setOpenBizType(this.getOpenBizTypeByIdentity(reginParams.getCompany().getCompanyType()));
......@@ -419,9 +434,9 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
jyjcOpeningApplicationModel.setUnitCode(unitCode);
// 证书资质信息
setBaseUnitLicences2(unitCode, jyjcOpeningApplicationModel);
}
// 企业基本信息
setBaseEnterpriseInfo(unitCode, jyjcOpeningApplicationModel);
}
return jyjcOpeningApplicationModel;
}
......@@ -461,12 +476,24 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
jyjcOpeningApplicationModel.setLongitude(baseEnterpriseInfo.getLongitude());
jyjcOpeningApplicationModel.setLatitude(baseEnterpriseInfo.getLatitude());
jyjcOpeningApplicationModel.setDataSources(baseEnterpriseInfo.getDataSources());
jyjcOpeningApplicationModel.setOfficeRegion( this.caseRegionCode2Name(baseEnterpriseInfo.getOfficeRegion()));
jyjcOpeningApplicationModel.setOfficeAddress(baseEnterpriseInfo.getOfficeAddress());
if (ObjectUtils.isNotEmpty(baseEnterpriseInfo.getUnitBusinessLicense())) {
jyjcOpeningApplicationModel.setUnitBusinessLicense(JSONArray.parseArray(baseEnterpriseInfo.getUnitBusinessLicense(), AttachmentDto.class));
}
}
}
private String caseRegionCode2Name(String officeRegion) {
StringBuilder fullName = new StringBuilder();
if(StringUtils.isNotBlank(officeRegion)){
for(String regionCode:officeRegion.split("#")){
fullName.append(commonService.getRegionName(regionCode));
}
}
return fullName.toString();
}
private void setBaseUnitLicences2(String unitCode, JyjcOpeningApplicationModel jyjcOpeningApplicationModel) {
List<BaseEnterpriseCert> enterpriseCerts = enterpriseCertService.getBaseMapper().selectList(new LambdaQueryWrapper<BaseEnterpriseCert>().eq(BaseEnterpriseCert::getUnitCode, unitCode));
......
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