Browse Source

jyj 提交

jyj_dev
zhouhaibin 1 month ago
parent
commit
699421b064
  1. 7
      ruoyi-admin/src/main/resources/application-dev.yml
  2. 4
      ruoyi-admin/src/main/resources/application-test.yml
  3. 5
      zaojiaManagement/zaojia-productManagement/pom.xml
  4. 1
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/common/service/BaseTaskService.java
  5. 110
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualAuditConfigController.java
  6. 105
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualProductInfoController.java
  7. 7
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/JyjContractualTaskBatchController.java
  8. 105
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementContractualNormalController.java
  9. 105
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementCpuosdatabaseController.java
  10. 105
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementEntityController.java
  11. 105
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementProductAttributeController.java
  12. 58
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualAuditConfig.java
  13. 82
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualProductInfo.java
  14. 1
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualTasks.java
  15. 5
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasks.java
  16. 52
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementContractualNormal.java
  17. 62
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementCpuosdatabase.java
  18. 62
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementEntity.java
  19. 57
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementProductAttribute.java
  20. 1
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/BaseTaskBo.java
  21. 55
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualAuditConfigBo.java
  22. 74
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualProductInfoBo.java
  23. 2
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTasksBo.java
  24. 3
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksBo.java
  25. 2
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/JyjContractualTaskBatchBo.java
  26. 47
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementContractualNormalBo.java
  27. 60
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementCpuosdatabaseBo.java
  28. 58
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementEntityBo.java
  29. 52
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementProductAttributeBo.java
  30. 1
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/BaseTaskVo.java
  31. 73
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualAuditConfigVo.java
  32. 92
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualProductInfoVo.java
  33. 2
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTasksVo.java
  34. 4
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksVo.java
  35. 1
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/JyjContractualTaskBatchVo.java
  36. 56
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementContractualNormalVo.java
  37. 68
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementCpuosdatabaseVo.java
  38. 68
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementEntityVo.java
  39. 62
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementProductAttributeVo.java
  40. 15
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualAuditConfigMapper.java
  41. 15
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualProductInfoMapper.java
  42. 19
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementContractualNormalMapper.java
  43. 19
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementCpuosdatabaseMapper.java
  44. 19
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementEntityMapper.java
  45. 20
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementProductAttributeMapper.java
  46. 71
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualAuditConfigService.java
  47. 68
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualProductInfoService.java
  48. 5
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IJyjContractualTaskBatchService.java
  49. 68
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementContractualNormalService.java
  50. 68
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementCpuosdatabaseService.java
  51. 68
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementEntityService.java
  52. 68
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementProductAttributeService.java
  53. 286
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualAuditConfigServiceImpl.java
  54. 137
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualProductInfoServiceImpl.java
  55. 1
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTasksServiceImpl.java
  56. 36
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/JyjContractualTaskBatchServiceImpl.java
  57. 131
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementContractualNormalServiceImpl.java
  58. 133
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementCpuosdatabaseServiceImpl.java
  59. 133
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementEntityServiceImpl.java
  60. 132
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementProductAttributeServiceImpl.java
  61. 489
      zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/utils/CompressedFileUtils.java
  62. 7
      zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualAuditConfigMapper.xml
  63. 7
      zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualProductInfoMapper.xml
  64. 1
      zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksMapper.xml
  65. 4
      zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/JyjContractualTaskBatchMapper.xml
  66. 9
      zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementContractualNormalMapper.xml
  67. 9
      zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementCpuosdatabaseMapper.xml
  68. 9
      zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementEntityMapper.xml
  69. 10
      zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementProductAttributeMapper.xml

7
ruoyi-admin/src/main/resources/application-dev.yml

@ -49,14 +49,15 @@ spring:
driverClassName: com.mysql.cj.jdbc.Driver
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
# url: jdbc:mysql://localhost:3306/zaojia?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
url: jdbc:mysql://localhost:3306/jyjtable?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
# username: root
# password: root
#url: jdbc:mysql://10.1.21.250:3306/jyjtable?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
# url: jdbc:mysql://218.0.1.42:53306/aitable?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
url: jdbc:mysql://10.1.21.251:3306/jyjtable?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
# url: jdbc:mysql://10.1.21.251:3306/jyjtable?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
# url: jdbc:mysql://222.75.18.225:2881/jyjtable?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root
password: 'HXj-6nR|D8xy*h#!I&:('
password: root
# 从库数据源
# slave:
# lazy: true

4
ruoyi-admin/src/main/resources/application-test.yml

@ -52,7 +52,9 @@ spring:
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
url: jdbc:mysql://localhost:3306/jyjtable?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true
username: root
password: HXj-6nR|D8xy*h#!I&:(
# password:
password: 'HXj-6nR|D8xy*h#!I&:('
# 从库数据源
# slave:
# lazy: true

5
zaojiaManagement/zaojia-productManagement/pom.xml

@ -126,6 +126,11 @@
<artifactId>juniversalchardet</artifactId>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>2.11.5</version>
</dependency>
</dependencies>

1
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/common/service/BaseTaskService.java

@ -95,7 +95,6 @@ public abstract class BaseTaskService<T extends BaseTaskBo> {
//
// // 验证用户任务权限
// documentTasksPermissionsService.validateUserTaskPermissions(taskType,taskNames, userId);
// 处理文件相关操作
FileProcessResult fileResult = processFile(bo.getOssId());

110
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualAuditConfigController.java

@ -0,0 +1,110 @@
package org.dromara.productManagement.controller;
import java.util.HashMap;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.productManagement.domain.vo.ContractualAuditConfigVo;
import org.dromara.productManagement.domain.bo.ContractualAuditConfigBo;
import org.dromara.productManagement.service.IContractualAuditConfigService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 合同审核配置
*
* @author Lion Li
* @date 2025-03-13
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/productManagement/ContractualAuditConfig")
public class ContractualAuditConfigController extends BaseController {
private final IContractualAuditConfigService contractualAuditConfigService;
/**
* 查询合同审核配置列表
*/
@SaCheckPermission("productManagement:ContractualAuditConfig:list")
@GetMapping("/list")
public TableDataInfo<ContractualAuditConfigVo> list(ContractualAuditConfigBo bo, PageQuery pageQuery) {
return contractualAuditConfigService.queryPageList(bo, pageQuery);
}
/**
* 导出合同审核配置列表
*/
@SaCheckPermission("productManagement:ContractualAuditConfig:export")
@Log(title = "合同审核配置", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ContractualAuditConfigBo bo, HttpServletResponse response) {
List<ContractualAuditConfigVo> list = contractualAuditConfigService.queryList(bo);
ExcelUtil.exportExcel(list, "合同审核配置", ContractualAuditConfigVo.class, response);
}
/**
* 获取合同审核配置详细信息
*
* @param id 主键
*/
@SaCheckPermission("productManagement:ContractualAuditConfig:query")
@GetMapping("/{id}")
public R<ContractualAuditConfigVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(contractualAuditConfigService.queryById(id));
}
/**
* 新增合同审核配置
*/
@SaCheckPermission("productManagement:ContractualAuditConfig:add")
@Log(title = "合同审核配置", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ContractualAuditConfigBo bo) {
return toAjax(contractualAuditConfigService.insertByBo(bo));
}
/**
* 修改合同审核配置
*/
@SaCheckPermission("productManagement:ContractualAuditConfig:edit")
@Log(title = "合同审核配置", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ContractualAuditConfigBo bo) {
return toAjax(contractualAuditConfigService.updateByBo(bo));
}
/**
* 删除合同审核配置
*
* @param ids 主键串
*/
@SaCheckPermission("productManagement:ContractualAuditConfig:remove")
@Log(title = "合同审核配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(contractualAuditConfigService.deleteWithValidByIds(List.of(ids), true));
}
@GetMapping("/getRequirementTypeDict")
public R<List<HashMap<String, String>>> getRequirementTypeDict() {
return R.ok(contractualAuditConfigService.getRequirementTypeDict());
}
}

105
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualProductInfoController.java

@ -0,0 +1,105 @@
package org.dromara.productManagement.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.productManagement.domain.vo.ContractualProductInfoVo;
import org.dromara.productManagement.domain.bo.ContractualProductInfoBo;
import org.dromara.productManagement.service.IContractualProductInfoService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 合同产品信息
*
* @author Lion Li
* @date 2025-03-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/productManagement/ContractualProductInfo")
public class ContractualProductInfoController extends BaseController {
private final IContractualProductInfoService contractualProductInfoService;
/**
* 查询合同产品信息列表
*/
@SaCheckPermission("productManagement:ContractualProductInfo:list")
@GetMapping("/list")
public TableDataInfo<ContractualProductInfoVo> list(ContractualProductInfoBo bo, PageQuery pageQuery) {
return contractualProductInfoService.queryPageList(bo, pageQuery);
}
/**
* 导出合同产品信息列表
*/
@SaCheckPermission("productManagement:ContractualProductInfo:export")
@Log(title = "合同产品信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ContractualProductInfoBo bo, HttpServletResponse response) {
List<ContractualProductInfoVo> list = contractualProductInfoService.queryList(bo);
ExcelUtil.exportExcel(list, "合同产品信息", ContractualProductInfoVo.class, response);
}
/**
* 获取合同产品信息详细信息
*
* @param id 主键
*/
@SaCheckPermission("productManagement:ContractualProductInfo:query")
@GetMapping("/{id}")
public R<ContractualProductInfoVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(contractualProductInfoService.queryById(id));
}
/**
* 新增合同产品信息
*/
@SaCheckPermission("productManagement:ContractualProductInfo:add")
@Log(title = "合同产品信息", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody ContractualProductInfoBo bo) {
return toAjax(contractualProductInfoService.insertByBo(bo));
}
/**
* 修改合同产品信息
*/
@SaCheckPermission("productManagement:ContractualProductInfo:edit")
@Log(title = "合同产品信息", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody ContractualProductInfoBo bo) {
return toAjax(contractualProductInfoService.updateByBo(bo));
}
/**
* 删除合同产品信息
*
* @param ids 主键串
*/
@SaCheckPermission("productManagement:ContractualProductInfo:remove")
@Log(title = "合同产品信息", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(contractualProductInfoService.deleteWithValidByIds(List.of(ids), true));
}
}

7
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/JyjContractualTaskBatchController.java

@ -1,6 +1,7 @@
package org.dromara.productManagement.controller;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.List;
@ -127,7 +128,11 @@ public class JyjContractualTaskBatchController extends BaseController {
return R.ok(jyjContractualTaskBatchService.getContractulResultById(id));
}
@GetMapping("/getContractulPdf/{id}")
public void getContractulPdf(@PathVariable Long id, HttpServletResponse response) {
public void getContractulPdf(@PathVariable Long id, HttpServletResponse response) throws UnsupportedEncodingException {
jyjContractualTaskBatchService.getContractulPdf(id,response);
}
@GetMapping("/getContractulContent/{id}")
public R<String> getContractulContent(@PathVariable Long id) {
return R.ok("ok",jyjContractualTaskBatchService.getContractulContent(id));
}
}

105
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementContractualNormalController.java

@ -0,0 +1,105 @@
package org.dromara.productManagement.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.productManagement.domain.vo.RequirementContractualNormalVo;
import org.dromara.productManagement.domain.bo.RequirementContractualNormalBo;
import org.dromara.productManagement.service.IRequirementContractualNormalService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 合同常规要求
*
* @author Lion Li
* @date 2025-03-13
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/productManagement/RequirementContractualNormal")
public class RequirementContractualNormalController extends BaseController {
private final IRequirementContractualNormalService requirementContractualNormalService;
/**
* 查询合同常规要求列表
*/
@SaCheckPermission("productManagement:RequirementContractualNormal:list")
@GetMapping("/list")
public TableDataInfo<RequirementContractualNormalVo> list(RequirementContractualNormalBo bo, PageQuery pageQuery) {
return requirementContractualNormalService.queryPageList(bo, pageQuery);
}
/**
* 导出合同常规要求列表
*/
@SaCheckPermission("productManagement:RequirementContractualNormal:export")
@Log(title = "合同常规要求", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(RequirementContractualNormalBo bo, HttpServletResponse response) {
List<RequirementContractualNormalVo> list = requirementContractualNormalService.queryList(bo);
ExcelUtil.exportExcel(list, "合同常规要求", RequirementContractualNormalVo.class, response);
}
/**
* 获取合同常规要求详细信息
*
* @param id 主键
*/
@SaCheckPermission("productManagement:RequirementContractualNormal:query")
@GetMapping("/{id}")
public R<RequirementContractualNormalVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(requirementContractualNormalService.queryById(id));
}
/**
* 新增合同常规要求
*/
@SaCheckPermission("productManagement:RequirementContractualNormal:add")
@Log(title = "合同常规要求", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody RequirementContractualNormalBo bo) {
return toAjax(requirementContractualNormalService.insertByBo(bo));
}
/**
* 修改合同常规要求
*/
@SaCheckPermission("productManagement:RequirementContractualNormal:edit")
@Log(title = "合同常规要求", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody RequirementContractualNormalBo bo) {
return toAjax(requirementContractualNormalService.updateByBo(bo));
}
/**
* 删除合同常规要求
*
* @param ids 主键串
*/
@SaCheckPermission("productManagement:RequirementContractualNormal:remove")
@Log(title = "合同常规要求", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(requirementContractualNormalService.deleteWithValidByIds(List.of(ids), true));
}
}

