Forráskód Böngészése

Merge remote-tracking branch 'origin/master' into master

# Conflicts:
#	blade-service/blade-manager/src/main/java/com/mixsmart/utils/CustomFunction.java
yangyj 2 éve
szülő
commit
5871c7f13c
22 módosított fájl, 187 hozzáadás és 44 törlés
  1. 13 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialLaboratoryUserArchives.java
  2. 6 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/TrialClassificationConfiguration.java
  3. 5 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TrialClassificationConfigurationTree.java
  4. 4 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreePrivateVO.java
  5. 7 0
      blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialDeviceClassificationController.java
  6. 7 7
      blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialMaterialController.java
  7. 8 0
      blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialSievePoreController.java
  8. 2 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialDeviceClassificationService.java
  9. 2 1
      blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialMaterialMobilizationService.java
  10. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialSampleInfoService.java
  11. 9 4
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialDetectionDataServiceImpl.java
  12. 33 4
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialDeviceClassificationServiceImpl.java
  13. 26 4
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialDeviceInfoServiceImpl.java
  14. 4 3
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialMaterialMobilizationServiceImpl.java
  15. 5 2
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSampleInfoServiceImpl.java
  16. 23 9
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSelfInspectionRecordServiceImpl.java
  17. 14 3
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TrialClassificationConfigurationController.java
  18. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TrialClassificationConfigurationMapper.java
  19. 13 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/TrialClassificationConfigurationMapper.xml
  20. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/ITrialClassificationConfigurationService.java
  21. 2 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/TrialClassificationConfigurationServiceImpl.java
  22. 1 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

+ 13 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/TrialLaboratoryUserArchives.java

@@ -7,6 +7,9 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.core.mp.base.BaseEntity;
 
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
 import java.util.Date;
 
 /**
@@ -28,6 +31,7 @@ public class TrialLaboratoryUserArchives extends BaseEntity {
      * 姓名
      */
     @ApiModelProperty("姓名")
+    @Size(max = 5, min = 2, message = "长度必须大于等于5或小于等于2")
     private String name;
 
     /**
@@ -52,6 +56,7 @@ public class TrialLaboratoryUserArchives extends BaseEntity {
      * 身份证
      */
     @ApiModelProperty("身份证")
+    @Size(max = 18, min = 18, message = "长度必须等于18个字符长度")
     private String idCard;
 
     /**
@@ -65,6 +70,7 @@ public class TrialLaboratoryUserArchives extends BaseEntity {
      * 毕业院校
      */
     @ApiModelProperty("毕业院校")
+    @Size(max = 100, message = "长度必须小于100个字符长度")
     private String graduationSchool;
 
     /**
@@ -78,30 +84,35 @@ public class TrialLaboratoryUserArchives extends BaseEntity {
      * 职称
      */
     @ApiModelProperty("职称")
+    @Size(max = 100, message = "长度必须小于100个字符长度")
     private String jobTitleName;
 
     /**
      * 部门
      */
     @ApiModelProperty("部门")
+    @Size(max = 100, message = "长度必须小于100个字符长度")
     private String department;
 
     /**
      * 专业
      */
     @ApiModelProperty("专业")
+    @Size(max = 100, message = "长度必须小于100个字符长度")
     private String major;
 
     /**
      * 工作职务
      */
     @ApiModelProperty("工作职务")
+    @Size(max = 100, message = "长度必须小于100个字符长度")
     private String jobTitlePost;
 
     /**
      * 从事检测工作时间(月)
      */
     @ApiModelProperty("从事检测工作时间(月)")
+    @Max(value = 10, message = "长度必须在范围0-10之间")
     private Integer workingTime;
 
     /**
@@ -143,6 +154,7 @@ public class TrialLaboratoryUserArchives extends BaseEntity {
      * 证书编号
      */
     @ApiModelProperty("证书编号")
+    @Size(max = 100, message = "长度必须小于100个字符长度")
     private String certificateNo;
 
     /**
@@ -174,6 +186,7 @@ public class TrialLaboratoryUserArchives extends BaseEntity {
      * 工作内容
      */
     @ApiModelProperty("工作内容")
