dengyj vor 4 Jahren
Ursprung
Commit
55b37d9cdb

+ 21 - 0
src/main/java/com/steerinfo/meterwork/meterworkcaractual/service/impl/MeterWorkCarActualServiceImpl.java

@@ -486,6 +486,16 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
             if (models == null || models.size() <= 0) {
                 throw new MarkerMetException(500, "参数为空!!!");
             }
+            for(MeterWorkCarActual modelTemp: models) {
+                PreTrackScale scaleTemp = preTrackScaleMapper.selectByPrimaryKey(modelTemp.getPredictionNo());
+                if(scaleTemp.getValueFlag().equals("9")) {
+                    throw new MarkerMetException(500, "洁净数据中包含已结算的委托!!!");
+                }
+                if(modelTemp.getPredictionType().equals("5") || modelTemp.getPredictionType().equals("6") || modelTemp.getPredictionType().equals("7")){
+                    throw new MarkerMetException(500, "洁净数据中包含特殊委托匹配结净的数据!!!");
+                }
+            }
+
             for (MeterWorkCarActual model : models) {
                 //毛重
                 MeterWorkCarActualFirst mwcaf1 = meterWorkCarActualFirstMapper.selectByPrimaryKey(model.getActualFirst1No());
@@ -784,6 +794,10 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
                     rm.setMessage("洁净数据中包含已结算的委托!!!");
                     return rm;
                 }
+                if(modelTemp.getPredictionType().equals("5") || modelTemp.getPredictionType().equals("6") || modelTemp.getPredictionType().equals("7")){
+                    rm.setMessage("洁净数据中包含特殊委托匹配结净的数据!!!");
+                    return rm;
+                }
             }
             for (MeterWorkCarActual model: models) {
                 //循环每一个洁净记录
@@ -1061,6 +1075,13 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
             throw new MarkerMetException(500, "不存在对应的洁净数据");
         }
 
+        PreTrackScale scaleTemp = preTrackScaleMapper.selectByPrimaryKey(model.getPredictionNo());
+        if(scaleTemp.getValueFlag().equals("9")) {
+            throw new MarkerMetException(500, "结净数据包含已结算的委托!!!");
+        }
+        if(model.getPredictionType().equals("5") || model.getPredictionType().equals("6") || model.getPredictionType().equals("7")){
+            throw new MarkerMetException(500, "洁净数据中包含特殊委托匹配结净的数据!!!");
+        }
         UserPayload payload = UserPayload.getCurrUser();
         String userId = payload.getId();
         String userName = payload.getUserName();

+ 3 - 0
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/impl/MeterWorkCarActualFirstServiceImpl.java

@@ -525,6 +525,9 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
                 if(pls.getValueFlag().equals("9")) {
                     throw new MarkerMetException(500, "一次数据中包含已结算的委托!!");
                 }
+                if(model.getPredictionType().equals("5") || model.getPredictionType().equals("6") || model.getPredictionType().equals("7")){
+                    throw new MarkerMetException(500, "洁净数据中包含特殊委托匹配结净的数据!!!");
+                }
             }
 
             for (MeterWorkCarActualFirst model : models) {

+ 13 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/controller/MeterWorkRailwayActFirstController.java

@@ -1269,4 +1269,17 @@ throw new MarkerMetException(500, "操作异常!!");
         return rm;
     }
 
+    @ApiOperation(value = "静态衡维护界面--对一次数据进行标准皮洁净", notes = "根据毛的MeterWorkRailwayactFirst对象进行批量匹配洁净保存")
+    @PostMapping(value = "/doStandardMatch")
+    public RESTfulResult doStandardMatch(@RequestBody HashMap param) {
+        RESTfulResult rm = failed();
+        try {
+            rm = meterWorkRailwayActFirstService.doStandardMatch(param);
+            return rm;
+        }catch (Exception e) {
+            e.printStackTrace();
+            rm.setMessage("操作异常,请确认!>>>>" + e.getMessage());
+            return rm;
+        }
+    }
 }

+ 1 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/mapper/MeterWorkRailwayActFirstMapper.xml

@@ -3476,6 +3476,7 @@
       <!--静轨组列次号需要-->
       <if test="flag != null and flag != ''">
         and value_flag in ('1','2')
+        and lc_no is null
       </if>
     </where>
     order by create_time desc

