diff --git a/ruoyi-admin/src/main/resources/application-dev.yml b/ruoyi-admin/src/main/resources/application-dev.yml index e938982..66ff1f6 100644 --- a/ruoyi-admin/src/main/resources/application-dev.yml +++ b/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 diff --git a/ruoyi-admin/src/main/resources/application-test.yml b/ruoyi-admin/src/main/resources/application-test.yml index e001340..5aaa6d3 100644 --- a/ruoyi-admin/src/main/resources/application-test.yml +++ b/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 diff --git a/zaojiaManagement/zaojia-productManagement/pom.xml b/zaojiaManagement/zaojia-productManagement/pom.xml index 08c8176..2ecd47d 100644 --- a/zaojiaManagement/zaojia-productManagement/pom.xml +++ b/zaojiaManagement/zaojia-productManagement/pom.xml @@ -126,6 +126,11 @@ juniversalchardet 1.0.3 + + net.lingala.zip4j + zip4j + 2.11.5 + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/common/service/BaseTaskService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/common/service/BaseTaskService.java index 9643dde..60e0e3c 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/common/service/BaseTaskService.java +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/common/service/BaseTaskService.java @@ -95,7 +95,6 @@ public abstract class BaseTaskService { // // // 验证用户任务权限 // documentTasksPermissionsService.validateUserTaskPermissions(taskType,taskNames, userId); - // 处理文件相关操作 FileProcessResult fileResult = processFile(bo.getOssId()); diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualAuditConfigController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualAuditConfigController.java new file mode 100644 index 0000000..483fab2 --- /dev/null +++ b/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 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 list = contractualAuditConfigService.queryList(bo); + ExcelUtil.exportExcel(list, "合同审核配置", ContractualAuditConfigVo.class, response); + } + + /** + * 获取合同审核配置详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:ContractualAuditConfig:query") + @GetMapping("/{id}") + public R 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 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 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 remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(contractualAuditConfigService.deleteWithValidByIds(List.of(ids), true)); + } + @GetMapping("/getRequirementTypeDict") + public R>> getRequirementTypeDict() { + return R.ok(contractualAuditConfigService.getRequirementTypeDict()); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualProductInfoController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/ContractualProductInfoController.java new file mode 100644 index 0000000..760ae7d --- /dev/null +++ b/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 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 list = contractualProductInfoService.queryList(bo); + ExcelUtil.exportExcel(list, "合同产品信息", ContractualProductInfoVo.class, response); + } + + /** + * 获取合同产品信息详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:ContractualProductInfo:query") + @GetMapping("/{id}") + public R 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 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 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 remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(contractualProductInfoService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/JyjContractualTaskBatchController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/JyjContractualTaskBatchController.java index d06a09a..47f3f72 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/JyjContractualTaskBatchController.java +++ b/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 getContractulContent(@PathVariable Long id) { + return R.ok("ok",jyjContractualTaskBatchService.getContractulContent(id)); + } } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementContractualNormalController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementContractualNormalController.java new file mode 100644 index 0000000..b922af5 --- /dev/null +++ b/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 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 list = requirementContractualNormalService.queryList(bo); + ExcelUtil.exportExcel(list, "合同常规要求", RequirementContractualNormalVo.class, response); + } + + /** + * 获取合同常规要求详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:RequirementContractualNormal:query") + @GetMapping("/{id}") + public R 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 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 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 remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(requirementContractualNormalService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementCpuosdatabaseController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementCpuosdatabaseController.java new file mode 100644 index 0000000..be2c393 --- /dev/null +++ b/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 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 list = requirementCpuosdatabaseService.queryList(bo); + ExcelUtil.exportExcel(list, "CPU,操作系统,数据库要求", RequirementCpuosdatabaseVo.class, response); + } + + /** + * 获取CPU,操作系统,数据库要求详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:RequirementCpuosdatabase:query") + @GetMapping("/{id}") + public R 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 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 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 remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(requirementCpuosdatabaseService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementEntityController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementEntityController.java new file mode 100644 index 0000000..4d556bf --- /dev/null +++ b/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 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 list = requirementEntityService.queryList(bo); + ExcelUtil.exportExcel(list, "主体要求", RequirementEntityVo.class, response); + } + + /** + * 获取主体要求详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:RequirementEntity:query") + @GetMapping("/{id}") + public R 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 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 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 remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(requirementEntityService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementProductAttributeController.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/controller/RequirementProductAttributeController.java new file mode 100644 index 0000000..e584649 --- /dev/null +++ b/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 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 list = requirementProductAttributeService.queryList(bo); + ExcelUtil.exportExcel(list, "产品属性要求", RequirementProductAttributeVo.class, response); + } + + /** + * 获取产品属性要求详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("productManagement:RequirementProductAttribute:query") + @GetMapping("/{id}") + public R 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 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 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 remove(@NotEmpty(message = "主键不能为空") + @PathVariable Long[] ids) { + return toAjax(requirementProductAttributeService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualAuditConfig.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualAuditConfig.java new file mode 100644 index 0000000..ba73e16 --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualProductInfo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualProductInfo.java new file mode 100644 index 0000000..182d308 --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualTasks.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualTasks.java index 4e5ef1f..59c459c 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/ContractualTasks.java +++ b/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; } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasks.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasks.java index 54a4fd1..b32933b 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/DocumentTasks.java +++ b/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; + + } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementContractualNormal.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementContractualNormal.java new file mode 100644 index 0000000..bffad7c --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementCpuosdatabase.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementCpuosdatabase.java new file mode 100644 index 0000000..b784d51 --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementEntity.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementEntity.java new file mode 100644 index 0000000..b3593e4 --- /dev/null +++ b/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; + + /** + * 父主体ID,0表示顶级主体 + */ + private Long parentId; + + /** + * 层级,1表示顶级 + */ + private Long level; + + /** + * 层级路径,格式如:0,1,2 + */ + private String path; + + /** + * 删除标志(0代表存在 2代表删除) + */ + @TableLogic + private String delFlag; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementProductAttribute.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/RequirementProductAttribute.java new file mode 100644 index 0000000..5451711 --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/BaseTaskBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/BaseTaskBo.java index 2f55eaa..46bf152 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/BaseTaskBo.java +++ b/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; } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualAuditConfigBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualAuditConfigBo.java new file mode 100644 index 0000000..2e44220 --- /dev/null +++ b/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 requirementCpuosdatabaseList; + + private List requirementEntityList; + private List requirementProductAttributeList; + private List requirementContractualNormalList; + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualProductInfoBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualProductInfoBo.java new file mode 100644 index 0000000..ff556c7 --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTasksBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTasksBo.java index 1b3a368..f4ba415 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/ContractualTasksBo.java +++ b/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; + // /** // * 模型所属行业 // */ diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksBo.java index 415e2e8..da85e3d 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/DocumentTasksBo.java +++ b/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; } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/JyjContractualTaskBatchBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/JyjContractualTaskBatchBo.java index 79a9ce5..d64962e 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/JyjContractualTaskBatchBo.java +++ b/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; } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementContractualNormalBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementContractualNormalBo.java new file mode 100644 index 0000000..b43e89d --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementCpuosdatabaseBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementCpuosdatabaseBo.java new file mode 100644 index 0000000..055c9d9 --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementEntityBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementEntityBo.java new file mode 100644 index 0000000..516ae2a --- /dev/null +++ b/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; + + /** + * 父主体ID,0表示顶级主体 + */ + @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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementProductAttributeBo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/bo/RequirementProductAttributeBo.java new file mode 100644 index 0000000..a78399f --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/BaseTaskVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/BaseTaskVo.java index 6d1ef47..4ac7ad4 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/BaseTaskVo.java +++ b/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; } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualAuditConfigVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualAuditConfigVo.java new file mode 100644 index 0000000..16d3e26 --- /dev/null +++ b/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 requirementCpuosdatabaseList; + + private List requirementEntityList; + private List requirementProductAttributeList; + private List requirementContractualNormalList; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualProductInfoVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualProductInfoVo.java new file mode 100644 index 0000000..241eb9f --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTasksVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTasksVo.java index df63527..f7e871e 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/ContractualTasksVo.java +++ b/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; + } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksVo.java index e148c00..40d89cb 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/DocumentTasksVo.java +++ b/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; + + } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/JyjContractualTaskBatchVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/JyjContractualTaskBatchVo.java index e71411d..e83e2b8 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/JyjContractualTaskBatchVo.java +++ b/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; - } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementContractualNormalVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementContractualNormalVo.java new file mode 100644 index 0000000..1ad9a41 --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementCpuosdatabaseVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementCpuosdatabaseVo.java new file mode 100644 index 0000000..ebf621b --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementEntityVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementEntityVo.java new file mode 100644 index 0000000..6dba09b --- /dev/null +++ b/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; + + /** + * 父主体ID,0表示顶级主体 + */ + @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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementProductAttributeVo.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/domain/vo/RequirementProductAttributeVo.java new file mode 100644 index 0000000..25f1d21 --- /dev/null +++ b/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; + + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualAuditConfigMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualAuditConfigMapper.java new file mode 100644 index 0000000..dd00cb8 --- /dev/null +++ b/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 { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualProductInfoMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/ContractualProductInfoMapper.java new file mode 100644 index 0000000..de59b01 --- /dev/null +++ b/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 { + +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementContractualNormalMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementContractualNormalMapper.java new file mode 100644 index 0000000..3fef6b5 --- /dev/null +++ b/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 { + void deleteReal(@Param(Constants.WRAPPER) Wrapper wrapper); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementCpuosdatabaseMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementCpuosdatabaseMapper.java new file mode 100644 index 0000000..6d24a1f --- /dev/null +++ b/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 { + void deleteReal(@Param(Constants.WRAPPER) Wrapper wrapper); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementEntityMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementEntityMapper.java new file mode 100644 index 0000000..2aade8c --- /dev/null +++ b/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 { + void deleteReal(@Param(Constants.WRAPPER) Wrapper wrapper); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementProductAttributeMapper.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/mapper/RequirementProductAttributeMapper.java new file mode 100644 index 0000000..0ffa0bd --- /dev/null +++ b/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 { + + void deleteReal(@Param(Constants.WRAPPER) Wrapper wrapper); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualAuditConfigService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualAuditConfigService.java new file mode 100644 index 0000000..248482d --- /dev/null +++ b/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 queryPageList(ContractualAuditConfigBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的合同审核配置列表 + * + * @param bo 查询条件 + * @return 合同审核配置列表 + */ + List 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 ids, Boolean isValid); + + List> getRequirementTypeDict(); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualProductInfoService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IContractualProductInfoService.java new file mode 100644 index 0000000..2dbc8a1 --- /dev/null +++ b/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 queryPageList(ContractualProductInfoBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的合同产品信息列表 + * + * @param bo 查询条件 + * @return 合同产品信息列表 + */ + List 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 ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IJyjContractualTaskBatchService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IJyjContractualTaskBatchService.java index ffa4fc7..747f265 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IJyjContractualTaskBatchService.java +++ b/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 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); } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementContractualNormalService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementContractualNormalService.java new file mode 100644 index 0000000..9d9a5cc --- /dev/null +++ b/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 queryPageList(RequirementContractualNormalBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的合同常规要求列表 + * + * @param bo 查询条件 + * @return 合同常规要求列表 + */ + List 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 ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementCpuosdatabaseService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementCpuosdatabaseService.java new file mode 100644 index 0000000..b9e74d5 --- /dev/null +++ b/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 queryPageList(RequirementCpuosdatabaseBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的CPU,操作系统,数据库要求列表 + * + * @param bo 查询条件 + * @return CPU,操作系统,数据库要求列表 + */ + List 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 ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementEntityService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementEntityService.java new file mode 100644 index 0000000..2b773c1 --- /dev/null +++ b/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 queryPageList(RequirementEntityBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的主体要求列表 + * + * @param bo 查询条件 + * @return 主体要求列表 + */ + List 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 ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementProductAttributeService.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/IRequirementProductAttributeService.java new file mode 100644 index 0000000..ac89fc7 --- /dev/null +++ b/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 queryPageList(RequirementProductAttributeBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的产品属性要求列表 + * + * @param bo 查询条件 + * @return 产品属性要求列表 + */ + List 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 ids, Boolean isValid); +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualAuditConfigServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualAuditConfigServiceImpl.java new file mode 100644 index 0000000..b41e86a --- /dev/null +++ b/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 lqw = Wrappers.lambdaQuery(); + lqw.eq(RequirementCpuosdatabase::getConfigId, id); + List requirementCpuosdatabaseList = requirementCpuosdatabaseMapper.selectList(lqw); + contractualAuditConfigVo.setRequirementCpuosdatabaseList(requirementCpuosdatabaseList); + } else if (auditElement.equals("entity")) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(RequirementEntity::getConfigId, id); + List requirementEntityList = requirementEntityMapper.selectList(lqw); + contractualAuditConfigVo.setRequirementEntityList(requirementEntityList); + } else if (auditElement.equals("productAttribute")) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(RequirementProductAttribute::getConfigId, id); + List requirementProductAttributeList = requirementProductAttributeMapper.selectList(lqw); + contractualAuditConfigVo.setRequirementProductAttributeList(requirementProductAttributeList); + } else if (auditElement.equals("contractualNormal")) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(RequirementContractualNormal::getConfigId, id); + List requirementContractualNormalList = requirementContractualNormalMapper.selectList(lqw); + contractualAuditConfigVo.setRequirementContractualNormalList(requirementContractualNormalList); + } + + } + return contractualAuditConfigVo; + } + + /** + * 分页查询合同审核配置列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 合同审核配置分页列表 + */ + @Override + public TableDataInfo queryPageList(ContractualAuditConfigBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的合同审核配置列表 + * + * @param bo 查询条件 + * @return 合同审核配置列表 + */ + @Override + public List queryList(ContractualAuditConfigBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ContractualAuditConfigBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 requirementCpuosdatabaseList = bo.getRequirementCpuosdatabaseList(); + requirementCpuosdatabaseList.forEach(requirementCpuosdatabase -> { + requirementCpuosdatabase.setConfigId(add.getId()); + requirementCpuosdatabase.setType(auditElement); + requirementCpuosdatabaseMapper.insert(requirementCpuosdatabase); + }); + } else if (auditElement.equals("entity")) { + List requirementEntityList = bo.getRequirementEntityList(); + requirementEntityList.forEach(requirementEntity -> { + requirementEntity.setConfigId(add.getId()); + requirementEntityMapper.insert(requirementEntity); + }); + } else if (auditElement.equals("productAttribute")) { + List requirementProductAttributeList = bo.getRequirementProductAttributeList(); + requirementProductAttributeList.forEach(requirementProductAttribute -> { + requirementProductAttribute.setConfigId(add.getId()); + requirementProductAttributeMapper.insert(requirementProductAttribute); + }); + } else if (auditElement.equals("contractualNormal")) { + List 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 requirementCpuosdatabaseList = bo.getRequirementCpuosdatabaseList(); + // 根据configId删除原有数据 + LambdaQueryWrapper 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 requirementEntityList = bo.getRequirementEntityList(); + // 根据configId删除原有数据 + LambdaQueryWrapper 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 requirementProductAttributeList = bo.getRequirementProductAttributeList(); + // 根据configId删除原有数据 + LambdaQueryWrapper 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 requirementContractualNormalList = bo.getRequirementContractualNormalList(); + // 根据configId删除原有数据 + LambdaQueryWrapper 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 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + // 删除合同审核配置信息 + LambdaQueryWrapper lqw1 = Wrappers.lambdaQuery(); + lqw1.in(RequirementCpuosdatabase::getConfigId, ids); + requirementCpuosdatabaseMapper.deleteReal(lqw1); + LambdaQueryWrapper lqw2 = Wrappers.lambdaQuery(); + lqw2.in(RequirementEntity::getConfigId, ids); + requirementEntityMapper.deleteReal(lqw2); + LambdaQueryWrapper lqw3 = Wrappers.lambdaQuery(); + lqw3.in(RequirementProductAttribute::getConfigId, ids); + requirementProductAttributeMapper.deleteReal(lqw3); + LambdaQueryWrapper lqw4 = Wrappers.lambdaQuery(); + lqw4.in(RequirementContractualNormal::getConfigId, ids); + requirementContractualNormalMapper.deleteReal(lqw4); + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public List> getRequirementTypeDict() { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + // 使用sql查询requirementType去重后的结果 + lqw.select(ContractualAuditConfig::getRequirementType) + .groupBy(ContractualAuditConfig::getRequirementType); + + List list = baseMapper.selectList(lqw); + // 提取去重后的requirementType列表 + List requirementTypes = list.stream() + .map(ContractualAuditConfig::getRequirementType) + .collect(Collectors.toList()); + + // 封装成map + List> result = new ArrayList<>(); + for (String requirementType : requirementTypes) { + HashMap map = new HashMap<>(); + map.put("value", requirementType); + map.put("label", requirementType); + result.add(map); + } + return result; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualProductInfoServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualProductInfoServiceImpl.java new file mode 100644 index 0000000..f6e55d2 --- /dev/null +++ b/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 queryPageList(ContractualProductInfoBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的合同产品信息列表 + * + * @param bo 查询条件 + * @return 合同产品信息列表 + */ + @Override + public List queryList(ContractualProductInfoBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(ContractualProductInfoBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTasksServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTasksServiceImpl.java index 100e350..e8ba6c0 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTasksServiceImpl.java +++ b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/ContractualTasksServiceImpl.java @@ -125,6 +125,7 @@ public class ContractualTasksServiceImpl extends BaseTaskService wrapper = new LambdaQueryWrapper<>(); wrapper.eq(DocumentTasks::getGroupId, id); List 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 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 wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ContractualInfo::getTaskId, id); + ContractualInfo contractualInfo = contractualInfoMapper.selectOne(wrapper); + String text = contractualInfo.getText(); + return text; + } } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementContractualNormalServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementContractualNormalServiceImpl.java new file mode 100644 index 0000000..c56c731 --- /dev/null +++ b/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 queryPageList(RequirementContractualNormalBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的合同常规要求列表 + * + * @param bo 查询条件 + * @return 合同常规要求列表 + */ + @Override + public List queryList(RequirementContractualNormalBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(RequirementContractualNormalBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementCpuosdatabaseServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementCpuosdatabaseServiceImpl.java new file mode 100644 index 0000000..8ae12ef --- /dev/null +++ b/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 queryPageList(RequirementCpuosdatabaseBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的CPU,操作系统,数据库要求列表 + * + * @param bo 查询条件 + * @return CPU,操作系统,数据库要求列表 + */ + @Override + public List queryList(RequirementCpuosdatabaseBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(RequirementCpuosdatabaseBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementEntityServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementEntityServiceImpl.java new file mode 100644 index 0000000..c665f9d --- /dev/null +++ b/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 queryPageList(RequirementEntityBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的主体要求列表 + * + * @param bo 查询条件 + * @return 主体要求列表 + */ + @Override + public List queryList(RequirementEntityBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(RequirementEntityBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementProductAttributeServiceImpl.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/service/impl/RequirementProductAttributeServiceImpl.java new file mode 100644 index 0000000..613997e --- /dev/null +++ b/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 queryPageList(RequirementProductAttributeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的产品属性要求列表 + * + * @param bo 查询条件 + * @return 产品属性要求列表 + */ + @Override + public List queryList(RequirementProductAttributeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(RequirementProductAttributeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper 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 ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/utils/CompressedFileUtils.java b/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/utils/CompressedFileUtils.java index d42eee5..79240fd 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/java/org/dromara/productManagement/utils/CompressedFileUtils.java +++ b/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 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 validFiles; +// private final List warnings; +// +// public FileValidationResult() { +// this.validFiles = new ArrayList<>(); +// this.warnings = new ArrayList<>(); +// } +// +// public List getValidFiles() { +// return validFiles; +// } +// +// public List 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 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 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 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 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 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 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 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 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 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"); } } diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualAuditConfigMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualAuditConfigMapper.xml new file mode 100644 index 0000000..9d4f5e4 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualAuditConfigMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualProductInfoMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualProductInfoMapper.xml new file mode 100644 index 0000000..78f51b5 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/ContractualProductInfoMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksMapper.xml index f944b79..b366567 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/DocumentTasksMapper.xml +++ b/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 diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/JyjContractualTaskBatchMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/JyjContractualTaskBatchMapper.xml index c4e5e9d..66a5063 100644 --- a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/JyjContractualTaskBatchMapper.xml +++ b/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" 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 having progress_status=#{bo.progressStatus} diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementContractualNormalMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementContractualNormalMapper.xml new file mode 100644 index 0000000..b972b6d --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementContractualNormalMapper.xml @@ -0,0 +1,9 @@ + + + + + DELETE FROM requirement_contractual_normal ${ew.getCustomSqlSegment} + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementCpuosdatabaseMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementCpuosdatabaseMapper.xml new file mode 100644 index 0000000..7112959 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementCpuosdatabaseMapper.xml @@ -0,0 +1,9 @@ + + + + + DELETE FROM requirement_cpuosdatabase ${ew.getCustomSqlSegment} + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementEntityMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementEntityMapper.xml new file mode 100644 index 0000000..ad46042 --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementEntityMapper.xml @@ -0,0 +1,9 @@ + + + + + DELETE FROM requirement_entity ${ew.getCustomSqlSegment} + + diff --git a/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementProductAttributeMapper.xml b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementProductAttributeMapper.xml new file mode 100644 index 0000000..5375b5a --- /dev/null +++ b/zaojiaManagement/zaojia-productManagement/src/main/resources/mapper/productManagement/RequirementProductAttributeMapper.xml @@ -0,0 +1,10 @@ + + + + + DELETE FROM requirement_product_attribute + ${ew.getCustomSqlSegment} + +