dengyj 3 years ago
parent
commit
70eadcc470
22 changed files with 987 additions and 205 deletions
  1. 201 175
      src/main/java/com/steerinfo/baseinfo/meterbaserailwayhistaredata/mapper/MeterBaseRailwayHisTareDataMapper.xml
  2. 16 1
      src/main/java/com/steerinfo/baseinfo/meterbaserailwayhistaredata/model/MeterBaseRailwayHisTareData.java
  3. 15 3
      src/main/java/com/steerinfo/baseinfo/meterbaserfidinfo/controller/MeterBaseRfidInfoController.java
  4. 13 0
      src/main/java/com/steerinfo/meterwork/meterworkcaractualbak/controller/MeterWorkCarActualBakController.java
  5. 47 0
      src/main/java/com/steerinfo/meterwork/meterworkcaractualbak/service/impl/MeterWorkCarActualBakServiceImpl.java
  6. 41 0
      src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/controller/MeterWorkCarActualFirstController.java
  7. 3 0
      src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/IMeterWorkCarActualFirstService.java
  8. 209 0
      src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/impl/MeterWorkCarActualFirstServiceImpl.java
  9. 27 1
      src/main/java/com/steerinfo/meterwork/meterworkcaractualfirstbak/controller/MeterWorkCarActualFirstBakController.java
  10. 2 0
      src/main/java/com/steerinfo/meterwork/meterworkcaractualfirstbak/service/IMeterWorkCarActualFirstBakService.java
  11. 80 0
      src/main/java/com/steerinfo/meterwork/meterworkcaractualfirstbak/service/impl/MeterWorkCarActualFirstBakServiceImpl.java
  12. 4 4
      src/main/java/com/steerinfo/meterwork/meterworkcheckfirstactual/mapper/MeterWorkCheckFirstActualMapper.xml
  13. 59 0
      src/main/java/com/steerinfo/meterwork/meterworkdatacount/mapper/MeterWorkDataCountMapper.xml
  14. 5 2
      src/main/java/com/steerinfo/meterwork/meterworkimage/service/impl/MeterWorkImageServiceImpl.java
  15. 1 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/controller/MeterWorkRailwayActFirstController.java
  16. 11 4
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/mapper/MeterWorkRailwayActFirstMapper.xml
  17. 6 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/service/IMeterWorkRailwayActFirstService.java
  18. 171 14
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/service/impl/MeterWorkRailwayActFirstServiceImpl.java
  19. 12 1
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirstbak/controller/MeterWorkRailwayActFirstBakController.java
  20. 32 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirstbak/service/impl/MeterWorkRailwayActFirstBakServiceImpl.java
  21. 2 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/service/impl/MeterWorkRailwayActualServiceImpl.java
  22. 30 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactualbak/service/impl/MeterWorkRailwayActualBakServiceImpl.java

+ 201 - 175
src/main/java/com/steerinfo/baseinfo/meterbaserailwayhistaredata/mapper/MeterBaseRailwayHisTareDataMapper.xml

@@ -20,17 +20,18 @@
     <result column="UPDATE_MAN_NAME" jdbcType="VARCHAR" property="updateManName" />
     <result column="UPDATE_TIME" jdbcType="TIMESTAMP" property="updateTime" />
     <result column="NOTE" jdbcType="VARCHAR" property="note" />
+    <result column="TARE_TYPE" jdbcType="VARCHAR" property="tareType" />
   </resultMap>
   <sql id="columns">
-    DATA_NO, BASE_SPOT_NO, BASE_SPOT_NAME, RAILWAY_NO, METER_WEIGHT, METER_NAME, METER_TIME, 
-    UP_WEIGHT, AVG_WEIGHT, METER_NUM, VALUE_FLAG, CREATE_MAN_NO, CREATE_MAN_NAME, CREATE_TIME, 
-    UPDATE_MAN_NO, UPDATE_MAN_NAME, UPDATE_TIME, NOTE
+    DATA_NO, BASE_SPOT_NO, BASE_SPOT_NAME, RAILWAY_NO, METER_WEIGHT, METER_NAME, METER_TIME,
+    UP_WEIGHT, AVG_WEIGHT, METER_NUM, VALUE_FLAG, CREATE_MAN_NO, CREATE_MAN_NAME, CREATE_TIME,
+    UPDATE_MAN_NO, UPDATE_MAN_NAME, UPDATE_TIME, NOTE, TARE_TYPE
   </sql>
   <sql id="columns_alias">
-    t.DATA_NO, t.BASE_SPOT_NO, t.BASE_SPOT_NAME, t.RAILWAY_NO, t.METER_WEIGHT, t.METER_NAME, 
-    t.METER_TIME, t.UP_WEIGHT, t.AVG_WEIGHT, t.METER_NUM, t.VALUE_FLAG, t.CREATE_MAN_NO, 
-    t.CREATE_MAN_NAME, t.CREATE_TIME, t.UPDATE_MAN_NO, t.UPDATE_MAN_NAME, t.UPDATE_TIME, 
-    t.NOTE
+    t.DATA_NO, t.BASE_SPOT_NO, t.BASE_SPOT_NAME, t.RAILWAY_NO, t.METER_WEIGHT, t.METER_NAME,
+    t.METER_TIME, t.UP_WEIGHT, t.AVG_WEIGHT, t.METER_NUM, t.VALUE_FLAG, t.CREATE_MAN_NO,
+    t.CREATE_MAN_NAME, t.CREATE_TIME, t.UPDATE_MAN_NO, t.UPDATE_MAN_NAME, t.UPDATE_TIME,
+    t.NOTE, t.TARE_TYPE
   </sql>
   <sql id="select">
     SELECT <include refid="columns" /> FROM METER_BASE_RAILWAY_HIS_TARE_DATA
@@ -39,7 +40,7 @@
     SELECT <include refid="columns_alias" /> FROM METER_BASE_RAILWAY_HIS_TARE_DATA t
   </sql>
   <sql id="where">
-    <where> 
+    <where>
       <if test="dataNo != null and dataNo != ''">
         and DATA_NO = #{dataNo}
       </if>
@@ -94,10 +95,13 @@
       <if test="note != null and note != ''">
         and NOTE = #{note}
       </if>
+      <if test="tareType != null and tareType != ''">
+        and TARE_TYPE = #{tareType}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
-    <where> 
+    <where>
       <if test="dataNo != null and dataNo != ''">
         and DATA_NO LIKE '%${dataNo}%'
       </if>
@@ -152,6 +156,9 @@
       <if test="note != null and note != ''">
         and NOTE LIKE '%${note}%'
       </if>
+      <if test="tareType != null and tareType != ''">
+        and TARE_TYPE LIKE '%${tareType}%'
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
@@ -160,74 +167,77 @@
   </delete>
   <delete id="deleteBySelectiveElement" parameterType="java.util.HashMap">
     delete from METER_BASE_RAILWAY_HIS_TARE_DATA
