luotaiqian 2026-07-20 15:21:03 +08:00
parent 1b6cd9434d
commit da31a60a4a
25 changed files with 1344 additions and 0 deletions

View File

@ -0,0 +1,74 @@
package org.qinan.safetyeval.adapter.web;
import com.alibaba.cola.dto.PageResponse;
import com.alibaba.cola.dto.Response;
import com.alibaba.cola.dto.SingleResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.app.review.service.QualOnSiteReviewServiceI;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewAddCmd;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewPageQry;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewUpdateCmd;
import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.io.Serializable;
/**
*
*
* @Author: ltq
* @Date: 2026-07-20 15:17:00
*/
@RestController
@AllArgsConstructor
@Api(tags = "资质现场核查")
@RequestMapping("/safetyEval/qual-on-site-review")
public class QualOnSiteReviewController implements Serializable {
private static final long serialVersionUID = 1L;
private final QualOnSiteReviewServiceI qualOnSiteReviewServiceI;
@GetMapping
@ApiOperation("监管端-查询资质现场核查列表-分页")
public PageResponse<QualOnSiteReviewCo> list(@Validated QualOnSiteReviewPageQry qry) {
return qualOnSiteReviewServiceI.listQualOnSiteReviewPage(qry);
}
@GetMapping("/{id}")
@ApiOperation("查询资质现场核查详情页面")
public SingleResponse<QualOnSiteReviewCo> getInfo(@PathVariable("id") Long id) {
return SingleResponse.of(qualOnSiteReviewServiceI.getQualOnSiteReviewById(id));
}
@PostMapping
@ApiOperation("新增资质现场核查")
public Response save(@Validated @RequestBody QualOnSiteReviewAddCmd qualOnSiteReviewAddCmd) {
qualOnSiteReviewServiceI.saveQualOnSiteReview(qualOnSiteReviewAddCmd);
return Response.buildSuccess();
}
@PutMapping
@ApiOperation("修改资质现场核查")
public Response update(@Validated @RequestBody QualOnSiteReviewUpdateCmd qualOnSiteReviewUpdateCmd) {
qualOnSiteReviewServiceI.updateQualOnSiteReview(qualOnSiteReviewUpdateCmd);
return Response.buildSuccess();
}
@DeleteMapping("/{id}")
@ApiOperation("删除资质现场核查(单个)")
public Response deletedById(@PathVariable("id") Long id) {
qualOnSiteReviewServiceI.deletedQualOnSiteReviewById(id);
return Response.buildSuccess();
}
@DeleteMapping("/ids")
@ApiOperation("删除资质现场核查(多个)")
public Response deletedByIds(@RequestParam Long[] ids) {
qualOnSiteReviewServiceI.deletedQualOnSiteReviewByIds(ids);
return Response.buildSuccess();
}
}

View File

@ -0,0 +1,34 @@
package org.qinan.safetyeval.app.review.convertor;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewAddCmd;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewUpdateCmd;
import org.qinan.safetyeval.domain.review.model.QualOnSiteReviewE;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Mapper(componentModel = "spring")
public interface QualOnSiteReviewCmdConvertor {
/**
* cmd_add
*
* @param qualOnSiteReviewAddCmd
* @return
*/
@Mapping(target = "qualOnSiteReviewGateway", ignore = true)
QualOnSiteReviewE convertCmdToE(QualOnSiteReviewAddCmd qualOnSiteReviewAddCmd);
/**
* cmd_update
*
* @param qualOnSiteReviewUpdateCmd
* @return
*/
@Mapping(target = "qualOnSiteReviewGateway", ignore = true)
QualOnSiteReviewE convertCmdToE(QualOnSiteReviewUpdateCmd qualOnSiteReviewUpdateCmd);
}

View File

@ -0,0 +1,42 @@
package org.qinan.safetyeval.app.review.executor.command;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.app.review.convertor.QualOnSiteReviewCmdConvertor;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewAddCmd;
import org.qinan.safetyeval.domain.review.ability.QualOnSiteReviewAbility;
import org.qinan.safetyeval.domain.review.model.QualOnSiteReviewE;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.QualOnSiteReviewQueryService;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
*
*
* @author ltq
* @date 2026-07-20 15:17:00
*/
@Component
@AllArgsConstructor
public class QualOnSiteReviewAddCmdExe {
private final QualOnSiteReviewQueryService qualOnSiteReviewQueryService;
private final QualOnSiteReviewCmdConvertor qualOnSiteReviewCmdConvertor;
private final QualOnSiteReviewAbility qualOnSiteReviewAbility;
/**
*
*
* @param qualOnSiteReviewAddCmd
* @return
*/
@Transactional(rollbackFor = Exception.class)
public boolean execute(QualOnSiteReviewAddCmd qualOnSiteReviewAddCmd) {
QualOnSiteReviewE qualOnSiteReviewE = qualOnSiteReviewCmdConvertor.convertCmdToE(qualOnSiteReviewAddCmd);
boolean res = qualOnSiteReviewE.add();
if (!res) {
throw new BizException("保存失败");
}
return true;
}
}

