diff --git a/pom.xml b/pom.xml index 33ae8423578dd209b0f3cb001da96e6c8aeaa0ca..e5181f034978bf6e78f9cfd73abd60b3a97cec13 100644 --- a/pom.xml +++ b/pom.xml @@ -36,8 +36,12 @@ - + + com.baomidou + dynamic-datasource-spring-boot-starter + 2.5.4 + org.springframework.boot spring-boot-starter-web diff --git a/src/main/java/com/pms/ocp/OcpApplication.java b/src/main/java/com/pms/ocp/OcpApplication.java index 9a451179700094b00b938e4cd1b280addef917b3..db8de03c6f9ca8240e698dea84eb35716de49e3a 100644 --- a/src/main/java/com/pms/ocp/OcpApplication.java +++ b/src/main/java/com/pms/ocp/OcpApplication.java @@ -18,7 +18,7 @@ import java.util.TimeZone; * @Date: 2022/2/21 15:48 * @Description:启动类 */ - +//com.pms.ocp.mapper @SpringBootApplication @MapperScan(basePackages = {"com.pms.ocp.mapper"}) @ConfigurationPropertiesScan diff --git a/src/main/java/com/pms/ocp/controller/ModelAcceptController.java b/src/main/java/com/pms/ocp/controller/ModelAcceptController.java new file mode 100644 index 0000000000000000000000000000000000000000..94747d6b0ff37a33dd1d5affdbe817ad73460d74 --- /dev/null +++ b/src/main/java/com/pms/ocp/controller/ModelAcceptController.java @@ -0,0 +1,88 @@ +package com.pms.ocp.controller; + +import com.pms.ocp.model.entity.Model; +import com.pms.ocp.model.entity.ModelPropInfo; +import com.pms.ocp.model.vo.ModelAcceptVo; +import com.pms.ocp.model.vo.ResponseVO; +import com.pms.ocp.service.ModelAcceptService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/7 15:56 + */ +@Slf4j +@RequestMapping("/modelAccept") +@RestController +@Api(tags = "模型管控-模型验收") +public class ModelAcceptController { + + @Autowired + private ModelAcceptService modelAcceptService; + + /** + * 模型验收列表 + * @author huxiuwu + * @date 2022/4/7 + * @return pms.ocp.model.vo.ResponseVO + **/ + @ApiOperation("模型验收列表") + @GetMapping("/modelAcceptList") + public ResponseVO modelAuditList() { + return modelAcceptService.modelAcceptList(); + } + + /** + * 模型验收详情 + * @author huxiuwu + * @date 2022/4/8 + * @param modelCode 模型编码 + * @param requirementCode 需求编码 + * @return pms.ocp.model.vo.ResponseVO + **/ + @ApiOperation("模型验收详情") + @GetMapping("/modelAuditDetail") + public ResponseVO modelAuditDetail(@ApiParam(value = "需求编码") @RequestParam(value = "modelCode") String modelCode, + @ApiParam(value = "模型编码") @RequestParam(value = "requirementCode") String requirementCode) { + return modelAcceptService.modelAuditDetail(modelCode,requirementCode); + } + + /** + * 模型信息对比 + * @author huxiuwu + * @date 2022/4/11 + * @param requirementCode 需求编码 + * @param modelCode 模型编码 + * @param tableName 表名称 + * @return ResponseVO> + **/ + @ApiOperation("模型信息对比") + @GetMapping("/modelDetailCompare") + public ResponseVO> modelDetailCompare(@ApiParam(value = "需求编码") @RequestParam(value = "requirementCode") String requirementCode, + @ApiParam(value = "模型编码") @RequestParam(value = "modelCode") String modelCode, + @ApiParam(value = "表名称") @RequestParam(value = "tableName") String tableName) { + return modelAcceptService.modelDetailCompare(requirementCode,modelCode,tableName); + } + + /** + * + * @author huxiuwu + * @date 2022/4/11 + * @param model 模型数据 + * @return ResponseVO> + **/ + @ApiOperation("验收通过") + @PostMapping("/modelAcceptPass") + public ResponseVO> modelAcceptPass(@RequestBody Model model) { + return modelAcceptService.modelAcceptPass(model); + } + +} diff --git a/src/main/java/com/pms/ocp/controller/ModelCheckController.java b/src/main/java/com/pms/ocp/controller/ModelCheckController.java new file mode 100644 index 0000000000000000000000000000000000000000..a4c769675f9c86d79cb348749cbc43e79f133ac9 --- /dev/null +++ b/src/main/java/com/pms/ocp/controller/ModelCheckController.java @@ -0,0 +1,77 @@ +package com.pms.ocp.controller; + +import com.github.pagehelper.PageInfo; +import com.pms.ocp.model.dto.ModelAuditDto; +import com.pms.ocp.model.entity.ModelPropInfo; +import com.pms.ocp.model.vo.ModelCheckVo; +import com.pms.ocp.model.vo.ResponseVO; +import com.pms.ocp.service.ModelCheckService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/6 10:07 + * 模型审核 + */ +@Slf4j +@RequestMapping("/modelAudit") +@RestController +@Api(tags = "模型管控-模型审核") +public class ModelCheckController { + + @Autowired + private ModelCheckService modelCheckService; + + /** + * 模型审核列表 + * @author huxiuwu + * @date 2022/4/6 + * @param currentPage 当前页 + * @param pageSize 每页数量 + * @param searchCondition 搜索条件 + * @return ResponseVO> + **/ + @ApiOperation("模型审核列表") + @GetMapping("/modelAuditList") + public ResponseVO> modelAuditList(@ApiParam(value = "当前页") @RequestParam(value = "currentPage", required = false,defaultValue = "1") Integer currentPage, + @ApiParam(value = "每页数量") @RequestParam(value = "pageSize", required = false,defaultValue = "10") Integer pageSize, + @ApiParam(value = "搜索条件") @RequestParam(value = "searchCondition", required = false) String searchCondition) { + + return modelCheckService.modelAuditList(currentPage,pageSize,searchCondition); + } + + /** + * 修改审核状态 + * @author huxiuwu + * @date 2022/4/6 + * @param ocp + * @return pms.ocp.model.vo.ResponseVO + **/ + @ApiOperation("修改审核状态") + @PostMapping("/updateAuditType") + public ResponseVO updateAuditType (@RequestBody ModelAuditDto ocp){ + return modelCheckService.updateAuditType(ocp); + } + + /** + * 模型关系表 + * @author huxiuwu + * @date 2022/4/7 + * @param modelCode + * @return pms.ocp.model.vo.ResponseVO + **/ + @ApiOperation("模型关系") + @GetMapping("/modelRelation") + public ResponseVO> modelRelation (@ApiParam(value = "模型编码") @RequestParam(value = "modelCode")String modelCode){ + return modelCheckService.modelRelation(modelCode); + } + +} diff --git a/src/main/java/com/pms/ocp/controller/ModelCheckRuleController.java b/src/main/java/com/pms/ocp/controller/ModelCheckRuleController.java new file mode 100644 index 0000000000000000000000000000000000000000..d69b77fe7d7f0da26e2153b71bb95cdbbd52952f --- /dev/null +++ b/src/main/java/com/pms/ocp/controller/ModelCheckRuleController.java @@ -0,0 +1,9 @@ +package com.pms.ocp.controller; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/11 17:15 + */ +public class ModelCheckRuleController { +} diff --git a/src/main/java/com/pms/ocp/controller/ModelClassifyController.java b/src/main/java/com/pms/ocp/controller/ModelClassifyController.java index c6687e56e80061988757507fbf1c54366483b719..b1563b3cf25df3b6a5e1830b7f6077d7ce16f5fc 100644 --- a/src/main/java/com/pms/ocp/controller/ModelClassifyController.java +++ b/src/main/java/com/pms/ocp/controller/ModelClassifyController.java @@ -51,9 +51,10 @@ public class ModelClassifyController { public ResponseVO subclassDetailsList(@RequestParam int currentPage, @RequestParam int pageSize, @RequestParam(required = false,defaultValue = "") String parentGroupCode, - @RequestParam(required = false,defaultValue = "") String subclassGroupName + @RequestParam(required = false,defaultValue = "") String subclassGroupName, + @RequestParam(required = false) boolean isTop ) { - return modelClassifyService.subclassDetailsList(currentPage, pageSize, parentGroupCode, subclassGroupName); + return modelClassifyService.subclassDetailsList(currentPage, pageSize, parentGroupCode, subclassGroupName,isTop); } /** diff --git a/src/main/java/com/pms/ocp/mapper/MiddleGroundModelMapper.java b/src/main/java/com/pms/ocp/mapper/MiddleGroundModelMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..7f87e11973d935747f0936f2e0b94d71b954006d --- /dev/null +++ b/src/main/java/com/pms/ocp/mapper/MiddleGroundModelMapper.java @@ -0,0 +1,20 @@ +package com.pms.ocp.mapper; + +import com.pms.ocp.model.entity.ModelPropInfo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/9 14:46 + */ +@Mapper +public interface MiddleGroundModelMapper { + + List selectModels(@Param("modelName") String modelName); + + ModelPropInfo selectMiddleGroundModeByName(@Param("modelName") String modelName,@Param("schemaName")String schemaName); +} diff --git a/src/main/java/com/pms/ocp/mapper/ModelAcceptMapper.java b/src/main/java/com/pms/ocp/mapper/ModelAcceptMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..6cf322916f382c9595feb0b26c43cdaf0a4b94e0 --- /dev/null +++ b/src/main/java/com/pms/ocp/mapper/ModelAcceptMapper.java @@ -0,0 +1,39 @@ +package com.pms.ocp.mapper; + +import com.pms.ocp.model.entity.Model; +import com.pms.ocp.model.entity.PropInfo; +import com.pms.ocp.model.vo.ModelAcceptListVo; +import com.pms.ocp.model.vo.ModelAcceptVo; +import com.pms.ocp.model.vo.ModelCheckVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/7 16:14 + */ +@Mapper +public interface ModelAcceptMapper { + List modelAcceptList(); + + ModelAcceptVo modelAuditDetail(@Param("requirementCode") String requirementCode); + + List selectModelList(); + + List relationModels(@Param("modelCode") String modelCode); + + List selectPropList(String modelCode); + + boolean deleteModelVersion(Model model); + + boolean deletePropVersion(Model model); + + boolean deleteRequirementVersion(Model model); + + boolean deleteAcceptVersion(Model model); + + boolean deleteModelRelationProp(Model model); +} diff --git a/src/main/java/com/pms/ocp/mapper/ModelCheckMapper.java b/src/main/java/com/pms/ocp/mapper/ModelCheckMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..58b5c831645536d949a88194a5363903c140da32 --- /dev/null +++ b/src/main/java/com/pms/ocp/mapper/ModelCheckMapper.java @@ -0,0 +1,34 @@ +package com.pms.ocp.mapper; + +import com.pms.ocp.model.dto.ModelAuditDto; +import com.pms.ocp.model.dto.OcpModelRequirementAcceptDto; +import com.pms.ocp.model.entity.ModelPropInfo; +import com.pms.ocp.model.vo.ModelCheckVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/6 10:13 + */ +@Mapper +public interface ModelCheckMapper { + + List modelAuditList(@Param("searchCondition") String searchCondition); + + List selectCompanyList(); + + boolean updateAuditState(ModelAuditDto ocp); + + boolean saveAccept(OcpModelRequirementAcceptDto ocp); + + List selectModelOwnerProp(); + + List selectModelCodeList(@Param("modelCode") String modelCode); + + void deleteByRequirementCode(ModelAuditDto ocp); + +} diff --git a/src/main/java/com/pms/ocp/model/dto/ModelAuditDto.java b/src/main/java/com/pms/ocp/model/dto/ModelAuditDto.java new file mode 100644 index 0000000000000000000000000000000000000000..de4b6f138005e5460cc8185ad39df8bc9a5581cd --- /dev/null +++ b/src/main/java/com/pms/ocp/model/dto/ModelAuditDto.java @@ -0,0 +1,26 @@ +package com.pms.ocp.model.dto; + +import lombok.Data; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/6 17:50 + */ +@Data +public class ModelAuditDto { + /** + * 审核状态 + */ + private Integer auditState; + + /** + * 模型编码 + */ + private String modelCode; + + /** + * 需求编号 + */ + private String requirementCode; +} diff --git a/src/main/java/com/pms/ocp/model/dto/OcpModelRequirementAcceptDto.java b/src/main/java/com/pms/ocp/model/dto/OcpModelRequirementAcceptDto.java new file mode 100644 index 0000000000000000000000000000000000000000..8d7d6d3c41e03ad4b03d80189b0cd72a82cf6069 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/dto/OcpModelRequirementAcceptDto.java @@ -0,0 +1,79 @@ +package com.pms.ocp.model.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 模型需求验收表(OcpModelRequirementAcceptDto)实体类 + * + * @author huxiuwu + * @since 2022-04-06 17:18:51 + */ +@Data +public class OcpModelRequirementAcceptDto implements Serializable { + private static final long serialVersionUID = -44873798104620306L; + + /** + * 主键  + */ + @ApiModelProperty(value = "主键") + private String objId; + /** + * 需求编码  + */ + @ApiModelProperty(value = "需求编码 ") + private String requirementCode; + /** + * 服务编码 + */ + @ApiModelProperty(value = "服务编码") + private String apiCode; + /** + * 验收状态0:未验收 1:验收通过 2:验收拒绝 + */ + @ApiModelProperty(value = "验收状态0:未验收 1:验收通过 2:验收拒绝") + private Integer acceptStats; + /** + * 验收单位  + */ + @ApiModelProperty(value = "验收单位") + private String acceptCompanyCode; + /** + * 验收部门  + */ + @ApiModelProperty(value = "验收部门") + private String acceptDepartment; + /** + * 验收人  + */ + @ApiModelProperty(value = "验收人") + private String acceptUserId; + /** + * 验收人姓名  + */ + @ApiModelProperty(value = "验收人姓名") + private String acceptUserName; + /** + * 验收时间  + */ + @ApiModelProperty(value = "验收时间 ") + private Date acceptCtime; + /** + * 修改时间  + */ + @ApiModelProperty(value = "修改时间") + private Date acceptMtime; + /** + * 是否删除0:否 1:是 + */ + @ApiModelProperty(value = "是否删除0:否 1:是") + private Integer isDelete; + +} + + + + diff --git a/src/main/java/com/pms/ocp/model/entity/Model.java b/src/main/java/com/pms/ocp/model/entity/Model.java index 5296b63672605172368cfb312f9e18a34bc4b23e..33f7e52c7c917bebb1dbf539645923415711f47e 100644 --- a/src/main/java/com/pms/ocp/model/entity/Model.java +++ b/src/main/java/com/pms/ocp/model/entity/Model.java @@ -132,6 +132,12 @@ public class Model { * 建设厂商 */ private String apiUnit; + + /** + * 需求编码 + */ + @TableField(exist = false) + private String requirementCode; } // create table ocp_model_base diff --git a/src/main/java/com/pms/ocp/model/entity/ModelPropInfo.java b/src/main/java/com/pms/ocp/model/entity/ModelPropInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..72961e70044883cfb99232629a0f08db075a28d1 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/entity/ModelPropInfo.java @@ -0,0 +1,32 @@ +package com.pms.ocp.model.entity; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import lombok.Data; + +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/7 11:13 + */ +@Data +public class ModelPropInfo { + /** + * 模型名称 + */ + private String modelName; + /** + * 模型名称英文 + */ + private String modelTable; + /** + * 模型编码 + */ + @JsonIgnore + private String modelCode; + /** + * 字段list + */ + private List propList; +} diff --git a/src/main/java/com/pms/ocp/model/entity/PropInfo.java b/src/main/java/com/pms/ocp/model/entity/PropInfo.java new file mode 100644 index 0000000000000000000000000000000000000000..03b4997641272fc300012e8cde479a771c08d185 --- /dev/null +++ b/src/main/java/com/pms/ocp/model/entity/PropInfo.java @@ -0,0 +1,31 @@ +package com.pms.ocp.model.entity; + +import lombok.Data; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/7 11:18 + */ +@Data +public class PropInfo { + /** + * 字段名称 + */ + private String propName; + + /** + * 字段类型 + */ + private String propType; + + /** + * 数字长度 + */ + private Integer propLength; + + /** + * 是否相同 + */ + private boolean isSame; +} diff --git a/src/main/java/com/pms/ocp/model/vo/ModelAcceptListVo.java b/src/main/java/com/pms/ocp/model/vo/ModelAcceptListVo.java new file mode 100644 index 0000000000000000000000000000000000000000..19b813ef7b1bf5f0cc33f837e4aeebafc9e8e98c --- /dev/null +++ b/src/main/java/com/pms/ocp/model/vo/ModelAcceptListVo.java @@ -0,0 +1,17 @@ +package com.pms.ocp.model.vo; + +import lombok.Data; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/8 11:19 + */ +@Data +public class ModelAcceptListVo { + private String modelCode; + private String modelName; + private String requirementCode; + private String tableName; + +} diff --git a/src/main/java/com/pms/ocp/model/vo/ModelAcceptVo.java b/src/main/java/com/pms/ocp/model/vo/ModelAcceptVo.java new file mode 100644 index 0000000000000000000000000000000000000000..b1a8b41a07f4a1409a15c919a0e7e4629051975d --- /dev/null +++ b/src/main/java/com/pms/ocp/model/vo/ModelAcceptVo.java @@ -0,0 +1,93 @@ +package com.pms.ocp.model.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/8 9:23 + */ +@Data +public class ModelAcceptVo { + + /** + * 需求编码 + */ + @ApiModelProperty(value = "需求编码") + private String requirementCode; + + /** + *提交单位 + */ + @ApiModelProperty(value = "提交单位") + private String submitCompanyName; + + /** + * 提交人 + */ + @ApiModelProperty(value = "提交人") + private String submitUser; + + /** + * 提交人 + */ + @ApiModelProperty(value = "提交人") + private String modelGroupName; + /** + * 提交时间 + */ + @ApiModelProperty(value = "提交时间") + private Date submitTime; + + /** + *模型名称 + */ + @ApiModelProperty(value = "模型名称") + private String modelName; + + /** + * 所属资源 + */ + @ApiModelProperty(value = "所属资源") + private String belongResource; + + /** + * 关联设备 + */ + @ApiModelProperty(value = "所属资源") + private List RelationModels; + + /** + * 需求描述 + */ + @ApiModelProperty(value = "所属资源") + private String requirementDesc; + + /** + * 审核状态 + */ + @ApiModelProperty(value = "审核状态") + private Integer auditState; + + /** + * 审核人姓名 + */ + @ApiModelProperty(value = "审核人姓名") + private String auditUserName; + + /** + * 审核时间 + */ + @ApiModelProperty(value = "审核时间") + private Date auditTime; + + /** + * 审核意见 + */ + @ApiModelProperty(value = "审核意见") + private String auditOpinion; +} diff --git a/src/main/java/com/pms/ocp/model/vo/ModelAuditVO.java b/src/main/java/com/pms/ocp/model/vo/ModelAuditVO.java index 8b1c4c938f3662fdcfc216a6447e1210cdc84054..acd35fc05e2319e4418e863b4a8dc6a4d091baa0 100644 --- a/src/main/java/com/pms/ocp/model/vo/ModelAuditVO.java +++ b/src/main/java/com/pms/ocp/model/vo/ModelAuditVO.java @@ -2,7 +2,6 @@ package com.pms.ocp.model.vo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -29,7 +28,7 @@ public class ModelAuditVO { /** * 模型编码 */ - @ApiModelProperty(value = "模型事记编号") + @ApiModelProperty(value = "模型编码") private int modelCode; /** diff --git a/src/main/java/com/pms/ocp/model/vo/ModelCheckVo.java b/src/main/java/com/pms/ocp/model/vo/ModelCheckVo.java new file mode 100644 index 0000000000000000000000000000000000000000..0cf9d290c2942e315749912bbc7db24b8bc5a33e --- /dev/null +++ b/src/main/java/com/pms/ocp/model/vo/ModelCheckVo.java @@ -0,0 +1,86 @@ +package com.pms.ocp.model.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * 模型审核vo + * @author huxiuwu + * @version 1.0 + * @date 2022/4/6 11:02 + */ +@Data +public class ModelCheckVo { + + /** + * 模型名称 + */ + @ApiModelProperty(value = "模型名称") + private String modelName; + + /** + * 模型编码 + */ + @ApiModelProperty(value = "模型编码") + private String modelCode; + /** + * 所属专业 + */ + @ApiModelProperty(value = "所属专业") + private String belongMajor; + + /** + * 表名称 + */ + @ApiModelProperty(value = "表名称") + private String tableName; + + /** + * 流程类型 + */ + @ApiModelProperty(value = "流程类型") + private String flowState; + + /** + * 申请单位名称 + */ + @ApiModelProperty(value = "申请单位名称") + private String proposerCompanyName; + + /** + * 申请单位编码 + */ + @ApiModelProperty(value = "申请单位编码") + private String proposerCompanyCode; + /** + * 需求审核状态 + */ + @ApiModelProperty(value = "需求审核状态") + private Integer demandAuditState; + + /** + * 审核意见 + */ + @ApiModelProperty(value = "审核意见") + private String auditOpinion; + + /** + * 审核人姓名 + */ + @ApiModelProperty(value = "审核人姓名") + private String auditName; + + /** + * 审核时间 + */ + @ApiModelProperty(value = "审核时间") + private Date auditTime; + + /** + * 需求编码 + */ + @ApiModelProperty(value = "审核时间") + private String requirementCode; +} diff --git a/src/main/java/com/pms/ocp/service/MiddleGroundModelService.java b/src/main/java/com/pms/ocp/service/MiddleGroundModelService.java new file mode 100644 index 0000000000000000000000000000000000000000..81dc1421c9bfc9c7d2872620b93bf19b90ef5d07 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/MiddleGroundModelService.java @@ -0,0 +1,13 @@ +package com.pms.ocp.service; + +import com.pms.ocp.model.entity.ModelPropInfo; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/9 14:39 + */ +public interface MiddleGroundModelService { + + ModelPropInfo selectMiddleGroundModeByName(String ModelName); +} diff --git a/src/main/java/com/pms/ocp/service/ModelAcceptService.java b/src/main/java/com/pms/ocp/service/ModelAcceptService.java new file mode 100644 index 0000000000000000000000000000000000000000..caa55e2ecba8c010b45b27f3bf7360d3f5542956 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/ModelAcceptService.java @@ -0,0 +1,23 @@ +package com.pms.ocp.service; + +import com.pms.ocp.model.entity.Model; +import com.pms.ocp.model.entity.ModelPropInfo; +import com.pms.ocp.model.vo.ModelAcceptVo; +import com.pms.ocp.model.vo.ResponseVO; + +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/7 16:12 + */ +public interface ModelAcceptService { + ResponseVO modelAcceptList(); + + ResponseVO modelAuditDetail(String modelCode, String requirementCode); + + ResponseVO> modelDetailCompare(String requirementCode, String modelCode, String tableName); + + ResponseVO> modelAcceptPass(Model model); +} diff --git a/src/main/java/com/pms/ocp/service/ModelCheckRuleService.java b/src/main/java/com/pms/ocp/service/ModelCheckRuleService.java new file mode 100644 index 0000000000000000000000000000000000000000..f5467b4505016696c11d5826cb4d958d14407ae9 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/ModelCheckRuleService.java @@ -0,0 +1,9 @@ +package com.pms.ocp.service; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/11 17:17 + */ +public interface ModelCheckRuleService { +} diff --git a/src/main/java/com/pms/ocp/service/ModelCheckService.java b/src/main/java/com/pms/ocp/service/ModelCheckService.java new file mode 100644 index 0000000000000000000000000000000000000000..59a0a594603296cb9eb2189b34de02d15352aeac --- /dev/null +++ b/src/main/java/com/pms/ocp/service/ModelCheckService.java @@ -0,0 +1,24 @@ +package com.pms.ocp.service; + +import com.github.pagehelper.PageInfo; +import com.pms.ocp.model.dto.ModelAuditDto; +import com.pms.ocp.model.entity.ModelPropInfo; +import com.pms.ocp.model.vo.ModelCheckVo; +import com.pms.ocp.model.vo.ResponseVO; + +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/6 10:09 + */ +public interface ModelCheckService { + + ResponseVO> modelAuditList(Integer currentPage, Integer pageSize, String searchCondition); + + ResponseVO updateAuditType(ModelAuditDto ocp); + + ResponseVO> modelRelation(String modelCode); + +} diff --git a/src/main/java/com/pms/ocp/service/ModelClassifyService.java b/src/main/java/com/pms/ocp/service/ModelClassifyService.java index 06d6b41b5840d440ec55e27da6269fa10ea4fe75..3c07733b2024b5d1d4eb1c01ff256cf1530bd273 100644 --- a/src/main/java/com/pms/ocp/service/ModelClassifyService.java +++ b/src/main/java/com/pms/ocp/service/ModelClassifyService.java @@ -16,7 +16,7 @@ public interface ModelClassifyService { ResponseVO insert(List list); - ResponseVO subclassDetailsList(int currentPage,int pageSize,String parentGroupCode,String subclassGroupName); + ResponseVO subclassDetailsList(int currentPage, int pageSize, String parentGroupCode, String subclassGroupName, boolean isTop); ResponseVO update(List list); diff --git a/src/main/java/com/pms/ocp/service/impl/MiddleGroundModelServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/MiddleGroundModelServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4eb3f1f401edd6bac1178dbba684c2414a7f7df3 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/impl/MiddleGroundModelServiceImpl.java @@ -0,0 +1,41 @@ +package com.pms.ocp.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.dynamic.datasource.annotation.DS; +import com.pms.ocp.mapper.MiddleGroundModelMapper; +import com.pms.ocp.model.entity.ModelPropInfo; +import com.pms.ocp.service.MiddleGroundModelService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/9 14:40 + */ +@Service +@DS("middleGround") +public class MiddleGroundModelServiceImpl implements MiddleGroundModelService { + + @Resource + private MiddleGroundModelMapper middleGroundModelMapper; + + /** + * 根据表名称查询中台表信息 + * @author huxiuwu + * @date 2022/4/9 + * @param ModelName + * @return pms.ocp.model.entity.ModelPropInfo + **/ + @Override + public ModelPropInfo selectMiddleGroundModeByName(String ModelName) { + List schemaNameList = middleGroundModelMapper.selectModels(ModelName); + if (CollectionUtil.isEmpty(schemaNameList)){ + return new ModelPropInfo(); + } + return middleGroundModelMapper.selectMiddleGroundModeByName(ModelName,schemaNameList.get(0)); + } + +} diff --git a/src/main/java/com/pms/ocp/service/impl/ModelAcceptServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelAcceptServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..b5edb4276972ce2a2227c98fc6c4d3d3abfef701 --- /dev/null +++ b/src/main/java/com/pms/ocp/service/impl/ModelAcceptServiceImpl.java @@ -0,0 +1,150 @@ +package com.pms.ocp.service.impl; + +import cn.hutool.core.collection.CollectionUtil; +import com.pms.ocp.mapper.ModelAcceptMapper; +import com.pms.ocp.mapper.ModelMapper; +import com.pms.ocp.model.entity.Model; +import com.pms.ocp.model.entity.ModelPropInfo; +import com.pms.ocp.model.entity.PropInfo; +import com.pms.ocp.model.vo.ModelAcceptListVo; +import com.pms.ocp.model.vo.ModelAcceptVo; +import com.pms.ocp.model.vo.ModelCheckVo; +import com.pms.ocp.model.vo.ResponseVO; +import com.pms.ocp.service.MiddleGroundModelService; +import com.pms.ocp.service.ModelAcceptService; +import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.LinkedList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/7 16:13 + */ +@Service +@Slf4j +public class ModelAcceptServiceImpl implements ModelAcceptService { + + @Resource + private ModelAcceptMapper modelAcceptMapper; + + @Resource + private MiddleGroundModelService middleGroundModelService; + + @Resource + private ModelMapper modelMapper; + + /** + * 模型验收列表 + * @author huxiuwu + * @date 2022/4/7 + * @return pms.ocp.model.vo.ResponseVO + **/ + @Override + public ResponseVO modelAcceptList() { + List list = modelAcceptMapper.modelAcceptList(); + return ResponseVO.ok(list); + } + + /** + * 模型验收详情 + * @author huxiuwu + * @date 2022/4/8 + * @param modelCode 模型编码 + * @param requirementCode 需求编码 + * @return pms.ocp.model.vo.ResponseVO + **/ + @Override + public ResponseVO modelAuditDetail(String modelCode, String requirementCode) { + ModelAcceptVo vo = modelAcceptMapper.modelAuditDetail(requirementCode); + //关联模型code + List relationModel = modelAcceptMapper.relationModels(modelCode); + vo.setRelationModels(relationModel); + return ResponseVO.ok(vo); + } + + /** + * 模型信息对比 + * @author huxiuwu + * @date 2022/4/11 + * @param requirementCode 需求编码 + * @param modelCode 模型编码 + * @param tableName 表名称 + * @return ResponseVO> + **/ + @Override + public ResponseVO> modelDetailCompare(String requirementCode,String modelCode,String tableName) { + //查询中台库数据 + ModelPropInfo modelPropInfo = middleGroundModelService.selectMiddleGroundModeByName(tableName); + //查询自己的属性 + List propList = modelAcceptMapper.selectPropList(modelCode); + //比较并封装 + List result = compareData(modelPropInfo ,propList,tableName); + + return ResponseVO.ok(result); + } + + /** + * @author huxiuwu + * @date 2022/4/11 + * @param model 模型数据 + * @return ResponseVO> + **/ + @SneakyThrows + @Transactional(rollbackFor = Exception.class) + @Override + public ResponseVO> modelAcceptPass(Model model) { + //新增至模型基础表 + int insert = modelMapper.insert(model); + //删除模型版本表,属性版本表,需求表,审核表 + boolean modelVersion = modelAcceptMapper.deleteModelVersion(model); + boolean propVersion = modelAcceptMapper.deletePropVersion(model); + boolean requireVersion = modelAcceptMapper.deleteRequirementVersion(model); + boolean acceptVersion = modelAcceptMapper.deleteAcceptVersion(model); + boolean modelRelationProp = modelAcceptMapper.deleteModelRelationProp(model); + if ((modelVersion && modelRelationProp && propVersion && requireVersion && acceptVersion && insert!=0 )==false ){ + throw new Exception(); + } + return ResponseVO.ok(); + } + + /** + * 比较是否相似 + * @author huxiuwu + * @date 2022/4/11 + * @param modelPropInfo + * @param propList + * @param tableName + * @return List + **/ + private List compareData(ModelPropInfo modelPropInfo, List propList, String tableName) { + List list = new LinkedList<>(); + ModelPropInfo owner = new ModelPropInfo(); + List middleGroundList = modelPropInfo.getPropList(); + owner.setModelTable(tableName); + if (CollectionUtil.isEmpty(middleGroundList)||CollectionUtil.isEmpty(propList)){ + owner.setPropList(propList); + list.add(owner); + list.add(modelPropInfo); + return list; + } + List ownerList = propList.stream().map(m -> { + middleGroundList.stream().filter(m2-> Objects.equals(m.getPropName(),m2.getPropName())).forEach(m2-> + m.setSame(true) + ); + return m; + }).collect(Collectors.toList()); + owner.setPropList(ownerList); + list.add(owner); + list.add(modelPropInfo); + return list; + } + +} diff --git a/src/main/java/com/pms/ocp/service/impl/ModelCheckRuleServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelCheckRuleServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..4bcc2216e805626edb80989957a57b14b034a43e --- /dev/null +++ b/src/main/java/com/pms/ocp/service/impl/ModelCheckRuleServiceImpl.java @@ -0,0 +1,14 @@ +package com.pms.ocp.service.impl; + +import com.pms.ocp.service.ModelCheckRuleService; +import org.springframework.stereotype.Service; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/11 17:17 + */ +@Service +public class ModelCheckRuleServiceImpl implements ModelCheckRuleService { + +} diff --git a/src/main/java/com/pms/ocp/service/impl/ModelCheckServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelCheckServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..0bb721186f93ae9ff1dc8e7e75756dc4e6b436fd --- /dev/null +++ b/src/main/java/com/pms/ocp/service/impl/ModelCheckServiceImpl.java @@ -0,0 +1,161 @@ +package com.pms.ocp.service.impl; + +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; +import com.pms.ocp.common.constants.CodeEnum; +import com.pms.ocp.common.constants.Constant; +import com.pms.ocp.mapper.ModelCheckMapper; +import com.pms.ocp.model.dto.ModelAuditDto; +import com.pms.ocp.model.dto.OcpModelRequirementAcceptDto; +import com.pms.ocp.model.entity.ModelPropInfo; +import com.pms.ocp.model.vo.ModelCheckVo; +import com.pms.ocp.model.vo.ResponseVO; +import com.pms.ocp.service.ModelCheckService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author huxiuwu + * @version 1.0 + * @date 2022/4/6 10:12 + */ +@Slf4j +@Service +public class ModelCheckServiceImpl implements ModelCheckService { + + @Resource + private ModelCheckMapper modelCheckMapper; + + /** + * 模型审核列表 + * @author huxiuwu + * @date 2022/4/6 + * @param currentPage 当前页 + * @param pageSize 每页数量 + * @param searchCondition + * @return ResponseVO> + **/ + @Override + public ResponseVO> modelAuditList(Integer currentPage, Integer pageSize, String searchCondition) { + PageHelper.startPage(currentPage,pageSize); + List modelCheckVoList = modelCheckMapper.modelAuditList(searchCondition); + //查询组织机构 + List companyList = modelCheckMapper.selectCompanyList(); + //将组织机构表合并到审核list中 + List result = pageList(modelCheckVoList,companyList); + PageInfo pageInfo = new PageInfo<>(result); + return ResponseVO.ok(pageInfo); + } + + /** + * 修改审核状态 + * @author huxiuwu + * @date 2022/4/6 + * @param ocp + * @return pms.ocp.model.vo.ResponseVO + **/ + @Transactional(rollbackFor = Exception.class) + @Override + public ResponseVO updateAuditType(ModelAuditDto ocp) { + //修改状态 + boolean isUpdateSucceed = modelCheckMapper.updateAuditState(ocp); + boolean flag = isUpdateSucceed; + if (ocp.getAuditState()== Constant.Number.ONE){ + OcpModelRequirementAcceptDto dto = pageOcpDto(ocp); + //审核通过,新增至验收表 + boolean isInsertSucceed = modelCheckMapper.saveAccept(dto); + flag = (isInsertSucceed && isUpdateSucceed) == true; + }else{ + //其他状态删除该需求编码避免数据重复 + modelCheckMapper.deleteByRequirementCode(ocp); + } + if (!flag){ + ResponseVO.error(CodeEnum.DELETE_FAIL); + } + return ResponseVO.ok(); + } + + /** + * 模型关系表 + * @author huxiuwu + * @date 2022/4/7 + * @param modelCode + * @return pms.ocp.model.vo.ResponseVO + **/ + @Override + public ResponseVO> modelRelation(String modelCode) { + //查询模型以及自己所拥有字段 + List modelPropInfoList = modelCheckMapper.selectModelOwnerProp(); + //转换为map + Map modelMap = modelPropInfoList.stream().collect(Collectors.toMap(ModelPropInfo::getModelCode, o -> o)); + //查询中间表获取关联模型code列表 + List modelCodeList = modelCheckMapper.selectModelCodeList(modelCode); + //取出map中值塞入实体类 + List list = pageModelRelationVo(modelCodeList,modelMap,modelCode); + return ResponseVO.ok(list); + } + + /** + * 封装模型关联vo + * @author huxiuwu + * @date 2022/4/7 + * @param modelCodeList + * @param modelMap + * @param modelCode + * @return pms.ocp.model.vo.ModelPropRelationVo + **/ + private List pageModelRelationVo(List modelCodeList, Map modelMap, String modelCode) { + List list = new LinkedList<>(); + list.add(modelMap.get(modelCode)); + modelCodeList.forEach(v-> + list.add(modelMap.get(v)) + ); + return list; + } + + /** + * 封装审核通过新增验收表数据 + * @author huxiuwu + * @date 2022/4/6 + * @param ocp + * @return pms.ocp.model.dto.OcpModelRequirementAcceptDto + **/ + private OcpModelRequirementAcceptDto pageOcpDto(ModelAuditDto ocp) { + OcpModelRequirementAcceptDto dto = new OcpModelRequirementAcceptDto(); + dto.setObjId(UUID.randomUUID().toString()); + dto.setAcceptCompanyCode(""); + dto.setAcceptDepartment(""); + dto.setAcceptUserName(""); + dto.setIsDelete(0); + dto.setAcceptCtime(new Date()); + dto.setAcceptMtime(new Date()); + dto.setAcceptStats(0); + dto.setRequirementCode(ocp.getRequirementCode()); + dto.setAcceptUserName(""); + dto.setAcceptUserId(""); + return dto; + } + + /** + * + * @author huxiuwu + * @date 2022/4/6 + * @param modelCheckVoList + * @param companyList + * @return List + **/ + private List pageList(List modelCheckVoList, List companyList) { + List list = modelCheckVoList.stream().map(m -> { + companyList.stream().filter(m2-> Objects.equals(m.getProposerCompanyCode(),m2.getProposerCompanyCode())).forEach(m2-> { + m.setProposerCompanyName(m2.getProposerCompanyName()); + }); + return m; + }).collect(Collectors.toList()); + return list; + } +} diff --git a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java index cac009e53e4d4871eda963b61e553399074ea27a..ba0ceaa02258c281b140e8f0f3cb5dc2ae322677 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java @@ -68,21 +68,31 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { * @date 2022/3/9 > **/ @Override - public ResponseVO subclassDetailsList(int currentPage,int pageSize,String parentGroupCode,String subclassGroupName) { + public ResponseVO subclassDetailsList(int currentPage, int pageSize, String parentGroupCode, String subclassGroupName, boolean isTop) { //查询所有 List ocpModelGroupVOList = this.selectByCondition(null,null); + List dimConditionList = this.selectByCondition(null,subclassGroupName); + if (isTop){ + PageUtil pageUtil = getOcpModelGroupVOPageUtil(currentPage, pageSize, dimConditionList); + return ResponseVO.ok(pageUtil); + } //将查询到所有数据的list转换为key为分类code,value为本身的map Map groupByCode = ocpModelGroupVOList.stream().collect(Collectors.toMap(OcpModelGroupVO::getModelGroupCode, Function.identity(), (key1, key2) -> key2)); //根据key获取前端传入code的对象 OcpModelGroupVO ocpModelGroupVO = groupByCode.get(parentGroupCode); //模糊查询 - List dimConditionList = this.selectByCondition(null,subclassGroupName); + //递归获取模糊查询后属于parentGroupCode子集 List childrenList = findChildren(dimConditionList, ocpModelGroupVO, new LinkedList<>()); + PageUtil pageUtil = getOcpModelGroupVOPageUtil(currentPage, pageSize, childrenList); + return ResponseVO.ok(pageUtil); + } + + private PageUtil getOcpModelGroupVOPageUtil(int currentPage, int pageSize, List childrenList) { List sortList = childrenList.stream().sorted(Comparator.comparing(OcpModelGroupVO::getGroupCtime).reversed()).collect(Collectors.toList()); PageUtil pageUtil = new PageUtil<>(); pageUtil.startPage(currentPage, pageSize, sortList); - return ResponseVO.ok(pageUtil); + return pageUtil; } /** @@ -207,7 +217,6 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { } //设置上级父类名称 node.setModelGroupPName(parent.getModelGroupName()); - //说明他有父类其下子类都需要加一级 parent.getChildrenList().add(node); continue; } diff --git a/src/main/resources/mapper/MiddleGroundModelMapper.xml b/src/main/resources/mapper/MiddleGroundModelMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..e93e09e3bd0f1a479349bc7ba1483e7bdf595662 --- /dev/null +++ b/src/main/resources/mapper/MiddleGroundModelMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/mapper/ModelAcceptMapper.xml b/src/main/resources/mapper/ModelAcceptMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..1c7345c0552e156ec47c340f53b97d1bd41dddf3 --- /dev/null +++ b/src/main/resources/mapper/ModelAcceptMapper.xml @@ -0,0 +1,128 @@ + + + + + + + + + + + + + + + delete + from + ocp_model_version + where + requirement_code = #{requirementCode} + and model_code =#{modelCode} + + + + delete + from + ocp_model_prop_version + where + model_code =#{modelCode} + + + + delete + from + ocp_model_requirement_approval + where + requirement_code = #{requirementCode} + + + + delete + from + ocp_model_requirement + where + requirement_code = #{requirementCode} + + + + delete + from + ocp_model_rel_version + where + relation_mode_code = #{modelCode} + + \ No newline at end of file diff --git a/src/main/resources/mapper/ModelCheckMapper.xml b/src/main/resources/mapper/ModelCheckMapper.xml new file mode 100644 index 0000000000000000000000000000000000000000..46dd2da2287c08fb905ab9b6571ee53423751125 --- /dev/null +++ b/src/main/resources/mapper/ModelCheckMapper.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + update ocp_model_requirement_approval + + + approval_stats = #{auditState}, + + + where requirement_code = #{requirementCode} + + + + insert into ocp_model_requirement_accept(obj_id,requirement_code, api_code, accept_stats, accept_company_code, accept_department, accept_user_id, accept_user_name, accept_ctime, accept_mtime, is_delete) + values (#{objId},#{requirementCode}, #{apiCode}, #{acceptStats}, #{acceptCompanyCode}, #{acceptDepartment}, #{acceptUserId}, #{acceptUserName}, #{acceptCtime}, #{acceptMtime}, #{isDelete}) + + + + + + + + delete + from + ocp_model_requirement_accept + where + requirement_code = #{requirementCode} + + \ No newline at end of file