-    where 1!=1 
-      <if test="baseSpotNo != null and baseSpotNo != ''">
-        or BASE_SPOT_NO = #{baseSpotNo}
-      </if>
-      <if test="baseSpotName != null and baseSpotName != ''">
-        or BASE_SPOT_NAME = #{baseSpotName}
-      </if>
-      <if test="railwayNo != null and railwayNo != ''">
-        or RAILWAY_NO = #{railwayNo}
-      </if>
-      <if test="meterWeight != null">
-        or METER_WEIGHT = #{meterWeight}
-      </if>
-      <if test="meterName != null and meterName != ''">
-        or METER_NAME = #{meterName}
-      </if>
-      <if test="meterTime != null">
-        or TO_CHAR(METER_TIME,'yyyy-MM-dd') = '#{meterTime}'
-      </if>
-      <if test="upWeight != null">
-        or UP_WEIGHT = #{upWeight}
-      </if>
-      <if test="avgWeight != null">
-        or AVG_WEIGHT = #{avgWeight}
-      </if>
-      <if test="meterNum != null">
-        or METER_NUM = #{meterNum}
-      </if>
-      <if test="valueFlag != null and valueFlag != ''">
-        or VALUE_FLAG = #{valueFlag}
-      </if>
-      <if test="createManNo != null and createManNo != ''">
-        or CREATE_MAN_NO = #{createManNo}
-      </if>
-      <if test="createManName != null and createManName != ''">
-        or CREATE_MAN_NAME = #{createManName}
-      </if>
-      <if test="createTime != null">
-        or TO_CHAR(CREATE_TIME,'yyyy-MM-dd') = '#{createTime}'
-      </if>
-      <if test="updateManNo != null and updateManNo != ''">
-        or UPDATE_MAN_NO = #{updateManNo}
-      </if>
-      <if test="updateManName != null and updateManName != ''">
-        or UPDATE_MAN_NAME = #{updateManName}
-      </if>
-      <if test="updateTime != null">
-        or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
-      </if>
-      <if test="note != null and note != ''">
-        or NOTE = #{note}
-      </if>
+    where 1!=1
+    <if test="baseSpotNo != null and baseSpotNo != ''">
+      or BASE_SPOT_NO = #{baseSpotNo}
+    </if>
+    <if test="baseSpotName != null and baseSpotName != ''">
+      or BASE_SPOT_NAME = #{baseSpotName}
+    </if>
+    <if test="railwayNo != null and railwayNo != ''">
+      or RAILWAY_NO = #{railwayNo}
+    </if>
+    <if test="meterWeight != null">
+      or METER_WEIGHT = #{meterWeight}
+    </if>
+    <if test="meterName != null and meterName != ''">
+      or METER_NAME = #{meterName}
+    </if>
+    <if test="meterTime != null">
+      or TO_CHAR(METER_TIME,'yyyy-MM-dd') = '#{meterTime}'
+    </if>
+    <if test="upWeight != null">
+      or UP_WEIGHT = #{upWeight}
+    </if>
+    <if test="avgWeight != null">
+      or AVG_WEIGHT = #{avgWeight}
+    </if>
+    <if test="meterNum != null">
+      or METER_NUM = #{meterNum}
+    </if>
+    <if test="valueFlag != null and valueFlag != ''">
+      or VALUE_FLAG = #{valueFlag}
+    </if>
+    <if test="createManNo != null and createManNo != ''">
+      or CREATE_MAN_NO = #{createManNo}
+    </if>
+    <if test="createManName != null and createManName != ''">
+      or CREATE_MAN_NAME = #{createManName}
+    </if>
+    <if test="createTime != null">
+      or TO_CHAR(CREATE_TIME,'yyyy-MM-dd') = '#{createTime}'
+    </if>
+    <if test="updateManNo != null and updateManNo != ''">
+      or UPDATE_MAN_NO = #{updateManNo}
+    </if>
+    <if test="updateManName != null and updateManName != ''">
+      or UPDATE_MAN_NAME = #{updateManName}
+    </if>
+    <if test="updateTime != null">
+      or TO_CHAR(UPDATE_TIME,'yyyy-MM-dd') = '#{updateTime}'
+    </if>
+    <if test="note != null and note != ''">
+      or NOTE = #{note}
+    </if>
+    <if test="tareType != null and tareType != ''">
+      or TARE_TYPE = #{tareType}
+    </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.baseinfo.meterbaserailwayhistaredata.model.MeterBaseRailwayHisTareData">
-    insert into METER_BASE_RAILWAY_HIS_TARE_DATA (DATA_NO, BASE_SPOT_NO, BASE_SPOT_NAME, 
-      RAILWAY_NO, METER_WEIGHT, METER_NAME, 
-      METER_TIME, UP_WEIGHT, AVG_WEIGHT, 
-      METER_NUM, VALUE_FLAG, CREATE_MAN_NO, 
-      CREATE_MAN_NAME, CREATE_TIME, UPDATE_MAN_NO, 
-      UPDATE_MAN_NAME, UPDATE_TIME, NOTE
-      )
-    values (#{dataNo,jdbcType=VARCHAR}, #{baseSpotNo,jdbcType=VARCHAR}, #{baseSpotName,jdbcType=VARCHAR}, 
-      #{railwayNo,jdbcType=VARCHAR}, #{meterWeight,jdbcType=DECIMAL}, #{meterName,jdbcType=VARCHAR}, 
-      #{meterTime,jdbcType=TIMESTAMP}, #{upWeight,jdbcType=DECIMAL}, #{avgWeight,jdbcType=DECIMAL}, 
-      #{meterNum,jdbcType=DECIMAL}, #{valueFlag,jdbcType=VARCHAR}, #{createManNo,jdbcType=VARCHAR}, 
-      #{createManName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateManNo,jdbcType=VARCHAR}, 
-      #{updateManName,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{note,jdbcType=VARCHAR}
-      )
+    insert into METER_BASE_RAILWAY_HIS_TARE_DATA (DATA_NO, BASE_SPOT_NO, BASE_SPOT_NAME,
+      RAILWAY_NO, METER_WEIGHT, METER_NAME,
+      METER_TIME, UP_WEIGHT, AVG_WEIGHT,
+      METER_NUM, VALUE_FLAG, CREATE_MAN_NO,
+      CREATE_MAN_NAME, CREATE_TIME, UPDATE_MAN_NO,
+      UPDATE_MAN_NAME, UPDATE_TIME, NOTE,
+      TARE_TYPE)
+    values (#{dataNo,jdbcType=VARCHAR}, #{baseSpotNo,jdbcType=VARCHAR}, #{baseSpotName,jdbcType=VARCHAR},
+      #{railwayNo,jdbcType=VARCHAR}, #{meterWeight,jdbcType=DECIMAL}, #{meterName,jdbcType=VARCHAR},
+      #{meterTime,jdbcType=TIMESTAMP}, #{upWeight,jdbcType=DECIMAL}, #{avgWeight,jdbcType=DECIMAL},
+      #{meterNum,jdbcType=DECIMAL}, #{valueFlag,jdbcType=VARCHAR}, #{createManNo,jdbcType=VARCHAR},
+      #{createManName,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateManNo,jdbcType=VARCHAR},
+      #{updateManName,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{note,jdbcType=VARCHAR},
+      #{tareType,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.baseinfo.meterbaserailwayhistaredata.model.MeterBaseRailwayHisTareData">
     insert into METER_BASE_RAILWAY_HIS_TARE_DATA
@@ -286,6 +296,9 @@
       <if test="note != null">
         NOTE,
       </if>
+      <if test="tareType != null">
+        TARE_TYPE,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="dataNo != null">
@@ -342,6 +355,9 @@
       <if test="note != null">
         #{note,jdbcType=VARCHAR},
       </if>
+      <if test="tareType != null">
+        #{tareType,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.baseinfo.meterbaserailwayhistaredata.model.MeterBaseRailwayHisTareData">
@@ -362,7 +378,8 @@
       UPDATE_MAN_NO = #{updateManNo,jdbcType=VARCHAR},
       UPDATE_MAN_NAME = #{updateManName,jdbcType=VARCHAR},
       UPDATE_TIME = #{updateTime,jdbcType=TIMESTAMP},
-      NOTE = #{note,jdbcType=VARCHAR}
+      NOTE = #{note,jdbcType=VARCHAR},
+      TARE_TYPE = #{tareType,jdbcType=VARCHAR}
     where DATA_NO = #{dataNo,jdbcType=VARCHAR}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.baseinfo.meterbaserailwayhistaredata.model.MeterBaseRailwayHisTareData">
@@ -419,6 +436,9 @@
       <if test="note != null">
         NOTE = #{note,jdbcType=VARCHAR},
       </if>
+      <if test="tareType != null">
+        TARE_TYPE = #{tareType,jdbcType=VARCHAR},
+      </if>
     </set>
     where DATA_NO = #{dataNo,jdbcType=VARCHAR}
   </update>
@@ -435,108 +455,114 @@
     <include refid="whereLike" />
   </select>
   <insert id="batchInsert" parameterType="java.util.List">
-    insert into METER_BASE_RAILWAY_HIS_TARE_DATA 
-      (DATA_NO, 
-      BASE_SPOT_NO, BASE_SPOT_NAME, RAILWAY_NO, 
-      METER_WEIGHT, METER_NAME, METER_TIME, 
-      UP_WEIGHT, AVG_WEIGHT, METER_NUM, 
-      VALUE_FLAG, CREATE_MAN_NO, CREATE_MAN_NAME, 
-      CREATE_TIME, UPDATE_MAN_NO, UPDATE_MAN_NAME, 
-      UPDATE_TIME, NOTE)
-    ( <foreach collection="list" item="item" separator="union all"> 
-   select  
-      #{item.dataNo,jdbcType=VARCHAR}, 
-      #{item.baseSpotNo,jdbcType=VARCHAR}, #{item.baseSpotName,jdbcType=VARCHAR}, #{item.railwayNo,jdbcType=VARCHAR}, 
-      #{item.meterWeight,jdbcType=DECIMAL}, #{item.meterName,jdbcType=VARCHAR}, #{item.meterTime,jdbcType=TIMESTAMP}, 
-      #{item.upWeight,jdbcType=DECIMAL}, #{item.avgWeight,jdbcType=DECIMAL}, #{item.meterNum,jdbcType=DECIMAL}, 
-      #{item.valueFlag,jdbcType=VARCHAR}, #{item.createManNo,jdbcType=VARCHAR}, #{item.createManName,jdbcType=VARCHAR}, 
-      #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateManNo,jdbcType=VARCHAR}, #{item.updateManName,jdbcType=VARCHAR}, 
-      #{item.updateTime,jdbcType=TIMESTAMP}, #{item.note,jdbcType=VARCHAR} from dual  
-   </foreach> )
+    insert into METER_BASE_RAILWAY_HIS_TARE_DATA
+    (DATA_NO,
+    BASE_SPOT_NO, BASE_SPOT_NAME, RAILWAY_NO,
+    METER_WEIGHT, METER_NAME, METER_TIME,
+    UP_WEIGHT, AVG_WEIGHT, METER_NUM,
+    VALUE_FLAG, CREATE_MAN_NO, CREATE_MAN_NAME,
+    CREATE_TIME, UPDATE_MAN_NO, UPDATE_MAN_NAME,
+    UPDATE_TIME, NOTE, TARE_TYPE
+    )
+    ( <foreach collection="list" item="item" separator="union all">
+    select
+    #{item.dataNo,jdbcType=VARCHAR},
+    #{item.baseSpotNo,jdbcType=VARCHAR}, #{item.baseSpotName,jdbcType=VARCHAR}, #{item.railwayNo,jdbcType=VARCHAR},
+    #{item.meterWeight,jdbcType=DECIMAL}, #{item.meterName,jdbcType=VARCHAR}, #{item.meterTime,jdbcType=TIMESTAMP},
+    #{item.upWeight,jdbcType=DECIMAL}, #{item.avgWeight,jdbcType=DECIMAL}, #{item.meterNum,jdbcType=DECIMAL},
+    #{item.valueFlag,jdbcType=VARCHAR}, #{item.createManNo,jdbcType=VARCHAR}, #{item.createManName,jdbcType=VARCHAR},
+    #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateManNo,jdbcType=VARCHAR}, #{item.updateManName,jdbcType=VARCHAR},
+    #{item.updateTime,jdbcType=TIMESTAMP}, #{item.note,jdbcType=VARCHAR}, #{item.tareType,jdbcType=VARCHAR}
+    from dual
+  </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
-     update METER_BASE_RAILWAY_HIS_TARE_DATA
-     set
-       DATA_NO=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.dataNo,jdbcType=VARCHAR}
-       </foreach>
-       ,BASE_SPOT_NO=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.baseSpotNo,jdbcType=VARCHAR}
-       </foreach>
-       ,BASE_SPOT_NAME=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.baseSpotName,jdbcType=VARCHAR}
-       </foreach>
-       ,RAILWAY_NO=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.railwayNo,jdbcType=VARCHAR}
-       </foreach>
-       ,METER_WEIGHT=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.meterWeight,jdbcType=DECIMAL}
-       </foreach>
-       ,METER_NAME=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.meterName,jdbcType=VARCHAR}
-       </foreach>
-       ,METER_TIME=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.meterTime,jdbcType=TIMESTAMP}
-       </foreach>
-       ,UP_WEIGHT=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.upWeight,jdbcType=DECIMAL}
-       </foreach>
-       ,AVG_WEIGHT=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.avgWeight,jdbcType=DECIMAL}
-       </foreach>
-       ,METER_NUM=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.meterNum,jdbcType=DECIMAL}
-       </foreach>
-       ,VALUE_FLAG=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.valueFlag,jdbcType=VARCHAR}
-       </foreach>
-       ,CREATE_MAN_NO=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.createManNo,jdbcType=VARCHAR}
-       </foreach>
-       ,CREATE_MAN_NAME=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.createManName,jdbcType=VARCHAR}
-       </foreach>
-       ,CREATE_TIME=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.createTime,jdbcType=TIMESTAMP}
-       </foreach>
-       ,UPDATE_MAN_NO=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.updateManNo,jdbcType=VARCHAR}
-       </foreach>
-       ,UPDATE_MAN_NAME=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.updateManName,jdbcType=VARCHAR}
-       </foreach>
-       ,UPDATE_TIME=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.updateTime,jdbcType=TIMESTAMP}
-       </foreach>
-       ,NOTE=
-       <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
-          when #{item.dataNo,jdbcType=VARCHAR} then #{item.note,jdbcType=VARCHAR}
-       </foreach>
-     where DATA_NO in 
-     <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
-    #{item.dataNo,jdbcType=VARCHAR}
-     </foreach> 
+    update METER_BASE_RAILWAY_HIS_TARE_DATA
+    set
+    DATA_NO=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.dataNo,jdbcType=VARCHAR}
+    </foreach>
+    ,BASE_SPOT_NO=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.baseSpotNo,jdbcType=VARCHAR}
+    </foreach>
+    ,BASE_SPOT_NAME=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.baseSpotName,jdbcType=VARCHAR}
+    </foreach>
+    ,RAILWAY_NO=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.railwayNo,jdbcType=VARCHAR}
+    </foreach>
+    ,METER_WEIGHT=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.meterWeight,jdbcType=DECIMAL}
+    </foreach>
+    ,METER_NAME=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.meterName,jdbcType=VARCHAR}
+    </foreach>
+    ,METER_TIME=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.meterTime,jdbcType=TIMESTAMP}
+    </foreach>
+    ,UP_WEIGHT=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.upWeight,jdbcType=DECIMAL}
+    </foreach>
+    ,AVG_WEIGHT=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.avgWeight,jdbcType=DECIMAL}
+    </foreach>
+    ,METER_NUM=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.meterNum,jdbcType=DECIMAL}
+    </foreach>
+    ,VALUE_FLAG=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.valueFlag,jdbcType=VARCHAR}
+    </foreach>
+    ,CREATE_MAN_NO=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.createManNo,jdbcType=VARCHAR}
+    </foreach>
+    ,CREATE_MAN_NAME=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.createManName,jdbcType=VARCHAR}
+    </foreach>
+    ,CREATE_TIME=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.createTime,jdbcType=TIMESTAMP}
+    </foreach>
+    ,UPDATE_MAN_NO=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.updateManNo,jdbcType=VARCHAR}
+    </foreach>
+    ,UPDATE_MAN_NAME=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.updateManName,jdbcType=VARCHAR}
+    </foreach>
+    ,UPDATE_TIME=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.updateTime,jdbcType=TIMESTAMP}
+    </foreach>
+    ,NOTE=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.note,jdbcType=VARCHAR}
+    </foreach>
+    ,TARE_TYPE=
+    <foreach close="end" collection="list" index="index" item="item" open="case DATA_NO" separator=" ">
+      when #{item.dataNo,jdbcType=VARCHAR} then #{item.tareType,jdbcType=VARCHAR}
+    </foreach>
+    where DATA_NO in
+    <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
+      #{item.dataNo,jdbcType=VARCHAR}
+    </foreach>
   </update>
   <delete id="batchDelete" parameterType="java.util.List">
     delete from METER_BASE_RAILWAY_HIS_TARE_DATA
-    where DATA_NO in 
+    where DATA_NO in
     <foreach close=")" collection="list" item="id" open="(" separator=",">
       #{id}
     </foreach>
