dengyj преди 3 години
родител
ревизия
3b73710221

+ 204 - 153
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/service/impl/MeterWorkRailwayActFirstServiceImpl.java

@@ -967,16 +967,6 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 first03.setCreateTime(new Date());
                 meterWorkRailwayActFirstMapper.insertSelective(first03);
             }
-            /*//6、修改计量监控
-            updateMonitor(first02.getBaseSpotNo());
-            //保存日志
-            saveNote(note);
-            updateMonitorOver(first02.getActualFirstNo(), first02.getBaseSpotNo());
-
-            //补充附加重量的数据
-            if (StringUtils.isNotEmpty(first02.getAddWgtPk())) {
-                insertAddWgtNo(first02.getActualFirstNo(), first02.getAddWgtPk(), first02.getCreateManNo(), first02.getCreateManName());
-            }*/
             rm.setSucceed();
             rm.setData(first02.getActualFirstNo());
             rm.setCode("200");
@@ -1215,16 +1205,6 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             scale02.setMeasureStationName(actualRow2.getNetSpot3Name());
             preRailwayScaleMapper.updateByPrimaryKeySelective(scale02);
 
-            /*//11、修改计量监控
-            updateMonitor(one.getBaseSpotNo());
-            //12、当存储一次数据或者结净时,将本车辆的预处理重量改为已使用
-            updatePreWeight(one.getCarNo());
-            updateMonitorOver(one.getActualFirstNo(), one.getBaseSpotNo());
-            //补充附加重量的数据
-            if (StringUtils.isNotEmpty(one.getAddWgtPk())) {
-                insertAddWgtNo(one.getActualFirstNo(), one.getAddWgtPk(), one.getCreateManNo(), one.getCreateManName());
-            }*/
-
             rm.setSucceed();
             rm.setData(one.getActualFirstNo());
             rm.setCode("200");
@@ -1232,8 +1212,8 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             return rm;
         } catch (Exception e) {
             e.printStackTrace();
-            rm.setMessage(e.getMessage());
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            rm.setMessage(e.getMessage());
             return rm;
         }
     }
@@ -1254,7 +1234,21 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             boolean isFirst = CollectionUtils.isEmpty(selectedFirsts);
             Assert.isTrue(!CollectionUtils.isEmpty(addFirsts) && addFirsts.size() >= 1, "新增一次记录必须不能为空");
             if(!isFirst) {
-                Assert.isTrue(!CollectionUtils.isEmpty(scales) && scales.size() == 2, "双委托结净必须有两条委托");
+                if(CollectionUtils.isEmpty(scales)){
+                    List<PreRailwayScale> scaleTemp = new ArrayList<>();
+                    selectedFirsts.forEach(item->{
+                        if(item.getPredictionNo() != null && StringUtils.isNotEmpty(item.getPredictionNo())){
+                            scaleTemp.add(preRailwayScaleMapper.selectBypredictionNo(item.getPredictionNo()));
+                        }
+                    });
+                    scales = scaleTemp;
+                }
+
+                if(!CollectionUtils.isEmpty(scales) && scales.size() != 2) {
+                    Assert.isTrue(!CollectionUtils.isEmpty(scales) && scales.size() == 2, "双委托结净必须有两条委托");
+                }
+                //判断是否是双委托
+                if (isDoubleEntrust(rm, scales.get(0), scales.get(1))) return rm;
             }
             if(!CollectionUtils.isEmpty(scales)) {
                 Assert.isTrue(  scales.size() <= 2, "委托最多只能选择两条");
@@ -1268,18 +1262,21 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         && tareWeight02.compareTo(new BigDecimal(0)) > 0, "新增两条一次数据的标识皮不能小于等于零");
                 String userId = addFirsts.get(0).getCreateManNo();
                 String userName = addFirsts.get(0).getCreateManName();
+                //一次数据匹配委托
                 for (int i = 0; i < scales.size(); i++) {
                     firstMatchPreScale(addFirsts.get(i), scales.get(i));
                     scales.get(i).setValueFlag("2");
                     scales.get(i).setUpdateManName("双委托更新");
                     scales.get(i).setPredictionType("5");
                 }
+
+                //插入一次添加数据
                 for (int i = 0; i < addFirsts.size(); i++) {
 //                    String actualFirstNo = sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(afl);
 //                    addFirsts.get(i).setActualFirstNo(actualFirstNo);
                     String actualFirstNo = PublicMethod.IdCreate(3);
                     addFirsts.get(i).setActualFirstNo(actualFirstNo);
-                    addFirsts.get(i).setValueFlag("1");
+                    addFirsts.get(i).setValueFlag(DbConstants.NET);
                     addFirsts.get(i).setUpdateManNo("system");
                     addFirsts.get(i).setUpdateManName("双委托更新");
                     addFirsts.get(i).setUpdateTime(new Date());
@@ -1308,6 +1305,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 addFirsts.get(0).setPredictionCombination(scales.get(0).getPredictionNo() + "," + scales.get(1).getPredictionNo());
                 addFirsts.get(0).setCreateTime(new Date());
                 meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(addFirsts.get(0));
+
                 //添加第二次皮重数据库
                 addFirsts.get(1).setValueFlag(DbConstants.NET);
                 addFirsts.get(1).setUpdateManName("system");
@@ -1372,12 +1370,13 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         scales.get(i).setUpdateManName("双委托更新");
                         scales.get(i).setPredictionType("5");
                     }
+
                     for (int i = 0; i < addFirsts.size(); i++) {
 //                    String actualFirstNo = sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(afl);
 //                    addFirsts.get(i).setActualFirstNo(actualFirstNo);
                         String actualFirstNo = PublicMethod.IdCreate(3);
                         addFirsts.get(i).setActualFirstNo(actualFirstNo);
-                        addFirsts.get(i).setValueFlag("1");
+                        addFirsts.get(i).setValueFlag("2");
                         addFirsts.get(i).setUpdateManNo("system");
                         addFirsts.get(i).setUpdateManName("双委托更新");
                         addFirsts.get(i).setUpdateTime(new Date());
@@ -1393,14 +1392,11 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         preRailwayScaleMapper.batchUpdate(scales);
                     }
                     newFirsts.addAll(addFirsts);
