diff --git a/src/main/java/com/pms/ocp/biz/impl/BizModelRequirementInfoServiceImpl.java b/src/main/java/com/pms/ocp/biz/impl/BizModelRequirementInfoServiceImpl.java index b44b390ced4216baa31a00269195c10ad214b1ad..cbd8ecd2d27636f5aa4bc30afea041e3019cd0b4 100644 --- a/src/main/java/com/pms/ocp/biz/impl/BizModelRequirementInfoServiceImpl.java +++ b/src/main/java/com/pms/ocp/biz/impl/BizModelRequirementInfoServiceImpl.java @@ -57,14 +57,15 @@ public class BizModelRequirementInfoServiceImpl implements BizModelRequirementIn // 需求信息创建 ModelRequirement modelRequirement = new ModelRequirement(); BeanUtils.copyProperties(modelVersionRequirementDTO, modelRequirement); + modelRequirement.setCtime(LocalDateTime.now()); modelRequirement.setRequirementCode(modelVersionRequirementDTO.getRequirementCode()); + modelRequirement.setMtime(LocalDateTime.now()); // 需求审批信息创建 ModelRequirementApproval modelRequirementApproval = new ModelRequirementApproval(); modelRequirementApproval.setRequirementCode(modelVersionRequirementDTO.getRequirementCode()); - modelRequirementApproval.setApprovalStats(0); - + modelRequirementApproval.setApprovalStatus(0); // 校验是否模型名称重复 ModelBaseVersion modelBaseVersion1 = modelBaseVersionService.getModelBaseVersion(modelVersionRequirementDTO.getModelTable(), null, null); diff --git a/src/main/java/com/pms/ocp/controller/ModelCheckRuleController.java b/src/main/java/com/pms/ocp/controller/ModelCheckRuleController.java index d69b77fe7d7f0da26e2153b71bb95cdbbd52952f..64a5affd23c8b05a90d77ceeb5c384d11999b3ba 100644 --- a/src/main/java/com/pms/ocp/controller/ModelCheckRuleController.java +++ b/src/main/java/com/pms/ocp/controller/ModelCheckRuleController.java @@ -1,9 +1,38 @@ package com.pms.ocp.controller; +import com.pms.ocp.model.vo.ResponseVO; +import com.pms.ocp.service.ModelCheckRuleService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + /** * @author huxiuwu * @version 1.0 * @date 2022/4/11 17:15 */ +@Slf4j +@RequestMapping("/modelCheck") +@RestController +@Api(tags = "模型管控-模型信息校验") public class ModelCheckRuleController { + + @Resource + private ModelCheckRuleService modelCheckRuleService; + + @ApiOperation("模型校验") + @GetMapping("/checkRule") + public ResponseVO checkRule(@ApiParam(value = "搜索条件") @RequestParam(value = "modelCode", required = false)String modelCode,@ApiParam(value = "搜索条件") @RequestParam(value = "requirementCode", required = false)String requirementCode){ + List checkRules = modelCheckRuleService.checkRule(modelCode, requirementCode); + return ResponseVO.ok(checkRules); + } + } diff --git a/src/main/java/com/pms/ocp/mapper/ModelAcceptMapper.java b/src/main/java/com/pms/ocp/mapper/ModelAcceptMapper.java index 6cf322916f382c9595feb0b26c43cdaf0a4b94e0..48b809f9a60ff8121b3a968457fe2f383af65dd0 100644 --- a/src/main/java/com/pms/ocp/mapper/ModelAcceptMapper.java +++ b/src/main/java/com/pms/ocp/mapper/ModelAcceptMapper.java @@ -19,7 +19,7 @@ import java.util.List; public interface ModelAcceptMapper { List modelAcceptList(); - ModelAcceptVo modelAuditDetail(@Param("requirementCode") String requirementCode); + List modelAuditDetail(@Param("requirementCode") String requirementCode); List selectModelList(); diff --git a/src/main/java/com/pms/ocp/mapper/ModelCheckMapper.java b/src/main/java/com/pms/ocp/mapper/ModelCheckMapper.java index 58b5c831645536d949a88194a5363903c140da32..d39543010885f34cefa0cf5322c045a8f5b06d6b 100644 --- a/src/main/java/com/pms/ocp/mapper/ModelCheckMapper.java +++ b/src/main/java/com/pms/ocp/mapper/ModelCheckMapper.java @@ -25,7 +25,7 @@ public interface ModelCheckMapper { boolean saveAccept(OcpModelRequirementAcceptDto ocp); - List selectModelOwnerProp(); + List selectModelOwnerProp(@Param("modelCode")String modelCode); List selectModelCodeList(@Param("modelCode") String modelCode); diff --git a/src/main/java/com/pms/ocp/model/dto/ModelAuditDto.java b/src/main/java/com/pms/ocp/model/dto/ModelAuditDto.java index de4b6f138005e5460cc8185ad39df8bc9a5581cd..525f6b63e48b5903e435f47d270a044492661c41 100644 --- a/src/main/java/com/pms/ocp/model/dto/ModelAuditDto.java +++ b/src/main/java/com/pms/ocp/model/dto/ModelAuditDto.java @@ -23,4 +23,9 @@ public class ModelAuditDto { * 需求编号 */ private String requirementCode; + + /** + * 审核意见 + */ + private String checkOpinion; } diff --git a/src/main/java/com/pms/ocp/model/dto/ModelVersionRequirementDTO.java b/src/main/java/com/pms/ocp/model/dto/ModelVersionRequirementDTO.java index 325d4b05cd2081c06f70a1f30249d720720e1ac2..b32d0a45d423bb0f7b474a50d85ba0e4933b3331 100644 --- a/src/main/java/com/pms/ocp/model/dto/ModelVersionRequirementDTO.java +++ b/src/main/java/com/pms/ocp/model/dto/ModelVersionRequirementDTO.java @@ -73,15 +73,15 @@ public class ModelVersionRequirementDTO { // @ApiModelProperty(value = "公司编码") // private String ownerCompanyCode; - /** - * 提交人id - */ +// /** +// * 提交人id +// */ // @ApiModelProperty(value = "提交人id") // private String modelUserId; - - /** - * 提交人姓名 - */ +// +// /** +// * 提交人姓名 +// */ // @ApiModelProperty(value = "提交人姓名") // private String modelUserName; 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 33f7e52c7c917bebb1dbf539645923415711f47e..36191c1266f537010a81d488dd01b521b726ee66 100644 --- a/src/main/java/com/pms/ocp/model/entity/Model.java +++ b/src/main/java/com/pms/ocp/model/entity/Model.java @@ -133,6 +133,7 @@ public class Model { */ private String apiUnit; + /** * 需求编码 */ diff --git a/src/main/java/com/pms/ocp/model/entity/ModelPropInfo.java b/src/main/java/com/pms/ocp/model/entity/ModelPropInfo.java index 72961e70044883cfb99232629a0f08db075a28d1..3187a5f2244d4bdc5c596288a2a224c1e999ac56 100644 --- a/src/main/java/com/pms/ocp/model/entity/ModelPropInfo.java +++ b/src/main/java/com/pms/ocp/model/entity/ModelPropInfo.java @@ -28,5 +28,9 @@ public class ModelPropInfo { /** * 字段list */ + /** + * 是否校验通过 + */ + private boolean isCheck; private List propList; } diff --git a/src/main/java/com/pms/ocp/model/entity/ModelRequirement.java b/src/main/java/com/pms/ocp/model/entity/ModelRequirement.java index a4077d51ff45b7ae64f03633f084f05cd46e2a2c..cab2649f1829a682f175f0b8afff5f45f56b47ae 100644 --- a/src/main/java/com/pms/ocp/model/entity/ModelRequirement.java +++ b/src/main/java/com/pms/ocp/model/entity/ModelRequirement.java @@ -4,11 +4,11 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; -import io.swagger.models.auth.In; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import java.util.UUID; /** * @Auther: wangjian @@ -19,6 +19,18 @@ import java.time.LocalDateTime; @Data @TableName("ocp_model_requirement") public class ModelRequirement { + public ModelRequirement() { + this.objId =UUID.randomUUID().toString(); + this.requirementCode = "-1"; + this.requirementType = -1; + this.requirementDesc = "-1"; + this.companyCode = "-1"; + this.userId = "-1"; + this.userName = "-1"; + this.ctime = LocalDateTime.now(); + this.mtime = LocalDateTime.now(); + this.requirementStatu = -1; + } /** * 主键 @@ -73,34 +85,11 @@ public class ModelRequirement { /** * 需求审核状态0:未通过1:通过 */ - private Integer requirementStatus; -} + private Integer requirementStatu; +// /** +// * +// */ +// private String approvalCompanyCode; +} -// CREATE TABLE operating_platform.ocp_model_requirement ( -// obj_id varchar(42) NOT NULL , -// requirement_code varchar(42) NOT NULL , -// requirement_type int2 NOT NULL , -// requirement_desc varchar(200) NOT NULL , -// company_code varchar(42) NOT NULL , -// user_id varchar(42) , -// user_name varchar(64) , -// ctime timestamp(6) NOT NULL , -// mtime timestamp(6) NOT NULL , -// requirement_statu Int2 , -// PRIMARY KEY (obj_id) -// ) -// ; -// -// COMMENT ON COLUMN operating_platform.ocp_model_requirement.obj_id IS '主键'; -// COMMENT ON COLUMN operating_platform.ocp_model_requirement.requirement_code IS '需求编码'; -// COMMENT ON COLUMN operating_platform.ocp_model_requirement.requirement_type IS '需求类型0:新增,1:迭代,2下线'; -// COMMENT ON COLUMN operating_platform.ocp_model_requirement.requirement_desc IS '需求简述'; -// COMMENT ON COLUMN operating_platform.ocp_model_requirement.company_code IS '需求提报公司'; -// COMMENT ON COLUMN operating_platform.ocp_model_requirement.user_id IS '提交人id'; -// COMMENT ON COLUMN operating_platform.ocp_model_requirement.user_name IS '提交人姓名'; -// COMMENT ON COLUMN operating_platform.ocp_model_requirement.ctime IS '创建时间'; -// COMMENT ON COLUMN operating_platform.ocp_model_requirement.mtime IS '修改时间 '; -// COMMENT ON COLUMN operating_platform.ocp_model_requirement.requirement_statu IS '需求审核状态0:未通过1:通过 '; -// -// COMMENT ON TABLE operating_platform.ocp_model_requirement IS '模型需求表'; diff --git a/src/main/java/com/pms/ocp/model/entity/ModelRequirementApproval.java b/src/main/java/com/pms/ocp/model/entity/ModelRequirementApproval.java index 272b877455aa380dd5a5b0f848f7719fcf9682fe..3318eb751f17c26077ebe56cf6e1624b347df87c 100644 --- a/src/main/java/com/pms/ocp/model/entity/ModelRequirementApproval.java +++ b/src/main/java/com/pms/ocp/model/entity/ModelRequirementApproval.java @@ -9,6 +9,7 @@ import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; +import java.util.UUID; /** * @Auther: wangjian @@ -19,6 +20,19 @@ import java.time.LocalDateTime; @Data @TableName("ocp_model_requirement_approval") public class ModelRequirementApproval { + public ModelRequirementApproval() { + this.objId = UUID.randomUUID().toString(); + this.requirementCode = "-1"; + this.approvalStatus = -1; + this.approvalCompanyCode = "-1"; + this.approvalDepartment = "-1"; + this.approvalUserId = "-1"; + this.approvalUserName = "-1"; + this.approvalCtime = LocalDateTime.now(); + this.approvalMtime = LocalDateTime.now(); + this.boolDelete = -1; + this.approvalComment = "-1"; + } /** * 主键 @@ -34,7 +48,7 @@ public class ModelRequirementApproval { /** * 审批状态 0:未审核 1:审核通过 2:审核拒绝 */ - private Integer approvalStats; + private Integer approvalStatus; /** * 审核人单位 diff --git a/src/main/java/com/pms/ocp/model/entity/PropInfo.java b/src/main/java/com/pms/ocp/model/entity/PropInfo.java index 03b4997641272fc300012e8cde479a771c08d185..f334f4be007f70a29f863134cea689024162d2e5 100644 --- a/src/main/java/com/pms/ocp/model/entity/PropInfo.java +++ b/src/main/java/com/pms/ocp/model/entity/PropInfo.java @@ -2,6 +2,8 @@ package com.pms.ocp.model.entity; import lombok.Data; +import java.util.Date; + /** * @author huxiuwu * @version 1.0 @@ -28,4 +30,65 @@ public class PropInfo { * 是否相同 */ private boolean isSame; + /** + * 属性描述 + */ + private String columnComments; + + /** + * 是否主键 + */ + private Integer isPk; + + /** + * 模型版本号 + */ + private String modelVersion; + + /** + * 属性编码 + */ + private String propCode; + + /** + * 数据精度 + */ + private Integer dataScale; + + /** + * 是否必填 + */ + private Integer isRequired; + + /** + * 显示顺序 + */ + private Integer propOrderNo; + + /** + * 提交人id + */ + private String propUserId; + + /** + * 提交人姓名 + */ + private String propUserName; + + /** + * 创建时间 + */ + private Date propCtime; + + /** + * 修改时间 + */ + private Date propMtime; + + /** + * 推广类型 + */ + private Integer propPromotion; + + } diff --git a/src/main/java/com/pms/ocp/model/vo/ModelAcceptVo.java b/src/main/java/com/pms/ocp/model/vo/ModelAcceptVo.java index b1a8b41a07f4a1409a15c919a0e7e4629051975d..1889c05b6bbea268fe7963d3ac954843055cb5f2 100644 --- a/src/main/java/com/pms/ocp/model/vo/ModelAcceptVo.java +++ b/src/main/java/com/pms/ocp/model/vo/ModelAcceptVo.java @@ -90,4 +90,43 @@ public class ModelAcceptVo { */ @ApiModelProperty(value = "审核意见") private String auditOpinion; + + /** + *所属专业 + */ + @ApiModelProperty(value = "所属专业") + private String professionalKind; + + /** + *分类编码 + */ + @ApiModelProperty(value = "分类编码") + private String modelGroupCode; + + /** + *公司编码 + */ + @ApiModelProperty(value = "公司编码") + private String ownerCompanyCode; + + /** + * 所属区域 + */ + @ApiModelProperty(value = "所属区域") + private Integer modelLayer; + + /** + * + */ + /** + * 所属版本 + */ + @ApiModelProperty(value = "所属版本") + private String modelVersion; + + /** + * 建设厂商 + */ + @ApiModelProperty(value = "建设厂商") + private String apiUnit; } diff --git a/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java b/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java index 45bf59b468fd9ef66c449ac1469da8f8c57d794f..1a50eb22f307789c3ad98d5613445ee379ef3c24 100644 --- a/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java +++ b/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java @@ -115,6 +115,9 @@ public class OcpModelGroupVO implements Serializable { return modelGroupPcode == null ? "" : modelGroupPcode; } + public String getModelGroupName() { + return modelGroupName == null ?"":modelGroupName; + } } diff --git a/src/main/java/com/pms/ocp/service/ModelCheckRuleService.java b/src/main/java/com/pms/ocp/service/ModelCheckRuleService.java index f5467b4505016696c11d5826cb4d958d14407ae9..bf1b2d10f2b31a8d45811b7da49694a0f048fb1f 100644 --- a/src/main/java/com/pms/ocp/service/ModelCheckRuleService.java +++ b/src/main/java/com/pms/ocp/service/ModelCheckRuleService.java @@ -1,9 +1,12 @@ package com.pms.ocp.service; +import java.util.List; + /** * @author huxiuwu * @version 1.0 * @date 2022/4/11 17:17 */ public interface ModelCheckRuleService { + List checkRule(String modelCode,String requirementCode); } diff --git a/src/main/java/com/pms/ocp/service/impl/MiddleGroundModelServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/MiddleGroundModelServiceImpl.java index 617055a4fb4bb4dccc9324ca4314d8176652352e..65588a998cc227603846e480d064f0eb741adc34 100644 --- a/src/main/java/com/pms/ocp/service/impl/MiddleGroundModelServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/MiddleGroundModelServiceImpl.java @@ -1,6 +1,7 @@ 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; @@ -15,7 +16,7 @@ import java.util.List; * @date 2022/4/9 14:40 */ @Service -//@DS("middleGround") +@DS("middleGround") public class MiddleGroundModelServiceImpl implements MiddleGroundModelService { @Resource @@ -36,5 +37,4 @@ public class MiddleGroundModelServiceImpl implements MiddleGroundModelService { } 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 index b5edb4276972ce2a2227c98fc6c4d3d3abfef701..765bdc3f1d858f10b3f40ecf59e030fa6fb63002 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelAcceptServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelAcceptServiceImpl.java @@ -2,6 +2,7 @@ package com.pms.ocp.service.impl; import cn.hutool.core.collection.CollectionUtil; import com.pms.ocp.mapper.ModelAcceptMapper; +import com.pms.ocp.mapper.ModelCheckMapper; import com.pms.ocp.mapper.ModelMapper; import com.pms.ocp.model.entity.Model; import com.pms.ocp.model.entity.ModelPropInfo; @@ -41,11 +42,16 @@ public class ModelAcceptServiceImpl implements ModelAcceptService { @Resource private ModelMapper modelMapper; + @Resource + private ModelCheckMapper modelCheckMapper; + + /** * 模型验收列表 + * + * @return pms.ocp.model.vo.ResponseVO * @author huxiuwu * @date 2022/4/7 - * @return pms.ocp.model.vo.ResponseVO **/ @Override public ResponseVO modelAcceptList() { @@ -55,89 +61,90 @@ public class ModelAcceptServiceImpl implements ModelAcceptService { /** * 模型验收详情 - * @author huxiuwu - * @date 2022/4/8 - * @param modelCode 模型编码 + * + * @param modelCode 模型编码 * @param requirementCode 需求编码 * @return pms.ocp.model.vo.ResponseVO + * @author huxiuwu + * @date 2022/4/8 **/ @Override public ResponseVO modelAuditDetail(String modelCode, String requirementCode) { - ModelAcceptVo vo = modelAcceptMapper.modelAuditDetail(requirementCode); + List vos = modelAcceptMapper.modelAuditDetail(requirementCode); //关联模型code List relationModel = modelAcceptMapper.relationModels(modelCode); - vo.setRelationModels(relationModel); - return ResponseVO.ok(vo); + (vos.get(0) == null ? new ModelAcceptVo() : vos.get(0)).setRelationModels(relationModel); + return ResponseVO.ok(vos.get(0)); } /** * 模型信息对比 + * + * @param requirementCode 需求编码 + * @param modelCode 模型编码 + * @param tableName 表名称 + * @return ResponseVO> * @author huxiuwu * @date 2022/4/11 - * @param requirementCode 需求编码 - * @param modelCode 模型编码 - * @param tableName 表名称 - * @return ResponseVO> **/ @Override - public ResponseVO> modelDetailCompare(String requirementCode,String modelCode,String tableName) { + 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); + List result = compareData(modelPropInfo, propList, tableName); return ResponseVO.ok(result); } /** + * @param model 模型数据 + * @return ResponseVO> * @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); + 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(); - } + modelAcceptMapper.deleteModelVersion(model); + modelAcceptMapper.deletePropVersion(model); + modelAcceptMapper.deleteRequirementVersion(model); + modelAcceptMapper.deleteAcceptVersion(model); + //boolean modelRelationProp = modelAcceptMapper.deleteModelRelationProp(model); + // List modelPropInfoList = modelCheckMapper.selectModelOwnerProp(model.getModelCode()); return ResponseVO.ok(); } /** * 比较是否相似 - * @author huxiuwu - * @date 2022/4/11 + * * @param modelPropInfo * @param propList * @param tableName * @return List + * @author huxiuwu + * @date 2022/4/11 **/ 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)){ + 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) + middleGroundList.stream().filter(m2 -> Objects.equals(m.getPropName(), m2.getPropName())).forEach(m2 -> + m.setSame(true) ); return m; }).collect(Collectors.toList()); diff --git a/src/main/java/com/pms/ocp/service/impl/ModelCheckRuleServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelCheckRuleServiceImpl.java index 4bcc2216e805626edb80989957a57b14b034a43e..78f46b1bfe52afddfe82e359386458237194001d 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelCheckRuleServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelCheckRuleServiceImpl.java @@ -1,8 +1,17 @@ package com.pms.ocp.service.impl; +import cn.hutool.core.collection.CollectionUtil; +import com.pms.ocp.mapper.ModelCheckMapper; +import com.pms.ocp.model.entity.ModelPropInfo; +import com.pms.ocp.model.entity.PropInfo; import com.pms.ocp.service.ModelCheckRuleService; +import org.apache.commons.collections4.list.TreeList; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.LinkedList; +import java.util.List; + /** * @author huxiuwu * @version 1.0 @@ -11,4 +20,77 @@ import org.springframework.stereotype.Service; @Service public class ModelCheckRuleServiceImpl implements ModelCheckRuleService { + @Resource + private ModelCheckMapper modelCheckMapper; + + /** + * @param modelCode 模型编码 + * @param requirementCode 需求编码 + * @return List + * @author huxiuwu + * @date 2022/4/11 + **/ + @Override + public List checkRule(String modelCode, String requirementCode) { + List ownerProp = modelCheckMapper.selectModelOwnerProp(modelCode); + List result = checkModelRule(ownerProp); + return result; + } + + /** + * @param ownerProp 自己的属性 + * @return List + * @author huxiuwu + * @date 2022/4/11 + **/ + private List checkModelRule(List ownerProp) { + ModelPropInfo modelPropInfo = ownerProp.get(0); + //校验 + List checkResult = checkRuleOne(modelPropInfo); + return checkResult; + } + + private List checkRuleOne(ModelPropInfo modelPropInfo) { + List temp = new TreeList<>(); + final String regular = ("([a-z]+)|([A-Z][a-z]*)|([A-Z]+)"); + String modelTable = modelPropInfo.getModelTable(); + String tableName = modelTable == null ? "" : modelTable; + if (!tableName.matches(regular) || checkRuleOther(tableName)) { + temp.add("表名要小写,下划线风格,采用四段式,不超过30个字符串"); + } + temp = checkRuleTwo(modelPropInfo, temp); + return temp; + } + + private List checkRuleTwo(ModelPropInfo modelPropInfo, List temp) { + List propList = modelPropInfo.getPropList(); + if (CollectionUtil.isEmpty(propList)) { + temp.add("属性必须有注释"); + return temp; + } + List isHasPk = new LinkedList<>(); + boolean isPk; + for (PropInfo propInfo : propList) { + if (propInfo.getColumnComments() == null) { + temp.add("属性必须有注释"); + } + isPk = propInfo.getIsPk()==1; + if (isPk){ + isHasPk.add(isPk); + } + } + if (CollectionUtil.isEmpty(isHasPk)){ + temp.add("未有主键"); + } + return temp; + } + + private boolean checkRuleOther(String tableName) { + int length = tableName.split("_").length; + if (length <= 0||tableName.length() >= 30) { + return true; + } + return false; + } + } diff --git a/src/main/java/com/pms/ocp/service/impl/ModelCheckServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelCheckServiceImpl.java index 0bb721186f93ae9ff1dc8e7e75756dc4e6b436fd..3c2b3ee3a203aa8c487f760c5d9e9e63b52a4c55 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelCheckServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelCheckServiceImpl.java @@ -10,6 +10,7 @@ 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.ModelCheckRuleService; import com.pms.ocp.service.ModelCheckService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -31,6 +32,9 @@ public class ModelCheckServiceImpl implements ModelCheckService { @Resource private ModelCheckMapper modelCheckMapper; + @Resource + private ModelCheckRuleService modelCheckRuleService; + /** * 模型审核列表 * @author huxiuwu @@ -90,7 +94,9 @@ public class ModelCheckServiceImpl implements ModelCheckService { @Override public ResponseVO> modelRelation(String modelCode) { //查询模型以及自己所拥有字段 - List modelPropInfoList = modelCheckMapper.selectModelOwnerProp(); + List modelPropInfoList = modelCheckMapper.selectModelOwnerProp(null); + //校验模型数据 + //转换为map Map modelMap = modelPropInfoList.stream().collect(Collectors.toMap(ModelPropInfo::getModelCode, o -> o)); //查询中间表获取关联模型code列表 @@ -118,6 +124,7 @@ public class ModelCheckServiceImpl implements ModelCheckService { return list; } + /** * 封装审核通过新增验收表数据 * @author huxiuwu 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 ba0ceaa02258c281b140e8f0f3cb5dc2ae322677..9d602c99b1944b3fc5d8a693472e83e2bef3ffce 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java @@ -71,8 +71,8 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { 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){ + List dimConditionList = this.selectByCondition(null,subclassGroupName); PageUtil pageUtil = getOcpModelGroupVOPageUtil(currentPage, pageSize, dimConditionList); return ResponseVO.ok(pageUtil); } @@ -80,14 +80,26 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { Map groupByCode = ocpModelGroupVOList.stream().collect(Collectors.toMap(OcpModelGroupVO::getModelGroupCode, Function.identity(), (key1, key2) -> key2)); //根据key获取前端传入code的对象 OcpModelGroupVO ocpModelGroupVO = groupByCode.get(parentGroupCode); - //模糊查询 //递归获取模糊查询后属于parentGroupCode子集 - List childrenList = findChildren(dimConditionList, ocpModelGroupVO, new LinkedList<>()); + List childrenList = findChildren(ocpModelGroupVOList, ocpModelGroupVO, new LinkedList<>()); + if (subclassGroupName != null){ + childrenList = dimSearchList(childrenList,subclassGroupName); + } PageUtil pageUtil = getOcpModelGroupVOPageUtil(currentPage, pageSize, childrenList); return ResponseVO.ok(pageUtil); } + private List dimSearchList(List childrenList, String subclassGroupName) { + List list = new LinkedList<>(); + for (OcpModelGroupVO ocpModelGroupVO : childrenList) { + if (ocpModelGroupVO.getModelGroupName().contains(subclassGroupName)){ + list.add(ocpModelGroupVO); + } + } + return list; + } + 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<>(); @@ -105,9 +117,9 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { **/ @Override public ResponseVO update(List list) { - if (getModelClassify(list,()->new QueryWrapper().ne("obj_id",list.get(0).getObjId()))){ - return ResponseVO.error(CodeEnum.DATA_REPETITION); - } +// if (getModelClassify(list,()->new QueryWrapper().ne("obj_id",list.get(0).getObjId()))){ +// return ResponseVO.error(CodeEnum.DATA_REPETITION); +// } boolean isUpdateSucceed = ocpService.saveOrUpdateBatch(list); if (!isUpdateSucceed) { ResponseVO.error(CodeEnum.UP_DATA_FAIL); @@ -150,9 +162,9 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { **/ @Override public ResponseVO insert(List list) { - if (getModelClassify(list,()->new QueryWrapper())){ - return ResponseVO.error(CodeEnum.DATA_REPETITION); - } +// if (getModelClassify(list,()->new QueryWrapper())){ +// return ResponseVO.error(CodeEnum.DATA_REPETITION); +// } boolean result = ocpService.saveBatch(list); if (!result) { return ResponseVO.error(CodeEnum.INSERT_FAIL); @@ -177,14 +189,15 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { && parent.getModelGroupCode() .equals(vo.getModelGroupPcode()) && !"".equals(parent.getModelGroupCode()) - && !parent.getModelGroupCode().equals(vo.getModelGroupCode())) { - parent.setHasChildren(true); - vo.setModelGroupPName(parent.getModelGroupName()); - if (!childList.remove(vo)) { - childList.add(vo); - } - //递归下一级 - findChildren(groupList, vo, childList); + && !(parent.getModelGroupCode().equals(vo.getModelGroupCode()))) { + + parent.setHasChildren(true); + vo.setModelGroupPName(parent.getModelGroupName()); + if (!childList.remove(vo)) { + childList.add(vo); + } + //递归下一级 + findChildren(groupList, vo,childList); } } return childList; diff --git a/src/main/java/com/pms/ocp/service/impl/ModelPropertyVersionServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelPropertyVersionServiceImpl.java index 45965a1f2d3d3c13f6b6537dda4a167f3b73f443..1ab06edcb1d837543c4b056a4663eaf4bfe9e26b 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelPropertyVersionServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelPropertyVersionServiceImpl.java @@ -35,9 +35,9 @@ public class ModelPropertyVersionServiceImpl implements ModelPropertyVersionServ public Integer deleteModelPropertyVersion(String requirementCode, String modelCode, String propCode) { QueryWrapper queryWrapper = new QueryWrapper(); - if (StringUtils.isNotEmpty(requirementCode)) { - queryWrapper.lambda().eq(ModelPropertyVersion::getRequirementCode, requirementCode); - } +// if (StringUtils.isNotEmpty(requirementCode)) { +// queryWrapper.lambda().eq(ModelPropertyVersion::getRequirementCode, requirementCode); +// } if (StringUtils.isNotEmpty(modelCode)) { queryWrapper.lambda().eq(ModelPropertyVersion::getModelCode, modelCode); diff --git a/src/main/resources/mapper/ModelAcceptMapper.xml b/src/main/resources/mapper/ModelAcceptMapper.xml index 1c7345c0552e156ec47c340f53b97d1bd41dddf3..3a993b332095ccbef3dec891d3d331b42b9abdcd 100644 --- a/src/main/resources/mapper/ModelAcceptMapper.xml +++ b/src/main/resources/mapper/ModelAcceptMapper.xml @@ -13,17 +13,25 @@ ocp_model_version omv on omv.requirement_code = omra.requirement_code + where + omra.accept_status = 0 - select - omv.model_name as modelName, - omv.model_code as modelCode, - omv.professional_kind as belongMajor, - omv.model_table as tableName, - omr.requirement_type as flowState, - omr.company_code as proposerCompanyCode, - omra.approval_stats as demandAuditState, - omra.approval_comment as auditOpinion, - omra.approval_user_name as auditName, - omra.requirement_code as requirementCode, - omra.approval_ctime as auditTime - from + select + omv.model_name AS modelName, + omv.model_code AS modelCode, + omv.professional_kind AS belongMajor, + omv.model_table AS tableName, + omr.requirement_type AS flowState, + omr.company_code AS proposerCompanyCode, + omra.approval_status AS demandAuditState, + omra.approval_comment AS auditOpinion, + omra.approval_user_name AS auditName, + omra.requirement_code AS requirementCode, + omra.approval_ctime AS auditTime + from ocp_model_version as omv left join ocp_model_requirement omr @@ -53,14 +55,17 @@ update ocp_model_requirement_approval - approval_stats = #{auditState}, + approval_status = #{auditState}, + + + approval_comment = #{checkOpinion}, 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) + insert into ocp_model_requirement_accept(obj_id,requirement_code, api_code,accept_status, 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}) @@ -69,15 +74,18 @@ omv.model_code, omv.model_name, omv.model_table, - ompv.column_name, + ompv.COLUMN_NAME, ompv.data_length, + ompv.column_comments, + ompv.is_pk, ompv.data_type from ocp_model_version as omv - left join - ocp_model_prop_version as ompv - on - omv.model_code = ompv.model_code + left join ocp_model_prop_version as ompv on omv.model_code = ompv.model_code + + where + omv.model_code= #{modelCode} +