ソースを参照

网页端增加期限皮重接口、静轨一次、结净列次号修改、App期限皮重显示返回时间修改、一次数据据匹配委托接口修改、车辆通告信息(显示、修改、已读、添加)、web端车次修改、web端一次、结净委托显示有效委托

dengyj 4 年 前
コミット
b42016437f
19 ファイル変更495 行追加188 行削除
  1. 17 6
      src/main/java/com/steerinfo/baseinfo/meterbasesystemmessage/mapper/MeterBaseSystemMessageMapper.xml
  2. 4 3
      src/main/java/com/steerinfo/baseinfo/meterbasesystemnews/service/impl/MeterBaseSystemNewsServiceImpl.java
  3. 1 0
      src/main/java/com/steerinfo/baseinfo/meterbasetermtaredata/mapper/MeterBaseTermTareDataMapper.java
  4. 12 0
      src/main/java/com/steerinfo/baseinfo/meterbasetermtaredata/mapper/MeterBaseTermTareDataMapper.xml
  5. 7 9
      src/main/java/com/steerinfo/baseinfo/meterbasetermtaredata/service/impl/MeterBaseTermTareDataServiceImpl.java
  6. 2 2
      src/main/java/com/steerinfo/meterwork/meterworkcaractual/controller/MeterWorkCarActualController.java
  7. 10 1
      src/main/java/com/steerinfo/meterwork/meterworkcaractual/mapper/MeterWorkCarActualMapper.xml
  8. 1 1
      src/main/java/com/steerinfo/meterwork/meterworkcaractual/service/IMeterWorkCarActualService.java
  9. 7 7
      src/main/java/com/steerinfo/meterwork/meterworkcaractual/service/impl/MeterWorkCarActualServiceImpl.java
  10. 23 9
      src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/controller/MeterWorkCarActualFirstController.java
  11. 2 1
      src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/IMeterWorkCarActualFirstService.java
  12. 315 98
      src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/impl/MeterWorkCarActualFirstServiceImpl.java
  13. 2 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/mapper/MeterWorkRailwayActFirstMapper.java
  14. 6 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/mapper/MeterWorkRailwayActFirstMapper.xml
  15. 15 11
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/service/impl/MeterWorkRailwayActFirstServiceImpl.java
  16. 1 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/mapper/MeterWorkRailwayActualMapper.java
  17. 5 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/mapper/MeterWorkRailwayActualMapper.xml
  18. 58 38
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/service/impl/MeterWorkRailwayActualServiceImpl.java
  19. 7 2
      src/main/java/com/steerinfo/pretrack/pretrackscale/mapper/PreTrackScaleMapper.xml

+ 17 - 6
src/main/java/com/steerinfo/baseinfo/meterbasesystemmessage/mapper/MeterBaseSystemMessageMapper.xml

@@ -536,11 +536,22 @@
   </select>
 
   <select id="listDesc" resultType="java.util.HashMap" resultMap="BaseResultMap">
-    <include refid="select"/>
-    where 1 = 1
-        and SYSTEM_MESSAGE_NO in
-        <foreach collection="newList" item="item" separator="," open="(" close=")">
-          #{item}
-        </foreach>
+    select B.SYSTEM_MESSAGE_NO, B.SYSTEM_MESSAGE_NAME, B.SYSTEM_MESSAGE_CONTENT, B.VAILD_FLAG, B.MEMO,
+    B.CREATE_MAN_NO, B.CREATE_MAN_NAME, B.CREATE_TIME, B.UPDATE_MAN_NO, B.UPDATE_MAN_NAME, B.UPDATE_TIME,
+    B.DELETE_MAN_NO, B.DELETE_MAN_NAME, B.DELETE_TIME, A.is_read
+    from METER_BASE_SYSTEM_MESSAGE B
+        left join meter_base_system_news A
+            on A.SYSTEM_MESSAGE_NO = B.system_message_no
+                and A.car_no = #{carNo}
+      where 1 = 1
+          and B.VAILD_FLAG = '1'
+          and B.SYSTEM_MESSAGE_NO in
+          <foreach collection="newList" item="item" separator="," open="(" close=")">
+            #{item}
+          </foreach>
+          <if test="isRead != null and isRead != ''">
+            and A.is_Read = #{isRead}
+          </if>
+    order by B.create_time desc
   </select>
 </mapper>

+ 4 - 3
src/main/java/com/steerinfo/baseinfo/meterbasesystemnews/service/impl/MeterBaseSystemNewsServiceImpl.java

@@ -105,9 +105,10 @@ public class MeterBaseSystemNewsServiceImpl extends BaseServiceImpl<MeterBaseSys
         if(newsList.size() < 1) {
             newsList.add("");
         }
-        HashMap<String, Object> objMap = new HashMap<>();
-        objMap.put("newList", newsList);
-        List<MeterBaseSystemMessage> messagesList = meterBaseSystemMessageMapper.listDesc(objMap);
+//        HashMap<String, Object> objMap = new HashMap<>();
+//        objMap.put("carNo", carNo);
+        params.put("newList", newsList);
+        List<MeterBaseSystemMessage> messagesList = meterBaseSystemMessageMapper.listDesc(params);
         PageList pageInfo = new PageList(messagesList);
         return pageInfo;
     }

+ 1 - 0
src/main/java/com/steerinfo/baseinfo/meterbasetermtaredata/mapper/MeterBaseTermTareDataMapper.java

@@ -24,6 +24,7 @@ public interface MeterBaseTermTareDataMapper extends IBaseMapper<MeterBaseTermTa
     MeterBaseTermTareData selectByDataNo(HashMap<String, Object> mp);
 
     List<MeterBaseTermTareData> listBycarNo(Map<String, Object> map);
+    MeterBaseTermTareData getTermTareData(Map<String, Object> map);
 
 
 }

+ 12 - 0
src/main/java/com/steerinfo/baseinfo/meterbasetermtaredata/mapper/MeterBaseTermTareDataMapper.xml

@@ -615,4 +615,16 @@
     and end_time &gt;= sysdate
     order by CREATE_TIME  desc
   </select>
+
+  <select id = "getTermTareData" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select" />
+    where 1 = 1
+        <if test="carNo != null and carNo != ''">
+          and car_No = #{carNo}
+        </if>
+        and rownum = 1
+        and value_flag = '0'
+        and end_time >= sysdate
+    order by create_time desc
+  </select>
 </mapper>

+ 7 - 9
src/main/java/com/steerinfo/baseinfo/meterbasetermtaredata/service/impl/MeterBaseTermTareDataServiceImpl.java

