diff --git a/cement-business/src/main/java/cn/wise/sc/cement/business/controller/EntrustController.java b/cement-business/src/main/java/cn/wise/sc/cement/business/controller/EntrustController.java
index 7e3ed58272f20399220c5920e8b264b616641b6f..9ec0f378b70253eaa677b28d2736c4b60a8b3279 100644
--- a/cement-business/src/main/java/cn/wise/sc/cement/business/controller/EntrustController.java
+++ b/cement-business/src/main/java/cn/wise/sc/cement/business/controller/EntrustController.java
@@ -565,6 +565,17 @@ public class EntrustController {
 		return BaseResponse.errorMsg("失败!");
 	}
 
+	@ApiOperation(value = "重新校核计算")
+	@PostMapping("/checkCountNewAgain")
+	public BaseResponse checkCountNewAgain(@RequestBody CheckCountNewQuery query) {
+		try {
+			return entrustService.checkCountNewAgain(query);
+		} catch (Exception e) {
+			log.debug("重新校核计算{}", e);
+		}
+		return BaseResponse.errorMsg("失败!");
+	}
+
 	@ApiOperation(value = "数据校核退回任务分页(处理人+检测人员查看)")
 	@ApiImplicitParams(value = {
 			@ApiImplicitParam(name = "entrustCode", value = "委托单号", paramType = "query", dataType = "String"),
diff --git a/cement-business/src/main/java/cn/wise/sc/cement/business/service/IEntrustService.java b/cement-business/src/main/java/cn/wise/sc/cement/business/service/IEntrustService.java
index ddc30c8082ebde481e3e94cbf137e5cd9a983d4e..ab6a2dfe55ea55d4637dc3f2225343085085834a 100644
--- a/cement-business/src/main/java/cn/wise/sc/cement/business/service/IEntrustService.java
+++ b/cement-business/src/main/java/cn/wise/sc/cement/business/service/IEntrustService.java
@@ -100,6 +100,8 @@ public interface IEntrustService extends IService<Entrust> {
 
 	BaseResponse<String> checkCountNew(CheckCountNewQuery query);
 
+	BaseResponse<String> checkCountNewAgain(CheckCountNewQuery query);
+
 	BaseResponse<IPage<EntrustVo>> getSampleReturnCheckPage(PageQuery pageQuery, String entrustCode, Integer status,
 	                                                         String clientName, String projectName, String projectCode,
 	                                                         Integer isUrgent, Integer distributionStatus);
diff --git a/cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/CommonServiceImpl.java b/cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/CommonServiceImpl.java
index 87e392bbf6f058b9cb1a4af9200a432be2a8539d..4fe6fe874bfe9d22b80dbb30baef7ecb3528cd69 100644
--- a/cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/CommonServiceImpl.java
+++ b/cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/CommonServiceImpl.java
@@ -184,70 +184,78 @@ public class CommonServiceImpl {
 			JSONObject jsonObject = new JSONObject();
 			jsonObject.put("name",entry.getKey());
 			jsonObject.put("value",entry.getValue());
+			jsonObject.put("retain",entry.getValue());
 			jsonArray.add(jsonObject);
 		}
 		//如果包含滴定度,直接更新检测组配置的校核元素值,下次校核直接带过来
 		TeamGroup teamGroup = teamGroupMapper.selectById(groupId);
 		if(teamGroup != null && StringUtils.isNotBlank(teamGroup.getCheckElement())){
 			JSONArray jsonArr = JSON.parseArray(teamGroup.getCheckElement());
-			Map<String, String> teamgroupMap = jSONArrayToMap(jsonArr);
-
-
 			for(int i=0;i<jsonArr.size();i++){
-				JSONObject jsonObject = jsonArr.getJSONObject(i);
-				if(jsonObject.containsKey("TSiO<sub>2</sub>")){
+				JSONObject jsonObjectGroup = jsonArr.getJSONObject(i);
+				//输入的值 根据检测组中的输入值位数进行放入,用于前端展示
+				if(jsonArray != null && jsonArray.size()>0){
+					for(int j=0;j<jsonArray.size();j++){
+						JSONObject jsonObjectInput = jsonArray.getJSONObject(i);
+						if(jsonObjectInput.get("name").equals(jsonObjectGroup.get("name"))){
+							jsonObjectInput.put("retain",jsonObjectGroup.getString("retain"));
+							break;
+						}
+					}
+				}
+				if(jsonObjectGroup.containsKey("TSiO<sub>2</sub>")){
 					if(map.containsKey("TSiO<sub>2</sub>")){
-						jsonObject.put("TSiO<sub>2</sub>",map.get("TSiO<sub>2</sub>"));
+						jsonObjectGroup.put("TSiO<sub>2</sub>",map.get("TSiO<sub>2</sub>"));
 					}
 				}
-				if(jsonObject.containsKey("TAl<sub>2</sub>O<sub>3</sub>")){
+				if(jsonObjectGroup.containsKey("TAl<sub>2</sub>O<sub>3</sub>")){
 					if(map.containsKey("TAl<sub>2</sub>O<sub>3</sub>")){
-						jsonObject.put("TAl<sub>2</sub>O<sub>3</sub>",map.get("TAl<sub>2</sub>O<sub>3</sub>"));
+						jsonObjectGroup.put("TAl<sub>2</sub>O<sub>3</sub>",map.get("TAl<sub>2</sub>O<sub>3</sub>"));
 					}
 				}
-				if(jsonObject.containsKey("TFe<sub>2</sub>O<sub>3</sub>")){
+				if(jsonObjectGroup.containsKey("TFe<sub>2</sub>O<sub>3</sub>")){
 					if(map.containsKey("TFe<sub>2</sub>O<sub>3</sub>")){
-						jsonObject.put("TFe<sub>2</sub>O<sub>3</sub>",map.get("TFe<sub>2</sub>O<sub>3</sub>"));
+						jsonObjectGroup.put("TFe<sub>2</sub>O<sub>3</sub>",map.get("TFe<sub>2</sub>O<sub>3</sub>"));
 					}
 				}
-				if(jsonObject.containsKey("TMgO")){
+				if(jsonObjectGroup.containsKey("TMgO")){
 					if(map.containsKey("TMgO")){
-						jsonObject.put("TMgO",map.get("TMgO"));
+						jsonObjectGroup.put("TMgO",map.get("TMgO"));
 					}
 				}
-				if(jsonObject.containsKey("TTiO<sub>2</sub>")){
+				if(jsonObjectGroup.containsKey("TTiO<sub>2</sub>")){
 					if(map.containsKey("TTiO<sub>2</sub>")){
-						jsonObject.put("TTiO<sub>2</sub>",map.get("TTiO<sub>2</sub>"));
+						jsonObjectGroup.put("TTiO<sub>2</sub>",map.get("TTiO<sub>2</sub>"));
 					}
 				}
-				if(jsonObject.containsKey("TAl<sub>2</sub>O<sub>3</sub>")){
+				if(jsonObjectGroup.containsKey("TAl<sub>2</sub>O<sub>3</sub>")){
 					if(map.containsKey("TAl<sub>2</sub>O<sub>3</sub>")){
-						jsonObject.put("TAl<sub>2</sub>O<sub>3</sub>",map.get("TAl<sub>2</sub>O<sub>3</sub>"));
+						jsonObjectGroup.put("TAl<sub>2</sub>O<sub>3</sub>",map.get("TAl<sub>2</sub>O<sub>3</sub>"));
 					}
 				}
-				if(jsonObject.containsKey("TTiO<sub>2</sub>")){
+				if(jsonObjectGroup.containsKey("TTiO<sub>2</sub>")){
 					if(map.containsKey("TTiO<sub>2</sub>")){
-						jsonObject.put("TTiO<sub>2</sub>",map.get("TTiO<sub>2</sub>"));
+						jsonObjectGroup.put("TTiO<sub>2</sub>",map.get("TTiO<sub>2</sub>"));
 					}
 				}
-				if(jsonObject.containsKey("TCaO")){
+				if(jsonObjectGroup.containsKey("TCaO")){
 					if(map.containsKey("TCaO")){
-						jsonObject.put("TCaO",map.get("TCaO"));
+						jsonObjectGroup.put("TCaO",map.get("TCaO"));
 					}
 				}
-				if(jsonObject.containsKey("V1")){
+				if(jsonObjectGroup.containsKey("V1")){
 					if(map.containsKey("V1")){
-						jsonObject.put("V1",map.get("V1"));
+						jsonObjectGroup.put("V1",map.get("V1"));
 					}
 				}
-				if(jsonObject.containsKey("T")){
+				if(jsonObjectGroup.containsKey("T")){
 					if(map.containsKey("T")){
-						jsonObject.put("T",map.get("T"));
+						jsonObjectGroup.put("T",map.get("T"));
 					}
 				}
-				if(jsonObject.containsKey("K")){
+				if(jsonObjectGroup.containsKey("K")){
 					if(map.containsKey("K")){
-						jsonObject.put("K",map.get("K"));
+						jsonObjectGroup.put("K",map.get("K"));
 					}
 				}
 			}
diff --git a/cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/EntrustServiceImpl.java b/cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/EntrustServiceImpl.java
index 274ecc1545e389299665acb1966d4330185fc2ca..0e12150d7e222757947b14a886234d4a0f6be322 100644
--- a/cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/EntrustServiceImpl.java
+++ b/cement-business/src/main/java/cn/wise/sc/cement/business/service/impl/EntrustServiceImpl.java
@@ -3910,6 +3910,83 @@ public class EntrustServiceImpl extends ServiceImpl<EntrustMapper, Entrust> impl
 
     }
 
+    /**
+     * 按照检测组重新校核计算 -不改变当前状态  只改变结果(新的)
+     * @param query
+     * @return
+     */
+    @Override
+    @Transactional
+    public BaseResponse<String> checkCountNewAgain(CheckCountNewQuery query) {
+        LoginUser loginUser = userService.getLoginUser();
+        if (loginUser == null) {
+            return BaseResponse.noLogin("请登录用户");
+        }
+        if (query == null || query.getEntrustId() == null || query.getUserId() == null ||
+                query.getSmapleId() == null) {
+            return BaseResponse.errorMsg("参数错误");
+        }
+        if (query.getTeamGroupId() == null ) {
+            return BaseResponse.errorMsg("请选择检测组");
+        }
+        Entrust entrust = entrustMapper.selectById(query.getEntrustId());
+        if (entrust == null) {
+            return BaseResponse.errorMsg("信息错误");
+        }
+        Sample sample_this = sampleMapper.selectById(query.getSmapleId());
+        if(sample_this == null){
+            return BaseResponse.errorMsg("样品信息错误");
+        }
+        //保存校核输入表信息
+        QueryWrapper<SampleDistributionCheckinput> checkinputQueryWrapper = new QueryWrapper<>();
+        checkinputQueryWrapper.eq("entrust_id", query.getEntrustId());
+        checkinputQueryWrapper.eq("sample_id", query.getSmapleId());
+        checkinputQueryWrapper.eq("team_group_id", query.getTeamGroupId());
+        checkinputQueryWrapper.eq("user_id", query.getUserId());
+        List<SampleDistributionCheckinput> checkinputList =
+                sampleDistributionCheckinputMapper.selectList(checkinputQueryWrapper);
+        SampleDistributionCheckinput checkinput = null;
+        JSONArray inputResult_jsonArray = commonService.mapToJSONArray2(query.getUserId(), query.getTeamGroupId(), query.getIntputResult());
+        String inputResult_String = JSON.toJSON(inputResult_jsonArray).toString();
+        System.out.println(inputResult_String);
+        if(checkinputList!= null && checkinputList.size() > 0 ){
+            checkinput =  checkinputList.get(0);
+            if(checkinput.getStatus() != 4){
+                return BaseResponse.errorMsg("校核状态错误");
+            }
+            checkinput.setInputResult(inputResult_String)
+                    .setUpdateTime(LocalDateTime.now());
+            sampleDistributionCheckinputMapper.updateById(checkinput);
+        }else{
+            return BaseResponse.errorMsg("校核输入表信息错误");
+        }
+
+        //保存校核结果信息
+        List<CheckCountDistributionNewQuery> queryList = query.getCheckCountDistributionNewQueryList();
+        if(queryList!= null && queryList.size()>0 ){
+            for(CheckCountDistributionNewQuery disQuery : queryList){
+                SampleDistribution dis = distributionMapper.selectById(disQuery.getDistributionId());
+                dis.setCheckInputId(checkinput.getId());
+                dis.setDistributionResult(disQuery.getDistributionResult());
+                if(dis.getCheckId() != null){
+                    SampleDistributionCheck disCheck = sampleDistributionCheckMapper.selectById(dis.getCheckId());
+                    disCheck.setDistributionError(disQuery.getDistributionError())
+                            .setLastResult(disQuery.getLastResult())
+                            .setUpdateTime(LocalDateTime.now());
+                    sampleDistributionCheckMapper.updateById(disCheck);
+                    dis.setCheckId(disCheck.getId());
+                }else{
+                    return BaseResponse.errorMsg("校核结果表信息错误");
+                }
+                distributionMapper.updateById(dis);
+            }
+        }
+
+        return BaseResponse.okData("校核完成");
+
+    }
+
+
     /**
      * 数据校核退回任务分页
      *