View File

@ -0,0 +1,55 @@
package org.qinan.safetyeval.app.review.executor.command;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.domain.review.ability.QualOnSiteReviewAbility;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
*
*
* @author ltq
* @date 2026-07-20 15:17:00
*/
@Component
@AllArgsConstructor
public class QualOnSiteReviewDelCmdExe {
private final QualOnSiteReviewAbility qualOnSiteReviewAbility;
/**
* IDS
*
* @param ids ID
* @return
*/
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long[] ids) {
if (ObjectUtil.isEmpty(ids)) {
throw new BizException("请传入正确的ID");
}
boolean deleteRes = qualOnSiteReviewAbility.deletedQualOnSiteReviewByIds(ids);
if (!deleteRes) {
throw new BizException("删除失败");
}
return true;
}
/**
* ID
*
* @param id ID
* @return
*/
@Transactional(rollbackFor = Exception.class)
public boolean execute(Long id) {
boolean deleteRes = qualOnSiteReviewAbility.deletedQualOnSiteReviewById(id);
if (!deleteRes) {
throw new BizException("删除失败");
}
return true;
}
}

View File

@ -0,0 +1,41 @@
package org.qinan.safetyeval.app.review.executor.command;
import com.alibaba.cola.exception.BizException;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.app.review.convertor.QualOnSiteReviewCmdConvertor;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewUpdateCmd;
import org.qinan.safetyeval.domain.review.ability.QualOnSiteReviewAbility;
import org.qinan.safetyeval.domain.review.model.QualOnSiteReviewE;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.QualOnSiteReviewQueryService;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
/**
*
*
* @author ltq
* @date 2026-07-20 15:17:00
*/
@Component
@AllArgsConstructor
public class QualOnSiteReviewUpdateCmdExe {
private final QualOnSiteReviewQueryService qualOnSiteReviewQueryService;
private final QualOnSiteReviewCmdConvertor qualOnSiteReviewCmdConvertor;
private final QualOnSiteReviewAbility qualOnSiteReviewAbility;
/**
*
*
* @param qualOnSiteReviewUpdateCmd
* @return
*/
@Transactional(rollbackFor = Exception.class)
public boolean execute(QualOnSiteReviewUpdateCmd qualOnSiteReviewUpdateCmd) {
QualOnSiteReviewE qualOnSiteReviewE = qualOnSiteReviewCmdConvertor.convertCmdToE(qualOnSiteReviewUpdateCmd);
Boolean updateRes = qualOnSiteReviewE.update();
if (!updateRes) {
throw new BizException("数据已被更新,请刷新重试");
}
return true;
}
}

View File

@ -0,0 +1,34 @@
package org.qinan.safetyeval.app.review.executor.query;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo;
import org.qinan.safetyeval.infrastructure.convertor.QualOnSiteReviewDoConvertor;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.QualOnSiteReviewQueryService;
import org.springframework.stereotype.Component;
/**
*
*
* @author ltq
* @date 2026-07-20 15:17:00
*/
@Component
@AllArgsConstructor
public class QualOnSiteReviewListQueryExe {
private final QualOnSiteReviewQueryService qualOnSiteReviewQueryService;
private final QualOnSiteReviewDoConvertor qualOnSiteReviewDoConvertor;
/**
* ID
*
* @param id ID
* @return
*/
public QualOnSiteReviewCo execute(Long id) {
QualOnSiteReviewDO qualOnSiteReviewDO = qualOnSiteReviewQueryService.getById(id);
return qualOnSiteReviewDoConvertor.converDoToCo(qualOnSiteReviewDO);
}
}

View File

@ -0,0 +1,32 @@
package org.qinan.safetyeval.app.review.executor.query;
import com.alibaba.cola.dto.PageResponse;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewPageQry;
import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.QualOnSiteReviewQueryService;
import org.springframework.stereotype.Component;
/**
*
*
* @author ltq
* @date 2026-07-20 15:17:00
*/
@Component
@AllArgsConstructor
public class QualOnSiteReviewPageQueryExe {
private final QualOnSiteReviewQueryService qualOnSiteReviewQueryService;
/**
*
*
* @param qualOnSiteReviewPageQry
* @return
*/
public PageResponse<QualOnSiteReviewCo> execute(QualOnSiteReviewPageQry qualOnSiteReviewPageQry) {
return qualOnSiteReviewQueryService.listQualOnSiteReviewPage(qualOnSiteReviewPageQry);
}
}