-                }
-                //第二次,所选择数据一条或者两条
-                else {
+                } else {//第二次,所选择数据一条或者两条
                     String userId = selectedFirsts.get(0).getCreateManNo();
                     String userName = selectedFirsts.get(0).getCreateManName();
                     //如果只选择了一条一次记录,就复制一条
                     if (selectedFirsts.size() == 1) {
-                        MeterWorkRailwayActFirst first = selectedFirsts.get(0);
                         MeterWorkRailwayActFirst firstCopy = new MeterWorkRailwayActFirst();
                         BeanUtils.copyProperties(selectedFirsts.get(0), firstCopy);
 //                    String actualFirstNo = sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(afl);
@@ -1415,44 +1411,46 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         newFirsts.add(firstCopy);
                     }
 
+
                     for (int i = 0; i < scales.size(); i++) {
 //                    String actualFirstNo = sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(afl);
 //                    addFirsts.get(i).setActualFirstNo(actualFirstNo);
                         String actualFirstNo = PublicMethod.IdCreate(3);
                         addFirsts.get(i).setActualFirstNo(actualFirstNo);
-                        addFirsts.get(i).setValueFlag(DbConstants.NET);
                         addFirsts.get(i).setUpdateManName("system");
                         addFirsts.get(i).setUpdateManName("双委托结净更新");
+                        addFirsts.get(i).setUpdateTime(new Date());
                         addFirsts.get(i).setCreateManNo(userId);
                         addFirsts.get(i).setCreateManName(userName);
                         addFirsts.get(i).setCreateTime(new Date());
-                        addFirsts.get(i).setWeightType("0");
-                        addFirsts.get(i).setUpdateTime(new Date());
+                        addFirsts.get(i).setValueFlag(DbConstants.NET);
                         addFirsts.get(i).setIsPreSacale("1");
-                        addFirsts.get(i).setPredictionNo(scales.get(i).getPredictionNo());
                         addFirsts.get(i).setPredictionType("5");
+                        addFirsts.get(i).setPredictionNo(scales.get(i).getPredictionNo());
                         addFirsts.get(i).setPredictionCombination(selectedFirsts.get(i).getPredictionNo() + "," + addFirsts.get(i).getPredictionNo());
                         addFirsts.get(i).setCreateTime(new Date());
                         meterWorkRailwayActFirstMapper.insertSelective(addFirsts.get(i));
+
                         //添加第二次皮重数据库
-                        selectedFirsts.get(i).setValueFlag(DbConstants.NET);
                         selectedFirsts.get(i).setUpdateManName("system");
                         selectedFirsts.get(i).setUpdateManName("双委托结净更新");
-                        selectedFirsts.get(i).setWeightType("0");
                         selectedFirsts.get(i).setUpdateTime(new Date());
+                        selectedFirsts.get(i).setValueFlag(DbConstants.NET);
                         selectedFirsts.get(i).setIsPreSacale("1");
-                        selectedFirsts.get(i).setPredictionNo(scales.get(i).getPredictionNo());
                         selectedFirsts.get(i).setPredictionType("5");
+                        selectedFirsts.get(i).setPredictionNo(scales.get(i).getPredictionNo());
                         selectedFirsts.get(i).setPredictionCombination(selectedFirsts.get(i).getPredictionNo() + "," + addFirsts.get(i).getPredictionNo());
-                        selectedFirsts.get(i).setCreateTime(new Date());
                         meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(selectedFirsts.get(i));
+
                         scales.get(i).setValueFlag("2");
+                        scales.get(i).setUploadFlag("1");
                         scales.get(i).setUpdateManName("双委托结净更新");
                         scales.get(i).setPredictionType("5");
                         scales.get(i).setMeasureStation(selectedFirsts.get(i).getBaseSpotNo());
                         scales.get(i).setMeasureStationName(selectedFirsts.get(i).getBaseSpotName());
                         preRailwayScaleMapper.updateByPrimaryKeySelective(scales.get(i));
                     }
+
                     for (int i = 0; i < addFirsts.size(); i++) {
                         MeterWorkRailwayActual actualRow = new MeterWorkRailwayActual();
                         if(selectedFirsts.get(i).getMeterWeight().compareTo(addFirsts.get(i).getMeterWeight()) > 0) {
@@ -1522,8 +1520,33 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
         }
     }
 
-    //一次记录委托结净匹配
+    private boolean isDoubleEntrust(RESTfulResult rm, PreRailwayScale scale, PreRailwayScale scale2) {
+        //判断双委托 物料相同、A委托的收货单位是B委托的发货单位 或者 B委托的收货单位是A委托的发货单位
+        if (!(scale.getMatterNo().equals(scale2.getMatterNo()) &&
+                (scale.getReceivingUintNo().equals(scale2.getForwardingUnitNo()) ||
+                        scale.getForwardingUnitNo().equals(scale2.getReceivingUintNo())))) {
+            rm.setMessage("委托信息不符合双委托规则,请确认!!");
+            return true;
+        }
+        return false;
+    }
+
+    //一次记录双委托结净匹配
     private void doNet(MeterWorkRailwayActual actualRow, MeterWorkRailwayActFirst grossFirst, MeterWorkRailwayActFirst tareFirst, String predictionNo) {
+        MeterWorkRailwayActFirst grossFirstTemp = meterWorkRailwayActFirstMapper.selectAndMatch(grossFirst.getActualFirstNo(), predictionNo);
+        BeanUtils.copyProperties(grossFirstTemp, grossFirst);
+        grossFirst.setIsPreSacale("1");
+        grossFirst.setValueFlag("2");
+        grossFirst.setPredictionType("5");
+        grossFirst.setNote("双委托洁净");
+
+        MeterWorkRailwayActFirst tareFirstTemp = meterWorkRailwayActFirstMapper.selectAndMatch(tareFirst.getActualFirstNo(), predictionNo);
+        BeanUtils.copyProperties(tareFirstTemp, tareFirst);
+        tareFirst.setIsPreSacale("1");
+        tareFirst.setValueFlag("2");
+        tareFirst.setPredictionType("5");
+        tareFirst.setNote("双委托洁净");
+
         MeterWorkRailwayActual mwca = meterWorkRailwayActualMapper.manualAddPre(grossFirst.getActualFirstNo(), tareFirst.getActualFirstNo(), predictionNo);
         BeanUtils.copyProperties(mwca, actualRow);
 
@@ -1532,6 +1555,8 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
         actualRow.setUploadFlag("1");
         actualRow.setValueFlag("1");
         actualRow.setIsPreSacale("1");
+        actualRow.setPredictionType("5");
+        actualRow.setNote("双委托洁净");
         actualRow.setNetWeight(grossFirst.getMeterWeight().subtract(tareFirst.getMeterWeight()));
     }
 
@@ -1540,9 +1565,11 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
         BeanUtils.copyProperties(scale, first);
         first.setIsPreSacale("1");
         first.setPredictionNo(scale.getPredictionNo());
+
         scale.setUpdateTime(new Date());
         scale.setUpdateManNo("system");
         scale.setUploadFlag("1");
+        scale.setValueFlag("1");
         scale.setMeasureStation(first.getBaseSpotNo());
         scale.setMeasureStationName(first.getBaseSpotName());
     }
