Jelajahi Sumber

紧急计量修改、外发外进时间添加

dengyj 4 tahun lalu
induk
melakukan
22411b1841

+ 35 - 9
src/main/java/com/steerinfo/baseinfo/meterbasescalepoint/mapper/MeterBaseScalePointMapper.xml

@@ -61,6 +61,7 @@
     <result column="AUTOSCALE_IP" jdbcType="VARCHAR" property="autoscaleIp" />
     <result column="PLC_IP" jdbcType="VARCHAR" property="plcIp" />
     <result column="DVR_IP" jdbcType="VARCHAR" property="dvrIp" />
+    <result column="USER_NAME" jdbcType="VARCHAR" property="userName" />
   </resultMap>
   <sql id="columns">
     SCALE_POINT_NO, SCALE_POINT_NAME, BASE_SPOT_NO, BASE_SPOT_NAME, WEIGH_INSTRUMENT_MODEL, 
@@ -72,7 +73,7 @@
     DVR_STATE, MOXA_STATE, PLC_STATE, LEFT_INFRARED_RAY_STATE, RIGHT_INFRARED_RAY_STATE, 
     AMPLIFIER_STATE, LAMP_STATE, ENTRUST_STATE, VERSION, SCAN_CAR, MSG_INFO, STOP_OVER_TIME, 
     VALID_IS_PRE, RED_GREEN_LIGHT_STATE, FRONT_INFRARED_RAY_STATE, REAR_INFRARED_RAY_STATE, 
-    RFID_STATE, ZERO_STATE, AUTOSCALE_IP, PLC_IP, DVR_IP
+    RFID_STATE, ZERO_STATE, AUTOSCALE_IP, PLC_IP, DVR_IP, USER_NAME
   </sql>
   <sql id="columns_alias">
     t.SCALE_POINT_NO, t.SCALE_POINT_NAME, t.BASE_SPOT_NO, t.BASE_SPOT_NAME, t.WEIGH_INSTRUMENT_MODEL, 
@@ -85,7 +86,7 @@
     t.PLC_STATE, t.LEFT_INFRARED_RAY_STATE, t.RIGHT_INFRARED_RAY_STATE, t.AMPLIFIER_STATE, 
     t.LAMP_STATE, t.ENTRUST_STATE, t.VERSION, t.SCAN_CAR, t.MSG_INFO, t.STOP_OVER_TIME, 
     t.VALID_IS_PRE, t.RED_GREEN_LIGHT_STATE, t.FRONT_INFRARED_RAY_STATE, t.REAR_INFRARED_RAY_STATE, 
-    t.RFID_STATE, t.ZERO_STATE, t.AUTOSCALE_IP, t.PLC_IP, t.DVR_IP
+    t.RFID_STATE, t.ZERO_STATE, t.AUTOSCALE_IP, t.PLC_IP, t.DVR_IP, t.USER_NAME
   </sql>
   <sql id="select">
     SELECT <include refid="columns" /> FROM METER_BASE_SCALE_POINT
@@ -272,6 +273,9 @@
       <if test="dvrIp != null and dvrIp != ''">
         and DVR_IP = #{dvrIp}
       </if>
+      <if test="userName != null and userName != ''">
+        and USER_NAME = #{userName}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -453,6 +457,9 @@
       <if test="dvrIp != null and dvrIp != ''">
         and DVR_IP LIKE '%${dvrIp}%'
       </if>
+      <if test="userName != null and userName != ''">
+        and USER_NAME LIKE '%${userName}%'
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
@@ -636,6 +643,9 @@
       <if test="dvrIp != null and dvrIp != ''">
         or DVR_IP = #{dvrIp}
       </if>