View File

@ -0,0 +1,65 @@
package org.qinan.safetyeval.app.review.service;
import com.alibaba.cola.dto.PageResponse;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewAddCmd;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewPageQry;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewUpdateCmd;
import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
public interface QualOnSiteReviewServiceI {
/**
*
*
* @param qualOnSiteReviewPageQry
* @return
*/
PageResponse<QualOnSiteReviewCo> listQualOnSiteReviewPage(QualOnSiteReviewPageQry qualOnSiteReviewPageQry);
/**
* ID
*
* @param id ID
* @return
*/
QualOnSiteReviewCo getQualOnSiteReviewById(Long id);
/**
*
*
* @param qualOnSiteReviewAddCmd
* @return
*/
boolean saveQualOnSiteReview(QualOnSiteReviewAddCmd qualOnSiteReviewAddCmd);
/**
*
*
* @param qualOnSiteReviewUpdateCmd
* @return
*/
boolean updateQualOnSiteReview(QualOnSiteReviewUpdateCmd qualOnSiteReviewUpdateCmd);
/**
*
*
* @param id ID
* @return
*/
boolean deletedQualOnSiteReviewById(Long id);
/**
*
*
* @param ids IDs
* @return
*/
boolean deletedQualOnSiteReviewByIds(Long[] ids);
}

View File

@ -0,0 +1,63 @@
package org.qinan.safetyeval.app.review.service.impl;
import com.alibaba.cola.dto.PageResponse;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.app.review.executor.command.QualOnSiteReviewAddCmdExe;
import org.qinan.safetyeval.app.review.executor.command.QualOnSiteReviewDelCmdExe;
import org.qinan.safetyeval.app.review.executor.command.QualOnSiteReviewUpdateCmdExe;
import org.qinan.safetyeval.app.review.executor.query.QualOnSiteReviewListQueryExe;
import org.qinan.safetyeval.app.review.executor.query.QualOnSiteReviewPageQueryExe;
import org.qinan.safetyeval.app.review.service.QualOnSiteReviewServiceI;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewAddCmd;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewPageQry;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewUpdateCmd;
import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo;
import org.springframework.stereotype.Service;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Service
@AllArgsConstructor
public class QualOnSiteReviewServiceImpl implements QualOnSiteReviewServiceI {
private final QualOnSiteReviewListQueryExe qualOnSiteReviewListQueryExe;
private final QualOnSiteReviewUpdateCmdExe qualOnSiteReviewUpdateCommandExe;
private final QualOnSiteReviewAddCmdExe qualOnSiteReviewAddCommandExe;
private final QualOnSiteReviewDelCmdExe qualOnSiteReviewDelCommandExe;
private final QualOnSiteReviewPageQueryExe qualOnSiteReviewPageQueryExe;
@Override
public PageResponse<QualOnSiteReviewCo> listQualOnSiteReviewPage(QualOnSiteReviewPageQry qualOnSiteReviewPageQry) {
return qualOnSiteReviewPageQueryExe.execute(qualOnSiteReviewPageQry);
}
@Override
public QualOnSiteReviewCo getQualOnSiteReviewById(Long id) {
return qualOnSiteReviewListQueryExe.execute(id);
}
@Override
public boolean saveQualOnSiteReview(QualOnSiteReviewAddCmd qualOnSiteReviewAddCmd) {
return qualOnSiteReviewAddCommandExe.execute(qualOnSiteReviewAddCmd);
}
@Override
public boolean updateQualOnSiteReview(QualOnSiteReviewUpdateCmd qualOnSiteReviewUpdateCmd) {
return qualOnSiteReviewUpdateCommandExe.execute(qualOnSiteReviewUpdateCmd);
}
@Override
public boolean deletedQualOnSiteReviewById(Long id) {
return qualOnSiteReviewDelCommandExe.execute(id);
}
@Override
public boolean deletedQualOnSiteReviewByIds(Long[] ids) {
return qualOnSiteReviewDelCommandExe.execute(ids);
}
}

View File