@@ -1560,14 +1587,17 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             String scaleNo = "";
             //从勾选的委托、两个一次数据中赋值委托号
             if(scale != null && scale.getPredictionNo() != null && StringUtils.isNotEmpty(scale.getPredictionNo())){
-                if((first01.getPredictionNo() != null && StringUtils.isNotEmpty(first01.getPredictionNo())
-                        && (!scale.getPredictionNo().equals(first01.getPredictionNo()) && !first01.getPredictionNo().equals("混装混卸复制")))){
-                    rm.setMessage("毛重一次计量数据与勾选中的委托号不一致,请确认!!");
-                    return rm;
-                }else if(first02.getPredictionNo() != null && StringUtils.isNotEmpty(first02.getPredictionNo())
-                        && (!scale.getPredictionNo().equals(first02.getPredictionNo())&& !first01.getPredictionNo().equals("混装混卸复制"))){
-                    rm.setMessage("皮重一次计量数据与勾选中的委托号不一致,请确认!!");
-                    return rm;
+                if(first01.getPredictionNo() != null && StringUtils.isNotEmpty(first01.getPredictionNo()) && !first01.getPredictionNo().equals("混装混卸复制")) {
+                    if(!scale.getPredictionNo().equals(first01.getPredictionNo())){
+                        rm.setMessage("一次计量数据与勾选中的委托号不一致,请确认!!");
+                        return rm;
+                    }
+                }
+                if(first02.getPredictionNo() != null && StringUtils.isNotEmpty(first02.getPredictionNo()) &&!first02.getPredictionNo().equals("混装混卸复制")) {
+                    if(!scale.getPredictionNo().equals(first02.getPredictionNo())){
+                        rm.setMessage("一次计量数据与勾选中的委托号不一致,请确认!!");
+                        return rm;
+                    }
                 }
                 scaleNo = scale.getPredictionNo();
             }else if((first01.getPredictionNo() != null && StringUtils.isNotEmpty(first01.getPredictionNo()) && !first01.getPredictionNo().equals("混装混卸复制"))){
@@ -1792,16 +1822,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     model02.setPredictionNo("");
                     meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(model02);
                 }
-            /*//6、修改计量监控
-            updateMonitor(first02.getBaseSpotNo());
-            //保存日志
-            saveNote(note);
-            updateMonitorOver(first02.getActualFirstNo(), first02.getBaseSpotNo());
 
-            //补充附加重量的数据
-            if (StringUtils.isNotEmpty(first02.getAddWgtPk())) {
-                insertAddWgtNo(first02.getActualFirstNo(), first02.getAddWgtPk(), first02.getCreateManNo(), first02.getCreateManName());
-            }*/
                 firsts.add(first02);
                 actuals.add(actualRow);
                 map.put("firsts", firsts);
@@ -2045,19 +2066,12 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     meterWorkRailwayActFirstMapper.insertSelective(first02);
                     firsts.add(first02);
                 }else {
-                    firsts.add(model02);
+                    if(first01.getWeightType().equals("1")){
+                        firsts.add(model01);
+                    }else {
+                        firsts.add(model02);
+                    }
                 }
-            /*//6、修改计量监控
-            updateMonitor(first02.getBaseSpotNo());
-            //保存日志
-            saveNote(note);
-            updateMonitorOver(first02.getActualFirstNo(), first02.getBaseSpotNo());
-
-            //补充附加重量的数据
-            if (StringUtils.isNotEmpty(first02.getAddWgtPk())) {
-                insertAddWgtNo(first02.getActualFirstNo(), first02.getAddWgtPk(), first02.getCreateManNo(), first02.getCreateManName());
-            }*/
-
                 actuals.add(actualRow);
                 map.put("firsts", firsts);
                 map.put("actuals", actuals);
@@ -2099,12 +2113,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     return rm;
                 }
                 //判断双委托 物料相同、A委托的收货单位是B委托的发货单位 或者 B委托的收货单位是A委托的发货货单位
-                if (!(scale01.getMatterNo().equals(scale02.getMatterNo()) &&
-                        (scale01.getReceivingUintNo().equals(scale02.getForwardingUnitNo()) ||
-                                scale01.getForwardingUnitNo().equals(scale02.getReceivingUintNo())))) {
-                    rm.setMessage("委托信息不符合双委托规则,请确认!!");
-                    return rm;
-                }
+                if (isDoubleEntrust(rm, scale01, scale02)) return rm;
             }
             //获取两个一次重量的差值
             BigDecimal num01 = first01.getMeterWeight().subtract(first02.getMeterWeight()).abs();
@@ -7052,6 +7061,10 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             int count = 0;
             //将从表数据的车号所对应有效的AI标识皮进行结净,未找到Ai标识皮就跳过
             for (MeterWorkRailwayReceived receivedModel: receivedList) {
+
+                String userId = receivedModel.getUpdateManNo();
+                String userName = receivedModel.getUpdateManName();
+
                 HashMap obj = new HashMap();
                 obj.put("railwayNo", receivedModel.getRailwayNo());
                 obj.put("valueFlag", "0");
@@ -7067,28 +7080,28 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     meterWorkRailwayReceivedMapper.updateMeterWorkRailwayReceived(receivedModel.getActualFirstNo());
 
                     //更新主表状态METER_WORK_RAILWAY_REC_MAIN
-                    if(receivedModel.getRailwayWorkNo() != null && StringUtils.isNotEmpty(receivedModel.getRailwayWorkNo())) {
-                        HashMap<String, Object> objRec = new HashMap<>();
-                        objRec.put("railwayWorkNo", receivedModel.getRailwayWorkNo());
-                        objRec.put("valueFlag", "1");
-                        List<MeterWorkRailwayReceived> receiveds = meterWorkRailwayReceivedMapper.selectByParameters(objRec);
-                        if(receiveds.size() < 1) {
-                            HashMap<String, Object> objMap = new HashMap<>();
-                            objMap.put("soundName", receivedModel.getRailwayWorkNo());
-                            List<MeterWorkRailwayRecMain> recMains = meterWorkRailwayRecMainMapper.selectByParameters(objMap);
-                            if(recMains.size() >= 1) {
-                                recMains.get(0).setIsDispose("1");
-                                meterWorkRailwayRecMainMapper.updateByPrimaryKeySelective(recMains.get(0));
-                            }
-                        }
-                    }
+//                    if(receivedModel.getRailwayWorkNo() != null && StringUtils.isNotEmpty(receivedModel.getRailwayWorkNo())) {
+//                        HashMap<String, Object> objRec = new HashMap<>();
+//                        objRec.put("railwayWorkNo", receivedModel.getRailwayWorkNo());
+//                        objRec.put("valueFlag", "1");
+//                        List<MeterWorkRailwayReceived> receiveds = meterWorkRailwayReceivedMapper.selectByParameters(objRec);
+//                        if(receiveds.size() < 1) {
+//                            HashMap<String, Object> objMap = new HashMap<>();
+//                            objMap.put("soundName", receivedModel.getRailwayWorkNo());
+//                            List<MeterWorkRailwayRecMain> recMains = meterWorkRailwayRecMainMapper.selectByParameters(objMap);
+//                            if(recMains.size() >= 1) {
+//                                recMains.get(0).setIsDispose("1");
+//                                meterWorkRailwayRecMainMapper.updateByPrimaryKeySelective(recMains.get(0));
+//                            }
+//                        }
+//                    }
                     //作废AI标志皮
                     AiWeightModel.setValueFlag("1");
                     meterBaseRailwayAiweightMapper.updateByPrimaryKeySelective(AiWeightModel);
 
                     //从表赋值grossModel、AI也赋值tareModel并修改重量
                     BeanUtils.copyProperties(receivedModel, grossModel);
-                    grossModel.setLcNo(receivedModel.getRailwayModelNo());
+                    grossModel.setLcNo(receivedModel.getRailwayWorkNo());
                     meterWorkRailwayActFirstMapper.insertSelective(grossModel);
                     BeanUtils.copyProperties(grossModel, tareModel);
                     tareModel.setMeterWeight(AiWeightModel.getMeterWeight());
@@ -7096,10 +7109,12 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     grossModel.setValueFlag(DbConstants.NET);
                     grossModel.setWeightType("0");
                     grossModel.setNote("AI标识皮匹配委托结净更新");
-                    grossModel.setUpdateTime(new Date());
                     grossModel.setIsPreSacale("1");
                     grossModel.setPredictionNo(railwayScale.getPredictionNo());
                     grossModel.setPredictionType("1");
+                    grossModel.setUpdateManNo(userId);
+                    grossModel.setUpdateManName(userName);
+                    grossModel.setUpdateTime(new Date());
                     meterWorkRailwayActFirstMapper.updateByPrimaryKey(grossModel);
 
                     //添加第二次毛重数据
@@ -7142,19 +7157,25 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         actualRow.setCreateTime(actualRow.getTareTime());
                         actualRow.setCreateManName(actualRow.getTareManName());
                     }