+ 1 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/service/IMeterWorkRailwayActFirstService.java

@@ -125,5 +125,6 @@ public interface IMeterWorkRailwayActFirstService extends IBaseService<MeterWork
 
     PageList<MeterWorkRailwayActFirst> likeByDescTSDG(HashMap<String, Object> parameters, Integer pageNum, Integer pageSize);
 
+    RESTfulResult doStandardMatch(HashMap<String, Object> param);
 }
 

+ 146 - 10
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/service/impl/MeterWorkRailwayActFirstServiceImpl.java

@@ -5,6 +5,7 @@ import com.steerinfo.baseinfo.combaseinfo.mapper.ComBaseInfoMapper;
 import com.steerinfo.baseinfo.meterbasematterinfo.mapper.MeterBaseMatterInfoMapper;
 import com.steerinfo.baseinfo.meterbaserailwayaiweight.mapper.MeterBaseRailwayAiweightMapper;
 import com.steerinfo.baseinfo.meterbaserailwayaiweight.model.MeterBaseRailwayAiweight;
+import com.steerinfo.baseinfo.meterbaserailwaycarriageweight.mapper.MeterBaseRailwayCarriageWeightMapper;
 import com.steerinfo.baseinfo.meterbaserailwaycarriageweight.model.MeterBaseRailwayCarriageWeight;
 import com.steerinfo.baseinfo.meterbaserailwayhistaredata.mapper.MeterBaseRailwayHisTareDataMapper;
 import com.steerinfo.baseinfo.meterbaserailwayhistaredata.model.MeterBaseRailwayHisTareData;
@@ -98,6 +99,9 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
     @Resource
     private ComBaseInfoMapper comBaseInfoMapper;
 
+    @Resource
+    private MeterBaseRailwayCarriageWeightMapper meterBaseRailwayCarriageWeightMapper;
+
     @Resource
     private MeterBaseRailwayAiweightMapper meterBaseRailwayAiweightMapper;
 
@@ -193,7 +197,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 }
             }
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
-            model.setActualFirstNo(sdf + meterWorkRailwayActFirstMapper.getNewID(sdf.format(new Date())));
+            model.setActualFirstNo(sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(sdf.format(new Date())));
             model.setCreateManNo(userId);
             model.setCreateManName(userName);
             model.setCreateTime(new Date());
@@ -505,10 +509,19 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 param.put("lcNoNull", "");
             }
         }
-        List<String> list = meterWorkRailwayActFirstMapper.distinctRailwayNo(param)
-                .stream()
-                .map(MeterWorkRailwayActFirst::getRailwayNo)
-                .collect(Collectors.toList());
+        List<String> list = new ArrayList<>();
+        try{
+             list = meterWorkRailwayActFirstMapper.distinctRailwayNo(param)
+                    .stream()
+                    .map(MeterWorkRailwayActFirst::getRailwayNo)
+                    .collect(Collectors.toList());
+            if(list==null && list.isEmpty()) {
+                list.add("");
+            }
+        }catch (Exception e) {
+            list.add("");
+        }
+
         return list;
     }
 
@@ -540,9 +553,16 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
 //        obj.put("lcNo", lcNo);
 
         List<MeterWorkRailwayActFirst> templist = meterWorkRailwayActFirstMapper.distinctLcNo(param);
-        List<String> list = null;
-        if (templist.size() != 0) {
-            list = templist.stream().map(MeterWorkRailwayActFirst::getLcNo).distinct().collect(Collectors.toList());
+        List<String> list = new ArrayList<>();
+        if (templist != null && !templist.isEmpty() ) {
+            try{
+                list = templist.stream().map(MeterWorkRailwayActFirst::getLcNo).distinct().collect(Collectors.toList());
+                if(list==null && list.isEmpty()) {
+                    list.add("");
+                }
+            }catch (Exception e) {
+                list.add("");
+            }
         }
         return list;
     }
@@ -5159,9 +5179,9 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         first.setActualFirstNo(afl + meterWorkRailwayActFirstMapper.getNewID(afl));
                         first.setCreateTime(new Date());
                         meterWorkRailwayActFirstMapper.insertSelective(first);