@ -0,0 +1,73 @@
package org.qinan.safetyeval.client.review.request;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* Cmd
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Data
public class QualOnSiteReviewAddCmd implements Serializable {
private static final long serialVersionUID = 1L;
/**
* :add change:
*/
@ApiModelProperty(value = "资质类型:add 新增 change:变更")
private String bizType;
/**
* id
*/
@ApiModelProperty(value = "业务id")
private Long bizId;
/**
*
*/
@ApiModelProperty(value = "现场审查开始时间", required = true)
@NotNull(message = "现场审查开始时间不能为空")
private LocalDateTime reviewDateStart;
/**
*
*/
@ApiModelProperty(value = "审查地点")
private String reviewLocation;
/**
*
*/
@ApiModelProperty(value = "审查组成员名单")
private String reviewMembers;
/**
*
*/
@ApiModelProperty(value = "材料准备要求")
private String materialRequirements;
/**
*
*/
@ApiModelProperty(value = "监管联系人姓名")
private String supervisorContact;
/**
*
*/
@ApiModelProperty(value = "监管联系电话")
private String contactPhone;
/**
* (AGENCY_PENDING_CONFIRMATIONAGENCY_CONFIRMEDREVIEW_PASSEDREVIEW_FAILED)
*/
@ApiModelProperty(value = "现场审查状态(AGENCY_PENDING_CONFIRMATION机构待确认、AGENCY_CONFIRMED机构已确认、REVIEW_PASSED核查通过、REVIEW_FAILED核查不通过)", required = true)
@NotNull(message = "现场审查状态(AGENCY_PENDING_CONFIRMATION机构待确认、AGENCY_CONFIRMED机构已确认、REVIEW_PASSED核查通过、REVIEW_FAILED核查不通过)不能为空")
private Long status;
/**
*
*/
@ApiModelProperty(value = "环境")
private String env;
}

View File

@ -0,0 +1,60 @@
package org.qinan.safetyeval.client.review.request;
import com.alibaba.cola.dto.PageQuery;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* Qry
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Data
public class QualOnSiteReviewPageQry extends PageQuery {
private static final long serialVersionUID = 1L;
/**
*
*/
@ApiModelProperty(value = "现场审查开始时间")
private LocalDateTime reviewDateStart;
/**
*
*/
@ApiModelProperty(value = "审查地点")
private String reviewLocation;
/**
*
*/
@ApiModelProperty(value = "审查组成员名单")
private String reviewMembers;
/**
*
*/
@ApiModelProperty(value = "材料准备要求")
private String materialRequirements;
/**
*
*/
@ApiModelProperty(value = "监管联系人姓名")
private String supervisorContact;
/**
*
*/
@ApiModelProperty(value = "监管联系电话")
private String contactPhone;
/**
* (AGENCY_PENDING_CONFIRMATIONAGENCY_CONFIRMEDREVIEW_PASSEDREVIEW_FAILED)
*/
@ApiModelProperty(value = "现场审查状态(AGENCY_PENDING_CONFIRMATION机构待确认、AGENCY_CONFIRMED机构已确认、REVIEW_PASSED核查通过、REVIEW_FAILED核查不通过)")
private Long status;
/**
*
*/
@ApiModelProperty(value = "环境")
private String env;
}

View File

@ -0,0 +1,77 @@
package org.qinan.safetyeval.client.review.request;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
* Cmd
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Data
public class QualOnSiteReviewUpdateCmd implements Serializable {
private static final long serialVersionUID = 1L;
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
/**
* :add change:
*/
@ApiModelProperty(value = "资质类型:add 新增 change:变更")
private String bizType;
/**
* id
*/
@ApiModelProperty(value = "业务id")
private Long bizId;
/**
*
*/
@ApiModelProperty(value = "现场审查开始时间", required = true)
@NotNull(message = "现场审查开始时间不能为空")
private LocalDateTime reviewDateStart;
/**
*
*/
@ApiModelProperty(value = "审查地点")
private String reviewLocation;
/**
*
*/
@ApiModelProperty(value = "审查组成员名单")
private String reviewMembers;
/**
*
*/
@ApiModelProperty(value = "材料准备要求")
private String materialRequirements;
/**
*
*/
@ApiModelProperty(value = "监管联系人姓名")
private String supervisorContact;
/**
*
*/
@ApiModelProperty(value = "监管联系电话")
private String contactPhone;
/**
* (AGENCY_PENDING_CONFIRMATIONAGENCY_CONFIRMEDREVIEW_PASSEDREVIEW_FAILED)
*/
@ApiModelProperty(value = "现场审查状态(AGENCY_PENDING_CONFIRMATION机构待确认、AGENCY_CONFIRMED机构已确认、REVIEW_PASSED核查通过、REVIEW_FAILED核查不通过)", required = true)
@NotNull(message = "现场审查状态(AGENCY_PENDING_CONFIRMATION机构待确认、AGENCY_CONFIRMED机构已确认、REVIEW_PASSED核查通过、REVIEW_FAILED核查不通过)不能为空")
private Long status;
/**
*
*/
@ApiModelProperty(value = "环境")
private String env;
@NotNull(message = "version不能为空")
@ApiModelProperty(value = "version")
private Integer version;
}

View File