+                    actualRow.setUpdateManNo(userId);
+                    actualRow.setUpdateManName(userName);
+                    actualRow.setUpdateTime(new Date());
+                    actualRow.setNetManNo(userId);
+                    actualRow.setNetManName(userName);
+                    actualRow.setNetTime(new Date());
                     actualRow.setLcNo(meterWorkRailwayActFirstMapper.getFirstLcNo(actualRow.getActualFirst1No()));
                     meterWorkRailwayActualMapper.insertSelective(actualRow);
 
                     //更新预报数
                     railwayScale.setValueFlag(DbConstants.NET);
-                    railwayScale.setUpdateTime(new Date());
-                    railwayScale.setUpdateManNo("system");
-                    railwayScale.setUpdateManName("AI标识皮匹配委托结净更新");
                     railwayScale.setUploadFlag("1");
                     railwayScale.setValueFlag("2");
                     railwayScale.setPredictionType("1");
                     railwayScale.setMeasureStation(actualRow.getNetSpot3No());
                     railwayScale.setMeasureStationName(actualRow.getNetSpot3Name());
+                    railwayScale.setUpdateTime(new Date());
+                    railwayScale.setUpdateManNo(userId);
+                    railwayScale.setUpdateManName(userName);
                     preRailwayScaleMapper.updateByPrimaryKeySelective(railwayScale);
 
                     count++;
@@ -7215,6 +7236,9 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             int count = 0;
             //将从表数据的车号所对应有效的AI标识皮进行结净,未找到Ai标识皮就跳过
             for (MeterWorkRailwayReceived receivedModel: receivedList) {
+                String userId = receivedModel.getUpdateManNo();
+                String userName = receivedModel.getUpdateManName();
+
                 HashMap obj = new HashMap();
                 obj.put("carriageCode", receivedModel.getRailwayModel());
                 obj.put("valueFlag", "1");
@@ -7230,25 +7254,25 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     meterWorkRailwayReceivedMapper.updateMeterWorkRailwayReceived(receivedModel.getActualFirstNo());
 
                     //更新主表状态METER_WORK_RAILWAY_REC_MAIN
-                    if(receivedModel.getRailwayWorkNo() != null && StringUtils.isNotEmpty(receivedModel.getRailwayWorkNo())) {
-                        HashMap<String, Object> objRec = new HashMap<>();
-                        objRec.put("railwayWorkNo", receivedModel.getRailwayWorkNo());
-                        objRec.put("valueFlag", "1");
-                        List<MeterWorkRailwayReceived> receiveds = meterWorkRailwayReceivedMapper.selectByParameters(objRec);
-                        if(receiveds.size() < 1) {
-                            HashMap<String, Object> objMap = new HashMap<>();
-                            objMap.put("soundName", receivedModel.getRailwayWorkNo());
-                            List<MeterWorkRailwayRecMain> recMains = meterWorkRailwayRecMainMapper.selectByParameters(objMap);
-                            if(recMains.size() >= 1) {
-                                recMains.get(0).setIsDispose("1");
-                                meterWorkRailwayRecMainMapper.updateByPrimaryKeySelective(recMains.get(0));
-                            }
-                        }
-                    }
+//                    if(receivedModel.getRailwayWorkNo() != null && StringUtils.isNotEmpty(receivedModel.getRailwayWorkNo())) {
+//                        HashMap<String, Object> objRec = new HashMap<>();
+//                        objRec.put("railwayWorkNo", receivedModel.getRailwayWorkNo());
+//                        objRec.put("valueFlag", "1");
+//                        List<MeterWorkRailwayReceived> receiveds = meterWorkRailwayReceivedMapper.selectByParameters(objRec);
+//                        if(receiveds.size() < 1) {
+//                            HashMap<String, Object> objMap = new HashMap<>();
+//                            objMap.put("soundName", receivedModel.getRailwayWorkNo());
+//                            List<MeterWorkRailwayRecMain> recMains = meterWorkRailwayRecMainMapper.selectByParameters(objMap);
+//                            if(recMains.size() >= 1) {
+//                                recMains.get(0).setIsDispose("1");
+//                                meterWorkRailwayRecMainMapper.updateByPrimaryKeySelective(recMains.get(0));
+//                            }
+//                        }
+//                    }
 
                     //从表赋值grossModel、AI也赋值tareModel并修改重量
                     BeanUtils.copyProperties(receivedModel, grossModel);
-                    grossModel.setLcNo(receivedModel.getRailwayModelNo());
+                    grossModel.setLcNo(receivedModel.getRailwayWorkNo());
                     meterWorkRailwayActFirstMapper.insertSelective(grossModel);
                     BeanUtils.copyProperties(grossModel, tareModel);
                     tareModel.setMeterWeight(new BigDecimal(carriageWeightModel.getCarriageWeight()));
@@ -7256,10 +7280,12 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     grossModel.setValueFlag(DbConstants.NET);
                     grossModel.setWeightType("0");
                     grossModel.setNote("标准皮匹配委托结净更新");
-                    grossModel.setUpdateTime(new Date());
                     grossModel.setIsPreSacale("1");
                     grossModel.setPredictionNo(railwayScale.getPredictionNo());
                     grossModel.setPredictionType("1");
+                    grossModel.setUpdateManNo(userId);
+                    grossModel.setUpdateManName(userName);
+                    grossModel.setUpdateTime(new Date());
                     meterWorkRailwayActFirstMapper.updateByPrimaryKey(grossModel);
 
                     //添加第二次毛重数据
@@ -7302,19 +7328,25 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         actualRow.setCreateTime(actualRow.getTareTime());
                         actualRow.setCreateManName(actualRow.getTareManName());
                     }