@@ -548,5 +574,5 @@
     FROM meter_base_railway_his_tare_data
     where instr(data_no, #{afl, jdbcType = VARCHAR}) > 0
   </select>
-  
-</mapper>
+
+</mapper>

+ 16 - 1
src/main/java/com/steerinfo/baseinfo/meterbaserailwayhistaredata/model/MeterBaseRailwayHisTareData.java

@@ -116,6 +116,12 @@ public class MeterBaseRailwayHisTareData implements IBasePO<String> {
     @ApiModelProperty(value="操作原因",required=false)
     private String note;
 
+    /**
+     * 写入皮重类型:1:标识皮重,2:标准皮重,3:回空皮重(TARE_TYPE,VARCHAR,2)
+     */
+    @ApiModelProperty(value="写入皮重类型:1:标识皮重,2:标准皮重,3:回空皮重",required=false)
+    private String tareType;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -272,6 +278,14 @@ public class MeterBaseRailwayHisTareData implements IBasePO<String> {
         this.note = note == null ? null : note.trim();
     }
 
+    public String getTareType() {
+        return tareType;
+    }
+
+    public void setTareType(String tareType) {
+        this.tareType = tareType == null ? null : tareType.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -296,8 +310,9 @@ public class MeterBaseRailwayHisTareData implements IBasePO<String> {
         sb.append(", updateManName=").append(updateManName);
         sb.append(", updateTime=").append(updateTime);
         sb.append(", note=").append(note);
+        sb.append(", tareType=").append(tareType);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();
     }
-}
+}

+ 15 - 3
src/main/java/com/steerinfo/baseinfo/meterbaserfidinfo/controller/MeterBaseRfidInfoController.java

@@ -85,7 +85,7 @@ public class MeterBaseRfidInfoController extends BaseRESTfulController {
         List<String> list = meterBaseRfidInfoService.carNoByNoPage(parmas);
         return success(list);
     }
-    
+
     @ApiOperation(value="创建", notes="根据MeterBaseRfidInfo对象创建")
     @ApiImplicitParam(name = "meterBaseRfidInfo", value = "详细实体meterBaseRfidInfo", required = true, dataType = "MeterBaseRfidInfo")
     //@RequiresPermissions("meterbaserfidinfo:create")
@@ -109,9 +109,21 @@ public class MeterBaseRfidInfoController extends BaseRESTfulController {
             rm.setMessage("车号不能为空,请确认!!");
             return rm;
         }
-        List<MeterBaseRfidInfo> models = meterBaseRfidInfoMapper.selectByMap(model);
+        HashMap<String, Object> map =new HashMap<>();
+        map.put("rfidCode",rfidCode);
+        map.put("valueFlag","0");
+        List<MeterBaseRfidInfo> models = meterBaseRfidInfoMapper.selectByMap(map);
         if(models.size() >= 1) {
-            rm.setMessage("rfid和车号已重复,不允许再次新增,请确认!!");
+            rm.setMessage("rfid已重复,不允许再次新增,请确认!!");
+            return rm;
+        }
+
+        HashMap<String, Object> map1 =new HashMap<>();
+        map1.put("carNo",carNo);
+        map1.put("valueFlag","0");
+        List<MeterBaseRfidInfo> models1 = meterBaseRfidInfoMapper.selectByMap(map1);
+        if(models1.size() >= 1) {
+            rm.setMessage("车号已重复,不允许再次新增,请确认!!");
             return rm;
         }
         MeterBaseRfidInfo meterBaseRfidInfo = meterBaseRfidInfoService.checkAndAdd(model);

+ 13 - 0
src/main/java/com/steerinfo/meterwork/meterworkcaractualbak/controller/MeterWorkCarActualBakController.java

@@ -1,7 +1,10 @@
 package com.steerinfo.meterwork.meterworkcaractualbak.controller;
 
+import com.jisco.dynamicweight.util.UserUtil;
 import com.steerinfo.baseinfo.meterbasecar.mapper.MeterBaseCarMapper;
 import com.steerinfo.baseinfo.meterbasecar.model.MeterBaseCar;
+import com.steerinfo.baseinfo.meterbaseoperationlog.mapper.MeterBaseOperationLogMapper;
+import com.steerinfo.baseinfo.meterbaseoperationlog.model.MeterBaseOperationLog;
 import com.steerinfo.meterwork.meterworkcaractualbak.mapper.MeterWorkCarActualBakMapper;
 import com.steerinfo.meterwork.meterworkcaractualbak.model.MeterWorkCarActualBak;
 import com.steerinfo.meterwork.meterworkcaractualbak.service.IMeterWorkCarActualBakService;
@@ -14,14 +17,18 @@ import com.steerinfo.framework.utils.collection.ListUtils;
 import com.steerinfo.meterwork.dto.CommonCombination;
 import com.steerinfo.meterwork.except.MarkerMetException;
 import com.steerinfo.meterwork.metertolimsold.mapper.MeterToLimsOldMapper;
+import com.steerinfo.meterwork.meterworkcaractualfirstbak.controller.MeterWorkCarActualFirstBakController;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.model.MeterWorkCarActualFirstBak;
 import com.steerinfo.util.CommonPage;
 import com.steerinfo.util.FieldsCollector;
+import com.steerinfo.util.PublicMethod;
 import com.steerinfo.util.StringUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
@@ -64,6 +71,12 @@ public class MeterWorkCarActualBakController extends BaseRESTfulController {
     @Resource
     MeterBaseMatterInfoOldMapper meterBaseMatterInfoOldMapper;
 
+    @Resource
+    MeterBaseOperationLogMapper meterBaseOperationLogMapper;
+
+    private static Logger logger	= LoggerFactory.getLogger( MeterWorkCarActualBakController.class );
+
+
     @Resource
     MeterToLimsOldMapper meterToLimsOldMapper;
 

+ 47 - 0
src/main/java/com/steerinfo/meterwork/meterworkcaractualbak/service/impl/MeterWorkCarActualBakServiceImpl.java

@@ -1,5 +1,8 @@
 package com.steerinfo.meterwork.meterworkcaractualbak.service.impl;
 
+import com.jisco.dynamicweight.util.UserUtil;
+import com.steerinfo.baseinfo.meterbaseoperationlog.mapper.MeterBaseOperationLogMapper;
+import com.steerinfo.baseinfo.meterbaseoperationlog.model.MeterBaseOperationLog;
 import com.steerinfo.meterwork.meterworkcaractual.mapper.MeterWorkCarActualMapper;
 import com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual;
 import com.steerinfo.meterwork.meterworkcaractualbak.mapper.MeterWorkCarActualBakMapper;
@@ -21,6 +24,7 @@ import com.steerinfo.meterwork.metertolimsold.mapper.MeterToLimsOldMapper;
 import com.steerinfo.meterwork.metertolimsold.model.MeterToLimsOld;
 import com.steerinfo.meterwork.meterworkcaractualfirst.mapper.MeterWorkCarActualFirstMapper;
 import com.steerinfo.meterwork.meterworkcaractualfirst.model.MeterWorkCarActualFirst;
+import com.steerinfo.meterwork.meterworkcaractualfirstbak.controller.MeterWorkCarActualFirstBakController;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.mapper.MeterWorkCarActualFirstBakMapper;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.model.MeterWorkCarActualFirstBak;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.service.IMeterWorkCarActualFirstBakService;
@@ -39,6 +43,8 @@ import com.steerinfo.util.CommonPage;
 import com.steerinfo.util.FieldsCollector;
 import com.steerinfo.util.PublicMethod;
 import com.steerinfo.util.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -119,6 +125,11 @@ public class MeterWorkCarActualBakServiceImpl extends BaseServiceImpl<MeterWorkC
     @Resource
     private MeterWorkCarActualFirstMapper meterWorkCarActualFirstMapper;
 
+    @Resource
+    private MeterBaseOperationLogMapper meterBaseOperationLogMapper;
+
+    private static Logger logger	= LoggerFactory.getLogger( MeterWorkCarActualFirstBakController.class );
+
     @Override
     protected IBaseMapper<MeterWorkCarActualBak, String> getMapper() {
         return meterWorkCarActualBakMapper;
@@ -2431,6 +2442,24 @@ public class MeterWorkCarActualBakServiceImpl extends BaseServiceImpl<MeterWorkC
 
                 meterWorkCarActualMapper.insert(actual);
 
+                try {
+                    //新增日志
+                    MeterBaseOperationLog logModel = new MeterBaseOperationLog();
+                    logModel.setId(PublicMethod.IdCreate(2));
+                    logModel.setOperationCarnNo(actual.getCarNo());
+                    logModel.setCreateManNo(UserUtil.getCurrentUserId());
+                    logModel.setCreateManName(UserUtil.getCurrentUserName());
+                    logModel.setCreateTime(new Date());
+                    logModel.setOperationPage("web端-汽车衡净重数据维护");
+                    logModel.setOperationFunction("新增");
+                    logModel.setOperationId(actual.getActualNo());
+                    logModel.setOperationPredictionNo(actual.getPredictionNo());
+                    meterBaseOperationLogMapper.insertSelective(logModel);
+                }catch (Exception e){
+                    logger.error("web端-汽车衡净重数据维护日志新增失败");
+                    e.printStackTrace();
+                }
+
                 //同时将两个一次也复制一下
                 MeterWorkCarActualFirstBak firstBak1 = meterWorkCarActualFirstBakMapper.selectByPrimaryKey(meterWorkCarActualBak.getActualFirst1No());
                 MeterWorkCarActualFirstBak firstBak2 = meterWorkCarActualFirstBakMapper.selectByPrimaryKey(meterWorkCarActualBak.getActualFirst2No());
@@ -2507,6 +2536,24 @@ public class MeterWorkCarActualBakServiceImpl extends BaseServiceImpl<MeterWorkC
 
                 meterWorkCarActualMapper.insert(actual);
 
+                try {
+                    //新增日志
+                    MeterBaseOperationLog logModel = new MeterBaseOperationLog();
+                    logModel.setId(PublicMethod.IdCreate(2));
+                    logModel.setOperationCarnNo(actual.getCarNo());
+                    logModel.setCreateManNo(UserUtil.getCurrentUserId());
+                    logModel.setCreateManName(UserUtil.getCurrentUserName());
+                    logModel.setCreateTime(new Date());
+                    logModel.setOperationPage("web端-汽车衡净重数据维护");
+                    logModel.setOperationFunction("新增");
+                    logModel.setOperationId(actual.getActualNo());
+                    logModel.setOperationPredictionNo(actual.getPredictionNo());
+                    meterBaseOperationLogMapper.insertSelective(logModel);
+                }catch (Exception e){
+                    logger.error("web端-汽车衡净重数据维护日志新增失败");
+                    e.printStackTrace();
+                }
+
                 //同时将两个一次也复制一下
                 MeterWorkCarActualFirstBak firstBak1 = meterWorkCarActualFirstBakMapper.selectByPrimaryKey(meterWorkCarActualBak.getActualFirst1No());
                 MeterWorkCarActualFirstBak firstBak2 = meterWorkCarActualFirstBakMapper.selectByPrimaryKey(meterWorkCarActualBak.getActualFirst2No());

+ 41 - 0
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/controller/MeterWorkCarActualFirstController.java

@@ -1494,4 +1494,45 @@ public class MeterWorkCarActualFirstController extends BaseRESTfulController {
         }
         return rm;
     }
+
+    //=====================================eason add 2023-04-10针对单机计量===============================
+    @ApiOperation(value = "新增数据", notes = "根据MeterWorkCarActualFirst对象创建")
+    @ApiImplicitParam(name = "meterWorkCarActualFirst", value = "详细实体meterWorkCarActualFirst", required = true, dataType = "MeterWorkCarActualFirst")
+    @PostMapping(value = "/addDj")
+    public RESTfulResult addDj(@RequestBody CommonCombination<MeterWorkCarActualFirst, MeterMonitorNote, MeterWorkCarActual, MeterMonitorNote> com) {
+        RESTfulResult rm = failed();
+        try {
+            MeterMonitorNote note = com.getTwo();
+            MeterWorkCarActualFirst first = com.getOne();
+            RESTfulResult res = meterWorkCarActualFirstService.addDj(first, note);
+            return res;
+        } catch (MarkerMetException e) {
+            e.printStackTrace();
+            rm.setMessage(e.getMessage());
+        } catch (Exception e) {
+            e.printStackTrace();
+            rm.setMessage("操作异常,请确认!");
+        } finally {
+
+        }
+        return rm;
+    }
+
+
+    @ApiOperation(value = "新增数据", notes = "根据MeterWorkCarActualFirst对象创建")
+    @ApiImplicitParam(name = "meterWorkCarActualFirst", value = "详细实体meterWorkCarActualFirst", required = true, dataType = "MeterWorkCarActualFirst")
+    @PostMapping(value = "/doAddNetDj")
+    public RESTfulResult doAddNetDj(@RequestBody CommonCombination<MeterWorkCarActualFirst, MeterWorkCarActual, MeterWorkPreLink, MeterMonitorNote> com) {
+        try {
+            RESTfulResult rm = meterWorkCarActualFirstService.doAddNetDj(com.getOne(), com.getTwo(), com.getSOne(), com.getFour());
+            if(!rm.isSucceed()){
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+            return rm;
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return failed(null, "操作异常,请确认!");
+        }
+    }
 }

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

@@ -160,4 +160,7 @@ public interface IMeterWorkCarActualFirstService extends IBaseService<MeterWorkC
     RESTfulResult localRecoveryOrAbolishByFirstNo(MeterWorkCarActualFirst firstModel);
     RESTfulResult localMatch(String actualFirstNo, String predictionNo, String updateManNo, String updateManName);
     int localRemove(List<MeterWorkCarActualFirst> models);
+
+    RESTfulResult addDj(MeterWorkCarActualFirst first, MeterMonitorNote note) throws Exception;
+    RESTfulResult doAddNetDj(MeterWorkCarActualFirst secondDb, MeterWorkCarActual netDb, String saveTare,MeterMonitorNote note) throws Exception;
 }

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

@@ -7669,5 +7669,214 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
             throw e;
         }
     }