@ -0,0 +1,74 @@
package org.qinan.safetyeval.client.review.response;
import com.alibaba.cola.dto.ClientObject;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
/**
* Co
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Data
public class QualOnSiteReviewCo extends ClientObject {
private static final long serialVersionUID = 1L;
@JsonFormat(shape = JsonFormat.Shape.STRING)
private Long id;
/**
* :add change:
*/
@ApiModelProperty(value = "资质类型:add 新增 change:变更")
private String bizType;
/**
* id
*/
@ApiModelProperty(value = "业务id")
private Long bizId;
/**
*
*/
@ApiModelProperty(value = "现场审查开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime reviewDateStart;
/**
*
*/
@ApiModelProperty(value = "审查地点")
private String reviewLocation;
/**
*
*/
@ApiModelProperty(value = "审查组成员名单")
private String reviewMembers;
/**
*
*/
@ApiModelProperty(value = "材料准备要求")
private String materialRequirements;
/**
*
*/
@ApiModelProperty(value = "监管联系人姓名")
private String supervisorContact;
/**
*
*/
@ApiModelProperty(value = "监管联系电话")
private String contactPhone;
/**
* (AGENCY_PENDING_CONFIRMATIONAGENCY_CONFIRMEDREVIEW_PASSEDREVIEW_FAILED)
*/
@ApiModelProperty(value = "现场审查状态(AGENCY_PENDING_CONFIRMATION机构待确认、AGENCY_CONFIRMED机构已确认、REVIEW_PASSED核查通过、REVIEW_FAILED核查不通过)")
private Long status;
/**
*
*/
@ApiModelProperty(value = "环境")
private String env;
@ApiModelProperty(value = "version")
private Integer version;
}

View File

@ -0,0 +1,29 @@
package org.qinan.safetyeval.domain.review.ability;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.domain.review.gateway.QualOnSiteReviewGateway;
import org.springframework.stereotype.Service;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Service
@AllArgsConstructor
public class QualOnSiteReviewAbility {
/**
*
**/
private final QualOnSiteReviewGateway qualOnSiteReviewGateway;
public boolean deletedQualOnSiteReviewById(Long id) {
return qualOnSiteReviewGateway.deletedQualOnSiteReviewById(id);
}
public boolean deletedQualOnSiteReviewByIds(Long[] ids) {
return qualOnSiteReviewGateway.deletedQualOnSiteReviewByIds(ids);
}
}

View File

@ -0,0 +1,44 @@
package org.qinan.safetyeval.domain.review.gateway;
import org.qinan.safetyeval.domain.review.model.QualOnSiteReviewE;
/**
*
*
* @Author: WGG
* @Date: 2022/3/22 16:49
*/
public interface QualOnSiteReviewGateway {
/**
*
*
* @param qualOnSiteReviewE
* @return
*/
Boolean add(QualOnSiteReviewE qualOnSiteReviewE);
/**
*
*
* @param qualOnSiteReviewE
* @return
*/
Boolean update(QualOnSiteReviewE qualOnSiteReviewE);
/**
*
*
* @param id
* @return
*/
Boolean deletedQualOnSiteReviewById(Long id);
/**
*
*
* @param ids
* @return
*/
Boolean deletedQualOnSiteReviewByIds(Long[] ids);
}

View File

@ -0,0 +1,82 @@
package org.qinan.safetyeval.domain.review.model;
import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.cola.domain.DomainFactory;
import com.alibaba.cola.domain.Entity;
import com.jjb.saas.framework.domain.model.BaseE;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.qinan.safetyeval.domain.review.gateway.QualOnSiteReviewGateway;
import java.time.LocalDateTime;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Data
@Entity
@EqualsAndHashCode(callSuper = true)
public class QualOnSiteReviewE extends BaseE {
private static final long serialVersionUID = 1L;
/**
* :add change:
*/
private String bizType;
/**
* id
*/
private Long bizId;
/**
*
*/
private LocalDateTime reviewDateStart;
/**
*
*/
private String reviewLocation;
/**
*
*/
private String reviewMembers;
/**
*
*/
private String materialRequirements;
/**
*
*/
private String supervisorContact;
/**
*
*/
private String contactPhone;
/**
* (AGENCY_PENDING_CONFIRMATIONAGENCY_CONFIRMEDREVIEW_PASSEDREVIEW_FAILED)
*/
private Long status;
/**
*
*/
private String env;
private transient QualOnSiteReviewGateway qualOnSiteReviewGateway;
public QualOnSiteReviewE() {
this.qualOnSiteReviewGateway = SpringUtil.getBean(QualOnSiteReviewGateway.class);
}
public static QualOnSiteReviewE of() {
return DomainFactory.create(QualOnSiteReviewE.class);
}
public boolean add() {
return qualOnSiteReviewGateway.add(this);
}
public boolean update() {
return qualOnSiteReviewGateway.update(this);
}
}

View File