-                        BigDecimal num = firstList.get(0).getMeterWeight().subtract(first.getMeterWeight()).abs();
+                        BigDecimal num = (firstList.get(0).getMeterWeight().subtract(first.getMeterWeight())).abs();
                         //洁净数据不能小于10t
-                        if (num.compareTo(DbConstants.RAILWAY_WEIGHT) == -1) {
+                        if (num.compareTo(new BigDecimal(10000)) == -1) {
                             first.setActualFirstNo(afl + meterWorkRailwayActFirstMapper.getNewID(afl));
                             first.setCreateTime(new Date());
                             int i = meterWorkRailwayActFirstMapper.insertSelective(first);
@@ -5175,6 +5195,15 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                                 rm.setData(resultMap);
                                 return rm;
                             }
+                        }else{
+                            railwayHelp.setHelpContent("计量完成,车号" + first.getRailwayNo() + "洁净数据小于10吨,无法自动结净匹配");
+                            meterWorkRailwayScheduledHelpService.checkAdd(railwayHelp);
+                            rm.setSucceed();
+                            rm.setMessage("计量完成,车号" + first.getRailwayNo() + "洁净数据小于10吨,无法自动结净匹配");
+                            resultMap.put("firsts", firsts);
+                            resultMap.put("actuals", null);
+                            rm.setData(resultMap);
+                            return rm;
                         }
                         String Content;
                         HashMap<String, Object> obj = new HashMap<>();
@@ -5577,6 +5606,113 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
         return pageInfo;
     }
 