+
+    //===========================eason add 2023-04-10 针对单机计量=================================
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public RESTfulResult addDj(MeterWorkCarActualFirst model, MeterMonitorNote note) throws Exception {
+        RESTfulResult rm = new RESTfulResult();
+        rm.setFailed();
+        try {
+            ckeck1(model);
+            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);
+
+            if(StringUtils.isNotEmpty(model.getPredictionNo())){
+                PreTrackScale pre = new PreTrackScale();
+                pre.setPredictionNo(model.getPredictionNo());
+                pre.setLineDesc("0");
+                preTrackScaleMapper.updateByPrimaryKeySelective(pre);
+            }
+
+            //6、存储图片
+            //SaveImg(model);
+
+            //7、修改计量监控
+            //updateMonitor(model.getBaseSpotNo());
+
+            //8、修改监控的计量作业编号
+            //updateMonitorOver(model.getActualFirstNo(), model.getBaseSpotNo());
+
+            //信息加密
+            String str = model.getActualFirstNo() + "," + model.getMeterWeight() + "," + "1";
+            String enStr = encryption(str);
+
+            //保存日志
+            saveNote(note);
+
+            //当存储一次数据或者结净时,将本车辆的预处理重量改为已使用
+            updatePreWeight(model.getCarNo());
+            if(StringUtils.isEmpty(model.getValueFlag())){
+                model.setValueFlag("1");
+            }
+            if(StringUtils.isNotEmpty(model.getPredictionNo())){
+                model.setIsPreScale("1");
+            }
+            model.setCreateTime(new Date());
+            int num = meterWorkCarActualFirstMapper.insertSelective(model);
+            rm.setSucceed();
+            rm.setCode("200");
+            rm.setData(model.getActualFirstNo());
+            rm.setMessage(enStr);
+            return rm;
+        } catch (MarkerMetException e) {
+            throw e;
+        }
+    }
+
+
+    @Override
+    @Transactional(value = "tm", rollbackFor = Exception.class)
+    public RESTfulResult doAddNetDj(MeterWorkCarActualFirst secondDb, MeterWorkCarActual netDb, String saveTare, MeterMonitorNote note) throws Exception {
+        RESTfulResult rm = new RESTfulResult();
+        rm.setFailed();
+        rm.setCode("500");
+        try{
+            //1、存储当前计量的数据
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
+            String no = PublicMethod.IdCreate(3);
+            secondDb.setActualFirstNo(no);
+
+            secondDb.setValueFlag("2");//结净
+            secondDb.setCreateTime(new Date());
+            meterWorkCarActualFirstMapper.insertSelective(secondDb);
+
+            //修改一次计量数据为结净
+            MeterWorkCarActualFirst firstUpdate = new MeterWorkCarActualFirst();
+            //2、存储结净数据
+            if (secondDb.getMeterWeight().equals(netDb.getTareWeight())) {
+                //二次重量如果跟皮重一样
+                netDb.setActualFirst2No(secondDb.getActualFirstNo());
+                netDb.setTareTime(secondDb.getCreateTime());
+                netDb.setBaseSpot2No(secondDb.getBaseSpotNo());
+                netDb.setBaseSpot2Name(secondDb.getBaseSpotName());
+                MeterWorkCarActualFirst modelTemp = meterWorkCarActualFirstMapper.selectByPrimaryKey(netDb.getActualFirst1No());
+                if(modelTemp != null) {
+                    netDb.setBaseSpot1No(modelTemp.getBaseSpotNo());
+                    netDb.setBaseSpot1Name(modelTemp.getBaseSpotName());
+                }
+                firstUpdate.setActualFirstNo(netDb.getActualFirst1No());
+                firstUpdate.setWeightType("0");
+            } else {
+                netDb.setActualFirst1No(secondDb.getActualFirstNo());
+                netDb.setGrossTime(secondDb.getCreateTime());
+                netDb.setBaseSpot1No(secondDb.getBaseSpotNo());
+                netDb.setBaseSpot1Name(secondDb.getBaseSpotName());
+                MeterWorkCarActualFirst modelTemp = meterWorkCarActualFirstMapper.selectByPrimaryKey(netDb.getActualFirst2No());
+                if(modelTemp != null) {
+                    netDb.setBaseSpot2No(modelTemp.getBaseSpotNo());
+                    netDb.setBaseSpot2Name(modelTemp.getBaseSpotName());
+                }
+                firstUpdate.setActualFirstNo(netDb.getActualFirst2No());
+                firstUpdate.setWeightType("1");
+            }
+
+            //3、修改第一次存储的计量数据状态为结净
+            if (firstUpdate.getActualFirstNo() != null) {
+                firstUpdate.setValueFlag("2");
+                meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(firstUpdate);
+            }
+
+            //判断结净数据是否匹配委托
+            if (StringUtils.isNotEmpty(netDb.getPredictionNo())) {
+                MeterWorkCarActualFirst meca1 = meterWorkCarActualFirstMapper.selectAndMatch(netDb.getActualFirst1No(), netDb.getPredictionNo());
+                meca1.setIsPreScale("1");
+                MeterWorkCarActualFirst meca2 = meterWorkCarActualFirstMapper.selectAndMatch(netDb.getActualFirst2No(), netDb.getPredictionNo());
+                meca2.setIsPreScale("1");
+                meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(meca1);
+                meterWorkCarActualFirstMapper.updateByPrimaryKeySelective(meca2);
+
+                PreTrackScale preTrackScale = new PreTrackScale();
+                preTrackScale.setPredictionNo(netDb.getPredictionNo());
+                preTrackScale.setValueFlag("2");
+                preTrackScale.setUploadFlag("1");
+                preTrackScale.setLineDesc("0");
+                preTrackScale.setMeasureStation(netDb.getNetSpot3No());
+                preTrackScale.setMeasureStationName(netDb.getNetSpot3Name());
+                preTrackScaleMapper.updateByPrimaryKeySelective(preTrackScale);
+                PreTrackScale pres = preTrackScaleMapper.selectBypredictionNo(netDb.getPredictionNo());
+                if(pres != null && pres.getReceiverRemark() != null && (pres.getReceiverRemark().equals("H01") || pres.getReceiverRemark().equals("H02"))){
+                    netDb.setPredictionType("7");
+                }
+            }
+
+            String no1 = PublicMethod.IdCreate(3);
+            netDb.setActualNo(no1);
+            if (netDb != null && netDb.getNetWeight() != null) {
+                //2021年3月7日 净重保留两位小数;
+                BigDecimal net;
+                net = new BigDecimal(String.valueOf(netDb.getNetWeight())).setScale(2, BigDecimal.ROUND_HALF_UP);
+                netDb.setNetWeight(net);
+            }
+            netDb.setUploadFlag("1");
+            netDb.setCreateTime(new Date());
+            if(netDb.getGrossTime().compareTo(netDb.getTareTime()) >= 0) {
+                netDb.setNetSpot3No(netDb.getBaseSpot1No());
+                netDb.setNetSpot3Name(netDb.getBaseSpot1Name());
+                netDb.setNetManNo(netDb.getGrossManNo());
+                netDb.setNetManName(netDb.getGrossManName());
+                netDb.setNetTime(netDb.getGrossTime());
+                netDb.setCreateTime(netDb.getGrossTime());
+                netDb.setCreateManName(netDb.getGrossManName());
+            }else {
+                netDb.setNetSpot3No(netDb.getBaseSpot2No());
+                netDb.setNetSpot3Name(netDb.getBaseSpot2Name());
+                netDb.setNetManNo(netDb.getTareManNo());
+                netDb.setNetManName(netDb.getTareManName());
+                netDb.setNetTime(netDb.getTareTime());
+                netDb.setCreateTime(netDb.getTareTime());
+                netDb.setCreateManName(netDb.getTareManName());
+            }
+            meterWorkCarActualMapper.insert(netDb);
+
+            //4、如果为期限皮重,则将期限皮重转化为一条皮重计量数据保存
+            //**************实际上下面的这坨代码没啥用所以删除了**************
+            //*******************************end*****************************************
+
+            //4、存储历史皮重及历史皮重明细信息
+            if ("1".equals(saveTare)) {
+                MeterWorkCarActualFirst oci = new MeterWorkCarActualFirst();
+                oci.setCarNo(netDb.getCarNo());
+                oci.setCreateTime(netDb.getTareTime());
+                oci.setBaseSpotNo(netDb.getBaseSpot2No());
+                oci.setBaseSpotName(netDb.getBaseSpot2Name());
+                oci.setMeterWeight(netDb.getTareWeight());
+                oci.setActualFirstNo(netDb.getActualFirst2No());
+                doSaveHisTare(oci);
+            }
+
+
+
+            //保存日志
+            saveNote(note);
+            //当存储一次数据或者结净时,将本车辆的预处理重量改为已使用
+            updatePreWeight(secondDb.getCarNo());
+
+            //6、修改计量监控
+            //updateMonitor(secondDb.getBaseSpotNo());
+            //updateMonitorOver(secondDb.getActualFirstNo(), secondDb.getBaseSpotNo());
+
+            //重量类型为毛重则调用接口为
+            String flag = "";
+            //补充附加重量的数据
+            if (StringUtils.isNotEmpty(secondDb.getAddWgtPk())) {
+                insertAddWgtNo(secondDb.getActualFirstNo(), secondDb.getAddWgtPk(), secondDb.getCreateManNo(), secondDb.getCreateManName());
+            }
+            rm.setSucceed();
+            rm.setCode("200");
+            rm.setData(secondDb.getActualFirstNo());
+            rm.setMessage(flag);
+            return rm;
+        }catch (Exception e){
+            e.printStackTrace();
+            rm.setFailed();
+            rm.setMessage(e.getMessage());
+            return rm;
+        }
+    }
 }
 

+ 27 - 1
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirstbak/controller/MeterWorkCarActualFirstBakController.java

@@ -1,8 +1,12 @@
 package com.steerinfo.meterwork.meterworkcaractualfirstbak.controller;
 
 import com.alibaba.fastjson.JSONObject;
+import com.jisco.dynamicweight.dynamicbasecamera.factories.ConverterFactories;
+import com.jisco.dynamicweight.util.UserUtil;
 import com.steerinfo.baseinfo.meterbasecar.mapper.MeterBaseCarMapper;
 import com.steerinfo.baseinfo.meterbasecar.model.MeterBaseCar;
+import com.steerinfo.baseinfo.meterbaseoperationlog.mapper.MeterBaseOperationLogMapper;
+import com.steerinfo.baseinfo.meterbaseoperationlog.model.MeterBaseOperationLog;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.mapper.MeterWorkCarActualFirstBakMapper;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.model.MeterWorkCarActualFirstBak;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.service.IMeterWorkCarActualFirstBakService;
@@ -25,6 +29,8 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -54,6 +60,8 @@ import java.util.*;
 @Api(value = "/${api.version}/meterworkcaractualfirstbaks", tags = "计量汽车衡一次数据 - MeterWorkCarActualFirstBakController")
 public class MeterWorkCarActualFirstBakController extends BaseRESTfulController {
 
+    private static Logger logger	= LoggerFactory.getLogger( MeterWorkCarActualFirstBakController.class );
+
     @Resource
     MeterWorkCarActualFirstBakMapper meterWorkCarActualFirstBakMapper;
 
@@ -66,6 +74,9 @@ public class MeterWorkCarActualFirstBakController extends BaseRESTfulController
     @Resource
     MeterBaseCarMapper meterBaseCarMapper;
 
+    @Resource
+    MeterBaseOperationLogMapper meterBaseOperationLogMapper;
+
     @ApiOperation(value = "获取列表", notes = "分页查询")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
@@ -237,7 +248,6 @@ public class MeterWorkCarActualFirstBakController extends BaseRESTfulController
             }else {
                 throw new MarkerMetException(500, "计量点配置表未找到相应的计量点!!");
             }