105
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementCpuosdatabaseController.java

@ -0,0 +1,105 @@
package org.dromara.productManagement.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.productManagement.domain.vo.RequirementCpuosdatabaseVo;
import org.dromara.productManagement.domain.bo.RequirementCpuosdatabaseBo;
import org.dromara.productManagement.service.IRequirementCpuosdatabaseService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* CPU,操作系统数据库要求
*
* @author Lion Li
* @date 2025-03-14
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/productManagement/RequirementCpuosdatabase")
public class RequirementCpuosdatabaseController extends BaseController {
private final IRequirementCpuosdatabaseService requirementCpuosdatabaseService;
/**
* 查询CPU,操作系统数据库要求列表
*/
@SaCheckPermission("productManagement:RequirementCpuosdatabase:list")
@GetMapping("/list")
public TableDataInfo<RequirementCpuosdatabaseVo> list(RequirementCpuosdatabaseBo bo, PageQuery pageQuery) {
return requirementCpuosdatabaseService.queryPageList(bo, pageQuery);
}
/**
* 导出CPU,操作系统数据库要求列表
*/
@SaCheckPermission("productManagement:RequirementCpuosdatabase:export")
@Log(title = "CPU,操作系统,数据库要求", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(RequirementCpuosdatabaseBo bo, HttpServletResponse response) {
List<RequirementCpuosdatabaseVo> list = requirementCpuosdatabaseService.queryList(bo);
ExcelUtil.exportExcel(list, "CPU,操作系统,数据库要求", RequirementCpuosdatabaseVo.class, response);
}
/**
* 获取CPU,操作系统数据库要求详细信息
*
* @param id 主键
*/
@SaCheckPermission("productManagement:RequirementCpuosdatabase:query")
@GetMapping("/{id}")
public R<RequirementCpuosdatabaseVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(requirementCpuosdatabaseService.queryById(id));
}
/**
* 新增CPU,操作系统数据库要求
*/
@SaCheckPermission("productManagement:RequirementCpuosdatabase:add")
@Log(title = "CPU,操作系统,数据库要求", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody RequirementCpuosdatabaseBo bo) {
return toAjax(requirementCpuosdatabaseService.insertByBo(bo));
}
/**
* 修改CPU,操作系统数据库要求
*/
@SaCheckPermission("productManagement:RequirementCpuosdatabase:edit")
@Log(title = "CPU,操作系统,数据库要求", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody RequirementCpuosdatabaseBo bo) {
return toAjax(requirementCpuosdatabaseService.updateByBo(bo));
}
/**
* 删除CPU,操作系统数据库要求
*
* @param ids 主键串
*/
@SaCheckPermission("productManagement:RequirementCpuosdatabase:remove")
@Log(title = "CPU,操作系统,数据库要求", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(requirementCpuosdatabaseService.deleteWithValidByIds(List.of(ids), true));
}
}

105
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementEntityController.java

@ -0,0 +1,105 @@
package org.dromara.productManagement.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.productManagement.domain.vo.RequirementEntityVo;
import org.dromara.productManagement.domain.bo.RequirementEntityBo;
import org.dromara.productManagement.service.IRequirementEntityService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 主体要求
*
* @author Lion Li
* @date 2025-03-13
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/productManagement/RequirementEntity")
public class RequirementEntityController extends BaseController {
private final IRequirementEntityService requirementEntityService;
/**
* 查询主体要求列表
*/
@SaCheckPermission("productManagement:RequirementEntity:list")
@GetMapping("/list")
public TableDataInfo<RequirementEntityVo> list(RequirementEntityBo bo, PageQuery pageQuery) {
return requirementEntityService.queryPageList(bo, pageQuery);
}
/**
* 导出主体要求列表
*/
@SaCheckPermission("productManagement:RequirementEntity:export")
@Log(title = "主体要求", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(RequirementEntityBo bo, HttpServletResponse response) {
List<RequirementEntityVo> list = requirementEntityService.queryList(bo);
ExcelUtil.exportExcel(list, "主体要求", RequirementEntityVo.class, response);
}
/**
* 获取主体要求详细信息
*
* @param id 主键
*/
@SaCheckPermission("productManagement:RequirementEntity:query")
@GetMapping("/{id}")
public R<RequirementEntityVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(requirementEntityService.queryById(id));
}
/**
* 新增主体要求
*/
@SaCheckPermission("productManagement:RequirementEntity:add")
@Log(title = "主体要求", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody RequirementEntityBo bo) {
return toAjax(requirementEntityService.insertByBo(bo));
}
/**
* 修改主体要求
*/
@SaCheckPermission("productManagement:RequirementEntity:edit")
@Log(title = "主体要求", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody RequirementEntityBo bo) {
return toAjax(requirementEntityService.updateByBo(bo));
}
/**
* 删除主体要求
*
* @param ids 主键串
*/
@SaCheckPermission("productManagement:RequirementEntity:remove")
@Log(title = "主体要求", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(requirementEntityService.deleteWithValidByIds(List.of(ids), true));
}
}

105
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementProductAttributeController.java

@ -0,0 +1,105 @@
package org.dromara.productManagement.controller;
import java.util.List;
import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
import org.dromara.common.log.annotation.Log;
import org.dromara.common.web.core.BaseController;
import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.core.domain.R;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.log.enums.BusinessType;
import org.dromara.common.excel.utils.ExcelUtil;
import org.dromara.productManagement.domain.vo.RequirementProductAttributeVo;
import org.dromara.productManagement.domain.bo.RequirementProductAttributeBo;
import org.dromara.productManagement.service.IRequirementProductAttributeService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 产品属性要求
*
* @author Lion Li
* @date 2025-03-13
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/productManagement/RequirementProductAttribute")
public class RequirementProductAttributeController extends BaseController {
private final IRequirementProductAttributeService requirementProductAttributeService;
/**
* 查询产品属性要求列表
*/
@SaCheckPermission("productManagement:RequirementProductAttribute:list")
@GetMapping("/list")
public TableDataInfo<RequirementProductAttributeVo> list(RequirementProductAttributeBo bo, PageQuery pageQuery) {
return requirementProductAttributeService.queryPageList(bo, pageQuery);
}
/**
* 导出产品属性要求列表
*/
@SaCheckPermission("productManagement:RequirementProductAttribute:export")
@Log(title = "产品属性要求", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(RequirementProductAttributeBo bo, HttpServletResponse response) {
List<RequirementProductAttributeVo> list = requirementProductAttributeService.queryList(bo);
ExcelUtil.exportExcel(list, "产品属性要求", RequirementProductAttributeVo.class, response);
}
/**
* 获取产品属性要求详细信息
*
* @param id 主键
*/
@SaCheckPermission("productManagement:RequirementProductAttribute:query")
@GetMapping("/{id}")
public R<RequirementProductAttributeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(requirementProductAttributeService.queryById(id));
}
/**
* 新增产品属性要求
*/
@SaCheckPermission("productManagement:RequirementProductAttribute:add")
@Log(title = "产品属性要求", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody RequirementProductAttributeBo bo) {
return toAjax(requirementProductAttributeService.insertByBo(bo));
}
/**
* 修改产品属性要求
*/
@SaCheckPermission("productManagement:RequirementProductAttribute:edit")
@Log(title = "产品属性要求", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody RequirementProductAttributeBo bo) {
return toAjax(requirementProductAttributeService.updateByBo(bo));
}
/**
* 删除产品属性要求
*
* @param ids 主键串
*/
@SaCheckPermission("productManagement:RequirementProductAttribute:remove")
@Log(title = "产品属性要求", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(requirementProductAttributeService.deleteWithValidByIds(List.of(ids), true));
}
}

58
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualAuditConfig.java

@ -0,0 +1,58 @@
package org.dromara.productManagement.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 合同审核配置对象 contractual_audit_config
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("contractual_audit_config")
public class ContractualAuditConfig extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 审核要素
*/
private String auditElement;
/**
* 规则描述
*/
private String requirementDescription;
/**
* 规则类型
*/
private String requirementType;
/**
* 是否表单0-1-
*/
private Long isForm;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

82
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualProductInfo.java

@ -0,0 +1,82 @@
package org.dromara.productManagement.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 合同产品信息对象 contractual_product_info
*
* @author Lion Li
* @date 2025-03-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("contractual_product_info")
public class ContractualProductInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 任务ID
*/
private String taskId;
/**
* 文件名称
*/
private String fileName;
/**
* 品牌
*/
private String brand;
/**
* 版本号
*/
private String versionStr;
/**
* 单价
*/
private Long unitPrice;
/**
* 价格单位
*/
private String priceUnit;
/**
* 数量
*/
private Long quantity;
/**
* 总价
*/
private Long totalPrice;
/**
* 类型
*/
private String type;
/**
* 删除标志
*/
@TableLogic
private String delFlag;
}

1
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualTasks.java

@ -82,6 +82,7 @@ public class ContractualTasks extends TenantEntity {
* 列队任务id
*/
private String taskId;
private String problemPoint;
}

5
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasks.java

@ -82,4 +82,9 @@ public class DocumentTasks extends TenantEntity {
private Long groupId;
private String resultType;
private String batchName;
private String requirementType;
private String filePath;
private String problemPoint;
}

52
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementContractualNormal.java

@ -0,0 +1,52 @@
package org.dromara.productManagement.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 合同常规要求对象 requirement_contractual_normal
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("requirement_contractual_normal")
public class RequirementContractualNormal extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 合同审核配置表ID
*/
private Long configId;
/**
* 检查项
*/
private String checkItem;
/**
* 要求描述
*/
private String requirementDesc;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

62
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementCpuosdatabase.java

@ -0,0 +1,62 @@
package org.dromara.productManagement.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* CPU,操作系统数据库要求对象 requirement_cpuosdatabase
*
* @author Lion Li
* @date 2025-03-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("requirement_cpuosdatabase")
public class RequirementCpuosdatabase extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 类型
*/
private String type;
/**
* 合同审核配置表ID
*/
private Long configId;
/**
* 名称
*/
private String name;
/**
* 型号
*/
private String model;
/**
* 版本号
*/
private String versionStr;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

62
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementEntity.java

@ -0,0 +1,62 @@
package org.dromara.productManagement.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 主体要求对象 requirement_entity
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("requirement_entity")
public class RequirementEntity extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 合同审核配置表ID
*/
private Long configId;
/**
* 主体名称
*/
private String entityName;
/**
* 父主体ID0表示顶级主体
*/
private Long parentId;
/**
* 层级1表示顶级
*/
private Long level;
/**
* 层级路径格式如0,1,2
*/
private String path;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

57
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementProductAttribute.java

@ -0,0 +1,57 @@
package org.dromara.productManagement.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 产品属性要求对象 requirement_product_attribute
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("requirement_product_attribute")
public class RequirementProductAttribute extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@TableId(value = "id")
private Long id;
/**
* 合同审核配置表ID
*/
private Long configId;
/**
* 属性名称
*/
private String attributeName;
/**
* 要求
*/
private String requirement;
/**
* 产品类型
*/
private String productType;
/**
* 删除标志0代表存在 2代表删除
*/
@TableLogic
private String delFlag;
}

1
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/BaseTaskBo.java

@ -53,4 +53,5 @@ public class BaseTaskBo extends BaseEntity {
* 任务名称
*/
private String taskName;
private String filePath;
}

55
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualAuditConfigBo.java

