dengyj 4 år sedan
förälder
incheckning
e65f084a1e
25 ändrade filer med 786 tillägg och 107 borttagningar
  1. 18 1
      src/main/java/com/steerinfo/metermonitor/metermonitornote/controller/MeterMonitorNoteController.java
  2. 2 0
      src/main/java/com/steerinfo/metermonitor/metermonitornote/mapper/MeterMonitorNoteMapper.java
  3. 6 0
      src/main/java/com/steerinfo/metermonitor/metermonitornote/mapper/MeterMonitorNoteMapper.xml
  4. 2 0
      src/main/java/com/steerinfo/metermonitor/metermonitornote/service/IMeterMonitorNoteService.java
  5. 8 0
      src/main/java/com/steerinfo/metermonitor/metermonitornote/service/impl/MeterMonitorNoteServiceImpl.java
  6. 3 0
      src/main/java/com/steerinfo/meterwork/constants/DbConstants.java
  7. 129 5
      src/main/java/com/steerinfo/meterwork/meterworkcomparespot/controller/MeterWorkCompareSpotController.java
  8. 13 0
      src/main/java/com/steerinfo/meterwork/meterworkcomparespot/mapper/MeterWorkCompareSpotMapper.java
  9. 80 48
      src/main/java/com/steerinfo/meterwork/meterworkcomparespot/mapper/MeterWorkCompareSpotMapper.xml
  10. 15 0
      src/main/java/com/steerinfo/meterwork/meterworkcomparespot/model/MeterWorkCompareSpot.java
  11. 35 0
      src/main/java/com/steerinfo/meterwork/meterworkcomparespot/service/IMeterWorkCompareSpotService.java
  12. 40 0
      src/main/java/com/steerinfo/meterwork/meterworkcomparespot/service/impl/MeterWorkCompareSpotServiceImpl.java
  13. 220 4
      src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/controller/MeterWorkCompareSpotScaleController.java
  14. 9 0
      src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/mapper/MeterWorkCompareSpotScaleMapper.java
  15. 60 26
      src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/mapper/MeterWorkCompareSpotScaleMapper.xml
  16. 15 0
      src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/model/MeterWorkCompareSpotScale.java
  17. 19 0
      src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/service/IMeterWorkCompareSpotScaleService.java
  18. 29 0
      src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/service/impl/MeterWorkCompareSpotScaleServiceImpl.java
  19. 12 12
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactfirst/service/impl/MeterWorkRailwayActFirstServiceImpl.java
  20. 20 11
      src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/service/impl/MeterWorkRailwayActualServiceImpl.java
  21. 12 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayscheduledhelp/controller/MeterWorkRailwayScheduledHelpController.java
  22. 5 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayscheduledhelp/mapper/MeterWorkRailwayScheduledHelpMapper.java
  23. 18 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayscheduledhelp/mapper/MeterWorkRailwayScheduledHelpMapper.xml
  24. 5 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayscheduledhelp/service/IMeterWorkRailwayScheduledHelpService.java
  25. 11 0
      src/main/java/com/steerinfo/meterwork/meterworkrailwayscheduledhelp/service/impl/MeterWorkRailwayScheduledHelpServiceImpl.java

+ 18 - 1
src/main/java/com/steerinfo/metermonitor/metermonitornote/controller/MeterMonitorNoteController.java

