liuyc 2 жил өмнө
parent
commit
2b58424520
33 өөрчлөгдсөн 974 нэмэгдсэн , 33 устгасан
  1. 103 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialMaterialMobilization.java
  2. 98 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialSampleInfo.java
  3. 30 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialMaterialMobilizationVO.java
  4. 19 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/wrapper/TrialMaterialMobilizationWarpper.java
  5. 50 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TrialClassificationConfiguration.java
  6. 27 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TrialSummaryClassificationConfiguration.java
  7. 6 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTree.java
  8. 24 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TrialClassificationConfigurationTree.java
  9. 18 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TrialClassificationConfigurationTreeVO.java
  10. 67 0
      blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialMaterialController.java
  11. 14 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialMaterialMobilizationMapper.java
  12. 41 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialMaterialMobilizationMapper.xml
  13. 8 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialSampleInfoMapper.java
  14. 34 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialSampleInfoMapper.xml
  15. 18 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialMaterialMobilizationService.java
  16. 7 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialSampleInfoService.java
  17. 73 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialMaterialMobilizationServiceImpl.java
  18. 14 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSampleInfoServiceImpl.java
  19. 4 11
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ProjectInfoController.java
  20. 64 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TrialClassificationConfigurationController.java
  21. 47 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TrialSummaryClassificationConfigurationController.java
  22. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ProjectInfoMapper.xml
  23. 13 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TrialClassificationConfigurationMapper.java
  24. 25 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TrialClassificationConfigurationMapper.xml
  25. 7 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TrialSummaryClassificationConfigurationMapper.java
  26. 19 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TrialSummaryClassificationConfigurationMapper.xml
  27. 15 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/ITrialClassificationConfigurationService.java
  28. 11 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/ITrialSummaryClassificationConfigurationService.java
  29. 0 8
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java
  30. 1 12
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java
  31. 90 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/TrialClassificationConfigurationServiceImpl.java
  32. 26 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/TrialSummaryClassificationConfigurationServiceImpl.java
  33. 0 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

+ 103 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialMaterialMobilization.java

@@ -0,0 +1,103 @@
+package org.springblade.business.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@TableName("u_trial_material_mobilization")
+@EqualsAndHashCode(callSuper = true)
+public class TrialMaterialMobilization extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 记录人
+     */
+    private Long userId;
+
+    /**
+     * 材料名称
+     */
+    private String materialName;
+
+    /**
+     * 材料类型
+     */
+    private Integer materialType;
+
+    /**
+     * 规格型号
+     */
+    private String specificationModel;
+
+    /**
+     * 规格编号
+     */
+    private String specificationNumber;
+
+    /**
+     * 材料单价
+     */
+    private BigDecimal materialPrice;
+
+    /**
+     * 材料数量
+     */
+    private Integer materialCount;
+
+    /**
+     * 计算单位
+     */
+    private String calculationUnit;
+
+    /**
+     * 生产批号
+     */
+    private Integer batchNumber;
+
+    /**
+     * 进场日期
+     */
+    private Date mobilizationDate;
+
+    /**
+     * 拟定部位
+     */
+    private String proposedPosition;
+
+    /**
+     * 供应商单位
+     */
+    private String supplierUnit;
+
+    /**
+     * 生产地/厂家
+     */
+    private String placeOfProduction;
+
+    /**
+     * 生产合格证
+     */
+    private String productionCertificate;
+
+    /**
+     * 厂家质检报告
+     */
+    private String qualityInspectionReport;
+
+    /**
+     * 其他附件
+     */
+    private String otherAccessories;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+
+}

+ 98 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialSampleInfo.java

@@ -0,0 +1,98 @@
+package org.springblade.business.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import java.util.Date;
+
+@Data
+@TableName("u_trial_sample_info")
+@EqualsAndHashCode(callSuper = true)
+public class TrialSampleInfo extends BaseEntity {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 记录人
+     */
+    private Long userId;
+
+    /**
+     * 样品名称
+     */
+    private String materialName;
+
+    /**
+     * 规格型号
+     */
+    private String specificationModel;
+
+    /**
+     * 样品编号
+     */
+    private String specificationNumber;
+
+    /**
+     * 试样数量
+     */
+    private Integer materialCount;
+
+    /**
+     * 代表数量
+     */
+    private Integer representativeCount;
+
+    /**
+     * 计算单位
+     */
+    private String calculationUnit;
+
+    /**
+     * 生产批号
+     */
+    private Integer batchNumber;
+
+    /**
+     * 拟定部位
+     */
+    private String proposedPosition;
+
+    /**
+     * 供应商单位
+     */
+    private String supplierUnit;
+
+    /**
+     * 取样地点
+     */
+    private String samplingLocation;
+
+    /**
+     * 样品描述
+     */
+    private String sampleDescription;
+
+    /**
+     * 进场日期
+     */
+    private Date mobilizationDate;
+
+    /**
+     * 取样日期
+     */
+    private Date samplingDate;
+
+    /**
+     * 是否委外 '0'=否 '1'=是
+     */
+    private Integer isOutsourcing;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+
+}