@ -0,0 +1,53 @@
package org.qinan.safetyeval.infrastructure.convertor;
import org.mapstruct.Mapper;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewPageQry;
import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo;
import org.qinan.safetyeval.domain.review.model.QualOnSiteReviewE;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO;
import java.util.List;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Mapper(componentModel = "spring")
public interface QualOnSiteReviewDoConvertor {
/**
* DO
*
* @param qualOnSiteReviewE
* @return
*/
QualOnSiteReviewDO convertEeToDo(QualOnSiteReviewE qualOnSiteReviewE);
/**
* DOCo
*
* @param qualOnSiteReviewDo DO
* @return
*/
QualOnSiteReviewCo converDoToCo(QualOnSiteReviewDO qualOnSiteReviewDo);
/**
* qry TO DO
*
* @param qualOnSiteReviewPageQry
* @return
*/
QualOnSiteReviewDO convertQryToDo(QualOnSiteReviewPageQry qualOnSiteReviewPageQry);
/**
* DOsCos
*
* @param qualOnSiteReviewDos dos
* @return
*/
List<QualOnSiteReviewCo> converDosToCos(List<QualOnSiteReviewDO> qualOnSiteReviewDos);
}

View File

@ -0,0 +1,48 @@
package org.qinan.safetyeval.infrastructure.gateway;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.domain.review.gateway.QualOnSiteReviewGateway;
import org.qinan.safetyeval.domain.review.model.QualOnSiteReviewE;
import org.qinan.safetyeval.infrastructure.convertor.QualOnSiteReviewDoConvertor;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO;
import org.qinan.safetyeval.infrastructure.persistence.repository.QualOnSiteReviewRepository;
import org.springframework.stereotype.Service;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Service
@AllArgsConstructor
public class QualOnSiteReviewGatewayImpl implements QualOnSiteReviewGateway {
private final QualOnSiteReviewRepository qualOnSiteReviewRepository;
private final QualOnSiteReviewDoConvertor qualOnSiteReviewDoConvertor;
@Override
public Boolean add(QualOnSiteReviewE qualOnSiteReviewE) {
QualOnSiteReviewDO qualOnSiteReviewDO = qualOnSiteReviewDoConvertor.convertEeToDo(qualOnSiteReviewE);
boolean res = qualOnSiteReviewRepository.addQualOnSiteReview(qualOnSiteReviewDO);
if (res) {
qualOnSiteReviewE.setId(qualOnSiteReviewDO.getId());
}
return res;
}
@Override
public Boolean update(QualOnSiteReviewE qualOnSiteReviewE) {
boolean res = qualOnSiteReviewRepository.updateQualOnSiteReview(qualOnSiteReviewDoConvertor.convertEeToDo(qualOnSiteReviewE));
return res;
}
@Override
public Boolean deletedQualOnSiteReviewById(Long id) {
return qualOnSiteReviewRepository.deletedQualOnSiteReviewById(id);
}
@Override
public Boolean deletedQualOnSiteReviewByIds(Long[] ids) {
return qualOnSiteReviewRepository.deletedQualOnSiteReviewByIds(ids);
}
}

View File

@ -0,0 +1,64 @@
package org.qinan.safetyeval.infrastructure.persistence.domainobject;
import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jjb.saas.framework.repository.basedo.BaseDO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("qual_on_site_review")
public class QualOnSiteReviewDO extends BaseDO {
private static final long serialVersionUID = 1L;
/**
* :add change:
*/
private String bizType;
/**
* id
*/
private Long bizId;
/**
*
*/
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime reviewDateStart;
/**
*
*/
private String reviewLocation;
/**
*
*/
private String reviewMembers;
/**
*
*/
private String materialRequirements;
/**
*
*/
private String supervisorContact;
/**
*
*/
private String contactPhone;
/**
* (AGENCY_PENDING_CONFIRMATIONAGENCY_CONFIRMEDREVIEW_PASSEDREVIEW_FAILED)
*/
private Long status;
/**
*
*/
private String env;
}

View File

@ -0,0 +1,15 @@
package org.qinan.safetyeval.infrastructure.persistence.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO;
/**
* Mapper
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Mapper
public interface QualOnSiteReviewMapper extends BaseMapper<QualOnSiteReviewDO> {
}

View File

@ -0,0 +1,31 @@
package org.qinan.safetyeval.infrastructure.persistence.queryservice;
import com.alibaba.cola.dto.PageResponse;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewPageQry;
import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
public interface QualOnSiteReviewQueryService {
/**
* ID
*
* @param id ID
* @return
*/
QualOnSiteReviewDO getById(Long id);
/**
*
*
* @param qualOnSiteReviewPageQry Qry
* @return
*/
PageResponse<QualOnSiteReviewCo> listQualOnSiteReviewPage(QualOnSiteReviewPageQry qualOnSiteReviewPageQry);
}

View File

