cr 1 месяц назад
Родитель
Сommit
22899481a5

+ 6 - 3
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/TrialMaterialMobilizationDTO.java

@@ -20,10 +20,13 @@ import java.util.Date;
 public class TrialMaterialMobilizationDTO extends TrialMaterialMobilization {
     private static final long serialVersionUID = 1L;
 
-    /**
-     * 数据序号
-     */
     @ApiModelProperty("数据序号")
     private Integer dataNumber;
 
+    @ApiModelProperty("旧编号")
+    private String trialNumber;
+
+    @ApiModelProperty("自增流水号")
+    private String autoIncrementNumber;
+
 }

+ 6 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/TrialSampleInfoDTO.java

@@ -21,5 +21,11 @@ public class TrialSampleInfoDTO extends TrialSampleInfo {
     @ApiModelProperty("数据序号")
     private Integer dataNumber;
 
+    @ApiModelProperty("旧编号")
+    private String trialNumber;
+
+    @ApiModelProperty("自增流水号")
+    private String autoIncrementNumber;
+
 
 }

+ 11 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/dto/TrialSelfInspectionRecordDTO.java

@@ -29,4 +29,15 @@ public class TrialSelfInspectionRecordDTO extends TrialSelfInspectionRecord {
     @ApiModelProperty(value = "是否批量保存 0=单保存,1=批量保存")
     private Integer isBatchSave;
 
+    @ApiModelProperty(value = "记录表自增流水号")
+    private String recordAutoNumber;
+
+    @ApiModelProperty(value = "报告单自增流水号")
+    private String reportAutoNumber;
+
+    @ApiModelProperty(value = "旧记录编号")
+    private String oldRecordNumber;
+    @ApiModelProperty(value = "旧报告编号")
+    private String oldReportNumber;
+
 }

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