+ 30 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialMaterialMobilizationVO.java

@@ -0,0 +1,30 @@
+package org.springblade.business.vo;
+
+import lombok.Data;
+import org.springblade.business.entity.TrialMaterialMobilization;
+
+@Data
+public class TrialMaterialMobilizationVO extends TrialMaterialMobilization {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 材料类型
+     */
+    private Integer materialType;
+
+    /**
+     * 查询输入框
+     */
+    private String queryValue;
+
+    /**
+     * 开始时间
+     */
+    private String startTime;
+
+    /**
+     * 结束时间
+     */
+    private String endTime;
+
+}

+ 19 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/wrapper/TrialMaterialMobilizationWarpper.java

@@ -0,0 +1,19 @@
+package org.springblade.business.wrapper;
+
+import org.springblade.business.entity.TrialMaterialMobilization;
+import org.springblade.business.vo.TrialMaterialMobilizationVO;
+import org.springblade.core.mp.support.BaseEntityWrapper;
+import org.springblade.core.tool.utils.BeanUtil;
+
+import java.util.Objects;
+
+public class TrialMaterialMobilizationWarpper extends BaseEntityWrapper<TrialMaterialMobilization, TrialMaterialMobilizationVO> {
+    
+    public static TrialMaterialMobilizationWarpper build(){return new TrialMaterialMobilizationWarpper();}
+
+    @Override
+    public TrialMaterialMobilizationVO entityVO(TrialMaterialMobilization entity) {
+        return Objects.requireNonNull(BeanUtil.copy(entity, TrialMaterialMobilizationVO.class));
+    }
+
+}

+ 50 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TrialClassificationConfiguration.java

@@ -0,0 +1,50 @@
+package org.springblade.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+
+/**
+ * 试验分类配置表
+ */
+@Data
+@TableName("m_trial_classification_configuration")
+@EqualsAndHashCode(callSuper = true)
+public class TrialClassificationConfiguration extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 节点名
+     */
+    @ApiModelProperty(value = "节点名")
+    private String nodeName;
+
+    /**
+     * 节点类型
+     */
+    @ApiModelProperty(value = "节点类型")
+    private Integer nodeType;
+
+    /**
+     * 父级id
+     */
+    @ApiModelProperty(value = "父级id")
+    private Long parentId;
+
+    /**
+     * 祖级id列表
+     */
+    @ApiModelProperty(value = "祖级id列表")
+    private String ancestors;
+
+    /**
+     * 排序
+     */
+    @ApiModelProperty(value = "排序")
+    private Integer sort;
+
+}

+ 27 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TrialSummaryClassificationConfiguration.java

@@ -0,0 +1,27 @@
+package org.springblade.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+
+/**
+ * 试验汇总分类配置表
+ */
+@Data
+@TableName("m_trial_summary_classification_configuration")
+@EqualsAndHashCode(callSuper = true)
+public class TrialSummaryClassificationConfiguration extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    private String className;
+
+    private String trialTreeIds;
+
+    private Long excelId;
+
+    private Integer sort;
+
+}

+ 6 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTree.java

@@ -165,4 +165,10 @@ public class WbsTree extends BaseEntity {
     @ApiModelProperty(value = "导入wbs划分匹配字段")
     private String importMatchingInfo;
 
+    /**
+     * 配合比试验ids
+     */
+    @ApiModelProperty(value = "配合比试验ids")
+    private String mixRatioTestIds;
+
 }

+ 24 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TrialClassificationConfigurationTree.java

@@ -0,0 +1,24 @@
+package org.springblade.manager.vo;
+
+import lombok.Data;
+import org.springblade.core.tool.node.BaseNode;
+
+
+@Data
+public class TrialClassificationConfigurationTree extends BaseNode<TrialClassificationConfigurationTree> {
+
+    private Long id;
+
+    private String nodeName;
+
+    private Integer nodeType;
+
+    private String ancestors;
+
+    private Integer sort;
+
+    private Long parentId;
+
+    private boolean hasChildren;
+
+}

+ 18 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TrialClassificationConfigurationTreeVO.java

@@ -0,0 +1,18 @@
+package org.springblade.manager.vo;
+
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class TrialClassificationConfigurationTreeVO implements Serializable {
+
+    //外委检测
+    private List<TrialClassificationConfigurationTree> leftTree;
+
+    //第三方检测
+    private List<TrialClassificationConfigurationTree> rightTree;
+
+}

+ 67 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialMaterialController.java