@@ -33,6 +33,8 @@ import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
+import static java.lang.Math.abs;
+
 /**
  * MeterBaseTermTareData服务实现:
  * @author generator
@@ -413,10 +415,8 @@ public class MeterBaseTermTareDataServiceImpl extends BaseServiceImpl<MeterBaseT
                 int day = (int)(from - to)/(60*60*24*1000);
                 int hour = (int)(from - to)/(60*60*1000);
                 int minutes = 0;
-                if(hour>=1) {
+                if(hour != 0) {
                     minutes = (int)(from - to)/(60*1000) - (hour*60);
-                }else {
-                    minutes = (int)(from - to)/(60*1000);
                 }
                 if(startTime.compareTo(endTime) > 0) {
                     map.put("flag", "1");
@@ -424,18 +424,16 @@ public class MeterBaseTermTareDataServiceImpl extends BaseServiceImpl<MeterBaseT
                     map.put("flag", "0");
                 }
                 map.put("model", model);
-                map.put("day", day);
-                map.put("hour", hour);
-                map.put("minutes", minutes);
+                map.put("day", abs(day));
+                map.put("hour", abs(hour));
+                map.put("minutes", abs(minutes));
                 rm.setData(map);
                 rm.setSucceed();
                 rm.setMessage("操作成功");
                 rm.setCode("200");
             }else {
-                rm.setSucceed();
                 rm.setMessage("未找到相应期限皮重信息");
-                rm.setData("");
-                rm.setCode("200");
+                rm.setCode("500");
             }
         }catch (Exception e) {
             e.printStackTrace();

+ 2 - 2
src/main/java/com/steerinfo/meterwork/meterworkcaractual/controller/MeterWorkCarActualController.java

@@ -805,10 +805,10 @@ throw new MarkerMetException(500, "操作异常!!");
 
     @ApiOperation(value = "车号汇总统计汇总", notes = "根据传入时间和车号,查询给定时间段去重车号")
     @GetMapping(value = "/distinctCarNo")
-    public RESTfulResult distinctCarNo(String carNo, String startTime, String endTime, String dataSource) {
+    public RESTfulResult distinctCarNo(@RequestParam HashMap<String, Object> params) {
         RESTfulResult rm = failed();
         try {
-            List<String> rows = meterWorkCarActualService.distinctCarNo(carNo, startTime, endTime, dataSource);
+            List<String> rows = meterWorkCarActualService.distinctCarNo(params);
             return success(rows);
         } catch (MarkerMetException e) {
             e.printStackTrace();

+ 10 - 1
src/main/java/com/steerinfo/meterwork/meterworkcaractual/mapper/MeterWorkCarActualMapper.xml

@@ -3526,13 +3526,22 @@
   <select id="distinctCarNo" parameterType="java.lang.String" resultMap="BaseResultMap">
     SELECT distinct car_No
     from METER_WORK_CAR_ACTUAL
-    where VALUE_FLAG != '0' and CAR_NO like '%${carNo}%'
+    where VALUE_FLAG != '0'
     <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
       and  NET_TIME  >= TO_DATE(#{startTime}, 'yyyy-MM-dd HH24:mi:ss') and NET_TIME  &lt;=  TO_DATE(#{endTime}, 'yyyy-MM-dd HH24:mi:ss')
     </if>
     <if test="dataSource != null and dataSource != null">
       and  data_source = '${dataSource}'
     </if>
+    <if test="valueFlag != null and valueFlag != null">
+      and  value_flag = '${valueFlag}'
+    </if>
+    <if test="carNo != null and carNo != null">
+      and  CAR_NO like '%${carNo}%'
+    </if>
+    <if test="isPreScale != null and isPreScale != null">
+      and  is_pre_scale like '%${isPreScale}%'
+    </if>
   </select>
 
   <select id="selectActual" parameterType="java.lang.String" resultMap="BaseResultMap">

+ 1 - 1
src/main/java/com/steerinfo/meterwork/meterworkcaractual/service/IMeterWorkCarActualService.java

@@ -86,7 +86,7 @@ public interface IMeterWorkCarActualService extends IBaseService<MeterWorkCarAct
     int updateByZhuWai(List<MeterWorkCarActual> models);
 
     //根据传入时间和车号,查询给定时间段去重车号
-    List<String> distinctCarNo(String carNo, String startTime, String endTime, String dataSource);
+    List<String> distinctCarNo(HashMap<String, Object> params);
 
     // 根据传入的一次计量数据和洁净数据实体进行洁净操作
     MeterWorkCarActual clientClean(MeterWorkCarActualFirst first, MeterWorkCarActual net);

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

@@ -1829,13 +1829,13 @@ public class MeterWorkCarActualServiceImpl extends BaseServiceImpl<MeterWorkCarA
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public List<String> distinctCarNo(String carNo, String startTime, String endTime, String dataSource) {
-        HashMap<String, Object> obj = new HashMap<>();
-        obj.put("carNo", carNo);
-        obj.put("startTime", startTime);
-        obj.put("endTime", endTime);
-        obj.put("dataSource", dataSource);
-        List<String> list = meterWorkCarActualMapper.distinctCarNo(obj).stream().map(MeterWorkCarActual::getCarNo).collect(Collectors.toList());
+    public List<String> distinctCarNo(HashMap<String, Object> params) {
+//        HashMap<String, Object> obj = new HashMap<>();
+//        obj.put("carNo", carNo);
+//        obj.put("startTime", startTime);
+//        obj.put("endTime", endTime);
+//        obj.put("dataSource", dataSource);
+        List<String> list = meterWorkCarActualMapper.distinctCarNo(params).stream().map(MeterWorkCarActual::getCarNo).collect(Collectors.toList());
         return list;
     }
 

+ 23 - 9
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/controller/MeterWorkCarActualFirstController.java

@@ -542,20 +542,20 @@ public class MeterWorkCarActualFirstController extends BaseRESTfulController {
     @ApiOperation(value = "匹配", notes = "根据MeterWorkCarActualFirst对象创建")
     @PostMapping(value = "/match")
     public RESTfulResult match(@RequestBody MeterWorkCarActualFirstDto model) {
-        RESTfulResult rm = failed();
+        RESTfulResult rm = new RESTfulResult();
         try {
-            MeterWorkCarActualFirst mwcaf = meterWorkCarActualFirstService.match(model.getActualFirstNo(), model.getPredictionNo());
-            if (mwcaf != null) {
-                return success(mwcaf);
-            } else {
-                return failed("匹配失败");
-            }
+            rm = meterWorkCarActualFirstService.match(model.getActualFirstNo(), model.getPredictionNo());
+//            if (mwcaf != null) {
+//                return success(mwcaf);
+//            } else {
+//                return failed("匹配失败");
+//            }
         } catch (MarkerMetException e) {
             e.printStackTrace();
-            rm.setMessage(e.getMessage());
+            return failed("操作异常");
         } catch (Exception e) {
             e.printStackTrace();
-            rm.setMessage("操作异常,请确认!");
+            return failed("操作异常");
         } finally {
 
         }
@@ -1274,6 +1274,20 @@ public class MeterWorkCarActualFirstController extends BaseRESTfulController {
         }
     }
 
+    @ApiOperation(value = "web端-期限皮洁净(可带委托)")
+    @Transactional
+    @PostMapping(value = "/doNetByTermData", produces = "application/json;charset=UTF-8")
+    public RESTfulResult doNetByTermData(@RequestBody HashMap<String, Object> params) {
+        try {
+            RESTfulResult rm = meterWorkCarActualFirstService.doNetByTermData(params);
+            return rm;
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return failed(null, "操作异常,请确认!");
+        }
+    }
+
     @ApiOperation(value = "毛皮转换")
     @Transactional
     @PostMapping(value = "/furConversion")

+ 2 - 1
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/IMeterWorkCarActualFirstService.java

@@ -47,7 +47,7 @@ public interface IMeterWorkCarActualFirstService extends IBaseService<MeterWorkC
 
     int remove(List<MeterWorkCarActualFirst> models);
 
-    MeterWorkCarActualFirst match(String actualFirstNo, String predictionNo);
+    RESTfulResult match(String actualFirstNo, String predictionNo);
 
     int unaudit(MeterWorkCarActualFirst model);
 
@@ -142,4 +142,5 @@ public interface IMeterWorkCarActualFirstService extends IBaseService<MeterWorkC
     RESTfulResult doNetByFirst(MeterWorkCarActualFirst grossModel, MeterWorkCarActualFirst tareModel, PreTrackScale scale);
 
     RESTfulResult furConversion(HashMap<String, Object> params);
+    RESTfulResult doNetByTermData(HashMap<String, Object> params);
 }

+ 315 - 98
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/impl/MeterWorkCarActualFirstServiceImpl.java

@@ -259,44 +259,41 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
         RESTfulResult rm = new RESTfulResult();
         rm.setFailed();
         try {
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
-            String afl = sdf.format(new Date());
+//            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+//            String afl = sdf.format(new Date());
 //            String no = meterWorkCarActualFirstMapper.getNewID(afl);
 //            model.setActualFirstNo(sdf.format(new Date()) + no);
-            String no = PublicMethod.IdCreate(3);
-            model.setActualFirstNo(no);
-            model.setValueFlag("1");
-
-            if(model.getCreateTime() == null || StringUtils.isEmpty(model.getCreateTime().toString())) {
-                rm.setMessage("计量时间不能为空");
-                return rm;
-            }
-            String userId = "";
-            String userName = "";
-            try{
-                UserPayload payload = UserPayload.getCurrUser();
-                userId = payload.getId();
-                userName = payload.getUserName();
-            }catch(Exception e) {
-                userId = "admin";
-                userName = "admins";
-            }
-            model.setCreateManNo(userId);
-            model.setCreateManName(userName);
+//            String userId = "";
+//            String userName = "";
+//            try{
+//                UserPayload payload = UserPayload.getCurrUser();
+//                userId = payload.getId();
+//                userName = payload.getUserName();
+//            }catch(Exception e) {
+//                userId = "admin";
+//                userName = "admins";
+//            }
+            Assert.isTrue(model.getCreateTime() != null && StringUtils.isNotEmpty(model.getCreateTime().toString()), "计量时间不能为空");
             HashMap<String, Object> obj = new HashMap<>();
             obj.put("baseSpotNo", model.getBaseSpotNo());
             List<MeterBaseSpotInfo> spotModel = meterBaseSpotInfoMapper.selectByParameters(obj);
-            if(spotModel.size() >= 1) {
-                model.setBaseSpotName(spotModel.get(0).getBaseSpotName());
-            }else {
-                rm.setMessage("计量点配置表未找到相应的计量点!!");
-                return rm;
+            Assert.isTrue(spotModel.size() >= 1, "计量点配置表未找到相应的计量点");
+            model.setBaseSpotName(spotModel.get(0).getBaseSpotName());
+            if(model.getWeightType().equals("毛重")){
+                model.setWeightType("0");
+            }else if(model.getWeightType().equals("皮重")){
+                model.setWeightType("1");
+            }else if(model.getWeightType().equals("期限皮重")) {
+                model.setWeightType("2");
             }
+            String no = PublicMethod.IdCreate(3);
+            model.setActualFirstNo(no);
             model.setAddWeight(model.getAddWeight()==null ? new BigDecimal(0): model.getAddWeight());
             BigDecimal meterWeight = model.getMeterWeight().multiply(new BigDecimal(1000));
             model.setMeterWeight(meterWeight);
+            model.setValueFlag("1");
             model.setCheckFlag("1");
-            model.setMeterMode("3");
+//            model.setMeterMode("3");
             model.setDataSource("4");
             model.setIsPreScale("0");
             meterWorkCarActualFirstMapper.insertSelective(model);
@@ -617,80 +614,122 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public MeterWorkCarActualFirst match(String actualFirstNo, String predictionNo) {
+    public RESTfulResult match(String actualFirstNo, String predictionNo) {
+        RESTfulResult rm = new RESTfulResult();
+        rm.setFailed();
         try {
-            if (StringUtils.isEmpty(actualFirstNo)) {
-                throw new MarkerMetException(500, "计量作业编号为空!!");
-            }
-            if (predictionNo == null || "".equals(predictionNo)) {
-                throw new MarkerMetException(500, "预报编号为空!!");
-            }
+            UserPayload userPayload = UserPayload.getCurrUser();
+            String userId = userPayload.getUserCode();
+            String userName = userPayload.getUserName();
+
+            Assert.isTrue(StringUtils.isNotEmpty(actualFirstNo), "作业编号为空");
+            Assert.isTrue(StringUtils.isNotEmpty(predictionNo), "预报编号为空");
             PreTrackScale pts = preTrackScaleMapper.selectByPrimaryKey(predictionNo);
-            if (pts == null) {
-                throw new MarkerMetException(500, "该预报信息不存在");
-            }
-            MeterWorkCarActualFirst meterWorkCarActualFirst = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualFirstNo);
-            if (meterWorkCarActualFirst == null) {
-                throw new MarkerMetException(500, "该计量作业信息不存在");
-            }
-            if (meterWorkCarActualFirst.getPredictionNo() != null && !"".equals(meterWorkCarActualFirst.getPredictionNo())) {
-                throw new MarkerMetException(500, "该计量作业已匹配!!");
-            }
-            MeterWorkCarActualFirst model = meterWorkCarActualFirstMapper.selectAndMatch(actualFirstNo, predictionNo);
-            //区分预报的类型对状态进行修改
-            /*
-            //逻辑异常,此处预报的有效次数默认都是1,在匹配完成后,预报状态应当变为4【使用中】
-            pts.setEffectiveNum(pts.getEffectiveNum() - 1);
-            if (pts.getEffectiveNum() == 0) {
-                pts.setValueFlag(DbConstants.UP);
-            } else {
-                pts.setValueFlag(DbConstants.IN);
-            }
-             */
-            //将预环节的前置包括本环节都使用;001021003 = 一次计量
-            List<MeterWorkPreLink> mwpls = meterWorkPreLinkService.getPer(predictionNo, DbConstants.CALCULATE);
-            for (MeterWorkPreLink mwpl : mwpls) {
-                mwpl.setValueFlag("2");//已使用
-                meterWorkPreLinkMapper.updateByPrimaryKey(mwpl);
-            }
-            //当一次计量数据是已结净的状态时,同时将该结净数据的另一条一次计量数据自动匹配该委托,并将该结净记录也进行委托匹配
-            if (meterWorkCarActualFirst.getValueFlag() == "2" || "2".equals(meterWorkCarActualFirst.getValueFlag())){
-                MeterWorkCarActual meterWorkCarActual = meterWorkCarActualMapper.selectActual(actualFirstNo);
-                String getActualFirstNo = "";
-                //判断传入的是哪条一次记录
-                if (meterWorkCarActual.getActualFirst1No().equals(actualFirstNo)){
-                    getActualFirstNo = meterWorkCarActual.getActualFirst2No();
-                }
-                if (meterWorkCarActual.getActualFirst2No().equals(actualFirstNo)){
-                    getActualFirstNo = meterWorkCarActual.getActualFirst1No();
-                }
-                //另一条一次数据进行委托解除
-                MeterWorkCarActualFirst meterWorkCarActualFirst1 = meterWorkCarActualFirstMapper.selectAndMatch(getActualFirstNo,predictionNo);
-                meterWorkCarActualFirst1.setIsPreScale("1");
-                meterWorkCarActualFirstMapper.updateByPrimaryKey(meterWorkCarActualFirst1);
-                //将该一次记录的结净数据委托解除
-                MeterWorkCarActual mwca = meterWorkCarActualMapper.mathPredcition(meterWorkCarActual.getActualNo(),predictionNo);
-                mwca.setIsPreScale("1");
-                mwca.setUploadFlag("1");
-                meterWorkCarActualMapper.updateByPrimaryKey(mwca);
-
-                pts.setUpdateTime(new Date());
-                pts.setUpdateManNo("system");
-                pts.setUpdateManName("一次计量数据匹配操作");
-                pts.setValueFlag(DbConstants.IN); //2021年5月24日  预报直接就写成【使用中】
-                pts.setUploadFlag("1");
-                pts.setMeasureStation(mwca.getNetSpot3No());
-                pts.setMeasureStationName(mwca.getNetSpot3Name());
-                preTrackScaleMapper.updateByPrimaryKey(pts);
-            }
-            // 设置为已匹配状态
-            //model.setValueFlag("1");
+            Assert.isTrue(pts != null, "委托编号:" + predictionNo + "未查询到有效委托信息");
+            MeterWorkCarActualFirst model = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualFirstNo);
+            Assert.isTrue(model != null, "一次数据不存在");
+            Assert.isTrue(model.getPredictionNo() == null && StringUtils.isEmpty(model.getPredictionNo()), "一次数据已匹配,不允许计量");
+            MeterWorkCarActualFirst modelTemp = meterWorkCarActualFirstMapper.selectAndMatch(actualFirstNo, pts.getPredictionNo());
+            BeanUtils.copyProperties(modelTemp, model);
             model.setIsPreScale("1");
