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

# Conflicts:
#	safety-eval-start/src/main/java/org/qinan/safetyeval/start/SafetyEvalApplication.java
dev
huwei 2026-07-03 10:33:34 +08:00
commit 8b546d1184
45 changed files with 880 additions and 86 deletions

View File

@ -34,7 +34,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler(BizException.class)
public ResponseEntity<SingleResponse<Void>> handleBizException(BizException exception) {
String message = message("error." + exception.getCode(), exception.getMessage());
return response(HttpStatus.BAD_REQUEST, exception.getCode(), message);
return response(HttpStatus.OK, exception.getCode(), message);
}
@ExceptionHandler(MethodArgumentNotValidException.class)
@ -42,7 +42,7 @@ public class GlobalExceptionHandler {
MethodArgumentNotValidException exception) {
FieldError fieldError = exception.getBindingResult().getFieldError();
String fallback = fieldError == null ? null : fieldError.getDefaultMessage();
return response(HttpStatus.BAD_REQUEST, VALIDATION_ERROR_CODE,
return response(HttpStatus.OK, VALIDATION_ERROR_CODE,
message("validation.failed", fallback));
}
@ -50,27 +50,27 @@ public class GlobalExceptionHandler {
public ResponseEntity<SingleResponse<Void>> handleBindException(BindException exception) {
FieldError fieldError = exception.getBindingResult().getFieldError();
String fallback = fieldError == null ? null : fieldError.getDefaultMessage();
return response(HttpStatus.BAD_REQUEST, VALIDATION_ERROR_CODE,
return response(HttpStatus.OK, VALIDATION_ERROR_CODE,
message("validation.failed", fallback));
}
@ExceptionHandler(ConstraintViolationException.class)
public ResponseEntity<SingleResponse<Void>> handleConstraintViolation(
ConstraintViolationException exception) {
return response(HttpStatus.BAD_REQUEST, VALIDATION_ERROR_CODE,
return response(HttpStatus.OK, VALIDATION_ERROR_CODE,
message("validation.failed", exception.getMessage()));
}
@ExceptionHandler({HttpMessageNotReadableException.class, MissingServletRequestParameterException.class})
public ResponseEntity<SingleResponse<Void>> handleInvalidRequest(Exception exception) {
return response(HttpStatus.BAD_REQUEST, VALIDATION_ERROR_CODE,
return response(HttpStatus.OK, VALIDATION_ERROR_CODE,
message("request.invalid", exception.getMessage()));
}
@ExceptionHandler(Exception.class)
public ResponseEntity<SingleResponse<Void>> handleUnexpectedException(Exception exception) {
LOGGER.error("Unhandled controller exception", exception);
return response(HttpStatus.INTERNAL_SERVER_ERROR, SYSTEM_ERROR_CODE,
return response(HttpStatus.OK, SYSTEM_ERROR_CODE,
message("system.error", "Internal server error"));
}

View File

@ -1,14 +1,22 @@
package org.qinan.safetyeval.adapter.web;
import cn.hutool.json.JSONUtil;
import com.jjb.saas.message.client.message.facede.MessageFacade;
import com.jjb.saas.message.client.message.request.MessageSendCmd;
import com.jjb.saas.message.client.message.request.MessageTargetCmd;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import java.util.UUID;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.config.annotation.DubboReference;
import org.qinan.safetyeval.client.api.AccountApi;
import org.qinan.safetyeval.client.co.AccountCO;
import org.qinan.safetyeval.client.dto.AccountAddCmd;
import org.qinan.safetyeval.client.dto.AccountModifyCmd;
import org.qinan.safetyeval.client.dto.AccountPageQuery;
import org.qinan.safetyeval.client.dto.PageResponse;
import org.qinan.safetyeval.client.dto.SendMessageCmd;
import org.qinan.safetyeval.client.dto.SingleResponse;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
@ -25,6 +33,7 @@ import javax.annotation.Resource;
*
* @author safety-eval
*/
@Slf4j
@Api(tags = "用户管理")
@RestController
@RequestMapping("/safetyEval/account")
@ -33,6 +42,9 @@ public class AccountController {
@Resource
private AccountApi accountApi;
@DubboReference
private MessageFacade messageFacade;
@ApiOperation("新增用户")
@PostMapping("/save")
public SingleResponse<AccountCO> add(@Validated @RequestBody AccountAddCmd cmd) {
@ -62,4 +74,27 @@ public class AccountController {
public PageResponse<AccountCO> page(@Validated AccountPageQuery query) {
return accountApi.page(query);
}
@ApiOperation("发送短信")
@PostMapping("/sendMessage")
public com.alibaba.cola.dto.SingleResponse<Boolean> sendMessage(@Validated @RequestBody SendMessageCmd cmd) {
MessageSendCmd messageSendCmd = new MessageSendCmd();
messageSendCmd.setBusinessId(UUID.randomUUID().toString().replace("-", ""));
MessageTargetCmd messageTargetCmd = new MessageTargetCmd();
messageTargetCmd.setUserId(cmd.getUserId());
messageTargetCmd.setMobile(cmd.getMobile());
messageSendCmd.setTargetCmd(messageTargetCmd);
messageSendCmd.setSourceCode("MS000146");
messageSendCmd.setNeedTokenEnum(false);
messageSendCmd.setParams(cmd.getParams());
log.info("发送短信参数: messageSendCmd: {}", JSONUtil.toJsonStr(messageSendCmd));
com.alibaba.cola.dto.SingleResponse<Boolean> result = messageFacade.send(messageSendCmd);
log.info("发送短信结果: result: {}", JSONUtil.toJsonStr(result));
return result;
}
}

View File

@ -1,12 +1,13 @@
package org.qinan.safetyeval.adapter.web;
import io.swagger.annotations.Api;
import org.qinan.safetyeval.client.dto.*;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.qinan.safetyeval.client.api.QualFilingChangeApi;
import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO;
import org.qinan.safetyeval.client.co.QualFilingChangeCO;
import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO;
import org.qinan.safetyeval.client.dto.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -26,23 +27,6 @@ public class QualFilingChangeController {
@Resource
private QualFilingChangeApi qualFilingChangeApi;
@ApiOperation("新增备案变更")
@PostMapping("/save")
public SingleResponse<QualFilingChangeCO> add(@Validated @RequestBody QualFilingChangeAddCmd cmd) {
return qualFilingChangeApi.add(cmd);
}
@ApiOperation("查询备案变更详情")
@GetMapping("/get")
public SingleResponse<QualFilingChangeCO> get(@ApiParam("主键ID") @RequestParam Long id) {
return qualFilingChangeApi.get(id);
}
@ApiOperation("修改备案变更")
@PostMapping("/modify")
public SingleResponse<QualFilingChangeCO> modify(@Validated @RequestBody QualFilingChangeModifyCmd cmd) {
return qualFilingChangeApi.modify(cmd);
}
@ApiOperation("删除备案变更")
@PostMapping("/delete")
@ -56,17 +40,6 @@ public class QualFilingChangeController {
return qualFilingChangeApi.page(query);
}
@ApiOperation("发起备案变更(克隆草稿)")
@PostMapping("/start")
public SingleResponse<Long> start(@ApiParam("备案申请id") @RequestParam Long filingId) {
return qualFilingChangeApi.start(filingId);
}
@ApiOperation("提交备案变更")
@PostMapping("/submit")
public SingleResponse<Void> submit(@Validated @RequestBody org.qinan.safetyeval.client.dto.QualFilingChangeSubmitCmd cmd) {
return qualFilingChangeApi.submit(cmd);
}
@ApiOperation("备案变更历史")
@GetMapping("/history")
@ -75,17 +48,6 @@ public class QualFilingChangeController {
return qualFilingChangeApi.history(filingId);
}
@ApiOperation("变更审核通过")
@PostMapping("/approve")
public SingleResponse<Void> approve(@ApiParam("备案变更id") @RequestParam Long changeId) {
return qualFilingChangeApi.approve(changeId);
}
@ApiOperation("变更审核打回")
@PostMapping("/reject")
public SingleResponse<Void> reject(@Validated @RequestBody QualFilingRejectCmd cmd) {
return qualFilingChangeApi.reject(cmd);
}
@ApiOperation("聚合新增or编辑资质备案变更申请")
@PostMapping("/aggregationSaveOrEdit")
@ -98,4 +60,17 @@ public class QualFilingChangeController {
public SingleResponse<List<QualFilingChangeComplianceCheckResultCO>> complianceCheck(@ApiParam("主键ID") @RequestParam Long id) {
return qualFilingChangeApi.complianceCheck(id);
}
@ApiOperation("审核")
@PostMapping("/review")
public SingleResponse<Void> review(@Validated @RequestBody QualFilingChangeReviewAddCmd cmd) {
qualFilingChangeApi.review(cmd);
return SingleResponse.success();
}
@ApiOperation("备案变更详情5表聚合")
@GetMapping("/detail")
public SingleResponse<QualFilingChangeAggregationCO> detail(@ApiParam("主键ID") @RequestParam Long id) {
return qualFilingChangeApi.detail(id);
}
}

View File

@ -1,8 +1,10 @@
package org.qinan.safetyeval.app.change.convertor;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.qinan.safetyeval.client.dto.QualFilingChangeAddCmd;
import org.qinan.safetyeval.domain.entity.QualFilingChangeEntity;
import org.qinan.safetyeval.domain.entity.QualFilingEntity;
/**
*
@ -19,4 +21,17 @@ public interface QualFilingChangeCmdConvertor {
* @return
*/
QualFilingChangeEntity convertCmdToE(QualFilingChangeAddCmd qualFilingChangeAddCmd);
/**
*
* id 使 changeFilingId
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "originFilingId", ignore = true)
@Mapping(target = "rejectReason", ignore = true)
@Mapping(target = "submitTime", ignore = true)
@Mapping(target = "approveTime", ignore = true)
@Mapping(target = "applyTypeCode", ignore = true)
@Mapping(target = "applyTypeName", ignore = true)
QualFilingEntity convertChangeEToEntity(QualFilingChangeEntity changeEntity);
}

View File

@ -4,7 +4,9 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.qinan.safetyeval.client.change.request.QualFilingCommitmentChangeAddCmd;
import org.qinan.safetyeval.client.change.request.QualFilingCommitmentChangeUpdateCmd;
import org.qinan.safetyeval.client.co.QualFilingCommitmentCO;
import org.qinan.safetyeval.domain.change.model.QualFilingCommitmentChangeE;
import org.qinan.safetyeval.domain.entity.QualFilingCommitmentEntity;
/**
* -
@ -31,4 +33,19 @@ public interface QualFilingCommitmentChangeCmdConvertor {
*/
@Mapping(target = "qualFilingCommitmentChangeGateway", ignore = true)
QualFilingCommitmentChangeE convertCmdToE(QualFilingCommitmentChangeUpdateCmd qualFilingCommitmentChangeUpdateCmd);
/**
*
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "filingId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "orgId", ignore = true)
QualFilingCommitmentEntity convertChangeEToEntity(QualFilingCommitmentChangeE changeE);
/**
* CO
*/
@Mapping(source = "filingChangeId", target = "filingId")
QualFilingCommitmentCO convertChangeEToCO(QualFilingCommitmentChangeE changeE);
}

View File

@ -4,7 +4,11 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.qinan.safetyeval.client.change.request.QualFilingEquipmentChangeAddCmd;
import org.qinan.safetyeval.client.change.request.QualFilingEquipmentChangeUpdateCmd;
import org.qinan.safetyeval.client.co.QualFilingEquipmentCO;
import org.qinan.safetyeval.domain.change.model.QualFilingEquipmentChangeE;
import org.qinan.safetyeval.domain.entity.QualFilingEquipmentEntity;
import java.util.List;
/**
* -
@ -31,4 +35,29 @@ public interface QualFilingEquipmentChangeCmdConvertor {
*/
@Mapping(target = "qualFilingEquipmentChangeGateway", ignore = true)
QualFilingEquipmentChangeE convertCmdToE(QualFilingEquipmentChangeUpdateCmd qualFilingEquipmentChangeUpdateCmd);
/**
*
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "filingId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "orgId", ignore = true)
QualFilingEquipmentEntity convertChangeEToEntity(QualFilingEquipmentChangeE changeE);
/**
*
*/
List<QualFilingEquipmentEntity> convertChangeEListToEntityList(List<QualFilingEquipmentChangeE> changeEs);
/**
* CO
*/
@Mapping(source = "filingChangeId", target = "filingId")
QualFilingEquipmentCO convertChangeEToCO(QualFilingEquipmentChangeE changeE);
/**
* CO
*/
List<QualFilingEquipmentCO> convertChangeEListToCOList(List<QualFilingEquipmentChangeE> changeEs);
}

View File

@ -4,7 +4,11 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.qinan.safetyeval.client.change.request.QualFilingMaterialChangeAddCmd;
import org.qinan.safetyeval.client.change.request.QualFilingMaterialChangeUpdateCmd;
import org.qinan.safetyeval.client.co.QualFilingMaterialCO;
import org.qinan.safetyeval.domain.change.model.QualFilingMaterialChangeE;
import org.qinan.safetyeval.domain.entity.QualFilingMaterialEntity;
import java.util.List;
/**
* -
@ -31,4 +35,30 @@ public interface QualFilingMaterialChangeCmdConvertor {
*/
@Mapping(target = "qualFilingMaterialChangeGateway", ignore = true)
QualFilingMaterialChangeE convertCmdToE(QualFilingMaterialChangeUpdateCmd qualFilingMaterialChangeUpdateCmd);
/**
*
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "filingId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "orgId", ignore = true)
QualFilingMaterialEntity convertChangeEToEntity(QualFilingMaterialChangeE changeE);
/**
*
*/
List<QualFilingMaterialEntity> convertChangeEListToEntityList(List<QualFilingMaterialChangeE> changeEs);
/**
* CO
*/
@Mapping(source = "filingChangeId", target = "filingId")
@Mapping(target = "materialType", ignore = true)
QualFilingMaterialCO convertChangeEToCO(QualFilingMaterialChangeE changeE);
/**
* CO
*/
List<QualFilingMaterialCO> convertChangeEListToCOList(List<QualFilingMaterialChangeE> changeEs);
}

View File

@ -4,7 +4,11 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.qinan.safetyeval.client.change.request.QualFilingPersonnelCertChangeAddCmd;
import org.qinan.safetyeval.client.change.request.QualFilingPersonnelCertChangeUpdateCmd;
import org.qinan.safetyeval.client.co.QualFilingPersonnelCertCO;
import org.qinan.safetyeval.domain.change.model.QualFilingPersonnelCertChangeE;
import org.qinan.safetyeval.domain.entity.QualFilingPersonnelCertEntity;
import java.util.List;
/**
*
@ -31,4 +35,29 @@ public interface QualFilingPersonnelCertChangeCmdConvertor {
*/
@Mapping(target = "qualFilingPersonnelCertChangeGateway", ignore = true)
QualFilingPersonnelCertChangeE convertCmdToE(QualFilingPersonnelCertChangeUpdateCmd qualFilingPersonnelCertChangeUpdateCmd);
/**
*
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "filingId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "orgId", ignore = true)
QualFilingPersonnelCertEntity convertChangeEToEntity(QualFilingPersonnelCertChangeE changeE);
/**
*
*/
List<QualFilingPersonnelCertEntity> convertChangeEListToEntityList(List<QualFilingPersonnelCertChangeE> changeEs);
/**
* CO
*/
@Mapping(source = "filingChangeId", target = "filingId")
QualFilingPersonnelCertCO convertChangeEToCO(QualFilingPersonnelCertChangeE changeE);
/**
* CO
*/
List<QualFilingPersonnelCertCO> convertChangeEListToCOList(List<QualFilingPersonnelCertChangeE> changeEs);
}

View File

@ -4,7 +4,11 @@ import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.qinan.safetyeval.client.change.request.QualFilingPersonnelChangeAddCmd;
import org.qinan.safetyeval.client.change.request.QualFilingPersonnelChangeUpdateCmd;
import org.qinan.safetyeval.client.co.QualFilingPersonnelCO;
import org.qinan.safetyeval.domain.change.model.QualFilingPersonnelChangeE;
import org.qinan.safetyeval.domain.entity.QualFilingPersonnelEntity;
import java.util.List;
/**
* -
@ -31,4 +35,29 @@ public interface QualFilingPersonnelChangeCmdConvertor {
*/
@Mapping(target = "qualFilingPersonnelChangeGateway", ignore = true)
QualFilingPersonnelChangeE convertCmdToE(QualFilingPersonnelChangeUpdateCmd qualFilingPersonnelChangeUpdateCmd);
/**
*
*/
@Mapping(target = "id", ignore = true)
@Mapping(target = "filingId", ignore = true)
@Mapping(target = "tenantId", ignore = true)
@Mapping(target = "orgId", ignore = true)
QualFilingPersonnelEntity convertChangeEToEntity(QualFilingPersonnelChangeE changeE);
/**
*
*/
List<QualFilingPersonnelEntity> convertChangeEListToEntityList(List<QualFilingPersonnelChangeE> changeEs);
/**
* CO
*/
@Mapping(source = "filingChangeId", target = "filingId")
QualFilingPersonnelCO convertChangeEToCO(QualFilingPersonnelChangeE changeE);
/**
* CO
*/
List<QualFilingPersonnelCO> convertChangeEListToCOList(List<QualFilingPersonnelChangeE> changeEs);
}

View File

@ -1,5 +1,8 @@
package org.qinan.safetyeval.app.executor;
import com.jjb.saas.system.client.user.request.UserAddCmd;
import com.zcloud.gbscommon.utils.MD5;
import com.zcloud.gbscommon.utils.Sm2Util;
import org.qinan.safetyeval.client.api.AccountApi;
import org.qinan.safetyeval.client.co.AccountCO;
import org.qinan.safetyeval.client.dto.AccountAddCmd;
@ -12,9 +15,12 @@ import org.qinan.safetyeval.domain.query.AccountQuery;
import org.qinan.safetyeval.domain.query.PageResult;
import org.qinan.safetyeval.domain.service.AccountDomainService;
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
import org.qinan.safetyeval.infrastructure.adapter.gbs.GbsUserFacadeClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* App
@ -27,8 +33,15 @@ public class AccountExecutor implements AccountApi {
@Lazy
@Autowired(required = false)
private AccountDomainService accountDomainService;
@Autowired
private GbsUserFacadeClient gbsUserFacadeClient;
@Value("${def.password:a123456}")
private String defPassword;
@Value("${def.publicKey:0402df2195296d4062ac85ad766994d73e871b887e18efb9a9a06b4cebc72372869b7da6c347c129dee2b46a0f279ff066b01c76208c2a052af75977c722a2ccee}")
private String publicKey;
@Override
@Transactional(rollbackFor = Exception.class)
public SingleResponse<AccountCO> add(AccountAddCmd cmd) {
AccountEntity entity = new AccountEntity();
entity.setUserName(cmd.getUserName());
@ -37,8 +50,16 @@ public class AccountExecutor implements AccountApi {
entity.setPassword(cmd.getPassword());
entity.setProfileUrl(cmd.getProfileUrl());
entity.setType(cmd.getType());
AccountEntity result = accountDomainService.add(entity);
// 同步gbs用户
UserAddCmd userAddCmd = new UserAddCmd();
userAddCmd.setId(result.getId());
userAddCmd.setAccount(result.getAccount());
userAddCmd.setTenantId(result.getTenantId());
userAddCmd.setName(result.getUserName());
String encrypt = Sm2Util.encryptHex(MD5.md5(defPassword), publicKey);
userAddCmd.setPassword(encrypt);
gbsUserFacadeClient.add(userAddCmd);
return SingleResponse.success(toCO(result));
}

View File

@ -3,27 +3,38 @@ package org.qinan.safetyeval.app.executor;
import org.qinan.safetyeval.app.change.convertor.*;
import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator;
import org.qinan.safetyeval.client.api.QualFilingChangeApi;
import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO;
import org.qinan.safetyeval.client.co.QualFilingChangeCO;
import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO;
import org.qinan.safetyeval.client.co.QualFilingChangeHistoryCO;
import org.qinan.safetyeval.client.dto.*;
import org.qinan.safetyeval.domain.change.gateway.*;
import org.qinan.safetyeval.domain.gateway.QualFilingChangeDetailGateway;
import org.qinan.safetyeval.domain.change.model.*;
import org.qinan.safetyeval.domain.constant.QualFilingFormStepEnum;
import org.qinan.safetyeval.domain.constant.QualFilingReviewResultEnum;
import org.qinan.safetyeval.domain.constant.QualFilingStatusEnum;
import org.qinan.safetyeval.domain.entity.QualFilingChangeEntity;
import org.qinan.safetyeval.domain.entity.*;
import org.qinan.safetyeval.domain.exception.BizException;
import org.qinan.safetyeval.domain.exception.ErrorCode;
import org.qinan.safetyeval.domain.query.PageResult;
import org.qinan.safetyeval.domain.query.QualFilingChangeQuery;
import org.qinan.safetyeval.domain.service.QualFilingChangeDomainService;
import org.qinan.safetyeval.domain.service.QualFilingDomainService;
import org.qinan.safetyeval.domain.service.QualFilingReviewDomainService;
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@ -36,6 +47,14 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
@Autowired(required = false)
private QualFilingChangeDomainService qualFilingChangeDomainService;
@Lazy
@Autowired(required = false)
private QualFilingDomainService qualFilingDomainService;
@Lazy
@Autowired(required = false)
private QualFilingReviewDomainService qualFilingReviewDomainService;
@Resource
private QualFilingOrchestrator qualFilingOrchestrator;
@Resource
@ -51,6 +70,20 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
@Resource
private QualFilingPersonnelCertChangeCmdConvertor qualFilingPersonnelCertChangeCmdConvertor;
@Resource
private QualFilingCommitmentChangeGateway qualFilingCommitmentChangeGateway;
@Resource
private QualFilingEquipmentChangeGateway qualFilingEquipmentChangeGateway;
@Resource
private QualFilingMaterialChangeGateway qualFilingMaterialChangeGateway;
@Resource
private QualFilingPersonnelChangeGateway qualFilingPersonnelChangeGateway;
@Resource
private QualFilingPersonnelCertChangeGateway qualFilingPersonnelCertChangeGateway;
@Resource
private QualFilingChangeDetailGateway qualFilingChangeDetailGateway;
@Override
public SingleResponse<QualFilingChangeCO> add(QualFilingChangeAddCmd cmd) {
QualFilingChangeEntity entity = new QualFilingChangeEntity();
@ -176,11 +209,10 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
}
@Override
@Transactional(rollbackFor = Exception.class)
public SingleResponse<QualFilingChangeCO> aggregationSaveOrEdit(AggregationSaveOrEditQualFilingChangeCmd cmd) {
validateBeforeSaveOrEdit(cmd);
QualFilingChangeCO co = new QualFilingChangeCO();
// 变更基本信息
QualFilingChangeEntity entity = qualFilingChangeCmdConvertor.convertCmdToE(cmd.getQualFilingChangeAddCmd());
@ -210,12 +242,157 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
.collect(Collectors.toList());
}
// 编辑场景:对比请求数据与已有变更数据,生成变更明细
if (!cmd.isAdd()) {
Long changeId = cmd.getQualFilingChangeAddCmd().getId();
List<QualFilingChangeDetailEntity> details = diffFromCmd(changeId
, entity, commitmentEntity, equipmentEntities
, materialEntities, personnelEntities, personnelCertEntities);
// 根据changeId先删除原有变更明细再新增
List<QualFilingChangeDetailEntity> existingDetails = qualFilingChangeDetailGateway.listByChangeId(changeId);
if (!CollectionUtils.isEmpty(existingDetails)) {
existingDetails.forEach(d -> qualFilingChangeDetailGateway.delete(d.getId()));
}
if (!CollectionUtils.isEmpty(details)) {
String operatorName = AuthUserContextAdapter.getCurrentUserName();
details.forEach(d -> {
d.setCreateName(operatorName);
qualFilingChangeDetailGateway.save(d);
});
}
}
Long id = qualFilingChangeDomainService.aggregationSaveOrEdit(entity, commitmentEntity
, equipmentEntities, materialEntities, personnelEntities, personnelCertEntities);
QualFilingChangeCO co = new QualFilingChangeCO();
co.setId(id);
return SingleResponse.success(co);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void review(QualFilingChangeReviewAddCmd cmd) {
Long changeFilingId = cmd.getChangeFilingId();
// 查询变更基本信息
QualFilingChangeEntity changeEntity = qualFilingChangeDomainService.get(changeFilingId);
if (changeEntity == null) {
throw new BizException(ErrorCode.QUAL_FILING_CHANGE_NOT_FOUND);
}
QualFilingChangeEntity updateE = qualFilingChangeDomainService.get(changeFilingId);
updateE.setId(changeFilingId);
// 构建并保存审核记录
QualFilingReviewEntity reviewEntity = new QualFilingReviewEntity();
reviewEntity.setFilingId(changeEntity.getChangeFilingId());
reviewEntity.setReviewResult(cmd.getReviewResult());
reviewEntity.setFilingExpertId(cmd.getFilingExpertId());
reviewEntity.setFilingExpertName(cmd.getFilingExpertName());
reviewEntity.setReviewOpinion(cmd.getReviewOpinion());
reviewEntity = qualFilingReviewDomainService.add(reviewEntity);
// 更新变更记录的 filing_review_id 和 filing_status_code
updateE.setFilingReviewId(reviewEntity.getId());
// 审核通过:将变更数据同步到正式备案表
if (QualFilingReviewResultEnum.PASS.getName().equals(cmd.getReviewResult())) {
updateE.setFilingStatusCode(QualFilingStatusEnum.FILED.getCode());
updateE.setFilingStatusName(QualFilingStatusEnum.FILED.getName());
// 转换变更基本信息 → 备案实体
QualFilingEntity entity = qualFilingChangeCmdConvertor.convertChangeEToEntity(changeEntity);
entity.setId(changeEntity.getChangeFilingId());
// 查询并转换承诺书
QualFilingCommitmentChangeE commitmentChangeE = qualFilingCommitmentChangeGateway.getByFilingId(changeFilingId);
QualFilingCommitmentEntity commitmentEntity = null;
if (commitmentChangeE != null) {
commitmentEntity = qualFilingCommitmentChangeCmdConvertor.convertChangeEToEntity(commitmentChangeE);
commitmentEntity.setFilingId(changeEntity.getChangeFilingId());
}
// 查询并转换装备清单
List<QualFilingEquipmentChangeE> equipmentChangeEs = qualFilingEquipmentChangeGateway.listByFilingId(changeFilingId);
List<QualFilingEquipmentEntity> equipmentEntities = qualFilingEquipmentChangeCmdConvertor.convertChangeEListToEntityList(equipmentChangeEs);
equipmentEntities.forEach(e -> e.setFilingId(changeEntity.getChangeFilingId()));
// 查询并转换材料清单
List<QualFilingMaterialChangeE> materialChangeEs = qualFilingMaterialChangeGateway.listByFilingId(changeFilingId);
List<QualFilingMaterialEntity> materialEntities = qualFilingMaterialChangeCmdConvertor.convertChangeEListToEntityList(materialChangeEs);
materialEntities.forEach(e -> e.setFilingId(changeEntity.getChangeFilingId()));
// 查询并转换人员
List<QualFilingPersonnelChangeE> personnelChangeEs = qualFilingPersonnelChangeGateway.listByFilingId(changeFilingId);
List<QualFilingPersonnelEntity> personnelEntities = qualFilingPersonnelChangeCmdConvertor.convertChangeEListToEntityList(personnelChangeEs);
personnelEntities.forEach(e -> e.setFilingId(changeEntity.getChangeFilingId()));
// 查询并转换人员证书
List<QualFilingPersonnelCertChangeE> personnelCertChangeEs = qualFilingPersonnelCertChangeGateway.listByFilingId(changeFilingId);
List<QualFilingPersonnelCertEntity> personnelCertEntities = qualFilingPersonnelCertChangeCmdConvertor.convertChangeEListToEntityList(personnelCertChangeEs);
personnelCertEntities.forEach(e -> e.setFilingId(changeEntity.getChangeFilingId()));
// 调用聚合保存,将变更数据写入正式备案表
qualFilingDomainService.aggregationSaveOrEdit(entity, commitmentEntity, equipmentEntities, materialEntities, personnelEntities, personnelCertEntities);
} else {
updateE.setFilingStatusCode(QualFilingStatusEnum.REJECTED.getCode());
updateE.setFilingStatusName(QualFilingStatusEnum.REJECTED.getName());
}
// 更新变更记录
qualFilingChangeDomainService.modify(updateE);
}
@Override
public SingleResponse<QualFilingChangeAggregationCO> detail(Long id) {
// 查询变更主记录
QualFilingChangeEntity changeEntity = qualFilingChangeDomainService.get(id);
if (changeEntity == null) {
throw new BizException(ErrorCode.QUAL_FILING_CHANGE_NOT_FOUND);
}
QualFilingChangeAggregationCO detail = new QualFilingChangeAggregationCO();
BeanUtils.copyProperties(toCO(changeEntity), detail);
Long changeFilingId = changeEntity.getChangeFilingId();
if (changeFilingId == null) {
return SingleResponse.success(detail);
}
// 承诺书
QualFilingCommitmentChangeE commitmentChangeE = qualFilingCommitmentChangeGateway.getByFilingId(changeFilingId);
if (commitmentChangeE != null) {
detail.setCommitment(qualFilingCommitmentChangeCmdConvertor.convertChangeEToCO(commitmentChangeE));
}
// 装备清单
List<QualFilingEquipmentChangeE> equipmentChangeEs = qualFilingEquipmentChangeGateway.listByFilingId(changeFilingId);
if (!CollectionUtils.isEmpty(equipmentChangeEs)) {
detail.setEquipmentList(qualFilingEquipmentChangeCmdConvertor.convertChangeEListToCOList(equipmentChangeEs));
}
// 材料清单
List<QualFilingMaterialChangeE> materialChangeEs = qualFilingMaterialChangeGateway.listByFilingId(changeFilingId);
if (!CollectionUtils.isEmpty(materialChangeEs)) {
detail.setMaterialList(qualFilingMaterialChangeCmdConvertor.convertChangeEListToCOList(materialChangeEs));
}
// 人员清单
List<QualFilingPersonnelChangeE> personnelChangeEs = qualFilingPersonnelChangeGateway.listByFilingId(changeFilingId);
if (!CollectionUtils.isEmpty(personnelChangeEs)) {
detail.setPersonnelList(qualFilingPersonnelChangeCmdConvertor.convertChangeEListToCOList(personnelChangeEs));
}
// 人员证书清单
List<QualFilingPersonnelCertChangeE> personnelCertChangeEs = qualFilingPersonnelCertChangeGateway.listByFilingId(changeFilingId);
if (!CollectionUtils.isEmpty(personnelCertChangeEs)) {
detail.setPersonnelCertList(qualFilingPersonnelCertChangeCmdConvertor.convertChangeEListToCOList(personnelCertChangeEs));
}
return SingleResponse.success(detail);
}
/**
*
* <ul>
@ -246,6 +423,154 @@ public class QualFilingChangeExecutor implements QualFilingChangeApi {
}
}
/**
*
*/
private List<QualFilingChangeDetailEntity> diffFromCmd(
Long changeId, QualFilingChangeEntity newEntity, QualFilingCommitmentChangeE newCommitment,
List<QualFilingEquipmentChangeE> newEquipments, List<QualFilingMaterialChangeE> newMaterials,
List<QualFilingPersonnelChangeE> newPersonnel, List<QualFilingPersonnelCertChangeE> newCerts) {
List<QualFilingChangeDetailEntity> details = new ArrayList<>();
// 基本信息变更
QualFilingChangeEntity existingEntity = qualFilingChangeDomainService.get(changeId);
if (existingEntity != null && basicInfoChanged(existingEntity, newEntity)) {
details.add(stepDetail(changeId, QualFilingFormStepEnum.BASIC_INFO, "备案基本信息变更",
summarizeBasic(existingEntity), summarizeBasic(newEntity)));
}
// 承诺书变更
QualFilingCommitmentChangeE existingCommitment = qualFilingCommitmentChangeGateway.getByFilingId(changeId);
if (commitmentChanged(existingCommitment, newCommitment)) {
details.add(stepDetail(changeId, QualFilingFormStepEnum.COMMITMENT, "法定代表人承诺书变更",
"承诺书", "承诺书已变更"));
}
// 装备清单变更
List<QualFilingEquipmentChangeE> existingEquipments = qualFilingEquipmentChangeGateway.listByFilingId(changeId);
if (equipmentListChanged(existingEquipments, newEquipments)) {
details.add(stepDetail(changeId, QualFilingFormStepEnum.EQUIPMENT, "装备清单变更",
"装备清单", "装备清单已变更"));
}
// 材料清单变更
List<QualFilingMaterialChangeE> existingMaterials = qualFilingMaterialChangeGateway.listByFilingId(changeId);
if (materialListChanged(existingMaterials, newMaterials)) {
details.add(stepDetail(changeId, QualFilingFormStepEnum.MATERIALS, "备案材料上传变更",
"材料清单", "材料清单已变更"));
}
// 人员变更
List<QualFilingPersonnelChangeE> existingPersonnel = qualFilingPersonnelChangeGateway.listByFilingId(changeId);
if (personnelListChanged(existingPersonnel, newPersonnel)) {
details.add(stepDetail(changeId, QualFilingFormStepEnum.PERSONNEL, "备案人员管理变更",
"人员清单", "人员清单已变更"));
}
// 人员证书变更
List<QualFilingPersonnelCertChangeE> existingCerts = qualFilingPersonnelCertChangeGateway.listByFilingId(changeId);
if (certListChanged(existingCerts, newCerts)) {
details.add(stepDetail(changeId, QualFilingFormStepEnum.PERSONNEL, "备案人员证书变更",
"人员证书清单", "人员证书清单已变更"));
}
return details;
}
private boolean basicInfoChanged(QualFilingChangeEntity exist, QualFilingChangeEntity newEntity) {
return !Objects.equals(exist.getFilingTerritoryCode(), newEntity.getFilingTerritoryCode())
|| !Objects.equals(exist.getBusinessScope(), newEntity.getBusinessScope())
|| !Objects.equals(exist.getRegisterAddress(), newEntity.getRegisterAddress())
|| !Objects.equals(exist.getOfficeAddress(), newEntity.getOfficeAddress())
|| !Objects.equals(exist.getCreditCode(), newEntity.getCreditCode())
|| !Objects.equals(exist.getQualCertNo(), newEntity.getQualCertNo())
|| !Objects.equals(exist.getLegalPersonPhone(), newEntity.getLegalPersonPhone())
|| !Objects.equals(exist.getContactPhone(), newEntity.getContactPhone())
|| !Objects.equals(exist.getInfoDisclosureUrl(), newEntity.getInfoDisclosureUrl())
|| !Objects.equals(exist.getFixedAssetAmount(), newEntity.getFixedAssetAmount())
|| !Objects.equals(exist.getArchiveRoomArea(), newEntity.getArchiveRoomArea())
|| !Objects.equals(exist.getFulltimeEvaluatorCount(), newEntity.getFulltimeEvaluatorCount())
|| !Objects.equals(exist.getRegisteredEngineerCount(), newEntity.getRegisteredEngineerCount())
|| !Objects.equals(exist.getWorkplaceArea(), newEntity.getWorkplaceArea())
|| !Objects.equals(exist.getUnitIntro(), newEntity.getUnitIntro())
|| !Objects.equals(exist.getAttachmentUrl(), newEntity.getAttachmentUrl());
}
private String summarizeBasic(QualFilingChangeEntity entity) {
return entity.getFilingUnitName() + "|" + entity.getBusinessScope();
}
private boolean commitmentChanged(QualFilingCommitmentChangeE exist, QualFilingCommitmentChangeE newEntity) {
String existSig = exist == null ? "" : exist.getCommitmentContent() + "|" + exist.getLegalRepSignatureUrl()
+ "|" + exist.getSignDate() + "|" + exist.getLegalRepPersonnelId() + "|" + exist.getLegalRepName();
String newSig = newEntity == null ? "" : newEntity.getCommitmentContent() + "|" + newEntity.getLegalRepSignatureUrl()
+ "|" + newEntity.getSignDate() + "|" + newEntity.getLegalRepPersonnelId() + "|" + newEntity.getLegalRepName();
return !existSig.equals(newSig);
}
private boolean equipmentListChanged(List<QualFilingEquipmentChangeE> exist, List<QualFilingEquipmentChangeE> newList) {
return !equipmentSignature(exist).equals(equipmentSignature(newList));
}
private String equipmentSignature(List<QualFilingEquipmentChangeE> list) {
return safeList(list).stream()
.map(e -> e.getSourceEquipmentId() + ":" + e.getCalibrationReportUrl())
.sorted()
.collect(Collectors.joining(";"));
}
private boolean materialListChanged(List<QualFilingMaterialChangeE> exist, List<QualFilingMaterialChangeE> newList) {
return !materialSignature(exist).equals(materialSignature(newList));
}
private String materialSignature(List<QualFilingMaterialChangeE> list) {
return safeList(list).stream()
.map(m -> m.getMaterialContent() + ":" + m.getAttachmentUrl())
.sorted()
.collect(Collectors.joining(";"));
}
private boolean personnelListChanged(List<QualFilingPersonnelChangeE> exist, List<QualFilingPersonnelChangeE> newList) {
return !personnelSignature(exist).equals(personnelSignature(newList));
}
private String personnelSignature(List<QualFilingPersonnelChangeE> list) {
return safeList(list).stream()
.map(QualFilingPersonnelChangeE::getSourcePersonnelId)
.map(String::valueOf)
.sorted()
.collect(Collectors.joining(","));
}
private boolean certListChanged(List<QualFilingPersonnelCertChangeE> exist, List<QualFilingPersonnelCertChangeE> newList) {
return !certSignature(exist).equals(certSignature(newList));
}
private String certSignature(List<QualFilingPersonnelCertChangeE> list) {
return safeList(list).stream()
.map(c -> c.getSourceCertId() + ":" + c.getCertNo() + ":" + c.getCertAttachmentUrl())
.sorted()
.collect(Collectors.joining(";"));
}
private <T> List<T> safeList(List<T> list) {
return list == null ? Collections.emptyList() : list;
}
private QualFilingChangeDetailEntity stepDetail(Long changeId, QualFilingFormStepEnum step,
String content, String before, String after) {
QualFilingChangeDetailEntity detail = new QualFilingChangeDetailEntity();
detail.setChangeId(changeId);
detail.setFormStepCode(step.getCode());
detail.setFormStepName(step.getName());
detail.setChangeField("step:" + step.getCode());
detail.setChangeContent(content);
detail.setChangeItemName(step.getName());
detail.setBeforeValue(before);
detail.setAfterValue(after);
return detail;
}
private QualFilingChangeCO toCO(QualFilingChangeEntity entity) {
if (entity == null) {
return null;

View File

@ -1,23 +1,31 @@
package org.qinan.safetyeval.app.executor;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.qinan.safetyeval.app.orchestrator.QualFilingOrchestrator;
import org.qinan.safetyeval.client.api.QualFilingApi;
import org.qinan.safetyeval.client.change.request.QualFilingCommitmentChangeAddCmd;
import org.qinan.safetyeval.client.change.request.QualFilingEquipmentChangeAddCmd;
import org.qinan.safetyeval.client.change.request.QualFilingMaterialChangeAddCmd;
import org.qinan.safetyeval.client.change.request.QualFilingPersonnelChangeAddCmd;
import org.qinan.safetyeval.client.co.QualFilingCO;
import org.qinan.safetyeval.client.co.QualFilingComplianceCheckResultCO;
import org.qinan.safetyeval.client.co.QualFilingDetailCO;
import org.qinan.safetyeval.client.dto.*;
import org.qinan.safetyeval.domain.constant.QualFilingApplyTypeEnum;
import org.qinan.safetyeval.domain.constant.QualFilingReviewResultEnum;
import org.qinan.safetyeval.domain.entity.*;
import org.qinan.safetyeval.domain.query.PageResult;
import org.qinan.safetyeval.domain.service.QualFilingDomainService;
import org.qinan.safetyeval.infrastructure.dataobject.*;
import org.qinan.safetyeval.infrastructure.mapper.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@ -35,6 +43,22 @@ public class QualFilingExecutor implements QualFilingApi {
@Resource
private QualFilingOrchestrator qualFilingOrchestrator;
@Resource
private QualFilingChangeExecutor qualFilingChangeExecutor;
@Resource
private QualFilingMapper qualFilingMapper;
@Resource
private QualFilingCommitmentMapper qualFilingCommitmentMapper;
@Resource
private QualFilingEquipmentMapper qualFilingEquipmentMapper;
@Resource
private QualFilingMaterialMapper qualFilingMaterialMapper;
@Resource
private QualFilingPersonnelMapper qualFilingPersonnelMapper;
@Resource
private QualFilingPersonnelCertMapper qualFilingPersonnelCertMapper;
@Override
public SingleResponse<QualFilingCO> add(QualFilingAddCmd cmd) {
QualFilingEntity entity = new QualFilingEntity();
@ -179,8 +203,50 @@ public class QualFilingExecutor implements QualFilingApi {
}
@Override
@Transactional(rollbackFor = Exception.class)
public void review(QualFilingReviewAddCmd cmd) {
qualFilingDomainService.review(cmd.getFilingId(), cmd.getReviewResult(), cmd.getReviewResultRemark(), cmd.getFilingExpertId(), cmd.getFilingExpertName(), cmd.getReviewOpinion());
if (QualFilingReviewResultEnum.PASS.getCode() == Integer.parseInt(cmd.getReviewResult())) {
// 审核通过,需要新增资质变更记录
AggregationSaveOrEditQualFilingChangeCmd cmdSync = new AggregationSaveOrEditQualFilingChangeCmd();
// 基本信息
QualFilingDO qualFilingDO = qualFilingMapper.selectById(cmd.getFilingId());
QualFilingChangeAddCmd qualFilingChangeAddCmd = new QualFilingChangeAddCmd();
BeanUtils.copyProperties(qualFilingDO, qualFilingChangeAddCmd, "id");
qualFilingChangeAddCmd.setFilingId(qualFilingDO.getId());
cmdSync.setQualFilingChangeAddCmd(qualFilingChangeAddCmd);
// 备案承诺书
QualFilingCommitmentDO qualFilingCommitmentDO = qualFilingCommitmentMapper.selectOne(new LambdaQueryWrapper<QualFilingCommitmentDO>()
.eq(QualFilingCommitmentDO::getFilingId, cmd.getFilingId()));
QualFilingCommitmentChangeAddCmd qualFilingCommitmentChangeAddCmd = new QualFilingCommitmentChangeAddCmd();
BeanUtils.copyProperties(qualFilingCommitmentDO, qualFilingCommitmentChangeAddCmd);
cmdSync.setQualFilingCommitmentChangeAddCmd(qualFilingCommitmentChangeAddCmd);
// 备案装备
List<QualFilingEquipmentDO> qualFilingEquipmentDOs = qualFilingEquipmentMapper.selectList(new LambdaQueryWrapper<QualFilingEquipmentDO>()
.eq(QualFilingEquipmentDO::getFilingId, cmd.getFilingId()));
cmdSync.setQualFilingEquipmentChangeAddCmds(qualFilingEquipmentDOs.stream().map(item -> {
QualFilingEquipmentChangeAddCmd qualFilingEquipmentChangeAddCmd = new QualFilingEquipmentChangeAddCmd();
BeanUtils.copyProperties(item, qualFilingEquipmentChangeAddCmd);
return qualFilingEquipmentChangeAddCmd;
}).collect(Collectors.toList()));
// 备案材料清单
List<QualFilingMaterialDO> qualFilingMaterialDOs = qualFilingMaterialMapper.selectList(new LambdaQueryWrapper<QualFilingMaterialDO>()
.eq(QualFilingMaterialDO::getFilingId, cmd.getFilingId()));
cmdSync.setQualFilingMaterialChangeAddCmds(qualFilingMaterialDOs.stream().map(item -> {
QualFilingMaterialChangeAddCmd qualFilingMaterialChangeAddCmd = new QualFilingMaterialChangeAddCmd();
BeanUtils.copyProperties(item, qualFilingMaterialChangeAddCmd);
return qualFilingMaterialChangeAddCmd;
}).collect(Collectors.toList()));
// 备案人员
List<QualFilingPersonnelDO> qualFilingPersonnelDOs = qualFilingPersonnelMapper.selectList(new LambdaQueryWrapper<QualFilingPersonnelDO>()
.eq(QualFilingPersonnelDO::getFilingId, cmd.getFilingId()));
cmdSync.setQualFilingPersonnelChangeAddCmds(qualFilingPersonnelDOs.stream().map(item -> {
QualFilingPersonnelChangeAddCmd qualFilingPersonnelChangeAddCmd = new QualFilingPersonnelChangeAddCmd();
BeanUtils.copyProperties(item, qualFilingPersonnelChangeAddCmd);
return qualFilingPersonnelChangeAddCmd;
}).collect(Collectors.toList()));
qualFilingChangeExecutor.aggregationSaveOrEdit(cmdSync);
}
}
private QualFilingCO toLegacyCO(QualFilingEntity entity) {

View File

@ -214,15 +214,7 @@ public class QualFilingOrchestrator {
domainQuery.setSupervision(query.getSupervision());
PageResult<QualFilingEntity> pageResult = qualFilingGateway.page(domainQuery);
List<QualFilingCO> records = pageResult.getRecords().stream()
.map(entity -> {
QualFilingCO co = toCO(entity);
Long originId = entity.getApplyTypeCode() != null
&& entity.getApplyTypeCode() == QualFilingApplyTypeEnum.CHANGE_DRAFT.getCode()
&& entity.getOriginFilingId() != null
? entity.getOriginFilingId() : entity.getId();
co.setChangeCount(qualFilingChangeDetailGateway.countByFilingId(originId));
return co;
})
.map(entity -> toCO(entity))
.collect(Collectors.toList());
return PageResult.of(records, pageResult.getTotal(), pageResult.getPageNum(), pageResult.getPageSize());
}
@ -685,6 +677,7 @@ public class QualFilingOrchestrator {
co.setUploadStatusName(entity.getUploadStatusName());
co.setAttachmentDesc(entity.getAttachmentDesc());
co.setAttachmentUrl(entity.getAttachmentUrl());
co.setMaterialType(entity.getMaterialType());
co.setMaterialRemark(entity.getMaterialRemark());
co.setTenantId(entity.getTenantId());
return co;

View File

@ -1,5 +1,6 @@
package org.qinan.safetyeval.client.api;
import org.qinan.safetyeval.client.co.QualFilingChangeAggregationCO;
import org.qinan.safetyeval.client.co.QualFilingChangeComplianceCheckResultCO;
import org.qinan.safetyeval.client.co.QualFilingChangeHistoryCO;
import org.qinan.safetyeval.client.co.QualFilingChangeCO;
@ -9,6 +10,7 @@ import org.qinan.safetyeval.client.dto.SingleResponse;
import org.qinan.safetyeval.client.dto.QualFilingChangeAddCmd;
import org.qinan.safetyeval.client.dto.QualFilingChangeModifyCmd;
import org.qinan.safetyeval.client.dto.QualFilingChangePageQuery;
import org.qinan.safetyeval.client.dto.QualFilingChangeReviewAddCmd;
import org.qinan.safetyeval.client.dto.QualFilingChangeSubmitCmd;
import org.qinan.safetyeval.client.dto.QualFilingRejectCmd;
@ -42,4 +44,8 @@ public interface QualFilingChangeApi {
SingleResponse<List<QualFilingChangeComplianceCheckResultCO>> complianceCheck(Long id);
SingleResponse<QualFilingChangeCO> aggregationSaveOrEdit(AggregationSaveOrEditQualFilingChangeCmd cmd);
void review(QualFilingChangeReviewAddCmd cmd);
SingleResponse<QualFilingChangeAggregationCO> detail(Long id);
}

View File

@ -28,7 +28,7 @@ public class QualFilingMaterialChangeAddCmd implements Serializable {
*/
@ApiModelProperty(value = "材料类型1,申请材料目录(原件),2,申请书(原件),3,法人证明(复印件),4,三年内无重大违法失信记录查询证明,5,法定代表人承诺书(原件),6,固定资产法定证明材料,7,工作场所及档案室面积证明,8,安全评价师专业能力证明,9,相关负责人证明材料,10,机构内部管理制度", required = true)
@NotBlank(message = "材料类型1,申请材料目录(原件),2,申请书(原件),3,法人证明(复印件),4,三年内无重大违法失信记录查询证明,5,法定代表人承诺书(原件),6,固定资产法定证明材料,7,工作场所及档案室面积证明,8,安全评价师专业能力证明,9,相关负责人证明材料,10,机构内部管理制度不能为空")
private String materialType;
private Integer materialType;
/**
*
*/

View File

@ -0,0 +1,32 @@
package org.qinan.safetyeval.client.co;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.List;
/**
* CO5
*
* @author safety-eval
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class QualFilingChangeAggregationCO extends QualFilingChangeCO {
@ApiModelProperty(value = "法定代表人承诺书")
private QualFilingCommitmentCO commitment;
@ApiModelProperty(value = "变更装备列表")
private List<QualFilingEquipmentCO> equipmentList;
@ApiModelProperty(value = "变更材料列表")
private List<QualFilingMaterialCO> materialList;
@ApiModelProperty(value = "变更人员列表")
private List<QualFilingPersonnelCO> personnelList;
@ApiModelProperty(value = "变更人员证书列表")
private List<QualFilingPersonnelCertCO> personnelCertList;
}

View File

@ -18,6 +18,9 @@ public class QualFilingChangeCO {
@ApiModelProperty(value = "备案申请ID")
private Long filingId;
@ApiModelProperty(value = "审核ID")
private Long filingReviewId;
@ApiModelProperty(value = "变更备案ID")
private Long changeFilingId;

View File

@ -1,9 +1,10 @@
package org.qinan.safetyeval.client.dto;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import lombok.Data;
import java.math.BigDecimal;
/**
*
*
@ -18,6 +19,8 @@ public class QualFilingChangeAddCmd {
@ApiModelProperty(value = "备案申请id")
private Long filingId;
private Long orgId;
@ApiModelProperty(value = "关联变更的id")
private Long changeFilingId;

View File

@ -0,0 +1,37 @@
package org.qinan.safetyeval.client.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.qinan.safetyeval.domain.constant.QualFilingReviewResultEnum;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
*
*
* @author safety-eval
*/
@Data
public class QualFilingChangeReviewAddCmd {
@ApiModelProperty(value = "变更备案申请id")
@NotNull(message = "备案申请id 不能为空")
private Long changeFilingId;
@ApiModelProperty(value = "备案审核id", hidden = true)
private Long filingReviewId;
@ApiModelProperty(value = QualFilingReviewResultEnum.REMARKS)
@NotBlank(message = "审核结果 不能为空")
private String reviewResult;
@ApiModelProperty(value = "专家id")
private Long filingExpertId;
@ApiModelProperty(value = "专家名称")
private String filingExpertName;
@ApiModelProperty(value = "综合审核意见")
private String reviewOpinion;
}

View File

@ -0,0 +1,27 @@
package org.qinan.safetyeval.client.dto;
import io.swagger.annotations.ApiModelProperty;
import java.util.Map;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import lombok.Data;
/**
*
*
* @author safety-eval
*/
@Data
public class SendMessageCmd {
@ApiModelProperty(value = "消息接受人ID", required = true)
@NotNull(message = "消息接受人ID不能为空")
private Long userId;
@ApiModelProperty(value = "手机号", required = true)
@NotBlank(message = "手机号不能为空")
private String mobile;
@ApiModelProperty(value = "消息模板参数")
private Map<String, Object> params;
}

View File

@ -23,6 +23,9 @@ public class SingleResponse<T> {
@ApiModelProperty(value = "响应消息")
private String message;
@ApiModelProperty(value = "错误响应消息")
private String errMessage;
@ApiModelProperty(value = "响应数据")
private T data;
@ -46,6 +49,7 @@ public class SingleResponse<T> {
response.setSuccess(false);
response.setCode(code);
response.setMessage(message);
response.setErrMessage(message);
return response;
}
}

View File

@ -2,6 +2,8 @@ package org.qinan.safetyeval.domain.change.gateway;
import org.qinan.safetyeval.domain.change.model.QualFilingEquipmentChangeE;
import java.util.List;
/**
* -
*
@ -41,4 +43,9 @@ public interface QualFilingEquipmentChangeGateway {
* @return
*/
Boolean deletedQualFilingEquipmentChangeByIds(Long[] ids);
/**
* filingId-
*/
List<QualFilingEquipmentChangeE> listByFilingId(Long filingId);
}

View File

@ -2,6 +2,8 @@ package org.qinan.safetyeval.domain.change.gateway;
import org.qinan.safetyeval.domain.change.model.QualFilingMaterialChangeE;
import java.util.List;
/**
* -
*
@ -42,6 +44,11 @@ public interface QualFilingMaterialChangeGateway {
*/
Boolean deletedQualFilingMaterialChangeByIds(Long[] ids);
/**
* filingId-
*/
List<QualFilingMaterialChangeE> listByFilingId(Long filingId);
/**
* filingId
*/

View File

@ -2,6 +2,8 @@ package org.qinan.safetyeval.domain.change.gateway;
import org.qinan.safetyeval.domain.change.model.QualFilingPersonnelCertChangeE;
import java.util.List;
/**
*
*
@ -41,4 +43,9 @@ public interface QualFilingPersonnelCertChangeGateway {
* @return
*/
Boolean deletedQualFilingPersonnelCertChangeByIds(Long[] ids);
/**
* filingId
*/
List<QualFilingPersonnelCertChangeE> listByFilingId(Long filingId);
}

View File

@ -14,6 +14,8 @@ public enum QualFilingReviewResultEnum {
private final int code;
private final String name;
public static final String REMARKS = "审核结果(1通过2待定3不通过)";
QualFilingReviewResultEnum(int code, String name) {
this.code = code;
this.name = name;

View File

@ -27,6 +27,9 @@ public class QualFilingChangeEntity {
/** 打回原因 */
private String rejectReason;
/** 审核ID */
private Long filingReviewId;
/** 提交时间 */
private java.time.LocalDateTime submitTime;

View File

@ -15,7 +15,8 @@ import org.springframework.context.annotation.Configuration;
* @author safety-eval
*/
@Configuration
@MapperScan("org.qinan.safetyeval.infrastructure")
@MapperScan({"org.qinan.safetyeval.infrastructure.mapper"
, "org.qinan.safetyeval.infrastructure.persistence.mapper"})
@EnableConfigurationProperties(ServerProperties.class)
public class MybatisPlusConfig {

View File

@ -50,4 +50,14 @@ public interface QualFilingEquipmentChangeDoConvertor {
* @return
*/
List<QualFilingEquipmentChangeCo> converDosToCos(List<QualFilingEquipmentChangeDO> qualFilingEquipmentChangeDos);
/**
* DO
*/
QualFilingEquipmentChangeE converDoToEe(QualFilingEquipmentChangeDO qualFilingEquipmentChangeDO);
/**
* DOs
*/
List<QualFilingEquipmentChangeE> converDosToEes(List<QualFilingEquipmentChangeDO> qualFilingEquipmentChangeDOs);
}

View File

@ -50,4 +50,14 @@ public interface QualFilingMaterialChangeDoConvertor {
* @return
*/
List<QualFilingMaterialChangeCo> converDosToCos(List<QualFilingMaterialChangeDO> qualFilingMaterialChangeDos);
/**
* DO
*/
QualFilingMaterialChangeE converDoToEe(QualFilingMaterialChangeDO qualFilingMaterialChangeDO);
/**
* DOs
*/
List<QualFilingMaterialChangeE> converDosToEes(List<QualFilingMaterialChangeDO> qualFilingMaterialChangeDOs);
}

View File

@ -53,6 +53,16 @@ public interface QualFilingPersonnelCertChangeDoConvertor {
*/
List<QualFilingPersonnelCertChangeCo> converDosToCos(List<QualFilingPersonnelCertChangeDO> qualFilingPersonnelCertChangeDos);
/**
* DO
*/
QualFilingPersonnelCertChangeE converDoToEe(QualFilingPersonnelCertChangeDO qualFilingPersonnelCertChangeDO);
/**
* DOs
*/
List<QualFilingPersonnelCertChangeE> converDosToEes(List<QualFilingPersonnelCertChangeDO> qualFilingPersonnelCertChangeDOs);
/**
* OrgPersonnelCertDOQualFilingPersonnelCertChangeDO
*

View File

@ -21,6 +21,7 @@ public class QualFilingChangeDO {
private Long changeFilingId;
private String rejectReason;
private LocalDateTime submitTime;
private Long filingReviewId;
private String filingTerritoryCode;
private String filingTerritoryName;
private String filingUnitName;

View File

@ -45,4 +45,10 @@ public class QualFilingEquipmentChangeGatewayImpl implements QualFilingEquipment
public Boolean deletedQualFilingEquipmentChangeByIds(Long[] ids) {
return qualFilingEquipmentChangeRepository.deletedQualFilingEquipmentChangeByIds(ids);
}
@Override
public java.util.List<QualFilingEquipmentChangeE> listByFilingId(Long filingId) {
return qualFilingEquipmentChangeDoConvertor.converDosToEes(
qualFilingEquipmentChangeRepository.listByFilingId(filingId));
}
}

View File

@ -46,6 +46,12 @@ public class QualFilingMaterialChangeGatewayImpl implements QualFilingMaterialCh
return qualFilingMaterialChangeRepository.deletedQualFilingMaterialChangeByIds(ids);
}
@Override
public java.util.List<QualFilingMaterialChangeE> listByFilingId(Long filingId) {
return qualFilingMaterialChangeDoConvertor.converDosToEes(
qualFilingMaterialChangeRepository.listByFilingId(filingId));
}
@Override
public int countByFilingIdAndUploadStatusCodeAndMaterialType(Long filingId, Integer uploadStatusCode, String materialType) {
return qualFilingMaterialChangeRepository.countByFilingIdAndUploadStatusCodeAndMaterialType(filingId, uploadStatusCode, materialType);

View File

@ -45,4 +45,10 @@ public class QualFilingPersonnelCertChangeGatewayImpl implements QualFilingPerso
public Boolean deletedQualFilingPersonnelCertChangeByIds(Long[] ids) {
return qualFilingPersonnelCertChangeRepository.deletedQualFilingPersonnelCertChangeByIds(ids);
}
@Override
public java.util.List<QualFilingPersonnelCertChangeE> listByFilingId(Long filingId) {
return qualFilingPersonnelCertChangeDoConvertor.converDosToEes(
qualFilingPersonnelCertChangeRepository.listByFilingId(filingId));
}
}

View File

@ -145,8 +145,10 @@ public class QualFilingChangeGatewayImpl implements QualFilingChangeGateway {
QualFilingChangeDO dataObject = qualFilingChangeDoConvertor.convertEeToDo(entity);
if (Objects.nonNull(dataObject.getId())) {
// 编辑
InsertFieldDefaults.applyForUpdate(dataObject);
qualFilingChangeMapper.updateById(dataObject);
} else {
InsertFieldDefaults.apply(dataObject);
qualFilingChangeMapper.insert(dataObject);
}
if (Objects.isNull(dataObject.getId())) {
@ -200,7 +202,7 @@ public class QualFilingChangeGatewayImpl implements QualFilingChangeGateway {
.stream().map(QualFilingPersonnelChangeE::getSourcePersonnelId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(sourcePersonnelIds)) {
List<OrgPersonnelCertDO> orgPersonnelCertDOS = orgPersonnelCertMapper.selectList(new LambdaQueryWrapper<OrgPersonnelCertDO>()
.eq(OrgPersonnelCertDO::getPersonnelId, sourcePersonnelIds));
.in(OrgPersonnelCertDO::getPersonnelId, sourcePersonnelIds));
if (!CollectionUtils.isEmpty(orgPersonnelCertDOS)) {
for (OrgPersonnelCertDO orgPersonnelCertDO : orgPersonnelCertDOS) {
QualFilingPersonnelCertChangeDO qualFilingPersonnelCertChangeDO =
@ -228,6 +230,7 @@ public class QualFilingChangeGatewayImpl implements QualFilingChangeGateway {
dataObject.setFilingId(entity.getFilingId());
dataObject.setChangeFilingId(entity.getChangeFilingId());
dataObject.setRejectReason(entity.getRejectReason());
dataObject.setFilingReviewId(entity.getFilingReviewId());
dataObject.setSubmitTime(entity.getSubmitTime());
dataObject.setFilingTerritoryCode(entity.getFilingTerritoryCode());
dataObject.setFilingTerritoryName(entity.getFilingTerritoryName());
@ -265,6 +268,7 @@ public class QualFilingChangeGatewayImpl implements QualFilingChangeGateway {
entity.setFilingId(dataObject.getFilingId());
entity.setChangeFilingId(dataObject.getChangeFilingId());
entity.setRejectReason(dataObject.getRejectReason());
entity.setFilingReviewId(dataObject.getFilingReviewId());
entity.setSubmitTime(dataObject.getSubmitTime());
entity.setFilingTerritoryCode(dataObject.getFilingTerritoryCode());
entity.setFilingTerritoryName(dataObject.getFilingTerritoryName());

View File

@ -119,23 +119,6 @@ public class QualFilingGatewayImpl implements QualFilingGateway {
if (query.getSupervision()) {
wrapper.ne(QualFilingDO::getFilingStatusCode, 5);
}
// if (SCENE_CHANGE.equals(query.getScene())) {
// applyChangeListFilter(wrapper, query);
// }
// else {
// if (query.getFilingStatusCodes() != null && !query.getFilingStatusCodes().isEmpty()) {
// wrapper.in(QualFilingDO::getFilingStatusCode, query.getFilingStatusCodes());
// }
// else if (query.getFilingStatusCode() != null) {
// wrapper.eq(QualFilingDO::getFilingStatusCode, query.getFilingStatusCode());
// }
// if (query.getApplyTypeCode() != null) {
// wrapper.eq(QualFilingDO::getApplyTypeCode, query.getApplyTypeCode());
// if (query.getApplyTypeCode() == APPLY_TYPE_FILED_MANAGE) {
// wrapper.isNull(QualFilingDO::getOriginFilingId);
// }
// }
// }
wrapper.orderByDesc(QualFilingDO::getCreateTime);
Page<QualFilingDO> page = new Page<>(query.getPageNum(), query.getPageSize());
@ -217,7 +200,7 @@ public class QualFilingGatewayImpl implements QualFilingGateway {
List<Long> sourcePersonnelIds = personnelEntities.stream().map(QualFilingPersonnelEntity::getSourcePersonnelId).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(sourcePersonnelIds)) {
List<OrgPersonnelCertDO> orgPersonnelCertDOS = orgPersonnelCertMapper.selectList(new LambdaQueryWrapper<OrgPersonnelCertDO>()
.eq(OrgPersonnelCertDO::getPersonnelId, sourcePersonnelIds));
.in(OrgPersonnelCertDO::getPersonnelId, sourcePersonnelIds));
if (!CollectionUtils.isEmpty(orgPersonnelCertDOS)) {
for (OrgPersonnelCertDO orgPersonnelCertDO : orgPersonnelCertDOS) {
QualFilingPersonnelCertDO qualFilingPersonnelCertDO = new QualFilingPersonnelCertDO();
@ -253,7 +236,6 @@ public class QualFilingGatewayImpl implements QualFilingGateway {
* @param reviewOpinion
*/
@Override
@Transactional(rollbackFor = Exception.class)
public void review(Long filingId, String reviewResult, String reviewResultRemark, Long filingExpertId, String filingExpertName, String reviewOpinion) {
// 保存审核记录
QualFilingReviewDO qualFilingReviewDO = new QualFilingReviewDO();
@ -275,7 +257,6 @@ public class QualFilingGatewayImpl implements QualFilingGateway {
filing.setFilingReviewId(qualFilingReviewDO.getId());
InsertFieldDefaults.applyForUpdate(filing);
qualFilingMapper.updateById(filing);
//todo 审核通过是否需要新增资质变更记录
}
/**

View File

@ -5,6 +5,8 @@ import com.jjb.saas.framework.repository.repo.BaseRepository;
import org.qinan.safetyeval.client.change.request.QualFilingEquipmentChangePageQry;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualFilingEquipmentChangeDO;
import java.util.List;
/**
* -
*
@ -62,4 +64,9 @@ public interface QualFilingEquipmentChangeRepository extends BaseRepository<Qual
*/
Boolean deletedQualFilingEquipmentChangeByIds(Long[] ids);
/**
* filingId-
*/
List<QualFilingEquipmentChangeDO> listByFilingId(Long filingId);
}

View File

@ -5,6 +5,8 @@ import com.jjb.saas.framework.repository.repo.BaseRepository;
import org.qinan.safetyeval.client.change.request.QualFilingMaterialChangePageQry;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualFilingMaterialChangeDO;
import java.util.List;
/**
* -
*
@ -62,6 +64,11 @@ public interface QualFilingMaterialChangeRepository extends BaseRepository<QualF
*/
Boolean deletedQualFilingMaterialChangeByIds(Long[] ids);
/**
* filingId-
*/
List<QualFilingMaterialChangeDO> listByFilingId(Long filingId);
/**
* filingId
*/

View File

@ -5,6 +5,8 @@ import com.jjb.saas.framework.repository.repo.BaseRepository;
import org.qinan.safetyeval.client.change.request.QualFilingPersonnelCertChangePageQry;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualFilingPersonnelCertChangeDO;
import java.util.List;
/**
*
*
@ -62,4 +64,9 @@ public interface QualFilingPersonnelCertChangeRepository extends BaseRepository<
*/
Boolean deletedQualFilingPersonnelCertChangeByIds(Long[] ids);
/**
* filingId
*/
List<QualFilingPersonnelCertChangeDO> listByFilingId(Long filingId);
}

View File

@ -13,6 +13,7 @@ import org.qinan.safetyeval.infrastructure.persistence.repository.QualFilingEqui
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
/**
* -
@ -114,4 +115,12 @@ public class QualFilingEquipmentChangeRepositoryImpl extends BaseRepositoryImpl<
public Boolean deletedQualFilingEquipmentChangeByIds(Long[] ids) {
return super.removeBatchEnByIds(Arrays.asList(ids));
}
@Override
public List<QualFilingEquipmentChangeDO> listByFilingId(Long filingId) {
return super.lambdaQuery()
.eq(QualFilingEquipmentChangeDO::getFilingChangeId, filingId)
.eq(QualFilingEquipmentChangeDO::getDeleteEnum, BooleanEnum.FALSE.getValue())
.list();
}
}

View File

@ -13,6 +13,7 @@ import org.qinan.safetyeval.infrastructure.persistence.repository.QualFilingMate
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
/**
* -
@ -94,6 +95,14 @@ public class QualFilingMaterialChangeRepositoryImpl extends BaseRepositoryImpl<Q
return super.removeBatchEnByIds(Arrays.asList(ids));
}
@Override
public List<QualFilingMaterialChangeDO> listByFilingId(Long filingId) {
return super.lambdaQuery()
.eq(QualFilingMaterialChangeDO::getFilingChangeId, filingId)
.eq(QualFilingMaterialChangeDO::getDeleteEnum, BooleanEnum.FALSE.getValue())
.list();
}
@Override
public int countByFilingIdAndUploadStatusCodeAndMaterialType(Long filingId, Integer uploadStatusCode, String materialType) {
return super.lambdaQuery()

View File

@ -13,6 +13,7 @@ import org.qinan.safetyeval.infrastructure.persistence.repository.QualFilingPers
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
/**
*
@ -108,4 +109,12 @@ public class QualFilingPersonnelCertChangeRepositoryImpl extends BaseRepositoryI
public Boolean deletedQualFilingPersonnelCertChangeByIds(Long[] ids) {
return super.removeBatchEnByIds(Arrays.asList(ids));
}
@Override
public List<QualFilingPersonnelCertChangeDO> listByFilingId(Long filingId) {
return super.lambdaQuery()
.eq(QualFilingPersonnelCertChangeDO::getFilingChangeId, filingId)
.eq(QualFilingPersonnelCertChangeDO::getDeleteEnum, BooleanEnum.FALSE.getValue())
.list();
}
}

View File

@ -2,7 +2,6 @@ package org.qinan.safetyeval.infrastructure.support;
import org.qinan.safetyeval.infrastructure.adapter.ThreadLocalUserInfoAdapter;
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
import org.qinan.safetyeval.infrastructure.dataobject.QualFilingExpertDO;
import java.lang.reflect.Method;
import java.time.LocalDateTime;
@ -86,6 +85,8 @@ public final class InsertFieldDefaults {
LocalDateTime now = LocalDateTime.now();
Long userId = AuthUserContextAdapter.getCurrentUserId();
String userName = AuthUserContextAdapter.getCurrentUserName();
// 机构信息id
Long orgInfoId = ThreadLocalUserInfoAdapter.get();
setIfNull(dataObject, "updateTime", now);
if (userId != null) {
@ -94,6 +95,10 @@ public final class InsertFieldDefaults {
if (userName != null) {
setIfNull(dataObject, "updateName", userName);
}
if (orgInfoId != null) {
// 机构信息id
setIfNull(dataObject, "orgId", orgInfoId);
}
}
private static void setIfNull(Object target, String property, Object value) {

View File

@ -9,6 +9,7 @@
<result column="filing_id" property="filingId"/>
<result column="change_filing_id" property="changeFilingId"/>
<result column="reject_reason" property="rejectReason"/>
<result column="filing_review_id" property="filingReviewId"/>
<result column="submit_time" property="submitTime"/>
<result column="filing_territory_code" property="filingTerritoryCode"/>
<result column="filing_territory_name" property="filingTerritoryName"/>
@ -48,7 +49,7 @@
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
`id`, `org_id`, `filing_id`, `change_filing_id`, `reject_reason`, `submit_time`, `filing_territory_code`, `filing_territory_name`, `filing_unit_name`, `filing_unit_type_code`, `filing_unit_type_name`, `filing_no`, `business_scope`, `register_address`, `office_address`, `credit_code`, `qual_cert_no`, `legal_person_phone`, `contact_phone`, `info_disclosure_url`, `fixed_asset_amount`, `archive_room_area`, `fulltime_evaluator_count`, `registered_engineer_count`, `workplace_area`, `unit_intro`, `attachment_url`, `filing_status_code`, `filing_status_name`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env`
`id`, `org_id`, `filing_id`, `change_filing_id`, `filing_review_id`, `reject_reason`, `submit_time`, `filing_territory_code`, `filing_territory_name`, `filing_unit_name`, `filing_unit_type_code`, `filing_unit_type_name`, `filing_no`, `business_scope`, `register_address`, `office_address`, `credit_code`, `qual_cert_no`, `legal_person_phone`, `contact_phone`, `info_disclosure_url`, `fixed_asset_amount`, `archive_room_area`, `fulltime_evaluator_count`, `registered_engineer_count`, `workplace_area`, `unit_intro`, `attachment_url`, `filing_status_code`, `filing_status_name`, `delete_enum`, `remarks`, `create_name`, `update_name`, `tenant_id`, `version`, `create_time`, `update_time`, `create_id`, `update_id`, `env`
</sql>
</mapper>

View File

@ -14,6 +14,9 @@ import org.springframework.boot.SpringApplication;
"org.qinan.safetyeval.infrastructure.persistence.mapper"
}
)
@SpringBootApplication(scanBasePackages = {"org.qinan.safetyeval", "com.jjb.saas"},exclude = {com.jjb.saas.framework.datascope.DataScopeConfiguration.class})
@EnableDubbo
@EnableFeignClients(basePackages = {"org.qinan.safetyeval", "com.jjb.saas"})
@Slf4j
public class SafetyEvalApplication {