@@ -0,0 +1,67 @@
+package org.springblade.business.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.business.entity.TrialMaterialMobilization;
+import org.springblade.business.service.ITrialMaterialMobilizationService;
+import org.springblade.business.service.ITrialSampleInfoService;
+import org.springblade.business.vo.TrialMaterialMobilizationVO;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/material")
+@Api(value = "试验材料管理", tags = "试验材料管理接口")
+public class TrialMaterialController extends BladeController {
+
+    private final ITrialMaterialMobilizationService iTrialMaterialMobilizationService;
+    private final ITrialSampleInfoService iTrialSampleInfoService;
+
+    @GetMapping("/mobilization/detail")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "材料详情", notes = "传入id")
+    public R<TrialMaterialMobilization> mobilizationDetail(@Valid @RequestParam Long id) {
+        return R.data(iTrialMaterialMobilizationService.mobilizationDetail(id));
+    }
+
+    @GetMapping("/mobilization/page")
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "材料界面分页", notes = "page")
+    public R<IPage<TrialMaterialMobilizationVO>> mobilizationPage(Query query, TrialMaterialMobilizationVO obj) {
+        return R.data(iTrialMaterialMobilizationService.selectPage(Condition.getPage(query), obj));
+    }
+
+    @PostMapping("/mobilization/submit")
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "材料新增或修改", notes = "传入TrialMaterialMobilization对象")
+    public R<Object> mobilizationSubmit(@Valid @RequestBody TrialMaterialMobilization obj) {
+        return R.status(iTrialMaterialMobilizationService.mobilizationSubmit(obj));
+    }
+
+    @PostMapping("/mobilization/remove")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "材料批量删除", notes = "传入ids")
+    public R<Object> mobilizationRemove(@Valid @RequestParam String ids) {
+        return R.status(iTrialMaterialMobilizationService.deleteLogic(Func.toLongList(ids)));
+    }
+
+    @PostMapping("/mobilization/copy")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "材料批量复制", notes = "传入ids")
+    public R<Object> mobilizationCopy(@Valid @RequestParam String ids) {
+        return R.status(iTrialMaterialMobilizationService.mobilizationCopy(ids));
+    }
+
+
+}

+ 14 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialMaterialMobilizationMapper.java

@@ -0,0 +1,14 @@
+package org.springblade.business.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.apache.ibatis.annotations.Param;
+import org.springblade.business.entity.TrialMaterialMobilization;
+
+import java.util.List;
+
+public interface TrialMaterialMobilizationMapper extends BaseMapper<TrialMaterialMobilization> {
+
+    List<TrialMaterialMobilization> selectPages(IPage<TrialMaterialMobilization> page,@Param("obj") TrialMaterialMobilization obj);
+
+}

+ 41 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialMaterialMobilizationMapper.xml

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.business.mapper.TrialMaterialMobilizationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="ResultEntityMap" type="org.springblade.business.entity.TrialMaterialMobilization">
+        <result column="id" property="id"/>
+        <result column="user_id" property="userId"/>
+        <result column="material_name" property="materialName"/>
+        <result column="material_type" property="materialType"/>
+        <result column="specification_model" property="specificationModel"/>
+        <result column="specification_number" property="specificationNumber"/>
+        <result column="material_price" property="materialPrice"/>
+        <result column="material_count" property="materialCount"/>
+        <result column="calculation_unit" property="calculationUnit"/>
+        <result column="batch_number" property="batchNumber"/>
+        <result column="mobilization_date" property="mobilizationDate"/>
+        <result column="proposed_position" property="proposedPosition"/>
+        <result column="supplier_unit" property="supplierUnit"/>
+        <result column="place_of_production" property="placeOfProduction"/>
+        <result column="production_certificate" property="productionCertificate"/>
+        <result column="quality_inspection_report" property="qualityInspectionReport"/>
+        <result column="other_accessories" property="otherAccessories"/>
+        <result column="sort" property="sort"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+    <select id="selectPages" resultType="org.springblade.business.entity.TrialMaterialMobilization">
+        SELECT * FROM u_trial_material_mobilization WHERE is_deleted = 0
+        <if test="obj.materialType != null">
+            AND material_type = #{obj.materialType}
+        </if>
+    </select>
+
+</mapper>

+ 8 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialSampleInfoMapper.java

@@ -0,0 +1,8 @@
+package org.springblade.business.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.business.entity.TrialSampleInfo;
+
+public interface TrialSampleInfoMapper extends BaseMapper<TrialSampleInfo> {
+
+}

+ 34 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialSampleInfoMapper.xml

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.business.mapper.TrialSampleInfoMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="ResultEntityMap" type="org.springblade.business.entity.TrialSampleInfo">
+        <result column="id" property="id"/>
+        <result column="user_id" property="userId"/>
+        <result column="material_name" property="materialName"/>
+        <result column="specification_model" property="specificationModel"/>
+        <result column="specification_number" property="specificationNumber"/>
+        <result column="material_count" property="materialCount"/>
+        <result column="representative_count" property="representativeCount"/>
+        <result column="calculation_unit" property="calculationUnit"/>
+        <result column="batch_number" property="batchNumber"/>
+        <result column="supplier_unit" property="supplierUnit"/>
+        <result column="sampling_location" property="samplingLocation"/>
+        <result column="mobilization_date" property="mobilizationDate"/>
+        <result column="proposed_position" property="proposedPosition"/>
+        <result column="sample_description" property="sampleDescription"/>
+        <result column="sampling_date" property="samplingDate"/>
+        <result column="is_outsourcing" property="isOutsourcing"/>
+        <result column="sort" property="sort"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+
+</mapper>

+ 18 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialMaterialMobilizationService.java