-
             MeterWorkCarActualFirstBak meterWorkCarActualFirstBak = meterWorkCarActualFirstBakService.add(model);
             return success(meterWorkCarActualFirstBak);
         } catch (Exception ex) {
@@ -1376,4 +1386,20 @@ public class MeterWorkCarActualFirstBakController extends BaseRESTfulController
     }
 
 
+    @ApiOperation(value = "单机计量数据上传")
+    @Transactional
+    @PostMapping(value = "/addFirstEmergencyList", produces = "application/json;charset=UTF-8")
+    public RESTfulResult addFirstEmergencyList(@RequestBody List<MeterWorkCarActualFirstBak> model) {
+        try {
+            RESTfulResult rm = meterWorkCarActualFirstBakService.addFirstEmergencyList(model);
+            if(!rm.isSucceed()) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+            return rm;
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return failed(null, "操作异常,请确认!");
+        }
+    }
 }

+ 2 - 0
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirstbak/service/IMeterWorkCarActualFirstBakService.java

@@ -152,4 +152,6 @@ public interface IMeterWorkCarActualFirstBakService extends IBaseService<MeterWo
 
     //外进外发车辆复制到一次表
     void wwCopyToFirst(List<String> ids,String carNo) throws Exception;
+
+    RESTfulResult addFirstEmergencyList(List<MeterWorkCarActualFirstBak> model) throws Exception;
 }

+ 80 - 0
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirstbak/service/impl/MeterWorkCarActualFirstBakServiceImpl.java

@@ -1,10 +1,15 @@
 package com.steerinfo.meterwork.meterworkcaractualfirstbak.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.jisco.dynamicweight.util.UserUtil;
+import com.steerinfo.baseinfo.meterbaseoperationlog.mapper.MeterBaseOperationLogMapper;
+import com.steerinfo.baseinfo.meterbaseoperationlog.model.MeterBaseOperationLog;
+import com.steerinfo.meterwork.constants.DjPbModel;
 import com.steerinfo.meterwork.meterworkcaractualbak.mapper.MeterWorkCarActualBakMapper;
 import com.steerinfo.meterwork.meterworkcaractualbak.model.MeterWorkCarActualBak;
 import com.steerinfo.meterwork.meterworkcaractualfirst.mapper.MeterWorkCarActualFirstMapper;
 import com.steerinfo.meterwork.meterworkcaractualfirst.model.MeterWorkCarActualFirst;
+import com.steerinfo.meterwork.meterworkcaractualfirstbak.controller.MeterWorkCarActualFirstBakController;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.mapper.MeterWorkCarActualFirstBakMapper;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.model.MeterWorkCarActualFirstBak;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.service.IMeterWorkCarActualFirstBakService;
@@ -59,6 +64,8 @@ import com.steerinfo.pretrack.pretrackscale.mapper.PreTrackScaleMapper;
 import com.steerinfo.pretrack.pretrackscale.model.PreTrackScale;
 import com.steerinfo.util.*;
 import org.apache.http.util.TextUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -165,6 +172,11 @@ public class MeterWorkCarActualFirstBakServiceImpl extends BaseServiceImpl<Meter
     @Resource
     private MeterWorkCarActualFirstMapper meterWorkCarActualFirstMapper;
 
+    @Resource
+    private MeterBaseOperationLogMapper meterBaseOperationLogMapper;
+
+    private static Logger logger	= LoggerFactory.getLogger( MeterWorkCarActualFirstBakServiceImpl.class );
+
     @Override
     protected IBaseMapper<MeterWorkCarActualFirstBak, String> getMapper() {
         return meterWorkCarActualFirstBakMapper;
@@ -5718,6 +5730,24 @@ public class MeterWorkCarActualFirstBakServiceImpl extends BaseServiceImpl<Meter
                 }
                 meterWorkCarActualFirstMapper.insert(first);
 
+                try {
+                    //新增日志
+                    MeterBaseOperationLog logModel = new MeterBaseOperationLog();
+                    logModel.setId(PublicMethod.IdCreate(2));
+                    logModel.setOperationCarnNo(first.getCarNo());
+                    logModel.setCreateManNo(UserUtil.getCurrentUserId());
+                    logModel.setCreateManName(UserUtil.getCurrentUserName());
+                    logModel.setCreateTime(new Date());
+                    logModel.setOperationPage("web端-汽车衡一次数据维护");
+                    logModel.setOperationFunction("新增");
+                    logModel.setOperationId(first.getActualFirstNo());
+                    logModel.setOperationPredictionNo(first.getPredictionNo());
+                    meterBaseOperationLogMapper.insertSelective(logModel);
+                }catch (Exception e){
+                    logger.error("web端-汽车衡一次数据维护日志新增失败");
+                    e.printStackTrace();
+                }
+
                 meterWorkCarActualFirstBak.setValueFlag("0");
                 meterWorkCarActualFirstBakMapper.updateByPrimaryKeySelective(meterWorkCarActualFirstBak);
             }else{
@@ -5765,6 +5795,25 @@ public class MeterWorkCarActualFirstBakServiceImpl extends BaseServiceImpl<Meter
                 }
                 meterWorkCarActualFirstMapper.insert(first);
 
+
+                try {
+                    //新增日志
+                    MeterBaseOperationLog logModel = new MeterBaseOperationLog();
+                    logModel.setId(PublicMethod.IdCreate(2));
+                    logModel.setOperationCarnNo(first.getCarNo());
+                    logModel.setCreateManNo(UserUtil.getCurrentUserId());
+                    logModel.setCreateManName(UserUtil.getCurrentUserName());
+                    logModel.setCreateTime(new Date());
+                    logModel.setOperationPage("web端-汽车衡一次数据维护");
+                    logModel.setOperationFunction("新增");
+                    logModel.setOperationId(first.getActualFirstNo());
+                    logModel.setOperationPredictionNo(first.getPredictionNo());
+                    meterBaseOperationLogMapper.insertSelective(logModel);
+                }catch (Exception e){
+                    logger.error("web端-汽车衡一次数据维护日志新增失败");
+                    e.printStackTrace();
+                }
+
                 meterWorkCarActualFirstBak.setValueFlag("0");
                 meterWorkCarActualFirstBakMapper.updateByPrimaryKeySelective(meterWorkCarActualFirstBak);
             }else{
@@ -5831,5 +5880,36 @@ public class MeterWorkCarActualFirstBakServiceImpl extends BaseServiceImpl<Meter
         }
         return "1";
     }
+
+
+    @Override
+    public RESTfulResult addFirstEmergencyList(List<MeterWorkCarActualFirstBak> model) throws Exception {
+        List<DjPbModel> lst=new ArrayList<>();
+        RESTfulResult rm = new RESTfulResult();
+        rm.setCode("200");
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        String time = sdf.format(new Date());
+        int num = 0;
+
+        for(MeterWorkCarActualFirstBak fbk:model){
+            String str=fbk.getActualFirstNo();
+            String s = time+(String.format("%03d",++num));
+
+            DjPbModel dm=new DjPbModel();
+            dm.setKey(str);
+            dm.setValue(s);
+            fbk.setActualFirstNo(s);
+
+            try {
+                meterWorkCarActualFirstBakMapper.insertSelective(fbk);
+                lst.add(dm);
+            }catch (Exception e){ }
+        }
+
+        rm.setData(lst);
+        rm.setMessage("成功");
+        return rm;
+    }
 }
 

+ 4 - 4
src/main/java/com/steerinfo/meterwork/meterworkcheckfirstactual/mapper/MeterWorkCheckFirstActualMapper.xml

@@ -1857,8 +1857,8 @@
     <if test="typeNo != null and typeNo != ''">
       and typeNo LIKE '%${typeNo}%'
     </if>
-    <if test="carNo != null and carNo != ''">
-      and carNo LIKE '%${carNo}%'
+    <if test="railwayNo != null and railwayNo != ''">
+      and railwayNo LIKE '%${railwayNo}%'
     </if>
     <if test="valueFlag != null and valueFlag != ''">
       and valueFlag = #{valueFlag}
@@ -2252,8 +2252,8 @@
     <if test="typeNo != null and typeNo != ''">
       and typeNo in ('001019002','001019004')
     </if>
-    <if test="carNo != null and carNo != ''">
-      and carNo LIKE '%${carNo}%'
+    <if test="railwayNo != null and railwayNo != ''">
+      and railwayNo LIKE '%${railwayNo}%'
     </if>
     <if test="valueFlag != null and valueFlag != ''">
       and valueFlag = #{valueFlag}

+ 59 - 0
src/main/java/com/steerinfo/meterwork/meterworkdatacount/mapper/MeterWorkDataCountMapper.xml

@@ -501,6 +501,12 @@
         <if test="meterTypeNo != null and meterTypeNo != ''">
             and  A.meter_type_no = #{meterTypeNo}
         </if>
+        <if test="baseSpotName != null and baseSpotName.size() != 0">
+            and A.base_spot_name in
+            <foreach collection="baseSpotName" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
      order by A.create_time desc
     </select>
 
@@ -604,6 +610,33 @@
         union
         (
         select
+        B.base_spot_name base_spot_name,
+        A.operation_carn_no carNo,
+        A.operation_id actualFirstNo,
+        A.operation_prediction_no predictionNo,
+        A.operation_function operationFunction,
+        A.operation_page operationPage,
+        case when B.value_flag != '0' then '继续'
+        else '停止' end valueFlag,
+        A.Create_Man_No createManNo,
+        A.create_man_name createManName,
+        A.create_time createTime,
+        case when B.meter_mode = '1' then '远程计量'
+        when B.meter_mode = '2' then '智能计量'
+        when B.meter_mode = '3' then '手工计量'
+        else null end meterMode,
+        A.operation_before_fix beforeFix,
+        A.operation_after_fix afterFix,
+        B.note note
+        from meter_base_operation_log A
+        left join meter_work_railway_act_first B
+        on A.operation_id = B.actual_first_no
+        where 1 = 1
+        and A.operation_page like '%吊钩秤一次数据维护%'
+        )
+        union
+        (
+        select
         B.net_spot3_name base_spot_name,
         A.operation_carn_no carNo,
         A.operation_id actualFirstNo,
@@ -628,6 +661,32 @@
         where A.operation_page like '%轨道衡净重数据维护%'
         )
         union