@@ -48,7 +48,24 @@ public class MeterMonitorNoteController extends BaseRESTfulController {
     @GetMapping(value = "/")
     public RESTfulResult list(@RequestParam HashMap parmas, Integer pageNum, Integer pageSize) {
         try {
-            PageList<MeterMonitorNote> list = meterMonitorNoteService.queryForPage(parmas, pageNum, pageSize);
+            PageList<MeterMonitorNote> list = meterMonitorNoteService.likeByDesc(parmas, pageNum, pageSize);
+            return success(list);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            throw new MarkerMetException(500, "操作异常!!");
+        }
+    }
+
+    @ApiOperation(value = "获取列表", notes = "分页模糊查询")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer")
+    })
+    //@RequiresPermissions("metermonitornote:view")
+    @GetMapping(value = "/likeByDesc")
+    public RESTfulResult likeByDesc(@RequestParam HashMap parmas, Integer pageNum, Integer pageSize) {
+        try {
+            PageList<MeterMonitorNote> list = meterMonitorNoteService.likeByDesc(parmas, pageNum, pageSize);
             return success(list);
         } catch (Exception ex) {
             ex.printStackTrace();

+ 2 - 0
src/main/java/com/steerinfo/metermonitor/metermonitornote/mapper/MeterMonitorNoteMapper.java

@@ -14,6 +14,8 @@ import java.util.Map;
 public interface MeterMonitorNoteMapper extends IBaseMapper<MeterMonitorNote, String> {
     List<MeterMonitorNote> selectView(Map<String, Object> parmas);
 
+    List<MeterMonitorNote> likeByDesc(Map<String, Object> parmas);
+
     List<MeterMonitorNote> selectByTime(Map<String, Object> parmas);
 
     String getNewID(@Param(value = "afl") String afl);

+ 6 - 0
src/main/java/com/steerinfo/metermonitor/metermonitornote/mapper/MeterMonitorNoteMapper.xml

@@ -653,4 +653,10 @@
     )
     where rownum &lt;= 100
   </select>
+
+  <select id="likeByDesc" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select"/>
+    <include refid="whereLike"/>
+    order by operation_time desc
+  </select>
 </mapper>

+ 2 - 0
src/main/java/com/steerinfo/metermonitor/metermonitornote/service/IMeterMonitorNoteService.java

@@ -25,6 +25,8 @@ public interface IMeterMonitorNoteService extends IBaseService<MeterMonitorNote,
 
     PageList<MeterMonitorNote> selectView(Map<String,Object> parmas, Integer pageNum, Integer pageSize);
 
+    PageList<MeterMonitorNote> likeByDesc(Map<String, Object> var1, Integer var2, Integer var3);
+
     PageList<MeterMonitorNote> selectByTime(String baseSpotNo, String operationTime,String carNo, Integer pageNum, Integer pageSize);
 
     String doSaveWf(MeterMonitorNote model);

+ 8 - 0
src/main/java/com/steerinfo/metermonitor/metermonitornote/service/impl/MeterMonitorNoteServiceImpl.java

@@ -54,6 +54,14 @@ public class MeterMonitorNoteServiceImpl extends BaseServiceImpl<MeterMonitorNot
         return pageInfo;
     }
 
+    @Override
+    public PageList<MeterMonitorNote> likeByDesc(Map<String, Object> parmas, Integer pageNum, Integer pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<MeterMonitorNote> rows = meterMonitorNoteMapper.likeByDesc(parmas);
+        PageList pageInfo = new PageList(rows);
+        return pageInfo;
+    }
+
     @Override
     @Transactional(rollbackFor=Exception.class)
     public PageList<MeterMonitorNote> selectByTime(String baseSpotNo, String operationTime, String carNo,Integer pageNum, Integer pageSize)

+ 3 - 0
src/main/java/com/steerinfo/meterwork/constants/DbConstants.java

@@ -4,6 +4,7 @@ import com.steerinfo.meterwork.dto.StorageCollectModel;
 import com.steerinfo.rtdb.Client;
 import com.steerinfo.util.TestClient2;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -15,6 +16,8 @@ import java.util.List;
  * @Version V1.0
  */
 public class DbConstants {
+    //轨道衡毛皮重最小差值
+    public static final BigDecimal RAILWAY_WEIGHT = new BigDecimal(10000);
     //有效、已审核、未使用
     public  static  final  String VALID = "1";
     //无效、未审核

+ 129 - 5
src/main/java/com/steerinfo/meterwork/meterworkcomparespot/controller/MeterWorkCompareSpotController.java

@@ -9,15 +9,14 @@ import com.steerinfo.meterwork.meterworkcomparespot.service.IMeterWorkCompareSpo
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import javafx.scene.effect.Light;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ArrayList;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.math.BigDecimal;
 
 /**
@@ -107,4 +106,129 @@ public class MeterWorkCompareSpotController extends BaseRESTfulController {
     	}
       return success();
     }
-}
+
+    @ApiOperation(value="提交结果", notes="提交断差结果")
+    @PutMapping(value = "/submitBreakResult" ,produces  = "application/json;charset=UTF-8")
+    public RESTfulResult submitBreakResult(@RequestBody HashMap<String,Object> map){
+
+        //车号
+        String carNo = null;
+        //重量
+        Long weight = 0L;
+        //操作人姓名
+        String name = null;
+        //站点名
+        String spotName = null;
+        //站点编号
+        String spotNo = null;
+
+        //获取参数
+        //当参数缺少时会向返回 “参数不全或错误“
+        try {
+            carNo = map.get("carNo").toString();
+            weight = Long.valueOf(map.get("weight").toString());
+            name = map.get("name").toString();
+            spotName = map.get("spotName").toString();
+            spotNo = map.get("spotNo").toString();
+        }catch (Exception e){
+            return failed(null,"参数不全或错误");
+        }
+        //日期
+        Date date = new Date();
+
+        //取出车号为carNo的一个小时以内的较秤类型为断差(即数据库中标识为1)的数据主键
+        String COMPARE_SPOT_ID = meterWorkCompareSpotService.isExistWithinOneHour(carNo);
+//        System.out.println("---------------");
+//        System.out.println(COMPARE_SPOT_ID);
+//        System.out.println("---------------");
+
+        if (COMPARE_SPOT_ID == null){//没有查询到相应的主键 创建一条新数据
+            //创建数据
+            MeterWorkCompareSpot spot = new MeterWorkCompareSpot();
+            //设置主键
+            spot.setCompareSpotId(meterWorkCompareSpotService.creatCompareSpotId());
+            //设置车号
+            spot.setCarNo(carNo);
+            //设置创建人
+            spot.setCreateManName(name);
+            //设置创建时间
+            spot.setCreateTime(date);
+            //创建一条新数据时,默认将传过来的重量、站点等参数保存到1号(一共有5个数据)
+            //设置重量
+            spot.setWeightNum1(weight);
+            //设置秤点称量时间
+            spot.setWeightDate1(date);
+            //设置秤点名
+            spot.setBaseSpotName1(spotName);
+            //设置秤点编号
+            spot.setBaseSpotNo1(spotNo);
+            //类型 断差:1
+            spot.setCompareType("1");
+            //将状态设置成 2:正使用
+            spot.setValueFlag("2");
+            //创建
+            meterWorkCompareSpotService.insert(spot);
+
+        }else{//有查询到相应的主键
+            //通过主键查询该条数据
+            List<MeterWorkCompareSpot> list = meterWorkCompareSpotService.queryByProperty("compareSpotId", COMPARE_SPOT_ID);
+            //System.out.println(list);
+
+            //正常情况下一个主键只能查询到一条数据,这里为了防止出现多条数据的情况,所以在此加入一个判断条件 出现错误,返回”数据库数据错误“
+            if (list.size()>1||list == null||list.size()==0){
+                return failed(null,"数据库数据错误");
+            }
+
+            //获取第一条数据(实际上也只有一条)
+            MeterWorkCompareSpot spot = list.get(0);
+
+            //提交类型为断差的数据时,必须保持所有秤点是一致的 通过秤点名和秤点编号判断 出错,返回”称重秤点与之前的秤点不一样“
+            if (!spot.getBaseSpotNo1().equals(spotNo)||!spot.getBaseSpotName1().equals(spotName)){
+                return failed(null,"称重秤点与之前的秤点不一样");
+            }
+
+
+            if (spot.getWeightNum5() == null){//第5个重量为空,表示在该条数据内还可以继续存储重量
+                //设置更新时间
+                spot.setUpdateTime(date);
+                //设置更新操作人们姓名
+                spot.setUpdateManName(name);
+                //从第二个重量开始查询
+                if (spot.getWeightNum2()==null) {
+                    //重量
+                    spot.setWeightNum2(weight);
+                    //称重时间
+                    spot.setWeightDate2(date);
+                    //秤点名
+                    spot.setBaseSpotName2(spotName);
+                    //秤点编号
+                    spot.setBaseSpotNo2(spotNo);
+                }else if (spot.getWeightNum3()==null){
+                    spot.setWeightNum3(weight);
+                    spot.setWeightDate3(date);
+                    spot.setBaseSpotName3(spotName);
+                    spot.setBaseSpotNo3(spotNo);
+                }else if (spot.getWeightNum4()==null){
+                    spot.setWeightNum4(weight);
+                    spot.setWeightDate4(date);
+                    spot.setBaseSpotName4(spotName);
+                    spot.setBaseSpotNo4(spotNo);
+                }else{
+                    //注意即使存满了5条数据也没有修改VALUE_FLAG的值,仍保持为 2:正是用
+                    //如果后期有需求再修改
+                    spot.setWeightNum5(weight);
+                    spot.setWeightDate5(date);
+                    spot.setBaseSpotName5(spotName);
+                    spot.setBaseSpotNo5(spotNo);
+                }
+                //更新数据
+                meterWorkCompareSpotService.updateByPrimaryKey(spot);
+            }else{//第5个重量不为空,表示在该条数据内已经存储了5条数据,不能在继续存储,返回”一个小时以内,已存在5条重量数据“
+                return failed(null,"一个小时以内,已存在5条重量数据");
+            }
+        }
+        //所有都没问题 返回提交成功
+        return success(null,"提交成功");
+    }
+
+}

+ 13 - 0
src/main/java/com/steerinfo/meterwork/meterworkcomparespot/mapper/MeterWorkCompareSpotMapper.java

@@ -3,8 +3,21 @@ package com.steerinfo.meterwork.meterworkcomparespot.mapper;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import com.steerinfo.meterwork.meterworkcomparespot.model.MeterWorkCompareSpot;
 import java.math.*;
+
+import io.swagger.models.auth.In;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 @Mapper
 public interface MeterWorkCompareSpotMapper extends IBaseMapper<MeterWorkCompareSpot, String> {
+    //生成流水号
+    String GetNewID();
+
+    /**
+     * 判断创建时间在几个小时内是否存在
+     * @param time 表示几个小时
+     * @param type 表示查询类型 1:断差 2:校秤
+     * @return 存在:返回最近的主键
+     */
+    String isExistWithinHour(Integer time,String carNo,String type);
 }

+ 80 - 48
src/main/java/com/steerinfo/meterwork/meterworkcomparespot/mapper/MeterWorkCompareSpotMapper.xml

@@ -32,6 +32,7 @@
     <result column="BASE_SPOT_NO5" jdbcType="VARCHAR" property="baseSpotNo5" />
     <result column="BASE_SPOT_NAME5" jdbcType="VARCHAR" property="baseSpotName5" />
     <result column="COMPARE_TYPE" jdbcType="VARCHAR" property="compareType" />
+    <result column="SCALE_NO" jdbcType="VARCHAR" property="scaleNo" />
   </resultMap>
   <sql id="columns">
     COMPARE_SPOT_ID, VALUE_FLAG, CREATE_MAN_NAME, CREATE_TIME, UPDATE_MAN_NAME, UPDATE_TIME, 
@@ -39,7 +40,7 @@
     WEIGHT_DATE2, WEIGHT_NUM3, WEIGHT_DATE3, WEIGHT_NUM4, WEIGHT_DATE4, WEIGHT_NUM5, 
     WEIGHT_DATE5, BASE_SPOT_NO1, BASE_SPOT_NAME1, BASE_SPOT_NO2, BASE_SPOT_NAME2, BASE_SPOT_NO3, 
     BASE_SPOT_NAME3, BASE_SPOT_NO4, BASE_SPOT_NAME4, BASE_SPOT_NO5, BASE_SPOT_NAME5, 
-    COMPARE_TYPE
+    COMPARE_TYPE, SCALE_NO
   </sql>
   <sql id="columns_alias">
     t.COMPARE_SPOT_ID, t.VALUE_FLAG, t.CREATE_MAN_NAME, t.CREATE_TIME, t.UPDATE_MAN_NAME, 
@@ -47,13 +48,13 @@
     t.WEIGHT_NUM2, t.WEIGHT_DATE2, t.WEIGHT_NUM3, t.WEIGHT_DATE3, t.WEIGHT_NUM4, t.WEIGHT_DATE4, 
     t.WEIGHT_NUM5, t.WEIGHT_DATE5, t.BASE_SPOT_NO1, t.BASE_SPOT_NAME1, t.BASE_SPOT_NO2, 
     t.BASE_SPOT_NAME2, t.BASE_SPOT_NO3, t.BASE_SPOT_NAME3, t.BASE_SPOT_NO4, t.BASE_SPOT_NAME4, 
-    t.BASE_SPOT_NO5, t.BASE_SPOT_NAME5, t.COMPARE_TYPE
+    t.BASE_SPOT_NO5, t.BASE_SPOT_NAME5, t.COMPARE_TYPE, t.SCALE_NO
   </sql>
   <sql id="select">
-    SELECT <include refid="columns"/> FROM METER_WORK_COMPARE_SPOT
+    SELECT <include refid="columns" /> FROM METER_WORK_COMPARE_SPOT
   </sql>
   <sql id="select_alias">
-    SELECT <include refid="columns_alias"/> FROM METER_WORK_COMPARE_SPOT t
+    SELECT <include refid="columns_alias" /> FROM METER_WORK_COMPARE_SPOT t
   </sql>
   <sql id="where">
     <where> 
@@ -147,6 +148,9 @@
       <if test="compareType != null and compareType != ''">
         and COMPARE_TYPE = #{compareType}
       </if>
+      <if test="scaleNo != null and scaleNo != ''">
+        and SCALE_NO = #{scaleNo}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -241,6 +245,9 @@
       <if test="compareType != null and compareType != ''">
         and COMPARE_TYPE LIKE '%${compareType}%'
       </if>
+      <if test="scaleNo != null and scaleNo != ''">
+        and SCALE_NO LIKE '%${scaleNo}%'
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
@@ -337,6 +344,9 @@
       <if test="compareType != null and compareType != ''">
         or COMPARE_TYPE = #{compareType}
       </if>
+      <if test="scaleNo != null and scaleNo != ''">
+        or SCALE_NO = #{scaleNo}
+      </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.meterwork.meterworkcomparespot.model.MeterWorkCompareSpot">
     insert into METER_WORK_COMPARE_SPOT (COMPARE_SPOT_ID, VALUE_FLAG, CREATE_MAN_NAME, 
@@ -348,8 +358,8 @@
       WEIGHT_DATE5, BASE_SPOT_NO1, BASE_SPOT_NAME1, 
       BASE_SPOT_NO2, BASE_SPOT_NAME2, BASE_SPOT_NO3, 
       BASE_SPOT_NAME3, BASE_SPOT_NO4, BASE_SPOT_NAME4, 
-      BASE_SPOT_NO5, BASE_SPOT_NAME5, COMPARE_TYPE
-      )
+      BASE_SPOT_NO5, BASE_SPOT_NAME5, COMPARE_TYPE, 
+      SCALE_NO)
     values (#{compareSpotId,jdbcType=VARCHAR}, #{valueFlag,jdbcType=VARCHAR}, #{createManName,jdbcType=VARCHAR}, 
       #{createTime,jdbcType=TIMESTAMP}, #{updateManName,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, 
       #{createManPhone,jdbcType=VARCHAR}, #{updateManPhone,jdbcType=VARCHAR}, #{carNo,jdbcType=VARCHAR}, 
@@ -359,8 +369,8 @@
       #{weightDate5,jdbcType=TIMESTAMP}, #{baseSpotNo1,jdbcType=VARCHAR}, #{baseSpotName1,jdbcType=VARCHAR}, 
       #{baseSpotNo2,jdbcType=VARCHAR}, #{baseSpotName2,jdbcType=VARCHAR}, #{baseSpotNo3,jdbcType=VARCHAR}, 
       #{baseSpotName3,jdbcType=VARCHAR}, #{baseSpotNo4,jdbcType=VARCHAR}, #{baseSpotName4,jdbcType=VARCHAR}, 
-      #{baseSpotNo5,jdbcType=VARCHAR}, #{baseSpotName5,jdbcType=VARCHAR}, #{compareType,jdbcType=VARCHAR}
-      )
+      #{baseSpotNo5,jdbcType=VARCHAR}, #{baseSpotName5,jdbcType=VARCHAR}, #{compareType,jdbcType=VARCHAR}, 
+      #{scaleNo,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.meterwork.meterworkcomparespot.model.MeterWorkCompareSpot">
     insert into METER_WORK_COMPARE_SPOT