@@ -90,7 +90,7 @@ public class TrialMaterialController extends BladeController {
     @PostMapping("/mobilization/submit")
     @ApiOperationSupport(order = 5)
     @ApiOperation(value = "进场材料新增或修改", notes = "传入TrialMaterialMobilization对象")
-    public R<Object> mobilizationSubmit(@Valid @RequestBody TrialMaterialMobilization obj) {
+    public R<Object> mobilizationSubmit(@Valid @RequestBody TrialMaterialMobilizationDTO obj) {
         return R.status(iTrialMaterialMobilizationService.mobilizationSubmit(obj));
     }
 

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

@@ -17,7 +17,7 @@ public interface ITrialMaterialMobilizationService extends BaseService<TrialMate
 
     boolean mobilizationVerification(String number, String id, String contractId);
 
-    boolean mobilizationSubmit(TrialMaterialMobilization obj);
+    boolean mobilizationSubmit(TrialMaterialMobilizationDTO obj);
 
     TrialMaterialMobilization mobilizationDetail(Long id);
 

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

@@ -54,4 +54,6 @@ public interface ITrialNumberRuleService extends BaseService<TrialNumberRule> {
 
 
     Map<String, String> getEntrustNumber(Long pkeyId,Long contractId) throws FileNotFoundException;
+
+	void checkSave(Long contractId, int i, Long id, String autoIncrementNumber);
 }

+ 67 - 43
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/EntrustInfoServiceImpl.java

@@ -28,6 +28,7 @@ import org.springblade.business.feign.OperationLogClient;
 import org.springblade.business.mapper.EntrustInfoMapper;
 import org.springblade.business.service.IEntrustInfoService;
 import org.springblade.business.service.IInformationQueryService;
+import org.springblade.business.service.ITrialNumberRuleService;
 import org.springblade.business.vo.EntrustDataInfoVO;
 import org.springblade.business.vo.EntrustInfoVO;
 import org.springblade.business.vo.LoadDataInfoVO;
@@ -68,6 +69,7 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 	private final EntrustInfoMapper entrustInfoMapper;
     private final IInformationQueryService informationQueryService;
 	private final OperationLogClient operationLogClient;
+	private final ITrialNumberRuleService trialNumberRuleService;
 
     @Override
 	public IPage<EntrustInfoVO> selectEntrustInfoPage(IPage<EntrustInfoVO> page, EntrustInfoVO entrustInfo) {
@@ -122,22 +124,22 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 		}
 		String sampleId = "";
 		String contractId = "";
-        String sqlNodeName="select node_name, node_type from m_wbs_tree_private where p_key_id="+dataInfo.getString("nodeId");
+		String sqlNodeName="select node_name, node_type from m_wbs_tree_private where p_key_id="+dataInfo.getString("nodeId");
 		Map<String, Object> wbsTreePrivateMap = jdbcTemplate.queryForMap(sqlNodeName);
 		String nodeName = wbsTreePrivateMap.get("node_name").toString();
 		String nodeType = wbsTreePrivateMap.get("node_type").toString();
-		if(!"51".equals(nodeType) && !nodeName.equals("回弹法检测混凝土抗压强度")&&!nodeName.equals("路基压实度")&&!nodeName.equals("地基承载力")&&!nodeName.equals("路基路面弯沉")&&!nodeName.equals("锚杆")&&!nodeName.equals("喷射混凝土厚度")){
-            // 创建 委托单信息
-            if(!dataInfo.containsKey("sampleId")){
-                return R.fail("取样信息为sampleId不存在");
-            }else{
-                sampleId = dataInfo.getString("sampleId");
-            }
-        }else {
-            if(dataInfo.containsKey("sampleId")){
-                sampleId = dataInfo.getString("sampleId");
-            }
-        }
+		if(!"51".equals(nodeType)){
+			// 创建 委托单信息
+			if(!dataInfo.containsKey("sampleId")){
+				return R.fail("取样信息为sampleId不存在");
+			}else{
+				sampleId = dataInfo.getString("sampleId");
+			}
+		}else {
+			if(dataInfo.containsKey("sampleId")){
+				sampleId = dataInfo.getString("sampleId");
+			}
+		}
 		if(!dataInfo.containsKey("contractId")){
 			return R.fail("取样信息为contractId不存在");
 		}else{
@@ -146,24 +148,26 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 
 		String nodeErTreeId = dataInfo.getString("nodeErTreeId");
 
-        EntrustInfo entrustInfo=new EntrustInfo();
+		EntrustInfo entrustInfo=new EntrustInfo();
 		// 保存数据文件
-        if(!dataInfo.containsKey("sampleId")){
-            entrustInfo.setSampleStatus("0");
-        }else {
-            if(!"51".equals(nodeType) && !nodeName.equals("回弹法检测混凝土抗压强度")&&!nodeName.equals("路基压实度")&&!nodeName.equals("地基承载力")&&!nodeName.equals("路基路面弯沉")&&!nodeName.equals("锚杆")){
-                entrustInfo = baseMapper.selectOne(Wrappers.<EntrustInfo>query().lambda().eq(EntrustInfo::getSampleId, sampleId).eq(EntrustInfo::getContractId,contractId));
-            }else {
-                entrustInfo = baseMapper.selectOne(Wrappers.<EntrustInfo>query().lambda().eq(EntrustInfo::getId,dataInfo.get("id")).eq(EntrustInfo::getContractId,contractId));
-            }
-            if(entrustInfo==null && Func.isEmpty(entrustInfo)){
-                entrustInfo = new EntrustInfo();
-                //委托单未上报不进入样品流转 状态设置为0
-                entrustInfo.setSampleStatus("0");
-            }
-        }
+		if(!dataInfo.containsKey("sampleId")){
+			entrustInfo.setSampleStatus("0");
+		}else {
+			if(!"51".equals(nodeType)){
+				if (sampleId != null && !sampleId.isEmpty() && !"0".equals(sampleId)) {
+					entrustInfo = baseMapper.selectOne(Wrappers.<EntrustInfo>query().lambda().eq(EntrustInfo::getSampleId, sampleId).eq(EntrustInfo::getContractId,contractId));
+				}
+			}else {
+				entrustInfo = baseMapper.selectOne(Wrappers.<EntrustInfo>query().lambda().eq(EntrustInfo::getId,dataInfo.get("id")).eq(EntrustInfo::getContractId,contractId));
+			}
+			if(entrustInfo==null && Func.isEmpty(entrustInfo)){
+				entrustInfo = new EntrustInfo();
+				//委托单未上报不进入样品流转 状态设置为0
+				entrustInfo.setSampleStatus("0");
+			}
+		}
 		//WbsTreePrivate wbsTreePrivate = wbsTreePrivateClient.getNodeByPrimaryKeyId(nodeErTreeId);
-        WbsTreePrivate wbsTreePrivate=jdbcTemplate.query("select * from m_wbs_tree_private where p_key_id="+nodeErTreeId+" and status=1",new BeanPropertyRowMapper<>(WbsTreePrivate.class)).get(0);
+		WbsTreePrivate wbsTreePrivate=jdbcTemplate.query("select * from m_wbs_tree_private where p_key_id="+nodeErTreeId+" and status=1",new BeanPropertyRowMapper<>(WbsTreePrivate.class)).get(0);
 		String sql ="select * from m_wbs_form_element where is_deleted = 0 and dynamic_dict in(500,501,502)  and f_id="+wbsTreePrivate.getInitTableId();
 		List<Map<String, Object>> wbsFormElements = jdbcTemplate.queryForList(sql);
 
@@ -188,23 +192,43 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 				}
 			}
 		}