+    @Size(max = 1000, message = "长度必须小于1000个字符长度")
     private String workContent;
 
     /**

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

@@ -17,6 +17,12 @@ public class TrialClassificationConfiguration extends BaseEntity {
 
     private static final long serialVersionUID = 1L;
 
+    /**
+     * 节点名
+     */
+    @ApiModelProperty(value = "合同段id")
+    private String contractId;
+
     /**
      * 节点名
      */

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

@@ -9,6 +9,8 @@ public class TrialClassificationConfigurationTree extends BaseNode<TrialClassifi
 
     private Long id;
 
+    private Long contractId;
+
     private String nodeName;
 
     private Integer nodeType;
@@ -21,4 +23,7 @@ public class TrialClassificationConfigurationTree extends BaseNode<TrialClassifi
 
     private boolean hasChildren;
 
+    //是否存在数据 1=存在 0=不存在
+    private Integer isData;
+
 }

+ 4 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/WbsTreePrivateVO.java

@@ -58,5 +58,9 @@ public class WbsTreePrivateVO extends WbsTreePrivate implements INode<WbsTreePri
      */
     private String mixRatioTestIds;
 
+    /**
+     * title名称
+     */
+    private String title;
 
 }

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

@@ -24,6 +24,13 @@ public class TrialDeviceClassificationController extends BladeController {
 
     private final ITrialDeviceClassificationService iTrialDeviceClassificationService;
 
+    @PostMapping("/class-init")
+    @ApiOperationSupport(order = 1)
+    @ApiOperation(value = "分类初始化", notes = "传入合同段id")
+    public String classInit(@RequestParam Long contractId) {
+        return iTrialDeviceClassificationService.classInit(contractId);
+    }
+
     @PostMapping("/class-submit")
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "分类新增或修改", notes = "传入TrialDeviceClassification对象")

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