+      <if test="userName != null and userName != ''">
+        or USER_NAME = #{userName}
+      </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.baseinfo.meterbasescalepoint.model.MeterBaseScalePoint">
     insert into METER_BASE_SCALE_POINT (SCALE_POINT_NO, SCALE_POINT_NAME, BASE_SPOT_NO, 
@@ -657,8 +667,8 @@
       SCAN_CAR, MSG_INFO, STOP_OVER_TIME, 
       VALID_IS_PRE, RED_GREEN_LIGHT_STATE, FRONT_INFRARED_RAY_STATE, 
       REAR_INFRARED_RAY_STATE, RFID_STATE, ZERO_STATE, 
-      AUTOSCALE_IP, PLC_IP, DVR_IP
-      )
+      AUTOSCALE_IP, PLC_IP, DVR_IP, 
+      USER_NAME)
     values (#{scalePointNo,jdbcType=VARCHAR}, #{scalePointName,jdbcType=VARCHAR}, #{baseSpotNo,jdbcType=VARCHAR}, 
       #{baseSpotName,jdbcType=VARCHAR}, #{weighInstrumentModel,jdbcType=VARCHAR}, #{weighInstrumentParam,jdbcType=VARCHAR}, 
       #{moxaIp,jdbcType=VARCHAR}, #{moxaPort,jdbcType=VARCHAR}, #{validFlag,jdbcType=VARCHAR}, 
@@ -678,8 +688,8 @@
       #{scanCar,jdbcType=VARCHAR}, #{msgInfo,jdbcType=VARCHAR}, #{stopOverTime,jdbcType=VARCHAR}, 
       #{validIsPre,jdbcType=VARCHAR}, #{redGreenLightState,jdbcType=VARCHAR}, #{frontInfraredRayState,jdbcType=VARCHAR}, 
       #{rearInfraredRayState,jdbcType=VARCHAR}, #{rfidState,jdbcType=VARCHAR}, #{zeroState,jdbcType=VARCHAR}, 
-      #{autoscaleIp,jdbcType=VARCHAR}, #{plcIp,jdbcType=VARCHAR}, #{dvrIp,jdbcType=VARCHAR}
-      )
+      #{autoscaleIp,jdbcType=VARCHAR}, #{plcIp,jdbcType=VARCHAR}, #{dvrIp,jdbcType=VARCHAR}, 
+      #{userName,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.baseinfo.meterbasescalepoint.model.MeterBaseScalePoint">
     insert into METER_BASE_SCALE_POINT
@@ -861,6 +871,9 @@
       <if test="dvrIp != null">
         DVR_IP,
       </if>
+      <if test="userName != null">
+        USER_NAME,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="scalePointNo != null">
@@ -1040,6 +1053,9 @@
       <if test="dvrIp != null">
         #{dvrIp,jdbcType=VARCHAR},
       </if>
+      <if test="userName != null">
+        #{userName,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.baseinfo.meterbasescalepoint.model.MeterBaseScalePoint">
@@ -1101,7 +1117,8 @@
       ZERO_STATE = #{zeroState,jdbcType=VARCHAR},
       AUTOSCALE_IP = #{autoscaleIp,jdbcType=VARCHAR},
       PLC_IP = #{plcIp,jdbcType=VARCHAR},
-      DVR_IP = #{dvrIp,jdbcType=VARCHAR}
+      DVR_IP = #{dvrIp,jdbcType=VARCHAR},
+      USER_NAME = #{userName,jdbcType=VARCHAR}
     where SCALE_POINT_NO = #{scalePointNo,jdbcType=VARCHAR}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.baseinfo.meterbasescalepoint.model.MeterBaseScalePoint">
@@ -1281,6 +1298,9 @@
       <if test="dvrIp != null">
         DVR_IP = #{dvrIp,jdbcType=VARCHAR},
       </if>
+      <if test="userName != null">
+        USER_NAME = #{userName,jdbcType=VARCHAR},
+      </if>
     </set>
     where SCALE_POINT_NO = #{scalePointNo,jdbcType=VARCHAR}
   </update>
@@ -1319,7 +1339,8 @@
       VALID_IS_PRE, RED_GREEN_LIGHT_STATE, 
       FRONT_INFRARED_RAY_STATE, REAR_INFRARED_RAY_STATE, 
       RFID_STATE, ZERO_STATE, AUTOSCALE_IP, 