@@ -455,6 +465,9 @@
       <if test="compareType != null">
         COMPARE_TYPE,
       </if>
+      <if test="scaleNo != null">
+        SCALE_NO,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="compareSpotId != null">
@@ -547,6 +560,9 @@
       <if test="compareType != null">
         #{compareType,jdbcType=VARCHAR},
       </if>
+      <if test="scaleNo != null">
+        #{scaleNo,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.meterwork.meterworkcomparespot.model.MeterWorkCompareSpot">
@@ -579,7 +595,8 @@
       BASE_SPOT_NAME4 = #{baseSpotName4,jdbcType=VARCHAR},
       BASE_SPOT_NO5 = #{baseSpotNo5,jdbcType=VARCHAR},
       BASE_SPOT_NAME5 = #{baseSpotName5,jdbcType=VARCHAR},
-      COMPARE_TYPE = #{compareType,jdbcType=VARCHAR}
+      COMPARE_TYPE = #{compareType,jdbcType=VARCHAR},
+      SCALE_NO = #{scaleNo,jdbcType=VARCHAR}
     where COMPARE_SPOT_ID = #{compareSpotId,jdbcType=VARCHAR}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.meterwork.meterworkcomparespot.model.MeterWorkCompareSpot">
@@ -672,20 +689,23 @@
       <if test="compareType != null">
         COMPARE_TYPE = #{compareType,jdbcType=VARCHAR},
       </if>
+      <if test="scaleNo != null">
+        SCALE_NO = #{scaleNo,jdbcType=VARCHAR},
+      </if>
     </set>
     where COMPARE_SPOT_ID = #{compareSpotId,jdbcType=VARCHAR}
   </update>
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
-    <include refid="select"/>
+    <include refid="select" />
     where COMPARE_SPOT_ID = #{compareSpotId,jdbcType=VARCHAR}
   </select>
   <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
-    <include refid="select"/>
-    <include refid="where"/>
+    <include refid="select" />
+    <include refid="where" />
   </select>
   <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
-    <include refid="select"/>
-    <include refid="whereLike"/>
+    <include refid="select" />
+    <include refid="whereLike" />
   </select>
   <insert id="batchInsert" parameterType="java.util.List">
     insert into METER_WORK_COMPARE_SPOT 
@@ -700,7 +720,7 @@
       BASE_SPOT_NAME1, BASE_SPOT_NO2, BASE_SPOT_NAME2, 
       BASE_SPOT_NO3, BASE_SPOT_NAME3, BASE_SPOT_NO4, 
       BASE_SPOT_NAME4, BASE_SPOT_NO5, BASE_SPOT_NAME5, 
-      COMPARE_TYPE)
+      COMPARE_TYPE, SCALE_NO)
     ( <foreach collection="list" item="item" separator="union all"> 
    select  
       #{item.compareSpotId,jdbcType=VARCHAR}, 
@@ -714,145 +734,157 @@
       #{item.baseSpotName1,jdbcType=VARCHAR}, #{item.baseSpotNo2,jdbcType=VARCHAR}, #{item.baseSpotName2,jdbcType=VARCHAR}, 
       #{item.baseSpotNo3,jdbcType=VARCHAR}, #{item.baseSpotName3,jdbcType=VARCHAR}, #{item.baseSpotNo4,jdbcType=VARCHAR}, 
       #{item.baseSpotName4,jdbcType=VARCHAR}, #{item.baseSpotNo5,jdbcType=VARCHAR}, #{item.baseSpotName5,jdbcType=VARCHAR}, 
-      #{item.compareType,jdbcType=VARCHAR} from dual  
+      #{item.compareType,jdbcType=VARCHAR}, #{item.scaleNo,jdbcType=VARCHAR} from dual  
    </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
      update METER_WORK_COMPARE_SPOT
      set
        COMPARE_SPOT_ID=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.compareSpotId,jdbcType=VARCHAR}
        </foreach>
        ,VALUE_FLAG=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.valueFlag,jdbcType=VARCHAR}
        </foreach>
        ,CREATE_MAN_NAME=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.createManName,jdbcType=VARCHAR}
        </foreach>
        ,CREATE_TIME=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.createTime,jdbcType=TIMESTAMP}
        </foreach>
        ,UPDATE_MAN_NAME=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.updateManName,jdbcType=VARCHAR}
        </foreach>
        ,UPDATE_TIME=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.updateTime,jdbcType=TIMESTAMP}
        </foreach>
        ,CREATE_MAN_PHONE=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.createManPhone,jdbcType=VARCHAR}
        </foreach>
        ,UPDATE_MAN_PHONE=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.updateManPhone,jdbcType=VARCHAR}
        </foreach>
        ,CAR_NO=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.carNo,jdbcType=VARCHAR}
        </foreach>
        ,WEIGHT_NUM1=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.weightNum1,jdbcType=DECIMAL}
        </foreach>
        ,WEIGHT_DATE1=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.weightDate1,jdbcType=TIMESTAMP}
        </foreach>
        ,WEIGHT_NUM2=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.weightNum2,jdbcType=DECIMAL}
        </foreach>
        ,WEIGHT_DATE2=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.weightDate2,jdbcType=TIMESTAMP}
        </foreach>
        ,WEIGHT_NUM3=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.weightNum3,jdbcType=DECIMAL}
        </foreach>
        ,WEIGHT_DATE3=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.weightDate3,jdbcType=TIMESTAMP}
        </foreach>
        ,WEIGHT_NUM4=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.weightNum4,jdbcType=DECIMAL}
        </foreach>
        ,WEIGHT_DATE4=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.weightDate4,jdbcType=TIMESTAMP}
        </foreach>
        ,WEIGHT_NUM5=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.weightNum5,jdbcType=DECIMAL}
        </foreach>
        ,WEIGHT_DATE5=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.weightDate5,jdbcType=TIMESTAMP}
        </foreach>
        ,BASE_SPOT_NO1=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.baseSpotNo1,jdbcType=VARCHAR}
        </foreach>
        ,BASE_SPOT_NAME1=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.baseSpotName1,jdbcType=VARCHAR}
        </foreach>
        ,BASE_SPOT_NO2=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.baseSpotNo2,jdbcType=VARCHAR}
        </foreach>
        ,BASE_SPOT_NAME2=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.baseSpotName2,jdbcType=VARCHAR}
        </foreach>
        ,BASE_SPOT_NO3=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.baseSpotNo3,jdbcType=VARCHAR}
        </foreach>
        ,BASE_SPOT_NAME3=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.baseSpotName3,jdbcType=VARCHAR}
        </foreach>
        ,BASE_SPOT_NO4=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.baseSpotNo4,jdbcType=VARCHAR}
        </foreach>
        ,BASE_SPOT_NAME4=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.baseSpotName4,jdbcType=VARCHAR}
        </foreach>
        ,BASE_SPOT_NO5=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.baseSpotNo5,jdbcType=VARCHAR}
        </foreach>
        ,BASE_SPOT_NAME5=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.baseSpotName5,jdbcType=VARCHAR}
        </foreach>
        ,COMPARE_TYPE=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
           when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.compareType,jdbcType=VARCHAR}
        </foreach>