@@ -43,9 +43,9 @@ public class TrialMaterialController extends BladeController {
 
     @GetMapping("/mobilization/verification")
     @ApiOperationSupport(order = 1)
-    @ApiOperation(value = "进场材料校验编号唯一", notes = "传入materialNumber,id")
-    public R<Object> mobilizationVerification(@Valid @RequestParam String materialNumber, @RequestParam String id) {
-        return R.data(iTrialMaterialMobilizationService.mobilizationVerification(materialNumber, id));
+    @ApiOperation(value = "进场材料校验编号唯一", notes = "传入materialNumber,id,contractId")
+    public R<Object> mobilizationVerification(@Valid @RequestParam String materialNumber, @RequestParam String id, @RequestParam String contractId) {
+        return R.data(iTrialMaterialMobilizationService.mobilizationVerification(materialNumber, id, contractId));
     }
 
     @GetMapping("/mobilization/sampling-record")
@@ -58,7 +58,7 @@ public class TrialMaterialController extends BladeController {
     @PostMapping("/mobilization/upload-file")
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "附件上传", notes = "传入材料id、type、url地址")
-    public R<Object> uploadFiles(@RequestParam("id") String id,@RequestParam("type") Integer type,@RequestParam("url") String url) {
+    public R<Object> uploadFiles(@RequestParam("id") String id, @RequestParam("type") Integer type, @RequestParam("url") String url) {
         return R.data(iTrialMaterialMobilizationService.uploadFile(id, type, url));
     }
 
@@ -173,9 +173,9 @@ public class TrialMaterialController extends BladeController {
 
     @GetMapping("/sample/verification")
     @ApiOperationSupport(order = 17)
-    @ApiOperation(value = "样品材料校验编号唯一", notes = "传入specificationNumber,id")
-    public R<Object> sampleVerification(@Valid @RequestParam String specificationNumber, @RequestParam String id) {
-        return R.data(iTrialSampleInfoService.sampleVerification(specificationNumber, id));
+    @ApiOperation(value = "样品材料校验编号唯一", notes = "传入specificationNumber,id,contractId")
+    public R<Object> sampleVerification(@Valid @RequestParam String specificationNumber, @RequestParam String id, @RequestParam String contractId, @RequestParam String nodeId) {
+        return R.data(iTrialSampleInfoService.sampleVerification(specificationNumber, id, contractId, nodeId));
     }
 
 }

+ 8 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialSievePoreController.java

@@ -9,10 +9,13 @@ import org.springblade.business.entity.TrialSievePoreClassificationData;
 import org.springblade.business.service.ITrialSievePoreClassificationDataService;
 import org.springblade.business.service.ITrialSievePoreClassificationService;
 import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.log.exception.ServiceException;
 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.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -26,6 +29,7 @@ public class TrialSievePoreController extends BladeController {
 
     private final ITrialSievePoreClassificationService iTrialSievePoreClassificationService;
     private final ITrialSievePoreClassificationDataService iTrialSievePoreClassificationDataService;
+    private final JdbcTemplate jdbcTemplate;
 
     @GetMapping("/classification/detail")
     @ApiOperationSupport(order = 1)
@@ -45,6 +49,10 @@ public class TrialSievePoreController extends BladeController {
     @ApiOperationSupport(order = 3)
     @ApiOperation(value = "筛孔分类删除", notes = "传入id")
     public R<Object> classificationRemove(@Valid @RequestParam String id) {
+        List<TrialSievePoreClassificationData> query = jdbcTemplate.query("select id from u_trial_sieve_pore_classification_data where class_id =" + id, new BeanPropertyRowMapper<>(TrialSievePoreClassificationData.class));
+        if (query.size() > 0) {
+            throw new ServiceException("当前分类下存在数据,删除失败");
+        }
         return R.status(iTrialSievePoreClassificationService.deleteLogic(Func.toLongList(id)));
     }
 

+ 2 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialDeviceClassificationService.java

@@ -9,6 +9,8 @@ import java.util.Map;
 
 public interface ITrialDeviceClassificationService extends BaseService<TrialDeviceClassification> {
 
+    String classInit(Long contractId);
+
     boolean classSubmit(TrialDeviceClassification obj);
 
     TrialDeviceClassification classDetail(Long id);

+ 2 - 1
blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialMaterialMobilizationService.java

@@ -7,6 +7,7 @@ import org.springblade.business.excel.TrialMaterialMobilizationExcel;
 import org.springblade.business.vo.TrialMaterialMobilizationVO;
 import org.springblade.business.vo.TrialSamplingRecordVO;
 import org.springblade.core.mp.base.BaseService;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import javax.servlet.http.HttpServletResponse;
 import java.text.ParseException;
@@ -15,7 +16,7 @@ import java.util.List;
 
 public interface ITrialMaterialMobilizationService extends BaseService<TrialMaterialMobilization> {
 
-    boolean mobilizationVerification(String number, String id);
+    boolean mobilizationVerification(String number, String id, String contractId);
 
     boolean mobilizationSubmit(TrialMaterialMobilization obj);
 

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

@@ -26,7 +26,7 @@ public interface ITrialSampleInfoService extends BaseService<TrialSampleInfo> {
 
     String sampleExportPdf(String ids, HttpServletResponse response);
 
-    boolean sampleVerification(String specificationNumber, String id);
+    boolean sampleVerification(String specificationNumber, String id, String contractId, String nodeId);
 
     List<TrialSampleInfoVO2> useDeviceList(Long nodeId);
 

+ 9 - 4
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialDetectionDataServiceImpl.java

@@ -52,17 +52,22 @@ public class TrialDetectionDataServiceImpl extends BaseServiceImpl<TrialDetectio
 
     @Override
     public boolean dataSubmit(TrialDetectionData obj) {
+        if (ObjectUtil.isEmpty(obj.getReportNo()) || ObjectUtil.isEmpty(obj.getEntrustNo())) {
+            throw new ServiceException("委托编号、报告编号不能为空");
+        }
         List<TrialDetectionData> trialDetectionData = baseMapper.selectList(Wrappers.<TrialDetectionData>lambdaQuery()
                 .select(TrialDetectionData::getId)
                 .isNotNull(TrialDetectionData::getReportNo)
+                .eq(TrialDetectionData::getContractId, obj.getContractId())
+                .eq(TrialDetectionData::getNodeId, obj.getNodeId())
                 .eq(TrialDetectionData::getReportNo, obj.getReportNo()));
         if (ObjectUtil.isEmpty(obj.getId()) && trialDetectionData.size() > 0) {
-            throw new ServiceException("报告编号已存在,请重新填写");
+            throw new ServiceException("报告编号在当前合同段节点下已存在,请重新填写");
         }
         if (ObjectUtil.isNotEmpty(obj.getId()) && trialDetectionData.size() > 0) {
             TrialDetectionData data = trialDetectionData.stream().findAny().orElse(null);
             if (!obj.getId().equals(data.getId())) {
-                throw new ServiceException("报告编号已存在,请重新填写");
+                throw new ServiceException("报告编号在当前合同段节点下已存在,请重新填写");
             }
         }
 
@@ -71,12 +76,12 @@ public class TrialDetectionDataServiceImpl extends BaseServiceImpl<TrialDetectio
                 .isNotNull(TrialDetectionData::getEntrustNo)
                 .eq(TrialDetectionData::getEntrustNo, obj.getEntrustNo()));
         if (ObjectUtil.isEmpty(obj.getId()) && trialDetectionData2.size() > 0) {
-            throw new ServiceException("委托编号已存在,请重新填写");
+            throw new ServiceException("委托编号在当前合同段节点下已存在,请重新填写");
         }
         if (ObjectUtil.isNotEmpty(obj.getId()) && trialDetectionData2.size() > 0) {
             TrialDetectionData data = trialDetectionData2.stream().findAny().orElse(null);
             if (!obj.getId().equals(data.getId())) {
-                throw new ServiceException("委托编号已存在,请重新填写");
+                throw new ServiceException("委托编号在当前合同段节点下已存在,请重新填写");
             }
         }
 

+ 33 - 4
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialDeviceClassificationServiceImpl.java

@@ -8,13 +8,13 @@ import org.springblade.business.mapper.TrialDeviceClassificationMapper;
 import org.springblade.business.mapper.TrialDeviceInfoMapper;
 import org.springblade.business.service.ITrialDeviceClassificationService;
 import org.springblade.business.vo.TrialDeviceInfoVO2;
+import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.security.Security;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -23,6 +23,35 @@ public class TrialDeviceClassificationServiceImpl extends BaseServiceImpl<TrialD
 
     private final TrialDeviceInfoMapper trialDeviceInfoMapper;
 
+    @Override
+    public String classInit(Long contractId) {
+        List<String> names = Arrays.asList("力学室", "集料室", "土工室", "水泥室", "外检室", "标养室", "其他");
+        List<TrialDeviceClassification> trialDeviceClassifications = baseMapper.selectList(Wrappers.<TrialDeviceClassification>lambdaQuery().in(TrialDeviceClassification::getClassName, names));
+        if (trialDeviceClassifications.size() == 0) {
+            //初始化
+            int sort = 1;
+            List<TrialDeviceClassification> data = new ArrayList<>();
+            for (String name : names) {
+                TrialDeviceClassification obj = new TrialDeviceClassification();
+                obj.setId(SnowFlakeUtil.getId());
+                obj.setClassName(name);
+                obj.setContractId(contractId);
+                obj.setSort(sort++);
+                obj.setStatus(1);
+                obj.setIsDeleted(0);
+                obj.setCreateTime(new Date());
+                obj.setUpdateTime(new Date());
+                obj.setCreateUser(SecureUtil.getUserId());
+                data.add(obj);
+            }
+            if (data.size() > 0) {
+                this.saveBatch(data);
+                return "初始化成功";
+            }
+        }
+        return "无需初始化";
+    }
+
     @Override
     public boolean classSubmit(TrialDeviceClassification obj) {
         return this.saveOrUpdate(obj);

+ 26 - 4
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialDeviceInfoServiceImpl.java

@@ -31,6 +31,8 @@ import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.resource.feign.NewIOSSClient;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 
@@ -43,6 +45,7 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 @Service
@@ -51,14 +54,18 @@ public class TrialDeviceInfoServiceImpl extends BaseServiceImpl<TrialDeviceInfoM
 
     private final NewIOSSClient newIOSSClient;
     private final TrialDeviceClassificationMapper trialDeviceClassificationMapper;
+    private final JdbcTemplate jdbcTemplate;
 
     @Override
     public boolean submit(TrialDeviceInfo obj) {
-        TrialDeviceInfo selectOne = baseMapper.selectOne(Wrappers.<TrialDeviceInfo>lambdaQuery().select(TrialDeviceInfo::getId, TrialDeviceInfo::getDeviceName).eq(TrialDeviceInfo::getDeviceNumber, obj.getDeviceNumber()));
+        TrialDeviceInfo selectOne = baseMapper.selectOne(Wrappers.<TrialDeviceInfo>lambdaQuery()
+                .select(TrialDeviceInfo::getId, TrialDeviceInfo::getDeviceName)
+                .eq(TrialDeviceInfo::getDeviceClassId, obj.getDeviceClassId())
+                .eq(TrialDeviceInfo::getDeviceNumber, obj.getDeviceNumber()));
 
         if (ObjectUtil.isNotEmpty(obj.getId())) { //编辑
             if (ObjectUtil.isNotEmpty(selectOne) && !selectOne.getId().equals(obj.getId())) {
-                throw new ServiceException("当前设备编号已存在,请重新填写");
+                throw new ServiceException("当前设备编号在当前分类中已存在,请重新填写");
             }
 
             TrialDeviceInfo trialDeviceInfo = baseMapper.selectById(obj.getId());
@@ -69,7 +76,7 @@ public class TrialDeviceInfoServiceImpl extends BaseServiceImpl<TrialDeviceInfoM
             }
         } else { //新增
             if (ObjectUtil.isNotEmpty(selectOne)) {
-                throw new ServiceException("当前设备编号已存在,请重新填写");
+                throw new ServiceException("当前设备编号在当前分类中已存在,请重新填写");
             }
         }
 
@@ -348,11 +355,26 @@ public class TrialDeviceInfoServiceImpl extends BaseServiceImpl<TrialDeviceInfoM
             }
         }
         if (listData.size() > 0) {
-            List<String> numbers = listData.stream().map(TrialDeviceInfo::getDeviceNumber).collect(Collectors.toList());
+            /*List<String> numbers = listData.stream().map(TrialDeviceInfo::getDeviceNumber).collect(Collectors.toList());
             List<TrialDeviceInfo> trialDeviceInfos = baseMapper.selectList(Wrappers.<TrialDeviceInfo>lambdaQuery().select(TrialDeviceInfo::getId, TrialDeviceInfo::getDeviceName).in(TrialDeviceInfo::getDeviceNumber, numbers));
             if (trialDeviceInfos.size() > 0) {
                 List<String> collect = trialDeviceInfos.stream().map(TrialDeviceInfo::getDeviceName).collect(Collectors.toList());
                 throw new ServiceException("【" + StringUtils.join(collect, ",") + "】的设备编号重复,请重新填写设备编号");
+            }*/
+
+            Map<Long, List<TrialDeviceInfo>> collect = listData.stream().collect(Collectors.groupingBy(TrialDeviceInfo::getDeviceClassId));
+            for (Map.Entry<Long, List<TrialDeviceInfo>> longListEntry : collect.entrySet()) {
+                Long classId = longListEntry.getKey();
+                TrialDeviceClassification trialDeviceClassification = jdbcTemplate.query("select class_name from u_trial_device_classification where id = " + classId, new BeanPropertyRowMapper<>(TrialDeviceClassification.class)).stream().findAny().orElse(null);
+                List<String> numbers = longListEntry.getValue().stream().map(TrialDeviceInfo::getDeviceNumber).collect(Collectors.toList());
+                List<TrialDeviceInfo> trialDeviceInfos = baseMapper.selectList(Wrappers.<TrialDeviceInfo>lambdaQuery()
+                        .select(TrialDeviceInfo::getId, TrialDeviceInfo::getDeviceName)
+                        .eq(TrialDeviceInfo::getDeviceClassId, classId)
+                        .in(TrialDeviceInfo::getDeviceNumber, numbers));
+                if (trialDeviceInfos.size() > 0 && trialDeviceClassification != null) {
+                    List<String> deviceNames = trialDeviceInfos.stream().map(TrialDeviceInfo::getDeviceName).collect(Collectors.toList());
+                    throw new ServiceException(trialDeviceClassification.getClassName() + "中的【" + StringUtils.join(deviceNames, ",") + "】设备编号重复,请重新填写该设备编号");
+                }
             }
 
             return this.saveBatch(listData, 1000);

+ 4 - 3
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialMaterialMobilizationServiceImpl.java

@@ -67,8 +67,10 @@ public class TrialMaterialMobilizationServiceImpl extends BaseServiceImpl<TrialM
     private final JdbcTemplate jdbcTemplate;
 
     @Override
-    public boolean mobilizationVerification(String number, String id) {
-        List<TrialMaterialMobilization> list = baseMapper.selectList(Wrappers.<TrialMaterialMobilization>query().lambda());
+    public boolean mobilizationVerification(String number, String id, String contractId) {
+        List<TrialMaterialMobilization> list = baseMapper.selectList(Wrappers.<TrialMaterialMobilization>lambdaQuery()
+                .eq(TrialMaterialMobilization::getContractId, contractId)
+        );
         if (StringUtils.isEmpty(id)) {
             TrialMaterialMobilization trialMaterialMobilization1 = list.stream().filter(f -> f.getMaterialNumber().equals(number)).findAny().orElse(null);
             return trialMaterialMobilization1 != null;
@@ -301,7 +303,6 @@ public class TrialMaterialMobilizationServiceImpl extends BaseServiceImpl<TrialM
                 }
                 PDFUtil.createTableCell(materialTypeName, textFont, table, lineHeight, colSpan);
 
-
                 PDFUtil.createTableCell(ObjectUtil.isNotEmpty(pdfDatum.getSpecificationModel()) ? pdfDatum.getSpecificationModel() : "", textFont, table, lineHeight, colSpan);
                 PDFUtil.createTableCell(ObjectUtil.isNotEmpty(pdfDatum.getSupplierUnit()) ? pdfDatum.getSupplierUnit() : "", textFont, table, lineHeight, colSpan);
                 PDFUtil.createTableCell(ObjectUtil.isNotEmpty(pdfDatum.getMaterialPrice()) ? pdfDatum.getMaterialPrice().toString() : "", textFont, table, lineHeight, colSpan);

+ 5 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSampleInfoServiceImpl.java

@@ -63,8 +63,11 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
     private final JdbcTemplate jdbcTemplate;
 
     @Override
-    public boolean sampleVerification(String specificationNumber, String id) {
-        List<TrialSampleInfo> list = baseMapper.selectList(Wrappers.<TrialSampleInfo>query().lambda());
+    public boolean sampleVerification(String specificationNumber, String id, String contractId, String nodeId) {
+        List<TrialSampleInfo> list = baseMapper.selectList(Wrappers.<TrialSampleInfo>lambdaQuery()
+                .eq(TrialSampleInfo::getContractId, contractId)
+                .eq(TrialSampleInfo::getNodeId, nodeId)
+        );
         if (StringUtils.isEmpty(id)) {
             TrialSampleInfo trialSampleInfo = list.stream().filter(f -> f.getSpecificationNumber().equals(specificationNumber)).findAny().orElse(null);
             return trialSampleInfo != null;

+ 23 - 9
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSelfInspectionRecordServiceImpl.java

@@ -172,9 +172,8 @@ public class TrialSelfInspectionRecordServiceImpl extends BaseServiceImpl<TrialS
         if (mobilizationIds.size() > 0) {
             List<Long> collect = mobilizationIds.stream().map(TrialSamplingRecord::getMobilizationId).collect(Collectors.toList());
             String join = org.apache.commons.lang.StringUtils.join(collect, ",");
-            List<TrialMaterialMobilization> mobilizations = jdbcTemplate.query("select production_certificate from u_trial_material_mobilization where id in(" + join + ")", new BeanPropertyRowMapper<>(TrialMaterialMobilization.class));
-            List<TrialMaterialMobilization> notUpdate = mobilizations.stream().filter(f -> ObjectUtils.isEmpty(f.getProductionCertificate())).collect(Collectors.toList());
-            if (notUpdate.size() != 0) {
+            List<TrialMaterialMobilization> mobilizations = jdbcTemplate.query("select production_certificate from u_trial_material_mobilization where production_certificate is not null and id in(" + join + ")", new BeanPropertyRowMapper<>(TrialMaterialMobilization.class));
+            if (mobilizations.size() > 0) {
                 record.setIsUploadCertificate(1);
                 record.setIsUploadCertificateName("是");
             } else {
@@ -596,16 +595,31 @@ public class TrialSelfInspectionRecordServiceImpl extends BaseServiceImpl<TrialS
             if (taskParallel != null && ObjectUtil.isNotEmpty(taskParallel.getProcessInstanceId())) {
                 //获取当前任务的状态为以已审批status=2,再修改试验状态以及关联的pdf
                 Task task = jdbcTemplate.query("select status from u_task where process_instance_id = '" + taskParallel.getProcessInstanceId() + "'", new BeanPropertyRowMapper<>(Task.class)).stream().findAny().orElse(null);
-                if (ObjectUtils.isNotEmpty(task) && new Integer(2).equals(task.getStatus())) {
+                if (ObjectUtils.isNotEmpty(task)) {
 
                     //试验状态
                     String trialSelfInspectionRecordId = baseMapper.selectTaskByTaskId(taskParallel.getProcessInstanceId());
                     if (StringUtils.isNotEmpty(trialSelfInspectionRecordId)) {
-                        this.update(Wrappers.<TrialSelfInspectionRecord>lambdaUpdate()
-                                .set(TrialSelfInspectionRecord::getTaskStatus, "已审批")
-                                .set(TrialSelfInspectionRecord::getPdfUrl, pdfUrlEVisa) //pdfUrlEVisa=电签后的pdf
-                                .eq(TrialSelfInspectionRecord::getId, trialSelfInspectionRecordId)
-                        );
+
+                        if (new Integer(2).equals(task.getStatus())) {
+                            this.update(Wrappers.<TrialSelfInspectionRecord>lambdaUpdate()
+                                    .set(TrialSelfInspectionRecord::getTaskStatus, "已审批")
+                                    .set(TrialSelfInspectionRecord::getPdfUrl, pdfUrlEVisa) //pdfUrlEVisa=电签后的pdf
+                                    .eq(TrialSelfInspectionRecord::getId, trialSelfInspectionRecordId)
+                            );
+                        } else if (new Integer(1).equals(task.getStatus())) {
+                            this.update(Wrappers.<TrialSelfInspectionRecord>lambdaUpdate()
+                                    .set(TrialSelfInspectionRecord::getTaskStatus, "待审批")
+                                    .set(TrialSelfInspectionRecord::getPdfUrl, pdfUrlEVisa) //pdfUrlEVisa=电签后的pdf
+                                    .eq(TrialSelfInspectionRecord::getId, trialSelfInspectionRecordId)
+                            );
+                        } else if (new Integer(3).equals(task.getStatus())) {
+                            this.update(Wrappers.<TrialSelfInspectionRecord>lambdaUpdate()
+                                    .set(TrialSelfInspectionRecord::getTaskStatus, "已废除")
+                                    .set(TrialSelfInspectionRecord::getPdfUrl, pdfUrlEVisa) //pdfUrlEVisa=电签后的pdf
+                                    .eq(TrialSelfInspectionRecord::getId, trialSelfInspectionRecordId)
+                            );
+                        }
 
                         TrialSelfInspectionRecord record = baseMapper.selectById(trialSelfInspectionRecordId);
 

+ 14 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TrialClassificationConfigurationController.java

@@ -5,17 +5,23 @@ 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.TrialDetectionData;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.cache.utils.CacheUtil;
+import org.springblade.core.log.exception.ServiceException;
 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.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 
+import java.util.List;
+
 import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
 
 
@@ -26,6 +32,7 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
 public class TrialClassificationConfigurationController extends BladeController {
 
     private final ITrialClassificationConfigurationService iTrialClassificationConfigurationService;
+    private final JdbcTemplate jdbcTemplate;
 
     @ApiOperationSupport(order = 1)
     @ApiOperation(value = "详情", notes = "传入节点id")
@@ -50,14 +57,18 @@ public class TrialClassificationConfigurationController extends BladeController
     @ApiOperation(value = "删除节点", notes = "传入节点id")
     @RequestMapping(value = "/remove", method = RequestMethod.GET)
     public R<Object> remove(@Valid @RequestParam Long id) {
+        List<TrialDetectionData> query = jdbcTemplate.query("select id from m_trial_detection_data where is_deleted = 0 and node_id = " + id, new BeanPropertyRowMapper<>(TrialDetectionData.class));
+        if (query.size() > 0) {
+            throw new ServiceException("当前节点下存在数据,删除失败");
+        }
         return R.status(iTrialClassificationConfigurationService.removeById(id));
     }
 
     @ApiOperationSupport(order = 4)
-    @ApiOperation(value = "加载外委、第三方树", notes = "null")
+    @ApiOperation(value = "加载外委、第三方树", notes = "传入合同段id")
     @RequestMapping(value = "/tree-all", method = RequestMethod.GET)
-    public R<TrialClassificationConfigurationTreeVO> treeAll() {
-        return R.data(iTrialClassificationConfigurationService.treeAll());
+    public R<TrialClassificationConfigurationTreeVO> treeAll(String contractId) {
+        return R.data(iTrialClassificationConfigurationService.treeAll(contractId));
     }
 
 

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

@@ -8,6 +8,6 @@ import java.util.List;
 
 public interface TrialClassificationConfigurationMapper extends BaseMapper<TrialClassificationConfiguration> {
 
-    List<TrialClassificationConfigurationTree> treeAll();
+    List<TrialClassificationConfigurationTree> treeAll(String contractId);
 
 }

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

@@ -3,6 +3,7 @@
 <mapper namespace="org.springblade.manager.mapper.TrialClassificationConfigurationMapper">
     <resultMap id="ResultMap" type="org.springblade.manager.entity.TrialClassificationConfiguration">
         <result column="id" property="id"/>
+        <result column="contractId})" property="id"/>
         <result column="node_name" property="nodeName"/>
         <result column="node_type" property="nodeType"/>
         <result column="ancestors" property="ancestors"/>
@@ -18,8 +19,18 @@
     </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 b.contract_id,b.id,b.node_name,b.node_type,b.parent_id,b.ancestors,b.sort,b.status,b.is_deleted,
+            (select CASE WHEN count(1) > 0 THEN 1 ELSE 0 END from m_trial_detection_data a
+                where is_deleted = 0 and a.node_id = b.id and (a.contract_id is null or a.contract_id = #{contractId})) as isData
+        FROM m_trial_classification_configuration b
+        WHERE is_deleted = 0 AND status = 1
+        <if test="contractId == null">
+            and contract_id is null
+        </if>
+        <if test="contractId != null and contractId != ''">
+            and (contract_id is null OR (contract_id = #{contractId}))
+        </if>
+        ORDER BY sort
     </select>
 
-
 </mapper>

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

@@ -10,6 +10,6 @@ public interface ITrialClassificationConfigurationService extends BaseService<Tr
 
     boolean submit(TrialClassificationConfiguration obj);
 
-    TrialClassificationConfigurationTreeVO treeAll();
+    TrialClassificationConfigurationTreeVO treeAll(String contractId);
 
 }

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

@@ -70,8 +70,8 @@ public class TrialClassificationConfigurationServiceImpl
     }
 
     @Override
-    public TrialClassificationConfigurationTreeVO treeAll() {
-        List<TrialClassificationConfigurationTree> all = baseMapper.treeAll();
+    public TrialClassificationConfigurationTreeVO treeAll(String contractId) {
+        List<TrialClassificationConfigurationTree> all = baseMapper.treeAll(contractId);
         for (TrialClassificationConfigurationTree tree1 : all) {
             for (TrialClassificationConfigurationTree tree2 : all) {
                 if (tree1.getId().equals(tree2.getParentId())) {

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

@@ -1537,6 +1537,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
     private void recursionFnTree(List<WbsTreePrivateVO> list, Map<Long, List<WbsTreePrivateVO>> map) {
         for (WbsTreePrivateVO wbsTreePrivateVO : list) {
             List<WbsTreePrivateVO> childrenList = map.get(wbsTreePrivateVO.getId());
+            wbsTreePrivateVO.setTitle(wbsTreePrivateVO.getNodeName());
             wbsTreePrivateVO.setChildren(childrenList);
             if (childrenList != null && childrenList.size() > 0) {
                 wbsTreePrivateVO.setHasChildren(true);