@@ -0,0 +1,18 @@
+package org.springblade.business.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.springblade.business.entity.TrialMaterialMobilization;
+import org.springblade.business.vo.TrialMaterialMobilizationVO;
+import org.springblade.core.mp.base.BaseService;
+
+
+public interface ITrialMaterialMobilizationService extends BaseService<TrialMaterialMobilization> {
+    boolean mobilizationSubmit(TrialMaterialMobilization obj);
+
+    TrialMaterialMobilization mobilizationDetail(Long id);
+
+    boolean mobilizationCopy(String ids);
+
+    IPage<TrialMaterialMobilizationVO> selectPage(IPage<TrialMaterialMobilization> page, TrialMaterialMobilizationVO obj);
+
+}

+ 7 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialSampleInfoService.java

@@ -0,0 +1,7 @@
+package org.springblade.business.service;
+
+import org.springblade.business.entity.TrialSampleInfo;
+import org.springblade.core.mp.base.BaseService;
+
+public interface ITrialSampleInfoService extends BaseService<TrialSampleInfo> {
+}

+ 73 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialMaterialMobilizationServiceImpl.java

@@ -0,0 +1,73 @@
+package org.springblade.business.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import lombok.AllArgsConstructor;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DateUtils;
+import org.springblade.business.entity.TrialMaterialMobilization;
+import org.springblade.business.mapper.TrialMaterialMobilizationMapper;
+import org.springblade.business.service.ITrialMaterialMobilizationService;
+import org.springblade.business.vo.TrialMaterialMobilizationVO;
+import org.springblade.business.wrapper.TrialMaterialMobilizationWarpper;
+import org.springblade.common.utils.SnowFlakeUtil;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.secure.utils.SecureUtil;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@AllArgsConstructor
+public class TrialMaterialMobilizationServiceImpl extends BaseServiceImpl<TrialMaterialMobilizationMapper, TrialMaterialMobilization> implements ITrialMaterialMobilizationService {
+
+    @Override
+    public boolean mobilizationSubmit(TrialMaterialMobilization obj) {
+        if (ObjectUtil.isEmpty(SecureUtil.getUserId())) {
+            throw new ServiceException("获取用户信息失败");
+        }
+        obj.setUserId(SecureUtil.getUserId());
+        return this.saveOrUpdate(obj);
+    }
+
+    @Override
+    public TrialMaterialMobilization mobilizationDetail(Long id) {
+        return baseMapper.selectById(id);
+    }
+
+    @Override
+    public boolean mobilizationCopy(String ids) {
+        List<TrialMaterialMobilization> trialMaterialMobilizations = baseMapper.selectBatchIds(Func.toLongList(ids));
+        for (TrialMaterialMobilization obj : trialMaterialMobilizations) {
+            obj.setId(SnowFlakeUtil.getId());
+        }
+        return this.saveBatch(trialMaterialMobilizations);
+    }
+
+    @Override
+    public IPage<TrialMaterialMobilizationVO> selectPage(IPage<TrialMaterialMobilization> page, TrialMaterialMobilizationVO obj) {
+        QueryWrapper<TrialMaterialMobilization> queryWrapper = Condition.getQueryWrapper(obj);
+        if (ObjectUtil.isNotEmpty(obj.getMaterialType())) {
+            queryWrapper.lambda().eq(TrialMaterialMobilization::getMaterialType, obj.getMaterialType());
+        }
+        if (StringUtils.isNotEmpty(obj.getStartTime()) && StringUtils.isNotEmpty(obj.getEndTime())) {
+            String endTime = obj.getEndTime();
+            endTime = DateUtil.format(DateUtils.addDays(DateUtil.parse(endTime, "yyyy-MM-dd HH:mm:ss"), 1), "yyyy-MM-dd HH:mm:ss");
+            queryWrapper.lambda().between(TrialMaterialMobilization::getCreateTime, obj.getStartTime(), endTime);
+        }
+        if (ObjectUtil.isNotEmpty(obj.getQueryValue())) {
+            queryWrapper.lambda().like(TrialMaterialMobilization::getMaterialName, obj.getQueryValue());
+            queryWrapper.lambda().or().like(TrialMaterialMobilization::getSpecificationModel, obj.getQueryValue());
+            queryWrapper.lambda().or().like(TrialMaterialMobilization::getSpecificationNumber, obj.getQueryValue());
+        }
+        IPage<TrialMaterialMobilization> pages = this.page(page, queryWrapper.lambda().orderBy(true, true, TrialMaterialMobilization::getCreateTime));
+        IPage<TrialMaterialMobilizationVO> trialMaterialMobilizationVOIPage = TrialMaterialMobilizationWarpper.build().pageVO(pages);
+        List<TrialMaterialMobilizationVO> records = trialMaterialMobilizationVOIPage.getRecords();
+        return trialMaterialMobilizationVOIPage.setRecords(records);
+    }
+}

+ 14 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSampleInfoServiceImpl.java

@@ -0,0 +1,14 @@
+package org.springblade.business.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.business.entity.TrialSampleInfo;
+import org.springblade.business.mapper.TrialSampleInfoMapper;
+import org.springblade.business.service.ITrialSampleInfoService;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoMapper, TrialSampleInfo> implements ITrialSampleInfoService {
+
+}

