Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@@ -7,6 +7,7 @@ import com.zt.plat.module.base.service.tmpltp.TemplateInstanceService;
|
||||
import com.zt.plat.module.infra.api.file.FileApi;
|
||||
import com.zt.plat.module.infra.api.file.dto.FileCreateReqDTO;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -42,6 +43,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||
import static com.zt.plat.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Tag(name = "管理后台 - 模板实例")
|
||||
@RestController
|
||||
@RequestMapping("/base/template-instance")
|
||||
@@ -103,14 +105,16 @@ public class TemplateInstanceController extends AbstractFileUploadController {
|
||||
@Operation(summary = "获得模板实例")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('bse:template-instance:query')")
|
||||
public CommonResult<TemplateInstanceRespVO> getTemplateInstance(@RequestParam("id") Long id) {
|
||||
TemplateInstanceDO templateInstance = templateInstanceService.getTemplateInstance(id);
|
||||
public CommonResult<TemplateInstanceRespVO> getTemplateInstance(@Valid @NotEmpty(message = "编号不能为空") @RequestParam("id") String id) {
|
||||
TemplateInstanceDO templateInstance = templateInstanceService.getTemplateInstance(Long.valueOf(id));
|
||||
TemplateInstanceRespVO templateInstanceRespVO = BeanUtils.toBean(templateInstance, TemplateInstanceRespVO.class);
|
||||
if (templateInstance == null) {
|
||||
if (templateInstanceRespVO != null) {
|
||||
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
|
||||
log.info("==================模板实例详情查询成功=================");
|
||||
return success(templateInstanceRespVO);
|
||||
}
|
||||
templateInstanceService.getDetailedInfo(templateInstanceRespVO);
|
||||
return success(templateInstanceRespVO);
|
||||
|
||||
return success(null);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@@ -195,4 +199,11 @@ public class TemplateInstanceController extends AbstractFileUploadController {
|
||||
public CommonResult<List<TemplateInstanceRespVO>> listByTemplateCode(@RequestParam("cdg") @Valid @NotEmpty(message = "模版编号不能为空") String templateCode) {
|
||||
return success(templateInstanceService.listByCdg(templateCode));
|
||||
}
|
||||
|
||||
//通过实例id获取字段和条款详情
|
||||
@GetMapping("/field-and-clause-detail")
|
||||
@Operation(summary = "通过实例id获取字段和条款详情")
|
||||
public CommonResult<FieldAndClauseRespVO> getFieldAndClauseDetail(@Valid @NotEmpty(message = "模版实例id不能为空") @RequestParam("id") String id) {
|
||||
return success(templateInstanceService.getFieldAndClauseDetail(id));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,6 +115,4 @@ public class TemplateInstanceDataController implements BusinessControllerMarker
|
||||
ExcelUtils.write(response, "实例字段值.xls", "数据", TemplateInstanceDataRespVO.class,
|
||||
BeanUtils.toBean(list, TemplateInstanceDataRespVO.class));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ package com.zt.plat.module.base.controller.admin.templtp;
|
||||
import com.zt.plat.module.base.controller.admin.templtp.vo.*;
|
||||
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplTpDO;
|
||||
import com.zt.plat.module.base.service.tmpltp.TmplTpService;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -85,8 +86,8 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
|
||||
@Operation(summary = "获得模板分类")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:query')")
|
||||
public CommonResult<TmplTpRespVO> getTmplTp(@RequestParam("id") Long id) {
|
||||
TmplTpDO tmplTp = tmplTpService.getTmplTp(id);
|
||||
public CommonResult<TmplTpRespVO> getTmplTp(@Valid @NotEmpty(message = "编号不能为空") @RequestParam("id") String id) {
|
||||
TmplTpDO tmplTp = tmplTpService.getTmplTp(Long.valueOf(id));
|
||||
return success(BeanUtils.toBean(tmplTp, TmplTpRespVO.class));
|
||||
}
|
||||
|
||||
@@ -114,10 +115,10 @@ public class TmplTpController extends AbstractFileUploadController implements Bu
|
||||
@GetMapping("/field-and-clause")
|
||||
@Operation(summary = "获得字段和条款",description = "字段和条款回显,传入模版分类的id")
|
||||
@PreAuthorize("@ss.hasPermission('bse:tmpl-tp:query')")
|
||||
public CommonResult<Map<String, Object>> getFieldAndClause(@RequestParam("id") Long id) {
|
||||
public CommonResult<Map<String, Object>> getFieldAndClause(@Valid @NotEmpty(message = "编号不能为空")@RequestParam("id") String id) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("field", tmplTpService.getField(id));
|
||||
map.put("clause", tmplTpService.getClause(id));
|
||||
map.put("field", tmplTpService.getField(Long.valueOf(id)));
|
||||
map.put("clause", tmplTpService.getClause(Long.valueOf(id)));
|
||||
return success(map);
|
||||
}
|
||||
//获取分类树
|
||||
|
||||
@@ -71,8 +71,8 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
|
||||
if (callback.getActions() != null) {
|
||||
for (Action action : callback.getActions()) {
|
||||
String actionType = switch (action.getType()) {
|
||||
case 0 -> "断开了与";
|
||||
case 1 -> "连接到";
|
||||
case 0 -> "断开了连接";
|
||||
case 1 -> "连接成功";
|
||||
case 2 -> "在中点击了强制保存";
|
||||
default -> "在中执行了未知操作";
|
||||
};
|
||||
@@ -146,15 +146,16 @@ public class OnlyOfficeCallbackServiceImpl implements OnlyOfficeCallbackService
|
||||
MultipartFile file = downloadFileAsMultipart(callback.getUrl());
|
||||
// 1. 验证文件是否为空
|
||||
|
||||
|
||||
|
||||
String directory = "模版实例";
|
||||
FileCreateReqDTO fileCreateReqDTO = new FileCreateReqDTO();
|
||||
fileCreateReqDTO.setName(fileName);
|
||||
fileCreateReqDTO.setContent(file.getBytes());
|
||||
fileCreateReqDTO.setType(file.getContentType()); // 使用真实的MIME类型
|
||||
fileCreateReqDTO.setDirectory(directory); // 设置文件存储目录
|
||||
|
||||
if (file.getSize() <=0){
|
||||
log.error("文件大小为0");
|
||||
return;
|
||||
}
|
||||
// 7. 调用文件服务创建文件
|
||||
CommonResult<FileRespDTO> result = fileApi.createFileWithReturn(fileCreateReqDTO);
|
||||
if (result.isSuccess()) {
|
||||
|
||||
@@ -50,7 +50,9 @@ public class UrlFileDownloader {
|
||||
String contentType = connection.getContentType() == null ? "application/octet-stream" : connection.getContentType();
|
||||
// 3. 读取文件字节内容
|
||||
byte[] fileBytes = readFileBytes(connection.getInputStream());
|
||||
|
||||
if (fileBytes.length == 0){
|
||||
throw new IOException("文件内容为空");
|
||||
}
|
||||
// 4. 使用自定义MultipartFile实现类封装(不依赖Spring Test)
|
||||
return new CustomMultipartFile(
|
||||
"file", // 表单字段名(与上传接口的@RequestParam("file")对应)
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.zt.plat.module.base.controller.admin.templtp.vo;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 合同动态表单 响应 VO")
|
||||
@Data
|
||||
public class FieldAndClauseRespVO {
|
||||
@Schema(description = "模板分类")
|
||||
List<TmplFldRespVO> tmplFldRespVOS;
|
||||
@Schema(description = "条款")
|
||||
List<TmplItmRespVO> tmplItmRespVOS;
|
||||
|
||||
}
|
||||
@@ -21,7 +21,7 @@ public class TemplateInstanceDataSaveReqVO {
|
||||
private String fldKy;
|
||||
|
||||
@Schema(description = "用户填写的值", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotEmpty(message = "用户填写的值不能为空")
|
||||
// @NotEmpty(message = "用户填写的值不能为空")
|
||||
private String fldVal;
|
||||
|
||||
}
|
||||
|
||||
@@ -8,6 +8,8 @@ import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceDataDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 实例字段值 Mapper
|
||||
@@ -25,7 +27,7 @@ public interface TemplateInstanceDataMapper extends BaseMapperX<TemplateInstance
|
||||
.betweenIfPresent(TemplateInstanceDataDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(TemplateInstanceDataDO::getId));
|
||||
}
|
||||
int deleteByTemplateInstanceId(@Param("templateInstanceId") Long templateInstanceId);
|
||||
int deleteByTemplateInstanceIds(@Param("templateInstanceIds") List<Long> templateInstanceIds);
|
||||
|
||||
int updateFldValById(@Param("inscId") String inscId, @Param("fldVal") String fldVal, @Param("fldKy") String fldKy);
|
||||
|
||||
|
||||
@@ -8,6 +8,8 @@ import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceItemDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 实例条款值 Mapper
|
||||
@@ -26,5 +28,5 @@ public interface TemplateInstanceItemMapper extends BaseMapperX<TemplateInstance
|
||||
.orderByDesc(TemplateInstanceItemDO::getId));
|
||||
}
|
||||
|
||||
int deleteByTemplateInstanceId(@Param("templateInstanceId") Long templateInstanceId);
|
||||
int deleteByTemplateInstanceIds(@Param("templateInstanceIds") List<Long> templateInstanceIds);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.zt.plat.module.base.controller.admin.templtp.vo.DepartmentInstanceRel
|
||||
import com.zt.plat.module.base.controller.admin.templtp.vo.DepartmentInstanceRelativitySaveReqVO;
|
||||
import com.zt.plat.module.base.dal.dataobject.tmpltp.DepartmentInstanceRelativityDO;
|
||||
import com.zt.plat.module.base.dal.mysql.tmpltp.DepartmentInstanceRelativityMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -32,6 +33,7 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.DEPARTMENT_INST
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
@Slf4j
|
||||
public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstanceRelativityService {
|
||||
|
||||
@Resource
|
||||
@@ -43,6 +45,7 @@ public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstan
|
||||
DepartmentInstanceRelativityDO departmentInstanceRelativity = BeanUtils.toBean(createReqVO, DepartmentInstanceRelativityDO.class);
|
||||
departmentInstanceRelativityMapper.insert(departmentInstanceRelativity);
|
||||
// 返回
|
||||
log.info("创建部门与实例关联成功,结果:{}", departmentInstanceRelativity);
|
||||
return BeanUtils.toBean(departmentInstanceRelativity, DepartmentInstanceRelativityRespVO.class);
|
||||
}
|
||||
|
||||
@@ -53,6 +56,7 @@ public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstan
|
||||
// 更新
|
||||
DepartmentInstanceRelativityDO updateObj = BeanUtils.toBean(updateReqVO, DepartmentInstanceRelativityDO.class);
|
||||
departmentInstanceRelativityMapper.updateById(updateObj);
|
||||
log.info("更新部门与实例关联成功,结果:{}", updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -61,6 +65,7 @@ public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstan
|
||||
validateDepartmentInstanceRelativityExists(id);
|
||||
// 删除
|
||||
departmentInstanceRelativityMapper.deleteById(id);
|
||||
log.info("删除部门与实例关联成功,结果:{}", id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -69,6 +74,7 @@ public class DepartmentInstanceRelativityServiceImpl implements DepartmentInstan
|
||||
validateDepartmentInstanceRelativityExists(ids);
|
||||
// 删除
|
||||
departmentInstanceRelativityMapper.deleteByIds(ids);
|
||||
log.info("删除部门与实例关联成功,结果:{}", ids);
|
||||
}
|
||||
|
||||
private void validateDepartmentInstanceRelativityExists(List<Long> ids) {
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceDataMapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -36,6 +37,7 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TEMPLATE_INSTAN
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
@Slf4j
|
||||
public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataService {
|
||||
|
||||
@Resource
|
||||
@@ -46,7 +48,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
|
||||
//判断当前标识字段在数据库中是否存在
|
||||
Long loginUserCompanyId = SecurityFrameworkUtils.getLoginUserCompanyId();
|
||||
if (templateInstanceDataMapper.selectCount(new LambdaQueryWrapper<TemplateInstanceDataDO>()
|
||||
.eq(TemplateInstanceDataDO::getFldKy,createReqVO)
|
||||
.eq(TemplateInstanceDataDO::getFldKy,createReqVO.getFldKy())
|
||||
.eq(TemplateInstanceDataDO::getInscId,createReqVO.getInscId())
|
||||
.eq(TemplateInstanceDataDO::getCompanyId,loginUserCompanyId)) >0) {
|
||||
throw exception(TMPL_INS_FLD_CODE_EXISTS);
|
||||
@@ -54,6 +56,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
|
||||
// 插入
|
||||
TemplateInstanceDataDO templateInstanceData = BeanUtils.toBean(createReqVO, TemplateInstanceDataDO.class);
|
||||
templateInstanceDataMapper.insert(templateInstanceData);
|
||||
log.info("创建实例与字段值关系成功,结果:{}", templateInstanceData);
|
||||
// 返回
|
||||
return BeanUtils.toBean(templateInstanceData, TemplateInstanceDataRespVO.class);
|
||||
}
|
||||
@@ -65,6 +68,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
|
||||
// 更新
|
||||
TemplateInstanceDataDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceDataDO.class);
|
||||
templateInstanceDataMapper.updateById(updateObj);
|
||||
log.info("更新实例与字段值关系成功,结果:{}", updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -73,6 +77,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
|
||||
validateTemplateInstanceDataExists(id);
|
||||
// 删除
|
||||
templateInstanceDataMapper.deleteById(id);
|
||||
log.info("删除实例与字段值关系成功,结果:{}", id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -81,6 +86,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
|
||||
validateTemplateInstanceDataExists(ids);
|
||||
// 删除
|
||||
templateInstanceDataMapper.deleteByIds(ids);
|
||||
log.info("删除实例与字段值关系成功,结果:{}", ids);
|
||||
}
|
||||
|
||||
private void validateTemplateInstanceDataExists(List<Long> ids) {
|
||||
@@ -103,6 +109,7 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
|
||||
|
||||
@Override
|
||||
public PageResult<TemplateInstanceDataDO> getTemplateInstanceDataPage(TemplateInstanceDataPageReqVO pageReqVO) {
|
||||
log.info("查询实例与字段值关系列表,参数:{}", pageReqVO);
|
||||
return templateInstanceDataMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@@ -112,7 +119,10 @@ public class TemplateInstanceDataServiceImpl implements TemplateInstanceDataServ
|
||||
if (CollUtil.isEmpty(pageReqVOS)) {
|
||||
throw exception(PARAMS_IS_NULL_OR_ERR);
|
||||
}
|
||||
pageReqVOS.forEach(i->templateInstanceDataMapper.updateFldValById(i.getInscId(),i.getFldVal(),i.getFldKy()));
|
||||
pageReqVOS.forEach(
|
||||
i->{templateInstanceDataMapper.updateFldValById(i.getInscId(),i.getFldVal(),i.getFldKy());
|
||||
log.info("更新实例与字段值关系成功,结果:实例id:【{}】,key:【{}】,值【{}】", i.getInscId(),i.getFldKy(),i.getFldVal());
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,14 @@
|
||||
package com.zt.plat.module.base.service.tmpltp;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zt.plat.framework.tenant.core.context.CompanyContextHolder;
|
||||
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemPageReqVO;
|
||||
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemRespVO;
|
||||
import com.zt.plat.module.base.controller.admin.templtp.vo.TemplateInstanceItemSaveReqVO;
|
||||
import com.zt.plat.module.base.dal.dataobject.tmpltp.TemplateInstanceItemDO;
|
||||
import com.zt.plat.module.base.dal.mysql.tmpltp.TemplateInstanceItemMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -13,8 +16,7 @@ import java.util.*;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.PARAMS_IS_NULL_OR_ERR;
|
||||
import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TEMPLATE_INSTANCE_ITEM_NOT_EXISTS;
|
||||
import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
* 实例条款值 Service 实现类
|
||||
@@ -23,6 +25,7 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TEMPLATE_INSTAN
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
@Slf4j
|
||||
public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemService {
|
||||
|
||||
@Resource
|
||||
@@ -30,9 +33,12 @@ public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemServ
|
||||
|
||||
@Override
|
||||
public TemplateInstanceItemRespVO createTemplateInstanceItem(TemplateInstanceItemSaveReqVO createReqVO) {
|
||||
//判断当前实例条款关系在数据库中存在
|
||||
validateTemplateInstanceItemExistsByInscId(createReqVO.getInscId(), createReqVO.getItmId());
|
||||
// 插入
|
||||
TemplateInstanceItemDO templateInstanceItem = BeanUtils.toBean(createReqVO, TemplateInstanceItemDO.class);
|
||||
templateInstanceItemMapper.insert(templateInstanceItem);
|
||||
log.info("创建成功实例与条款关系成功,记录为【{}】", templateInstanceItem);
|
||||
// 返回
|
||||
return BeanUtils.toBean(templateInstanceItem, TemplateInstanceItemRespVO.class);
|
||||
}
|
||||
@@ -40,10 +46,11 @@ public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemServ
|
||||
@Override
|
||||
public void updateTemplateInstanceItem(TemplateInstanceItemSaveReqVO updateReqVO) {
|
||||
// 校验存在
|
||||
validateTemplateInstanceItemExists(updateReqVO.getId());
|
||||
validateTemplateInstanceItemExists(updateReqVO.getInscId());
|
||||
// 更新
|
||||
TemplateInstanceItemDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceItemDO.class);
|
||||
templateInstanceItemMapper.updateById(updateObj);
|
||||
log.info("更新成功实例与条款关系成功,记录为【{}】", updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -52,6 +59,7 @@ public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemServ
|
||||
validateTemplateInstanceItemExists(id);
|
||||
// 删除
|
||||
templateInstanceItemMapper.deleteById(id);
|
||||
log.info("删除成功实例与条款关系成功,记录为【{}】", id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -60,6 +68,7 @@ public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemServ
|
||||
validateTemplateInstanceItemExists(ids);
|
||||
// 删除
|
||||
templateInstanceItemMapper.deleteByIds(ids);
|
||||
log.info("删除成功实例与条款关系成功,记录为【{}】", ids);
|
||||
}
|
||||
|
||||
private void validateTemplateInstanceItemExists(List<String> ids) {
|
||||
@@ -95,4 +104,10 @@ public class TemplateInstanceItemServiceImpl implements TemplateInstanceItemServ
|
||||
return BeanUtils.toBean(templateInstanceItemDOList, TemplateInstanceItemRespVO.class);
|
||||
}
|
||||
|
||||
private void validateTemplateInstanceItemExistsByInscId(String inscId, String itmId){
|
||||
if (templateInstanceItemMapper.selectCount(new LambdaQueryWrapper<TemplateInstanceItemDO>().eq(TemplateInstanceItemDO::getInscId, inscId).eq(TemplateInstanceItemDO::getItmId, itmId).eq(TemplateInstanceItemDO::getCompanyId, CompanyContextHolder.getCompanyId())) > 0){
|
||||
throw exception(TMPL_ITM_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -85,4 +85,6 @@ public interface TemplateInstanceService {
|
||||
// Map<String, Object> saveFile(MultipartFile file, String id);
|
||||
|
||||
void updateTemplateInstanceFileUrlByInstanceId(@Valid @NotEmpty(message = "模版实例id不能为空") String id, @Valid @NotEmpty(message = "文件参数不能为空") String params);
|
||||
|
||||
FieldAndClauseRespVO getFieldAndClauseDetail(@Valid @NotEmpty(message = "模版实例id不能为空") String id);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import com.zt.plat.module.tmpltp.enums.TmplStsEnum;
|
||||
import com.zt.plat.module.tmpltp.enums.UpdateStatusEnum;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@@ -45,7 +46,7 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.*;
|
||||
@Validated
|
||||
public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
@Resource
|
||||
private DeptApi deptApi;
|
||||
private DeptApi deptApi;
|
||||
@Resource
|
||||
private TemplateInstanceMapper templateInstanceMapper;
|
||||
@Resource
|
||||
@@ -54,12 +55,13 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
private TemplateInstanceDataMapper templateInstanceDataMapper;
|
||||
@Resource
|
||||
private TemplateInstanceItemMapper templateInstanceItemMapper;
|
||||
|
||||
@Resource
|
||||
private TmplItmService tmplItmService;
|
||||
@Resource
|
||||
private TmplTpFldService tmplTpFldService;
|
||||
@Resource
|
||||
private TmplTpService tmplTpService;
|
||||
|
||||
private static final Pattern VERSION_PATTERN = Pattern.compile("^(.*?)([0-9]+(?:\\.[0-9]+)*)(.*)$");
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public TemplateInstanceRespVO createTemplateInstance(TemplateInstanceSaveReqVO createReqVO) {
|
||||
@@ -72,6 +74,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
if (insert <= 0) {
|
||||
throw exception(TEMPLATE_INSTANCE_CREATE_FAIL);
|
||||
}
|
||||
log.info("创建模板实例成功,模板实例:【{}】", templateInstance);
|
||||
|
||||
//构建使用部门
|
||||
List<DepartmentInstanceRelativityDO> departmentInstanceRelativityDOS = new ArrayList<>();
|
||||
@@ -82,6 +85,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
departmentInstanceRelativityDOS.add(departmentInstanceRelativityDO);
|
||||
});
|
||||
departmentInstanceRelativityMapper.insertBatch(departmentInstanceRelativityDOS);
|
||||
log.info("创建模板实例成功,模板实例:【{}】", departmentInstanceRelativityDOS);
|
||||
// 插入使用范围
|
||||
TemplateInstanceRespVO templateInstanceRespVO = BeanUtils.toBean(templateInstance, TemplateInstanceRespVO.class);
|
||||
templateInstanceRespVO.setDeptIds(createReqVO.getDeptIds());
|
||||
@@ -99,6 +103,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
TemplateInstanceDO updateObj = BeanUtils.toBean(updateReqVO, TemplateInstanceDO.class);
|
||||
// updateObj.setVer(incrementVersion(templateInstanceDO.getVer()));
|
||||
templateInstanceMapper.updateById(updateObj);
|
||||
log.info("更新模板实例成功,模板实例:【{}】", templateInstanceDO);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -110,10 +115,13 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
// 删除
|
||||
//删除对应的字段和条款关系
|
||||
//1、删除合同的与字段的关系
|
||||
templateInstanceDataMapper.deleteByTemplateInstanceId(id);
|
||||
templateInstanceDataMapper.deleteByTemplateInstanceIds(List.of(id));
|
||||
log.info("删除模板实例字段成功,模板实例id:【{}】", id);
|
||||
//2、删除条款与和他的关系
|
||||
templateInstanceItemMapper.deleteByTemplateInstanceId(id);
|
||||
templateInstanceItemMapper.deleteByTemplateInstanceIds(List.of(id));
|
||||
log.info("删除模板实例条款成功,模板实例id:【{}】", id);
|
||||
templateInstanceMapper.deleteById(id);
|
||||
log.info("删除模板实例成功,模板实例id:【{}】", id);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -123,8 +131,13 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
validateTemplateInstanceExists(ids);
|
||||
//校验当前模版能否被删除
|
||||
validateStatusCanDelete(ids);
|
||||
templateInstanceItemMapper.deleteByTemplateInstanceIds(ids);
|
||||
log.info("删除模板实例条款成功,模板实例ids:【{}】", ids);
|
||||
templateInstanceDataMapper.deleteByTemplateInstanceIds(ids);
|
||||
log.info("删除模板实例字段成功,模板实例ids:【{}】", ids);
|
||||
// 删除
|
||||
templateInstanceMapper.deleteByIds(ids);
|
||||
log.info("删除模板实例成功,模板实例id:【{}】", ids);
|
||||
}
|
||||
|
||||
private void validateTemplateInstanceExists(List<Long> ids) {
|
||||
@@ -150,64 +163,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
return templateInstanceMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
|
||||
// private String incrementVersion(String currentVersion) {
|
||||
// // 处理空值或空字符串
|
||||
// if (currentVersion == null || currentVersion.trim().isEmpty()) {
|
||||
// return "v1.0";
|
||||
// }
|
||||
//
|
||||
// String version = currentVersion.trim();
|
||||
// Matcher matcher = VERSION_PATTERN.matcher(version);
|
||||
//
|
||||
// if (!matcher.matches()) {
|
||||
// // 没有找到数字部分,返回默认版本
|
||||
// return version + "1.0";
|
||||
// }
|
||||
//
|
||||
// String prefix = matcher.group(1); // 前缀部分(如 "v", "version-" 等)
|
||||
// String numberPart = matcher.group(2); // 数字部分(如 "1.2.3")
|
||||
// String suffix = matcher.group(3); // 后缀部分
|
||||
//
|
||||
// // 分割数字部分
|
||||
// String[] segments = numberPart.split("\\.");
|
||||
//
|
||||
// // 从最后一段开始处理进位
|
||||
// boolean carry = true; // 初始需要加1
|
||||
//
|
||||
// for (int i = segments.length - 1; i >= 0 && carry; i--) {
|
||||
// try {
|
||||
// int currentNumber = Integer.parseInt(segments[i]);
|
||||
// currentNumber++; // 加1
|
||||
//
|
||||
// if (currentNumber >= 10) {
|
||||
// // 需要进位
|
||||
// segments[i] = "0";
|
||||
// carry = true; // 继续向前进位
|
||||
// } else {
|
||||
// // 不需要进位
|
||||
// segments[i] = String.valueOf(currentNumber);
|
||||
// carry = false; // 停止进位
|
||||
// }
|
||||
// } catch (NumberFormatException e) {
|
||||
// // 理论上不会发生,因为正则已经保证了是数字
|
||||
// segments[i] = "1";
|
||||
// carry = false;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// // 如果最高位也需要进位,在前面添加一段
|
||||
// if (carry) {
|
||||
// String[] newSegments = new String[segments.length + 1];
|
||||
// newSegments[0] = "1";
|
||||
// System.arraycopy(segments, 0, newSegments, 1, segments.length);
|
||||
// segments = newSegments;
|
||||
// }
|
||||
//
|
||||
// // 重新组合版本号
|
||||
// String newNumberPart = String.join(".", segments);
|
||||
// return prefix + newNumberPart + suffix;
|
||||
// }
|
||||
@NotNull
|
||||
private String incrementVersion(String currentVersion) {
|
||||
// 处理空值或空字符串
|
||||
if (currentVersion == null || currentVersion.trim().isEmpty()) {
|
||||
@@ -267,7 +223,7 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
PublishStatusEnum status = PublishStatusEnum.fromCode(currentStatus);
|
||||
boolean transitionAllowed = false;
|
||||
if (status != null) {
|
||||
transitionAllowed = status.isTransitionAllowed(TmplStsEnum.PUBLISHED.getCode());
|
||||
transitionAllowed = status.isTransitionAllowed(TmplStsEnum.DRAFT.getCode());
|
||||
}
|
||||
if (!transitionAllowed) {
|
||||
throw exception(STATUS_OPERATION_FAIL);
|
||||
@@ -279,10 +235,12 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
.map(PublishTemplateInstanceReqVO::getId)
|
||||
.collect(Collectors.toSet()))
|
||||
.set(TemplateInstanceDO::getSts, TmplStsEnum.PUBLISHED.getCode()));
|
||||
log.info("更新模版实例状态成功【{}】", publishReqVOS.stream().map(PublishTemplateInstanceReqVO::getId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<TemplateInstanceDO> listExcludingDisabled(TemplateInstancePageReqVO pageReqVO) {
|
||||
log.info("查询除了停用外的模版实例【{}】", pageReqVO);
|
||||
return templateInstanceMapper.listExcludingDisabled(pageReqVO);
|
||||
}
|
||||
|
||||
@@ -319,9 +277,11 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
newTpInstanceDO.setCreateTime(null);
|
||||
newTpInstanceDO.setUpdateTime(null);
|
||||
templateInstanceMapper.insert(newTpInstanceDO);
|
||||
log.info("创建模版实例【{}】成功", newTpInstanceDO);
|
||||
templateInstanceMapper.update(new LambdaUpdateWrapper<TemplateInstanceDO>()
|
||||
.set(TemplateInstanceDO::getSts, TmplStsEnum.STOPPED.getCode())
|
||||
.eq(TemplateInstanceDO::getId, id));
|
||||
log.info("更新模版实例【{}】状态状态为【STOP】成功", id);
|
||||
List<TemplateInstanceDataDO> templateInstanceDataDOS = new ArrayList<>();
|
||||
List<TemplateInstanceItemDO> templateInstanceItemDOS = new ArrayList<>();
|
||||
List<DepartmentInstanceRelativityDO> newDepartmentInstanceRelativityDOS = new ArrayList<>();
|
||||
@@ -388,19 +348,17 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void getDetailedInfo(TemplateInstanceRespVO templateInstanceRespVO) {
|
||||
templateInstanceRespVO.setDeptIds(getDeptByInstanId(templateInstanceRespVO.getId())); // 部门
|
||||
templateInstanceRespVO.setInstanceItemRespVOS(setInstanceItemRespVOS(templateInstanceRespVO.getId())); // 条款
|
||||
templateInstanceRespVO.setTemplateInstanceDataRespVOS(setTemplateInstanceDataRespVOS(templateInstanceRespVO.getId())); // 实例字段
|
||||
if (!templateInstanceRespVO.getDeptIds().isEmpty()){
|
||||
if (!templateInstanceRespVO.getDeptIds().isEmpty()) {
|
||||
templateInstanceRespVO.setDeptRespVOS(deptApi.getDeptList(templateInstanceRespVO.getDeptIds().stream().map(Long::valueOf).toList()).getData()); // 部门详情
|
||||
}
|
||||
TmplTpDO tmplTp = tmplTpService.getTmplTp(templateInstanceRespVO.getTpId());
|
||||
if (tmplTp != null){
|
||||
templateInstanceRespVO.setTpName(!tmplTp.getName().isEmpty()?tmplTp.getName():"分类未命名");
|
||||
if (tmplTp != null) {
|
||||
templateInstanceRespVO.setTpName(!tmplTp.getName().isEmpty() ? tmplTp.getName() : "分类未命名");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -411,7 +369,9 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
LambdaUpdateWrapper<TemplateInstanceDO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(TemplateInstanceDO::getId, id).set(TemplateInstanceDO::getCntt, params);
|
||||
templateInstanceMapper.update(updateWrapper);
|
||||
log.info("==================模板实例文件对象信息更新成功,文件对象信息为【{}】==================", params);
|
||||
}
|
||||
|
||||
// 实例条款值
|
||||
private List<TemplateInstanceItemRespVO> setInstanceItemRespVOS(Long id) {
|
||||
List<TemplateInstanceItemDO> templateInstanceItemDOS = templateInstanceItemMapper.selectList(new LambdaQueryWrapper<TemplateInstanceItemDO>()
|
||||
@@ -483,6 +443,31 @@ public class TemplateInstanceServiceImpl implements TemplateInstanceService {
|
||||
}
|
||||
|
||||
private String getCdg() {
|
||||
return "TP" + DateUtils.format(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.randomNumbers(4);
|
||||
String cdg = "TP" + DateUtils.format(new Date(), "yyyyMMddHHmmssSSS") + RandomUtil.randomNumbers(4);
|
||||
log.info("==================模板实例编号生成成功,模板实例编号为【{}】==================", cdg);
|
||||
return cdg;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FieldAndClauseRespVO getFieldAndClauseDetail(String id) {
|
||||
FieldAndClauseRespVO fieldAndClauseRespVO = new FieldAndClauseRespVO();
|
||||
//查询关联的实例模版字段
|
||||
List<String> valKeys = templateInstanceDataMapper.selectList(new LambdaQueryWrapper<TemplateInstanceDataDO>().eq(TemplateInstanceDataDO::getInscId, id)).stream().map(TemplateInstanceDataDO::getFldKy).distinct().toList();
|
||||
//查询关联的实例模版条款
|
||||
List<String> itmIds = templateInstanceItemMapper.selectList(new LambdaQueryWrapper<TemplateInstanceItemDO>().eq(TemplateInstanceItemDO::getInscId, id)).stream().map(TemplateInstanceItemDO::getItmId).toList();
|
||||
|
||||
// 例模版条款去条款库查询条款信息
|
||||
if (!itmIds.isEmpty()){
|
||||
List<TmplItmRespVO> tmplItmRespVOS = BeanUtils.toBean(tmplItmService.listTmplItmByIds(itmIds), TmplItmRespVO.class);
|
||||
fieldAndClauseRespVO.setTmplItmRespVOS(BeanUtils.toBean(tmplItmRespVOS, TmplItmRespVO.class));
|
||||
}
|
||||
if (!valKeys.isEmpty()){
|
||||
//例模版字段去字段库查询字段信息
|
||||
List<TmplTpFldDO> tmplTpListByValKeys = tmplTpFldService.getTmplTpListByValKeys(valKeys);
|
||||
fieldAndClauseRespVO.setTmplFldRespVOS(BeanUtils.toBean(tmplTpListByValKeys, TmplFldRespVO.class));
|
||||
}
|
||||
|
||||
return fieldAndClauseRespVO;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -7,6 +7,8 @@ import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmRespVO;
|
||||
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmSaveReqVO;
|
||||
import com.zt.plat.module.base.dal.dataobject.tmpltp.TmplItmDO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import jakarta.validation.Valid;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -17,4 +19,5 @@ public interface TmplItmService extends IService<TmplItmDO> {
|
||||
boolean deleteTmplItm(List<Long> ids);
|
||||
|
||||
PageResult<TmplItmDO> pageTmplItm(TmpItmPageReqVO pageReqVO);
|
||||
List<TmplItmDO> listTmplItmByIds(@Valid @NotEmpty(message = "ids不能为空") List<String> ids);
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.zt.plat.module.base.service.tmpltp;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.tenant.core.context.CompanyContextHolder;
|
||||
import com.zt.plat.module.base.controller.admin.templtp.vo.TmpItmPageReqVO;
|
||||
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmRespVO;
|
||||
import com.zt.plat.module.base.controller.admin.templtp.vo.TmplItmSaveReqVO;
|
||||
@@ -16,6 +18,7 @@ import org.springframework.validation.annotation.Validated;
|
||||
import java.util.List;
|
||||
|
||||
import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TMPL_ITM_NAME_EXISTS;
|
||||
import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TMPL_ITM_NOT_EXISTS;
|
||||
|
||||
@Service
|
||||
@@ -23,6 +26,8 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.TMPL_ITM_NOT_EX
|
||||
public class TmplItmServiceImpl extends ServiceImpl<TmplItmMapper, TmplItmDO> implements TmplItmService{
|
||||
@Override
|
||||
public TmplItmRespVO createTmplItm(TmplItmSaveReqVO tmplItmSaveReqVO) {
|
||||
//验证条款名是否存在
|
||||
validateTmplLtmNameExists(tmplItmSaveReqVO.getItmName());
|
||||
tmplItmSaveReqVO.setId(null);
|
||||
TmplItmDO bean = BeanUtils.toBean(tmplItmSaveReqVO, TmplItmDO.class);
|
||||
baseMapper.insert(bean);
|
||||
@@ -37,8 +42,6 @@ public class TmplItmServiceImpl extends ServiceImpl<TmplItmMapper, TmplItmDO> im
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private void validateTmplLtmExists(List<Long> ids) {
|
||||
List<TmplItmDO> list = baseMapper.selectByIds(ids);
|
||||
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
|
||||
@@ -51,6 +54,11 @@ public class TmplItmServiceImpl extends ServiceImpl<TmplItmMapper, TmplItmDO> im
|
||||
throw exception(TMPL_ITM_NOT_EXISTS);
|
||||
}
|
||||
}
|
||||
private void validateTmplLtmNameExists(String name){
|
||||
if (baseMapper.selectCount(new LambdaQueryWrapper<TmplItmDO>().eq(TmplItmDO::getItmName,name).eq(TmplItmDO::getDeleted,0).eq(TmplItmDO::getCompanyId, CompanyContextHolder.getCompanyId()))>0) {
|
||||
throw exception(TMPL_ITM_NAME_EXISTS);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
@@ -63,4 +71,9 @@ public class TmplItmServiceImpl extends ServiceImpl<TmplItmMapper, TmplItmDO> im
|
||||
public PageResult<TmplItmDO> pageTmplItm(TmpItmPageReqVO pageReqVO) {
|
||||
return baseMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TmplItmDO> listTmplItmByIds(List<String> ids) {
|
||||
return baseMapper.selectByIds(ids);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,4 +19,7 @@ public interface TmplTpFldService extends IService<TmplTpFldDO> {
|
||||
void deleteTmplTpByIds(List< Long> ids);
|
||||
List<Map<String, Object>>getTmplTpListByClass(String clazz);
|
||||
|
||||
List<TmplTpFldDO> getTmplTpListByValKeys(List< String> valNames);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.zt.plat.module.base.service.tmpltp;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.zt.plat.framework.common.pojo.PageResult;
|
||||
import com.zt.plat.framework.common.util.object.BeanUtils;
|
||||
import com.zt.plat.framework.security.core.LoginUser;
|
||||
@@ -15,6 +16,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.zt.plat.module.base.util.ClassInfoScanner;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
@@ -30,12 +32,14 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.*;
|
||||
|
||||
@Service
|
||||
@Validated
|
||||
@Slf4j
|
||||
public class TmplTpFldServiceImpl extends ServiceImpl<TmplTpFldMapper, TmplTpFldDO> implements TmplTpFldService {
|
||||
@Override
|
||||
public TmplFldRespVO createTmplFld(TmplTpFldSaveReqVO tmplTpFldSaveReqVO) {
|
||||
TmplTpFldDO tmplTpFldDO = BeanUtils.toBean(tmplTpFldSaveReqVO, TmplTpFldDO.class);
|
||||
validateTmplFldCodeExists(tmplTpFldSaveReqVO.getFldKy());
|
||||
baseMapper.insert(tmplTpFldDO);
|
||||
log.info("创建模板字段成功,模板字段信息:【{}】", tmplTpFldDO);
|
||||
return BeanUtils.toBean(tmplTpFldDO, TmplFldRespVO.class);
|
||||
}
|
||||
|
||||
@@ -46,6 +50,7 @@ public class TmplTpFldServiceImpl extends ServiceImpl<TmplTpFldMapper, TmplTpFld
|
||||
// 更新
|
||||
TmplTpFldDO updateObj = BeanUtils.toBean(tmplTpFldSaveReqVO, TmplTpFldDO.class);
|
||||
baseMapper.updateById(updateObj);
|
||||
log.info("更新模板字段成功,模板字段信息:【{}】", updateObj);
|
||||
}
|
||||
|
||||
private void validateTmplFldCodeExists(String code){
|
||||
@@ -70,6 +75,7 @@ public class TmplTpFldServiceImpl extends ServiceImpl<TmplTpFldMapper, TmplTpFld
|
||||
|
||||
@Override
|
||||
public PageResult<TmplTpFldDO> tmplTpFldPage(TmplFldPageReqVO pageReqVO) {
|
||||
log.info("获取模板字段列表,参数:【{}】", pageReqVO);
|
||||
return baseMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@@ -77,10 +83,17 @@ public class TmplTpFldServiceImpl extends ServiceImpl<TmplTpFldMapper, TmplTpFld
|
||||
public void deleteTmplTpByIds(List<Long> ids) {
|
||||
validateTmplFldExists(ids);
|
||||
baseMapper.deleteByIds(ids);
|
||||
log.info("删除模板字段成功,模板字段IDS:【{}】", ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getTmplTpListByClass(String clazz) {
|
||||
log.info("获取模板字段列表,模板字段类:【{}】", clazz);
|
||||
return ClassInfoScanner.getClassFieldInfo(clazz);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TmplTpFldDO> getTmplTpListByValKeys(List<String> valNames) {
|
||||
return baseMapper.selectList(new LambdaQueryWrapper<TmplTpFldDO>().in(TmplTpFldDO::getFldKy, valNames));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -38,6 +39,7 @@ import static com.zt.plat.module.tmpltp.enums.ErrorCodeConstants.*;
|
||||
@Service
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> implements TmplTpService {
|
||||
private final TmplFldRelMapper tmplFldRelMapper;
|
||||
private final TmplItmRelMapper tmplItmRelMapper;
|
||||
@@ -52,6 +54,7 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> imple
|
||||
TmplTpDO tmplTp = BeanUtils.toBean(createReqVO, TmplTpDO.class);
|
||||
tmplTp.setSts("Y");
|
||||
baseMapper.insert(tmplTp);
|
||||
log.info("创建模板分类成功 【{}】", tmplTp);
|
||||
// 返回
|
||||
List<TmplFldRelDO> tmplFldRelDOS = new ArrayList<>();
|
||||
List<TmplItmRelDO> tmplItmRelDOS = new ArrayList<>();
|
||||
@@ -68,7 +71,9 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> imple
|
||||
tmplItmRelDOS.add(tmplItmRelDO);
|
||||
});
|
||||
tmplFldRelMapper.insertBatch(tmplFldRelDOS);
|
||||
log.info("创建模板分类与字段关系成功 【{}】", tmplFldRelDOS);
|
||||
tmplItmRelMapper.insertBatch(tmplItmRelDOS);
|
||||
log.info("创建模板分类与条款关系成功 【{}】", tmplItmRelDOS);
|
||||
return BeanUtils.toBean(tmplTp, TmplTpRespVO.class);
|
||||
}
|
||||
|
||||
@@ -79,6 +84,7 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> imple
|
||||
// 更新
|
||||
TmplTpDO updateObj = BeanUtils.toBean(updateReqVO, TmplTpDO.class);
|
||||
baseMapper.updateById(updateObj);
|
||||
log.info("更新模板分类成功 【{}】", updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -92,17 +98,26 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> imple
|
||||
// }
|
||||
// 删除
|
||||
baseMapper.deleteByIds(ids);
|
||||
log.info("删除模板分类成功 【{}】", ids);
|
||||
//删除对应的关联信息
|
||||
tmplFldRelMapper.delete(Wrappers.<TmplFldRelDO>lambdaQuery().in(TmplFldRelDO::getTmplTpId, ids));
|
||||
log.info("删除模板分类与字段关系成功 【{}】", ids);
|
||||
tmplItmRelMapper.delete(Wrappers.<TmplItmRelDO>lambdaQuery().in(TmplItmRelDO::getTmplTpId, ids));
|
||||
log.info("删除模板分类与条款关系成功 【{}】", ids);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteTmplTpListByIds(List<Long> ids) {
|
||||
// 校验存在
|
||||
validateTmplTpExists(ids);
|
||||
// 删除
|
||||
baseMapper.deleteByIds(ids);
|
||||
log.info("删除模板分类成功 【{}】", ids);
|
||||
tmplFldRelMapper.delete(Wrappers.<TmplFldRelDO>lambdaQuery().in(TmplFldRelDO::getTmplTpId, ids));
|
||||
log.info("删除模板分类与字段关系成功 【{}】", ids);
|
||||
tmplItmRelMapper.delete(Wrappers.<TmplItmRelDO>lambdaQuery().in(TmplItmRelDO::getTmplTpId, ids));
|
||||
log.info("删除模板分类与条款关系成功 【{}】", ids);
|
||||
}
|
||||
|
||||
private void validateTmplTpExists(List<Long> ids) {
|
||||
@@ -125,6 +140,7 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> imple
|
||||
|
||||
@Override
|
||||
public PageResult<TmplTpDO> getTmplTpPage(TmplTpPageReqVO pageReqVO) {
|
||||
log.info("查询模板分类列表 【{}】", pageReqVO);
|
||||
return baseMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@@ -189,6 +205,7 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> imple
|
||||
// throw exception(TMPL_TP_SATUS_ERROR);
|
||||
// }
|
||||
baseMapper.update(Wrappers.<TmplTpDO>lambdaUpdate().set(TmplTpDO::getSts, status).eq(TmplTpDO::getId, id));
|
||||
log.info("更新模板分类状态成功 【{}】,更新前的状态为【{}】", id, status);
|
||||
}
|
||||
|
||||
|
||||
@@ -235,10 +252,12 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> imple
|
||||
tmplFldRelDOS.add(tmplFldRelDO);
|
||||
});
|
||||
tmplFldRelMapper.insertBatch(tmplFldRelDOS);
|
||||
log.info("模板字段添加成功,模板字段:【{}】", reqVO.getIds());
|
||||
}else if ("delete".equals(reqVO.getType())) {
|
||||
tmplFldRelMapper.delete(Wrappers.<TmplFldRelDO>lambdaQuery()
|
||||
.eq(TmplFldRelDO::getTmplTpId, reqVO.getTpId())
|
||||
.in(TmplFldRelDO::getTpFldId, reqVO.getIds()));
|
||||
log.info("模板字段删除成功,模板字段:【{}】", reqVO.getIds());
|
||||
}else {
|
||||
throw exception(ILLEGAL_OPERATION_TYPE);
|
||||
}
|
||||
@@ -255,10 +274,12 @@ public class TmplTpServiceImpl extends ServiceImpl<TmplTpMapper, TmplTpDO> imple
|
||||
tmplItmRelDOS.add(tmplItmRelDO);
|
||||
});
|
||||
tmplItmRelMapper.insertBatch(tmplItmRelDOS);
|
||||
log.info("模板条目添加成功,模板条目:【{}】", reqVO.getIds());
|
||||
}else if ("delete".equals(reqVO.getType())) {
|
||||
tmplItmRelMapper.delete(Wrappers.<TmplItmRelDO>lambdaQuery()
|
||||
.eq(TmplItmRelDO::getTmplTpId, reqVO.getTpId())
|
||||
.in(TmplItmRelDO::getItmFldId, reqVO.getIds()));
|
||||
log.info("模板条目删除成功,模板条目:【{}】", reqVO.getIds());
|
||||
}else {
|
||||
throw exception(ILLEGAL_OPERATION_TYPE);
|
||||
}
|
||||
|
||||
@@ -9,11 +9,15 @@
|
||||
文档可见:https://www.iocoder.cn/MyBatis/x-plugins/
|
||||
-->
|
||||
|
||||
<update id="deleteByTemplateInstanceId">
|
||||
<update id="deleteByTemplateInstanceIds">
|
||||
update BSE_TMPL_INSC_DAT
|
||||
set deleted = 1
|
||||
WHERE INSC_ID = #{templateInstanceId}
|
||||
WHERE INSC_ID in
|
||||
<foreach collection="list" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<update id="updateFldValById">
|
||||
update BSE_TMPL_INSC_DAT
|
||||
set FLD_VAL = #{fldVal}
|
||||
|
||||
@@ -13,8 +13,12 @@
|
||||
<!-- DELETE FROM bse_tmpl_insc_item-->
|
||||
<!-- WHERE INSC_ID = #{templateInstanceId}-->
|
||||
<!-- </delete>-->
|
||||
<update id="deleteByTemplateInstanceId" >
|
||||
update BSE_TMPL_INSC_ITM set deleted = 1
|
||||
WHERE INSC_ID = #{templateInstanceId}
|
||||
<update id="deleteByTemplateInstanceIds">
|
||||
update BSE_TMPL_INSC_ITM
|
||||
set deleted = 1
|
||||
WHERE INSC_ID in
|
||||
<foreach collection="list" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</update>
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user