-      PLC_IP, DVR_IP)
+      PLC_IP, DVR_IP, USER_NAME
+      )
     ( <foreach collection="list" item="item" separator="union all"> 
    select  
       #{item.scalePointNo,jdbcType=VARCHAR}, 
@@ -1343,7 +1364,8 @@
       #{item.validIsPre,jdbcType=VARCHAR}, #{item.redGreenLightState,jdbcType=VARCHAR}, 
       #{item.frontInfraredRayState,jdbcType=VARCHAR}, #{item.rearInfraredRayState,jdbcType=VARCHAR}, 
       #{item.rfidState,jdbcType=VARCHAR}, #{item.zeroState,jdbcType=VARCHAR}, #{item.autoscaleIp,jdbcType=VARCHAR}, 
-      #{item.plcIp,jdbcType=VARCHAR}, #{item.dvrIp,jdbcType=VARCHAR} from dual  
+      #{item.plcIp,jdbcType=VARCHAR}, #{item.dvrIp,jdbcType=VARCHAR}, #{item.userName,jdbcType=VARCHAR}
+       from dual  
    </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
@@ -1585,6 +1607,10 @@
        <foreach close="end" collection="list" index="index" item="item" open="case SCALE_POINT_NO" separator=" ">
           when #{item.scalePointNo,jdbcType=VARCHAR} then #{item.dvrIp,jdbcType=VARCHAR}
        </foreach>
+       ,USER_NAME=
+       <foreach close="end" collection="list" index="index" item="item" open="case SCALE_POINT_NO" separator=" ">
+          when #{item.scalePointNo,jdbcType=VARCHAR} then #{item.userName,jdbcType=VARCHAR}
+       </foreach>
      where SCALE_POINT_NO in 
      <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
     #{item.scalePointNo,jdbcType=VARCHAR}

+ 15 - 1
src/main/java/com/steerinfo/baseinfo/meterbasescalepoint/model/MeterBaseScalePoint.java

@@ -3,7 +3,6 @@ package com.steerinfo.baseinfo.meterbasescalepoint.model;
 import com.steerinfo.framework.model.IBasePO;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -363,6 +362,12 @@ public class MeterBaseScalePoint implements IBasePO<String> {
     @ApiModelProperty(value="硬盘录像机IP",required=false)
     private String dvrIp;
 
+    /**
+     * 接管终端用户名称(远程计量用)(USER_NAME,VARCHAR,20)
+     */
+    @ApiModelProperty(value="接管终端用户名称(远程计量用)",required=false)
+    private String userName;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -847,6 +852,14 @@ public class MeterBaseScalePoint implements IBasePO<String> {
         this.dvrIp = dvrIp == null ? null : dvrIp.trim();
     }
 
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName == null ? null : userName.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -912,6 +925,7 @@ public class MeterBaseScalePoint implements IBasePO<String> {
         sb.append(", autoscaleIp=").append(autoscaleIp);
         sb.append(", plcIp=").append(plcIp);
         sb.append(", dvrIp=").append(dvrIp);
+        sb.append(", userName=").append(userName);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 7 - 10
src/main/java/com/steerinfo/meterwork/meterworkcaractualfirst/service/impl/MeterWorkCarActualFirstServiceImpl.java

@@ -263,16 +263,9 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
 //            String afl = sdf.format(new Date());
 //            String no = meterWorkCarActualFirstMapper.getNewID(afl);
 //            model.setActualFirstNo(sdf.format(new Date()) + no);
-//            String userId = "";
-//            String userName = "";
-//            try{
-//                UserPayload payload = UserPayload.getCurrUser();
-//                userId = payload.getId();
-//                userName = payload.getUserName();
-//            }catch(Exception e) {
-//                userId = "admin";
-//                userName = "admins";
-//            }
+            UserPayload payload = UserPayload.getCurrUser();
+            String userId = payload.getId();
+            String userName = payload.getUserName();
             Assert.isTrue(model.getCreateTime() != null && StringUtils.isNotEmpty(model.getCreateTime().toString()), "计量时间不能为空");
             HashMap<String, Object> obj = new HashMap<>();
             obj.put("baseSpotNo", model.getBaseSpotNo());
@@ -296,6 +289,8 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
 //            model.setMeterMode("3");
             model.setDataSource("4");
             model.setIsPreScale("0");
+            model.setCreateManNo(userId);
+            model.setCreateManName(userName);
             meterWorkCarActualFirstMapper.insertSelective(model);
             rm.setSucceed();
             rm.setCode("200");
@@ -1201,10 +1196,12 @@ public class MeterWorkCarActualFirstServiceImpl extends BaseServiceImpl<MeterWor
             if (secondDb.getMeterWeight().equals(netDb.getTareWeight())) {
                 //二次重量如果跟皮重一样
                 netDb.setActualFirst2No(secondDb.getActualFirstNo());
+                netDb.setTareTime(secondDb.getCreateTime());
                 firstUpdate.setActualFirstNo(netDb.getActualFirst1No());
                 firstUpdate.setWeightType("0");
             } else {
                 netDb.setActualFirst1No(secondDb.getActualFirstNo());
+                netDb.setGrossTime(secondDb.getCreateTime());
                 firstUpdate.setActualFirstNo(netDb.getActualFirst2No());
                 firstUpdate.setWeightType("1");
             }

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

@@ -1390,4 +1390,35 @@ throw new MarkerMetException(500, "操作异常!!");
             return rm;
         }
     }
+
+    @ApiOperation(value = "应急计量单个新增")
+    @Transactional
+    @PostMapping(value = "/addFirstEmergency", produces = "application/json;charset=UTF-8")
+    public RESTfulResult addFirstEmergency(@RequestBody MeterWorkRailwayActFirst model) {
+        try {
+            RESTfulResult rm = meterWorkRailwayActFirstService.addFirstEmergency(model);
+            if(!rm.isSucceed()) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+            return rm;
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return failed(null, "操作异常,请确认!");
+        }
+    }
+
+    @ApiOperation(value = "应急计量-两个一次数据编号结净")
+    @Transactional
+    @PostMapping(value = "/doNetEmergency", produces = "application/json;charset=UTF-8")
+    public RESTfulResult doNetEmergency(@RequestBody MeterWorkRailwayActual model) {
+        try {
+            RESTfulResult rm = meterWorkRailwayActFirstService.doNetEmergency(model);
+            return rm;
+        } catch (Exception e) {
+            e.printStackTrace();
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return failed(null, "操作异常,请确认!");
+        }
+    }
 }

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