+        (
+        select
+        B.net_spot3_name base_spot_name,
+        A.operation_carn_no carNo,
+        A.operation_id actualFirstNo,
+        A.operation_prediction_no predictionNo,
+        A.operation_function operationFunction,
+        A.operation_page operationPage,
+        case when B.value_flag != '0' then '继续'
+        else '取消' end valueFlag,
+        A.Create_Man_No createManNo,
+        A.create_man_name createManName,
+        A.create_time createTime,
+        case when B.net_mode = '1' then '远程计量'
+        when B.net_mode = '2' then '智能计量'
+        when B.net_mode = '3' then '手工计量'
+        else null end meterMode,
+        A.operation_before_fix beforeFix,
+        A.operation_after_fix afterFix,
+        B.note note
+        from meter_base_operation_log A
+        left join meter_work_railway_actual B
+        on A.operation_id = B.actual_no
+        where A.operation_page like '%吊钩秤净重数据维护%'
+        )
+        union
         (
             select
             B.net_spot3_name base_spot_name,

+ 5 - 2
src/main/java/com/steerinfo/meterwork/meterworkimage/service/impl/MeterWorkImageServiceImpl.java

@@ -129,8 +129,11 @@ public class MeterWorkImageServiceImpl extends BaseServiceImpl<MeterWorkImage, S
             }
             MeterWorkImage mwi = meterWorkImageMapper.selectByPrimaryKey(actualFirstNo);
             if(mwi==null) {
-                rm.setMessage("该计量作业编号不存在图片!!");
-                return rm;
+                mwi = meterWorkImageMapper.selectByPrimaryKey(actualFirstNo+"bak");
+                if(mwi==null) {
+                    rm.setMessage("该计量作业编号不存在图片!!");
+                    return rm;
+                }
             }
             ArrayList<String> urls=new ArrayList<>();
             if (mwi.getImageFile1() != null && !mwi.getImageFile1().equals("")) {

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

@@ -1137,6 +1137,7 @@ throw new MarkerMetException(500, "操作异常!!");
             String tareWeight = parmas.get("tareWeight") == null ? "" : parmas.get("tareWeight").toString();
             String msg = meterWorkRailwayActFirstService.fixedTare(actualNo, tareWeight, predictionNo);
             if (!msg.equals("")){
+                rm.setMessage(msg);
                 return rm;
             }else {
                 msg = "操作成功";

+ 11 - 4
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/mapper/MeterWorkRailwayActFirstMapper.xml

@@ -4081,7 +4081,9 @@
     A.value_flag vlaue_Flag,
     A.is_pre_sacale is_Pre_Sacale,
     D.meter_weight ai_weight,
-    to_char(round(C.meter_weight/1000,3),'FM9999999999999999.000') his_Tare_Weight,
+    to_char(round(C1.meter_weight/1000,3),'FM9999999999999999.000') his_Tare_Weight1,
+    to_char(round(C2.meter_weight/1000,3),'FM9999999999999999.000') his_Tare_Weight2,
+    to_char(round(C3.meter_weight/1000,3),'FM9999999999999999.000') his_Tare_Weight3,
     E.create_time tare_time,
     E.lc_no tare_lc_no,
     E.Actual_First_No tare_no,
@@ -4095,9 +4097,14 @@
     left join meter_base_railway_carriage_weight B
     on A.conveyance_type = B.Carriage_Code
     and B.value_flag = '1'
-    left join meter_base_railway_his_tare_data C
-    on A.railway_no = C.railway_no
-    and C.value_flag = '0'
+
+    left join meter_base_railway_his_tare_data C1
+    on A.railway_no = C1.railway_no and C1.Tare_Type = '1' and C1.value_flag = '0'
+    left join meter_base_railway_his_tare_data C2
+    on A.railway_no = C2.railway_no and C2.Tare_Type = '2' and C2.value_flag = '0'
+    left join meter_base_railway_his_tare_data C3
+    on A.railway_no = C3.railway_no and C3.Tare_Type = '3' and C3.value_flag = '0'
+
     left join meter_base_railway_aiweight D
     on A.railway_no = D.Railway_No
     and D.value_flag = '0'

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

@@ -90,6 +90,12 @@ public interface IMeterWorkRailwayActFirstService extends IBaseService<MeterWork
 
     String doAddWf(MeterWorkRailwayActFirst firstRail, MeterWorkRailwayActual netRail);
 
+    @Transactional(rollbackFor = Exception.class)
+    void doSaveTare(MeterWorkRailwayActFirst model);
+
+    @Transactional(rollbackFor = Exception.class)
+    void doSaveTare(MeterWorkRailwayActFirst model, String tareType);
+
     String doAddWfAct(PreRailwayScale preRailwayScale, MeterWorkRailwayActFirst First, MeterBaseRailwayWeight baseRailwayWeight);
 
     PageList<MeterWorkRailwayActFirst> doQueryWf(HashMap parmas, Integer pageNum, Integer pageSize);

+ 171 - 14
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/service/impl/MeterWorkRailwayActFirstServiceImpl.java

@@ -1381,6 +1381,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     scales.get(i).setPredictionType("5");
                 }
 
+                List<MeterWorkRailwayActFirst> addFirstsTare = new ArrayList<>();
                 //插入一次添加数据
                 for (int i = 0; i < addFirsts.size(); i++) {
 //                    String actualFirstNo = sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(afl);
@@ -1397,6 +1398,31 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     addFirsts.get(i).setPredictionType("5");
                     addFirsts.get(i).setUpdateManName("双委托更新");
                     meterWorkRailwayActFirstMapper.insertSelective(addFirsts.get(i));
+                    MeterWorkRailwayActFirst tareFirst = new MeterWorkRailwayActFirst();
+                    BeanUtils.copyProperties(addFirsts.get(i),tareFirst);
+                    addFirstsTare.add(tareFirst);
+                }
+                //新增标识皮重数据
+
+
+                for (int i = 0; i < addFirstsTare.size(); i++) {
+//                    String actualFirstNo = sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(afl);
+//                    addFirsts.get(i).setActualFirstNo(actualFirstNo);
+//                    String actualFirstNo = PublicMethod.IdCreate(3);
+//                    addFirstsTare.get(i).setActualFirstNo(actualFirstNo);
+                    addFirstsTare.get(i).setWeightType("4");
+                    addFirstsTare.get(i).setMeterWeight(addFirstsTare.get(i).getRailwayFactoryWeight());
+                    addFirstsTare.get(i).setValueFlag(DbConstants.NET);
+                    addFirstsTare.get(i).setUpdateManNo("system");
+                    addFirstsTare.get(i).setUpdateManName("双委托更新");
+                    addFirstsTare.get(i).setUpdateTime(new Date());
+                    addFirstsTare.get(i).setCreateManNo(userId);
+                    addFirstsTare.get(i).setCreateManName(userName);
+                    addFirstsTare.get(i).setCreateTime(new Date());
+                    addFirstsTare.get(i).setPredictionType("5");
+                    addFirstsTare.get(i).setUpdateManName("双委托更新");
+                    //meterWorkRailwayActFirstMapper.insertSelective(addFirstsTare.get(i));
+                    doSaveTare(addFirstsTare.get(i),"2");
                 }
                 meterWorkRailwayActFirstMapper.batchUpdate(addFirsts);
 
@@ -1564,6 +1590,8 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                             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());
+                            addFirsts.get(i).setRailwayTypeNo("001019001");
+                            addFirsts.get(i).setRailwayTypeName("静态轨道衡");
                             meterWorkRailwayActFirstMapper.insertSelective(addFirsts.get(i));
 
                             //添加第二次皮重数据库
@@ -1605,14 +1633,15 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                             MeterWorkRailwayActual actualRow = new MeterWorkRailwayActual();
                             if(selectedFirsts.get(i).getMeterWeight().compareTo(addFirsts.get(i).getMeterWeight()) > 0) {
                                 doNet(actualRow, selectedFirsts.get(i), addFirsts.get(i), selectedFirsts.get(i).getPredictionNo());
-                                addFirsts.get(i).setWeightType("0");
-                                selectedFirsts.get(i).setWeightType("1");
-                                doSaveTare(selectedFirsts.get(i));
-                            }else {
-                                doNet(actualRow, addFirsts.get(i), selectedFirsts.get(i),  addFirsts.get(i).getPredictionNo());
+
                                 addFirsts.get(i).setWeightType("1");
                                 selectedFirsts.get(i).setWeightType("0");
                                 doSaveTare(addFirsts.get(i));
+                            }else {
+                                doNet(actualRow, addFirsts.get(i), selectedFirsts.get(i),  addFirsts.get(i).getPredictionNo());
+                                addFirsts.get(i).setWeightType("0");
+                                selectedFirsts.get(i).setWeightType("1");
+                                doSaveTare(selectedFirsts.get(i));
                             }
 //                    String no = meterWorkRailwayActualMapper.getNewID(sdf.format(new Date()));
 //                    actualRow.setActualNo(sdf.format(new Date()) + no);
@@ -2219,6 +2248,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         first02.setUpdateManNo("system");
                         first02.setUpdateManName("智能计量混装一次复制");
                         firsts.add(model01);
+                        doSaveTare(model02);
                     }
 //                    String firstNo = sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(afl);
 //                    first02.setActualFirstNo(firstNo);
@@ -2234,6 +2264,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         firsts.add(model01);
                     }else {
                         firsts.add(model02);
+                        doSaveTare(model02);
                     }
                 }
                 actuals.add(actualRow);
@@ -2625,6 +2656,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             first2.setPredictionType("5");
             first2.setPredictionCombination(predictionNo1 + "," + predictionNo2);
             meterWorkRailwayActFirstMapper.updateByPrimaryKey(first2);
+            doSaveTare(first2);
             //添加第一次毛重数据库
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
             String afl = sdf.format(new Date());
@@ -2659,6 +2691,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             first4.setPredictionType("5");
             first4.setPredictionCombination(predictionNo1 + "," + predictionNo2);
             meterWorkRailwayActFirstMapper.insertSelective(first4);
+            doSaveTare(first4);
             //将委托中的编号和收发货单位和一次数据等数据拷贝进结净数据中
             MeterWorkRailwayActual mwca1 = meterWorkRailwayActualMapper.manualAddPre(actualNo1, actualNo2, predictionNo1);
             BeanUtils.copyProperties(mwca1, actualRow1);
@@ -2911,6 +2944,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             mwcaf02.setPredictionType("5");
             mwcaf02.setPredictionCombination(predictionNo1 + "," + predictionNo2);
             meterWorkRailwayActFirstMapper.insertSelective(mwcaf02);
+            doSaveTare(mwcaf02,"2");
 
             //添加第一次毛重数据库
             String grossNo1 = PublicMethod.IdCreate(3);
@@ -2946,7 +2980,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             mwcaf04.setPredictionType("5");
             mwcaf04.setPredictionCombination(predictionNo1 + "," + predictionNo2);
             meterWorkRailwayActFirstMapper.insertSelective(mwcaf04);
-
+            doSaveTare(mwcaf04,"2");
             //将委托中的编号和收发货单位和一次数据等数据拷贝进结净数据中
             MeterWorkRailwayActual mwca1 = meterWorkRailwayActualMapper.manualAddPre(actualNo1, tareNo1, predictionNo1);
             BeanUtils.copyProperties(mwca1, actualRow1);
@@ -3122,7 +3156,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     mwcaf2.getMeterWeight().compareTo(mwcaf4.getMeterWeight()) == 1) {
                 return "请根据一次数据从小到大的规则,依次选择三条一次数据!!";
             }
-            SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
+            SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
             String fromDate = simpleFormat.format(pts1.getTrustDateTime());
             String toDate = simpleFormat.format(pts2.getTrustDateTime());
             long from = simpleFormat.parse(fromDate).getTime();
@@ -3172,6 +3206,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             mwcaf1.setPredictionType("7");
             mwcaf1.setPredictionCombination(predictionNo1 + "," + predictionNo2);
             meterWorkRailwayActFirstMapper.updateByPrimaryKey(mwcaf1);
+            doSaveTare(mwcaf1);
             //更新第一次毛重数据
             mwcaf2.setValueFlag(DbConstants.NET);
             mwcaf2.setUpdateManNo(userId);
@@ -3386,7 +3421,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     mwcaf2.getMeterWeight().compareTo(mwcaf4.getMeterWeight()) == -1) {
                 return "请根据一次数据从大到小的规则,依次选择三条一次数据!!!!";
             }
-            SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
+            SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
             String fromDate = simpleFormat.format(pts1.getTrustDateTime());
             String toDate = simpleFormat.format(pts2.getTrustDateTime());
             long from = simpleFormat.parse(fromDate).getTime();
@@ -3477,6 +3512,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             mwcaf4.setPredictionType("6");
             mwcaf4.setPredictionCombination(predictionNo1 + "," + predictionNo2);
             meterWorkRailwayActFirstMapper.updateByPrimaryKey(mwcaf4);
+            doSaveTare(mwcaf4);
 
             //将委托中的编号和收发货单位和一次数据等数据拷贝进结净数据中
             MeterWorkRailwayActual mwca1 = meterWorkRailwayActualMapper.manualAddPre(actualNo1, actualNo2, predictionNo1);
@@ -3656,7 +3692,13 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 scaleNo = grossModel.getPredictionNo();
             }
         }
-        MeterWorkRailwayActFirst tareModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(actualNo);
+        if(Double.parseDouble(tareWeight)*1000>grossModel.getMeterWeight().intValue()){
+            return "输入的标识皮重不能大于毛重:"+grossModel.getMeterWeight().intValue()/1000.0+"吨";
+        }
+
+        MeterWorkRailwayActFirst tareModel = new MeterWorkRailwayActFirst();
+        BeanUtils.copyProperties(grossModel,tareModel);
+
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
         String afl = sdf.format(new Date());
 //        String firstNo = sdf.format(new Date()) + meterWorkRailwayActFirstMapper.getNewID(afl);
@@ -3668,7 +3710,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
         tareModel.setWeightType("4");
         tareModel.setCreateTime(new Date());
         int i = meterWorkRailwayActFirstMapper.insert(tareModel);
-
+        doSaveTare(tareModel,"2");
         if (i >= 1) {
             tareModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(tareModel.getActualFirstNo());
             MeterWorkRailwayActual actualRow = new MeterWorkRailwayActual();
@@ -5037,6 +5079,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
     }
 
     @Transactional(rollbackFor = Exception.class)