-            meterWorkCarActualFirstMapper.updateByPrimaryKey(model);
-            return model;
-        } catch (MarkerMetException e) {
-            throw e;
+            model.setNote("一次数据匹配委托");
+            model.setPredictionNo(pts.getPredictionNo());
+            meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(model);
+
+            pts.setUpdateTime(new Date());
+            pts.setUpdateManNo(userId);
+            pts.setUpdateManName(userName);
+            pts.setValueFlag(DbConstants.IN); //2021年5月24日  预报直接就写成【使用中】
+            pts.setUploadFlag("1");
+            pts.setMeasureStation(model.getBaseSpotNo());
+            pts.setMeasureStationName(model.getBaseSpotName());
+            preTrackScaleMapper.updateByPrimaryKey(pts);
+
+            rm.setSucceed();
+            rm.setCode("200");
+            rm.setMessage("匹配委托成功");
+            rm.setData(model);
+        }catch (Exception e) {
+            e.printStackTrace();
+            rm.setMessage("操作异常:>>>" + e.getMessage());
         }
+        return rm;
+
+//            if (StringUtils.isEmpty(actualFirstNo)) {
+//                throw new MarkerMetException(500, "计量作业编号为空!!");
+//            }
+//            if (predictionNo == null || "".equals(predictionNo)) {
+//                throw new MarkerMetException(500, "预报编号为空!!");
+//            }
+//            PreTrackScale pts = preTrackScaleMapper.selectByPrimaryKey(predictionNo);
+//            if (pts == null) {
+//                throw new MarkerMetException(500, "该预报信息不存在");
+//            }
+//            MeterWorkCarActualFirst meterWorkCarActualFirst = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualFirstNo);
+//            if (meterWorkCarActualFirst == null) {
+//                throw new MarkerMetException(500, "该计量作业信息不存在");
+//            }
+//            if (meterWorkCarActualFirst.getPredictionNo() != null && !"".equals(meterWorkCarActualFirst.getPredictionNo())) {
+//                throw new MarkerMetException(500, "该计量作业已匹配!!");
+//            }
+//            MeterWorkCarActualFirst model = meterWorkCarActualFirstMapper.selectAndMatch(actualFirstNo, predictionNo);
+//            //区分预报的类型对状态进行修改
+//            /*
+//            //逻辑异常,此处预报的有效次数默认都是1,在匹配完成后,预报状态应当变为4【使用中】
+//            pts.setEffectiveNum(pts.getEffectiveNum() - 1);
+//            if (pts.getEffectiveNum() == 0) {
+//                pts.setValueFlag(DbConstants.UP);
+//            } else {
+//                pts.setValueFlag(DbConstants.IN);
+//            }
+//             */
+//            //将预环节的前置包括本环节都使用;001021003 = 一次计量
+////            List<MeterWorkPreLink> mwpls = meterWorkPreLinkService.getPer(predictionNo, DbConstants.CALCULATE);
+////            for (MeterWorkPreLink mwpl : mwpls) {
+////                mwpl.setValueFlag("2");//已使用
+////                meterWorkPreLinkMapper.updateByPrimaryKey(mwpl);
+////            }
+//            //当一次计量数据是已结净的状态时,同时将该结净数据的另一条一次计量数据自动匹配该委托,并将该结净记录也进行委托匹配
+//            if ("2".equals(meterWorkCarActualFirst.getValueFlag()) || "0".equals(meterWorkCarActualFirst.getValueFlag())) {
+//                throw new MarkerMetException(500, "该计量作业信息已结净或已作废");
+//            }
+//            if(pts != null) {
+//                MeterWorkCarActual meterWorkCarActual = meterWorkCarActualMapper.selectActual(actualFirstNo);
+//                String getActualFirstNo = "";
+//                //判断传入的是哪条一次记录
+//                if (meterWorkCarActual.getActualFirst1No().equals(actualFirstNo)){
+//                    getActualFirstNo = meterWorkCarActual.getActualFirst2No();
+//                }
+//                if (meterWorkCarActual.getActualFirst2No().equals(actualFirstNo)){
+//                    getActualFirstNo = meterWorkCarActual.getActualFirst1No();
+//                }
+//                //另一条一次数据进行委托解除
+//                MeterWorkCarActualFirst meterWorkCarActualFirst1 = meterWorkCarActualFirstMapper.selectAndMatch(getActualFirstNo,predictionNo);
+//                meterWorkCarActualFirst1.setIsPreScale("1");
+//                meterWorkCarActualFirstMapper.updateByPrimaryKey(meterWorkCarActualFirst1);
+//                //将该一次记录的结净数据委托解除
+//                MeterWorkCarActual mwca = meterWorkCarActualMapper.mathPredcition(meterWorkCarActual.getActualNo(),predictionNo);
+//                mwca.setIsPreScale("1");
+//                mwca.setUploadFlag("1");
+//                meterWorkCarActualMapper.updateByPrimaryKey(mwca);
+//
+//                pts.setUpdateTime(new Date());
+//                pts.setUpdateManNo("system");
+//                pts.setUpdateManName("一次计量数据匹配操作");
+//                pts.setValueFlag(DbConstants.IN); //2021年5月24日  预报直接就写成【使用中】
+//                pts.setUploadFlag("1");
+//                pts.setMeasureStation(mwca.getNetSpot3No());
+//                pts.setMeasureStationName(mwca.getNetSpot3Name());
+//                preTrackScaleMapper.updateByPrimaryKey(pts);
+//            }
+//            // 设置为已匹配状态
+//            //model.setValueFlag("1");
+//            model.setIsPreScale("1");
+//            meterWorkCarActualFirstMapper.updateByPrimaryKey(model);
+//            return model;
+//        } catch (MarkerMetException e) {
+//            throw e;
+//        }
     }
 
     @Override