-        entrustInfo.setNodeId(dataInfo.get("nodeId").toString());
+		entrustInfo.setNodeId(dataInfo.get("nodeId").toString());
 		entrustInfo.setEntrustName(wbsTreePrivate.getNodeName());
-        if(dataInfo.containsKey("id")){
-            entrustInfo.setId(Long.parseLong(dataInfo.get("id").toString()));
-        }
-        this.saveOrUpdate(entrustInfo);
+		if(dataInfo.containsKey("id")){
+			entrustInfo.setId(Long.parseLong(dataInfo.get("id").toString()));
+		}
+		if(!dataInfo.containsKey("id")){
+			boolean b =true;
+			if(StringUtils.isNotEmpty(entrustInfo.getEntrustNo())){
+				trialNumberRuleService.checkTrialNumberIsExist(entrustInfo.getEntrustNo(), 3,Long.parseLong(entrustInfo.getContractId()));
+			}
+			if(!b){
+				throw new ServiceException("委托单编号已存在");
+			}
+		}
+		this.saveOrUpdate(entrustInfo);
+		String autoIncrementNumber=dataInfo.get("autoIncrementNumber")==null?"":dataInfo.get("autoIncrementNumber").toString();
+		String trialAutoNumber=dataInfo.get("trialNumber")==null?"":dataInfo.get("trialNumber").toString();
+		String entrustNo=entrustInfo.getEntrustNo()==null?"":entrustInfo.getEntrustNo();
+		if(StringUtils.isNotEmpty(autoIncrementNumber)){
+			if(trialAutoNumber.equals(entrustNo)){
+				trialNumberRuleService.checkSave(Long.parseLong(entrustInfo.getContractId()), 3, entrustInfo.getId(), autoIncrementNumber);
+			}
+			//bladeRedis.del("trialAutoNumber:" + entrustInfo.getContractId() + ":" + 3 + ":" + entrustInfo.getId() + ":" + "lock:" + autoIncrementNumber);
+		}
 		dataInfo.put("groupId",entrustInfo.getId());
 		dataInfo.put("pkeyId", dataInfo.getString("nodeErTreeId"));