@@ -145,5 +145,9 @@ public interface IMeterWorkRailwayActFirstService extends IBaseService<MeterWork
     RESTfulResult WebBatchMatchidentifyWeight(List<HashMap> models);
 
     RESTfulResult saveAutoScale(CommonCombination<MeterWorkRailwayActFirst, MeterWorkRailwayActFirst, MeterWorkRailwayActual, MeterWorkRailwayScheduledHelp> com);
+
+    //离线计量
+    RESTfulResult addFirstEmergency(MeterWorkRailwayActFirst model)  throws Exception;
+    RESTfulResult doNetEmergency(MeterWorkRailwayActual model)  throws Exception;
 }
 

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

@@ -48,6 +48,7 @@ import com.steerinfo.pretrack.prerailwayscale.mapper.PreRailwayScaleMapper;
 import com.steerinfo.pretrack.prerailwayscale.model.PreRailwayScale;
 import com.steerinfo.pretrack.pretrackscale.model.PreTrackScale;
 import com.steerinfo.util.FieldsCollector;
+import com.steerinfo.util.PublicMethod;
 import com.steerinfo.util.StringUtils;
 import io.micrometer.core.instrument.Meter;
 import org.apache.poi.hssf.record.ArrayRecord;
@@ -7131,5 +7132,130 @@ public class MeterWorkRailwayActFirstServiceImpl extends BaseServiceImpl<MeterWo
         return rm;
     }
 