+       ,SCALE_NO=
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_ID" separator=" ">
+          when #{item.compareSpotId,jdbcType=VARCHAR} then #{item.scaleNo,jdbcType=VARCHAR}
+       </foreach>
      where COMPARE_SPOT_ID in 
-     <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+     <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
     #{item.compareSpotId,jdbcType=VARCHAR}
      </foreach> 
   </update>
   <delete id="batchDelete" parameterType="java.util.List">
     delete from METER_WORK_COMPARE_SPOT
     where COMPARE_SPOT_ID in 
-    <foreach collection="list" item="id" open="(" close=")" separator=",">
+    <foreach close=")" collection="list" item="id" open="(" separator=",">
       #{id}
     </foreach>
   </delete>
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+  <select id="GetNewID" parameterType="java.lang.String" resultType="java.lang.String">
+    SELECT LPAD(NVL(MAX(TO_NUMBER(SUBSTR(COMPARE_SPOT_ID, LENGTH(COMPARE_SPOT_ID) - 4))),0) + 1,5,'0') COMPARE_SPOT_ID
+    FROM METER_WORK_COMPARE_SPOT
+  </select>
+
+  <select id="isExistWithinHour" resultType="java.lang.String">
+    SELECT COMPARE_SPOT_ID FROM (SELECT * FROM METER_WORK_COMPARE_SPOT WHERE (CREATE_TIME BETWEEN SYSDATE-(#{time}/24) AND SYSDATE) AND CAR_NO = #{carNo} AND COMPARE_TYPE = #{type} ORDER BY CREATE_TIME DESC )  WHERE ROWNUM = 1
+  </select>
   
 </mapper>

+ 15 - 0
src/main/java/com/steerinfo/meterwork/meterworkcomparespot/model/MeterWorkCompareSpot.java

@@ -187,6 +187,12 @@ public class MeterWorkCompareSpot implements IBasePO<String> {
     @ApiModelProperty(value="较称类型(1:断差;2:较称)",required=false)
     private String compareType;
 
+    /**
+     * 预约主键(SCALE_NO,VARCHAR,20)
+     */
+    @ApiModelProperty(value="预约主键",required=false)
+    private String scaleNo;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -439,6 +445,14 @@ public class MeterWorkCompareSpot implements IBasePO<String> {
         this.compareType = compareType == null ? null : compareType.trim();
     }
 
+    public String getScaleNo() {
+        return scaleNo;
+    }
+
+    public void setScaleNo(String scaleNo) {
+        this.scaleNo = scaleNo == null ? null : scaleNo.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -475,6 +489,7 @@ public class MeterWorkCompareSpot implements IBasePO<String> {
         sb.append(", baseSpotNo5=").append(baseSpotNo5);
         sb.append(", baseSpotName5=").append(baseSpotName5);
         sb.append(", compareType=").append(compareType);
+        sb.append(", scaleNo=").append(scaleNo);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 35 - 0
src/main/java/com/steerinfo/meterwork/meterworkcomparespot/service/IMeterWorkCompareSpotService.java

@@ -2,6 +2,9 @@ package com.steerinfo.meterwork.meterworkcomparespot.service;
 
 import com.steerinfo.framework.service.IBaseService;
 import com.steerinfo.meterwork.meterworkcomparespot.model.MeterWorkCompareSpot;
+import com.steerinfo.meterwork.meterworkcomparespotscale.model.MeterWorkCompareSpotScale;
+import org.apache.ibatis.annotations.Param;
+
 import java.util.Date;
 import java.math.BigDecimal;
 
@@ -20,4 +23,36 @@ import java.math.BigDecimal;
  */
 public interface IMeterWorkCompareSpotService extends IBaseService<MeterWorkCompareSpot, String>{
 
+    /**
+     * 根据车号查询该车号在1个小时内是否有数据
+     * @param carNo 车号
+     * @return 有:返回该条数据的主键 没有:空值
+     */
+    String isExistWithinOneHour(String carNo);
+
+    /**
+     * 根据主键更新
+     * @param spot 需要更新的数据
+     * @return
+     */
+    int updateByPrimaryKey(MeterWorkCompareSpot spot);
+
+    /**
+     * 创建主键
+     * @return 返回主键
+     */
+    String creatCompareSpotId();
+
+    /**
+     * 插入数据
+     * @param spot 需要插入的数据
+     */
+    void insert(MeterWorkCompareSpot spot);
+
+    /**
+     * 更新预约与较秤数据
+     * @param scale 需要更新的预约数据
+     * @param spot 需要更新的较秤数据
+     */
+    void updateSpotAndScale(MeterWorkCompareSpotScale scale, MeterWorkCompareSpot spot);
 }

+ 40 - 0
src/main/java/com/steerinfo/meterwork/meterworkcomparespot/service/impl/MeterWorkCompareSpotServiceImpl.java

@@ -5,8 +5,14 @@ import com.steerinfo.framework.service.impl.BaseServiceImpl;
 import com.steerinfo.meterwork.meterworkcomparespot.model.MeterWorkCompareSpot;
 import com.steerinfo.meterwork.meterworkcomparespot.mapper.MeterWorkCompareSpotMapper;
 import com.steerinfo.meterwork.meterworkcomparespot.service.IMeterWorkCompareSpotService;
+import com.steerinfo.meterwork.meterworkcomparespotscale.mapper.MeterWorkCompareSpotScaleMapper;
+import com.steerinfo.meterwork.meterworkcomparespotscale.model.MeterWorkCompareSpotScale;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.math.BigDecimal;
 
@@ -28,9 +34,43 @@ public class MeterWorkCompareSpotServiceImpl extends BaseServiceImpl<MeterWorkCo
 
     @Autowired
     private MeterWorkCompareSpotMapper meterWorkCompareSpotMapper;
+    @Autowired
+    private MeterWorkCompareSpotScaleMapper meterWorkCompareSpotScaleMapper;
 
     @Override
     protected IBaseMapper<MeterWorkCompareSpot, String> getMapper() {
         return meterWorkCompareSpotMapper;
     }
+
+    @Override
+    public String isExistWithinOneHour(String carNo) {
+        return meterWorkCompareSpotMapper.isExistWithinHour(1,carNo,"1");
+    }
+
+    public int updateByPrimaryKey(MeterWorkCompareSpot spot){
+       return meterWorkCompareSpotMapper.updateByPrimaryKey(spot);
+    }
+
+    @Override
+    public String creatCompareSpotId() {
+        String id =   new SimpleDateFormat("yyyyMMdd").format(new Date()) + meterWorkCompareSpotMapper.GetNewID();
+        //System.out.println(id);
+        return id;
+    }
+
+    @Override
+    public void insert(MeterWorkCompareSpot spot) {
+        meterWorkCompareSpotMapper.insertSelective(spot);
+    }
+
+    @Override
+    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
+    public void updateSpotAndScale(MeterWorkCompareSpotScale scale, MeterWorkCompareSpot spot) {
+        meterWorkCompareSpotScaleMapper.updateByPrimaryKeySelective(scale);
+        meterWorkCompareSpotMapper.updateByPrimaryKeySelective(spot);
+    }
+
+
+
+
 }

+ 220 - 4
src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/controller/MeterWorkCompareSpotScaleController.java

@@ -4,20 +4,20 @@ import com.steerinfo.framework.controller.BaseRESTfulController;
 import com.steerinfo.framework.controller.RESTfulResult;
 import com.steerinfo.framework.service.pagehelper.PageList;
 import com.steerinfo.framework.utils.collection.ListUtils;
+import com.steerinfo.meterwork.meterworkcomparespot.model.MeterWorkCompareSpot;
+import com.steerinfo.meterwork.meterworkcomparespot.service.IMeterWorkCompareSpotService;
 import com.steerinfo.meterwork.meterworkcomparespotscale.model.MeterWorkCompareSpotScale;
 import com.steerinfo.meterwork.meterworkcomparespotscale.service.IMeterWorkCompareSpotScaleService;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.models.auth.In;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.ArrayList;
+import java.util.*;
 import java.math.BigDecimal;
 
 /**
@@ -39,6 +39,9 @@ public class MeterWorkCompareSpotScaleController extends BaseRESTfulController {
 
     @Autowired
     IMeterWorkCompareSpotScaleService meterWorkCompareSpotScaleService;
+    @Autowired
+    IMeterWorkCompareSpotService meterWorkCompareSpotService;
+
 
     @ApiOperation(value="获取列表", notes="分页查询")
     @ApiImplicitParams({
@@ -107,4 +110,217 @@ public class MeterWorkCompareSpotScaleController extends BaseRESTfulController {
     	}
       return success();
     }
+
+    @ApiOperation(value="提交预约", notes="新增比对预约")
+    @PostMapping(value = "/makeAnAppointment" ,produces  = "application/json;charset=UTF-8")
+    public RESTfulResult makeAnAppointment(@RequestBody HashMap<String,Object> map){
+
+        //车号
+        String carNo = null;
+        //重量
+        Long weight = 0L;
+        //操作人姓名
+        String name = null;
+        //秤点名
+        String spotName = null;
+        //秤点编号
+        String spotNo = null;
+        //预约次数
+        Long num = 0L;
+
+        //获取参数
+        //当参数缺少时会向返回 “参数不全或错误“
+        try {
+            carNo = map.get("carNo").toString();
+            weight = Long.valueOf(map.get("weight").toString());
+            name = map.get("name").toString();
+            spotName = map.get("spotName").toString();
+            spotNo = map.get("spotNo").toString();
+            num = Long.valueOf(map.get("num").toString());
+        }catch (Exception e){
+            return failed(null,"参数不全或错误");
+        }
+        //日期
+        Date date = new Date();
+
+        //提交预约时,最大预约次数为4
+        //提交预约的同时也会向METER_WORK_COMPARE_SPOT表插入一条数据
+        //最大存储数据量(5) - 已存储量(1) = 4
+        //提示:”预约次数不允许超过最大值4“
+        if (num>4){
+            return failed(null,"预约次数不允许超过最大值4");
+        }
+
+        //1、判断该车号在过去一天内是否存在未使用的预约
+        String compareSpotScaleId = meterWorkCompareSpotScaleService.isExistWithinOneDay(carNo);
+
+        if (compareSpotScaleId == null){//不存在未使用的预约 创建预约
+            //向METER_WORK_COMPARE_SPOT插入数据
+            MeterWorkCompareSpot spot = new MeterWorkCompareSpot();
+            //主键
+            spot.setCompareSpotId(meterWorkCompareSpotService.creatCompareSpotId());
+            //车号
+            spot.setCarNo(carNo);
+            //称重日期
+            spot.setWeightDate1(date);
+            //重量
+            spot.setWeightNum1(weight);
+            //秤点名称
+            spot.setBaseSpotName1(spotName);
+            //秤点编号
+            spot.setBaseSpotNo1(spotNo);
+            //类型 较秤:2
+            spot.setCompareType("2");
+            //创建时间
+            spot.setCreateTime(date);
+            //创建人
+            spot.setCreateManName(name);
+            //状态 默认为2 即使5条数据满了以后也不改变其状态
+            spot.setValueFlag("2");
+
+            //向METER_WORK_COMPARE_SPOT_SCALE插入数据
+            MeterWorkCompareSpotScale scale = new MeterWorkCompareSpotScale();
+            //预约主键
+            scale.setCompareSpotScaleId(meterWorkCompareSpotScaleService.creatCompareSpotScaleId());
+            //预约次数
+            scale.setNum(num);
+            //已使用的次数
+            scale.setUsedNum(0L);
+            //创建时状态为:未使用:1
+            //注意与上面的状态区别
+            //当使用次数与预约次数相等时,该状态会变成 已使用:2
+            scale.setValueFlag("1");
+            //创建时间
+            scale.setCreateTime(date);
+            //车号
+            scale.setCarNo(carNo);
+            //创建人姓名
+            scale.setCreateManName(name);
+            //添加预约主键
+            spot.setScaleNo(scale.getCompareSpotScaleId());
+            //存入数据库
+            meterWorkCompareSpotScaleService.creatSpotAndScale(spot,scale);
+
+        }else {//存在未使用的预约 提示:”不允许存在重复比对预约“
+            return success(null,"不允许存在重复比对预约");
+        }
+
+        //执行完成后,提示:”预约成功“
+        return success(null,"预约成功");
+    }
+
+    @ApiOperation(value="提交结果", notes="提交较秤结果")
+    @PutMapping(value = "/submitScaleResult" ,produces  = "application/json;charset=UTF-8")
+    public RESTfulResult submitScaleResult(@RequestBody HashMap<String,Object> map){
+
+        //车号
+        String carNo = null;
+        //重量
+        Long weight = 0L;
+        //姓名
+        String name = null;
+        //秤点名
+        String spotName = null;
+        //秤点编号
+        String spotNo = null;
+        //预约编号
+        String scaleNo = null;
+
+        //获取参数
+        //当参数缺少时会向返回 “参数不全或错误“
+        try {
+            carNo = map.get("carNo").toString();
+            weight = Long.valueOf(map.get("weight").toString());
+            name = map.get("name").toString();
+            spotName = map.get("spotName").toString();
+            spotNo = map.get("spotNo").toString();
+            scaleNo = map.get("scaleNo").toString();
+        }catch (Exception e){
+            return failed(null,"参数不全或错误");
+        }
+        Date date = new Date();
+
+        //查看预约号是否可用
+        MeterWorkCompareSpotScale scale = null;
+        try {
+            scale = meterWorkCompareSpotScaleService.queryByProperty("compareSpotScaleId", scaleNo).get(0);
+            //System.out.println(scale);
+        }catch (Exception e){
+            return failed("预约号错误或不存在");
+        }
+
+        //查看该预约是否已经用完,用完:返回:”比对次数已经用完,请重新比对预约“
+        if (scale.getValueFlag().equals("2")){
+            return failed(null,"比对次数已经用完,请重新比对预约");
+        }
+
+        //防止预约的车号与传过来的车号不一致
+        if (!scale.getCarNo().equals(carNo)){
+            return failed(null,"预约号与车号不匹配,请检查");
+        }
+
+        //使用次数 + 1
+        scale.setUsedNum(scale.getUsedNum() + 1);
+        //判断是不是最后一次
+        if (scale.getUsedNum() == scale.getNum()){
+            //状态 已用完:2
+            scale.setValueFlag("2");
+        }
+
+        //通过预约号去METER_WORK_COMPARE_SPOT中查询
+        //正常来说,预约号与METER_WORK_COMPARE_SPOT表是一一对应的
+        MeterWorkCompareSpot spot = null;
+        try {
+            spot = meterWorkCompareSpotService.queryByProperty("scaleNo", scaleNo).get(0);
+        }catch (Exception e){
+            return failed(null,"METER_WORK_COMPARE_SPOT表中没有该预约号");
+        }
+        //判断该数据填到哪里
+        if (spot.getWeightNum2() == null){
+            //重量
+            spot.setWeightNum2(weight);
+            //秤点编号
+            spot.setBaseSpotNo2(spotNo);
+            //称重时间
+            spot.setWeightDate2(date);
+            //称点名
+            spot.setBaseSpotName2(spotName);
+        }else if (spot.getWeightNum3() == null){
+            spot.setWeightNum3(weight);
+            spot.setBaseSpotNo3(spotNo);
+            spot.setWeightDate3(date);
+            spot.setBaseSpotName3(spotName);
+        }else if (spot.getWeightNum4() == null){
+            spot.setWeightNum4(weight);
+            spot.setBaseSpotNo4(spotNo);
+            spot.setWeightDate4(date);
+            spot.setBaseSpotName4(spotName);
+        }else{
+            spot.setWeightNum5(weight);
+            spot.setBaseSpotNo5(spotNo);
+            spot.setWeightDate5(date);
+            spot.setBaseSpotName5(spotName);
+        }
+        //更新时间
+        spot.setUpdateTime(date);
+        //更新操作人
+        spot.setUpdateManName(name);
+        //更新
+        meterWorkCompareSpotService.updateSpotAndScale(scale,spot);
+        //返回:”添加成功“
+        return success(null,"添加成功");
+    }
+
+    @ApiOperation(value = "查询预约号",notes = "通过车号查询24小时以内未使用完的预约号")
+    @GetMapping(value = "/getScaleNo" )
+    public RESTfulResult getScaleNo(@RequestParam String carNo){
+        String scaleId = meterWorkCompareSpotScaleService.isExistWithinOneDay(carNo);
+        if (scaleId == null){
+            return success(null,"不存在24小时内未使用的预约");
+        }else{
+            return success(scaleId,"存在24小小时内未使用得到预约");
+        }
+
+    }
+
 }

+ 9 - 0
src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/mapper/MeterWorkCompareSpotScaleMapper.java

@@ -7,4 +7,13 @@ import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
 public interface MeterWorkCompareSpotScaleMapper extends IBaseMapper<MeterWorkCompareSpotScale, String> {
+    //生成流水号
+    String GetNewID();
+
+    /**
+     * 判断创建时间在几个小时内是否存在未使用的预约
+     * @param time 表示几个小时
+     * @return 存在:返回最近的主键
+     */
+    String isExistWithinHour(Integer time,String carNo);
 }

+ 60 - 26
src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/mapper/MeterWorkCompareSpotScaleMapper.xml

@@ -12,20 +12,21 @@
     <result column="UPDATE_MAN_PHONE" jdbcType="VARCHAR" property="updateManPhone" />
     <result column="CAR_NO" jdbcType="VARCHAR" property="carNo" />
     <result column="NUM" jdbcType="DECIMAL" property="num" />
+    <result column="USED_NUM" jdbcType="DECIMAL" property="usedNum" />
   </resultMap>
   <sql id="columns">
     COMPARE_SPOT_SCALE_ID, VALUE_FLAG, CREATE_MAN_NAME, CREATE_TIME, UPDATE_MAN_NAME, 
-    UPDATE_TIME, CREATE_MAN_PHONE, UPDATE_MAN_PHONE, CAR_NO, NUM
+    UPDATE_TIME, CREATE_MAN_PHONE, UPDATE_MAN_PHONE, CAR_NO, NUM, USED_NUM
   </sql>
   <sql id="columns_alias">
     t.COMPARE_SPOT_SCALE_ID, t.VALUE_FLAG, t.CREATE_MAN_NAME, t.CREATE_TIME, t.UPDATE_MAN_NAME, 
-    t.UPDATE_TIME, t.CREATE_MAN_PHONE, t.UPDATE_MAN_PHONE, t.CAR_NO, t.NUM
+    t.UPDATE_TIME, t.CREATE_MAN_PHONE, t.UPDATE_MAN_PHONE, t.CAR_NO, t.NUM, t.USED_NUM
   </sql>
   <sql id="select">
-    SELECT <include refid="columns"/> FROM METER_WORK_COMPARE_SPOT_SCALE
+    SELECT <include refid="columns" /> FROM METER_WORK_COMPARE_SPOT_SCALE
   </sql>
   <sql id="select_alias">
-    SELECT <include refid="columns_alias"/> FROM METER_WORK_COMPARE_SPOT_SCALE t
+    SELECT <include refid="columns_alias" /> FROM METER_WORK_COMPARE_SPOT_SCALE t
   </sql>
   <sql id="where">
     <where> 
@@ -59,6 +60,9 @@
       <if test="num != null">
         and NUM = #{num}
       </if>
+      <if test="usedNum != null">
+        and USED_NUM = #{usedNum}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -93,6 +97,9 @@
       <if test="num != null">
         and NUM = #{num}
       </if>
+      <if test="usedNum != null">
+        and USED_NUM = #{usedNum}
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
@@ -129,16 +136,19 @@
       <if test="num != null">
         or NUM = #{num}
       </if>
+      <if test="usedNum != null">
+        or USED_NUM = #{usedNum}
+      </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.meterwork.meterworkcomparespotscale.model.MeterWorkCompareSpotScale">
     insert into METER_WORK_COMPARE_SPOT_SCALE (COMPARE_SPOT_SCALE_ID, VALUE_FLAG, CREATE_MAN_NAME, 
       CREATE_TIME, UPDATE_MAN_NAME, UPDATE_TIME, 
       CREATE_MAN_PHONE, UPDATE_MAN_PHONE, CAR_NO, 
-      NUM)
+      NUM, USED_NUM)
     values (#{compareSpotScaleId,jdbcType=VARCHAR}, #{valueFlag,jdbcType=VARCHAR}, #{createManName,jdbcType=VARCHAR}, 
       #{createTime,jdbcType=TIMESTAMP}, #{updateManName,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, 
       #{createManPhone,jdbcType=VARCHAR}, #{updateManPhone,jdbcType=VARCHAR}, #{carNo,jdbcType=VARCHAR}, 
-      #{num,jdbcType=DECIMAL})
+      #{num,jdbcType=DECIMAL}, #{usedNum,jdbcType=DECIMAL})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.meterwork.meterworkcomparespotscale.model.MeterWorkCompareSpotScale">
     insert into METER_WORK_COMPARE_SPOT_SCALE
@@ -173,6 +183,9 @@
       <if test="num != null">
         NUM,
       </if>
+      <if test="usedNum != null">
+        USED_NUM,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="compareSpotScaleId != null">
@@ -205,6 +218,9 @@
       <if test="num != null">
         #{num,jdbcType=DECIMAL},
       </if>
+      <if test="usedNum != null">
+        #{usedNum,jdbcType=DECIMAL},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.meterwork.meterworkcomparespotscale.model.MeterWorkCompareSpotScale">
@@ -217,7 +233,8 @@
       CREATE_MAN_PHONE = #{createManPhone,jdbcType=VARCHAR},
       UPDATE_MAN_PHONE = #{updateManPhone,jdbcType=VARCHAR},
       CAR_NO = #{carNo,jdbcType=VARCHAR},
-      NUM = #{num,jdbcType=DECIMAL}
+      NUM = #{num,jdbcType=DECIMAL},
+      USED_NUM = #{usedNum,jdbcType=DECIMAL}
     where COMPARE_SPOT_SCALE_ID = #{compareSpotScaleId,jdbcType=VARCHAR}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.meterwork.meterworkcomparespotscale.model.MeterWorkCompareSpotScale">
@@ -250,20 +267,23 @@
       <if test="num != null">
         NUM = #{num,jdbcType=DECIMAL},
       </if>
+      <if test="usedNum != null">
+        USED_NUM = #{usedNum,jdbcType=DECIMAL},
+      </if>
     </set>
     where COMPARE_SPOT_SCALE_ID = #{compareSpotScaleId,jdbcType=VARCHAR}
   </update>
   <select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
-    <include refid="select"/>
+    <include refid="select" />
     where COMPARE_SPOT_SCALE_ID = #{compareSpotScaleId,jdbcType=VARCHAR}
   </select>
   <select id="selectByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
-    <include refid="select"/>
-    <include refid="where"/>
+    <include refid="select" />
+    <include refid="where" />
   </select>
   <select id="selectLikeByParameters" parameterType="java.util.HashMap" resultMap="BaseResultMap">
-    <include refid="select"/>
-    <include refid="whereLike"/>
+    <include refid="select" />
+    <include refid="whereLike" />
   </select>
   <insert id="batchInsert" parameterType="java.util.List">
     insert into METER_WORK_COMPARE_SPOT_SCALE 
@@ -271,72 +291,86 @@
       VALUE_FLAG, CREATE_MAN_NAME, CREATE_TIME, 
       UPDATE_MAN_NAME, UPDATE_TIME, 
       CREATE_MAN_PHONE, UPDATE_MAN_PHONE, 
-      CAR_NO, NUM)
+      CAR_NO, NUM, USED_NUM
+      )
     ( <foreach collection="list" item="item" separator="union all"> 
    select  
       #{item.compareSpotScaleId,jdbcType=VARCHAR}, 
       #{item.valueFlag,jdbcType=VARCHAR}, #{item.createManName,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP}, 
       #{item.updateManName,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP}, 
       #{item.createManPhone,jdbcType=VARCHAR}, #{item.updateManPhone,jdbcType=VARCHAR}, 
-      #{item.carNo,jdbcType=VARCHAR}, #{item.num,jdbcType=DECIMAL} from dual  
+      #{item.carNo,jdbcType=VARCHAR}, #{item.num,jdbcType=DECIMAL}, #{item.usedNum,jdbcType=DECIMAL}
+       from dual  
    </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
      update METER_WORK_COMPARE_SPOT_SCALE
      set
        COMPARE_SPOT_SCALE_ID=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_SCALE_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
           when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.compareSpotScaleId,jdbcType=VARCHAR}
        </foreach>
        ,VALUE_FLAG=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_SCALE_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
           when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.valueFlag,jdbcType=VARCHAR}
        </foreach>
        ,CREATE_MAN_NAME=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_SCALE_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
           when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.createManName,jdbcType=VARCHAR}
        </foreach>
        ,CREATE_TIME=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_SCALE_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
           when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.createTime,jdbcType=TIMESTAMP}
        </foreach>
        ,UPDATE_MAN_NAME=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_SCALE_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
           when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.updateManName,jdbcType=VARCHAR}
        </foreach>
        ,UPDATE_TIME=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_SCALE_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
           when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.updateTime,jdbcType=TIMESTAMP}
        </foreach>
        ,CREATE_MAN_PHONE=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_SCALE_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
           when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.createManPhone,jdbcType=VARCHAR}
        </foreach>
        ,UPDATE_MAN_PHONE=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_SCALE_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
           when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.updateManPhone,jdbcType=VARCHAR}
        </foreach>
        ,CAR_NO=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_SCALE_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
           when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.carNo,jdbcType=VARCHAR}
        </foreach>
        ,NUM=