@ -0,0 +1,42 @@
package org.qinan.safetyeval.infrastructure.persistence.queryservice.impl;
import com.alibaba.cola.dto.PageResponse;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.common.PageHelper;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewPageQry;
import org.qinan.safetyeval.client.review.response.QualOnSiteReviewCo;
import org.qinan.safetyeval.infrastructure.convertor.QualOnSiteReviewDoConvertor;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO;
import org.qinan.safetyeval.infrastructure.persistence.queryservice.QualOnSiteReviewQueryService;
import org.qinan.safetyeval.infrastructure.persistence.repository.QualOnSiteReviewRepository;
import org.springframework.stereotype.Service;
import java.util.List;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Service
@AllArgsConstructor
public class QualOnSiteReviewQueryServiceImpl implements QualOnSiteReviewQueryService {
private final QualOnSiteReviewRepository qualOnSiteReviewRepository;
private final QualOnSiteReviewDoConvertor qualOnSiteReviewDoConvertor;
@Override
public QualOnSiteReviewDO getById(Long id) {
return qualOnSiteReviewRepository.getById(id);
}
@Override
public PageResponse<QualOnSiteReviewCo> listQualOnSiteReviewPage(QualOnSiteReviewPageQry qualOnSiteReviewPageQry) {
IPage<QualOnSiteReviewDO> qualOnSiteReviewDoPage = qualOnSiteReviewRepository.listQualOnSiteReviewPage(PageHelper.queryToPage(qualOnSiteReviewPageQry), qualOnSiteReviewPageQry);
List<QualOnSiteReviewCo> qualOnSiteReviewCoS = qualOnSiteReviewDoConvertor.converDosToCos(qualOnSiteReviewDoPage.getRecords());
return PageHelper.pageToResponse(qualOnSiteReviewDoPage, qualOnSiteReviewCoS);
}
}

View File

@ -0,0 +1,65 @@
package org.qinan.safetyeval.infrastructure.persistence.repository;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.repository.repo.BaseRepository;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewPageQry;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
public interface QualOnSiteReviewRepository extends BaseRepository<QualOnSiteReviewDO> {
/**
* ID
*
* @param id ID
* @return
*/
QualOnSiteReviewDO getById(Long id);
/**
*
*
* @param iPage
* @param qualOnSiteReviewPageQry
* @return ipage
*/
IPage<QualOnSiteReviewDO> listQualOnSiteReviewPage(IPage iPage, QualOnSiteReviewPageQry qualOnSiteReviewPageQry);
/**
*
*
* @param qualOnSiteReviewDO
* @return
*/
Boolean addQualOnSiteReview(QualOnSiteReviewDO qualOnSiteReviewDO);
/**
*
*
* @param qualOnSiteReviewDO
* @return
*/
Boolean updateQualOnSiteReview(QualOnSiteReviewDO qualOnSiteReviewDO);
/**
*
*
* @param id
* @return
*/
Boolean deletedQualOnSiteReviewById(Long id);
/**
*
*
* @param ids
* @return
*/
Boolean deletedQualOnSiteReviewByIds(Long[] ids);
}

View File