@ -0,0 +1,55 @@
package org.dromara.productManagement.domain.bo;
import org.dromara.productManagement.domain.*;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.productManagement.mapper.RequirementContractualNormalMapper;
import java.util.List;
/**
* 合同审核配置业务对象 contractual_audit_config
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ContractualAuditConfig.class, reverseConvertGenerate = false)
public class ContractualAuditConfigBo extends BaseEntity {
/**
* 主键ID
*/
private Long id;
/**
* 审核要素
*/
@NotBlank(message = "规则名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String auditElement;
/**
* 规则描述
*/
private String requirementDescription;
/**
* 规则类型
*/
@NotBlank(message = "规则类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String requirementType;
private List<RequirementCpuosdatabase> requirementCpuosdatabaseList;
private List<RequirementEntity> requirementEntityList;
private List<RequirementProductAttribute> requirementProductAttributeList;
private List<RequirementContractualNormal> requirementContractualNormalList;
}

74
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualProductInfoBo.java

@ -0,0 +1,74 @@
package org.dromara.productManagement.domain.bo;
import org.dromara.productManagement.domain.ContractualProductInfo;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 合同产品信息业务对象 contractual_product_info
*
* @author Lion Li
* @date 2025-03-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = ContractualProductInfo.class, reverseConvertGenerate = false)
public class ContractualProductInfoBo extends BaseEntity {
/**
* 主键ID
*/
private Long id;
/**
* 任务ID
*/
private String taskId;
/**
* 文件名称
*/
private String fileName;
/**
* 品牌
*/
private String brand;
/**
* 版本号
*/
private String versionStr;
/**
* 单价
*/
private Long unitPrice;
/**
* 价格单位
*/
private String priceUnit;
/**
* 数量
*/
private Long quantity;
/**
* 总价
*/
private Long totalPrice;
/**
* 类型
*/
private String type;
}

2
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTasksBo.java

@ -36,6 +36,8 @@ public class ContractualTasksBo extends BaseTaskBo {
private Long groupId;
private String resultType;
private String batchName;
private String problemPoint;
// /**
// * 模型所属行业
// */

3
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksBo.java

@ -32,7 +32,8 @@ public class DocumentTasksBo extends BaseTaskBo {
private Long groupId;
private String resultType;
private String batchName;
private String requirementType;
private String problemPoint;
}

2
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/JyjContractualTaskBatchBo.java

@ -102,4 +102,6 @@ public class JyjContractualTaskBatchBo extends BaseEntity {
*/
private String processingTime;
private Date latestTime;
private String requirementType;
}

47
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementContractualNormalBo.java

@ -0,0 +1,47 @@
package org.dromara.productManagement.domain.bo;
import org.dromara.productManagement.domain.RequirementContractualNormal;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 合同常规要求业务对象 requirement_contractual_normal
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = RequirementContractualNormal.class, reverseConvertGenerate = false)
public class RequirementContractualNormalBo extends BaseEntity {
/**
* 主键ID
*/
private Long id;
/**
* 合同审核配置表ID
*/
@NotNull(message = "合同审核配置表ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long configId;
/**
* 检查项
*/
@NotBlank(message = "检查项不能为空", groups = { AddGroup.class, EditGroup.class })
private String checkItem;
/**
* 要求描述
*/
@NotBlank(message = "要求描述不能为空", groups = { AddGroup.class, EditGroup.class })
private String requirementDesc;
}

60
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementCpuosdatabaseBo.java

@ -0,0 +1,60 @@
package org.dromara.productManagement.domain.bo;
import org.dromara.productManagement.domain.RequirementCpuosdatabase;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* CPU,操作系统数据库要求业务对象 requirement_cpuosdatabase
*
* @author Lion Li
* @date 2025-03-14
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = RequirementCpuosdatabase.class, reverseConvertGenerate = false)
public class RequirementCpuosdatabaseBo extends BaseEntity {
/**
* 主键ID
*/
@NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
private Long id;
/**
* 类型
*/
@NotBlank(message = "类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String type;
/**
* 合同审核配置表ID
*/
@NotNull(message = "合同审核配置表ID不能为空", groups = { AddGroup.class, EditGroup.class })
private Long configId;
/**
* 名称
*/
@NotBlank(message = "名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String name;
/**
* 型号
*/
@NotBlank(message = "型号不能为空", groups = { AddGroup.class, EditGroup.class })
private String model;
/**
* 版本号
*/
@NotBlank(message = "版本号不能为空", groups = { AddGroup.class, EditGroup.class })
private String versionStr;
}

58
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementEntityBo.java

@ -0,0 +1,58 @@
package org.dromara.productManagement.domain.bo;
import org.dromara.productManagement.domain.RequirementEntity;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 主体要求业务对象 requirement_entity
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = RequirementEntity.class, reverseConvertGenerate = false)
public class RequirementEntityBo extends BaseEntity {
/**
* 主键ID
*/
private Long id;
/**
* 合同审核配置表ID
*/
private Long configId;
/**
* 主体名称
*/
@NotBlank(message = "主体名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String entityName;
/**
* 父主体ID0表示顶级主体
*/
@NotNull(message = "父主体ID,0表示顶级主体不能为空", groups = { AddGroup.class, EditGroup.class })
private Long parentId;
/**
* 层级1表示顶级
*/
@NotNull(message = "层级,1表示顶级不能为空", groups = { AddGroup.class, EditGroup.class })
private Long level;
/**
* 层级路径格式如0,1,2
*/
@NotBlank(message = "层级路径,格式如:0,1,2不能为空", groups = { AddGroup.class, EditGroup.class })
private String path;
}

52
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementProductAttributeBo.java

@ -0,0 +1,52 @@
package org.dromara.productManagement.domain.bo;
import org.dromara.productManagement.domain.RequirementProductAttribute;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
/**
* 产品属性要求业务对象 requirement_product_attribute
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = RequirementProductAttribute.class, reverseConvertGenerate = false)
public class RequirementProductAttributeBo extends BaseEntity {
/**
* 主键ID
*/
private Long id;
/**
* 合同审核配置表ID
*/
private Long configId;
/**
* 属性名称
*/
@NotBlank(message = "属性名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String attributeName;
/**
* 要求
*/
@NotBlank(message = "要求不能为空", groups = { AddGroup.class, EditGroup.class })
private String requirement;
/**
* 产品类型
*/
@NotBlank(message = "产品类型不能为空", groups = { AddGroup.class, EditGroup.class })
private String productType;
}

1
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/BaseTaskVo.java

@ -71,4 +71,5 @@ public class BaseTaskVo {
@ExcelProperty(value = "更新时间")
private Date updateTime;
private String filePath;
}

73
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualAuditConfigVo.java

@ -0,0 +1,73 @@
package org.dromara.productManagement.domain.vo;
import org.dromara.productManagement.domain.*;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.productManagement.domain.bo.RequirementContractualNormalBo;
import org.dromara.productManagement.domain.bo.RequirementCpuosdatabaseBo;
import org.dromara.productManagement.domain.bo.RequirementEntityBo;
import org.dromara.productManagement.domain.bo.RequirementProductAttributeBo;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* 合同审核配置视图对象 contractual_audit_config
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ContractualAuditConfig.class)
public class ContractualAuditConfigVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 审核要素
*/
@ExcelProperty(value = "审核要素")
private String auditElement;
/**
* 规则描述
*/
@ExcelProperty(value = "规则描述")
private String requirementDescription;
/**
* 是否表单0-1-
*/
@ExcelProperty(value = "是否表单,0-否,1-是")
private Long isForm;
/**
* 规则类型
*/
private String requirementType;
private List<RequirementCpuosdatabase> requirementCpuosdatabaseList;
private List<RequirementEntity> requirementEntityList;
private List<RequirementProductAttribute> requirementProductAttributeList;
private List<RequirementContractualNormal> requirementContractualNormalList;
}

92
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualProductInfoVo.java

@ -0,0 +1,92 @@
package org.dromara.productManagement.domain.vo;
import org.dromara.productManagement.domain.ContractualProductInfo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 合同产品信息视图对象 contractual_product_info
*
* @author Lion Li
* @date 2025-03-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ContractualProductInfo.class)
public class ContractualProductInfoVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 任务ID
*/
@ExcelProperty(value = "任务ID")
private String taskId;
/**
* 文件名称
*/
@ExcelProperty(value = "文件名称")
private String fileName;
/**
* 品牌
*/
@ExcelProperty(value = "品牌")
private String brand;
/**
* 版本号
*/
@ExcelProperty(value = "版本号")
private String versionStr;
/**
* 单价
*/
@ExcelProperty(value = "单价")
private Long unitPrice;
/**
* 价格单位
*/
@ExcelProperty(value = "价格单位")
private String priceUnit;
/**
* 数量
*/
@ExcelProperty(value = "数量")
private Long quantity;
/**
* 总价
*/
@ExcelProperty(value = "总价")
private Long totalPrice;
/**
* 类型
*/
@ExcelProperty(value = "类型")
private String type;
}

2
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTasksVo.java

@ -46,4 +46,6 @@ public class ContractualTasksVo extends BaseTaskVo implements Serializable {
private Long groupId;
private String resultType;
private String batchName;
private String problemPoint;
}

4
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksVo.java

@ -34,4 +34,8 @@ public class DocumentTasksVo extends BaseTaskVo implements Serializable {
private Long groupId;
private String resultType;
private String batchName;
private String requirementType;
private String problemPoint;
}

1
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/JyjContractualTaskBatchVo.java

@ -123,5 +123,4 @@ public class JyjContractualTaskBatchVo implements Serializable {
private String processingTime;
private Date latestTime;
}

56
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementContractualNormalVo.java

@ -0,0 +1,56 @@
package org.dromara.productManagement.domain.vo;
import org.dromara.productManagement.domain.RequirementContractualNormal;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 合同常规要求视图对象 requirement_contractual_normal
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = RequirementContractualNormal.class)
public class RequirementContractualNormalVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 合同审核配置表ID
*/
@ExcelProperty(value = "合同审核配置表ID")
private Long configId;
/**
* 检查项
*/
@ExcelProperty(value = "检查项")
private String checkItem;
/**
* 要求描述
*/
@ExcelProperty(value = "要求描述")
private String requirementDesc;
}

68
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementCpuosdatabaseVo.java

@ -0,0 +1,68 @@
package org.dromara.productManagement.domain.vo;
import org.dromara.productManagement.domain.RequirementCpuosdatabase;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* CPU,操作系统数据库要求视图对象 requirement_cpuosdatabase
*
* @author Lion Li
* @date 2025-03-14
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = RequirementCpuosdatabase.class)
public class RequirementCpuosdatabaseVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 类型
*/
@ExcelProperty(value = "类型")
private String type;
/**
* 合同审核配置表ID
*/
@ExcelProperty(value = "合同审核配置表ID")
private Long configId;
/**
* 名称
*/
@ExcelProperty(value = "名称")
private String name;
/**
* 型号
*/
@ExcelProperty(value = "型号")
private String model;
/**
* 版本号
*/
@ExcelProperty(value = "版本号")
private String versionStr;
}

68
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementEntityVo.java

@ -0,0 +1,68 @@
package org.dromara.productManagement.domain.vo;
import org.dromara.productManagement.domain.RequirementEntity;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 主体要求视图对象 requirement_entity
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = RequirementEntity.class)
public class RequirementEntityVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 合同审核配置表ID
*/
@ExcelProperty(value = "合同审核配置表ID")
private Long configId;
/**
* 主体名称
*/
@ExcelProperty(value = "主体名称")
private String entityName;
/**
* 父主体ID0表示顶级主体
*/
@ExcelProperty(value = "父主体ID,0表示顶级主体")
private Long parentId;
/**
* 层级1表示顶级
*/
@ExcelProperty(value = "层级,1表示顶级")
private Long level;
/**
* 层级路径格式如0,1,2
*/
@ExcelProperty(value = "层级路径,格式如:0,1,2")
private String path;
}

62
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementProductAttributeVo.java

@ -0,0 +1,62 @@
package org.dromara.productManagement.domain.vo;
import org.dromara.productManagement.domain.RequirementProductAttribute;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 产品属性要求视图对象 requirement_product_attribute
*
* @author Lion Li
* @date 2025-03-13
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = RequirementProductAttribute.class)
public class RequirementProductAttributeVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long id;
/**
* 合同审核配置表ID
*/
@ExcelProperty(value = "合同审核配置表ID")
private Long configId;
/**
* 属性名称
*/
@ExcelProperty(value = "属性名称")
private String attributeName;
/**
* 要求
*/
@ExcelProperty(value = "要求")
private String requirement;
/**
* 产品类型
*/
@ExcelProperty(value = "产品类型")
private String productType;
}

15
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualAuditConfigMapper.java