+    @Override
+    public RESTfulResult doStandardMatch(HashMap<String, Object> param) {
+        RESTfulResult rm = new RESTfulResult();
+        rm.setFailed();
+        try {
+            String actualNo = param.get("actualNo") == null ? "": param.get("actualNo").toString();
+            String predictionNo = param.get("predictionNo") == null ? "": param.get("predictionNo").toString();
+
+            Assert.isTrue(StringUtils.isNotEmpty(actualNo), "请选择一次记录");
+            MeterWorkRailwayActFirst grossModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(actualNo);
+            Assert.isTrue(grossModel != null , "请选择一次记录");
+            MeterWorkRailwayActFirst tareModel = new MeterWorkRailwayActFirst();
+            BeanUtils.copyProperties(grossModel, tareModel);
+
+            HashMap<String, Object> obj = new HashMap();
+            obj.put("carriageCode", grossModel.getConveyanceType());
+            obj.put("valueFlag", "1");
+            List<MeterBaseRailwayCarriageWeight> carriageWeightModel = meterBaseRailwayCarriageWeightMapper.selectByParameters(obj);
+            Assert.isTrue(carriageWeightModel.size() >= 1 , "未找到有效的标准皮,不允许结净");
+            tareModel.setMeterWeight(new BigDecimal(carriageWeightModel.get(0).getCarriageWeight()));
+
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+            MeterWorkRailwayActual actualRow = new MeterWorkRailwayActual();
+            if (StringUtils.isNotEmpty(predictionNo)) {
+                PreRailwayScale scale = preRailwayScaleMapper.selectByPrimaryKey(predictionNo);
+                Assert.isTrue(scale.getPredictionNo() != null && StringUtils.isNotEmpty(scale.getPredictionNo()), "未找到有效的委托信息");
+                Assert.isTrue(!(scale.getValueFlag().equals("2") || scale.getValueFlag().equals("3")), "委托信息已使用或者已作废");
+                //毛重一次
+                MeterWorkRailwayActFirst model01 = meterWorkRailwayActFirstMapper.selectByPrimaryKey(grossModel.getActualFirstNo());
+                //皮重一次
+                MeterWorkRailwayActFirst model02 = meterWorkRailwayActFirstMapper.selectByPrimaryKey(tareModel.getActualFirstNo());
+
+                //将委托中的编号和收发货的等数据拷贝进一次数据中
+                MeterWorkRailwayActFirst first1 = meterWorkRailwayActFirstMapper.selectAndMatch(model01.getActualFirstNo(), scale.getPredictionNo());
+                BeanUtils.copyProperties(first1, model01);
+                //修改委托编号
+                scale.setValueFlag(DbConstants.NET);
+                scale.setUpdateTime(new Date());
+                scale.setUpdateManNo("system");
+                scale.setUpdateManName("标准皮洁净更新");
+                scale.setUploadFlag("1");
+                scale.setPredictionType("1");
+                preRailwayScaleMapper.updateByPrimaryKeySelective(scale);
+                //修改毛重一次数据状态
+                model01.setValueFlag(DbConstants.NET);
+                model01.setNote("标准皮洁净更新");
+                model01.setWeightType("0");
+                model01.setIsPreSacale("1");
+                model01.setPredictionNo(scale.getPredictionNo());
+                model01.setPredictionType("1");
+                meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(model01);
+
+                MeterWorkRailwayActual mwca1 = meterWorkRailwayActualMapper.manualAddPre(model01.getActualFirstNo(), model02.getActualFirstNo(), scale.getPredictionNo());
+                BeanUtils.copyProperties(mwca1, actualRow);
+                //保存洁净
+                String no = meterWorkRailwayActualMapper.getNewID(sdf.format(new Date()));
+                actualRow.setActualNo(sdf.format(new Date()) + no);
+                actualRow.setNetTime(new Date());
+                actualRow.setNetMode(DbConstants.TYPE);
+                actualRow.setNote("标准皮匹配洁净");
+                actualRow.setTareWeight(new BigDecimal(carriageWeightModel.get(0).getCarriageWeight()));
+                actualRow.setNetMode("1");
+                actualRow.setUploadFlag("1");
+                actualRow.setValueFlag("1");
+                actualRow.setIsPreSacale("1");
+                actualRow.setPredictionNo(scale.getPredictionNo());
+                actualRow.setPredictionType("1");
+                actualRow.setNetWeight(model01.getMeterWeight().subtract(new BigDecimal(carriageWeightModel.get(0).getCarriageWeight())));
+                meterWorkRailwayActualMapper.insertSelective(actualRow);
+            } else {
+                //修改毛重一次数据状态
+                grossModel.setValueFlag(DbConstants.NET);
+                grossModel.setUpdateManName("system");
+                grossModel.setUpdateManName("标识皮洁净更新");
+                grossModel.setUpdateTime(new Date());
+                grossModel.setWeightType("0");
+                grossModel.setIsPreSacale("0");
+                meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(grossModel);
+                //修改皮重一次数据状态
+
+                MeterWorkRailwayActual mwca1 = meterWorkRailwayActualMapper.manualAdd(grossModel.getActualFirstNo(), tareModel.getActualFirstNo());
+                BeanUtils.copyProperties(mwca1, actualRow);
+                //保存洁净
+                String no = meterWorkRailwayActualMapper.getNewID(sdf.format(new Date()));
+                actualRow.setActualNo(sdf.format(new Date()) + no);
+                actualRow.setNetTime(new Date());
+                actualRow.setNetMode(DbConstants.TYPE);
+                actualRow.setNote("标准皮洁净");
+                actualRow.setTareWeight(new BigDecimal(carriageWeightModel.get(0).getCarriageWeight()));
+                actualRow.setNetMode("1");
+                actualRow.setUploadFlag("1");
+                actualRow.setValueFlag("1");
+                actualRow.setIsPreSacale("0");
+                actualRow.setNetWeight(grossModel.getMeterWeight().subtract(new BigDecimal(carriageWeightModel.get(0).getCarriageWeight())));
+                meterWorkRailwayActualMapper.insertSelective(actualRow);
+            }
+            rm.setSucceed();
+            rm.setCode("200");
+            rm.setMessage("操作成功!!");
+            return rm;
+        } catch (Exception e) {
+            e.printStackTrace();
+            rm.setMessage("操作异常,请确认!>>>" + e.getMessage());
+        }
+        return null;
+    }
+
     @Override
     public List<MeterWorkRailwayActFirst> noPage(HashMap<String, Object> params) {
         List<MeterWorkRailwayActFirst> rows = meterWorkRailwayActFirstMapper.likeByDesc(params);

+ 1 - 1
src/main/java/com/steerinfo/pretrack/prerailwayscale/mapper/PreRailwayScaleMapper.xml

@@ -3110,7 +3110,7 @@
       <include refid="select"/>
       where 1 = 1
       <if test="railwayNo != '' and railwayNo != null">
-        and railway_No like '%${railwayNo}%'
+        and railway_No =  #{railwayNo}
       </if>
       and value_flag in ('0', '1')
       and TRUST_AVAILABILITY_TIME >= sysDate