@@ -4847,6 +4886,184 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
         }
     }
 
+    @Override
+    public RESTfulResult doNetByTermData(HashMap<String, Object> params) {
+        RESTfulResult rm = new RESTfulResult();
+        rm.setFailed();
+        try{
+            UserPayload userPayload = UserPayload.getCurrUser();
+            String userId;
+            String userName;
+            try{
+               userId  = userPayload.getUserCode();
+               userName  = userPayload.getUserName();
+            }catch (Exception e) {
+                userId = "admin";
+                userName = "admins";
+            }
+
+            String actualFirstNo = params.get("actualFirstNo") == null ? "": params.get("actualFirstNo").toString();
+            Assert.isTrue(StringUtils.isNotEmpty(actualFirstNo), "未选择一次数据");
+            MeterWorkCarActualFirst grossModel = meterWorkCarActualFirstMapper.selectByPrimaryKey(actualFirstNo);
+            Assert.isTrue(!grossModel.getValueFlag().equals("2"), "一次数据已结净,不允许期限皮结净");
+            Assert.isTrue(!grossModel.getValueFlag().equals("0"), "一次数据已作废,不允许期限皮结净");
+            String predictionNo = params.get("predictionNo") == null ? "": params.get("predictionNo").toString();
+            if(StringUtils.isEmpty(predictionNo)) {
+                Assert.isTrue(StringUtils.isNotEmpty(grossModel.getPredictionNo()), "毛重未匹配委托");
+                predictionNo = grossModel.getPredictionNo();
+            }
+            if(grossModel != null) {
+                HashMap<String, Object> map = new HashMap<>();
+                map.put("carNo", grossModel.getCarNo());
+                MeterBaseTermTareData termTareModel = meterBaseTermTareDataMapper.getTermTareData(map);
+                Assert.isTrue(termTareModel != null, "此车号未查询到有效的期限皮重,不允许期限皮结净");
+                if(StringUtils.isNotEmpty(predictionNo)) {
+                    PreTrackScale scale = preTrackScaleMapper.selectByPrimaryKey(predictionNo);
+                    Assert.isTrue(scale != null, "根据委托编号:" + predictionNo + "为查询到有效的委托信息");
+
+                    MeterWorkCarActualFirst tareModel = new MeterWorkCarActualFirst();
+                    BeanUtils.copyProperties(grossModel, tareModel);
+                    String no = PublicMethod.IdCreate(3);
+                    tareModel.setActualFirstNo(no);
+                    tareModel.setCreateTime(termTareModel.getCreateTime());
+                    tareModel.setMeterWeight(termTareModel.getMeterWeight());
+                    tareModel.setBaseSpotNo(termTareModel.getBaseSpotNo());
+                    tareModel.setBaseSpotName(termTareModel.getBaseSpotName());
+                    tareModel.setCreateManNo(userId);
+                    tareModel.setCreateManName(userName);
+                    meterWorkCarActualFirstMapper.insertSelective(tareModel);
+
+                    MeterWorkCarActualFirst grossFirst = meterWorkCarActualFirstMapper.selectAndMatch(grossModel.getActualFirstNo(), scale.getPredictionNo());
+                    BeanUtils.copyProperties(grossFirst, grossModel);
+                    MeterWorkCarActualFirst tareFirst = meterWorkCarActualFirstMapper.selectAndMatch(tareModel.getActualFirstNo(), scale.getPredictionNo());
+                    BeanUtils.copyProperties(tareFirst, tareModel);
+
+                    grossModel.setUpdateManNo(userId);
+                    grossModel.setUpdateManName(userName);
+                    grossModel.setUpdateTime(new Date());
+                    grossModel.setWeightType("0");
+                    grossModel.setValueFlag("2");
+                    grossModel.setIsPreScale("1");
+                    grossModel.setPredictionType("1");
+                    grossModel.setPredictionNo(scale.getPredictionNo());
+                    grossModel.setNote("期限皮结净");
+                    meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(grossModel);
+                    tareModel.setUpdateManNo(userId);
+                    tareModel.setUpdateManName(userName);
+                    tareModel.setUpdateTime(new Date());
+                    tareModel.setValueFlag("2");
+                    tareModel.setWeightType("2");
+                    tareModel.setIsPreScale("1");
+                    tareModel.setPredictionType("1");
+                    tareModel.setPredictionNo(scale.getPredictionNo());
+                    tareModel.setNote("期限皮结净");
+                    meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(tareModel);
+
+                    MeterWorkCarActual actualRow = meterWorkCarActualMapper.manualAddPre(grossModel.getActualFirstNo(), tareModel.getActualFirstNo(), scale.getPredictionNo());
+                    String noActual = PublicMethod.IdCreate(3);
+                    actualRow.setActualNo(noActual);
+                    actualRow.setNetMode(DbConstants.TYPE);
+                    actualRow.setUploadFlag("1");
+                    actualRow.setIsPreScale("1");
+                    actualRow.setValueFlag("1");
+                    actualRow.setPredictionNo(scale.getPredictionNo());
+                    actualRow.setPredictionType("1");
+                    actualRow.setNote("期限皮匹配洁净");
+                    actualRow.setNetWeight(grossModel.getMeterWeight().subtract(tareModel.getMeterWeight()));
+                    if(grossModel.getCreateTime().compareTo(tareModel.getCreateTime()) >= 0) {
+                        actualRow.setNetSpot3No(grossModel.getBaseSpotNo());
+                        actualRow.setNetSpot3Name(grossModel.getBaseSpotName());
+                        actualRow.setNetTime(grossModel.getCreateTime());
+                        actualRow.setCreateTime(grossModel.getCreateTime());
+                    }else {
+                        actualRow.setNetSpot3No(tareModel.getBaseSpotNo());
+                        actualRow.setNetSpot3Name(tareModel.getBaseSpotName());
+                        actualRow.setNetTime(tareModel.getCreateTime());
+                        actualRow.setCreateTime(tareModel.getCreateTime());
+                    }
+                    meterWorkCarActualMapper.insertSelective(actualRow);
+
+                    scale.setValueFlag(DbConstants.NET);
+                    scale.setUploadFlag("1");
+                    scale.setPredictionType("1");
+                    scale.setUpdateTime(new Date());
+                    scale.setUpdateManNo(userId);
+                    scale.setUpdateManName(userName);
+                    scale.setMeasureStation(actualRow.getNetSpot3No());
+                    scale.setMeasureStationName(actualRow.getNetSpot3Name());
+                    preTrackScaleMapper.updateByPrimaryKeySelective(scale);
+
+                    rm.setSucceed();
+                    rm.setData(actualRow);
+                    rm.setMessage("有委托期限皮结净成功");
+                    rm.setCode("200");
+                }else {
+                    MeterWorkCarActualFirst tareModel = new MeterWorkCarActualFirst();
+                    BeanUtils.copyProperties(grossModel, tareModel);
+                    String no = PublicMethod.IdCreate(3);
+                    tareModel.setActualFirstNo(no);
+                    tareModel.setCreateTime(termTareModel.getCreateTime());
+                    tareModel.setMeterWeight(termTareModel.getMeterWeight());
+                    tareModel.setBaseSpotNo(termTareModel.getBaseSpotNo());
+                    tareModel.setBaseSpotName(termTareModel.getBaseSpotName());
+                    tareModel.setCreateManNo(userId);
+                    tareModel.setCreateManName(userName);
+                    meterWorkCarActualFirstMapper.insertSelective(tareModel);
+
+                    grossModel.setUpdateManNo(userId);
+                    grossModel.setUpdateManName(userName);
+                    grossModel.setUpdateTime(new Date());
+                    grossModel.setWeightType("0");
+                    grossModel.setValueFlag("2");
+                    grossModel.setIsPreScale("0");
+                    grossModel.setNote("期限皮结净");
+                    meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(grossModel);
+
+                    tareModel.setUpdateManNo(userId);
+                    tareModel.setUpdateManName(userName);
+                    tareModel.setUpdateTime(new Date());
+                    tareModel.setWeightType("2");
+                    tareModel.setValueFlag("2");
+                    tareModel.setIsPreScale("0");
+                    tareModel.setNote("期限皮结净");
+                    meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(tareModel);
+
+                    MeterWorkCarActual actualRow = meterWorkCarActualMapper.manualAdd(grossModel.getActualFirstNo(), tareModel.getActualFirstNo());
+                    String noActual = PublicMethod.IdCreate(3);
+                    actualRow.setActualNo(noActual);
+                    actualRow.setNetTime(new Date());
+                    actualRow.setNetMode(DbConstants.TYPE);
+                    actualRow.setUploadFlag("1");
+                    actualRow.setIsPreScale("0");
+                    actualRow.setValueFlag("1");
+                    actualRow.setNote("期限皮匹配洁净");
+                    actualRow.setNetWeight(grossModel.getMeterWeight().subtract(tareModel.getMeterWeight()));
+                    if(grossModel.getCreateTime().compareTo(tareModel.getCreateTime()) >= 0) {
+                        actualRow.setNetSpot3No(grossModel.getBaseSpotNo());
+                        actualRow.setNetSpot3Name(grossModel.getBaseSpotName());
+                        actualRow.setNetTime(grossModel.getCreateTime());
+                        actualRow.setCreateTime(grossModel.getCreateTime());
+                    }else {
+                        actualRow.setNetSpot3No(tareModel.getBaseSpotNo());
+                        actualRow.setNetSpot3Name(tareModel.getBaseSpotName());
+                        actualRow.setNetTime(tareModel.getCreateTime());
+                        actualRow.setCreateTime(tareModel.getCreateTime());
+                    }
+                    meterWorkCarActualMapper.insertSelective(actualRow);
+
+                    rm.setSucceed();
+                    rm.setData(actualRow);
+                    rm.setMessage("无委托期限皮结净成功");
+                    rm.setCode("200");
+                }
+            }
+        }catch (Exception e) {
+            e.printStackTrace();
+            rm.setMessage("操作异常:>>>" + e.getMessage());
+        }
+        return rm;
+    }
+
     @Override
     public RESTfulResult doNetAddMuchGross(List<MeterWorkCarActualFirst> gross, MeterWorkCarActualFirst tare, MeterMonitorNote note) throws Exception {
         RESTfulResult rm = new RESTfulResult();

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

@@ -14,6 +14,8 @@ import java.util.*;
 public interface MeterWorkRailwayActFirstMapper extends IBaseMapper<MeterWorkRailwayActFirst, String> {
     String getNewID(@Param(value="afl")String afl);
 
+    String getLcNo(@Param(value="afl")String afl, @Param(value="baseSpotNo")String baseSpotNo);
+
     List<MeterWorkRailwayActFirst> selectView(Map<Objects,String> map);
 
     List<MeterWorkRailwayActFirst> selectDiff(@Param(value = "railwayTypeNo") String railwayTypeNo, @Param(value = "railwayTypeName") String railwayTypeName);

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

@@ -2578,6 +2578,12 @@
     FROM METER_WORK_RAILWAY_ACT_FIRST where instr(ACTUAL_FIRST_NO,#{afl,jdbcType=VARCHAR})>0
   </select>
 
+
+  <select id="getLcNo" parameterType="java.lang.String" resultType="java.lang.String">
+    SELECT LPAD(NVL(MAX(TO_NUMBER(SUBSTR(LC_NO, LENGTH(LC_NO) - 2))),0) + 1,3,'0')
+    FROM METER_WORK_RAILWAY_ACT_FIRST where instr(LC_NO,#{afl,jdbcType=VARCHAR})>0 AND BASE_SPOT_NO=#{baseSpotNo,jdbcType=VARCHAR}
+  </select>
+
   <select id="selectView" parameterType="java.util.HashMap" resultMap="BaseResultMap">
     SELECT <include refid="columns"/> from METER_WORK_RAILWAY_ACT_FIRST
     <where>

+ 15 - 11
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/service/impl/MeterWorkRailwayActFirstServiceImpl.java

@@ -5359,18 +5359,21 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
         RESTfulResult rm = new RESTfulResult();
         rm.setFailed();
         try {
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
-            String lcNo = sdf.format(new Date());
-            int count = 0;
-            for (MeterWorkRailwayActFirst model : models) {
-                model.setLcNo(model.getBaseSpotNo() + "-" + lcNo);
-                meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(model);
-                count++;
+            if(!CollectionUtils.isEmpty(models)){
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+                String afl = sdf.format(new Date());
+                String lcNo = meterWorkRailwayActFirstMapper.getLcNo(afl, models.get(0).getBaseSpotNo());
+                int count = 0;
+                for (MeterWorkRailwayActFirst model : models) {
+                    model.setLcNo(model.getBaseSpotName().replaceAll("#", "") + "-" + afl + lcNo);
+                    meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(model);
+                    count++;
+                }
+                rm.setSucceed();
+                rm.setCode("200");
+                rm.setData(count);
+                rm.setMessage("操作成功,总共" + count + "条数据修改列次编号成功!!");
             }
-            rm.setSucceed();
-            rm.setCode("200");
-            rm.setData(count);
-            rm.setMessage("操作成功,总共" + count + "条数据修改列次编号成功!!");
         } catch (Exception e) {
             e.printStackTrace();
             rm.setMessage("操作异常!!>>>" + e.getMessage());
@@ -5882,6 +5885,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 HashMap obj = new HashMap();
                 obj.put("railwayNo", receivedModel.getRailwayNo());
                 obj.put("valueFlag", "1");
+                obj.put("weightType", "1");
                 List<MeterWorkRailwayActFirst> firstWeightList = meterWorkRailwayActFirstMapper.selectByParameters(obj);
                 if(firstWeightList.size() == 1) {
                     MeterWorkRailwayActFirst firstWeightModel = firstWeightList.get(0);

+ 1 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/mapper/MeterWorkRailwayActualMapper.java

@@ -20,6 +20,7 @@ public interface MeterWorkRailwayActualMapper extends IBaseMapper<MeterWorkRailw
     MeterWorkRailwayActual manualAdd(@Param( value = "actualFirstNo") String actualFirstNo, @Param( value = "dataNo")String dataNo);
 
     String getNewID(@Param(value="afl")String afl);
+    String getLcNo(@Param(value="afl")String afl, @Param(value="netSpot3No")String netSpot3No);
 
     MeterWorkRailwayActual tareAdd(@Param( value = "actualFirstNo") String actualFirstNo, @Param( value = "dataNo")String dataNo);
 

+ 5 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/mapper/MeterWorkRailwayActualMapper.xml

@@ -2972,6 +2972,11 @@
     FROM METER_WORK_RAILWAY_ACTUAL where instr(ACTUAL_NO,#{afl,jdbcType=VARCHAR})>0
   </select>
 
+  <select id="getLcNo" parameterType="java.lang.String" resultType="java.lang.String">
+    SELECT LPAD(NVL(MAX(TO_NUMBER(SUBSTR(LC_NO, LENGTH(LC_NO) - 2))),0) + 1,3,'0')
+    FROM METER_WORK_RAILWAY_ACTUAL where instr(LC_NO,#{afl,jdbcType=VARCHAR})>0 AND net_spot3_no=#{netSpot3Name,jdbcType=VARCHAR}
+  </select>
+
   <select id="manualAdd" parameterType="java.lang.String" resultMap="BaseResultMap">
     select t1.notice_no NOTICE_NO, t1.railway_no RAILWAY_NO, t1.railway_carriage_no RAILWAY_CARRIAGE_NO, t1.matter_no MATTER_NO,
            t1.matter_name MATTER_NAME, t1.contract_no CONTRACT_NO, t1.batch_no BATCH_NO, t1.customer_supplier_no CUSTOMER_SUPPLIER_NO,

+ 58 - 38
src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/service/impl/MeterWorkRailwayActualServiceImpl.java

@@ -39,6 +39,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.util.Assert;
+import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -264,6 +265,8 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 scale.setUpdateManNo("system");
                 scale.setUploadFlag("1");
                 scale.setUpdateManName("二次计量洁净更新");
+                scale.setMeasureStation(mwcaf2.getBaseSpotNo());
+                scale.setMeasureStationName(mwcaf2.getBaseSpotName());
                 preRailwayScaleMapper.updateByPrimaryKeySelective(scale);
             }
 
@@ -321,6 +324,8 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 prs.setUpdateTime(new Date());
                 prs.setUpdateManNo("system");
                 prs.setUpdateManName("火车二次计量洁净操作");
+                prs.setMeasureStation(actualRow.getNetManName());
+                prs.setMeasureStationName(actualRow.getNetSpot3Name());
                 preRailwayScaleMapper.updateByPrimaryKeySelective(prs);
             }
             return actualRow;
@@ -361,14 +366,6 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
             MeterWorkRailwayActFirst first2 = meterWorkRailwayActFirstMapper.selectAndMatch(actFirst02.getActualFirstNo(), scale.getPredictionNo());
             BeanUtils.copyProperties(first2, actFirst02);
 
-            scale.setValueFlag(DbConstants.NET);
-            scale.setUpdateTime(new Date());
-            scale.setUpdateManNo("system");
-            scale.setUpdateManName("匹配结净更新");
-            scale.setUploadFlag("1");
-            scale.setPredictionType("1");
-            preRailwayScaleMapper.updateByPrimaryKeySelective(scale);
-
             //更新一次数据
             //更新第一次毛重数据库
             actFirst01.setWeightType("0");
@@ -408,6 +405,16 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
             actualRow.setNetMode(DbConstants.TYPE);
             actualRow.setNetWeight(actFirst01.getMeterWeight().subtract(actFirst02.getMeterWeight()));
             meterWorkRailwayActualMapper.insertSelective(actualRow);
+
+            scale.setValueFlag(DbConstants.NET);
+            scale.setUpdateTime(new Date());
+            scale.setUpdateManNo("system");
+            scale.setUpdateManName("匹配结净更新");
+            scale.setUploadFlag("1");
+            scale.setPredictionType("1");
+            scale.setMeasureStation(actualRow.getNetSpot3No());
+            scale.setMeasureStationName(actualRow.getNetSpot3Name());
+            preRailwayScaleMapper.updateByPrimaryKeySelective(scale);
         }else {
             MeterWorkRailwayActual mwca2 = meterWorkRailwayActualMapper.manualAdd(actFirst01.getActualFirstNo(), actFirst02.getActualFirstNo());
             BeanUtils.copyProperties(mwca2, actualRow);
@@ -512,6 +519,14 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
 
         }
 
+        MeterWorkRailwayActual mwca = meterWorkRailwayActualMapper.mathPredcition(actualNo, predictionNo);
+        mwca.setValueFlag("1");
+        mwca.setIsPreSacale("1");
+        mwca.setPredictionType("1");
+        mwca.setUploadFlag("1");
+//        mwca.setNote(note); 添加修改原因记录
+        meterWorkRailwayActualMapper.updateByPrimaryKey(mwca);
+
         // 处理预报
         if (StringUtils.isNotEmpty(predictionNo)) {
             PreRailwayScale scale = new PreRailwayScale();
@@ -521,16 +536,10 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
             scale.setUpdateTime(new Date());
             scale.setUpdateManNo("system");
             scale.setUpdateManName("计量洁净数据匹配委托操作");
+            scale.setMeasureStation(mwca.getNetSpot3No());
+            scale.setMeasureStationName(mwca.getNetSpot3Name());
             preRailwayScaleMapper.updateByPrimaryKeySelective(scale);
         }
-
-        MeterWorkRailwayActual mwca = meterWorkRailwayActualMapper.mathPredcition(actualNo, predictionNo);
-        mwca.setValueFlag("1");
-        mwca.setIsPreSacale("1");
-        mwca.setPredictionType("1");
-        mwca.setUploadFlag("1");
-//        mwca.setNote(note); 添加修改原因记录
-        meterWorkRailwayActualMapper.updateByPrimaryKey(mwca);
         return mwca;
     }
 
@@ -580,16 +589,6 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
         tarerow.setWeightType("3");
         int num1 = meterWorkRailwayActFirstMapper.insertSelective(tarerow);
 
-        // 处理预报信息
-        PreRailwayScale pres = new PreRailwayScale();
-        pres.setPredictionNo(model.getPredictionNo());
-        pres.setValueFlag("2");
-        pres.setUploadFlag("1");
-        pres.setUpdateManName(userName+ ": 使用历史皮重洁净操作");
-        pres.setUpdateTime(new Date());
-        pres.setUpdateManNo(userId);
-        preRailwayScaleMapper.updateByPrimaryKeySelective(pres);
-
         // 新增净重数据
         String idNo2 = sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(sdf.format(time));
         model.setActualNo(idNo2);
@@ -607,6 +606,18 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
 //        model.setNote(); // 添加修改原因记录
         model.setCreateTime(new Date());
         int num = meterWorkRailwayActualMapper.insertSelective(model);
+
+        // 处理预报信息
+        PreRailwayScale pres = new PreRailwayScale();
+        pres.setPredictionNo(model.getPredictionNo());
+        pres.setValueFlag("2");
+        pres.setUploadFlag("1");
+        pres.setUpdateManName(userName+ ": 使用历史皮重洁净操作");
+        pres.setUpdateTime(new Date());
+        pres.setUpdateManNo(userId);
+        pres.setMeasureStation(model.getNetSpot3No());
+        pres.setMeasureStationName(model.getNetSpot3Name());
+        preRailwayScaleMapper.updateByPrimaryKeySelective(pres);
         return num;
     }
 
@@ -1845,7 +1856,7 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 preRailwayScale.setUpdateTime(new Date());
                 preRailwayScale.setUpdateManNo("system");
                 preRailwayScale.setUpdateManName("计量洁净数据手动录入");
-                preRailwayScaleMapper.updateByPrimaryKey(preRailwayScale);
+
                 //添加毛重一次计量数据
                 String actualFirstNo = sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(afl);
                 BeanUtils.copyProperties(preRailwayScale, mwraf1);
@@ -1898,6 +1909,10 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 model.setUploadFlag("1");
                 model.setCreateTime(new Date());
                 meterWorkRailwayActualMapper.insertSelective(model);
+
+                preRailwayScale.setMeasureStation(model.getNetSpot3No());
+                preRailwayScale.setMeasureStationName(model.getNetSpot3Name());
+                preRailwayScaleMapper.updateByPrimaryKey(preRailwayScale);
                 num++;
             }
             return num;
@@ -1991,6 +2006,8 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 scale.setUpdateManName("手动录入");
                 scale.setUploadFlag("1");
                 scale.setValueFlag("2");
+                scale.setMeasureStation(mwcaf2.getBaseSpotNo());
+                scale.setMeasureStationName(mwcaf2.getBaseSpotName());
                 preRailwayScaleMapper.updateByPrimaryKeySelective(scale);
                 //将委托中的编号和收发货单位和一次数据等数据拷贝进结净数据中
                 MeterWorkRailwayActual mwca1 = meterWorkRailwayActualMapper.manualAddPre(actualFirstNo, actualSecondNo, predictionNo);
@@ -2343,18 +2360,21 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
         RESTfulResult rm = new RESTfulResult();
         rm.setFailed();
         try {
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddhhmmss");
-            String lcNo = sdf.format(new Date());
-            int count = 0;
-            for(MeterWorkRailwayActual model: models) {
-                model.setLcNo(model.getNetSpot3No() + "-" + lcNo);
-                meterWorkRailwayActualMapper.updateByPrimaryKeySelective(model);
-                count++;
+            if(!CollectionUtils.isEmpty(models)){
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+                String afl = sdf.format(new Date());
+                String lcNo = meterWorkRailwayActualMapper.getLcNo(afl, models.get(0).getNetSpot3No());
+                int count = 0;
+                for(MeterWorkRailwayActual model: models) {
+                    model.setLcNo(model.getNetSpot3Name().replaceAll("#", "") + "-" + afl + lcNo);
+                    meterWorkRailwayActualMapper.updateByPrimaryKeySelective(model);
+                    count++;
+                }
+                rm.setSucceed();
+                rm.setCode("200");
+                rm.setData(count);
+                rm.setMessage("操作成功,总共"+ count +"条数据修改列次编号成功!!");
             }
-            rm.setSucceed();
-            rm.setCode("200");
-            rm.setData(count);
-            rm.setMessage("操作成功,总共"+ count +"条数据修改列次编号成功!!");
         }catch(Exception e) {
             e.printStackTrace();
             rm.setMessage("操作异常!!>>>" + e.getMessage());

+ 7 - 2
src/main/java/com/steerinfo/pretrack/pretrackscale/mapper/PreTrackScaleMapper.xml

@@ -3493,8 +3493,13 @@
     <if test="meterTypeName != null and meterTypeName != ''">
       and METER_TYPE_NAME = #{meterTypeName}
     </if>
-    and value_flag != ('3')
-    and TRUST_AVAILABILITY_TIME &gt;= SYSDATE
+    <if test="predictionNo != null and predictionNo != ''">
+      and prediction_no = #{predictionNo}
+    </if>
+    <if test="predictionNo == null or predictionNo == ''">
+      and value_flag in  ('0', '1') and TRUST_AVAILABILITY_TIME &gt;= SYSDATE
+    </if>
     order By TRUST_DATE_TIME desc
   </select>
+
 </mapper>