Commit 725bc0d7 authored by hekaiwen's avatar hekaiwen

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

parents 54e6f576 c56966fd
package com.yeejoin.amos.boot.module.app.biz.service.impl;
import cn.hutool.core.codec.Base64Decoder;
import cn.hutool.core.codec.Base64Encoder;
import com.yeejoin.amos.boot.biz.common.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.app.api.dto.CertInfoRequestParam;
import com.yeejoin.amos.boot.module.app.api.exception.AuthException;
......@@ -10,6 +12,7 @@ import com.yeejoin.amos.boot.module.common.api.enums.CertificateStatusEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.nio.charset.StandardCharsets;
import java.util.Map;
@Service
......@@ -27,19 +30,27 @@ public class CertDetailServiceImpl {
this.setDefaultFieldForOld(requestParam);
String certOrApplyNo = this.deCodeCertNo(requestParam.getCertNo());
String version = this.deCodeByAES(requestParam.getVersion());
String certType = this.deCodeByAES(requestParam.getCertType());
String certType = this.deCodeByBase64(requestParam.getCertType());
JgUseRegistrationManageDto jgUseRegistrationManage = this.checkParam(certOrApplyNo, version);
return SearchDetailStrategyContext.getHandler(this.getManageType(jgUseRegistrationManage)).hanlder(jgUseRegistrationManage, certType);
}
private String deCodeByBase64(String certType) {
try {
return Base64Decoder.decodeStr(certType, StandardCharsets.UTF_8);
} catch (Exception e) {
throw new AuthException("非法的二维码!");
}
}
private void setDefaultFieldForOld(CertInfoRequestParam requestParam) {
// 兼容老数据,默认版本号为1
// 兼容老数据,默认版本号为1 aes 加密
if (StringUtils.isBlank(requestParam.getVersion())) {
requestParam.setVersion(AESUtil.encrypt("1"));
}
// 兼容老数据,默认类型为使用登记证,扩展预览字段
// 兼容老数据,默认类型为使用登记证,扩展预览字段 base64
if (StringUtils.isBlank(requestParam.getCertType())) {
requestParam.setCertType(AESUtil.encrypt("useCert"));
requestParam.setCertType(Base64Encoder.encode("useCert", StandardCharsets.UTF_8));
}
}
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64Decoder;
import cn.hutool.core.codec.Base64Encoder;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
......@@ -100,6 +102,7 @@ import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.text.ParseException;
import java.util.*;
......@@ -947,14 +950,17 @@ public class CommonServiceImpl implements ICommonService {
}
private String getEncodeQrCode(String certNo, String certType, String version) {
// aes加密并base64编码
String certNoEncrypt = AESUtil.encrypt(certNo);
String certTypeEncrypt = AESUtil.encrypt(certType);
// base64编码
String certTypeBase64 = Base64Encoder.encode(certType, StandardCharsets.UTF_8);
// aes加密并base64编码
String versionEncrypt = AESUtil.encrypt(version);
return qrcodePrefix +
"?certNo=" +
certNoEncrypt +
"&certType=" +
certTypeEncrypt +
certTypeBase64 +
"&version=" +
versionEncrypt;
}
......
......@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationModel;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcOpeningApplicationRequstDto;
import com.yeejoin.amos.boot.module.jyjc.api.vo.JyjcOpeningApplicationVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -39,4 +40,6 @@ public interface JyjcOpeningApplicationMapper extends BaseMapper<JyjcOpeningAppl
List<PublicityInspectOrgInfoDto> queryInspectionOrgListForPublicity(@Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto dpFilterParamDto);
List<InspectionCompanyPublicityDto> queryInspectionOrgListForBiz();
List<JyjcOpeningApplicationVo> queryJyjcOpeningApplicationListByIds(List<String> ids);
}
package com.yeejoin.amos.boot.module.jyjc.api.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import lombok.Data;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import java.util.Date;
/**
* @author system_generator
* @date 2023-12-14
*/
@Data
public class JyjcOpeningApplicationVo {
@ExcelProperty(value = "申请单编号", index = 0)
String applicationSeq;
@ExcelProperty(value = "申请时间", index = 1)
String applyTime;
@ExcelProperty(value = "检验检测机构名称", index = 2)
String unitCodeName;
@ExcelProperty(value = "开通业务类型", index = 3)
String openBizType;
@ExcelProperty(value = "统一信用代码", index = 4)
String unitCode;
@ExcelProperty(value = "业务有效期至", index = 5)
@DateTimeFormat("yyyy-MM-dd")
Date expiryDate;
@ExcelProperty(value = "作废原因", index = 6)
String remark;
@ExcelProperty(value = "办理状态", index = 7)
String statusName;
@ExcelProperty(value = "办理日期", index = 8)
@DateTimeFormat("yyyy-MM-dd")
Date acceptDate;
}
......@@ -121,4 +121,11 @@
oa.unit_code = ei.use_unit_code
and oa.status = 6616
</select>
<select id="queryJyjcOpeningApplicationListByIds"
resultType="com.yeejoin.amos.boot.module.jyjc.api.vo.JyjcOpeningApplicationVo">
select * from tz_jyjc_opening_application where sequence_nbr in
<foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
#{id}
</foreach>;
</select>
</mapper>
......@@ -284,7 +284,7 @@ public class JyjcInspectionApplicationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{bizType}/export")
@ApiOperation(httpMethod = "GET", value = "定(首)检验列表(企业)/电梯检测 列表数据导出", notes = "定(首)检验列表(企业)/电梯检测 列表数据导出")
@ApiOperation(httpMethod = "GET", value = "定(首)检验列表(企业)/电梯检测/监督检验 列表数据导出", notes = "定(首)检验列表(企业)/电梯检测/监督检验 列表数据导出")
public void export(@PathVariable(value = "bizType")String bizType, HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
jyjcInspectionApplicationServiceImpl.export(bizType,response, Arrays.asList(ids.split(",")));
......
......@@ -21,6 +21,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
......@@ -31,6 +32,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
......@@ -292,4 +294,18 @@ public class JyjcOpeningApplicationController extends BaseController {
return ResponseHelper.buildResponse(jyjcOpeningApplicationServiceImpl.queryInspectionOrgListForBiz());
}
/**
* 检验业务开通列表导出
* @param response
* @param ids
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/exportdata")
@ApiOperation(httpMethod = "GET", value = "检验业务开通列表导出", notes = "检验业务开通列表导出")
public void dataExport(HttpServletResponse response, String ids) {
Assert.hasText(ids,"未选择导出数据");
jyjcOpeningApplicationServiceImpl.exportData(response,Arrays.asList(ids.split(",")));
}
}
......@@ -16,6 +16,7 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.excel.ExcelUtil;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.common.api.dto.TzsUserPermissionDto;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionCompanyPublicityDto;
......@@ -26,6 +27,8 @@ import com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcOpeningApplicationMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.*;
import com.yeejoin.amos.boot.module.jyjc.api.service.IJyjcOpeningApplicationService;
import com.yeejoin.amos.boot.module.jyjc.api.vo.JyjcInspectionApplicationVo;
import com.yeejoin.amos.boot.module.jyjc.api.vo.JyjcOpeningApplicationVo;
import com.yeejoin.amos.boot.module.jyjc.biz.action.RuleActionHandler;
import com.yeejoin.amos.boot.module.jyjc.biz.config.BaseException;
import com.yeejoin.amos.boot.module.jyjc.biz.feign.TzsServiceFeignClient;
......@@ -65,6 +68,9 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
......@@ -81,80 +87,56 @@ import java.util.stream.Collectors;
@Slf4j
public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningApplicationModel, JyjcOpeningApplication, JyjcOpeningApplicationMapper> implements IJyjcOpeningApplicationService {
@Autowired
private TzsServiceFeignClient tzsServiceFeignClient;
private final static String INDUSTRY_SUPERVISOR_DICT_TYPE = "HYZGBM";
/**
* 人员级别字典KEY
*/
private final static String RYJB_JYJC_DICT_KEY = "RYJB_JYJC";
/**
* 所有人员资质检验检测项目key
*/
private final static String ZZXM_JYJC_DICT_KEY = "ZZXM_JYJC_ALL";
private static Map<String, DictionarieValueModel> permissionLevelMap;
private static List<DictionarieValueModel> permissionItemList;
@Autowired
JyjcOpeningApplicationMapper jyjcOpeningApplicationMapper;
@Autowired
BaseUnitLicenceMapper baseUnitLicenceMapper;
@Autowired
CommonServiceImpl commonService;
@Autowired
CmWorkflowServiceImpl cmWorkflowService;
@Autowired
TaskModelServiceImpl taskModelService;
@Autowired
DataDictionaryMapper dataDictionaryMapper;
@Autowired
RuleActionHandler ruleActionHandler;
@Autowired
RedissonClient redissonClient;
@Autowired
private TzsServiceFeignClient tzsServiceFeignClient;
@Value("${process-definition-key.jyjc.openapplication:}")
private String processDefinitionKey;
@Value("${jy.user-post:66151}")
private String jyUserPost;
@Value("${jy.cert.type.code:1233-1}")
private String jyCertTypeCode;
@Value("${jc.user-post:66152}")
private String jcUserPost;
@Value("${jc.cert.type.code:1233-2}")
private String jcCertTypeCode;
@Value("classpath:/json/bizTypeInfo.json")
private org.springframework.core.io.Resource bizTypeInfo;
@Autowired
private TzBaseEnterpriseInfoMapper enterpriseInfoMapper;
@Autowired
BaseUnitLicenceMapper baseUnitLicenceMapper;
@Autowired
private TzsUserInfoMapper userInfoMapper;
@Autowired
CommonServiceImpl commonService;
@Autowired
CmWorkflowServiceImpl cmWorkflowService;
@Autowired
TaskModelServiceImpl taskModelService;
@Autowired
DataDictionaryMapper dataDictionaryMapper;
@Autowired
RuleActionHandler ruleActionHandler;
@Autowired
RedissonClient redissonClient;
@Autowired
private RuleCommonServiceImpl ruleCommonService;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
private static Map<String, DictionarieValueModel> permissionLevelMap;
private static List<DictionarieValueModel> permissionItemList;
private final static String INDUSTRY_SUPERVISOR_DICT_TYPE = "HYZGBM";
/**
* 人员级别字典KEY
*/
private final static String RYJB_JYJC_DICT_KEY = "RYJB_JYJC";
/**
* 所有人员资质检验检测项目key
*/
private final static String ZZXM_JYJC_DICT_KEY = "ZZXM_JYJC_ALL";
/**
* 编辑、工作台暂存逻辑
*
......@@ -457,7 +439,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
private void setBaseUnitLicences(String unitCode, JyjcOpeningApplicationModel jyjcOpeningApplicationModel, boolean isNeedFilter) {
List<BaseUnitLicence> baseUnitLicences = baseUnitLicenceMapper.selectList(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, unitCode)
.gt(BaseUnitLicence::getExpiryDate , new Date())
.gt(BaseUnitLicence::getExpiryDate, new Date())
.in(BaseUnitLicence::getCertTypeCode, Arrays.asList(jyCertTypeCode, jcCertTypeCode)));
List<TzBaseUnitLicenceDto> licences = baseUnitLicences.stream().map(l -> {
TzBaseUnitLicenceDto licenceDto = new TzBaseUnitLicenceDto();
......@@ -566,10 +548,10 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
// 查询资质的人,
List<TzsUserPermissionDto> permissionDtos = userInfoMapper.queryPermissionByUserSeq(userInfo.getSequenceNbr(), this.buildPermissionKey(post));
// 注意检验资质、检测资质,每人只有一行数据, 一个人一个证
if(permissionDtos.size() > 0){
if (permissionDtos.size() > 0) {
TzsUserPermissionDto userPermissionDto = permissionDtos.get(0);
// 不会出现为null, 程序健壮处理
if(userPermissionDto.getPermissionItem() != null && userPermissionDto.getPermissionLevel() != null ){
if (userPermissionDto.getPermissionItem() != null && userPermissionDto.getPermissionLevel() != null) {
vo.setPermissionItem(JSONArray.parseArray(userPermissionDto.getPermissionItem()));
vo.setPermissionItemName(this.castItemCode2Name(vo.getPermissionItem()));
vo.setPermissionLevelName(this.getDictNameByCode(userPermissionDto.getPermissionLevel()));
......@@ -677,7 +659,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
taskParams.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
taskParams.put("model", jyjcOpeningApplication);
taskModelService.updateTaskModel(taskParams);
List<String> detectionRegion = (List<String>)params.get("detectionRegion");
List<String> detectionRegion = (List<String>) params.get("detectionRegion");
jyjcOpeningApplication.setDetectionRegion(detectionRegion);
jyjcOpeningApplication.setPromoter("");
jyjcOpeningApplication.setNextTaskId("");
......@@ -971,7 +953,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
// 查询所有已经业务开通的检验检测机构,已机构为维度进行证的合并处理
List<InspectionCompanyPublicityDto> inspectionCompanyPublicityDtos = this.getBaseMapper().queryInspectionOrgListForBiz();
// 枚举转换
inspectionCompanyPublicityDtos.forEach(c->{
inspectionCompanyPublicityDtos.forEach(c -> {
c.setDetectionRegion(this.castRegionCode2Name(c.getDetectionRegion()));
c.setApprovalInfo(this.breakNewLineForApprovalInfo(c.getApprovalInfo()));
c.setOpenBizType(this.castOpenBizTypeCode2Name(c.getOpenBizType()));
......@@ -992,4 +974,16 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
private String castOpenBizTypeCode2Name(String openBizType) {
return OpenBizTypeEnum.getOneByCode(openBizType).getName();
}
public void exportData(HttpServletResponse response, List<String> ids) {
List<JyjcOpeningApplicationVo> exportData = jyjcOpeningApplicationMapper.queryJyjcOpeningApplicationListByIds(ids);
for (JyjcOpeningApplicationVo data : exportData) {
data.setOpenBizType(this.getOpenBizTypeName(data.getOpenBizType()));
}
ExcelUtil.createTemplate(response, "检验检测开通列表数据", "检验检测开通列表", exportData, JyjcOpeningApplicationVo.class, null, false);
}
}
\ No newline at end of file
......@@ -26,7 +26,7 @@ public interface IYsEmergencyUnitService {
YsEmergencyUnitDto querySafeUnitBySeq(Long sequenceNbr);
Page<YsEmergencyUnitDto> querySafeUnitsByPage(Page<YsEmergencyUnit> page,YsEmergencyUnitDto ysEmergencyUnitDto);
Page<YsEmergencyUnitDto> querySafeUnitsByPage(Page<YsEmergencyUnit> page,String sort,YsEmergencyUnitDto ysEmergencyUnitDto);
void export(HttpServletResponse response, List<String> asList);
......
......@@ -143,13 +143,15 @@ public class YsEmergencyUnitController extends BaseController {
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询")
public ResponseModel<Page<YsEmergencyUnitDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size,YsEmergencyUnitDto ysEmergencyUnitDto) {
@ApiOperation(httpMethod = "GET", value = "分页查询", notes = "分页查询")
public ResponseModel<Page<YsEmergencyUnitDto>> queryForPage(@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size,
@RequestParam(value = "", required = false) String sort,
YsEmergencyUnitDto ysEmergencyUnitDto) {
Page<YsEmergencyUnit> page = new Page<YsEmergencyUnit>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(iYsEmergencyUnitService.querySafeUnitsByPage(page,ysEmergencyUnitDto));
return ResponseHelper.buildResponse(iYsEmergencyUnitService.querySafeUnitsByPage(page,sort,ysEmergencyUnitDto));
}
/**
......
......@@ -132,25 +132,42 @@ public class YsEmergencyUnitServiceImpl extends BaseService<YsEmergencyUnitDto,
* @return
*/
@Override
public Page<YsEmergencyUnitDto> querySafeUnitsByPage(Page<YsEmergencyUnit> page,YsEmergencyUnitDto ysEmergencyUnitDto) {
public Page<YsEmergencyUnitDto> querySafeUnitsByPage(Page<YsEmergencyUnit> page, String sort, YsEmergencyUnitDto ysEmergencyUnitDto) {
LambdaQueryWrapper<YsEmergencyUnit> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(YsEmergencyUnit::getIsDelete,Boolean.FALSE);
//条件查询 -> 根据名称查询
if(StringUtil.isNotEmpty(ysEmergencyUnitDto.getName())){
queryWrapper.like(YsEmergencyUnit::getName,ysEmergencyUnitDto.getName());
queryWrapper.eq(YsEmergencyUnit::getIsDelete, Boolean.FALSE);
// 条件查询 -> 根据名称查询
if (StringUtil.isNotEmpty(ysEmergencyUnitDto.getName())) {
queryWrapper.like(YsEmergencyUnit::getName, ysEmergencyUnitDto.getName());
}
//条件查询 -> 根据应急服务内容查询
if(StringUtils.isNotEmpty(ysEmergencyUnitDto.getEmergencyService())){
queryWrapper.like(YsEmergencyUnit::getEmergencyService,ysEmergencyUnitDto.getEmergencyService());
// 条件查询 -> 根据应急服务内容查询
if (StringUtils.isNotEmpty(ysEmergencyUnitDto.getEmergencyService())) {
queryWrapper.like(YsEmergencyUnit::getEmergencyService, ysEmergencyUnitDto.getEmergencyService());
}
//条件查询 -> 根据关联消防队查询
// 条件查询 -> 根据关联消防队查询
if (ysEmergencyUnitDto.getTeamId() != null) {
queryWrapper.like(YsEmergencyUnit::getTeamId,ysEmergencyUnitDto.getTeamId());
queryWrapper.like(YsEmergencyUnit::getTeamId, ysEmergencyUnitDto.getTeamId());
}
if (StringUtils.isNotBlank(sort)) {
String[] split = sort.split(",");
String field = split[0];
String sortDirection = split[1];
// 使用switch匹配字段, 确保字段类型安全
switch (field) {
case "name":
if (sortDirection.startsWith("asc")) {
queryWrapper.orderByAsc(YsEmergencyUnit::getName);
} else {
queryWrapper.orderByDesc(YsEmergencyUnit::getName);
}
break;
default:
break;
}
}
this.page(page, queryWrapper);
//数据脱敏
// 数据脱敏
Page<YsEmergencyUnitDto> ysEmergencyUnitDtoPage = new Page<YsEmergencyUnitDto>();
BeanUtils.copyProperties(page,ysEmergencyUnitDtoPage);
BeanUtils.copyProperties(page, ysEmergencyUnitDtoPage);
return ysEmergencyUnitDtoPage;
}
......
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