-        if(StringUtils.isEmpty(entrustInfo.getEntrustNo())){
-            entrustInfo.setEntrustNo("");
-        }
-        if(StringUtils.isEmpty(entrustInfo.getEntrustName())){
-            entrustInfo.setEntrustName("");
-        }
-        dataInfo.put("entrustInfoName",entrustInfo.getEntrustNo()+entrustInfo.getEntrustName());
-        String pdfUrl = excelTabClient.saveEntrustTabData(dataInfo);
-        return R.data(200,pdfUrl,"操作成功");
+		if(StringUtils.isEmpty(entrustInfo.getEntrustNo())){
+			entrustInfo.setEntrustNo("");
+		}
+		if(StringUtils.isEmpty(entrustInfo.getEntrustName())){
+			entrustInfo.setEntrustName("");
+		}
+		dataInfo.put("entrustInfoName",entrustInfo.getEntrustNo()+entrustInfo.getEntrustName());
+		dataInfo.remove("autoIncrementNumber");
+		dataInfo.remove("trialNumber");
+		String pdfUrl = excelTabClient.saveEntrustTabData(dataInfo);
+		return R.data(200,pdfUrl,"操作成功");
 	}
 
 	/**

+ 19 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialMaterialMobilizationServiceImpl.java

@@ -22,6 +22,7 @@ import org.springblade.business.mapper.TrialMaterialMobilizationMapper;
 import org.springblade.business.mapper.TrialSampleInfoMapper;
 import org.springblade.business.mapper.TrialSamplingRecordMapper;
 import org.springblade.business.service.ITrialMaterialMobilizationService;
+import org.springblade.business.service.ITrialNumberRuleService;
 import org.springblade.business.utils.PDFUtil;
 import org.springblade.business.vo.TrialMaterialMobilizationVO;
 import org.springblade.business.vo.TrialSamplingRecordVO;
@@ -68,6 +69,7 @@ public class TrialMaterialMobilizationServiceImpl extends BaseServiceImpl<TrialM
     private final NewIOSSClient newIOSSClient;
     private final JdbcTemplate jdbcTemplate;
     private final CommonFileClient commonFileClient;
+    private final ITrialNumberRuleService trialNumberRuleService;
 
     @Override
     public boolean mobilizationVerification(String number, String id, String contractId) {
@@ -88,12 +90,27 @@ public class TrialMaterialMobilizationServiceImpl extends BaseServiceImpl<TrialM
     }
 
     @Override
-    public boolean mobilizationSubmit(TrialMaterialMobilization obj) {
+    public boolean mobilizationSubmit(TrialMaterialMobilizationDTO obj) {
         if (ObjectUtil.isEmpty(SecureUtil.getUserId())) {
             throw new ServiceException("获取用户信息失败");
         }
+        boolean b=true;
+        if(StringUtils.isNotEmpty(obj.getMaterialNumber())){
+            b= trialNumberRuleService.checkTrialNumberIsExist(obj.getMaterialNumber(), 1,obj.getContractId());
+        }
+        if(!b){
+            throw new ServiceException("编号已存在");
+        }
         obj.setUserId(SecureUtil.getUserId());
-        return this.saveOrUpdate(obj);
+        this.saveOrUpdate(obj);
+        if(StringUtils.isNotEmpty(obj.getAutoIncrementNumber())){
+            if(obj.getTrialNumber().equals(obj.getMaterialNumber())){
+                trialNumberRuleService.checkSave(obj.getContractId(), 1, obj.getId(), obj.getAutoIncrementNumber());
+            }
+            //bladeRedis.del("trialAutoNumber:" + obj.getContractId() + ":" + 1 + ":" + obj.getId() + ":" + "lock:" + obj.getAutoIncrementNumber());
+        }
+
+        return true;
     }
 
     @Override

+ 1 - 3
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialNumberRuleServiceImpl.java

@@ -432,9 +432,7 @@ public class TrialNumberRuleServiceImpl extends BaseServiceImpl<TrialNumberRuleM
         }
         return null;
     }
-
-
-    public void checkSave(Long contractId,Integer type,Long formDataId,String autoNumber){
+    public void checkSave(Long contractId,int type,Long formDataId,String autoNumber){
         List<TrialNumberRule> list = baseMapper.selectList(Wrappers.<TrialNumberRule>query().lambda().eq(TrialNumberRule::getContractId, contractId).eq(TrialNumberRule::getType, type).eq(TrialNumberRule::getStatus,2).orderByAsc(TrialNumberRule::getSort));
             if(list!=null&&list.size()>0){
                 List<TrialNumberRule> collect = list.stream().filter(o -> o.getRule() == 6 && o.getIsAutoIncrement() == 1).collect(Collectors.toList());

+ 18 - 4
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSampleInfoServiceImpl.java

@@ -23,6 +23,7 @@ import org.springblade.business.excel.TrialSampleInfoExcel;
 import org.springblade.business.mapper.TrialSampleInfoMapper;
 import org.springblade.business.mapper.TrialSamplingRecordMapper;
 import org.springblade.business.service.IEntrustInfoService;
+import org.springblade.business.service.ITrialNumberRuleService;
 import org.springblade.business.service.ITrialSampleInfoService;
 import org.springblade.business.utils.PDFUtil;
 import org.springblade.business.utils.StringSPUtils;
@@ -65,6 +66,7 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
     private final TrialSamplingRecordMapper trialSamplingRecordMapper;
     private final JdbcTemplate jdbcTemplate;
     private final IEntrustInfoService entrustInfoService;
+    private final ITrialNumberRuleService trialNumberRuleService;
 
     @Override
     public boolean sampleVerification(String specificationNumber, String id, String contractId, String nodeId) {
@@ -133,10 +135,9 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
     @Override
     public boolean sampleSubmit(TrialSampleInfoDTO obj) {
         //如果样品编号为空,那么就自动生成
-        if (ObjectUtil.isEmpty(obj.getSpecificationNumber())) {
-            this.buildNumber(obj);
-        }
-
+//        if (ObjectUtil.isEmpty(obj.getSpecificationNumber())) {
+//            this.buildNumber(obj);
+//        }
         TrialSampleInfo trialSampleInfo = BeanUtil.copyProperties(obj, TrialSampleInfo.class);
         if (trialSampleInfo != null) {
             if (ObjectUtils.isEmpty(trialSampleInfo.getMaterialCount())) {
@@ -145,7 +146,20 @@ public class TrialSampleInfoServiceImpl extends BaseServiceImpl<TrialSampleInfoM
             if (ObjectUtils.isEmpty(trialSampleInfo.getRepresentativeCount())) {
                 trialSampleInfo.setRepresentativeCount("0");
             }
+            boolean b =true;
+            if(StringUtils.isNotEmpty(obj.getSpecificationNumber())){
+                trialNumberRuleService.checkTrialNumberIsExist(obj.getSpecificationNumber(), 2,obj.getContractId());
+            }
+            if(!b){
+                throw new ServiceException("样品编号已存在");
+            }
             this.saveOrUpdate(trialSampleInfo);
+            if(StringUtils.isNotEmpty(obj.getAutoIncrementNumber())){
+                if(obj.getTrialNumber().equals(obj.getSpecificationNumber())){
+                    trialNumberRuleService.checkSave(obj.getContractId(), 2, obj.getId(), obj.getAutoIncrementNumber());
+                }
+                //bladeRedis.del("trialAutoNumber:" + obj.getContractId() + ":" + 2 + ":" + obj.getId() + ":" + "lock:" + obj.getAutoIncrementNumber());
+            }
 
             if (trialSampleInfo.getId() != null && obj.getMobilizationId() != null && obj.getMobilizationId() != -1) {
                 TrialSamplingRecord trialSamplingRecord = trialSamplingRecordMapper.selectByMobilizationIdAndSampleInfoId(obj.getMobilizationId(), trialSampleInfo.getId());

+ 25 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSelfInspectionRecordServiceImpl.java

@@ -26,6 +26,7 @@ import org.springblade.business.mapper.TrialMaterialMobilizationMapper;
 import org.springblade.business.mapper.TrialSampleInfoMapper;
 import org.springblade.business.mapper.TrialSelfInspectionRecordMapper;
 import org.springblade.business.service.IEntrustInfoService;
+import org.springblade.business.service.ITrialNumberRuleService;
 import org.springblade.business.service.ITrialSelfInspectionRecordService;
 import org.springblade.business.utils.FileUtils;
 import org.springblade.business.utils.FileUtils2;
@@ -93,6 +94,7 @@ public class TrialSelfInspectionRecordServiceImpl extends BaseServiceImpl<TrialS
     private final InformationQueryServiceImpl informationQueryService;
     private final TrialDetectionDataServiceImpl trialDetectionDataService;
     private final IEntrustInfoService entrustInfoService;
+    private final ITrialNumberRuleService trialNumberRuleService;
 
     @Override
     public IPage<TrialSelfInspectionRecordVO> selfPage(IPage<TrialSelfInspectionRecord> page, TrialSelfInspectionRecordPageDTO dto) throws FileNotFoundException {
@@ -1137,6 +1139,29 @@ public class TrialSelfInspectionRecordServiceImpl extends BaseServiceImpl<TrialS
             //修改项目节点基础信息
             jdbcTemplate.update("update u_entrust_info set sample_status=4 where id ='"+dto.getEntrustId()+"'");
         }
+        String[] strings = dto.getTableType().split(",");
+        if(StringUtils.isNotEmpty(dto.getRecordAutoNumber())||StringUtils.isNotEmpty(dto.getReportAutoNumber())){
+            if (dto.getOldRecordNumber()!=null&&dto.getOldRecordNumber().equals(dto.getRecordNo())||dto.getOldReportNumber()!=null&&dto.getOldReportNumber().equals(dto.getReportNo())) {
+                if(strings.length==1){
+                    if(strings[0].equals("1")){
+                        if(StringUtils.isNotEmpty(dto.getRecordAutoNumber())){
+                            trialNumberRuleService.checkSave(Long.valueOf(dto.getProjectId()),4,dto.getId(),dto.getRecordAutoNumber());
+                        }
+                    }else {
+                        if(StringUtils.isNotEmpty(dto.getReportAutoNumber())){
+                            trialNumberRuleService.checkSave(Long.valueOf(dto.getProjectId()),5,dto.getId(),dto.getReportAutoNumber());
+                        }
+                    }
+                }else {
+                    if(StringUtils.isNotEmpty(dto.getRecordAutoNumber())){
+                        trialNumberRuleService.checkSave(Long.valueOf(dto.getProjectId()),4,dto.getId(),dto.getRecordAutoNumber());
+                    }
+                    if(StringUtils.isNotEmpty(dto.getReportAutoNumber())){
+                        trialNumberRuleService.checkSave(Long.valueOf(dto.getProjectId()),5,dto.getId(),dto.getReportAutoNumber());
+                    }
+                }
+            }
+        }
         return dto.getId().toString();
     }