-       <foreach collection="list" item="item" index="index" separator=" " open="case COMPARE_SPOT_SCALE_ID" close="end">
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
           when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.num,jdbcType=DECIMAL}
        </foreach>
+       ,USED_NUM=
+       <foreach close="end" collection="list" index="index" item="item" open="case COMPARE_SPOT_SCALE_ID" separator=" ">
+          when #{item.compareSpotScaleId,jdbcType=VARCHAR} then #{item.usedNum,jdbcType=DECIMAL}
+       </foreach>
      where COMPARE_SPOT_SCALE_ID in 
-     <foreach collection="list" index="index" item="item" separator="," open="(" close=")">
+     <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
     #{item.compareSpotScaleId,jdbcType=VARCHAR}
      </foreach> 
   </update>
   <delete id="batchDelete" parameterType="java.util.List">
     delete from METER_WORK_COMPARE_SPOT_SCALE
     where COMPARE_SPOT_SCALE_ID in 
-    <foreach collection="list" item="id" open="(" close=")" separator=",">
+    <foreach close=")" collection="list" item="id" open="(" separator=",">
       #{id}
     </foreach>
   </delete>
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+  <select id="GetNewID" parameterType="java.lang.String" resultType="java.lang.String">
+    SELECT LPAD(NVL(MAX(TO_NUMBER(SUBSTR(COMPARE_SPOT_ID, LENGTH(COMPARE_SPOT_ID) - 4))),0) + 1,5,'0') COMPARE_SPOT_ID
+    FROM METER_WORK_COMPARE_SPOT
+  </select>
+
+  <select id="isExistWithinHour" resultType="java.lang.String">
+    SELECT COMPARE_SPOT_SCALE_ID FROM (SELECT * FROM METER_WORK_COMPARE_SPOT_SCALE WHERE (CREATE_TIME BETWEEN SYSDATE-(#{time}/24) AND SYSDATE) AND CAR_NO = #{carNo} AND VALUE_FLAG = 1 ORDER BY CREATE_TIME DESC )  WHERE ROWNUM = 1
+  </select>
   
 </mapper>

+ 15 - 0
src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/model/MeterWorkCompareSpotScale.java

@@ -67,6 +67,12 @@ public class MeterWorkCompareSpotScale implements IBasePO<String> {
     @ApiModelProperty(value="数量",required=false)
     private Long num;
 
+    /**
+     * 使用数量(USED_NUM,DECIMAL,10)
+     */
+    @ApiModelProperty(value="使用数量",required=false)
+    private Long usedNum;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -159,6 +165,14 @@ public class MeterWorkCompareSpotScale implements IBasePO<String> {
         this.num = num;
     }
 
+    public Long getUsedNum() {
+        return usedNum;
+    }
+
+    public void setUsedNum(Long usedNum) {
+        this.usedNum = usedNum;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -175,6 +189,7 @@ public class MeterWorkCompareSpotScale implements IBasePO<String> {
         sb.append(", updateManPhone=").append(updateManPhone);
         sb.append(", carNo=").append(carNo);
         sb.append(", num=").append(num);
+        sb.append(", usedNum=").append(usedNum);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 19 - 0
src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/service/IMeterWorkCompareSpotScaleService.java

@@ -1,6 +1,7 @@
 package com.steerinfo.meterwork.meterworkcomparespotscale.service;
 
 import com.steerinfo.framework.service.IBaseService;
+import com.steerinfo.meterwork.meterworkcomparespot.model.MeterWorkCompareSpot;
 import com.steerinfo.meterwork.meterworkcomparespotscale.model.MeterWorkCompareSpotScale;
 import java.util.Date;
 import java.math.BigDecimal;
@@ -19,5 +20,23 @@ import java.math.BigDecimal;
  * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  */
 public interface IMeterWorkCompareSpotScaleService extends IBaseService<MeterWorkCompareSpotScale, String>{
+    /**
+     * 创建主键
+     * @return 返回主键
+     */
+    String creatCompareSpotScaleId();
 
+    /**
+     * 根据车号查询该车号在1天内是否有未使用的预约
+     * @param carNo
+     * @return
+     */
+    String isExistWithinOneDay(String carNo);
+
+    /**
+     * 新增比对预约并新增比对结果
+     * @param spot 需要新增比对比对结果的数据
+     * @param scale 需要新增比对预约的数据
+     */
+    void creatSpotAndScale(MeterWorkCompareSpot spot, MeterWorkCompareSpotScale scale);
 }

+ 29 - 0
src/main/java/com/steerinfo/meterwork/meterworkcomparespotscale/service/impl/MeterWorkCompareSpotScaleServiceImpl.java

@@ -2,11 +2,17 @@ package com.steerinfo.meterwork.meterworkcomparespotscale.service.impl;
 
 import com.steerinfo.framework.mapper.IBaseMapper;
 import com.steerinfo.framework.service.impl.BaseServiceImpl;
+import com.steerinfo.meterwork.meterworkcomparespot.mapper.MeterWorkCompareSpotMapper;
+import com.steerinfo.meterwork.meterworkcomparespot.model.MeterWorkCompareSpot;
 import com.steerinfo.meterwork.meterworkcomparespotscale.model.MeterWorkCompareSpotScale;
 import com.steerinfo.meterwork.meterworkcomparespotscale.mapper.MeterWorkCompareSpotScaleMapper;
 import com.steerinfo.meterwork.meterworkcomparespotscale.service.IMeterWorkCompareSpotScaleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.math.BigDecimal;
 
@@ -28,9 +34,32 @@ public class MeterWorkCompareSpotScaleServiceImpl extends BaseServiceImpl<MeterW
 
     @Autowired
     private MeterWorkCompareSpotScaleMapper meterWorkCompareSpotScaleMapper;
+    @Autowired
+    private MeterWorkCompareSpotMapper meterWorkCompareSpotMapper;
 
     @Override
     protected IBaseMapper<MeterWorkCompareSpotScale, String> getMapper() {
         return meterWorkCompareSpotScaleMapper;
     }
+
+    @Override
+    public String creatCompareSpotScaleId() {
+        String id =   new SimpleDateFormat("yyyyMMdd").format(new Date()) + meterWorkCompareSpotScaleMapper.GetNewID();
+        //System.out.println(id);
+        return id;
+    }
+
+    @Override
+    public String isExistWithinOneDay(String carNo) {
+        return meterWorkCompareSpotScaleMapper.isExistWithinHour(24,carNo);
+    }
+
+    @Override
+    @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
+    public void creatSpotAndScale(MeterWorkCompareSpot spot, MeterWorkCompareSpotScale scale) {
+        meterWorkCompareSpotScaleMapper.insertSelective(scale);
+        meterWorkCompareSpotMapper.insertSelective(spot);
+    }
+
+
 }

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

@@ -970,10 +970,10 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     return rm;
                 }
                 //洁净数据不能小于400
-                if(num01.compareTo(BigDecimal.valueOf(400)) == -1){
+                /*if(num01.compareTo(BigDecimal.valueOf(400)) == -1){
                     rm.setMessage("选择的两条一次计量数据不能小于400kg,请确认!!");
                     return rm;
-                }
+                }*/
                 //一次数据是否为有效
                 if(first01.getValueFlag().equals("2") || first01.getValueFlag().equals("0")){
                     rm.setMessage("选择的一次计量数据已作废或者已洁净,请确认!!");
@@ -1161,10 +1161,10 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                     return rm;
                 }
                 //洁净数据不能小于400
-                if(num01.compareTo(BigDecimal.valueOf(400)) == -1){
+                /*if(num01.compareTo(BigDecimal.valueOf(400)) == -1){
                     rm.setMessage("选择的两条一次计量数据不能小于400kg,请确认!!");
                     return rm;
-                }
+                }*/
                 //一次数据是否为有效
                 if(first01.getValueFlag().equals("2") || first01.getValueFlag().equals("0")){
                     rm.setMessage("选择的一次计量数据已作废或者已洁净,请确认!!");
@@ -1387,10 +1387,10 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 return rm;
             }
             //洁净数据不能小于400
-            if(num01.compareTo(BigDecimal.valueOf(400)) == -1){
+            /*if(num01.compareTo(BigDecimal.valueOf(400)) == -1){
                 rm.setMessage("选择的两条一次计量数据不能小于400kg,请确认!!");
                 return rm;
-            }
+            }*/
             //一次数据是否为有效
             if(first01.getValueFlag().equals("2") || first01.getValueFlag().equals("0")){
                 rm.setMessage("选择的一次计量数据已作废或者已洁净,请确认!!");
@@ -1608,9 +1608,9 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                 return "两条一次计量数据车号不一致,请确认!!";
             }
             //洁净数据不能小于400
-            if(num01.compareTo(BigDecimal.valueOf(400)) == -1){
+            /*if(num01.compareTo(BigDecimal.valueOf(400)) == -1){
                 return "选择的两条一次计量数据不能小于400kg,请确认!!";
-            }
+            }*/
             //委托信息是否为有效数据
             if(pts01.getValueFlag().equals("2") || pts02.getValueFlag().equals("2")){
                 return "委托信息已使用!!";
@@ -3103,10 +3103,10 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
             List<MeterWorkRailwayActual> actuals = new ArrayList<>();
 
             BigDecimal num = grossModel.getMeterWeight().subtract(tareModel.getMeterWeight()).abs();
-            if(num.compareTo(BigDecimal.valueOf(400)) == -1){
+            /*if(num.compareTo(BigDecimal.valueOf(400)) == -1){
                 rm.setMessage("选择的两条一次计量数据不能小于400kg,请确认!!");
                 return rm;
-            }
+            }*/
             if(!grossModel.getRailwayNo().equals(tareModel.getRailwayNo())){
                 rm.setMessage("两条一次计量数据车号不一致,请确认!!");
                 return rm;
@@ -4121,8 +4121,8 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
                         first.setActualFirstNo(afl + meterWorkRailwayActFirstMapper.getNewID(afl));
                         meterWorkRailwayActFirstMapper.insertSelective(first);
                         BigDecimal num = firstList.get(0).getMeterWeight().subtract(first.getMeterWeight()).abs();
-                        //洁净数据不能小于400
-                        if(num.compareTo(BigDecimal.valueOf(400)) == -1){
+                        //洁净数据不能小于10t
+                        if(num.compareTo(DbConstants.RAILWAY_WEIGHT) == -1){
                             first.setActualFirstNo(afl + meterWorkRailwayActFirstMapper.getNewID(afl));
                             int i = meterWorkRailwayActFirstMapper.insertSelective(first);
                             if (i >= 1) {

+ 20 - 11
src/main/java/com/steerinfo/meterwork/meterworkrailwayactual/service/impl/MeterWorkRailwayActualServiceImpl.java

@@ -419,12 +419,16 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
         grossrow.setUpdateManNo(userId);
         meterWorkRailwayActFirstMapper.updateByPrimaryKey(grossrow);
 
-        // 皮重
-        MeterWorkRailwayActFirst tarerow = meterWorkRailwayActFirstMapper.selectAndMatch(queryrow.getActualFirst2No(), predictionNo);
-        tarerow.setUpdateTime(new Date());
-        tarerow.setUpdateManName(userName + ": 洁净数据匹配委托操作");
-        tarerow.setUpdateManNo(userId);
-        meterWorkRailwayActFirstMapper.updateByPrimaryKey(tarerow);
+        // 皮重       特殊情况:标识皮重过磅,会导致没有皮重信息,就直接跳过
+        try{
+            MeterWorkRailwayActFirst tarerow = meterWorkRailwayActFirstMapper.selectAndMatch(queryrow.getActualFirst2No(), predictionNo);
+            tarerow.setUpdateTime(new Date());
+            tarerow.setUpdateManName(userName + ": 洁净数据匹配委托操作");
+            tarerow.setUpdateManNo(userId);
+            meterWorkRailwayActFirstMapper.updateByPrimaryKey(tarerow);
+        }catch(Exception e) {
+
+        }
 
         // 处理预报
         if (StringUtils.isNotEmpty(predictionNo)) {
@@ -550,12 +554,17 @@ public class MeterWorkRailwayActualServiceImpl extends BaseServiceImpl<MeterWork
         meterWorkRailwayActFirstMapper.updateByPrimaryKey(grossrow);
 
         // 皮重
-        MeterWorkRailwayActFirst tarerow = meterWorkRailwayActFirstMapper.selectAndRemove(model.getActualFirst2No());
+        try{
+            MeterWorkRailwayActFirst tarerow = meterWorkRailwayActFirstMapper.selectAndRemove(model.getActualFirst2No());
 //        tarerow.setValueFlag("3");
-        tarerow.setUpdateTime(new Date());
-        tarerow.setUpdateManName(userName + ": 洁净数据解除委托操作");
-        tarerow.setUpdateManNo(userId);
-        meterWorkRailwayActFirstMapper.updateByPrimaryKey(tarerow);
+            tarerow.setUpdateTime(new Date());
+            tarerow.setUpdateManName(userName + ": 洁净数据解除委托操作");
+            tarerow.setUpdateManNo(userId);
+            meterWorkRailwayActFirstMapper.updateByPrimaryKey(tarerow);
+        }catch(Exception e) {
+
+        }
+
 
         // 处理预报
         if (StringUtils.isNotEmpty(model.getPredictionNo())) {

+ 12 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayscheduledhelp/controller/MeterWorkRailwayScheduledHelpController.java

@@ -60,6 +60,18 @@ public class MeterWorkRailwayScheduledHelpController extends BaseRESTfulControll
         PageList<MeterWorkRailwayScheduledHelp> list = meterWorkRailwayScheduledHelpService.queryLikeForPage(parmas, pageNum, pageSize);
         return success(list);
     }
+
+    @ApiOperation(value="获取列表", notes="分页模糊查询")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer")
+    })
+    //@RequiresPermissions("meterworkrailwayscheduledhelp:view")
+    @GetMapping(value = "/likeByDesc")
+    public RESTfulResult likeByDesc(@RequestParam HashMap parmas,Integer pageNum, Integer pageSize){
+        PageList<MeterWorkRailwayScheduledHelp> list = meterWorkRailwayScheduledHelpService.likeByDesc(parmas, pageNum, pageSize);
+        return success(list);
+    }
     
     @ApiOperation(value="创建", notes="根据MeterWorkRailwayScheduledHelp对象创建")
     @ApiImplicitParam(name = "meterWorkRailwayScheduledHelp", value = "详细实体meterWorkRailwayScheduledHelp", required = true, dataType = "MeterWorkRailwayScheduledHelp")

+ 5 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayscheduledhelp/mapper/MeterWorkRailwayScheduledHelpMapper.java

@@ -5,7 +5,12 @@ import com.steerinfo.meterwork.meterworkrailwayscheduledhelp.model.MeterWorkRail
 import feign.Param;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 @Mapper
 public interface MeterWorkRailwayScheduledHelpMapper extends IBaseMapper<MeterWorkRailwayScheduledHelp, String> {
     String getNewID(@Param(value = "afl") String afl);
+    List<MeterWorkRailwayScheduledHelp> likeByDesc(HashMap<String, Object> var1);
 }

+ 18 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayscheduledhelp/mapper/MeterWorkRailwayScheduledHelpMapper.xml

@@ -76,6 +76,12 @@
       <if test="warmTypeName != null and warmTypeName != ''">
         and WARM_TYPE_NAME = #{warmTypeName}
       </if>
+      <if test="startTime01 != null and startTime01 != ''">
+        and create_time >= to_date(#{startTime01}, 'yyyy-MM-dd HH24:mi:ss')
+      </if>
+      <if test="endTime01 != null and endTime01 != ''">
+        and create_time &lt;= to_date(#{endTime01}, 'yyyy-MM-dd HH24:mi:ss')
+      </if>>
     </where>
   </sql>
   <sql id="whereLike">
@@ -122,6 +128,12 @@
       <if test="warmTypeName != null and warmTypeName != ''">
         and WARM_TYPE_NAME LIKE '%${warmTypeName}%'
       </if>
+      <if test="startTime01 != null and startTime01 != ''">
+        and create_time >= to_date(#{startTime01}, 'yyyy-MM-dd HH24:mi:ss')
+      </if>
+      <if test="endTime01 != null and endTime01 != ''">
+        and create_time &lt;= to_date(#{endTime01}, 'yyyy-MM-dd HH24:mi:ss')
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
@@ -443,4 +455,10 @@
     SELECT LPAD(NVL(MAX(TO_NUMBER(SUBSTR(HELP_ID, LENGTH(HELP_ID) - 3))),0) + 1,4,'0') HELP_ID
     FROM meter_work_railway_scheduled_help where instr(HELP_ID,#{afl,jdbcType=VARCHAR})>0
   </select>
+
+  <select id="likeByDesc" parameterType="java.util.HashMap" resultMap="BaseResultMap">
+    <include refid="select"/>
+    <include refid="whereLike"/>
+    order By create_time desc
+  </select>
 </mapper>

+ 5 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayscheduledhelp/service/IMeterWorkRailwayScheduledHelpService.java

@@ -2,9 +2,13 @@ package com.steerinfo.meterwork.meterworkrailwayscheduledhelp.service;
 
 import com.steerinfo.framework.controller.RESTfulResult;
 import com.steerinfo.framework.service.IBaseService;
+import com.steerinfo.framework.service.pagehelper.PageList;
 import com.steerinfo.meterwork.meterworkrailwayscheduledhelp.model.MeterWorkRailwayScheduledHelp;
 import com.steerinfo.meterwork.meterworkscheduledhelp.model.MeterWorkScheduledHelp;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * MeterWorkRailwayScheduledHelp服务接口:
  * @author generator
@@ -19,6 +23,7 @@ import com.steerinfo.meterwork.meterworkscheduledhelp.model.MeterWorkScheduledHe
  * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  */
 public interface IMeterWorkRailwayScheduledHelpService extends IBaseService<MeterWorkRailwayScheduledHelp, String>{
+    PageList<MeterWorkRailwayScheduledHelp> likeByDesc(HashMap<String, Object> var1, Integer var2, Integer var3);
     RESTfulResult scheduledHelp(String carNo, String baseSpotNo, String baseSpotName, String helpContent);
     RESTfulResult scheduledHelpConfirm(String id, String createNo, String createName, String result);
     RESTfulResult checkAdd(MeterWorkRailwayScheduledHelp model);

+ 11 - 0
src/main/java/com/steerinfo/meterwork/meterworkrailwayscheduledhelp/service/impl/MeterWorkRailwayScheduledHelpServiceImpl.java

@@ -3,6 +3,8 @@ package com.steerinfo.meterwork.meterworkrailwayscheduledhelp.service.impl;
 import com.steerinfo.framework.controller.RESTfulResult;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import com.steerinfo.framework.service.impl.BaseServiceImpl;
+import com.steerinfo.framework.service.pagehelper.PageHelper;
+import com.steerinfo.framework.service.pagehelper.PageList;
 import com.steerinfo.meterwork.except.MarkerMetException;
 import com.steerinfo.meterwork.meterworkrailwayscheduledhelp.mapper.MeterWorkRailwayScheduledHelpMapper;
 import com.steerinfo.meterwork.meterworkrailwayscheduledhelp.model.MeterWorkRailwayScheduledHelp;
@@ -16,6 +18,7 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * MeterWorkRailwayScheduledHelp服务实现:
@@ -41,6 +44,14 @@ public class MeterWorkRailwayScheduledHelpServiceImpl extends BaseServiceImpl<Me
         return meterWorkRailwayScheduledHelpMapper;
     }
 
+    @Override
+    public PageList<MeterWorkRailwayScheduledHelp> likeByDesc(HashMap<String, Object> parameters, Integer pageNum, Integer pageSize) {
+        PageHelper.startPage(pageNum, pageSize);
+        List<MeterWorkRailwayScheduledHelp> rows = meterWorkRailwayScheduledHelpMapper.likeByDesc(parameters);
+        PageList pageInfo = new PageList(rows);
+        return pageInfo;
+    }
+
     @Override
     public RESTfulResult scheduledHelp(String carNo, String baseSpotNo, String baseSpotName, String helpContent) {
         RESTfulResult rm = new RESTfulResult();