+                    actualRow.setUpdateManNo(userId);
+                    actualRow.setUpdateManName(userName);
+                    actualRow.setUpdateTime(new Date());
+                    actualRow.setNetManNo(userId);
+                    actualRow.setNetManName(userName);
+                    actualRow.setNetTime(new Date());
                     actualRow.setLcNo(meterWorkRailwayActFirstMapper.getFirstLcNo(actualRow.getActualFirst1No()));
                     meterWorkRailwayActualMapper.insertSelective(actualRow);
 
                     //更新预报数
                     railwayScale.setValueFlag(DbConstants.NET);
-                    railwayScale.setUpdateTime(new Date());
-                    railwayScale.setUpdateManNo("system");
-                    railwayScale.setUpdateManName("标准皮匹配委托结净更新");
                     railwayScale.setUploadFlag("1");
                     railwayScale.setValueFlag("2");
                     railwayScale.setPredictionType("1");
                     railwayScale.setMeasureStation(actualRow.getNetSpot3No());
                     railwayScale.setMeasureStationName(actualRow.getNetSpot3Name());
+                    railwayScale.setUpdateTime(new Date());
+                    railwayScale.setUpdateManNo(userId);
+                    railwayScale.setUpdateManName(userName);
                     preRailwayScaleMapper.updateByPrimaryKeySelective(railwayScale);
 
                     count++;
@@ -7375,6 +7407,8 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             int count = 0;
             //将从表数据的车号所对应有效的AI标识皮进行结净,未找到历史皮就跳过
             for (MeterWorkRailwayReceived receivedModel: receivedList) {
+                String userId = receivedModel.getUpdateManNo();
+                String userName = receivedModel.getUpdateManName();
                 HashMap obj = new HashMap();
                 obj.put("railwayNo", receivedModel.getRailwayNo());
                 obj.put("valueFlag", "1");
@@ -7394,44 +7428,48 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     meterWorkRailwayReceivedMapper.updateMeterWorkRailwayReceived(receivedModel.getActualFirstNo());
 
                     //更新主表状态METER_WORK_RAILWAY_REC_MAIN
-                    if(receivedModel.getRailwayWorkNo() != null && StringUtils.isNotEmpty(receivedModel.getRailwayWorkNo())) {
-                        HashMap<String, Object> objRec = new HashMap<>();
-                        objRec.put("railwayWorkNo", receivedModel.getRailwayWorkNo());
-                        objRec.put("valueFlag", "1");
-                        List<MeterWorkRailwayReceived> receiveds = meterWorkRailwayReceivedMapper.selectByParameters(objRec);
-                        if(receiveds.size() < 1) {
-                            HashMap<String, Object> objMap = new HashMap<>();
-                            objMap.put("soundName", receivedModel.getRailwayWorkNo());
-                            List<MeterWorkRailwayRecMain> recMains = meterWorkRailwayRecMainMapper.selectByParameters(objMap);
-                            if(recMains.size() >= 1) {
-                                recMains.get(0).setIsDispose("1");
-                                meterWorkRailwayRecMainMapper.updateByPrimaryKeySelective(recMains.get(0));
-                            }
-                        }
-                    }
+//                    if(receivedModel.getRailwayWorkNo() != null && StringUtils.isNotEmpty(receivedModel.getRailwayWorkNo())) {
+//                        HashMap<String, Object> objRec = new HashMap<>();
+//                        objRec.put("railwayWorkNo", receivedModel.getRailwayWorkNo());
+//                        objRec.put("valueFlag", "1");
+//                        List<MeterWorkRailwayReceived> receiveds = meterWorkRailwayReceivedMapper.selectByParameters(objRec);
+//                        if(receiveds.size() < 1) {
+//                            HashMap<String, Object> objMap = new HashMap<>();
+//                            objMap.put("soundName", receivedModel.getRailwayWorkNo());
+//                            List<MeterWorkRailwayRecMain> recMains = meterWorkRailwayRecMainMapper.selectByParameters(objMap);
+//                            if(recMains.size() >= 1) {
+//                                recMains.get(0).setIsDispose("1");
+//                                meterWorkRailwayRecMainMapper.updateByPrimaryKeySelective(recMains.get(0));
+//                            }
+//                        }
+//                    }
 
                     //从表赋值grossModel、AI也赋值tareModel并修改重量
                     BeanUtils.copyProperties(receivedModel, grossModel);
-                    grossModel.setLcNo(receivedModel.getRailwayModelNo());
+                    grossModel.setLcNo(receivedModel.getRailwayWorkNo());
                     meterWorkRailwayActFirstMapper.insertSelective(grossModel);
 
                     grossModel.setValueFlag(DbConstants.NET);
                     grossModel.setWeightType("0");
                     grossModel.setNote("空皮匹配委托结净更新");
-                    grossModel.setUpdateTime(new Date());
                     grossModel.setWeightType("0");
                     grossModel.setIsPreSacale("1");
                     grossModel.setPredictionNo(railwayScale.getPredictionNo());
                     grossModel.setPredictionType("1");
+                    grossModel.setUpdateManNo(userId);
+                    grossModel.setUpdateManName(userName);
+                    grossModel.setUpdateTime(new Date());
                     meterWorkRailwayActFirstMapper.updateByPrimaryKey(grossModel);
 
                     tareModel.setValueFlag(DbConstants.NET);
                     tareModel.setWeightType("1");
                     tareModel.setNote("空皮匹配委托结净更新");
-                    tareModel.setUpdateTime(new Date());
                     tareModel.setIsPreSacale("1");
                     tareModel.setPredictionNo(railwayScale.getPredictionNo());
                     tareModel.setPredictionType("1");
+                    tareModel.setUpdateManNo(userId);
+                    tareModel.setUpdateManName(userName);
+                    tareModel.setUpdateTime(new Date());
                     meterWorkRailwayActFirstMapper.updateByPrimaryKey(tareModel);
 
                     //保存历史皮重
@@ -7479,18 +7517,21 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         actualRow.setCreateManName(actualRow.getTareManName());
                         actualRow.setLcNo(meterWorkRailwayActFirstMapper.getFirstLcNo(actualRow.getActualFirst2No()));
                     }
+                    actualRow.setUpdateManNo(userId);
+                    actualRow.setUpdateManName(userName);
+                    actualRow.setUpdateTime(new Date());
                     meterWorkRailwayActualMapper.insertSelective(actualRow);
 
                     //更新预报数
                     railwayScale.setValueFlag(DbConstants.NET);
-                    railwayScale.setUpdateTime(new Date());
-                    railwayScale.setUpdateManNo("system");
-                    railwayScale.setUpdateManName("空皮匹配委托结净更新");
                     railwayScale.setUploadFlag("1");
                     railwayScale.setValueFlag("2");
                     railwayScale.setPredictionType("1");
                     railwayScale.setMeasureStation(actualRow.getNetSpot3No());
                     railwayScale.setMeasureStationName(actualRow.getNetSpot3Name());
+                    railwayScale.setUpdateTime(new Date());
+                    railwayScale.setUpdateManNo(userId);
+                    railwayScale.setUpdateManName(userName);
                     preRailwayScaleMapper.updateByPrimaryKeySelective(railwayScale);
 
                     count++;