+    @Override
     public void doSaveTare(MeterWorkRailwayActFirst model) {
         //获取ID
         SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
@@ -5055,10 +5098,78 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             hisTareData.setMeterTime(model.getCreateTime());
             hisTareData.setMeterWeight(Math.round(model.getMeterWeight().doubleValue()));
             hisTareData.setUpWeight(tareOne.get(0).getMeterWeight());
+            hisTareData.setUpdateManName(model.getCreateManName());
+            hisTareData.setUpdateManNo(model.getCreateManNo());
+            hisTareData.setUpdateTime(model.getCreateTime());
+            hisTareData.setTareType("1");
+            //  (之前的重量*次数)/(次数+1)
+            double meterWeight = (tareOne.get(0).getAvgWeight() * tareOne.get(0).getMeterNum() + model.getMeterWeight().longValue()) / (tareOne.get(0).getMeterNum() + 1);
+            hisTareData.setAvgWeight(Math.round(meterWeight));//平均皮重
+            hisTareData.setMeterNum(tareOne.get(0).getMeterNum() + 1);
+            meterBaseRailwayHisTareDataMapper.updateByPrimaryKeySelective(hisTareData);
+        } else {     //已有历史皮重
+            //新增操作
+            String no = meterBaseRailwayHisTareDataMapper.getNewID(afl);
+            hisTareData.setDataNo(afl + no);
+            hisTareData.setBaseSpotNo(model.getBaseSpotNo());
+            hisTareData.setBaseSpotName(model.getBaseSpotName());
+            hisTareData.setMeterName(model.getMatterName());
+            hisTareData.setMeterTime(model.getCreateTime());
+            hisTareData.setMeterWeight(Math.round(model.getMeterWeight().doubleValue()));
+            hisTareData.setUpWeight(model.getMeterWeight().longValue()); //上次皮重
+            hisTareData.setAvgWeight(Math.round(model.getMeterWeight().doubleValue()));//平均皮重
+            hisTareData.setMeterNum(1l);
+            hisTareData.setCreateTime(model.getCreateTime());
+            hisTareData.setCreateManName(model.getCreateManName());
+            hisTareData.setCreateManNo(model.getCreateManNo());
+            hisTareData.setTareType("1");
+            meterBaseRailwayHisTareDataMapper.insert(hisTareData);
+        }
+        MeterBaseRailwayHisTareDetail mbhtd = new MeterBaseRailwayHisTareDetail();
+        String no = meterBaseRailwayHisTareDetailMapper.getNewID(afl);
+        mbhtd.setDetailNo(afl + no);
+        mbhtd.setActualFirstNo(model.getActualFirstNo());
+        mbhtd.setBaseSpotNo(model.getBaseSpotNo());
+        mbhtd.setBaseSpotName(model.getBaseSpotName());
+        mbhtd.setCarNo(model.getRailwayNo());
+        mbhtd.setMeterOrder("1");
+        mbhtd.setMeterTime(model.getCreateTime());
+        mbhtd.setMeterName(model.getCreateManName());
+        mbhtd.setMeterWeight(model.getMeterWeight().longValue());
+        mbhtd.setValueFlag("0");
+        meterBaseRailwayHisTareDetailMapper.insert(mbhtd);
+    }
+
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void doSaveTare(MeterWorkRailwayActFirst model, String tareType) {
+        //获取ID
+        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
+        String afl = formatter.format(model.getCreateTime());
+        //查找相应车辆有效的历史皮重信息
+        MeterBaseRailwayHisTareData hisTareData = new MeterBaseRailwayHisTareData();
+        hisTareData.setRailwayNo(model.getRailwayNo());
+        hisTareData.setValueFlag("0");
+        hisTareData.setTareType(tareType);
+        Map<String, Object> map = FieldsCollector.beanToMap(hisTareData);
+        List<MeterBaseRailwayHisTareData> tareOne = meterBaseRailwayHisTareDataMapper.selectByParameters(map);
+        if (tareOne.size() >= 1) {   //已有历史皮重
+            hisTareData.setDataNo(tareOne.get(0).getDataNo());
+            hisTareData.setBaseSpotNo(model.getBaseSpotNo());
+            hisTareData.setBaseSpotName(model.getBaseSpotName());
+            hisTareData.setMeterName(model.getMatterName());
+            hisTareData.setMeterTime(model.getCreateTime());
+            hisTareData.setMeterWeight(Math.round(model.getMeterWeight().doubleValue()));
+            hisTareData.setUpWeight(tareOne.get(0).getMeterWeight());
+            hisTareData.setUpdateManName(model.getCreateManName());
+            hisTareData.setUpdateManNo(model.getCreateManNo());
+            hisTareData.setUpdateTime(model.getCreateTime());
             //  (之前的重量*次数)/(次数+1)
             double meterWeight = (tareOne.get(0).getAvgWeight() * tareOne.get(0).getMeterNum() + model.getMeterWeight().longValue()) / (tareOne.get(0).getMeterNum() + 1);
             hisTareData.setAvgWeight(Math.round(meterWeight));//平均皮重
             hisTareData.setMeterNum(tareOne.get(0).getMeterNum() + 1);
+            hisTareData.setTareType(tareType);
             meterBaseRailwayHisTareDataMapper.updateByPrimaryKeySelective(hisTareData);
         } else {     //已有历史皮重
             //新增操作
@@ -5073,6 +5184,10 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             hisTareData.setAvgWeight(Math.round(model.getMeterWeight().doubleValue()));//平均皮重
             hisTareData.setMeterNum(1l);
             hisTareData.setCreateTime(model.getCreateTime());
+            hisTareData.setTareType(tareType);
+            hisTareData.setCreateManName(model.getCreateManName());
+            hisTareData.setCreateManNo(model.getCreateManNo());
+            hisTareData.setCreateTime(new Date());
             meterBaseRailwayHisTareDataMapper.insert(hisTareData);
         }
         MeterBaseRailwayHisTareDetail mbhtd = new MeterBaseRailwayHisTareDetail();
@@ -5084,7 +5199,9 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
         mbhtd.setCarNo(model.getRailwayNo());
         mbhtd.setMeterOrder("1");
         mbhtd.setMeterTime(model.getCreateTime());
+        mbhtd.setMeterName(model.getCreateManName());
         mbhtd.setMeterWeight(model.getMeterWeight().longValue());
+        mbhtd.setValueFlag("0");
         meterBaseRailwayHisTareDetailMapper.insert(mbhtd);
     }
 
@@ -7194,6 +7311,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 int lcCount = 0;
                 for (MeterWorkRailwayActFirst model : models) {
                     MeterWorkRailwayActFirst actFirst = meterWorkRailwayActFirstMapper.selectByPrimaryKey(model.getActualFirstNo());
+                    BeanUtils.copyProperties(actFirst,model);
                     if(!(actFirst != null && StringUtils.isNotEmpty(actFirst.getLcNo()) && !actFirst.getLcNo().equals("无列次"))) {
                         lcCount ++;
                     }
@@ -7273,7 +7391,10 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             //标识皮重保存
 
             MeterWorkRailwayActFirst tareModel = new MeterWorkRailwayActFirst();
-            BeanUtils.copyProperties(grossModel, tareModel);
+            BeanUtils.copyProperties(grossModel,tareModel);
+            tareModel.setWeightType("4");
+            tareModel.setMeterWeight(tareModel.getRailwayFactoryWeight());
+            //meterWorkRailwayActFirstMapper.insertSelective(tareModel);
 
 //            MeterWorkRailwayActFirst tareModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(grossModel.getActualFirstNo());
 //            tareModel.setActualFirstNo(afl + meterWorkRailwayActFirstMapper.getNewID(afl));
@@ -7369,6 +7490,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         }
                     }
                     meterWorkRailwayActualMapper.insertSelective(actualRow);
+                    doSaveTare(tareModel,"2");
 
                     //修改委托编号
                     scale.setValueFlag(DbConstants.NET);
@@ -7445,6 +7567,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     }
                 }
                 meterWorkRailwayActualMapper.insertSelective(actualRow);
+                doSaveTare(tareModel,"2");
                 firsts.add(grossModel);
             }
             actuals.add(actualRow);
@@ -7498,7 +7621,7 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             List<MeterBaseRailwayCarriageWeight> carriageWeightModel = meterBaseRailwayCarriageWeightMapper.selectByParameters(obj);
             Assert.isTrue(carriageWeightModel.size() >= 1 , "未找到有效的标准皮,不允许结净");
             tareModel.setMeterWeight(new BigDecimal(carriageWeightModel.get(0).getCarriageWeight()));
-
+            doSaveTare(tareModel,"3");
             SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
             MeterWorkRailwayActual actualRow = new MeterWorkRailwayActual();
             if (StringUtils.isNotEmpty(predictionNo)) {
@@ -7509,7 +7632,6 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 MeterWorkRailwayActFirst model01 = meterWorkRailwayActFirstMapper.selectByPrimaryKey(grossModel.getActualFirstNo());
                 //皮重一次
                 MeterWorkRailwayActFirst model02 = meterWorkRailwayActFirstMapper.selectByPrimaryKey(tareModel.getActualFirstNo());
-
                 //将委托中的编号和收发货的等数据拷贝进一次数据中
                 MeterWorkRailwayActFirst first1 = meterWorkRailwayActFirstMapper.selectAndMatch(model01.getActualFirstNo(), scale.getPredictionNo());
                 BeanUtils.copyProperties(first1, model01);
@@ -9697,6 +9819,8 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 String grossNo = model.get("GROSS_NO") == null ? "": model.get("GROSS_NO").toString();
                 String tareNo = model.get("TARE_NO") == null ? "": model.get("TARE_NO").toString();
                 BigDecimal tareWeight = model.get("RAILWAY_FACTORY_WEIGHT") == null ? new BigDecimal("0"): new BigDecimal(model.get("RAILWAY_FACTORY_WEIGHT").toString()).multiply(new BigDecimal(1000));
+                BigDecimal tareWeight2 = model.get("CARRIAGE_WEIGHT") == null ? new BigDecimal("0"): new BigDecimal(model.get("CARRIAGE_WEIGHT").toString()).multiply(new BigDecimal(1000));
+                BigDecimal tareWeight3 = model.get("TARE_WEIGHT") == null ? new BigDecimal("0"): new BigDecimal(model.get("TARE_WEIGHT").toString()).multiply(new BigDecimal(1000));
                 String scaleNo = model.get("PREDICTION_NO") == null ? "": model.get("PREDICTION_NO").toString();
                 Assert.isTrue(StringUtils.isNotEmpty(grossNo), "毛重计量编号不能为空");
 
@@ -9707,13 +9831,43 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     return rm;
                 }
                 String msg = "";
+                MeterWorkRailwayActFirst meterWorkRailwayActFirst = meterWorkRailwayActFirstMapper.selectByPrimaryKey(grossNo);
+                if(meterWorkRailwayActFirst==null){
+                    meterWorkRailwayActFirst = meterWorkRailwayActFirstMapper.selectByPrimaryKey(tareNo);
+                }
+                if(meterWorkRailwayActFirst==null){
+                    rm.setMessage("车号:"+model.get("RAILWAY_NO")+"毛重编号无效");
+                    return rm;
+                }
                 if(StringUtils.isNotEmpty(tareNo)) {    //毛重-回空皮
+                    MeterWorkRailwayActFirst tareModel1 = meterWorkRailwayActFirstMapper.selectByPrimaryKey(tareNo);
+                    if(tareModel1==null){
+                        rm.setMessage("车号:"+model.get("RAILWAY_NO")+"皮重编号无效");
+                        return rm;
+                    }
+                    doSaveTare(tareModel1);
                     msg = "回空皮结净";
                 }else if(typeNo.equals("2")) {      //毛重-标识皮
+                    MeterWorkRailwayActFirst tareModel1 =new MeterWorkRailwayActFirst();
+                    BeanUtils.copyProperties(meterWorkRailwayActFirst, tareModel1);
+                    tareModel1.setMeterWeight(tareWeight);
+                    if(tareWeight.compareTo(new BigDecimal(0))==0){
+                        rm.setMessage("标识皮重不能为空");
+                        return rm;
+                    }
+                    doSaveTare(tareModel1,"2");
                     msg = "标识皮结净";
                 }else if(typeNo.equals("3")) {      //毛重-标准皮
+                    MeterWorkRailwayActFirst tareModel1 =new MeterWorkRailwayActFirst();
+                    BeanUtils.copyProperties(meterWorkRailwayActFirst, tareModel1);
+                    tareModel1.setMeterWeight(tareWeight);
+                    if(tareWeight.compareTo(new BigDecimal(0))==0){
+                        rm.setMessage("车型皮重不能为空");
+                        return rm;
+                    }
+                    doSaveTare(tareModel1,"3");
                     msg = "标准皮结净";
-                }else if(typeNo.equals("4")){       //毛重-历史皮
+                }else if(typeNo.equals("4")||typeNo.equals("5")||typeNo.equals("6")){       //毛重-历史皮
                     msg = "历史皮结净";
                 }
 