@ -0,0 +1,90 @@
package org.qinan.safetyeval.infrastructure.persistence.repository.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jjb.saas.framework.enums.enums.BooleanEnum;
import com.jjb.saas.framework.repository.repo.impl.BaseRepositoryImpl;
import lombok.AllArgsConstructor;
import org.qinan.safetyeval.client.review.request.QualOnSiteReviewPageQry;
import org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO;
import org.qinan.safetyeval.infrastructure.persistence.mapper.QualOnSiteReviewMapper;
import org.qinan.safetyeval.infrastructure.persistence.repository.QualOnSiteReviewRepository;
import org.springframework.stereotype.Service;
import java.util.Arrays;
/**
*
*
* @Author: ltq
* @date 2026-07-20 15:17:00
*/
@Service
@AllArgsConstructor
public class QualOnSiteReviewRepositoryImpl extends BaseRepositoryImpl<QualOnSiteReviewMapper, QualOnSiteReviewDO> implements QualOnSiteReviewRepository {
private final QualOnSiteReviewMapper qualOnSiteReviewMapper;
@Override
public QualOnSiteReviewDO getById(Long id) {
return super.lambdaQuery().eq(QualOnSiteReviewDO::getId, id).eq(QualOnSiteReviewDO::getDeleteEnum, BooleanEnum.FALSE.getValue()).one();
}
@Override
public IPage<QualOnSiteReviewDO> listQualOnSiteReviewPage(IPage iPage, QualOnSiteReviewPageQry qualOnSiteReviewPageQry) {
QueryWrapper<QualOnSiteReviewDO> qualOnSiteReviewDoQueryWrapper = new QueryWrapper<>();
if (ObjectUtil.isNotEmpty(qualOnSiteReviewPageQry.getBizType())) {
qualOnSiteReviewDoQueryWrapper.eq("biz_type", qualOnSiteReviewPageQry.getBizType());
}
if (ObjectUtil.isNotEmpty(qualOnSiteReviewPageQry.getBizId())) {
qualOnSiteReviewDoQueryWrapper.eq("biz_id", qualOnSiteReviewPageQry.getBizId());
}
if (ObjectUtil.isNotEmpty(qualOnSiteReviewPageQry.getReviewDateStart())) {
qualOnSiteReviewDoQueryWrapper.eq("review_date_start", qualOnSiteReviewPageQry.getReviewDateStart());
}
if (ObjectUtil.isNotEmpty(qualOnSiteReviewPageQry.getReviewLocation())) {
qualOnSiteReviewDoQueryWrapper.eq("review_location", qualOnSiteReviewPageQry.getReviewLocation());
}
if (ObjectUtil.isNotEmpty(qualOnSiteReviewPageQry.getReviewMembers())) {
qualOnSiteReviewDoQueryWrapper.eq("review_members", qualOnSiteReviewPageQry.getReviewMembers());
}
if (ObjectUtil.isNotEmpty(qualOnSiteReviewPageQry.getMaterialRequirements())) {
qualOnSiteReviewDoQueryWrapper.eq("material_requirements", qualOnSiteReviewPageQry.getMaterialRequirements());
}
if (ObjectUtil.isNotEmpty(qualOnSiteReviewPageQry.getSupervisorContact())) {
qualOnSiteReviewDoQueryWrapper.eq("supervisor_contact", qualOnSiteReviewPageQry.getSupervisorContact());
}
if (ObjectUtil.isNotEmpty(qualOnSiteReviewPageQry.getContactPhone())) {
qualOnSiteReviewDoQueryWrapper.eq("contact_phone", qualOnSiteReviewPageQry.getContactPhone());
}
if (ObjectUtil.isNotEmpty(qualOnSiteReviewPageQry.getStatus())) {
qualOnSiteReviewDoQueryWrapper.eq("status", qualOnSiteReviewPageQry.getStatus());
}
if (ObjectUtil.isNotEmpty(qualOnSiteReviewPageQry.getEnv())) {
qualOnSiteReviewDoQueryWrapper.eq("env", qualOnSiteReviewPageQry.getEnv());
}
qualOnSiteReviewDoQueryWrapper.eq("delete_enum", BooleanEnum.FALSE.getValue());
return qualOnSiteReviewMapper.selectPage(iPage, qualOnSiteReviewDoQueryWrapper);
}
@Override
public Boolean addQualOnSiteReview(QualOnSiteReviewDO qualOnSiteReviewDO) {
return super.save(qualOnSiteReviewDO);
}
@Override
public Boolean updateQualOnSiteReview(QualOnSiteReviewDO qualOnSiteReviewDO) {
return super.updateById(qualOnSiteReviewDO);
}
@Override
public Boolean deletedQualOnSiteReviewById(Long id) {
return super.removeEnById(id);
}
@Override
public Boolean deletedQualOnSiteReviewByIds(Long[] ids) {
return super.removeBatchEnByIds(Arrays.asList(ids));
}
}

View File

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.qinan.safetyeval.infrastructure.persistence.mapper.QualOnSiteReviewMapper">
<resultMap type="org.qinan.safetyeval.infrastructure.persistence.domainobject.QualOnSiteReviewDO"
id="QualOnSiteReviewResult">
<id property="id" column="id"/>
<result property="bizType" column="biz_type"/>
<result property="bizId" column="biz_id"/>
<result property="orgId" column="org_id"/>
<result property="reviewDateStart" column="review_date_start"/>
<result property="reviewLocation" column="review_location"/>
<result property="reviewMembers" column="review_members"/>
<result property="materialRequirements" column="material_requirements"/>
<result property="supervisorContact" column="supervisor_contact"/>
<result property="contactPhone" column="contact_phone"/>
<result property="status" column="status"/>
<result property="deleteEnum" column="delete_enum"/>
<result property="remarks" column="remarks"/>
<result property="createName" column="create_name"/>
<result property="updateName" column="update_name"/>
<result property="tenantId" column="tenant_id"/>
<result property="version" column="version"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createId" column="create_id"/>
<result property="updateId" column="update_id"/>
<result property="env" column="env"/>
</resultMap>
<sql id="selectQualOnSiteReview">
select id,
biz_type,
biz_id,
org_id,
review_date_start,
review_location,
review_members,
material_requirements,
supervisor_contact,
contact_phone,
status,
delete_enum,
remarks,
create_name,
update_name,
tenant_id,
version,
create_time,
update_time,
create_id,
update_id,
env
from qual_on_site_review
</sql>
</mapper>