@@ -7551,6 +7592,8 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             int count = 0;
             //将从表数据的车号所对应有效的AI标识皮进行结净,未找到Ai标识皮就跳过
             for (MeterWorkRailwayReceived receivedModel: receivedList) {
+                String userId = receivedModel.getUpdateManNo();
+                String userName = receivedModel.getUpdateManName();
                 HashMap obj = new HashMap();
                 obj.put("railwayNo", receivedModel.getRailwayNo());
                 obj.put("valueFlag", "1");
@@ -7566,25 +7609,25 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     meterWorkRailwayReceivedMapper.updateMeterWorkRailwayReceived(receivedModel.getActualFirstNo());
 
                     //更新主表状态METER_WORK_RAILWAY_REC_MAIN
-                    if(receivedModel.getRailwayWorkNo() != null && StringUtils.isNotEmpty(receivedModel.getRailwayWorkNo())) {
-                        HashMap<String, Object> objRec = new HashMap<>();
-                        objRec.put("railwayWorkNo", receivedModel.getRailwayWorkNo());
-                        objRec.put("valueFlag", "1");
-                        List<MeterWorkRailwayReceived> receiveds = meterWorkRailwayReceivedMapper.selectByParameters(objRec);
-                        if(receiveds.size() < 1) {
-                            HashMap<String, Object> objMap = new HashMap<>();
-                            objMap.put("soundName", receivedModel.getRailwayWorkNo());
-                            List<MeterWorkRailwayRecMain> recMains = meterWorkRailwayRecMainMapper.selectByParameters(objMap);
-                            if(recMains.size() >= 1) {
-                                recMains.get(0).setIsDispose("1");
-                                meterWorkRailwayRecMainMapper.updateByPrimaryKeySelective(recMains.get(0));
-                            }
-                        }
-                    }
+//                    if(receivedModel.getRailwayWorkNo() != null && StringUtils.isNotEmpty(receivedModel.getRailwayWorkNo())) {
+//                        HashMap<String, Object> objRec = new HashMap<>();
+//                        objRec.put("railwayWorkNo", receivedModel.getRailwayWorkNo());
+//                        objRec.put("valueFlag", "1");
+//                        List<MeterWorkRailwayReceived> receiveds = meterWorkRailwayReceivedMapper.selectByParameters(objRec);
+//                        if(receiveds.size() < 1) {
+//                            HashMap<String, Object> objMap = new HashMap<>();
+//                            objMap.put("soundName", receivedModel.getRailwayWorkNo());
+//                            List<MeterWorkRailwayRecMain> recMains = meterWorkRailwayRecMainMapper.selectByParameters(objMap);
+//                            if(recMains.size() >= 1) {
+//                                recMains.get(0).setIsDispose("1");
+//                                meterWorkRailwayRecMainMapper.updateByPrimaryKeySelective(recMains.get(0));
+//                            }
+//                        }
+//                    }
 
                     //从表赋值grossModel、历史皮也赋值tareModel并修改重量
                     BeanUtils.copyProperties(receivedModel, grossModel);
-                    grossModel.setLcNo(receivedModel.getRailwayModelNo());
+                    grossModel.setLcNo(receivedModel.getRailwayWorkNo());
                     meterWorkRailwayActFirstMapper.insertSelective(grossModel);
                     BeanUtils.copyProperties(grossModel, tareModel);
                     tareModel.setMeterWeight(new BigDecimal(hisTareWeightModel.getMeterWeight()));
@@ -7592,10 +7635,12 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     grossModel.setValueFlag(DbConstants.NET);
                     grossModel.setWeightType("0");
                     grossModel.setNote("历史皮匹配委托结净更新");
-                    grossModel.setUpdateTime(new Date());
                     grossModel.setIsPreSacale("1");
                     grossModel.setPredictionNo(railwayScale.getPredictionNo());
                     grossModel.setPredictionType("1");
+                    grossModel.setUpdateManNo(userId);
+                    grossModel.setUpdateManName(userName);
+                    grossModel.setUpdateTime(new Date());
                     meterWorkRailwayActFirstMapper.updateByPrimaryKey(grossModel);
 
                     //添加第二次毛重数据
@@ -7638,19 +7683,25 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         actualRow.setCreateTime(actualRow.getTareTime());
                         actualRow.setCreateManName(actualRow.getTareManName());
                     }
+                    actualRow.setUpdateManNo(userId);
+                    actualRow.setUpdateManName(userName);
+                    actualRow.setUpdateTime(new Date());
+                    actualRow.setNetManNo(userId);
+                    actualRow.setNetManName(userName);
+                    actualRow.setNetTime(new Date());
                     actualRow.setLcNo(meterWorkRailwayActFirstMapper.getFirstLcNo(actualRow.getActualFirst1No()));
                     meterWorkRailwayActualMapper.insertSelective(actualRow);
 
                     //更新预报数
                     railwayScale.setValueFlag(DbConstants.NET);
-                    railwayScale.setUpdateTime(new Date());
-                    railwayScale.setUpdateManNo("system");
-                    railwayScale.setUpdateManName("历史皮匹配委托结净更新");
                     railwayScale.setUploadFlag("1");
                     railwayScale.setValueFlag("2");
                     railwayScale.setPredictionType("1");
                     railwayScale.setMeasureStation(actualRow.getNetSpot3No());
                     railwayScale.setMeasureStationName(actualRow.getNetSpot3Name());
+                    railwayScale.setUpdateTime(new Date());
+                    railwayScale.setUpdateManNo(userId);
+                    railwayScale.setUpdateManName(userName);
                     preRailwayScaleMapper.updateByPrimaryKeySelective(railwayScale);
 
                     count++;

+ 81 - 68
src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/service/impl/MeterWorkRailwayActualServiceImpl.java

@@ -211,6 +211,7 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
         return rm;
     }
 
+    //动态衡作废洁净数据、并恢复从表数据
     @Override
     public RESTfulResult deleteList(List<MeterWorkRailwayActual> models) {
         RESTfulResult rm = new RESTfulResult();
@@ -247,8 +248,9 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                     }
                 }
             }