+    @Override
+    public RESTfulResult addFirstEmergency(MeterWorkRailwayActFirst model) throws Exception {
+        try{
+            RESTfulResult rm = new RESTfulResult();
+            rm.setCode("200");
+            int num = 0;
+//            if(StringUtils.isNotEmpty(model.getActualFirstNo())){
+//                MeterWorkRailwayActFirst list = meterWorkRailwayActFirstMapper.selectByPrimaryKey(model.getActualFirstNo());
+//            }
+//            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
+//                String afl = formatter.format(new Date());
+//                String no = meterWorkRailwayActFirstMapper.getNewID(afl);
+//            String no = PublicMethod.IdCreate(3);
+//            if(StringUtils.isEmpty(model.getActualFirstNo())){
+//                //邓义晶 一次主键多了一个时间
+////                model.setActualFirstNo(afl + no);
+////                model.setActualFirstNo(no);
+//            }
+            model.setValueFlag("1");
+            model.setIsPreSacale("0");
+            model.setDataSource("3");
+            model.setCreateTime(new Date());
+            model.setRailwayTypeNo("001019001");
+            model.setRailwayTypeName("静态轨道衡");
+            meterWorkRailwayActFirstMapper.insertSelective(model);
+            rm.setData(num);
+            rm.setMessage("成功");
+            return rm;
+        }
+        catch (Exception e){
+            RESTfulResult rm = new RESTfulResult();
+            rm.setCode("500");
+            rm.setData(null);
+            rm.setMessage(e.getMessage());
+            e.printStackTrace();
+            return rm;
+        }
+    }
+
+    @Override
+    public RESTfulResult doNetEmergency(MeterWorkRailwayActual model) throws Exception {
+        RESTfulResult rm = new RESTfulResult();
+        rm.setFailed();
+        try {
+            Assert.isTrue(!Objects.isNull(model), "结净数据不能为空");
+            Assert.isTrue(!(model.getActualFirst1No() == null || model.getActualFirst2No()==null
+                    || StringUtils.isEmpty(model.getActualFirst1No()) || StringUtils.isEmpty(model.getActualFirst2No())), "一次数据编号不能为空");
+            MeterWorkRailwayActFirst firstTemp = meterWorkRailwayActFirstMapper.selectByPrimaryKey(model.getActualFirst1No());
+            MeterWorkRailwayActFirst secondTemp = meterWorkRailwayActFirstMapper.selectByPrimaryKey(model.getActualFirst2No());
+            Assert.isTrue(!(Objects.isNull(firstTemp) || Objects.isNull(secondTemp)), "一次数据未查到有效的数据");
+
+            MeterWorkRailwayActual actualModel = new MeterWorkRailwayActual();
+            BigDecimal meterWeight;
+            if(firstTemp.getMeterWeight().compareTo(secondTemp.getMeterWeight()) > 0) {
+                MeterWorkRailwayActual mwca = meterWorkRailwayActualMapper.manualAdd(firstTemp.getActualFirstNo(), secondTemp.getActualFirstNo());
+                BeanUtils.copyProperties(mwca, actualModel);
+                firstTemp.setWeightType("0");
+                secondTemp.setWeightType("1");
+                meterWeight = firstTemp.getMeterWeight().subtract(secondTemp.getMeterWeight());
+            }else {
+                MeterWorkRailwayActual mwca = meterWorkRailwayActualMapper.manualAdd(secondTemp.getActualFirstNo(), firstTemp.getActualFirstNo());
+                BeanUtils.copyProperties(mwca, actualModel);
+                firstTemp.setWeightType("1");
+                secondTemp.setWeightType("0");
+                meterWeight = secondTemp.getMeterWeight().subtract(firstTemp.getMeterWeight());
+            }
+            firstTemp.setValueFlag(DbConstants.NET);
+            firstTemp.setUpdateManName("system");
+            firstTemp.setUpdateManName("紧急洁净更新");
+            firstTemp.setUpdateTime(new Date());
+            firstTemp.setIsPreSacale("0");
+            meterWorkRailwayActFirstMapper.updateByPrimaryKey(firstTemp);
+            //更新第一次皮重数据库
+            secondTemp.setValueFlag(DbConstants.NET);
+            secondTemp.setUpdateManName("system");
+            secondTemp.setUpdateManName("紧急洁净更新");
+            secondTemp.setUpdateTime(new Date());
+            secondTemp.setIsPreSacale("0");
+            meterWorkRailwayActFirstMapper.updateByPrimaryKey(secondTemp);
+
+//            String no = PublicMethod.IdCreate(3);
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
+            String afl = formatter.format(new Date());
+            String no = afl + meterWorkRailwayActFirstMapper.getNewID(afl);
+            actualModel.setActualNo(no);
+            actualModel.setNetTime(new Date());
+            actualModel.setNetMode("1");
+            actualModel.setNote("紧急洁净保存");
+            actualModel.setUploadFlag("1");
+            actualModel.setIsPreSacale("0");
+            actualModel.setValueFlag("1");
+            actualModel.setNetWeight(meterWeight);
+            actualModel.setCreateTime(new Date());
+            actualModel.setRailwayTypeNo("001019001");
+            actualModel.setRailwayTypeName("静态轨道衡");
+            if(actualModel.getGrossTime().compareTo(actualModel.getTareTime()) >= 0) {
+                actualModel.setNetSpot3No(actualModel.getBaseSpot1No());
+                actualModel.setNetSpot3Name(actualModel.getBaseSpot1Name());
+                actualModel.setNetManNo(actualModel.getGrossManNo());
+                actualModel.setNetManName(actualModel.getGrossManName());
+                actualModel.setNetTime(actualModel.getGrossTime());
+                actualModel.setCreateTime(actualModel.getGrossTime());
+                actualModel.setCreateManName(actualModel.getGrossManName());
+            }else {
+                actualModel.setNetSpot3No(actualModel.getBaseSpot2No());
+                actualModel.setNetSpot3Name(actualModel.getBaseSpot2Name());
+                actualModel.setNetManNo(actualModel.getTareManNo());
+                actualModel.setNetManName(actualModel.getTareManName());
+                actualModel.setNetTime(actualModel.getTareTime());
+                actualModel.setCreateTime(actualModel.getTareTime());
+                actualModel.setCreateManName(actualModel.getTareManName());
+            }
+            meterWorkRailwayActualMapper.insertSelective(actualModel);
+
+            rm.setSucceed();
+            rm.setCode("200");
+            rm.setMessage("操作成功");
+            rm.setData(actualModel.getActualNo());
+        }catch (Exception e) {
+            e.printStackTrace();
+            rm.setMessage("操作异常:>>>" + e.getMessage());
+        }
+        return rm;
+    }
+
 
 }