@ -0,0 +1,15 @@
package org.dromara.productManagement.mapper;
import org.dromara.productManagement.domain.ContractualAuditConfig;
import org.dromara.productManagement.domain.vo.ContractualAuditConfigVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 合同审核配置Mapper接口
*
* @author Lion Li
* @date 2025-03-13
*/
public interface ContractualAuditConfigMapper extends BaseMapperPlus<ContractualAuditConfig, ContractualAuditConfigVo> {
}

15
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualProductInfoMapper.java

@ -0,0 +1,15 @@
package org.dromara.productManagement.mapper;
import org.dromara.productManagement.domain.ContractualProductInfo;
import org.dromara.productManagement.domain.vo.ContractualProductInfoVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 合同产品信息Mapper接口
*
* @author Lion Li
* @date 2025-03-18
*/
public interface ContractualProductInfoMapper extends BaseMapperPlus<ContractualProductInfo, ContractualProductInfoVo> {
}

19
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementContractualNormalMapper.java

@ -0,0 +1,19 @@
package org.dromara.productManagement.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.dromara.productManagement.domain.RequirementContractualNormal;
import org.dromara.productManagement.domain.RequirementProductAttribute;
import org.dromara.productManagement.domain.vo.RequirementContractualNormalVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 合同常规要求Mapper接口
*
* @author Lion Li
* @date 2025-03-13
*/
public interface RequirementContractualNormalMapper extends BaseMapperPlus<RequirementContractualNormal, RequirementContractualNormalVo> {
void deleteReal(@Param(Constants.WRAPPER) Wrapper<RequirementContractualNormal> wrapper);
}

19
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementCpuosdatabaseMapper.java

@ -0,0 +1,19 @@
package org.dromara.productManagement.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.dromara.productManagement.domain.RequirementContractualNormal;
import org.dromara.productManagement.domain.RequirementCpuosdatabase;
import org.dromara.productManagement.domain.vo.RequirementCpuosdatabaseVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* CPU,操作系统数据库要求Mapper接口
*
* @author Lion Li
* @date 2025-03-14
*/
public interface RequirementCpuosdatabaseMapper extends BaseMapperPlus<RequirementCpuosdatabase, RequirementCpuosdatabaseVo> {
void deleteReal(@Param(Constants.WRAPPER) Wrapper<RequirementCpuosdatabase> wrapper);
}

19
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementEntityMapper.java

@ -0,0 +1,19 @@
package org.dromara.productManagement.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.dromara.productManagement.domain.RequirementCpuosdatabase;
import org.dromara.productManagement.domain.RequirementEntity;
import org.dromara.productManagement.domain.vo.RequirementEntityVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 主体要求Mapper接口
*
* @author Lion Li
* @date 2025-03-13
*/
public interface RequirementEntityMapper extends BaseMapperPlus<RequirementEntity, RequirementEntityVo> {
void deleteReal(@Param(Constants.WRAPPER) Wrapper<RequirementEntity> wrapper);
}

20
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementProductAttributeMapper.java

@ -0,0 +1,20 @@
package org.dromara.productManagement.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.dromara.productManagement.domain.DocumentTasks;
import org.dromara.productManagement.domain.RequirementProductAttribute;
import org.dromara.productManagement.domain.vo.RequirementProductAttributeVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 产品属性要求Mapper接口
*
* @author Lion Li
* @date 2025-03-13
*/
public interface RequirementProductAttributeMapper extends BaseMapperPlus<RequirementProductAttribute, RequirementProductAttributeVo> {
void deleteReal(@Param(Constants.WRAPPER) Wrapper<RequirementProductAttribute> wrapper);
}

71
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualAuditConfigService.java