-            for (MeterWorkRailwayActual model: models) {
+            for (MeterWorkRailwayActual modelTemp: models) {
                 //循环每一个结净记录
+                MeterWorkRailwayActual model = meterWorkRailwayActualMapper.selectByPrimaryKey(modelTemp.getActualNo());
                 //委托不能为空
                 if(model.getPredictionNo() != null){
                     // 改委托
@@ -263,31 +265,26 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                     }
                 }
                 // 清空一次毛重、皮重委托信息
-                MeterWorkRailwayActFirst firstGross;
-                MeterWorkRailwayActFirst firstTare;
-                if(StringUtils.isNotEmpty(model.getActualFirst1No())&&StringUtils.isNotEmpty(model.getActualFirst2No())){
-                    firstGross = meterWorkRailwayActFirstMapper.selectAndRemove(model.getActualFirst1No());
-                    firstTare =  meterWorkRailwayActFirstMapper.selectAndRemove(model.getActualFirst2No());
-                }else{
-                    firstGross = meterWorkRailwayActFirstMapper.selectByPrimaryKey(model.getActualFirst1No());
-                    firstTare = meterWorkRailwayActFirstMapper.selectByPrimaryKey(model.getActualFirst2No());
-                }
+                MeterWorkRailwayActFirst firstGross = meterWorkRailwayActFirstMapper.selectByPrimaryKey(model.getActualFirst1No());
+                MeterWorkRailwayActFirst firstTare = meterWorkRailwayActFirstMapper.selectByPrimaryKey(model.getActualFirst2No());
                 if(firstGross != null){
+                    firstGross = meterWorkRailwayActFirstMapper.selectAndRemove(model.getActualFirst1No());
                     firstGross.setValueFlag(DbConstants.VALID);
-//                    firstGross.setUpdateManName("system");
-//                    firstGross.setUpdateManName("结净废除更新");
                     firstGross.setUpdateManNo(userId);
                     firstGross.setUpdateManName(userName);
                     firstGross.setNote(model.getNote());
                     firstGross.setUpdateTime(new Date());
                     firstGross.setIsPreSacale("0");
                     firstGross.setValueFlag("0");
-                    meterWorkRailwayActFirstMapper.updateByPrimaryKey(firstGross);
+//                    meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(firstGross);
+                    meterWorkRailwayActFirstMapper.deleteByPrimaryKey(firstGross.getActualFirstNo());
+                    //恢复从表数据
+                    preRailwayScaleMapper.updateMeterWorkRailwayReceiveds(firstGross.getActualFirstNo());
                 }
+
                 if(firstTare != null){
+                    firstTare =  meterWorkRailwayActFirstMapper.selectAndRemove(model.getActualFirst2No());
                     firstTare.setValueFlag(DbConstants.VALID);
-//                    firstTare.setUpdateManNo("system");
-//                    firstTare.setUpdateManName("结净废除更新");
                     firstTare.setUpdateManNo(userId);
                     firstTare.setUpdateManName(userName);
                     firstTare.setNote(model.getNote());
@@ -297,10 +294,10 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                     meterWorkRailwayActFirstMapper.updateByPrimaryKey(firstTare);
                 }
                 // 作废结净数据并解除委托
-                MeterWorkRailwayActual cleanModel = meterWorkRailwayActualMapper.cleanPredcition(model.getActualNo());
-                cleanModel.setUploadFlag("1");
-                cleanModel.setValueFlag("0");
-                meterWorkRailwayActualMapper.updateByPrimaryKeySelective(cleanModel);
+                MeterWorkRailwayActual actualRow = meterWorkRailwayActualMapper.cleanPredcition(model.getActualNo());
+                actualRow.setUploadFlag("1");
+                actualRow.setValueFlag("0");
+                meterWorkRailwayActualMapper.updateByPrimaryKey(actualRow);
 
                 MeterBaseOperationLog logModel = new MeterBaseOperationLog();
                 logModel.setId(PublicMethod.IdCreate(2));
@@ -312,13 +309,10 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 logModel.setOperationId(model.getActualNo());
                 logModel.setOperationPredictionNo(model.getPredictionNo());
                 logModel.setOperationCarnNo(model.getRailwayNo());
-                logModel.setOperationBeforeFix(model.toString());
-                logModel.setOperationAfterFix(cleanModel.toString());
                 meterBaseOperationLogMapper.insertSelective(logModel);
                 //删结净
                 //meterWorkCarActualMapper.deleteByPrimaryKey(model.getActualNo());
             }
-
             rm.setSucceed();
             rm.setMessage("共有"+ count +"条数据作废净重数据成功");
             rm.setData(count);
@@ -3229,47 +3223,68 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 userId = "admin";
                 userName = "admin";
             }
-            HashMap selActual = new HashMap();
-            selActual.put("actualNo",model.getActualNo());
-            selActual.put("uploadFlag","2");
 
-            HashMap selPre = new HashMap();
-            selPre.put("predictionNo",model.getPredictionNo());
-            selPre.put("valueFlag","1");
-            List<MeterWorkRailwayActual> meterWorkRailwayActual = meterWorkRailwayActualMapper.selectByParameter(selActual);
+            MeterWorkRailwayActual modelTemp = meterWorkRailwayActualMapper.selectByPrimaryKey(model.getActualNo());
+            Assert.isTrue(modelTemp != null, "未查询到"+ model.getActualNo() +"对应的洁净数据");
+            Assert.isTrue(!(modelTemp.getValueFlag().equals("2") && modelTemp.getValueFlag().equals("0")), model.getActualNo() + "对应的洁净数据已发布或者已作废,无法匹配委托");
+            if(modelTemp.getPredictionNo() == null || StringUtils.isEmpty(modelTemp.getPredictionNo())) {
+                PreRailwayScale scale = preRailwayScaleMapper.selectByPrimaryKey(model.getPredictionNo());
+                Assert.isTrue(scale != null, "未找到" + model.getPredictionNo() + "对应的委托信息");
+
+                modelTemp = meterWorkRailwayActualMapper.mathPredcition(modelTemp.getActualNo(),model.getPredictionNo());
+                modelTemp.setUpdateManNo(userId);
+                modelTemp.setUpdateManName(userName);
+                modelTemp.setUpdateTime(new Date());
+                modelTemp.setIsPreSacale("1");
+                modelTemp.setPredictionType("1");
+                modelTemp.setUploadFlag("1");
+                modelTemp.setValueFlag("1");
+                meterWorkRailwayActualMapper.updateByPrimaryKeySelective(modelTemp);
+
+                MeterWorkRailwayActFirst grossModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(modelTemp.getActualFirst1No());
+                MeterWorkRailwayActFirst tareModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(modelTemp.getActualFirst2No());
+                if(grossModel != null) {
+                    grossModel = meterWorkRailwayActFirstMapper.selectAndMatch(grossModel.getActualFirstNo(), model.getPredictionNo());
+                    grossModel.setIsPreSacale("1");
+                    grossModel.setUpdateManNo(userId);
+                    grossModel.setUpdateManName(userName);
+                    grossModel.setUpdateTime(new Date());
+                    grossModel.setNote("动态衡匹配委托");
+                    meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(grossModel);
+                }
+                if(tareModel != null) {
+                    tareModel = meterWorkRailwayActFirstMapper.selectAndMatch(tareModel.getActualFirstNo(), model.getPredictionNo());
+                    tareModel.setIsPreSacale("1");
+                    tareModel.setUpdateManNo(userId);
+                    tareModel.setUpdateManName(userName);
+                    tareModel.setUpdateTime(new Date());
+                    tareModel.setNote("动态衡匹配委托");
+                    meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(tareModel);
+                }
+
+                scale.setUploadFlag("1");
+                scale.setValueFlag("2");
+                scale.setUpdateManNo(userId);
+                scale.setUpdateManName(userName);
+                scale.setUpdateTime(new Date());
+                preRailwayScaleMapper.updateByPrimaryKeySelective(scale);
 
-            List<PreRailwayScale> preRailwayScales = preRailwayScaleMapper.selectByParameters(selPre);
-            if(meterWorkRailwayActual.size() > 0){
-                rm.setFailed();
-                rm.setCode("500");
-                rm.setData(null);
-                rm.setMessage("已发布无法匹配");
-            }
-            else if(preRailwayScales.size() == 0){
-                rm.setFailed();
-                rm.setCode("500");
-                rm.setData(null);
-                rm.setMessage("委托已经被使用或已过期");
-            }
-            else {
-                MeterWorkRailwayActual mwra = meterWorkRailwayActualMapper.mathPredcition(model.getActualNo(),model.getPredictionNo());
-                mwra.setUpdateManNo(userId);
-                mwra.setUpdateManName(userName);
-                mwra.setUpdateTime(new Date());
-                mwra.setIsPreSacale("1");
-                meterWorkRailwayActualMapper.updateByPrimaryKeySelective(mwra);
                 rm.setSucceed();
+                rm.setMessage("操作成功");
+                rm.setCode("200");
                 rm.setData(null);
-                rm.setMessage("匹配成功");
+            }else{
+                rm.setMessage("选择的洁净数据已匹配委托");
             }
         } catch (Exception e) {
             e.printStackTrace();
-            rm.setMessage(e.getMessage());
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            rm.setMessage(e.getMessage());
         }
         return rm;
     }
 
