Просмотр исходного кода

[task-1766] 性能验证模块 开发 (二期) / 添加新的表参数

Li Yuan 1 год назад
Родитель
Сommit
414e953d26
38 измененных файлов с 1391 добавлено и 60 удалено
  1. 82 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/api/IExperimentalConfigDetailService.java
  2. 1 1
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/api/IExperimentalConfigService.java
  3. 45 1
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/domain/ExperimentalConfig.java
  4. 71 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/domain/ExperimentalConfigDetail.java
  5. 1 1
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigDao.java
  6. 22 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigDetailDao.java
  7. 24 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigDetailQueryDao.java
  8. 1 1
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigQueryDao.java
  9. 1 1
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/impl/ExperimentalConfigDaoImpl.java
  10. 29 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/impl/ExperimentalConfigDetailDaoImpl.java
  11. 31 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/impl/ExperimentalConfigDetailQueryDaoImpl.java
  12. 1 1
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/impl/ExperimentalConfigQueryDaoImpl.java
  13. 35 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/entity/ExperimentalConfigDetailPo.java
  14. 289 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/entity/ExperimentalConfigDetailTbl.java
  15. 17 1
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/entity/ExperimentalConfigPo.java
  16. 32 4
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/entity/ExperimentalConfigTbl.java
  17. 123 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/provider/ExperimentalConfigDetailProvider.java
  18. 4 4
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/provider/ExperimentalConfigProvider.java
  19. 26 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/repository/ExperimentalConfigDetailRepository.java
  20. 6 1
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/repository/ExperimentalConfigRepository.java
  21. 63 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/repository/impl/ExperimentalConfigDetailRepositoryImpl.java
  22. 24 1
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/repository/impl/ExperimentalConfigRepositoryImpl.java
  23. 3 5
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/LinearRangeEP6A.java
  24. 2 0
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PVItemBuilder.java
  25. 45 8
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PVModel.java
  26. 1 3
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PrecisionEP15.java
  27. 2 2
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PrecisionEP15Item.java
  28. 132 9
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PrecisionRepeatability.java
  29. 0 2
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/TruenessRefernece.java
  30. 12 8
      ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/service/impl/PerformanceVerificationServiceImpl.java
  31. 7 3
      ibps-provider-root/modules/provider-business/src/main/resources/com/lc/ibps/pv/persistence/mapping/ExperimentalConfig.map.xml
  32. 131 0
      ibps-provider-root/modules/provider-business/src/main/resources/com/lc/ibps/pv/persistence/mapping/ExperimentalConfigDetail.map.xml
  33. 10 0
      ibps-provider-root/modules/provider-business/src/main/resources/pv/report/precisionRepeatability.ftl
  34. 1 1
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/PvBaseTest.java
  35. 60 0
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/pv/domain/ExperimentalConfigDetailTest.java
  36. 1 1
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/pv/domain/ExperimentalConfigTest.java
  37. 1 1
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigDaoTest.java
  38. 55 0
      ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigDetailDaoTest.java

+ 82 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/api/IExperimentalConfigDetailService.java

@@ -0,0 +1,82 @@
+package com.lc.ibps.components.pv.api;
+
+import java.util.List;
+
+import org.hibernate.validator.constraints.NotBlank;
+import org.hibernate.validator.constraints.NotEmpty;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.lc.ibps.cloud.entity.APIPageList;
+import com.lc.ibps.cloud.entity.APIRequest;
+import com.lc.ibps.cloud.entity.APIResult;
+import javax.validation.Valid;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+
+
+
+/**
+ * 性能验证配置详情 接口
+ *
+ *<pre> 
+ * 构建组:ibps-provider-experimentalConfigDetail-api
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:41
+ *</pre>
+ */
+@Validated
+@RequestMapping(value = "/pv/experimentalConfigDetail")
+@RestController
+public interface IExperimentalConfigDetailService {
+
+	/**
+	 * 
+	 * 【性能验证配置详情】列表(分页条件查询)数据
+	 *
+	 * @param request
+	 * @return
+	 */
+	@RequestMapping(value = "/query", method = RequestMethod.POST)
+	public APIResult<APIPageList<ExperimentalConfigDetailPo>> query(
+			@RequestBody(required = true) APIRequest request);
+	
+	/**
+	 * 
+	 * 根据id查询【性能验证配置详情】
+	 *
+	 * @param id
+	 * @return
+	 */
+	@RequestMapping(value = "/get", method = { RequestMethod.GET })
+	public APIResult<ExperimentalConfigDetailPo> get(
+//			@NotBlank(message = "{com.lc.ibps.components.provider.ExperimentalConfigDetailProvider.id}") 
+			@RequestParam(name = "id", required = true) String id);
+	
+	/**
+	 * 
+	 * 批量删除【性能验证配置详情】记录
+	 *
+	 * @param ids
+	 * @return
+	 */
+	@RequestMapping(value = "/remove", method = { RequestMethod.POST })
+	public APIResult<Void> remove(
+//			@NotEmpty(message = "{com.lc.ibps.components.provider.ExperimentalConfigDetailProvider.ids}")
+			@RequestParam(name = "ids", required = true) String[] ids);
+	
+	/**
+	 * 
+	 * 保存【性能验证配置详情】记录
+	 *
+	 * @param experimentalConfigDetailPo
+	 * @return
+	 */
+	@RequestMapping(value = "/save", method = { RequestMethod.POST })
+	public APIResult<Void> save(
+ 			@RequestBody(required = true) @Valid ExperimentalConfigDetailPo experimentalConfigDetailPo);
+}

+ 1 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/api/IExperimentalConfigService.java

@@ -26,7 +26,7 @@ import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo;
  * 构建组:ibps-provider-experimentalConfig-api
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:14
+ * 创建时间:2024-05-29 08:52:35
  *</pre>
  */
 @Validated

+ 45 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/domain/ExperimentalConfig.java

@@ -8,6 +8,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.stereotype.Service;
 
 import com.lc.ibps.base.core.util.BeanUtils;
+import com.lc.ibps.base.core.util.string.StringUtil;
 import com.lc.ibps.base.core.util.AppUtil;
 import com.lc.ibps.base.framework.domain.AbstractDomain;
 import com.lc.ibps.base.framework.persistence.dao.IDao;
@@ -16,6 +17,8 @@ import com.lc.ibps.components.pv.persistence.dao.ExperimentalConfigDao;
 import com.lc.ibps.components.pv.persistence.dao.ExperimentalConfigQueryDao;
 import com.lc.ibps.components.pv.repository.ExperimentalConfigRepository;
 import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo;
+import com.lc.ibps.components.pv.repository.ExperimentalConfigDetailRepository;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
 
 /**
  * 性能验证配置信息 领域对象实体
@@ -23,7 +26,7 @@ import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:14
+ * 创建时间:2024-05-29 08:52:34
  *</pre>
  */
 @SuppressWarnings("serial")
@@ -39,6 +42,8 @@ public class ExperimentalConfig extends AbstractDomain<String, ExperimentalConfi
 	@Resource
 	private ExperimentalConfigRepository experimentalConfigRepository;
 
+	@Resource
+	private ExperimentalConfigDetailRepository experimentalConfigDetailRepository;
 
 	protected void init(){
 		//
@@ -59,6 +64,45 @@ public class ExperimentalConfig extends AbstractDomain<String, ExperimentalConfi
 		return "experimentalConfig";
 	}
 	
+	/**
+	 * 主从表一并保存 
+	 * void
+	 * @exception 
+	 * @since  1.0.0
+	 */
+	public void saveCascade(){
+		save();
+		if(getData().isDelBeforeSave()){
+			ExperimentalConfigDetail experimentalConfigDetail = experimentalConfigDetailRepository.newInstance();
+			experimentalConfigDetail.deleteByMainId(getData().getId());
+		}
+		
+		ExperimentalConfigDetail experimentalConfigDetail = experimentalConfigDetailRepository.newInstance();
+		if(BeanUtils.isNotEmpty(getData().getExperimentalConfigDetailPoList())){
+			for(ExperimentalConfigDetailPo experimentalConfigDetailPo:getData().getExperimentalConfigDetailPoList()){
+				//设置外键
+				experimentalConfigDetailPo.setParentId(getData().getId());
+				experimentalConfigDetail.save(experimentalConfigDetailPo);
+			}
+		}
+	}	
+	
+	/**
+	 * 主从表一并删除 
+	 * void
+	 * @exception 
+	 * @since  1.0.0
+	 */
+	public void deleteByIdsCascade(String[] ids){
+		for(String id : ids){
+			ExperimentalConfigPo po = experimentalConfigRepository.get(id);
+			ExperimentalConfigDetail experimentalConfigDetail = experimentalConfigDetailRepository.newInstance();
+			if(BeanUtils.isNotEmpty(po) && BeanUtils.isNotEmpty(po.getId())){
+				experimentalConfigDetail.deleteByMainId(po.getId());
+			}	
+		}
+		deleteByIds(ids);
+	}
 	
 	
 }

+ 71 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/domain/ExperimentalConfigDetail.java