@ -0,0 +1,71 @@
package org.dromara.productManagement.service;
import org.dromara.productManagement.domain.vo.ContractualAuditConfigVo;
import org.dromara.productManagement.domain.bo.ContractualAuditConfigBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
/**
* 合同审核配置Service接口
*
* @author Lion Li
* @date 2025-03-13
*/
public interface IContractualAuditConfigService {
/**
* 查询合同审核配置
*
* @param id 主键
* @return 合同审核配置
*/
ContractualAuditConfigVo queryById(Long id);
/**
* 分页查询合同审核配置列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 合同审核配置分页列表
*/
TableDataInfo<ContractualAuditConfigVo> queryPageList(ContractualAuditConfigBo bo, PageQuery pageQuery);
/**
* 查询符合条件的合同审核配置列表
*
* @param bo 查询条件
* @return 合同审核配置列表
*/
List<ContractualAuditConfigVo> queryList(ContractualAuditConfigBo bo);
/**
* 新增合同审核配置
*
* @param bo 合同审核配置
* @return 是否新增成功
*/
Boolean insertByBo(ContractualAuditConfigBo bo);
/**
* 修改合同审核配置
*
* @param bo 合同审核配置
* @return 是否修改成功
*/
Boolean updateByBo(ContractualAuditConfigBo bo);
/**
* 校验并批量删除合同审核配置信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
List<HashMap<String, String>> getRequirementTypeDict();
}

68
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualProductInfoService.java

@ -0,0 +1,68 @@
package org.dromara.productManagement.service;
import org.dromara.productManagement.domain.vo.ContractualProductInfoVo;
import org.dromara.productManagement.domain.bo.ContractualProductInfoBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 合同产品信息Service接口
*
* @author Lion Li
* @date 2025-03-18
*/
public interface IContractualProductInfoService {
/**
* 查询合同产品信息
*
* @param id 主键
* @return 合同产品信息
*/
ContractualProductInfoVo queryById(Long id);
/**
* 分页查询合同产品信息列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 合同产品信息分页列表
*/
TableDataInfo<ContractualProductInfoVo> queryPageList(ContractualProductInfoBo bo, PageQuery pageQuery);
/**
* 查询符合条件的合同产品信息列表
*
* @param bo 查询条件
* @return 合同产品信息列表
*/
List<ContractualProductInfoVo> queryList(ContractualProductInfoBo bo);
/**
* 新增合同产品信息
*
* @param bo 合同产品信息
* @return 是否新增成功
*/
Boolean insertByBo(ContractualProductInfoBo bo);
/**
* 修改合同产品信息
*
* @param bo 合同产品信息
* @return 是否修改成功
*/
Boolean updateByBo(ContractualProductInfoBo bo);
/**
* 校验并批量删除合同产品信息信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

5
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IJyjContractualTaskBatchService.java

@ -13,6 +13,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
@ -78,5 +79,7 @@ public interface IJyjContractualTaskBatchService {
HashMap<String,String> uploadFile(MultipartFile file) throws IOException;
ContractualRes getContractulResultById(Long id) throws JsonProcessingException;
void getContractulPdf(Long id, HttpServletResponse response);
void getContractulPdf(Long id, HttpServletResponse response) throws UnsupportedEncodingException;
String getContractulContent(Long id);
}

68
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementContractualNormalService.java

@ -0,0 +1,68 @@
package org.dromara.productManagement.service;
import org.dromara.productManagement.domain.vo.RequirementContractualNormalVo;
import org.dromara.productManagement.domain.bo.RequirementContractualNormalBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 合同常规要求Service接口
*
* @author Lion Li
* @date 2025-03-13
*/
public interface IRequirementContractualNormalService {
/**
* 查询合同常规要求
*
* @param id 主键
* @return 合同常规要求
*/
RequirementContractualNormalVo queryById(Long id);
/**
* 分页查询合同常规要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 合同常规要求分页列表
*/
TableDataInfo<RequirementContractualNormalVo> queryPageList(RequirementContractualNormalBo bo, PageQuery pageQuery);
/**
* 查询符合条件的合同常规要求列表
*
* @param bo 查询条件
* @return 合同常规要求列表
*/
List<RequirementContractualNormalVo> queryList(RequirementContractualNormalBo bo);
/**
* 新增合同常规要求
*
* @param bo 合同常规要求
* @return 是否新增成功
*/
Boolean insertByBo(RequirementContractualNormalBo bo);
/**
* 修改合同常规要求
*
* @param bo 合同常规要求
* @return 是否修改成功
*/
Boolean updateByBo(RequirementContractualNormalBo bo);
/**
* 校验并批量删除合同常规要求信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

68
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementCpuosdatabaseService.java

@ -0,0 +1,68 @@
package org.dromara.productManagement.service;
import org.dromara.productManagement.domain.vo.RequirementCpuosdatabaseVo;
import org.dromara.productManagement.domain.bo.RequirementCpuosdatabaseBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* CPU,操作系统数据库要求Service接口
*
* @author Lion Li
* @date 2025-03-14
*/
public interface IRequirementCpuosdatabaseService {
/**
* 查询CPU,操作系统数据库要求
*
* @param id 主键
* @return CPU,操作系统数据库要求
*/
RequirementCpuosdatabaseVo queryById(Long id);
/**
* 分页查询CPU,操作系统数据库要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return CPU,操作系统数据库要求分页列表
*/
TableDataInfo<RequirementCpuosdatabaseVo> queryPageList(RequirementCpuosdatabaseBo bo, PageQuery pageQuery);
/**
* 查询符合条件的CPU,操作系统数据库要求列表
*
* @param bo 查询条件
* @return CPU,操作系统数据库要求列表
*/
List<RequirementCpuosdatabaseVo> queryList(RequirementCpuosdatabaseBo bo);
/**
* 新增CPU,操作系统数据库要求
*
* @param bo CPU,操作系统数据库要求
* @return 是否新增成功
*/
Boolean insertByBo(RequirementCpuosdatabaseBo bo);
/**
* 修改CPU,操作系统数据库要求
*
* @param bo CPU,操作系统数据库要求
* @return 是否修改成功
*/
Boolean updateByBo(RequirementCpuosdatabaseBo bo);
/**
* 校验并批量删除CPU,操作系统数据库要求信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

68
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementEntityService.java

@ -0,0 +1,68 @@
package org.dromara.productManagement.service;
import org.dromara.productManagement.domain.vo.RequirementEntityVo;
import org.dromara.productManagement.domain.bo.RequirementEntityBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 主体要求Service接口
*
* @author Lion Li
* @date 2025-03-13
*/
public interface IRequirementEntityService {
/**
* 查询主体要求
*
* @param id 主键
* @return 主体要求
*/
RequirementEntityVo queryById(Long id);
/**
* 分页查询主体要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 主体要求分页列表
*/
TableDataInfo<RequirementEntityVo> queryPageList(RequirementEntityBo bo, PageQuery pageQuery);
/**
* 查询符合条件的主体要求列表
*
* @param bo 查询条件
* @return 主体要求列表
*/
List<RequirementEntityVo> queryList(RequirementEntityBo bo);
/**
* 新增主体要求
*
* @param bo 主体要求
* @return 是否新增成功
*/
Boolean insertByBo(RequirementEntityBo bo);
/**
* 修改主体要求
*
* @param bo 主体要求
* @return 是否修改成功
*/
Boolean updateByBo(RequirementEntityBo bo);
/**
* 校验并批量删除主体要求信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

68
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementProductAttributeService.java

@ -0,0 +1,68 @@
package org.dromara.productManagement.service;
import org.dromara.productManagement.domain.vo.RequirementProductAttributeVo;
import org.dromara.productManagement.domain.bo.RequirementProductAttributeBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import java.util.Collection;
import java.util.List;
/**
* 产品属性要求Service接口
*
* @author Lion Li
* @date 2025-03-13
*/
public interface IRequirementProductAttributeService {
/**
* 查询产品属性要求
*
* @param id 主键
* @return 产品属性要求
*/
RequirementProductAttributeVo queryById(Long id);
/**
* 分页查询产品属性要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 产品属性要求分页列表
*/
TableDataInfo<RequirementProductAttributeVo> queryPageList(RequirementProductAttributeBo bo, PageQuery pageQuery);
/**
* 查询符合条件的产品属性要求列表
*
* @param bo 查询条件
* @return 产品属性要求列表
*/
List<RequirementProductAttributeVo> queryList(RequirementProductAttributeBo bo);
/**
* 新增产品属性要求
*
* @param bo 产品属性要求
* @return 是否新增成功
*/
Boolean insertByBo(RequirementProductAttributeBo bo);
/**
* 修改产品属性要求
*
* @param bo 产品属性要求
* @return 是否修改成功
*/
Boolean updateByBo(RequirementProductAttributeBo bo);
/**
* 校验并批量删除产品属性要求信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

286
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualAuditConfigServiceImpl.java

@ -0,0 +1,286 @@
package org.dromara.productManagement.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.dromara.productManagement.domain.*;
import org.dromara.productManagement.domain.bo.RequirementCpuosdatabaseBo;
import org.dromara.productManagement.mapper.*;
import org.springframework.stereotype.Service;
import org.dromara.productManagement.domain.bo.ContractualAuditConfigBo;
import org.dromara.productManagement.domain.vo.ContractualAuditConfigVo;
import org.dromara.productManagement.service.IContractualAuditConfigService;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
* 合同审核配置Service业务层处理
*
* @author Lion Li
* @date 2025-03-13
*/
@RequiredArgsConstructor
@Service
@Transactional
public class ContractualAuditConfigServiceImpl implements IContractualAuditConfigService {
private final ContractualAuditConfigMapper baseMapper;
private final RequirementEntityMapper requirementEntityMapper;
private final RequirementCpuosdatabaseMapper requirementCpuosdatabaseMapper;
private final RequirementProductAttributeMapper requirementProductAttributeMapper;
private final RequirementContractualNormalMapper requirementContractualNormalMapper;
/**
* 查询合同审核配置
*
* @param id 主键
* @return 合同审核配置
*/
@Override
public ContractualAuditConfigVo queryById(Long id){
ContractualAuditConfigVo contractualAuditConfigVo = baseMapper.selectVoById(id);
if (contractualAuditConfigVo!= null) {
String auditElement = contractualAuditConfigVo.getAuditElement();
if (auditElement.equals("cpu")||auditElement.equals("database")||auditElement.equals("os")) {
LambdaQueryWrapper<RequirementCpuosdatabase> lqw = Wrappers.lambdaQuery();
lqw.eq(RequirementCpuosdatabase::getConfigId, id);
List<RequirementCpuosdatabase> requirementCpuosdatabaseList = requirementCpuosdatabaseMapper.selectList(lqw);
contractualAuditConfigVo.setRequirementCpuosdatabaseList(requirementCpuosdatabaseList);
} else if (auditElement.equals("entity")) {
LambdaQueryWrapper<RequirementEntity> lqw = Wrappers.lambdaQuery();
lqw.eq(RequirementEntity::getConfigId, id);
List<RequirementEntity> requirementEntityList = requirementEntityMapper.selectList(lqw);
contractualAuditConfigVo.setRequirementEntityList(requirementEntityList);
} else if (auditElement.equals("productAttribute")) {
LambdaQueryWrapper<RequirementProductAttribute> lqw = Wrappers.lambdaQuery();
lqw.eq(RequirementProductAttribute::getConfigId, id);
List<RequirementProductAttribute> requirementProductAttributeList = requirementProductAttributeMapper.selectList(lqw);
contractualAuditConfigVo.setRequirementProductAttributeList(requirementProductAttributeList);
} else if (auditElement.equals("contractualNormal")) {
LambdaQueryWrapper<RequirementContractualNormal> lqw = Wrappers.lambdaQuery();
lqw.eq(RequirementContractualNormal::getConfigId, id);
List<RequirementContractualNormal> requirementContractualNormalList = requirementContractualNormalMapper.selectList(lqw);
contractualAuditConfigVo.setRequirementContractualNormalList(requirementContractualNormalList);
}
}
return contractualAuditConfigVo;
}
/**
* 分页查询合同审核配置列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 合同审核配置分页列表
*/
@Override
public TableDataInfo<ContractualAuditConfigVo> queryPageList(ContractualAuditConfigBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<ContractualAuditConfig> lqw = buildQueryWrapper(bo);
Page<ContractualAuditConfigVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的合同审核配置列表
*
* @param bo 查询条件
* @return 合同审核配置列表
*/
@Override
public List<ContractualAuditConfigVo> queryList(ContractualAuditConfigBo bo) {
LambdaQueryWrapper<ContractualAuditConfig> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<ContractualAuditConfig> buildQueryWrapper(ContractualAuditConfigBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<ContractualAuditConfig> lqw = Wrappers.lambdaQuery();
lqw.like(StringUtils.isNotBlank(bo.getAuditElement()), ContractualAuditConfig::getAuditElement, bo.getAuditElement());
lqw.eq(StringUtils.isNotBlank(bo.getRequirementDescription()), ContractualAuditConfig::getRequirementDescription, bo.getRequirementDescription());
return lqw;
}
/**
* 新增合同审核配置
*
* @param bo 合同审核配置
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(ContractualAuditConfigBo bo) {
ContractualAuditConfig add = MapstructUtils.convert(bo, ContractualAuditConfig.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
String auditElement = bo.getAuditElement();
if (auditElement.equals("cpu")||auditElement.equals("database")||auditElement.equals("os")) {
List<RequirementCpuosdatabase> requirementCpuosdatabaseList = bo.getRequirementCpuosdatabaseList();
requirementCpuosdatabaseList.forEach(requirementCpuosdatabase -> {
requirementCpuosdatabase.setConfigId(add.getId());
requirementCpuosdatabase.setType(auditElement);
requirementCpuosdatabaseMapper.insert(requirementCpuosdatabase);
});
} else if (auditElement.equals("entity")) {
List<RequirementEntity> requirementEntityList = bo.getRequirementEntityList();
requirementEntityList.forEach(requirementEntity -> {
requirementEntity.setConfigId(add.getId());
requirementEntityMapper.insert(requirementEntity);
});
} else if (auditElement.equals("productAttribute")) {
List<RequirementProductAttribute> requirementProductAttributeList = bo.getRequirementProductAttributeList();
requirementProductAttributeList.forEach(requirementProductAttribute -> {
requirementProductAttribute.setConfigId(add.getId());
requirementProductAttributeMapper.insert(requirementProductAttribute);
});
} else if (auditElement.equals("contractualNormal")) {
List<RequirementContractualNormal> requirementContractualNormalList = bo.getRequirementContractualNormalList();
requirementContractualNormalList.forEach(requirementContractualNormal -> {
requirementContractualNormal.setConfigId(add.getId());
requirementContractualNormalMapper.insert(requirementContractualNormal);
});
}
}
return flag;
}
/**
* 修改合同审核配置
*
* @param bo 合同审核配置
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(ContractualAuditConfigBo bo) {
ContractualAuditConfig update = MapstructUtils.convert(bo, ContractualAuditConfig.class);
validEntityBeforeSave(update);
boolean flag = baseMapper.updateById(update) > 0;
if (flag) {
String auditElement = bo.getAuditElement();
if (auditElement.equals("cpu")||auditElement.equals("database")||auditElement.equals("os")) {
List<RequirementCpuosdatabase> requirementCpuosdatabaseList = bo.getRequirementCpuosdatabaseList();
// 根据configId删除原有数据
LambdaQueryWrapper<RequirementCpuosdatabase> lqw = Wrappers.lambdaQuery();
lqw.eq(RequirementCpuosdatabase::getConfigId, update.getId());
requirementCpuosdatabaseMapper.deleteReal(lqw);
// 新增数据
requirementCpuosdatabaseList.forEach(requirementCpuosdatabase -> {
requirementCpuosdatabase.setConfigId(update.getId());
requirementCpuosdatabase.setType(auditElement);
requirementCpuosdatabaseMapper.insert(requirementCpuosdatabase);
});
}else if (auditElement.equals("entity")) {
List<RequirementEntity> requirementEntityList = bo.getRequirementEntityList();
// 根据configId删除原有数据
LambdaQueryWrapper<RequirementEntity> lqw = Wrappers.lambdaQuery();
lqw.eq(RequirementEntity::getConfigId, update.getId());
requirementEntityMapper.deleteReal(lqw);
// 新增数据
requirementEntityList.forEach(requirementEntity -> {
requirementEntity.setConfigId(update.getId());
requirementEntityMapper.insert(requirementEntity);
});
} else if (auditElement.equals("productAttribute")) {
List<RequirementProductAttribute> requirementProductAttributeList = bo.getRequirementProductAttributeList();
// 根据configId删除原有数据
LambdaQueryWrapper<RequirementProductAttribute> lqw = Wrappers.lambdaQuery();
lqw.eq(RequirementProductAttribute::getConfigId, update.getId());
requirementProductAttributeMapper.deleteReal(lqw);
// 新增数据
requirementProductAttributeList.forEach(requirementProductAttribute -> {
requirementProductAttribute.setConfigId(update.getId());
requirementProductAttributeMapper.insert(requirementProductAttribute);
});
}else if (auditElement.equals("contractualNormal")){
List<RequirementContractualNormal> requirementContractualNormalList = bo.getRequirementContractualNormalList();
// 根据configId删除原有数据
LambdaQueryWrapper<RequirementContractualNormal> lqw = Wrappers.lambdaQuery();
lqw.eq(RequirementContractualNormal::getConfigId, update.getId());
requirementContractualNormalMapper.deleteReal(lqw);
// 新增数据
requirementContractualNormalList.forEach(requirementContractualNormal -> {
requirementContractualNormal.setConfigId(update.getId());
requirementContractualNormalMapper.insert(requirementContractualNormal);
});
}
}
return flag;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(ContractualAuditConfig entity){
//TODO 做一些数据校验,如唯一约束
String auditElement = entity.getAuditElement();
LambdaQueryWrapper<ContractualAuditConfig> lqw = Wrappers.lambdaQuery();
lqw.eq(ContractualAuditConfig::getAuditElement, auditElement);
lqw.eq(ContractualAuditConfig::getRequirementType, entity.getRequirementType());
if(entity.getId() != null){
lqw.ne(ContractualAuditConfig::getId, entity.getId());
}
Long count = baseMapper.selectCount(lqw);
if (count > 0) {
throw new IllegalArgumentException("合同审核配置已存在");
}
}
/**
* 校验并批量删除合同审核配置信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
// 删除合同审核配置信息
LambdaQueryWrapper<RequirementCpuosdatabase> lqw1 = Wrappers.lambdaQuery();
lqw1.in(RequirementCpuosdatabase::getConfigId, ids);
requirementCpuosdatabaseMapper.deleteReal(lqw1);
LambdaQueryWrapper<RequirementEntity> lqw2 = Wrappers.lambdaQuery();
lqw2.in(RequirementEntity::getConfigId, ids);
requirementEntityMapper.deleteReal(lqw2);
LambdaQueryWrapper<RequirementProductAttribute> lqw3 = Wrappers.lambdaQuery();
lqw3.in(RequirementProductAttribute::getConfigId, ids);
requirementProductAttributeMapper.deleteReal(lqw3);
LambdaQueryWrapper<RequirementContractualNormal> lqw4 = Wrappers.lambdaQuery();
lqw4.in(RequirementContractualNormal::getConfigId, ids);
requirementContractualNormalMapper.deleteReal(lqw4);
return baseMapper.deleteByIds(ids) > 0;
}
@Override
public List<HashMap<String, String>> getRequirementTypeDict() {
LambdaQueryWrapper<ContractualAuditConfig> lqw = Wrappers.lambdaQuery();
// 使用sql查询requirementType去重后的结果
lqw.select(ContractualAuditConfig::getRequirementType)
.groupBy(ContractualAuditConfig::getRequirementType);
List<ContractualAuditConfig> list = baseMapper.selectList(lqw);
// 提取去重后的requirementType列表
List<String> requirementTypes = list.stream()
.map(ContractualAuditConfig::getRequirementType)
.collect(Collectors.toList());
// 封装成map
List<HashMap<String, String>> result = new ArrayList<>();
for (String requirementType : requirementTypes) {
HashMap<String, String> map = new HashMap<>();
map.put("value", requirementType);
map.put("label", requirementType);
result.add(map);
}
return result;
}
}

137
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualProductInfoServiceImpl.java

@ -0,0 +1,137 @@
package org.dromara.productManagement.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.productManagement.domain.bo.ContractualProductInfoBo;
import org.dromara.productManagement.domain.vo.ContractualProductInfoVo;
import org.dromara.productManagement.domain.ContractualProductInfo;
import org.dromara.productManagement.mapper.ContractualProductInfoMapper;
import org.dromara.productManagement.service.IContractualProductInfoService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 合同产品信息Service业务层处理
*
* @author Lion Li
* @date 2025-03-18
*/
@RequiredArgsConstructor
@Service
public class ContractualProductInfoServiceImpl implements IContractualProductInfoService {
private final ContractualProductInfoMapper baseMapper;
/**
* 查询合同产品信息
*
* @param id 主键
* @return 合同产品信息
*/
@Override
public ContractualProductInfoVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询合同产品信息列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 合同产品信息分页列表
*/
@Override
public TableDataInfo<ContractualProductInfoVo> queryPageList(ContractualProductInfoBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<ContractualProductInfo> lqw = buildQueryWrapper(bo);
Page<ContractualProductInfoVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的合同产品信息列表
*
* @param bo 查询条件
* @return 合同产品信息列表
*/
@Override
public List<ContractualProductInfoVo> queryList(ContractualProductInfoBo bo) {
LambdaQueryWrapper<ContractualProductInfo> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<ContractualProductInfo> buildQueryWrapper(ContractualProductInfoBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<ContractualProductInfo> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getTaskId()), ContractualProductInfo::getTaskId, bo.getTaskId());
lqw.like(StringUtils.isNotBlank(bo.getFileName()), ContractualProductInfo::getFileName, bo.getFileName());
lqw.like(StringUtils.isNotBlank(bo.getBrand()), ContractualProductInfo::getBrand, bo.getBrand());
lqw.eq(StringUtils.isNotBlank(bo.getVersionStr()), ContractualProductInfo::getVersionStr, bo.getVersionStr());
lqw.eq(bo.getUnitPrice() != null, ContractualProductInfo::getUnitPrice, bo.getUnitPrice());
lqw.eq(StringUtils.isNotBlank(bo.getPriceUnit()), ContractualProductInfo::getPriceUnit, bo.getPriceUnit());
lqw.eq(bo.getQuantity() != null, ContractualProductInfo::getQuantity, bo.getQuantity());
lqw.eq(bo.getTotalPrice() != null, ContractualProductInfo::getTotalPrice, bo.getTotalPrice());
lqw.like(StringUtils.isNotBlank(bo.getType()), ContractualProductInfo::getType, bo.getType());
return lqw;
}
/**
* 新增合同产品信息
*
* @param bo 合同产品信息
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(ContractualProductInfoBo bo) {
ContractualProductInfo add = MapstructUtils.convert(bo, ContractualProductInfo.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改合同产品信息
*
* @param bo 合同产品信息
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(ContractualProductInfoBo bo) {
ContractualProductInfo update = MapstructUtils.convert(bo, ContractualProductInfo.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(ContractualProductInfo entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除合同产品信息信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

1
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTasksServiceImpl.java

@ -125,6 +125,7 @@ public class ContractualTasksServiceImpl extends BaseTaskService<ContractualTask
lqw.like(StringUtils.isNotBlank(bo.getBatchName()), DocumentTasks::getBatchName, bo.getBatchName());
lqw.eq(StringUtils.isNotBlank(bo.getProgressStatus()), DocumentTasks::getProgressStatus, bo.getProgressStatus());
lqw.eq(StringUtils.isNotBlank(bo.getResultType()),DocumentTasks::getResultType, bo.getResultType());
lqw.like(StringUtils.isNotBlank(bo.getProblemPoint()), DocumentTasks::getProblemPoint, bo.getProblemPoint());
lqw.orderByDesc(DocumentTasks::getUpdateTime);
lqw.orderByDesc(DocumentTasks::getProgressStatus);
return lqw;

36
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/JyjContractualTaskBatchServiceImpl.java

@ -31,6 +31,7 @@ import org.dromara.productManagement.service.IJyjContractualTaskBatchService;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.*;
@ -81,10 +82,12 @@ public class JyjContractualTaskBatchServiceImpl implements IJyjContractualTaskBa
LambdaQueryWrapper<DocumentTasks> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(DocumentTasks::getGroupId, id);
List<DocumentTasks> documentTasksList = documentTasksMapper.selectList(wrapper);
//获取documentTasksList中最大的updateTime
Date maxUpdateTime = documentTasksList.stream().max(Comparator.comparing(DocumentTasks::getUpdateTime)).get().getUpdateTime();
String timeDifference = MyTimeUtils.formatTimeDifference(vo.getLatestTime(), maxUpdateTime);
vo.setProcessingTime(timeDifference);
if(documentTasksList.size() > 0){
//获取documentTasksList中最大的updateTime
Date maxUpdateTime = documentTasksList.stream().max(Comparator.comparing(DocumentTasks::getCreateTime)).get().getCreateTime();
String timeDifference = MyTimeUtils.formatTimeDifference(vo.getLatestTime(), maxUpdateTime);
vo.setProcessingTime(timeDifference);
}
//获取documentTasksList中最大的updateTime对应的documentTaskResults
});
return TableDataInfo.build(result);
@ -155,6 +158,7 @@ public class JyjContractualTaskBatchServiceImpl implements IJyjContractualTaskBa
documentTasks.setTaskType(bo.getTaskType());
documentTasks.setGroupId(add.getId());
documentTasks.setBatchName(add.getBatchName());
documentTasks.setRequirementType(bo.getRequirementType());
// 在插入数据库前调用扩展点
documentTasksMapper.insert(documentTasks);
// 在发送消息前调用扩展点
@ -234,20 +238,21 @@ public class JyjContractualTaskBatchServiceImpl implements IJyjContractualTaskBa
}
@Override
public void getContractulPdf(Long id, HttpServletResponse response) {
public void getContractulPdf(Long id, HttpServletResponse response) throws UnsupportedEncodingException {
// PDF文件的绝对路径
LambdaQueryWrapper<ContractualInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ContractualInfo::getTaskId, id);
ContractualInfo ContractualInfo = contractualInfoMapper.selectOne(wrapper);
String pdfPath = ContractualInfo.getFilePath();
String fileName = ContractualInfo.getFileName();
DocumentTasks documentTasks = documentTasksMapper.selectById(id);
String pdfPath = documentTasks.getFilePath();
String fileName = documentTasks.getDocumentName();
File file = new File(pdfPath);
if (!file.exists()) {
throw new RuntimeException("文件不存在");
}
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=" + fileName);
// 正确的方式
String encodedFileName = URLEncoder.encode(fileName, "UTF-8")
.replaceAll("\\+", "%20");
response.setHeader("Content-Disposition", "inline; filename=\"" + encodedFileName + "\"");
response.setContentLength((int) file.length());
try (FileInputStream inputStream = new FileInputStream(file);
OutputStream outputStream = response.getOutputStream()) {
@ -262,4 +267,13 @@ public class JyjContractualTaskBatchServiceImpl implements IJyjContractualTaskBa
throw new RuntimeException("文件读取失败", e);
}
}
@Override
public String getContractulContent(Long id) {
LambdaQueryWrapper<ContractualInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ContractualInfo::getTaskId, id);
ContractualInfo contractualInfo = contractualInfoMapper.selectOne(wrapper);
String text = contractualInfo.getText();
return text;
}
}

131
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementContractualNormalServiceImpl.java

@ -0,0 +1,131 @@
package org.dromara.productManagement.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.productManagement.domain.bo.RequirementContractualNormalBo;
import org.dromara.productManagement.domain.vo.RequirementContractualNormalVo;
import org.dromara.productManagement.domain.RequirementContractualNormal;
import org.dromara.productManagement.mapper.RequirementContractualNormalMapper;
import org.dromara.productManagement.service.IRequirementContractualNormalService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 合同常规要求Service业务层处理
*
* @author Lion Li
* @date 2025-03-13
*/
@RequiredArgsConstructor
@Service
public class RequirementContractualNormalServiceImpl implements IRequirementContractualNormalService {
private final RequirementContractualNormalMapper baseMapper;
/**
* 查询合同常规要求
*
* @param id 主键
* @return 合同常规要求
*/
@Override
public RequirementContractualNormalVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询合同常规要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 合同常规要求分页列表
*/
@Override
public TableDataInfo<RequirementContractualNormalVo> queryPageList(RequirementContractualNormalBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<RequirementContractualNormal> lqw = buildQueryWrapper(bo);
Page<RequirementContractualNormalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的合同常规要求列表
*
* @param bo 查询条件
* @return 合同常规要求列表
*/
@Override
public List<RequirementContractualNormalVo> queryList(RequirementContractualNormalBo bo) {
LambdaQueryWrapper<RequirementContractualNormal> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<RequirementContractualNormal> buildQueryWrapper(RequirementContractualNormalBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<RequirementContractualNormal> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getConfigId() != null, RequirementContractualNormal::getConfigId, bo.getConfigId());
lqw.eq(StringUtils.isNotBlank(bo.getCheckItem()), RequirementContractualNormal::getCheckItem, bo.getCheckItem());
lqw.eq(StringUtils.isNotBlank(bo.getRequirementDesc()), RequirementContractualNormal::getRequirementDesc, bo.getRequirementDesc());
return lqw;
}
/**
* 新增合同常规要求
*
* @param bo 合同常规要求
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(RequirementContractualNormalBo bo) {
RequirementContractualNormal add = MapstructUtils.convert(bo, RequirementContractualNormal.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改合同常规要求
*
* @param bo 合同常规要求
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(RequirementContractualNormalBo bo) {
RequirementContractualNormal update = MapstructUtils.convert(bo, RequirementContractualNormal.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(RequirementContractualNormal entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除合同常规要求信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

133
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementCpuosdatabaseServiceImpl.java

@ -0,0 +1,133 @@
package org.dromara.productManagement.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.productManagement.domain.bo.RequirementCpuosdatabaseBo;
import org.dromara.productManagement.domain.vo.RequirementCpuosdatabaseVo;
import org.dromara.productManagement.domain.RequirementCpuosdatabase;
import org.dromara.productManagement.mapper.RequirementCpuosdatabaseMapper;
import org.dromara.productManagement.service.IRequirementCpuosdatabaseService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* CPU,操作系统数据库要求Service业务层处理
*
* @author Lion Li
* @date 2025-03-14
*/
@RequiredArgsConstructor
@Service
public class RequirementCpuosdatabaseServiceImpl implements IRequirementCpuosdatabaseService {
private final RequirementCpuosdatabaseMapper baseMapper;
/**
* 查询CPU,操作系统数据库要求
*
* @param id 主键
* @return CPU,操作系统数据库要求
*/
@Override
public RequirementCpuosdatabaseVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询CPU,操作系统数据库要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return CPU,操作系统数据库要求分页列表
*/
@Override
public TableDataInfo<RequirementCpuosdatabaseVo> queryPageList(RequirementCpuosdatabaseBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<RequirementCpuosdatabase> lqw = buildQueryWrapper(bo);
Page<RequirementCpuosdatabaseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的CPU,操作系统数据库要求列表
*
* @param bo 查询条件
* @return CPU,操作系统数据库要求列表
*/
@Override
public List<RequirementCpuosdatabaseVo> queryList(RequirementCpuosdatabaseBo bo) {
LambdaQueryWrapper<RequirementCpuosdatabase> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<RequirementCpuosdatabase> buildQueryWrapper(RequirementCpuosdatabaseBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<RequirementCpuosdatabase> lqw = Wrappers.lambdaQuery();
lqw.eq(StringUtils.isNotBlank(bo.getType()), RequirementCpuosdatabase::getType, bo.getType());
lqw.eq(bo.getConfigId() != null, RequirementCpuosdatabase::getConfigId, bo.getConfigId());
lqw.like(StringUtils.isNotBlank(bo.getName()), RequirementCpuosdatabase::getName, bo.getName());
lqw.eq(StringUtils.isNotBlank(bo.getModel()), RequirementCpuosdatabase::getModel, bo.getModel());
lqw.eq(StringUtils.isNotBlank(bo.getVersionStr()), RequirementCpuosdatabase::getVersionStr, bo.getVersionStr());
return lqw;
}
/**
* 新增CPU,操作系统数据库要求
*
* @param bo CPU,操作系统数据库要求
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(RequirementCpuosdatabaseBo bo) {
RequirementCpuosdatabase add = MapstructUtils.convert(bo, RequirementCpuosdatabase.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改CPU,操作系统数据库要求
*
* @param bo CPU,操作系统数据库要求
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(RequirementCpuosdatabaseBo bo) {
RequirementCpuosdatabase update = MapstructUtils.convert(bo, RequirementCpuosdatabase.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(RequirementCpuosdatabase entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除CPU,操作系统数据库要求信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

133
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementEntityServiceImpl.java

@ -0,0 +1,133 @@
package org.dromara.productManagement.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.productManagement.domain.bo.RequirementEntityBo;
import org.dromara.productManagement.domain.vo.RequirementEntityVo;
import org.dromara.productManagement.domain.RequirementEntity;
import org.dromara.productManagement.mapper.RequirementEntityMapper;
import org.dromara.productManagement.service.IRequirementEntityService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 主体要求Service业务层处理
*
* @author Lion Li
* @date 2025-03-13
*/
@RequiredArgsConstructor
@Service
public class RequirementEntityServiceImpl implements IRequirementEntityService {
private final RequirementEntityMapper baseMapper;
/**
* 查询主体要求
*
* @param id 主键
* @return 主体要求
*/
@Override
public RequirementEntityVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询主体要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 主体要求分页列表
*/
@Override
public TableDataInfo<RequirementEntityVo> queryPageList(RequirementEntityBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<RequirementEntity> lqw = buildQueryWrapper(bo);
Page<RequirementEntityVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的主体要求列表
*
* @param bo 查询条件
* @return 主体要求列表
*/
@Override
public List<RequirementEntityVo> queryList(RequirementEntityBo bo) {
LambdaQueryWrapper<RequirementEntity> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<RequirementEntity> buildQueryWrapper(RequirementEntityBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<RequirementEntity> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getConfigId() != null, RequirementEntity::getConfigId, bo.getConfigId());
lqw.like(StringUtils.isNotBlank(bo.getEntityName()), RequirementEntity::getEntityName, bo.getEntityName());
lqw.eq(bo.getParentId() != null, RequirementEntity::getParentId, bo.getParentId());
lqw.eq(bo.getLevel() != null, RequirementEntity::getLevel, bo.getLevel());
lqw.eq(StringUtils.isNotBlank(bo.getPath()), RequirementEntity::getPath, bo.getPath());
return lqw;
}
/**
* 新增主体要求
*
* @param bo 主体要求
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(RequirementEntityBo bo) {
RequirementEntity add = MapstructUtils.convert(bo, RequirementEntity.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改主体要求
*
* @param bo 主体要求
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(RequirementEntityBo bo) {
RequirementEntity update = MapstructUtils.convert(bo, RequirementEntity.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(RequirementEntity entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除主体要求信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

132
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementProductAttributeServiceImpl.java

@ -0,0 +1,132 @@
package org.dromara.productManagement.service.impl;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.mybatis.core.page.PageQuery;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.dromara.productManagement.domain.bo.RequirementProductAttributeBo;
import org.dromara.productManagement.domain.vo.RequirementProductAttributeVo;
import org.dromara.productManagement.domain.RequirementProductAttribute;
import org.dromara.productManagement.mapper.RequirementProductAttributeMapper;
import org.dromara.productManagement.service.IRequirementProductAttributeService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 产品属性要求Service业务层处理
*
* @author Lion Li
* @date 2025-03-13
*/
@RequiredArgsConstructor
@Service
public class RequirementProductAttributeServiceImpl implements IRequirementProductAttributeService {
private final RequirementProductAttributeMapper baseMapper;
/**
* 查询产品属性要求
*
* @param id 主键
* @return 产品属性要求
*/
@Override
public RequirementProductAttributeVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询产品属性要求列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 产品属性要求分页列表
*/
@Override
public TableDataInfo<RequirementProductAttributeVo> queryPageList(RequirementProductAttributeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<RequirementProductAttribute> lqw = buildQueryWrapper(bo);
Page<RequirementProductAttributeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的产品属性要求列表
*
* @param bo 查询条件
* @return 产品属性要求列表
*/
@Override
public List<RequirementProductAttributeVo> queryList(RequirementProductAttributeBo bo) {
LambdaQueryWrapper<RequirementProductAttribute> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<RequirementProductAttribute> buildQueryWrapper(RequirementProductAttributeBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<RequirementProductAttribute> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getConfigId() != null, RequirementProductAttribute::getConfigId, bo.getConfigId());
lqw.like(StringUtils.isNotBlank(bo.getAttributeName()), RequirementProductAttribute::getAttributeName, bo.getAttributeName());
lqw.eq(StringUtils.isNotBlank(bo.getRequirement()), RequirementProductAttribute::getRequirement, bo.getRequirement());
lqw.eq(StringUtils.isNotBlank(bo.getProductType()), RequirementProductAttribute::getProductType, bo.getProductType());
return lqw;
}
/**
* 新增产品属性要求
*
* @param bo 产品属性要求
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(RequirementProductAttributeBo bo) {
RequirementProductAttribute add = MapstructUtils.convert(bo, RequirementProductAttribute.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改产品属性要求
*
* @param bo 产品属性要求
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(RequirementProductAttributeBo bo) {
RequirementProductAttribute update = MapstructUtils.convert(bo, RequirementProductAttribute.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(RequirementProductAttribute entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除产品属性要求信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}

489
zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/utils/CompressedFileUtils.java

@ -1,3 +1,314 @@
//package org.dromara.productManagement.utils;
//
//import java.io.*;
//import java.nio.charset.Charset;
//import java.nio.charset.StandardCharsets;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.UUID;
//import java.util.zip.ZipEntry;
//import java.util.zip.ZipFile;
//import java.util.Enumeration;
//import java.util.zip.ZipInputStream;
//
//import com.github.junrar.rarfile.FileHeader;
//import jakarta.annotation.PostConstruct;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.io.FileUtils;
//import org.dromara.common.core.utils.SpringUtils;
//import org.dromara.common.oss.core.OssClient;
//import org.dromara.system.domain.SysOss;
//import org.dromara.system.domain.vo.SysOssVo;
//import org.mozilla.universalchardet.UniversalDetector;
//import org.springframework.beans.factory.annotation.Value;
//import org.dromara.common.oss.factory.OssFactory;
//import org.springframework.stereotype.Component;
//
///**
// * 压缩文件处理工具类
// * 仅支持处理ZIP格式的压缩文件
// */
//@Component
//@Slf4j
//public class CompressedFileUtils {
//
// private static final List<String> ALLOWED_EXTENSIONS = new ArrayList<>(List.of(".pdf", ".ofd"));
// private static String tempfilePath; // 保持为静态变量
//
// @Value("${chat.tempfilePath}") // 默认值为 D:\\ce\\tempfile
// private String tempFilePathValue; // 用于注入的变量
//
// @PostConstruct
// public void init() {
// tempfilePath = (tempFilePathValue != null) ? tempFilePathValue : null; // 设置默认值
// }
//
// /**
// * 文件验证结果类
// */
// public static class FileValidationResult {
// private final List<File> validFiles;
// private final List<String> warnings;
//
// public FileValidationResult() {
// this.validFiles = new ArrayList<>();
// this.warnings = new ArrayList<>();
// }
//
// public List<File> getValidFiles() {
// return validFiles;
// }
//
// public List<String> getWarnings() {
// return warnings;
// }
//
// public void addWarning(String warning) {
// this.warnings.add(warning);
// }
//
// public void addValidFile(File file) {
// this.validFiles.add(file);
// }
// }
//
// /**
// * 从MinIO下载并处理压缩文件
// */
// public static FileValidationResult processCompressedFileFromMinio(SysOssVo sysOss) {
// FileValidationResult result = new FileValidationResult();
// File tempFile = null;
// OssClient instance = OssFactory.instance(sysOss.getService());
//
// try {
// try (InputStream inputStream = instance.getObjectContent(sysOss.getFileName())) {
// String originalFileName = sysOss.getOriginalName();
// tempFile = new File(tempfilePath, "temp_" + System.currentTimeMillis() + "_" + originalFileName);
// createParentDirectories(tempFile);
//
// try (FileOutputStream fileOutputStream = new FileOutputStream(tempFile)) {
// copyStream(inputStream, fileOutputStream);
// }
//
// result = processCompressedFile(tempFile.getAbsolutePath(), tempfilePath);
// }
// } catch (Exception e) {
// result.addWarning("从MinIO下载或处理文件时发生错误: " + e.getMessage());
// log.error("从MinIO下载或处理文件时发生错误: " + e.getMessage());
//
// } finally {
// if (tempFile != null) {
// tempFile.deleteOnExit();
// if (!tempFile.delete()) {
// result.addWarning("临时文件将在JVM退出时删除: " + tempFile.getAbsolutePath());
// log.warn("临时文件将在JVM退出时删除: " + tempFile.getAbsolutePath());
// }
// }
// }
// return result;
// }
//
// /**
// * 处理压缩文件并返回处理结果
// */
// public static FileValidationResult processCompressedFile(String compressedFilePath, String extractPath) throws IOException {
// FileValidationResult result = new FileValidationResult();
// File compressedFile = new File(compressedFilePath);
//
// if (!compressedFile.exists()) {
// result.addWarning("压缩文件不存在:" + compressedFilePath);
// return result;
// }
//
// if (!compressedFilePath.toLowerCase().endsWith(".zip")) {
// result.addWarning("不支持的压缩文件格式,仅支持 ZIP 格式");
// return result;
// }
//
// processZipFile(compressedFilePath, extractPath, result);
// return result;
// }
//
// private static void processZipFile(String zipFile, String extractPath, FileValidationResult result) throws IOException {
// InputStream inputStream = new FileInputStream(zipFile);
// Charset charset = detectCharset(inputStream);
// try (ZipFile zip = new ZipFile(zipFile, charset)) {
// // 创建以压缩包名命名的文件夹
// String zipFileName = new File(zipFile).getName();
// String folderName = zipFileName.toLowerCase().endsWith(".zip")
// ? zipFileName.substring(0, zipFileName.length() - 4)
// : zipFileName;
// String newExtractPath = new File(extractPath, folderName).getAbsolutePath();
//
// Enumeration<? extends ZipEntry> entries = zip.entries();
// while (entries.hasMoreElements()) {
// ZipEntry entry = entries.nextElement();
// if (!entry.isDirectory()) {
// String entryName = entry.getName();
// if (isValidFileType(entryName)) {
// // 保持原始路径结构
// File extractedFile = new File(newExtractPath, entryName);
// // 确保父目录存在
// extractedFile.getParentFile().mkdirs();
// extractZipEntry(zip, entry, extractedFile);
// result.addValidFile(extractedFile);
// } else {
// result.addWarning("跳过不支持的文件类型: " + entryName);
// }
// }
// }
// } catch (IOException e) {
// result.addWarning("处理ZIP文件时发生错误: " + e.getMessage());
// }
// }
//
// private static File extractZipEntry(ZipFile zipFile, ZipEntry entry, File outputFile) throws IOException {
// try (InputStream inputStream = zipFile.getInputStream(entry);
// FileOutputStream outputStream = new FileOutputStream(outputFile)) {
// copyStream(inputStream, outputStream);
// }
// return outputFile;
// }
// /**
// * 创建父目录
// */
// private static void createParentDirectories(File file) {
// File parentFile = file.getParentFile();
// if (parentFile != null && !parentFile.exists()) {
// parentFile.mkdirs();
// }
// }
//
// /**
// * 复制流数据
// */
// private static void copyStream(InputStream input, OutputStream output) throws IOException {
// byte[] buffer = new byte[8192];
// int length;
// while ((length = input.read(buffer)) > 0) {
// output.write(buffer, 0, length);
// }
// }
//
// /**
// * 检查文件类型是否有效
// */
// private static boolean isValidFileType(String fileName) {
// return ALLOWED_EXTENSIONS.stream()
// .anyMatch(ext -> fileName.toLowerCase().endsWith(ext));
// }
//
// /**
// * 添加允许的文件扩展名
// */
// public static void addAllowedExtension(String extension) {
// if (extension != null && extension.startsWith(".")) {
// ALLOWED_EXTENSIONS.add(extension.toLowerCase());
// }
// }
//
// /**
// * 获取当前支持的文件扩展名列表
// */
// public static List<String> getAllowedExtensions() {
// return new ArrayList<>(ALLOWED_EXTENSIONS);
// }
//
// /**
// * 清除所有允许的文件扩展名
// */
// public static void clearAllowedExtensions() {
// ALLOWED_EXTENSIONS.clear();
// }
//
// /**
// * 移除指定的允许文件扩展名
// */
// public static void removeAllowedExtension(String extension) {
// if (extension != null) {
// ALLOWED_EXTENSIONS.remove(extension.toLowerCase());
// }
// }
// public static class FileStatistics {
// private int validFileCount;
// private int invalidFileCount;
// private List<String> invalidFileNames;
//
// public FileStatistics() {
// this.validFileCount = 0;
// this.invalidFileCount = 0;
// this.invalidFileNames = new ArrayList<>();
// }
//
// public int getValidFileCount() {
// return validFileCount;
// }
//
// public int getInvalidFileCount() {
// return invalidFileCount;
// }
//
// public List<String> getInvalidFileNames() {
// return invalidFileNames;
// }
//
// public void incrementValidCount() {
// this.validFileCount++;
// }
//
// public void addInvalidFile(String fileName) {
// this.invalidFileCount++;
// this.invalidFileNames.add(fileName);
// }
// }
//
// /**
// * 获取压缩文件中的文件统计数据
// */
// public static FileStatistics getFileStatistics(SysOssVo sysOss) throws IOException {
// FileStatistics statistics = new FileStatistics();
// OssClient instance = OssFactory.instance(sysOss.getService());
//
// InputStream checkInputStream = instance.getObjectContent(sysOss.getFileName());
// Charset charset = detectCharset(checkInputStream); // 动态检测字符集,会消耗流的内容
// InputStream inputStream = instance.getObjectContent(sysOss.getFileName());
// ZipInputStream zipInputStream = new ZipInputStream(inputStream, charset);
// ZipEntry entry;
// while ((entry = zipInputStream.getNextEntry()) != null) {
// if (!entry.isDirectory()) {
// String entryName = entry.getName();
// if (isValidFileType(entryName)) {
// statistics.incrementValidCount();
// } else {
// statistics.addInvalidFile(entryName);
// }
// }
// zipInputStream.closeEntry();
// }
//
// return statistics;
//
// }
//
//
// private static Charset detectCharset(InputStream inputStream) throws IOException {
// UniversalDetector detector = new UniversalDetector(null);
// byte[] buf = new byte[4096];
// int nread;
// inputStream.read(buf);
// detector.handleData(buf, 0, buf.length);
// detector.dataEnd();
//
// String encoding = detector.getDetectedCharset();
// detector.reset();
//
// if (encoding != null) {
// return Charset.forName(encoding);
// }
// // 默认返回 UTF-8
// return Charset.forName("GBK");
// }
//}
package org.dromara.productManagement.utils;
import java.io.*;
@ -5,18 +316,15 @@ import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.Enumeration;
import java.util.zip.ZipInputStream;
import java.util.UUID;
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.dromara.common.core.utils.SpringUtils;
import net.lingala.zip4j.ZipFile;
import net.lingala.zip4j.model.FileHeader;
import org.apache.commons.io.FileUtils;
import org.dromara.common.oss.core.OssClient;
import org.dromara.system.domain.SysOss;
import org.dromara.system.domain.vo.SysOssVo;
import org.mozilla.universalchardet.UniversalDetector;
import org.springframework.beans.factory.annotation.Value;
import org.dromara.common.oss.factory.OssFactory;
import org.springframework.stereotype.Component;
@ -126,59 +434,30 @@ public class CompressedFileUtils {
return result;
}
/**
* 处理ZIP文件
*/
// private static void processZipFile(String zipFile, String extractPath, FileValidationResult result) throws IOException {
// InputStream inputStream = new FileInputStream(zipFile);
// Charset charset = detectCharset(inputStream);
// try (ZipFile zip = new ZipFile(zipFile, charset)) {
// // 创建以压缩包名命名的文件夹
// String zipFileName = new File(zipFile).getName();
// String folderName = zipFileName.toLowerCase().endsWith(".zip")
// ? zipFileName.substring(0, zipFileName.length() - 4)
// : zipFileName;
// String newExtractPath = new File(extractPath, folderName).getAbsolutePath();
//
// Enumeration<? extends ZipEntry> entries = zip.entries();
// while (entries.hasMoreElements()) {
// ZipEntry entry = entries.nextElement();
// if (!entry.isDirectory()) {
// String entryName = entry.getName();
// if (isValidFileType(entryName)) {
// File extractedFile = extractZipEntry(zip, entry, newExtractPath);
// result.addValidFile(extractedFile);
// } else {
// result.addWarning("跳过不支持的文件类型: " + entryName);
// }
// }
// }
// } catch (IOException e) {
// result.addWarning("处理ZIP文件时发生错误: " + e.getMessage());
// }
// }
private static void processZipFile(String zipFile, String extractPath, FileValidationResult result) throws IOException {
InputStream inputStream = new FileInputStream(zipFile);
Charset charset = detectCharset(inputStream);
try (ZipFile zip = new ZipFile(zipFile, charset)) {
private static void processZipFile(String zipFilePath, String extractPath, FileValidationResult result) {
try (ZipFile zipFile = new ZipFile(zipFilePath)) {
// 创建以压缩包名命名的文件夹
String zipFileName = new File(zipFile).getName();
String zipFileName = new File(zipFilePath).getName();
String folderName = zipFileName.toLowerCase().endsWith(".zip")
? zipFileName.substring(0, zipFileName.length() - 4)
: zipFileName;
String newExtractPath = new File(extractPath, folderName).getAbsolutePath();
Enumeration<? extends ZipEntry> entries = zip.entries();
while (entries.hasMoreElements()) {
ZipEntry entry = entries.nextElement();
if (!entry.isDirectory()) {
String entryName = entry.getName();
// 根据操作系统类型设置不同的字符集
Charset charset = getOsSpecificCharset();
log.info("当前操作系统: {}, 使用字符集: {}", System.getProperty("os.name"), charset.name());
zipFile.setCharset(charset);
List<FileHeader> fileHeaders = zipFile.getFileHeaders();
for (FileHeader fileHeader : fileHeaders) {
if (!fileHeader.isDirectory()) {
String entryName = fileHeader.getFileName();
if (isValidFileType(entryName)) {
// 保持原始路径结构
File extractedFile = new File(newExtractPath, entryName);
// 确保父目录存在
extractedFile.getParentFile().mkdirs();
extractZipEntry(zip, entry, extractedFile);
// 提取文件
zipFile.extractFile(fileHeader, newExtractPath);
result.addValidFile(extractedFile);
} else {
result.addWarning("跳过不支持的文件类型: " + entryName);
@ -186,30 +465,17 @@ public class CompressedFileUtils {
}
}
} catch (IOException e) {
result.addWarning("处理ZIP文件时发生错误: " + e.getMessage());
new RuntimeException("处理ZIP文件时发生错误: " + e.getMessage());
}
}
/**
* 解压ZIP文件条目
*/
// private static File extractZipEntry(ZipFile zipFile, ZipEntry entry, String extractPath) throws IOException {
// // 只获取文件名,不保留原目录结构
// String fileName = new File(entry.getName()).getName();
// File outputFile = new File(extractPath, fileName);
// createParentDirectories(outputFile);
//
// try (InputStream inputStream = zipFile.getInputStream(entry);
// FileOutputStream outputStream = new FileOutputStream(outputFile)) {
// copyStream(inputStream, outputStream);
// }
// return outputFile;
// }
private static File extractZipEntry(ZipFile zipFile, ZipEntry entry, File outputFile) throws IOException {
try (InputStream inputStream = zipFile.getInputStream(entry);
FileOutputStream outputStream = new FileOutputStream(outputFile)) {
copyStream(inputStream, outputStream);
private static boolean isRandomCode(List<FileHeader> fileHeaders) {
for (FileHeader fileHeader : fileHeaders) {
boolean canEnCode = Charset.forName("GBK").newEncoder().canEncode(fileHeader.getFileName());
if (!canEnCode) {//canEnCode为true,表示不是乱码。false.表示乱码。是乱码则需要重新设置编码格式
return true;
}
}
return outputFile;
return false;
}
/**
* 创建父目录
@ -220,7 +486,31 @@ public class CompressedFileUtils {
parentFile.mkdirs();
}
}
private static boolean isWindows() {
String os = System.getProperty("os.name").toLowerCase();
return os.contains("win");
}
/**
* 判断当前操作系统是否为Linux
*/
private static boolean isLinux() {
String os = System.getProperty("os.name").toLowerCase();
return os.contains("linux");
}
/**
* 获取适合当前操作系统的字符集
*/
private static Charset getOsSpecificCharset() {
if (isWindows()) {
// Windows环境默认使用GBK编码
return Charset.forName("GBK");
} else {
// 其他操作系统默认使用UTF-8
return StandardCharsets.UTF_8;
}
}
/**
* 复制流数据
*/
@ -271,6 +561,7 @@ public class CompressedFileUtils {
ALLOWED_EXTENSIONS.remove(extension.toLowerCase());
}
}
public static class FileStatistics {
private int validFileCount;
private int invalidFileCount;
@ -311,41 +602,43 @@ public class CompressedFileUtils {
FileStatistics statistics = new FileStatistics();
OssClient instance = OssFactory.instance(sysOss.getService());
InputStream checkInputStream = instance.getObjectContent(sysOss.getFileName());
Charset charset = detectCharset(checkInputStream); // 动态检测字符集,会消耗流的内容
InputStream inputStream = instance.getObjectContent(sysOss.getFileName());
ZipInputStream zipInputStream = new ZipInputStream(inputStream, charset);
ZipEntry entry;
while ((entry = zipInputStream.getNextEntry()) != null) {
if (!entry.isDirectory()) {
String entryName = entry.getName();
// 创建临时文件
File tempFile = File.createTempFile("temp_zip_", ".zip");
try {
// 将OSS文件下载到临时文件
InputStream inputStream = instance.getObjectContent(sysOss.getFileName());
FileUtils.copyInputStreamToFile(inputStream, tempFile);
// 使用zip4j打开ZIP文件
ZipFile zipFile = new ZipFile(tempFile);
Charset charset = getOsSpecificCharset();
log.info("当前操作系统: {}, 使用字符集: {}", System.getProperty("os.name"), charset.name());
zipFile.setCharset(charset);
// 获取所有文件条目并分析
List<FileHeader> fileHeaders = zipFile.getFileHeaders();
if (isRandomCode(fileHeaders)) {
log.info("使用UTF-8解压文件【{}】时乱码,尝试使用GBK重新解压",tempFile);
zipFile.setCharset(Charset.forName("GBK"));
}else{
zipFile.setCharset(StandardCharsets.UTF_8);
}
for (FileHeader header : fileHeaders) {
if (!header.isDirectory()) {
String entryName = header.getFileName();
if (isValidFileType(entryName)) {
statistics.incrementValidCount();
} else {
statistics.addInvalidFile(entryName);
}
}
zipInputStream.closeEntry();
}
} finally {
// 清理临时文件
if (tempFile != null && tempFile.exists()) {
tempFile.delete();
}
}
return statistics;
}
private static Charset detectCharset(InputStream inputStream) throws IOException {
UniversalDetector detector = new UniversalDetector(null);
byte[] buf = new byte[4096];
int nread;
inputStream.read(buf);
detector.handleData(buf, 0, buf.length);
detector.dataEnd();
String encoding = detector.getDetectedCharset();
detector.reset();
if (encoding != null) {
return Charset.forName(encoding);
}
// 默认返回 UTF-8
return Charset.forName("GBK");
}
}

7
zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualAuditConfigMapper.xml

@ -0,0 +1,7 @@
<?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.dromara.productManagement.mapper.ContractualAuditConfigMapper">
</mapper>

7
zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualProductInfoMapper.xml

@ -0,0 +1,7 @@
<?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.dromara.productManagement.mapper.ContractualProductInfoMapper">
</mapper>

1
zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksMapper.xml

@ -28,6 +28,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
create_by,
task_industry,
task_region,
problem_point,
create_time as group_create_time,
CASE
WHEN (SUM(CASE WHEN progress_status IN ('SUCCESS', 'FAILURE') THEN 1 ELSE 0 END) * 100.0) / COUNT(*) = 100

4
zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/JyjContractualTaskBatchMapper.xml

@ -10,7 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
b.document_name AS document_name,
b.batch_name AS batch_name,
b.total_contracts AS total_contracts,
MAX(fr.create_time) as latest_time,
MAX(b.create_time) as latest_time,
COUNT(CASE WHEN fr.result_type = 'reviewSuccess' THEN 1 END) AS pass_count,
COUNT(CASE WHEN fr.result_type = 'reviewFail' THEN 1 END) AS reject_count,
COUNT(CASE WHEN fr.result_type = 'notReviewable' THEN 1 END) AS irrelevant_count,
@ -40,7 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
GROUP BY
b.id,b.document_name, b.batch_name, b.total_contracts
b.id,b.document_name, b.batch_name, b.total_contracts, b.create_time
<if test="bo.progressStatus != null and bo.progressStatus != ''">
having
progress_status=#{bo.progressStatus}

9
zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementContractualNormalMapper.xml

@ -0,0 +1,9 @@
<?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.dromara.productManagement.mapper.RequirementContractualNormalMapper">
<delete id="deleteReal">
DELETE FROM requirement_contractual_normal ${ew.getCustomSqlSegment}
</delete>
</mapper>

9
zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementCpuosdatabaseMapper.xml

@ -0,0 +1,9 @@
<?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.dromara.productManagement.mapper.RequirementCpuosdatabaseMapper">
<delete id="deleteReal">
DELETE FROM requirement_cpuosdatabase ${ew.getCustomSqlSegment}
</delete>
</mapper>

9
zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementEntityMapper.xml

@ -0,0 +1,9 @@
<?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.dromara.productManagement.mapper.RequirementEntityMapper">
<delete id="deleteReal">
DELETE FROM requirement_entity ${ew.getCustomSqlSegment}
</delete>
</mapper>

10
zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementProductAttributeMapper.xml

@ -0,0 +1,10 @@
<?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.dromara.productManagement.mapper.RequirementProductAttributeMapper">
<delete id="deleteReal">
DELETE FROM requirement_product_attribute
${ew.getCustomSqlSegment}
</delete>
</mapper>
Loading…
Cancel
Save