+    //动态衡净重数据撤销委托
     @Override
     public RESTfulResult updatePreCancel(MeterWorkRailwayActual model) {
         RESTfulResult rm = new RESTfulResult();
@@ -3296,36 +3311,34 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
 
                 MeterWorkRailwayActFirst grossModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(modelTemp.getActualFirst1No());
                 MeterWorkRailwayActFirst tareModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(modelTemp.getActualFirst2No());
-                if(grossModel != null) {
+                if(grossModel != null) {        //作废毛重数据、恢复从表信息
                     grossModel = meterWorkRailwayActFirstMapper.selectAndRemove(grossModel.getActualFirstNo());
                     grossModel.setIsPreSacale("0");
-                    grossModel.setValueFlag("1");
                     grossModel.setUpdateManNo(userId);
                     grossModel.setUpdateManName(userName);
                     grossModel.setUpdateTime(new Date());
                     grossModel.setNote("动态衡撤销委托");
-                    meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(grossModel);
+                    meterWorkRailwayActFirstMapper.updateByPrimaryKey(grossModel);
                 }
                 if(tareModel != null) {
                     tareModel = meterWorkRailwayActFirstMapper.selectAndRemove(tareModel.getActualFirstNo());
                     tareModel.setIsPreSacale("0");
-                    tareModel.setValueFlag("1");
                     tareModel.setUpdateManNo(userId);
                     tareModel.setUpdateManName(userName);
                     tareModel.setUpdateTime(new Date());
                     tareModel.setNote("动态衡撤销委托");
-                    meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(tareModel);
+                    meterWorkRailwayActFirstMapper.updateByPrimaryKey(tareModel);
                 }
 
                 MeterWorkRailwayActual actualRow = meterWorkRailwayActualMapper.cleanPredcition(modelTemp.getActualNo());
                 actualRow.setUploadFlag("1");
                 actualRow.setValueFlag("1");
+                actualRow.setIsPreSacale("0");
                 actualRow.setUpdateManNo(userId);
                 actualRow.setUpdateManName(userName);
                 actualRow.setUpdateTime(new Date());
                 actualRow.setNote("动态衡撤销委托");
-                actualRow.setIsPreSacale("0");
-                meterWorkRailwayActualMapper.updateByPrimaryKeySelective(actualRow);
+                meterWorkRailwayActualMapper.updateByPrimaryKey(actualRow);
 
                 scale.setValueFlag("1");
                 scale.setUploadFlag("1");
@@ -3365,6 +3378,7 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 userId = "admin";
                 userName = "admin";
             }
+            Assert.isTrue(models.size()>=1, "未选择洁净数据,请重新操作");
 
             for (MeterWorkRailwayActual model: models) {
                 MeterWorkRailwayActual modelTemp = meterWorkRailwayActualMapper.selectByPrimaryKey(model.getActualNo());
@@ -3384,17 +3398,18 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 MeterWorkRailwayActFirst grossModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(modelTemp.getActualFirst1No());
                 MeterWorkRailwayActFirst tareModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(modelTemp.getActualFirst2No());
                 if(grossModel != null) {            //作废毛重数据、并回复从表数据
-                    grossModel = meterWorkRailwayActFirstMapper.selectAndRemove(grossModel.getActualFirstNo());
                     grossModel.setIsPreSacale("0");
                     grossModel.setValueFlag("0");
                     grossModel.setUpdateManNo(userId);
                     grossModel.setUpdateManName(userName);
                     grossModel.setUpdateTime(new Date());
                     grossModel.setNote("动态衡毛皮分解");
-                    meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(grossModel);
+//                    meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(grossModel);
+                    meterWorkRailwayActFirstMapper.deleteByPrimaryKey(grossModel.getActualFirstNo());
+                    //恢复从表数据
+                    preRailwayScaleMapper.updateMeterWorkRailwayReceiveds(grossModel.getActualFirstNo());
                 }
                 if(tareModel != null) {
-                    tareModel = meterWorkRailwayActFirstMapper.selectAndRemove(tareModel.getActualFirstNo());
                     tareModel.setIsPreSacale("0");
                     tareModel.setValueFlag("1");
                     tareModel.setUpdateManNo(userId);
@@ -3412,12 +3427,10 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 actualRow.setUpdateTime(new Date());
                 actualRow.setNote("动态衡毛皮分解");
                 actualRow.setIsPreSacale("0");
-                meterWorkRailwayActualMapper.updateByPrimaryKeySelective(actualRow);
-
-                rm.setSucceed();
-                rm.setData(null);
-                rm.setMessage("撤销成功");
+                meterWorkRailwayActualMapper.updateByPrimaryKey(actualRow);
             }
+            rm.setSucceed(true);
+            rm.setMessage("毛皮分解成功");
         } catch (Exception e) {
             e.printStackTrace();
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -3463,8 +3476,8 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
             }
         } catch (Exception e) {
             e.printStackTrace();
-            rm.setMessage(e.getMessage());
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            rm.setMessage(e.getMessage());
         }
         return rm;
     }
@@ -3506,8 +3519,8 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
             }
         } catch (Exception e) {
             e.printStackTrace();
-            rm.setMessage(e.getMessage());
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            rm.setMessage(e.getMessage());
         }
         return rm;
     }

+ 2 - 3
src/main/java/com/steerinfo/meterwork/meterworkrailwayrecmain/service/impl/MeterWorkRailwayRecMainServiceImpl.java

@@ -98,14 +98,13 @@ public class MeterWorkRailwayRecMainServiceImpl extends BaseServiceImpl<MeterWor
                 model.setRailwayWorkNo(mainModel.getSoundName());
                 meterWorkRailwayReceivedMapper.insertSelective(model);
             }
-
             rm.setMessage("成功");
         }catch (Exception e){
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             rm.setFailed();
             rm.setCode("500");
             rm.setMessage("失败");
-            e.printStackTrace();
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
         }
         return rm;
     }