@@ -0,0 +1,71 @@
+package com.lc.ibps.components.pv.domain;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.context.annotation.Scope;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.stereotype.Service;
+
+import com.lc.ibps.base.core.util.BeanUtils;
+import com.lc.ibps.base.core.util.AppUtil;
+import com.lc.ibps.base.framework.domain.AbstractDomain;
+import com.lc.ibps.base.framework.persistence.dao.IDao;
+import com.lc.ibps.base.framework.persistence.dao.IQueryDao;
+import com.lc.ibps.components.pv.persistence.dao.ExperimentalConfigDetailDao;
+import com.lc.ibps.components.pv.persistence.dao.ExperimentalConfigDetailQueryDao;
+import com.lc.ibps.components.pv.repository.ExperimentalConfigDetailRepository;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+
+/**
+ * 性能验证配置详情 领域对象实体
+ *
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:41
+ *</pre>
+ */
+@SuppressWarnings("serial")
+@Service
+@Transactional
+@Scope("prototype")
+public class ExperimentalConfigDetail extends AbstractDomain<String, ExperimentalConfigDetailPo>{
+	
+	@Resource
+	private ExperimentalConfigDetailDao experimentalConfigDetailDao;
+	@Resource
+	private ExperimentalConfigDetailQueryDao experimentalConfigDetailQueryDao;
+	@Resource
+	private ExperimentalConfigDetailRepository experimentalConfigDetailRepository;
+
+
+	protected void init(){
+		//
+	}
+	
+	@Override
+	protected IQueryDao<String, ExperimentalConfigDetailPo> getInternalQueryDao() {
+		return experimentalConfigDetailQueryDao;
+	}
+	
+	@Override
+	protected IDao<String, ExperimentalConfigDetailPo> getInternalDao() {
+		return experimentalConfigDetailDao;
+	}
+	
+	@Override
+	public String getInternalCacheName() {
+		return "experimentalConfigDetail";
+	}
+	
+	
+	public void deleteByMainId(String mainId) {
+		List<ExperimentalConfigDetailPo> list = experimentalConfigDetailRepository.findByMainId(mainId);
+		for (ExperimentalConfigDetailPo po : list) {
+			delete(po.getId());
+		}
+	}
+	
+}

+ 1 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigDao.java