@@ -9721,6 +9875,9 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 MeterWorkRailwayActFirst tareModel = new MeterWorkRailwayActFirst();
                 if(StringUtils.isNotEmpty(scaleNo)) {
                     PreRailwayScale scale = preRailwayScaleMapper.selectByPrimaryKey(scaleNo);
+                    if(scale==null){
+                        throw new MarkerMetException(500, "无效的委托编号");
+                    }
                     if(StringUtils.isNotEmpty(tareNo)) {
                         grossModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(grossNo);
                         tareModel = meterWorkRailwayActFirstMapper.selectByPrimaryKey(tareNo);

+ 12 - 1
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirstbak/controller/MeterWorkRailwayActFirstBakController.java

@@ -1,6 +1,9 @@
 package com.steerinfo.meterwork.meterworkrailwayactfirstbak.controller;
 
+import com.jisco.dynamicweight.util.UserUtil;
 import com.steerinfo.baseinfo.meterbasecar.model.MeterBaseCar;
+import com.steerinfo.baseinfo.meterbaseoperationlog.mapper.MeterBaseOperationLogMapper;
+import com.steerinfo.baseinfo.meterbaseoperationlog.model.MeterBaseOperationLog;
 import com.steerinfo.baseinfo.meterbaserailwayaiweight.model.MeterBaseRailwayAiweight;
 import com.steerinfo.baseinfo.meterbaserailwaycarriageweight.model.MeterBaseRailwayCarriageWeight;
 import com.steerinfo.baseinfo.meterbaserailwayweight.mapper.MeterBaseRailwayWeightMapper;
@@ -20,6 +23,7 @@ import com.steerinfo.meterwork.dto.StaffPerformanceAnalysis;
 import com.steerinfo.meterwork.except.MarkerMetException;
 import com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual;
 import com.steerinfo.meterwork.meterworkcaractualfirst.model.MeterWorkCarActualFirst;
+import com.steerinfo.meterwork.meterworkcaractualfirstbak.controller.MeterWorkCarActualFirstBakController;
 import com.steerinfo.meterwork.meterworkprelink.model.MeterWorkPreLink;
 import com.steerinfo.meterwork.meterworkrailwayactfirst.mapper.MeterWorkRailwayActFirstMapper;
 import com.steerinfo.meterwork.meterworkrailwayactfirst.model.MeterWorkRailwayActFirst;
@@ -47,7 +51,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.web.bind.annotation.*;
-
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
@@ -85,6 +90,10 @@ public class MeterWorkRailwayActFirstBakController extends BaseRESTfulController
     @Resource
     MeterBaseSpotInfoMapper meterBaseSpotInfoMapper;
 
+    @Resource
+    MeterBaseOperationLogMapper meterBaseOperationLogMapper;
+    private static Logger logger	= LoggerFactory.getLogger( MeterWorkCarActualFirstBakController.class );
+
     @ApiOperation(value = "获取列表", notes = "分页查询")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
@@ -249,6 +258,8 @@ throw new MarkerMetException(500, "操作异常!!");
             }else {
                 throw new MarkerMetException(500, "计量点配置表未找到相应的计量点!!");
             }
+
+
             MeterWorkRailwayActFirstBak meterWorkCarActualFirst = meterWorkRailwayActFirstBakService.add(model);
             return success(meterWorkCarActualFirst);
         } catch (Exception ex) {

+ 32 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirstbak/service/impl/MeterWorkRailwayActFirstBakServiceImpl.java

@@ -2,8 +2,11 @@ package com.steerinfo.meterwork.meterworkrailwayactfirstbak.service.impl;
 
 import com.fasterxml.jackson.databind.node.BigIntegerNode;
 import com.google.inject.internal.cglib.proxy.$UndeclaredThrowableException;
+import com.jisco.dynamicweight.util.UserUtil;
 import com.steerinfo.baseinfo.combaseinfo.mapper.ComBaseInfoMapper;
 import com.steerinfo.baseinfo.meterbasematterinfo.mapper.MeterBaseMatterInfoMapper;
+import com.steerinfo.baseinfo.meterbaseoperationlog.mapper.MeterBaseOperationLogMapper;
+import com.steerinfo.baseinfo.meterbaseoperationlog.model.MeterBaseOperationLog;
 import com.steerinfo.baseinfo.meterbaserailwayaiweight.mapper.MeterBaseRailwayAiweightMapper;
 import com.steerinfo.baseinfo.meterbaserailwayaiweight.model.MeterBaseRailwayAiweight;
 import com.steerinfo.baseinfo.meterbaserailwaycarriageweight.mapper.MeterBaseRailwayCarriageWeightMapper;
@@ -30,6 +33,7 @@ import com.steerinfo.meterwork.dto.StaffPerformanceAnalysis;
 import com.steerinfo.meterwork.except.MarkerMetException;
 import com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual;
 import com.steerinfo.meterwork.meterworkcaractualfirst.model.MeterWorkCarActualFirst;
+import com.steerinfo.meterwork.meterworkcaractualfirstbak.controller.MeterWorkCarActualFirstBakController;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.model.MeterWorkCarActualFirstBak;
 import com.steerinfo.meterwork.meterworkimage.mapper.MeterWorkImageMapper;
 import com.steerinfo.meterwork.meterworkimage.model.MeterWorkImage;
@@ -61,6 +65,8 @@ import com.steerinfo.util.StringUtils;
 import io.micrometer.core.instrument.Meter;
 import org.apache.poi.hssf.record.ArrayRecord;
 import org.apache.shiro.crypto.hash.Hash;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
@@ -144,6 +150,11 @@ public class MeterWorkRailwayActFirstBakServiceImpl extends BaseServiceImpl<Mete
     @Resource
     private MeterBaseRailwayHisTareDetailMapper meterBaseRailwayHisTareDetailMapper;
 
+    @Resource
+    private MeterBaseOperationLogMapper meterBaseOperationLogMapper;
+
+    private static Logger logger	= LoggerFactory.getLogger( MeterWorkRailwayActFirstBakServiceImpl.class );
+
     @Override
     protected IBaseMapper<MeterWorkRailwayActFirstBak, String> getMapper() {
         return meterWorkRailwayActFirstBakMapper;
@@ -7541,6 +7552,27 @@ public class MeterWorkRailwayActFirstBakServiceImpl extends BaseServiceImpl<Mete
                         throw new Exception("一次数据已转成正式数据,不能重复转正式数据");
                     }
                     meterWorkRailwayActFirstMapper.insert(first);
+                    try {
+                        //新增日志
+                        MeterBaseOperationLog logModel = new MeterBaseOperationLog();
+                        logModel.setId(PublicMethod.IdCreate(2));
+                        logModel.setCreateManNo(UserUtil.getCurrentUserId());
+                        logModel.setCreateManName(UserUtil.getCurrentUserName());
+                        logModel.setCreateTime(new Date());
+                        if("001019001".equals(first.getRailwayTypeNo())){
+                            logModel.setOperationPage("web端-静态轨道衡一次数据维护");
+                        }else{
+                            logModel.setOperationPage("web端-吊钩秤一次数据维护");
+                        }
+                        logModel.setOperationFunction("新增");
+                        logModel.setOperationId(first.getActualFirstNo());
+                        logModel.setOperationPredictionNo(first.getPredictionNo());
+                        logModel.setOperationCarnNo(first.getRailwayNo());
+                        meterBaseOperationLogMapper.insertSelective(logModel);
+                    }catch (Exception e){
+                        logger.error("web端-汽车衡一次数据维护日志新增失败");
+                        e.printStackTrace();
+                    }
                     firstModel.setValueFlag("0");
                     meterWorkRailwayActFirstBakMapper.updateByPrimaryKeySelective(firstModel);
                 }else{

+ 2 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/service/impl/MeterWorkRailwayActualServiceImpl.java

@@ -777,6 +777,8 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
                 actFirst02.setPredictionType("1");
                 actFirst02.setNote(Notes);
                 meterWorkRailwayActFirstMapper.updateByPrimaryKeySelective(actFirst02);
+                //新增历史皮
+                meterWorkRailwayActFirstService.doSaveTare(actFirst02);
 
                 MeterWorkRailwayActual mwca = meterWorkRailwayActualMapper.manualAddPre(actFirst01.getActualFirstNo(), actFirst02.getActualFirstNo(), scale.getPredictionNo());
                 BeanUtils.copyProperties(mwca, actualRow);

+ 30 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayactualbak/service/impl/MeterWorkRailwayActualBakServiceImpl.java

@@ -1,5 +1,6 @@
 package com.steerinfo.meterwork.meterworkrailwayactualbak.service.impl;
 
+import com.jisco.dynamicweight.util.UserUtil;
 import com.steerinfo.baseinfo.combaseinfo.mapper.ComBaseInfoMapper;
 import com.steerinfo.baseinfo.meterbaseoperationlog.mapper.MeterBaseOperationLogMapper;
 import com.steerinfo.baseinfo.meterbaseoperationlog.model.MeterBaseOperationLog;
@@ -18,6 +19,7 @@ import com.steerinfo.meterwork.except.MarkerMetException;
 import com.steerinfo.meterwork.meterworkcaractual.model.MeterWorkCarActual;
 import com.steerinfo.meterwork.meterworkcaractualbak.model.MeterWorkCarActualBak;
 import com.steerinfo.meterwork.meterworkcaractualfirst.model.MeterWorkCarActualFirst;
+import com.steerinfo.meterwork.meterworkcaractualfirstbak.controller.MeterWorkCarActualFirstBakController;
 import com.steerinfo.meterwork.meterworkcaractualfirstbak.model.MeterWorkCarActualFirstBak;
 import com.steerinfo.meterwork.meterworkrailwayactfirst.mapper.MeterWorkRailwayActFirstMapper;
 import com.steerinfo.meterwork.meterworkrailwayactfirst.model.MeterWorkRailwayActFirst;
@@ -44,6 +46,8 @@ import com.steerinfo.util.FieldsCollector;
 import com.steerinfo.util.PublicMethod;
 import com.steerinfo.util.StringUtils;
 import io.micrometer.core.instrument.Meter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -109,6 +113,9 @@ public class MeterWorkRailwayActualBakServiceImpl extends BaseServiceImpl<MeterW
     @Autowired
     IMeterWorkRailwayActFirstBakService meterWorkRailwayActFirstBakService;
 
+    private static Logger logger	= LoggerFactory.getLogger( MeterWorkRailwayActualBakServiceImpl.class );
+
+
     @Override
     protected IBaseMapper<MeterWorkRailwayActualBak, String> getMapper() {
         return meterWorkRailwayActualBakMapper;
@@ -2782,6 +2789,29 @@ public class MeterWorkRailwayActualBakServiceImpl extends BaseServiceImpl<MeterW
 
                     meterWorkRailwayActualMapper.insert(actual);
 
+                    try {
+                        //新增日志
+                        MeterBaseOperationLog logModel = new MeterBaseOperationLog();
+                        logModel.setId(PublicMethod.IdCreate(2));
+                        logModel.setCreateManNo(UserUtil.getCurrentUserId());
+                        logModel.setCreateManName(UserUtil.getCurrentUserName());
+                        logModel.setCreateTime(new Date());
+                        if("001019001".equals(actual.getRailwayTypeNo())){
+                            logModel.setOperationPage("web端-静态轨道衡净重数据维护");
+                        }else{
+                            logModel.setOperationPage("web端-吊钩秤净重数据维护");
+                        }
+
+                        logModel.setOperationFunction("新增");
+                        logModel.setOperationId(actual.getActualNo());
+                        logModel.setOperationPredictionNo(actual.getPredictionNo());
+                        logModel.setOperationCarnNo(actual.getRailwayNo());
+                        meterBaseOperationLogMapper.insertSelective(logModel);
+                    }catch (Exception e){
+                        logger.error("web端-汽车衡一次数据维护日志新增失败");
+                        e.printStackTrace();
+                    }
+
                     //同时将两个一次也复制一下
                     MeterWorkRailwayActFirstBak firstBak1 = meterWorkRailwayActFirstBakMapper.selectByPrimaryKey(actualBak.getActualFirst1No());
                     MeterWorkRailwayActFirstBak firstBak2 = meterWorkRailwayActFirstBakMapper.selectByPrimaryKey(actualBak.getActualFirst2No());