+ 4 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ProjectInfoController.java

@@ -212,15 +212,8 @@ public class ProjectInfoController extends BladeController {
     @PostMapping("/submit-wbsTree-project")
     @ApiOperationSupport(order = 12)
     @ApiOperation(value = "保存或修改分配项目级wbs树", notes = "传入WbsTreeContractDTO")
-    public R submitWbsTreeInProject(@RequestBody WbsTreeContractDTO pawDTO) {
-        if (pawDTO.getWbsType() == 1) {
-            if (wbsTreeService.submitWbsTreeInProject(pawDTO)) {
-                return R.success("关联质检项目级树成功");
-            }
-        } else if (pawDTO.getWbsType() == 2) {
-            throw new ServiceException("当前试验功能未开放");
-        }
-        return R.fail("操作失败");
+    public R<Object> submitWbsTreeInProject(@RequestBody WbsTreeContractDTO pawDTO) {
+        return R.status(wbsTreeService.submitWbsTreeInProject(pawDTO));
     }
 
     /**
@@ -229,8 +222,8 @@ public class ProjectInfoController extends BladeController {
     @GetMapping("/get-project-contract-list")
     @ApiOperationSupport(order = 13)
     @ApiOperation(value = "根据用户id查询项目合同岗位列表信息", notes = "传入用户id")
-    public R<List<Map<String,Object>>> findProjectAndContractList(Long userId) {
-        List<Map<String,Object>> result = wbsTreeService.findProjectAndContractList(userId);
+    public R<List<Map<String, Object>>> findProjectAndContractList(Long userId) {
+        List<Map<String, Object>> result = wbsTreeService.findProjectAndContractList(userId);
         return R.data(result);
     }
 

+ 64 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TrialClassificationConfigurationController.java

@@ -0,0 +1,64 @@
+package org.springblade.manager.controller;
+
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.support.Kv;
+import org.springblade.manager.entity.TrialClassificationConfiguration;
+import org.springblade.manager.service.ITrialClassificationConfigurationService;
+import org.springblade.manager.vo.TrialClassificationConfigurationTreeVO;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
+
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/trial")
+@Api(value = "试验分类配置", tags = "试验分类配置接口")
+public class TrialClassificationConfigurationController extends BladeController {
+
+    private final ITrialClassificationConfigurationService iTrialClassificationConfigurationService;
+
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "传入节点id")
+    @RequestMapping(value = "/detail", method = RequestMethod.GET)
+    public R<TrialClassificationConfiguration> detail(@Valid @RequestParam Long id) {
+        return R.data(iTrialClassificationConfigurationService.detail(id));
+    }
+
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "新增或修改", notes = "传入TrialClassificationConfiguration对象")
+    @RequestMapping(value = "/submit", method = RequestMethod.POST)
+    public R<Object> submit(@Valid @RequestBody TrialClassificationConfiguration obj) {
+        if (iTrialClassificationConfigurationService.submit(obj)) {
+            CacheUtil.clear(SYS_CACHE);
+            Kv kv = Kv.create().set("id", String.valueOf(obj.getId()));
+            return R.data(kv);
+        }
+        return R.fail("操作失败");
+    }
+
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "删除节点", notes = "传入节点id")
+    @RequestMapping(value = "/remove", method = RequestMethod.GET)
+    public R<Object> remove(@Valid @RequestParam Long id) {
+        return R.status(iTrialClassificationConfigurationService.removeById(id));
+    }
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "加载外委、第三方树", notes = "null")
+    @RequestMapping(value = "/tree-all", method = RequestMethod.GET)
+    public R<TrialClassificationConfigurationTreeVO> treeAll() {
+        return R.data(iTrialClassificationConfigurationService.treeAll());
+    }
+
+
+}

+ 47 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TrialSummaryClassificationConfigurationController.java

@@ -0,0 +1,47 @@
+package org.springblade.manager.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.api.R;
+import org.springblade.manager.entity.TrialSummaryClassificationConfiguration;
+import org.springblade.manager.service.ITrialSummaryClassificationConfigurationService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+
+@RestController
+@AllArgsConstructor
+@RequestMapping("/trial/summary")
+@Api(value = "试验汇总分类配置", tags = "试验汇总分类配置接口")
+public class TrialSummaryClassificationConfigurationController extends BladeController {
+
+    private final ITrialSummaryClassificationConfigurationService iTrialSummaryClassificationConfigurationService;
+
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "详情", notes = "传入id")
+    @RequestMapping(value = "/detail", method = RequestMethod.GET)
+    public R<TrialSummaryClassificationConfiguration> detail(@Valid @RequestParam Long id) {
+        return R.data(iTrialSummaryClassificationConfigurationService.detail(id));
+    }
+
+    @ApiOperationSupport(order = 2)
+    @ApiOperation(value = "新增或修改", notes = "传入TrialSummaryClassificationConfiguration对象")
+    @RequestMapping(value = "/submit", method = RequestMethod.POST)
+    public R<Object> submit(@Valid @RequestBody TrialSummaryClassificationConfiguration obj) {
+        return R.status(iTrialSummaryClassificationConfigurationService.submit(obj));
+    }
+
+    @ApiOperationSupport(order = 3)
+    @ApiOperation(value = "删除节点", notes = "传入节点id")
+    @RequestMapping(value = "/remove", method = RequestMethod.GET)
+    public R<Object> remove(@Valid @RequestParam Long id) {
+        return R.status(iTrialSummaryClassificationConfigurationService.removeById(id));
+    }
+
+
+
+}

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ProjectInfoMapper.xml

@@ -96,10 +96,10 @@
         AND status = 1
     </update>
 
-
     <select id="selectProjectInfoPage" resultMap="projectInfoResultMap">
         select * from m_project_info where is_deleted = 0
     </select>
+
     <select id="selectOneAndWbsTypeById" resultType="org.springblade.manager.entity.ProjectInfo">
         SELECT *,
         (select wbs_type from m_wbs_info )

+ 13 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TrialClassificationConfigurationMapper.java

@@ -0,0 +1,13 @@
+package org.springblade.manager.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.manager.entity.TrialClassificationConfiguration;
+import org.springblade.manager.vo.TrialClassificationConfigurationTree;
+
+import java.util.List;
+
+public interface TrialClassificationConfigurationMapper extends BaseMapper<TrialClassificationConfiguration> {
+
+    List<TrialClassificationConfigurationTree> treeAll();
+
+}

+ 25 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TrialClassificationConfigurationMapper.xml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.manager.mapper.TrialClassificationConfigurationMapper">
+    <resultMap id="ResultMap" type="org.springblade.manager.entity.TrialClassificationConfiguration">
+        <result column="id" property="id"/>
+        <result column="node_name" property="nodeName"/>
+        <result column="node_type" property="nodeType"/>
+        <result column="ancestors" property="ancestors"/>
+        <result column="parent_id" property="parentId"/>
+        <result column="sort" property="sort"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+    <select id="treeAll" resultType="org.springblade.manager.vo.TrialClassificationConfigurationTree">
+        SELECT * FROM m_trial_classification_configuration WHERE is_deleted = 0 AND status = 1 ORDER BY sort
+    </select>
+
+
+</mapper>

+ 7 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TrialSummaryClassificationConfigurationMapper.java

@@ -0,0 +1,7 @@
+package org.springblade.manager.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.manager.entity.TrialSummaryClassificationConfiguration;
+
+public interface TrialSummaryClassificationConfigurationMapper extends BaseMapper<TrialSummaryClassificationConfiguration> {
+}

+ 19 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TrialSummaryClassificationConfigurationMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.manager.mapper.TrialSummaryClassificationConfigurationMapper">
+    <resultMap id="ResultMap" type="org.springblade.manager.entity.TrialSummaryClassificationConfiguration">
+        <result column="id" property="id"/>
+        <result column="class_name" property="className"/>
+        <result column="excel_id" property="excelId"/>
+        <result column="trial_tree_ids" property="trialTreeIds"/>
+        <result column="sort" property="sort"/>
+        <result column="update_user" property="updateUser"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="create_dept" property="createDept"/>
+        <result column="create_user" property="createUser"/>
+        <result column="create_time" property="createTime"/>
+        <result column="status" property="status"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
+</mapper>

+ 15 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/ITrialClassificationConfigurationService.java

@@ -0,0 +1,15 @@
+package org.springblade.manager.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.manager.entity.TrialClassificationConfiguration;
+import org.springblade.manager.vo.TrialClassificationConfigurationTreeVO;
+
+public interface ITrialClassificationConfigurationService extends BaseService<TrialClassificationConfiguration> {
+
+    TrialClassificationConfiguration detail(Long id);
+
+    boolean submit(TrialClassificationConfiguration obj);
+
+    TrialClassificationConfigurationTreeVO treeAll();
+
+}

+ 11 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/ITrialSummaryClassificationConfigurationService.java

@@ -0,0 +1,11 @@
+package org.springblade.manager.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.manager.entity.TrialSummaryClassificationConfiguration;
+
+public interface ITrialSummaryClassificationConfigurationService extends BaseService<TrialSummaryClassificationConfiguration> {
+
+    TrialSummaryClassificationConfiguration detail(Long id);
+
+    boolean submit(TrialSummaryClassificationConfiguration obj);
+}

+ 0 - 8
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java

@@ -77,11 +77,9 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
     @Override
     public boolean submitDisplayConfigTree(String ids) {
         if (StringUtils.isEmpty(ids)) {
-            //删除全部
             baseMapper.updateBatch3();
             return true;
         }
-        //获取当前已配置的显示树
         List<ArchiveTree> archiveTrees = baseMapper.selectList(Wrappers.<ArchiveTree>query().lambda()
                 .eq(ArchiveTree::getIsUploadFileDisplayConfigurationTree, 1));
         String[] idList = ids.split(",");
@@ -97,10 +95,8 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
         } else {
             int row;
             if (idList1.size() > idList2.size()) {
-                //新增
                 row = baseMapper.updateBatch(diffRent);
             } else {
-                //删除
                 row = baseMapper.updateBatch2(diffRent);
             }
             return row > 0;
@@ -146,11 +142,8 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
         archiveTreeDTO.setIsDeleted(BladeConstant.DB_NOT_DELETED);
         archiveTreeDTO.setFullName(archiveTreeDTO.getNodeName());
         if (archiveTreeDTO.getNodeType() == 1) {
-            //电子原生文件=默认存储节点
             archiveTreeDTO.setIsStorageNode(1);
         }
-
-        //默认排序
         if (archiveTreeDTO.getId() == null) {
             List<ArchiveTree> trees = baseMapper.selectList(Wrappers.<ArchiveTree>query().lambda()
                     .eq(ArchiveTree::getParentId, archiveTreeDTO.getParentId())
@@ -162,7 +155,6 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
                 }
                 return true;
             }).collect(Collectors.toList());
-            //最大sort
             Optional<ArchiveTree> max = collect.stream().max(Comparator.comparingInt(ArchiveTree::getSort));
             Integer sort = 0;
             if (max.isPresent()) {

+ 1 - 12
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java

@@ -164,7 +164,6 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
     @Transactional(rollbackFor = Exception.class)
     public boolean saveAndUpdateContract(ContractInfoVO contractInfo) {
         if (contractInfo.getId() == null) {
-            //新增
             List<ContractInfo> contractInfos = baseMapper.selectList(Wrappers.<ContractInfo>query().lambda()
                     .eq(ContractInfo::getContractName, contractInfo.getContractName())
                     .eq(ContractInfo::getPId, contractInfo.getPId())
@@ -178,7 +177,6 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
 
             boolean row = saveOrUpdate(contractInfo);
 
-            //新增合同段 监理、业主与施工wbs树信息
             if (contractInfo.getContractType().equals(2) || contractInfo.getContractType().equals(3)) {
                 if (contractInfo.getIdList().size() > 0) {
                     List<WbsTreeContractVO3> infos = contractInfo.getIdList();
@@ -191,7 +189,6 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
             return submitContractRelevantInfo(row, contractInfo);
 
         } else {
-            //编辑
             List<ContractInfo> contractInfos = baseMapper.selectList(Wrappers.<ContractInfo>query().lambda()
                     .eq(ContractInfo::getContractName, contractInfo.getContractName())
                     .eq(ContractInfo::getPId, contractInfo.getPId())
@@ -200,20 +197,17 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
             if (contractInfos.size() > 0) {
                 throw new ServiceException("合同段名称已存在当前项目下,请重新输入");
             }
-            //新增合同段
             boolean row = saveOrUpdate(contractInfo);
 
-            //关联合同段 监理、业主与施工wbs树信息
             if (contractInfo.getContractType().equals(2) || contractInfo.getContractType().equals(3)) {
                 List<WbsTreeContractVO3> idList = contractInfo.getIdList();
-                //删除当前关系信息
+
                 List<ContractRelationJlyz> resultListJLTZ = baseMapper.selectByContractRelationJlyz(contractInfo.getId());
                 if (resultListJLTZ.size() > 0) {
                     baseMapper.deleteContractRelationJLYZ(contractInfo.getId());
                 }
 
                 if (idList.size() > 0) {
-                    //新增关系信息
                     List<String> idList_SG = idList.stream().map(WbsTreeContractVO3::getContractId).collect(Collectors.toList());
                     idList_SG.forEach(ids -> {
                         baseMapper.insertContractRelationJLYZ(SnowFlakeUtil.getId(), contractInfo.getId(), ids);
@@ -227,7 +221,6 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
 
     private boolean submitContractRelevantInfo(boolean row, ContractInfoVO contractInfo) {
         if (row) {
-            //绑定用户角色信息
             List<SaveUserInfoByProjectDTO> list = saveUserInfoByProjectMapper.selectList(Wrappers.<SaveUserInfoByProjectDTO>query().lambda()
                     .eq(SaveUserInfoByProjectDTO::getProjectId, contractInfo.getPId())
                     .isNull(SaveUserInfoByProjectDTO::getContractId)
@@ -239,8 +232,6 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
                     saveUserInfoByProjectMapper.updateById(i);
                 });
             }
-
-            //获取初始化位置信息
             String projectPlace = contractInfo.getProjectPlace();
             try {
                 Map<String, Object> addressInfo = BaiduApiUtil.geocoding(projectPlace);
@@ -264,7 +255,6 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
                 queryWrapper.eq("is_deleted", contractInfo.getIsDeleted());
                 ProjectContractArea projectContractArea1 = projectContractAreaMapper.selectOne(queryWrapper);
                 if (projectContractArea1 == null) {
-                    //初始化
                     int res = projectContractAreaMapper.insert(projectContractArea);
                     return res > 0;
                 }
@@ -304,7 +294,6 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
 
     @Override
     public List<WbsTreeContractVO> tree2(String wbsId, String projectId, String contractId) {
-        //方式2
         List<WbsTreeContractVO> wbsTreeContractVOS = baseMapper.tree3(wbsId, projectId, contractId, null, null);
         return buildWbsTreeByStream(wbsTreeContractVOS);
     }

+ 90 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/TrialClassificationConfigurationServiceImpl.java

@@ -0,0 +1,90 @@
+package org.springblade.manager.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.AllArgsConstructor;
+import org.springblade.core.log.exception.ServiceException;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringPool;
+import org.springblade.manager.entity.TrialClassificationConfiguration;
+import org.springblade.manager.mapper.TrialClassificationConfigurationMapper;
+import org.springblade.manager.service.ITrialClassificationConfigurationService;
+import org.springblade.manager.vo.TrialClassificationConfigurationTree;
+import org.springblade.manager.vo.TrialClassificationConfigurationTreeVO;
+import org.springframework.stereotype.Service;
+
+import java.util.Comparator;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+@Service
+@AllArgsConstructor
+public class TrialClassificationConfigurationServiceImpl
+        extends BaseServiceImpl<TrialClassificationConfigurationMapper, TrialClassificationConfiguration>
+        implements ITrialClassificationConfigurationService {
+
+    @Override
+    public TrialClassificationConfiguration detail(Long id) {
+        return baseMapper.selectById(id);
+    }
+
+    @Override
+    public boolean submit(TrialClassificationConfiguration obj) {
+        if (Func.isEmpty(obj.getParentId())) {
+            obj.setParentId(BladeConstant.TOP_PARENT_ID);
+            obj.setAncestors(String.valueOf(BladeConstant.TOP_PARENT_ID));
+        }
+        if (obj.getParentId() > 0) {
+            TrialClassificationConfiguration parent = getById(obj.getParentId());
+            if (Func.toLong(obj.getParentId()) == Func.toLong(obj.getId())) {
+                throw new ServiceException("父节点不可选择自身!");
+            }
+            String ancestors = parent.getAncestors() + StringPool.COMMA + obj.getParentId();
+            obj.setAncestors(ancestors);
+        }
+        obj.setStatus(1);
+        obj.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+        if (obj.getId() == null) {
+            List<TrialClassificationConfiguration> trees = baseMapper.selectList(Wrappers.<TrialClassificationConfiguration>query().lambda()
+                    .eq(TrialClassificationConfiguration::getParentId, obj.getParentId())
+                    .eq(TrialClassificationConfiguration::getNodeType, obj.getNodeType())
+            );
+            List<TrialClassificationConfiguration> collect = trees.stream().filter(f -> {
+                if (f.getSort() == null) {
+                    f.setSort(0);
+                }
+                return true;
+            }).collect(Collectors.toList());
+            Optional<TrialClassificationConfiguration> max = collect.stream().max(Comparator.comparingInt(TrialClassificationConfiguration::getSort));
+            Integer sort = 0;
+            if (max.isPresent()) {
+                sort = max.get().getSort();
+            }
+            obj.setSort(sort + 1);
+        }
+        this.saveOrUpdate(obj);
+        return true;
+    }
+
+    @Override
+    public TrialClassificationConfigurationTreeVO treeAll() {
+        List<TrialClassificationConfigurationTree> all = baseMapper.treeAll();
+        for (TrialClassificationConfigurationTree tree1 : all) {
+            for (TrialClassificationConfigurationTree tree2 : all) {
+                if (tree1.getId().equals(tree2.getParentId())) {
+                    tree1.setHasChildren(true);
+                }
+            }
+        }
+        List<TrialClassificationConfigurationTree> left = all.stream().filter(f -> f.getNodeType().equals(1)).collect(Collectors.toList());
+        List<TrialClassificationConfigurationTree> right = all.stream().filter(f -> f.getNodeType().equals(2)).collect(Collectors.toList());
+        TrialClassificationConfigurationTreeVO treeVO = new TrialClassificationConfigurationTreeVO();
+        treeVO.setLeftTree(ForestNodeMerger.merge(left));
+        treeVO.setRightTree(ForestNodeMerger.merge(right));
+        return treeVO;
+    }
+
+}

+ 26 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/TrialSummaryClassificationConfigurationServiceImpl.java

@@ -0,0 +1,26 @@
+package org.springblade.manager.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.manager.entity.TrialSummaryClassificationConfiguration;
+import org.springblade.manager.mapper.TrialSummaryClassificationConfigurationMapper;
+import org.springblade.manager.service.ITrialSummaryClassificationConfigurationService;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class TrialSummaryClassificationConfigurationServiceImpl
+        extends BaseServiceImpl<TrialSummaryClassificationConfigurationMapper, TrialSummaryClassificationConfiguration>
+        implements ITrialSummaryClassificationConfigurationService {
+
+    @Override
+    public TrialSummaryClassificationConfiguration detail(Long id) {
+        return baseMapper.selectById(id);
+    }
+
+    @Override
+    public boolean submit(TrialSummaryClassificationConfiguration obj) {
+        return this.saveOrUpdate(obj);
+    }
+
+}

+ 0 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -102,7 +102,6 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         wbsTree.setImportMatchingInfo(wbsTree.getFullName());
         wbsTree.setFullName(wbsTree.getNodeName());
 
-
         //当前同级节点
         if (wbsTree.getId() == null) {
             List<WbsTree> trees = baseMapper.selectList(Wrappers.<WbsTree>query().lambda()