@@ -9,7 +9,7 @@ import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:12
+ * 创建时间:2024-05-29 08:52:33
  *</pre>
  */
 public interface ExperimentalConfigDao extends IDao<String, ExperimentalConfigPo> {

+ 22 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigDetailDao.java

@@ -0,0 +1,22 @@
+package com.lc.ibps.components.pv.persistence.dao;
+
+import com.lc.ibps.base.framework.persistence.dao.IDao;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+
+/**
+ * 性能验证配置详情 Dao接口
+ *
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:40
+ *</pre>
+ */
+public interface ExperimentalConfigDetailDao extends IDao<String, ExperimentalConfigDetailPo> {
+	/**
+	 * 根据主表id删除 性能验证配置详情 记录
+	 * @param mainId 
+	 * void
+	 */
+	public void deleteByMainId(String mainId);
+}

+ 24 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigDetailQueryDao.java

@@ -0,0 +1,24 @@
+package com.lc.ibps.components.pv.persistence.dao;
+
+import java.util.List;
+import com.lc.ibps.base.framework.persistence.dao.IQueryDao;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+
+/**
+ * 性能验证配置详情 查询Dao接口
+ *
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:39
+ *</pre>
+ */
+public interface ExperimentalConfigDetailQueryDao extends IQueryDao<String, ExperimentalConfigDetailPo> {
+	/**
+	 * 根据主表ID查询 性能验证配置详情 列表
+	 * @param mainId
+	 * @return 
+	 * List<ExperimentalConfigDetailPo>
+	 */
+	public List<ExperimentalConfigDetailPo> findByMainId(String mainId);
+}

+ 1 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigQueryDao.java

@@ -9,7 +9,7 @@ import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:12
+ * 创建时间:2024-05-29 08:52:33
  *</pre>
  */
 public interface ExperimentalConfigQueryDao extends IQueryDao<String, ExperimentalConfigPo> {

+ 1 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/impl/ExperimentalConfigDaoImpl.java

@@ -12,7 +12,7 @@ import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:12
+ * 创建时间:2024-05-29 08:52:33
  *</pre>
  */
 @SuppressWarnings("serial")

+ 29 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/impl/ExperimentalConfigDetailDaoImpl.java

@@ -0,0 +1,29 @@
+package com.lc.ibps.components.pv.persistence.dao.impl;
+
+import org.springframework.stereotype.Repository;
+
+import com.lc.ibps.base.db.ddd.dao.MyBatisDaoImpl;
+import com.lc.ibps.components.pv.persistence.dao.ExperimentalConfigDetailDao;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+
+/**
+ * 性能验证配置详情 Dao接口的实现类
+ *
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:39
+ *</pre>
+ */
+@SuppressWarnings("serial")
+@Repository
+public class ExperimentalConfigDetailDaoImpl extends MyBatisDaoImpl<String, ExperimentalConfigDetailPo> implements ExperimentalConfigDetailDao{
+
+    @Override
+    public String getNamespace() {
+        return ExperimentalConfigDetailPo.class.getName();
+    }
+	public void deleteByMainId(String mainId) {
+		deleteByKey("deleteByMainId", b().a("mainId", mainId).p());		
+	}
+}

+ 31 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/impl/ExperimentalConfigDetailQueryDaoImpl.java

@@ -0,0 +1,31 @@
+package com.lc.ibps.components.pv.persistence.dao.impl;
+
+import java.util.List;
+
+import org.springframework.stereotype.Repository;
+
+import com.lc.ibps.base.db.ddd.dao.MyBatisQueryDaoImpl;
+import com.lc.ibps.components.pv.persistence.dao.ExperimentalConfigDetailQueryDao;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+
+/**
+ *性能验证配置详情 查询Dao的实现类
+ *
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:39
+ *</pre>
+ */
+ @SuppressWarnings("serial")
+@Repository
+public class ExperimentalConfigDetailQueryDaoImpl extends MyBatisQueryDaoImpl<String, ExperimentalConfigDetailPo> implements ExperimentalConfigDetailQueryDao{
+
+    @Override
+    public String getNamespace() {
+        return ExperimentalConfigDetailPo.class.getName();
+    }
+	public List<ExperimentalConfigDetailPo> findByMainId(String mainId) {
+		return findByKey("findByMainId", b().a("mainId", mainId).p());
+	}
+}

+ 1 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/dao/impl/ExperimentalConfigQueryDaoImpl.java

@@ -13,7 +13,7 @@ import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:12
+ * 创建时间:2024-05-29 08:52:32
  *</pre>
  */
  @SuppressWarnings("serial")

+ 35 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/entity/ExperimentalConfigDetailPo.java

@@ -0,0 +1,35 @@
+package com.lc.ibps.components.pv.persistence.entity;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import com.lc.ibps.base.core.util.JacksonUtil;
+import io.swagger.annotations.ApiModel;
+
+/**
+ * 性能验证配置详情 实体对象
+ *
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:38
+ *</pre>
+ */
+@SuppressWarnings("serial")
+@ApiModel(value = "性能验证配置详情对象")
+public class ExperimentalConfigDetailPo extends ExperimentalConfigDetailTbl{
+
+	public static ExperimentalConfigDetailPo fromJsonString(String data){
+		if(JacksonUtil.isNotJsonObject(data)){
+			return null;
+		}
+		return JacksonUtil.getDTO(data, ExperimentalConfigDetailPo.class);
+	}
+	
+	public static List<ExperimentalConfigDetailPo> fromJsonArrayString(String listData){
+		if(JacksonUtil.isNotJsonArray(listData)){
+			return Collections.emptyList();
+		}
+		return JacksonUtil.getDTOList(listData, ExperimentalConfigDetailPo.class);
+	}
+}

+ 289 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/entity/ExperimentalConfigDetailTbl.java

@@ -0,0 +1,289 @@
+package com.lc.ibps.components.pv.persistence.entity;
+
+import java.util.Date;
+
+import com.lc.ibps.base.framework.persistence.entity.AbstractPo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * 性能验证配置详情 表对象
+ * 
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:38
+ *</pre>
+ */
+@SuppressWarnings("serial")
+@ApiModel(value = "性能验证配置详情对象")
+public class ExperimentalConfigDetailTbl extends AbstractPo<String>{
+	@ApiModelProperty(value = "主键")
+	protected String  id; 		/*主键*/
+	@ApiModelProperty(value = "外键")
+	protected String  parentId; 		/*外键*/
+	@ApiModelProperty(value = "租户ID")
+	protected String  tenantId; 		/*租户ID*/
+	@ApiModelProperty(value = "IP地址")
+	protected String  ip; 		/*IP地址*/
+	@ApiModelProperty(value = "方法名称")
+	protected String  methodName; 		/*方法名称*/
+	@ApiModelProperty(value = "方法类型")
+	protected String  methodType; 		/*方法类型*/
+	@ApiModelProperty(value = "排序")
+	protected String  sn; 		/*排序*/
+	@ApiModelProperty(value = "是否基础")
+	protected String  isBasic; 		/*是否基础*/
+	@ApiModelProperty(value = "是否禁用")
+	protected String  idDisabled; 		/*是否禁用*/
+	@ApiModelProperty(value = "是否公开")
+	protected String  isPublic; 		/*是否公开*/
+	@ApiModelProperty(value = "实验步骤")
+	protected String  step; 		/*实验步骤*/
+	@ApiModelProperty(value = "判定标准")
+	protected String  criterion; 		/*判定标准*/
+	@ApiModelProperty(value = "参考资料")
+	protected String  references; 		/*参考资料*/
+	@ApiModelProperty(value = "实验参数")
+	protected String  params; 		/*实验参数*/
+	@ApiModelProperty(value = "实验公式")
+	protected String  formulas; 		/*实验公式*/
+	@ApiModelProperty(value = "结论模板")
+	protected String  template; 		/*结论模板*/
+	@ApiModelProperty(value = "模板说明")
+	protected String  templateDesc; 		/*模板说明*/
+	@ApiModelProperty(value = "图表配置")
+	protected String  chartOption; 		/*图表配置*/
+	@ApiModelProperty(value = "适用范围")
+	protected String  scope; 		/*适用范围*/
+
+	public void setId(String id) 
+	{
+		this.id = id;
+	}
+	/**
+	 * 返回 主键
+	 * @return
+	 */
+	public String getId() 
+	{
+		return this.id;
+	}
+	public void setParentId(String parentId) 
+	{
+		this.parentId = parentId;
+	}
+	/**
+	 * 返回 外键
+	 * @return
+	 */
+	public String getParentId() 
+	{
+		return this.parentId;
+	}
+	public void setTenantId(String tenantId) 
+	{
+		this.tenantId = tenantId;
+	}
+	/**
+	 * 返回 租户ID
+	 * @return
+	 */
+	public String getTenantId() 
+	{
+		return this.tenantId;
+	}
+	public void setIp(String ip) 
+	{
+		this.ip = ip;
+	}
+	/**
+	 * 返回 IP地址
+	 * @return
+	 */
+	public String getIp() 
+	{
+		return this.ip;
+	}
+	public void setMethodName(String methodName) 
+	{
+		this.methodName = methodName;
+	}
+	/**
+	 * 返回 方法名称
+	 * @return
+	 */
+	public String getMethodName() 
+	{
+		return this.methodName;
+	}
+	public void setMethodType(String methodType) 
+	{
+		this.methodType = methodType;
+	}
+	/**
+	 * 返回 方法类型
+	 * @return
+	 */
+	public String getMethodType() 
+	{
+		return this.methodType;
+	}
+	public void setSn(String sn) 
+	{
+		this.sn = sn;
+	}
+	/**
+	 * 返回 排序
+	 * @return
+	 */
+	public String getSn() 
+	{
+		return this.sn;
+	}
+	public void setIsBasic(String isBasic) 
+	{
+		this.isBasic = isBasic;
+	}
+	/**
+	 * 返回 是否基础
+	 * @return
+	 */
+	public String getIsBasic() 
+	{
+		return this.isBasic;
+	}
+	public void setIdDisabled(String idDisabled) 
+	{
+		this.idDisabled = idDisabled;
+	}
+	/**
+	 * 返回 是否禁用
+	 * @return
+	 */
+	public String getIdDisabled() 
+	{
+		return this.idDisabled;
+	}
+	public void setIsPublic(String isPublic) 
+	{
+		this.isPublic = isPublic;
+	}
+	/**
+	 * 返回 是否公开
+	 * @return
+	 */
+	public String getIsPublic() 
+	{
+		return this.isPublic;
+	}
+	public void setStep(String step) 
+	{
+		this.step = step;
+	}
+	/**
+	 * 返回 实验步骤
+	 * @return
+	 */
+	public String getStep() 
+	{
+		return this.step;
+	}
+	public void setCriterion(String criterion) 
+	{
+		this.criterion = criterion;
+	}
+	/**
+	 * 返回 判定标准
+	 * @return
+	 */
+	public String getCriterion() 
+	{
+		return this.criterion;
+	}
+	public void setReferences(String references) 
+	{
+		this.references = references;
+	}
+	/**
+	 * 返回 参考资料
+	 * @return
+	 */
+	public String getReferences() 
+	{
+		return this.references;
+	}
+	public void setParams(String params) 
+	{
+		this.params = params;
+	}
+	/**
+	 * 返回 实验参数
+	 * @return
+	 */
+	public String getParams() 
+	{
+		return this.params;
+	}
+	public void setFormulas(String formulas) 
+	{
+		this.formulas = formulas;
+	}
+	/**
+	 * 返回 实验公式
+	 * @return
+	 */
+	public String getFormulas() 
+	{
+		return this.formulas;
+	}
+	public void setTemplate(String template) 
+	{
+		this.template = template;
+	}
+	/**
+	 * 返回 结论模板
+	 * @return
+	 */
+	public String getTemplate() 
+	{
+		return this.template;
+	}
+	public void setTemplateDesc(String templateDesc) 
+	{
+		this.templateDesc = templateDesc;
+	}
+	/**
+	 * 返回 模板说明
+	 * @return
+	 */
+	public String getTemplateDesc() 
+	{
+		return this.templateDesc;
+	}
+	public void setChartOption(String chartOption) 
+	{
+		this.chartOption = chartOption;
+	}
+	/**
+	 * 返回 图表配置
+	 * @return
+	 */
+	public String getChartOption() 
+	{
+		return this.chartOption;
+	}
+	public void setScope(String scope) 
+	{
+		this.scope = scope;
+	}
+	/**
+	 * 返回 适用范围
+	 * @return
+	 */
+	public String getScope() 
+	{
+		return this.scope;
+	}
+	
+}

+ 17 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/entity/ExperimentalConfigPo.java

@@ -3,6 +3,7 @@ package com.lc.ibps.components.pv.persistence.entity;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
+import java.util.ArrayList;
 import com.lc.ibps.base.core.util.JacksonUtil;
 import io.swagger.annotations.ApiModel;
 
@@ -12,12 +13,27 @@ import io.swagger.annotations.ApiModel;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:10
+ * 创建时间:2024-05-29 08:52:32
  *</pre>
  */
 @SuppressWarnings("serial")
 @ApiModel(value = "性能验证配置信息对象")
 public class ExperimentalConfigPo extends ExperimentalConfigTbl{
+	private boolean delBeforeSave = true;
+	public boolean isDelBeforeSave() {
+		return delBeforeSave;
+	}
+	public void setDelBeforeSave(boolean delBeforeSave) {
+		this.delBeforeSave = delBeforeSave;
+	}	
+	
+	private List<ExperimentalConfigDetailPo> experimentalConfigDetailPoList = new ArrayList<ExperimentalConfigDetailPo>();
+	public List<ExperimentalConfigDetailPo> getExperimentalConfigDetailPoList() {
+		return experimentalConfigDetailPoList;
+	}
+	public void setExperimentalConfigDetailPoList(List<ExperimentalConfigDetailPo> experimentalConfigDetailPoList) {
+		this.experimentalConfigDetailPoList = experimentalConfigDetailPoList;
+	}
 
 	public static ExperimentalConfigPo fromJsonString(String data){
 		if(JacksonUtil.isNotJsonObject(data)){

+ 32 - 4
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/persistence/entity/ExperimentalConfigTbl.java

@@ -12,7 +12,7 @@ import io.swagger.annotations.ApiModelProperty;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:11
+ * 创建时间:2024-05-29 08:52:32
  *</pre>
  */
 @SuppressWarnings("serial")
@@ -36,8 +36,12 @@ public class ExperimentalConfigTbl extends AbstractPo<String>{
 	protected String  target; 		/*指标*/
 	@ApiModelProperty(value = "排序")
 	protected String  sn; 		/*排序*/
-	@ApiModelProperty(value = "配置")
-	protected String  config; 		/*配置*/
+	@ApiModelProperty(value = "配置(废弃)")
+	protected String  config; 		/*配置(废弃)*/
+	@ApiModelProperty(value = "图标")
+	protected String  icon; 		/*图标*/
+	@ApiModelProperty(value = "编码")
+	protected String  targetKey; 		/*编码*/
 
 	public void setId(String id) 
 	{
@@ -152,12 +156,36 @@ public class ExperimentalConfigTbl extends AbstractPo<String>{
 		this.config = config;
 	}
 	/**
-	 * 返回 配置
+	 * 返回 配置(废弃)
 	 * @return
 	 */
 	public String getConfig() 
 	{
 		return this.config;
 	}
+	public void setIcon(String icon) 
+	{
+		this.icon = icon;
+	}
+	/**
+	 * 返回 图标
+	 * @return
+	 */
+	public String getIcon() 
+	{
+		return this.icon;
+	}
+	public void setTargetKey(String targetKey) 
+	{
+		this.targetKey = targetKey;
+	}
+	/**
+	 * 返回 编码
+	 * @return
+	 */
+	public String getTargetKey() 
+	{
+		return this.targetKey;
+	}
 	
 }

+ 123 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/provider/ExperimentalConfigDetailProvider.java

@@ -0,0 +1,123 @@
+package com.lc.ibps.components.pv.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.lc.ibps.api.base.constants.StateEnum;
+import com.lc.ibps.api.base.query.QueryFilter;
+import com.lc.ibps.base.core.constants.StringPool;
+import com.lc.ibps.base.core.util.BeanUtils;
+import com.lc.ibps.cloud.entity.APIPageList;
+import com.lc.ibps.cloud.entity.APIRequest;
+import com.lc.ibps.cloud.entity.APIResult;
+import com.lc.ibps.cloud.provider.GenericProvider;
+import com.lc.ibps.components.pv.api.IExperimentalConfigDetailService;
+import com.lc.ibps.components.pv.domain.ExperimentalConfigDetail;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+import com.lc.ibps.components.pv.repository.ExperimentalConfigDetailRepository;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.Extension;
+import io.swagger.annotations.ExtensionProperty;
+
+/**
+ * 性能验证配置详情 服务类
+ * <pre>
+ * 构建组:ibps-provider-experimentalConfigDetail
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:42
+ *</pre>
+ */
+@Api(tags = "性能验证配置详情管理", value = "性能验证配置详情数据")
+@Service
+public class ExperimentalConfigDetailProvider extends GenericProvider implements IExperimentalConfigDetailService{
+
+	@Resource
+	private ExperimentalConfigDetailRepository experimentalConfigDetailRepository;
+
+	@ApiOperation(value = "性能验证配置详情列表(分页条件查询)数据", notes = "性能验证配置详情列表(分页条件查询)数据")
+	@Override
+	public APIResult<APIPageList<ExperimentalConfigDetailPo>> query(
+			@ApiParam(name = "request", value = "传入查询请求json字符串", required = true) 
+			@RequestBody(required = true) APIRequest request) {
+		APIResult<APIPageList<ExperimentalConfigDetailPo>> result = new APIResult<>();
+		try {
+			QueryFilter queryFilter = getQueryFilter(request);
+			List<ExperimentalConfigDetailPo> data = experimentalConfigDetailRepository.query(queryFilter);
+			APIPageList<ExperimentalConfigDetailPo> apiPageData = getAPIPageList(data);
+			result.setData(apiPageData);
+		} catch (Exception e) {
+			// TODO ERROR => other error message
+			setExceptionResult(result, StateEnum.ERROR.getCode(), StateEnum.ERROR.getText(), e);
+		}
+		return result;
+	}
+
+	@ApiOperation(value = "根据id查询性能验证配置详情", notes = "根据id查询性能验证配置详情")
+	@Override
+	public APIResult<ExperimentalConfigDetailPo> get(
+			@ApiParam(name = "id", value = "查询id", required = true) 
+			@RequestParam(name = "id", required = true) String id) {
+		APIResult<ExperimentalConfigDetailPo> result = new APIResult<>();
+		try {
+			ExperimentalConfigDetailPo experimentalConfigDetailPo = experimentalConfigDetailRepository.get(id);
+			result.setData(experimentalConfigDetailPo);
+		} catch (Exception e) {
+			setExceptionResult(result, StateEnum.ERROR.getCode(), StateEnum.ERROR.getText(), e);
+		}
+		return result;
+	}
+	
+	@ApiOperation(value = "保存", notes = "保存性能验证配置详情信息", 
+			extensions = {
+					@Extension(properties = {
+							@ExtensionProperty(name = "submitCtrl", value = StringPool.Y)
+					})
+			})
+	@Override
+	public APIResult<Void> save(
+			@ApiParam(name = "experimentalConfigDetailPo", value = "性能验证配置详情对象", required = true)  
+			@RequestBody(required = true) ExperimentalConfigDetailPo experimentalConfigDetailPo) {
+		APIResult<Void> result = new APIResult<Void>();
+		try {
+			logger.info(" com.lc.ibps.components.provider.ExperimentalConfigDetailProvider.save()--->experimentalConfigDetailPo: {}", experimentalConfigDetailPo.toString());
+			ExperimentalConfigDetail domain = experimentalConfigDetailRepository.newInstance(experimentalConfigDetailPo);
+			domain.save();
+			result.setMessage("保存性能验证配置详情成功");
+		} catch (Exception e) {
+			setExceptionResult(result, StateEnum.ERROR.getCode(), StateEnum.ERROR.getText(), e);
+		}
+		return result;
+	}
+
+	@ApiOperation(value = "删除", notes = "删除性能验证配置详情", 
+			extensions = {
+					@Extension(properties = {
+							@ExtensionProperty(name = "submitCtrl", value = StringPool.Y)
+					})
+			})
+	@Override
+	public APIResult<Void> remove(
+			@ApiParam(name = "ids", value = "性能验证配置详情ID数组", required = true)  
+			@RequestParam(name = "ids", required = true) String[] ids) {
+		APIResult<Void> result = new APIResult<Void>();
+		try {
+			ExperimentalConfigDetail domain = experimentalConfigDetailRepository.newInstance();
+			domain.deleteByIds(ids);
+			result.setMessage("删除性能验证配置详情成功");
+		} catch (Exception e) {
+			setExceptionResult(result, StateEnum.ERROR.getCode(), StateEnum.ERROR.getText(), e);
+		}
+		return result;
+	}
+	
+}

+ 4 - 4
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/provider/ExperimentalConfigProvider.java

@@ -34,7 +34,7 @@ import io.swagger.annotations.ExtensionProperty;
  * 构建组:ibps-provider-experimentalConfig
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:15
+ * 创建时间:2024-05-29 08:52:36
  *</pre>
  */
 @Api(tags = "性能验证配置信息管理", value = "性能验证配置信息数据")
@@ -69,7 +69,7 @@ public class ExperimentalConfigProvider extends GenericProvider implements IExpe
 			@RequestParam(name = "id", required = true) String id) {
 		APIResult<ExperimentalConfigPo> result = new APIResult<>();
 		try {
-			ExperimentalConfigPo experimentalConfigPo = experimentalConfigRepository.get(id);
+			ExperimentalConfigPo experimentalConfigPo = experimentalConfigRepository.loadCascade(id);
 			result.setData(experimentalConfigPo);
 		} catch (Exception e) {
 			setExceptionResult(result, StateEnum.ERROR.getCode(), StateEnum.ERROR.getText(), e);
@@ -91,7 +91,7 @@ public class ExperimentalConfigProvider extends GenericProvider implements IExpe
 		try {
 			logger.info(" com.lc.ibps.components.provider.ExperimentalConfigProvider.save()--->experimentalConfigPo: {}", experimentalConfigPo.toString());
 			ExperimentalConfig domain = experimentalConfigRepository.newInstance(experimentalConfigPo);
-			domain.save();
+			domain.saveCascade();
 			result.setMessage("保存性能验证配置信息成功");
 		} catch (Exception e) {
 			setExceptionResult(result, StateEnum.ERROR.getCode(), StateEnum.ERROR.getText(), e);
@@ -112,7 +112,7 @@ public class ExperimentalConfigProvider extends GenericProvider implements IExpe
 		APIResult<Void> result = new APIResult<Void>();
 		try {
 			ExperimentalConfig domain = experimentalConfigRepository.newInstance();
-			domain.deleteByIds(ids);
+			domain.deleteByIdsCascade(ids);
 			result.setMessage("删除性能验证配置信息成功");
 		} catch (Exception e) {
 			setExceptionResult(result, StateEnum.ERROR.getCode(), StateEnum.ERROR.getText(), e);

+ 26 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/repository/ExperimentalConfigDetailRepository.java

@@ -0,0 +1,26 @@
+package com.lc.ibps.components.pv.repository;
+
+import java.util.List;
+import com.lc.ibps.base.framework.repository.IRepository;
+import com.lc.ibps.components.pv.domain.ExperimentalConfigDetail;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+
+/**
+ * 性能验证配置详情 仓库接口
+ *
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:40
+ *</pre>
+ */
+public interface ExperimentalConfigDetailRepository extends IRepository<String, ExperimentalConfigDetailPo,ExperimentalConfigDetail>{
+	 /**
+	 * 根据主表ID查询 性能验证配置详情 列表
+	 * @param mainId
+	 * @return 
+	 * List<ExperimentalConfigDetailPo>
+	 */
+	public List<ExperimentalConfigDetailPo> findByMainId(String mainId);
+
+}

+ 6 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/repository/ExperimentalConfigRepository.java

@@ -10,9 +10,14 @@ import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:13
+ * 创建时间:2024-05-29 08:52:34
  *</pre>
  */
 public interface ExperimentalConfigRepository extends IRepository<String, ExperimentalConfigPo,ExperimentalConfig>{
 
+	/**
+	 * 查询全部子表的数据,并设置到主表Po中 
+	 * void
+	 */
+	public ExperimentalConfigPo loadCascade(String id);
 }

+ 63 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/repository/impl/ExperimentalConfigDetailRepositoryImpl.java

@@ -0,0 +1,63 @@
+package com.lc.ibps.components.pv.repository.impl;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Repository;
+
+import com.lc.ibps.base.core.util.AppUtil;
+import com.lc.ibps.base.framework.persistence.dao.IQueryDao;
+import com.lc.ibps.base.framework.repository.AbstractRepository;
+import com.lc.ibps.components.pv.domain.ExperimentalConfigDetail;
+import com.lc.ibps.components.pv.repository.ExperimentalConfigDetailRepository;
+import com.lc.ibps.components.pv.persistence.dao.ExperimentalConfigDetailQueryDao;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+
+/**
+ * 性能验证配置详情 仓库的实现类
+ *
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:40
+ *</pre>
+ */
+@Repository
+public class ExperimentalConfigDetailRepositoryImpl extends AbstractRepository<String, ExperimentalConfigDetailPo,ExperimentalConfigDetail> implements ExperimentalConfigDetailRepository{
+	  
+	@Resource
+	private  ExperimentalConfigDetailQueryDao experimentalConfigDetailQueryDao;
+
+	public ExperimentalConfigDetail newInstance() {
+		ExperimentalConfigDetailPo po = new ExperimentalConfigDetailPo();
+		ExperimentalConfigDetail experimentalConfigDetail = AppUtil.getBean(ExperimentalConfigDetail.class);
+		experimentalConfigDetail.setData(po);
+		return experimentalConfigDetail;
+	}
+
+	public ExperimentalConfigDetail newInstance(ExperimentalConfigDetailPo po) {
+		ExperimentalConfigDetail experimentalConfigDetail = AppUtil.getBean(ExperimentalConfigDetail.class);
+		experimentalConfigDetail.setData(po);
+		return experimentalConfigDetail;
+	} 
+	
+	@Override
+	protected IQueryDao<String, ExperimentalConfigDetailPo> getQueryDao() {
+		return experimentalConfigDetailQueryDao;
+	}
+	
+	@Override
+	public String getInternalCacheName() {
+		return "experimentalConfigDetail";
+	}
+	
+	@Override
+	public List<ExperimentalConfigDetailPo> findByMainId(String mainId) {
+		List<ExperimentalConfigDetailPo> list = findByKey("findByMainId", "findIdsByMainId",
+				b().a("mainId", mainId).p());
+		return list;
+	}
+
+	
+}

+ 24 - 1
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/pv/repository/impl/ExperimentalConfigRepositoryImpl.java

@@ -1,10 +1,13 @@
 package com.lc.ibps.components.pv.repository.impl;
 
+import java.util.List;
 
 import javax.annotation.Resource;
 
 import org.springframework.stereotype.Repository;
 
+import com.lc.ibps.base.core.util.string.StringUtil;
+import com.lc.ibps.base.core.util.BeanUtils;
 import com.lc.ibps.base.core.util.AppUtil;
 import com.lc.ibps.base.framework.persistence.dao.IQueryDao;
 import com.lc.ibps.base.framework.repository.AbstractRepository;
@@ -12,6 +15,8 @@ import com.lc.ibps.components.pv.domain.ExperimentalConfig;
 import com.lc.ibps.components.pv.repository.ExperimentalConfigRepository;
 import com.lc.ibps.components.pv.persistence.dao.ExperimentalConfigQueryDao;
 import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo;
+import com.lc.ibps.components.pv.repository.ExperimentalConfigDetailRepository;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
 
 /**
  * 性能验证配置信息 仓库的实现类
@@ -19,7 +24,7 @@ import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:13
+ * 创建时间:2024-05-29 08:52:34
  *</pre>
  */
 @Repository
@@ -27,6 +32,8 @@ public class ExperimentalConfigRepositoryImpl extends AbstractRepository<String,
 	  
 	@Resource
 	private  ExperimentalConfigQueryDao experimentalConfigQueryDao;
+	@Resource
+	private  ExperimentalConfigDetailRepository experimentalConfigDetailRepository;
 
 	public ExperimentalConfig newInstance() {
 		ExperimentalConfigPo po = new ExperimentalConfigPo();
@@ -52,5 +59,21 @@ public class ExperimentalConfigRepositoryImpl extends AbstractRepository<String,
 	}
 	
 
+	/**
+	 * 查询全部子表的数据,并设置到主表Po中 
+	 * void
+	 */
+	@Override
+	public ExperimentalConfigPo loadCascade(String id){
+		ExperimentalConfigPo experimentalConfigPo = null;
+		if(StringUtil.isNotEmpty(id)){
+			experimentalConfigPo = get(id);
+			if(BeanUtils.isNotEmpty(experimentalConfigPo) && BeanUtils.isNotEmpty(experimentalConfigPo.getId())){
+				List<ExperimentalConfigDetailPo> experimentalConfigDetailPoList = experimentalConfigDetailRepository.findByMainId(experimentalConfigPo.getId());
+				experimentalConfigPo.setExperimentalConfigDetailPoList(experimentalConfigDetailPoList);
+			}
+		}
+		return experimentalConfigPo;
+	}
 	
 }

+ 3 - 5
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/LinearRangeEP6A.java

@@ -24,8 +24,7 @@ public class LinearRangeEP6A extends PVModel {
     private double[] targetValues;
     private boolean isTarget = true;
 
-    private final int specimensNum;
-    private final int repeatNum;
+
     private final PolynomialRegression pr1 = new PolynomialRegression();
     private final PolynomialRegression pr2 = new PolynomialRegression();
     private final PolynomialRegression pr3 = new PolynomialRegression();
@@ -39,8 +38,7 @@ public class LinearRangeEP6A extends PVModel {
 
     public LinearRangeEP6A(double[][] data, InspectionConfigVO configVO) {
         super(data, configVO);
-        this.specimensNum = configVO.getSpecimensNum();
-        this.repeatNum = configVO.getRepeatNum();
+
         this.means = new double[this.specimensNum];
         this.standardDeviations = new double[this.specimensNum];
         this.claimValue = configVO.getClaimValue();
@@ -128,7 +126,7 @@ public class LinearRangeEP6A extends PVModel {
         header.add("标本号");
         if (isTarget) header.add("目标值");
         for (int i = 1; i <= repeatNum; i++) {
-            header.add(String.format("测量结果#%d", i));
+            header.add(String.format("重复#%d", i));
         }
         TableDTO table = new TableDTO();
         table.buildHeader(header.toArray(new String[header.size()]));

+ 2 - 0
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PVItemBuilder.java

@@ -100,6 +100,8 @@ public class PVItemBuilder {
             pvModel = new TruenessEP15Patient(dataArrays, config);
         } else if (config.getKey().equals("408线性评价")) {
             pvModel = new LinearRangeEP6A(dataArrays, config);
+        } else if (config.getKey().equals("重复性验证")) {
+            pvModel = new PrecisionRepeatability(dataArrays, config);
         } else {
             return null;
         }

+ 45 - 8
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PVModel.java

@@ -12,11 +12,16 @@ public abstract class PVModel {
     private int scale;
     private String units;
     protected double[][] data;
-
+    protected int specimensNum;
+    protected int repeatNum;
+    protected String[] specimensName;
     public PVModel(double[][] data, InspectionConfigVO configVO) {
         this.data = data;
         this.units = configVO.getUnits();
         this.scale = configVO.getDecimal();
+        this.specimensNum = configVO.getSpecimensNum();
+        this.repeatNum = configVO.getRepeatNum();
+        this.specimensName = configVO.getSpecimensName();
     }
 
     public double[][] getData() {
@@ -27,6 +32,30 @@ public abstract class PVModel {
         this.data = data;
     }
 
+    public int getSpecimensNum() {
+        return specimensNum;
+    }
+
+    public void setSpecimensNum(int specimensNum) {
+        this.specimensNum = specimensNum;
+    }
+
+    public int getRepeatNum() {
+        return repeatNum;
+    }
+
+    public void setRepeatNum(int repeatNum) {
+        this.repeatNum = repeatNum;
+    }
+
+    public String[] getSpecimensName() {
+        return specimensName;
+    }
+
+    public void setSpecimensName(String[] specimensName) {
+        this.specimensName = specimensName;
+    }
+
     public String format(double d) {
         return String.format("%." + scale + "f", format(d, scale));
     }
@@ -59,6 +88,20 @@ public abstract class PVModel {
         return after;
     }
 
+    public static String getTEaFormat(double value){
+        String tea = "";
+        if(value == 0.5){
+            tea = "1/2TEa";
+        } else if (value == 0.25) {
+            tea = "1/4TEa";
+        } else if (value == 0.2) {
+            tea = "1/5TEa";
+        } else if (value == 0.3333) {
+            tea = "1/3TEa";
+        }
+        return tea;
+    }
+
     public abstract void calculate();
     public abstract TableDTO buildDataTableDTO();
 
@@ -82,11 +125,5 @@ public abstract class PVModel {
         this.units = units;
     }
 
-    public static double[] transposeXValue(xValue[] xValues) {
-        double[] doubles = new double[xValues.length];
-        for (int i = 0; i < doubles.length; i++) {
-            doubles[i] = xValues[i].getDoub();
-        }
-        return doubles;
-    }
+
 }

+ 1 - 3
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PrecisionEP15.java

@@ -14,11 +14,9 @@ public class PrecisionEP15 extends PVModel {
 
     private final List<PrecisionEP15Item> items = new ArrayList<>(); //[day][replicate]
 
-    private final String[] specimensName;
-
     public PrecisionEP15(double[][] data, InspectionConfigVO configVO) {
         super(data, configVO);
-        this.specimensName = configVO.getSpecimensName();
+
         final RealMatrix realMatrix = MatrixUtils.createRealMatrix(data);
         for (int i = 0; i < specimensName.length; i++) {
             double[][] sub = new double[data.length][configVO.getRepeatNum()];

+ 2 - 2
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PrecisionEP15Item.java

@@ -62,8 +62,8 @@ public class PrecisionEP15Item {
         this.name = name;
         this.data = data;
         this.n = configVO.getRepeatNum();
-        this.allowableCVr = configVO.getDailyCVSValue();
-        this.allowableCVl = configVO.getBatchCVSValue();
+        this.allowableCVr = configVO.getBatchCVSValue();
+        this.allowableCVl = configVO.getDailyCVSValue();
         this.allowableSDr = configVO.getAllowableSDr();
         this.allowableSDl = configVO.getAllowableSDl();
 

+ 132 - 9
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/PrecisionRepeatability.java

@@ -1,24 +1,34 @@
 package com.lc.ibps.components.verification.model2;
 
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.lc.ibps.components.verification.model.InspectionConfigVO;
-import com.lc.ibps.components.verification.report.SheetDTO;
-import com.lc.ibps.components.verification.report.TableDTO;
+import com.lc.ibps.components.verification.report.*;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
 
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 public class PrecisionRepeatability extends PVModel{
     private double[] cvs;
-    private  int specimensNum;
-    private  int repeatNum;
     private  double[] means;
     private  double[] standardDeviations;
+    private double batchCVSValue;
+    private String teaFormat;
+
 
     public PrecisionRepeatability(double[][] data, InspectionConfigVO configVO) {
         super(data, configVO);
-        this.specimensNum = configVO.getSpecimensNum();
-        this.repeatNum = configVO.getRepeatNum();
         this.means = new double[this.specimensNum];
         this.standardDeviations = new double[this.specimensNum];
         this.cvs = new double[this.specimensNum];
+        this.batchCVSValue = configVO.getBatchCVSValue();
+        this.teaFormat = getTEaFormat(configVO.getBatchCVS());
     }
 
     @Override
@@ -33,16 +43,129 @@ public class PrecisionRepeatability extends PVModel{
 
     @Override
     public TableDTO buildDataTableDTO() {
-        return null;
+        List<String> header = new ArrayList<String>();
+
+        header.add("样本名");
+        for (int i = 1; i <= repeatNum; i++) {
+            header.add(String.format("重复#%d", i));
+        }
+        TableDTO table = new TableDTO();
+        table.buildHeader(header.toArray(new String[header.size()]));
+
+        String[][] r = new String[specimensNum][];
+        for (int i = 0; i < data.length; i++) {
+            List<String> rl = new ArrayList();
+            rl.add(specimensName[i]);
+            for (int j = 0; j < data[i].length; j++) {
+                rl.add(format(data[i][j]));
+            }
+            r[i] = rl.toArray(new String[rl.size()]);
+        }
+        table.buildData(r);
+        return table;
     }
 
     @Override
     public SheetDTO[] buildSheetDTO() {
-        return new SheetDTO[0];
+        SheetDTO sheet = new SheetDTO("重复性验证");
+        sheet.setReportDataDTO(buildReportTableDTO());
+        return new SheetDTO[]{sheet};
+    }
+
+    private Map<String, TableDTO> buildReportTableDTO() {
+        Map<String, TableDTO> reports = new HashMap<>();
+        reports.put("表1: 重复性验证结果", buildTable1DTO());
+        return reports;
+    }
+
+    private TableDTO buildTable1DTO() {
+
+        TableDTO table = new TableDTO();
+        String[] header = {"样本名", "均值(mean)", "标准差(SD)", "%CV",teaFormat};
+        table.buildHeader(header);
+
+
+        String[][] r = new String[specimensNum][5];
+
+        for (int i = 0; i < r.length; i++) {
+            r[i][0] = specimensName[i];
+            r[i][1] = format(means[i]);
+            r[i][2] = format(standardDeviations[i]);
+            r[i][3] = format(cvs[i]);
+            r[i][4] = format(batchCVSValue);
+
+        }
+        table.buildData(r);
+        return table;
     }
 
     @Override
     public String generateResult() {
-        return null;
+        return EchartsFreemarkerUtils.generate("/report/precisionRepeatability.ftl", this);
+    }
+
+    public double[] getCvs() {
+        return cvs;
+    }
+
+    public void setCvs(double[] cvs) {
+        this.cvs = cvs;
+    }
+
+    public double[] getMeans() {
+        return means;
+    }
+
+    public void setMeans(double[] means) {
+        this.means = means;
+    }
+
+    public double[] getStandardDeviations() {
+        return standardDeviations;
+    }
+
+    public void setStandardDeviations(double[] standardDeviations) {
+        this.standardDeviations = standardDeviations;
+    }
+
+    public double getBatchCVSValue() {
+        return batchCVSValue;
+    }
+
+    public void setBatchCVSValue(double batchCVSValue) {
+        this.batchCVSValue = batchCVSValue;
+    }
+
+    public String getTeaFormat() {
+        return teaFormat;
+    }
+
+    public void setTeaFormat(String teaFormat) {
+        this.teaFormat = teaFormat;
+    }
+
+    public static void main(String[] args){
+        InspectionConfigVO config = new InspectionConfigVO("test", 1, 2,
+                null, 10, LocalDate.now(), true);
+        config.setBatchCVS(0.25);
+        config.setBatchCVSValue(2.5);
+        config.setDecimal(3);
+        config.setUnits("mmg/L");
+        config.setKey("重复性验证");
+        RandomUtils.nextDouble();
+        double[][] data = new double[config.getSpecimensNum()][config.getRepeatNum()];
+        for (int i = 0; i < config.getSpecimensNum(); i++) {
+            for (int j = 0; j < config.getRepeatNum(); j++) {
+                data[i][j] = RandomUtils.nextDouble(3.12,3.45);
+            }
+        }
+        System.out.println(ArrayUtils.toString(data));
+        PVItemBuilder pvItemBuilder = PVItemBuilder.getInstance(config);
+        pvItemBuilder.buildPVModel(data);
+        ReportDataDTO dataDTO = ReportFactory.build(pvItemBuilder);
+        String s = JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect);
+        String s1 = pvItemBuilder.getPvModel().generateResult();
+        System.out.println(s);
+        System.out.println(s1);
     }
 }

+ 0 - 2
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/model2/TruenessRefernece.java

@@ -13,12 +13,10 @@ import java.util.*;
 public class TruenessRefernece extends PVModel {
 
     private List<TruenessReferneceItem> items = new ArrayList<>();
-    private String[] specimensName;
 
 
     public TruenessRefernece(double[][] data, InspectionConfigVO configVO) {
         super(data, configVO);
-        this.specimensName = configVO.getSpecimensName();
         final RealMatrix realMatrix = MatrixUtils.createRealMatrix(data);
         for (int i = 0; i < specimensName.length; i++) {
             double[][] sub = new double[data.length][configVO.getRepeatNum()];

+ 12 - 8
ibps-provider-root/modules/provider-business/src/main/java/com/lc/ibps/components/verification/service/impl/PerformanceVerificationServiceImpl.java

@@ -13,6 +13,7 @@ import com.lc.ibps.components.verification.report.ReportDataDTO;
 import com.lc.ibps.components.verification.report.ReportFactory;
 import com.lc.ibps.components.verification.service.PerformanceVerificationService;
 import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
@@ -75,14 +76,17 @@ public class PerformanceVerificationServiceImpl implements PerformanceVerificati
         InspectionConfigVO config = getInspectionConfig(id);
         PVItemBuilder builder = PVItemBuilder.getInstance(config);
         Experimental experimental = experimentalRepository.load(id);
-        double[][] object = JSON.parseObject(experimental.getData().getShiYanShuJu(), double[][].class);
-        builder.buildPVModel(object);
-
-        ReportDataDTO dataDTO = ReportFactory.build(builder);
-        experimental.getData().setJiSuanJieGuo(JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect));
-        experimental.getData().setShiYanJieLun(builder.getPvModel().generateResult());
-        experimental.save();
-        return dataDTO;
+        if(StringUtils.isNotEmpty(experimental.getData().getShiYanShuJu())) {
+            double[][] object = JSON.parseObject(experimental.getData().getShiYanShuJu(), double[][].class);
+            builder.buildPVModel(object);
+
+            ReportDataDTO dataDTO = ReportFactory.build(builder);
+            experimental.getData().setJiSuanJieGuo(JSONObject.toJSONString(dataDTO, SerializerFeature.DisableCircularReferenceDetect));
+            experimental.getData().setShiYanJieLun(builder.getPvModel().generateResult());
+            experimental.save();
+            return dataDTO;
+        }
+        return null;
     }
 
     private InspectionConfigVO getInspectionConfig(String id) {

+ 7 - 3
ibps-provider-root/modules/provider-business/src/main/resources/com/lc/ibps/pv/persistence/mapping/ExperimentalConfig.map.xml

@@ -17,17 +17,19 @@
 		<result property="target" column="TARGET_" jdbcType="VARCHAR"/>
 		<result property="sn" column="SN_" jdbcType="VARCHAR"/>
 		<result property="config" column="CONFIG_" jdbcType="BLOB"/>
+		<result property="icon" column="ICON_" jdbcType="VARCHAR"/>
+		<result property="targetKey" column="TARGET_KEY_" jdbcType="VARCHAR"/>
 	</resultMap>
 	
 	<sql id="columns">
-		ID_,TENANT_ID_,IP_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,SHI_FOU_GUO_SHEN_,DI_DIAN_,KUAI_ZHAO_,TYPE_,TARGET_,SN_,CONFIG_
+		ID_,TENANT_ID_,IP_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,SHI_FOU_GUO_SHEN_,DI_DIAN_,KUAI_ZHAO_,TYPE_,TARGET_,SN_,CONFIG_,ICON_,TARGET_KEY_
 	</sql>
 	
 	<insert id="create" parameterType="com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigPo">
 		INSERT INTO T_XNYZPZXX
 		(<include refid="columns"/>)
 		VALUES 
-		(#{id,jdbcType=VARCHAR}, #{tenantId,jdbcType=VARCHAR}, #{ip,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{shiFouGuoShen,jdbcType=VARCHAR}, #{diDian,jdbcType=VARCHAR}, #{kuaiZhao,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{target,jdbcType=VARCHAR}, #{sn,jdbcType=VARCHAR}, #{config,jdbcType=BLOB})
+		(#{id,jdbcType=VARCHAR}, #{tenantId,jdbcType=VARCHAR}, #{ip,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{shiFouGuoShen,jdbcType=VARCHAR}, #{diDian,jdbcType=VARCHAR}, #{kuaiZhao,jdbcType=VARCHAR}, #{type,jdbcType=VARCHAR}, #{target,jdbcType=VARCHAR}, #{sn,jdbcType=VARCHAR}, #{config,jdbcType=BLOB}, #{icon,jdbcType=VARCHAR}, #{targetKey,jdbcType=VARCHAR})
 	</insert>
 	
 	<select id="get" parameterType="java.lang.String" resultMap="ExperimentalConfigPo">
@@ -81,7 +83,9 @@
 		TYPE_=#{type,jdbcType=VARCHAR},
 		TARGET_=#{target,jdbcType=VARCHAR},
 		SN_=#{sn,jdbcType=VARCHAR},
-		CONFIG_=#{config,jdbcType=BLOB}
+		CONFIG_=#{config,jdbcType=BLOB},
+		ICON_=#{icon,jdbcType=VARCHAR},
+		TARGET_KEY_=#{targetKey,jdbcType=VARCHAR}
 		WHERE
 		ID_=#{id}
 	</update>

+ 131 - 0
ibps-provider-root/modules/provider-business/src/main/resources/com/lc/ibps/pv/persistence/mapping/ExperimentalConfigDetail.map.xml

@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo">
+	<!--<cache type="net.oschina.j2cache.mybatis.J2CacheAdapter"/>-->
+	<resultMap id="ExperimentalConfigDetailPo" type="com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo">
+		<id property="id" column="ID_" jdbcType="VARCHAR"/>
+		<result property="parentId" column="PARENT_ID_" jdbcType="VARCHAR"/>
+		<result property="tenantId" column="TENANT_ID_" jdbcType="VARCHAR"/>
+		<result property="ip" column="IP_" jdbcType="VARCHAR"/>
+		<result property="createBy" column="CREATE_BY_" jdbcType="VARCHAR"/>
+		<result property="createTime" column="CREATE_TIME_" jdbcType="TIMESTAMP"/>
+		<result property="updateBy" column="UPDATE_BY_" jdbcType="VARCHAR"/>
+		<result property="updateTime" column="UPDATE_TIME_" jdbcType="TIMESTAMP"/>
+		<result property="methodName" column="METHOD_NAME_" jdbcType="VARCHAR"/>
+		<result property="methodType" column="METHOD_TYPE_" jdbcType="VARCHAR"/>
+		<result property="sn" column="SN_" jdbcType="VARCHAR"/>
+		<result property="isBasic" column="IS_BASIC" jdbcType="VARCHAR"/>
+		<result property="idDisabled" column="ID_DISABLED_" jdbcType="VARCHAR"/>
+		<result property="isPublic" column="IS_PUBLIC_" jdbcType="VARCHAR"/>
+		<result property="step" column="STEP_" jdbcType="BLOB"/>
+		<result property="criterion" column="CRITERION_" jdbcType="BLOB"/>
+		<result property="references" column="REFERENCES_" jdbcType="BLOB"/>
+		<result property="params" column="PARAMS_" jdbcType="BLOB"/>
+		<result property="formulas" column="FORMULAS_" jdbcType="BLOB"/>
+		<result property="template" column="TEMPLATE_" jdbcType="BLOB"/>
+		<result property="templateDesc" column="TEMPLATE_DESC_" jdbcType="BLOB"/>
+		<result property="chartOption" column="CHART_OPTION_" jdbcType="BLOB"/>
+		<result property="scope" column="SCOPE_" jdbcType="VARCHAR"/>
+	</resultMap>
+	
+	<sql id="columns">
+		ID_,PARENT_ID_,TENANT_ID_,IP_,CREATE_BY_,CREATE_TIME_,UPDATE_BY_,UPDATE_TIME_,METHOD_NAME_,METHOD_TYPE_,SN_,IS_BASIC,ID_DISABLED_,IS_PUBLIC_,STEP_,CRITERION_,REFERENCES_,PARAMS_,FORMULAS_,TEMPLATE_,TEMPLATE_DESC_,CHART_OPTION_,SCOPE_
+	</sql>
+	
+	<insert id="create" parameterType="com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo">
+		INSERT INTO T_XNYZPZXQ
+		(<include refid="columns"/>)
+		VALUES 
+		(#{id,jdbcType=VARCHAR}, #{parentId,jdbcType=VARCHAR}, #{tenantId,jdbcType=VARCHAR}, #{ip,jdbcType=VARCHAR}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{methodName,jdbcType=VARCHAR}, #{methodType,jdbcType=VARCHAR}, #{sn,jdbcType=VARCHAR}, #{isBasic,jdbcType=VARCHAR}, #{idDisabled,jdbcType=VARCHAR}, #{isPublic,jdbcType=VARCHAR}, #{step,jdbcType=BLOB}, #{criterion,jdbcType=BLOB}, #{references,jdbcType=BLOB}, #{params,jdbcType=BLOB}, #{formulas,jdbcType=BLOB}, #{template,jdbcType=BLOB}, #{templateDesc,jdbcType=BLOB}, #{chartOption,jdbcType=BLOB}, #{scope,jdbcType=VARCHAR})
+	</insert>
+	
+	<select id="get" parameterType="java.lang.String" resultMap="ExperimentalConfigDetailPo">
+		SELECT <include refid="columns"/> FROM T_XNYZPZXQ 
+		WHERE 
+		ID_=#{id}
+	</select>
+	
+	
+	<sql id="querySql" >
+		SELECT <include refid="columns"/> FROM T_XNYZPZXQ
+		<where>
+			<if test="@o.Ognl@isNotEmpty(whereSql)">
+				${whereSql}
+			</if>
+		</where>
+		<if test="@o.Ognl@isNotEmpty(orderBySql)">
+			ORDER BY ${orderBySql}
+		</if>
+		<if test="@o.Ognl@isEmpty(orderBySql)">
+			ORDER BY ID_ DESC
+		</if>
+	</sql>
+	
+	<select id="query" parameterType="java.util.Map" resultMap="ExperimentalConfigDetailPo">
+		<include refid="querySql"/>
+	</select>
+	
+	<select id="queryIds" parameterType="java.util.Map" resultMap="ExperimentalConfigDetailPo">
+		SELECT ID_ FROM (<include refid="querySql"/>) T
+	</select>
+	
+	<select id="findByIds" resultMap="ExperimentalConfigDetailPo">
+		SELECT <include refid="columns"/> FROM T_XNYZPZXQ
+			WHERE ID_ in 
+			<foreach item="id" index="index" collection="ids" open="(" separator="," close=")">  
+				#{id}  
+			</foreach>  		
+			ORDER BY ID_ DESC			
+	</select>	
+	
+	<update id="update" parameterType="com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo">
+		UPDATE T_XNYZPZXQ SET
+		PARENT_ID_=#{parentId,jdbcType=VARCHAR},
+		TENANT_ID_=#{tenantId,jdbcType=VARCHAR},
+		IP_=#{ip,jdbcType=VARCHAR},
+		UPDATE_BY_=#{updateBy,jdbcType=VARCHAR},
+		UPDATE_TIME_=#{updateTime,jdbcType=TIMESTAMP},
+		METHOD_NAME_=#{methodName,jdbcType=VARCHAR},
+		METHOD_TYPE_=#{methodType,jdbcType=VARCHAR},
+		SN_=#{sn,jdbcType=VARCHAR},
+		IS_BASIC=#{isBasic,jdbcType=VARCHAR},
+		ID_DISABLED_=#{idDisabled,jdbcType=VARCHAR},
+		IS_PUBLIC_=#{isPublic,jdbcType=VARCHAR},
+		STEP_=#{step,jdbcType=BLOB},
+		CRITERION_=#{criterion,jdbcType=BLOB},
+		REFERENCES_=#{references,jdbcType=BLOB},
+		PARAMS_=#{params,jdbcType=BLOB},
+		FORMULAS_=#{formulas,jdbcType=BLOB},
+		TEMPLATE_=#{template,jdbcType=BLOB},
+		TEMPLATE_DESC_=#{templateDesc,jdbcType=BLOB},
+		CHART_OPTION_=#{chartOption,jdbcType=BLOB},
+		SCOPE_=#{scope,jdbcType=VARCHAR}
+		WHERE
+		ID_=#{id}
+	</update>
+	
+	<delete id="remove" parameterType="java.lang.String">
+		DELETE FROM T_XNYZPZXQ 
+		WHERE
+		ID_=#{id}
+	</delete>
+	
+	<delete id="deleteByMainId">
+	    DELETE FROM T_XNYZPZXQ
+	    WHERE
+	    PARENT_ID_=#{mainId}
+	</delete>    
+	
+	<select id="findByMainId" resultMap="ExperimentalConfigDetailPo">
+	    SELECT <include refid="columns"/>
+	    FROM T_XNYZPZXQ 
+	    WHERE PARENT_ID_=#{mainId}
+	</select>
+	
+	<select id="findIdsByMainId" parameterType="java.util.Map" resultMap="ExperimentalConfigDetailPo">
+		SELECT ID_ FROM T_XNYZPZXQ
+	    WHERE
+	    PARENT_ID_=#{mainId}
+	</select>
+	
+</mapper>

+ 10 - 0
ibps-provider-root/modules/provider-business/src/main/resources/pv/report/precisionRepeatability.ftl

@@ -0,0 +1,10 @@
+<#list specimensName! as name>
+    <h3>${name} 结论判断:</h3>
+    <p>
+      <#if (cvs[name?index] > batchCVSValue)>
+          计算得出的变异系数 ${cvs[name?index]} > ${teaFormat}, 验证不合格。
+      <#else>
+          计算得出的变异系数 ${cvs[name?index]} ≤ ${teaFormat}, 验证合格。
+      </#if>
+    </p>
+</#list>

+ 1 - 1
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/PvBaseTest.java

@@ -14,7 +14,7 @@ import com.lc.ibps.api.base.id.IdGenerator;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-16 11:39:20
+ * 创建时间:2024-05-29 08:52:40
  *</pre>
  */
 @ContextConfiguration({"classpath:conf/components-test.xml"})

+ 60 - 0
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/pv/domain/ExperimentalConfigDetailTest.java

@@ -0,0 +1,60 @@
+package com.lc.ibps.components.pv.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.springframework.test.annotation.Rollback;
+
+import com.lc.ibps.components.pv.domain.ExperimentalConfigDetail;
+import com.lc.ibps.components.pv.repository.ExperimentalConfigDetailRepository;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+import com.lc.ibps.components.PvBaseTest;
+
+/**
+ * 性能验证配置详情 领域对象实体单元测试类
+ *
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:41
+ *</pre>
+ */
+public class ExperimentalConfigDetailTest extends PvBaseTest{
+	 
+	@Resource
+	private ExperimentalConfigDetailRepository experimentalConfigDetailRepository;
+	
+	@Test
+	@Rollback(true)
+	public void create(){				
+		ExperimentalConfigDetail experimentalConfigDetail = experimentalConfigDetailRepository.newInstance();
+		
+		ExperimentalConfigDetailPo experimentalConfigDetailPo=new ExperimentalConfigDetailPo();
+		experimentalConfigDetailPo.setId(idGenerator.getId());
+		
+		experimentalConfigDetail.setData(experimentalConfigDetailPo);
+		
+		List<String> ids = new ArrayList<String>();
+		
+		experimentalConfigDetail.create();	
+		ids.add(experimentalConfigDetail.getId());
+						
+		ExperimentalConfigDetail experimentalConfigDetail2 = experimentalConfigDetailRepository.newInstance();
+		experimentalConfigDetailPo.setId(idGenerator.getId());
+		experimentalConfigDetail2.setData(experimentalConfigDetailPo);
+		
+		experimentalConfigDetail2.create();
+		ids.add(experimentalConfigDetail2.getId());
+		
+		List<ExperimentalConfigDetailPo> experimentalConfigDetailPoList = experimentalConfigDetailRepository.findByIds(ids);
+		Assert.assertTrue(experimentalConfigDetailPoList.size()>=2);
+		
+		List<ExperimentalConfigDetailPo>experimentalConfigDetail1 = experimentalConfigDetailRepository.findAll();
+		Assert.assertTrue(experimentalConfigDetail1.size()>=2);
+
+	}
+}

+ 1 - 1
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/pv/domain/ExperimentalConfigTest.java

@@ -20,7 +20,7 @@ import com.lc.ibps.components.PvBaseTest;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:14
+ * 创建时间:2024-05-29 08:52:34
  *</pre>
  */
 public class ExperimentalConfigTest extends PvBaseTest{

+ 1 - 1
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigDaoTest.java

@@ -17,7 +17,7 @@ import com.lc.ibps.components.PvBaseTest;
  *<pre> 
  * 开发公司:深圳市金源信通科技有限公司
  * 开发人员:codegen
- * 创建时间:2024-05-22 10:29:11
+ * 创建时间:2024-05-29 08:52:32
  *</pre>
  */
 public class ExperimentalConfigDaoTest extends PvBaseTest{

+ 55 - 0
ibps-provider-root/modules/provider-business/src/test/java/com/lc/ibps/components/pv/persistence/dao/ExperimentalConfigDetailDaoTest.java

@@ -0,0 +1,55 @@
+package com.lc.ibps.components.pv.persistence.dao;
+
+import javax.annotation.Resource;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.springframework.test.annotation.Rollback;
+
+import com.lc.ibps.components.pv.persistence.dao.ExperimentalConfigDetailDao;
+import com.lc.ibps.components.pv.persistence.dao.ExperimentalConfigDetailQueryDao;
+import com.lc.ibps.components.pv.persistence.entity.ExperimentalConfigDetailPo;
+import com.lc.ibps.components.PvBaseTest;
+
+/**
+ * 性能验证配置详情 dao单元测试类
+ *
+ *<pre> 
+ * 开发公司:深圳市金源信通科技有限公司
+ * 开发人员:codegen
+ * 创建时间:2024-05-29 08:52:39
+ *</pre>
+ */
+public class ExperimentalConfigDetailDaoTest extends PvBaseTest{
+
+	@Resource
+	private ExperimentalConfigDetailDao experimentalConfigDetailDao;
+	
+	@Resource
+	private ExperimentalConfigDetailQueryDao experimentalConfigDetailQueryDao;
+		
+	@Test
+	@Rollback(true)
+	public void testCrud(){
+		ExperimentalConfigDetailPo experimentalConfigDetailPo=new ExperimentalConfigDetailPo();
+		experimentalConfigDetailPo.setId(idGenerator.getId());
+		
+		//创建一实体
+		experimentalConfigDetailDao.create(experimentalConfigDetailPo);
+        Assert.assertNotNull(experimentalConfigDetailPo.getId());
+        logger.debug("experimentalConfigDetailPo1:"+ experimentalConfigDetailPo.getId());
+		//获取一实体
+		ExperimentalConfigDetailPo experimentalConfigDetailPo2=experimentalConfigDetailQueryDao.get(experimentalConfigDetailPo.getId());
+		Assert.assertNotNull(experimentalConfigDetailPo2);
+		logger.debug("experimentalConfigDetailPo2:" + experimentalConfigDetailPo2.toString());
+		//更新一实体
+		experimentalConfigDetailDao.update(experimentalConfigDetailPo2);
+		
+		ExperimentalConfigDetailPo experimentalConfigDetailPo3=experimentalConfigDetailQueryDao.get(experimentalConfigDetailPo.getId());
+		Assert.assertNotNull(experimentalConfigDetailPo3);
+		logger.debug("experimentalConfigDetailPo3:"+experimentalConfigDetailPo3.toString());
+		//删除一实体
+		//experimentalConfigDetailDao.remove(experimentalConfigDetailPo.getId());
+	}
+	
+}