diff --git a/src/main/java/com/nmgs/entity/WhiteCarnoList.java b/src/main/java/com/nmgs/entity/WhiteCarnoList.java index c9caadc..4e0f922 100644 --- a/src/main/java/com/nmgs/entity/WhiteCarnoList.java +++ b/src/main/java/com/nmgs/entity/WhiteCarnoList.java @@ -54,6 +54,8 @@ public class WhiteCarnoList { private String memo; @TableField("VEHICLE_CLASS") private int vehicleClass; + @TableField("DISCRP") + private String discrp; @TableField(exist = false) private String colorName; @TableField(exist = false) @@ -70,6 +72,14 @@ public class WhiteCarnoList { private String opermano; @TableField(exist = false) private String opermaname; + @TableField(exist = false) + private String qm; + @TableField(exist = false) + private String mfld; + @TableField(exist = false) + private String mfzzh; + @TableField(exist = false) + private String zdyzh; public WhiteCarnoList(String verno) { this.verno = verno; diff --git a/src/main/java/com/nmgs/mapper/WhiteCarnoListMapper.xml b/src/main/java/com/nmgs/mapper/WhiteCarnoListMapper.xml index e4d55cf..ba4f794 100644 --- a/src/main/java/com/nmgs/mapper/WhiteCarnoListMapper.xml +++ b/src/main/java/com/nmgs/mapper/WhiteCarnoListMapper.xml @@ -8,7 +8,7 @@ select t.id,t.acarno,t.COLOR,t.DT,t.BEGDT,t.ENDDT, t.VEHICLE_TYPE,t.DATAFLAG,t.DESCRIB,t.BEGDATE, - t.ACCOUNT,t.VERNO,t.bak1,t.bak2,t.bak3,t.memo,t.VEHICLE_CLASS, + t.ACCOUNT,t.VERNO,t.bak1,t.bak2,t.bak3,t.memo,t.VEHICLE_CLASS,t.DISCRP, (case when t.ENDDT< dateadd(day,0,#{params.CURRENTDATE}) THEN '已过期' when t.ENDDT< dateadd(day,0,#{params.CURRENTWILLDATE}) THEN '将到期' @@ -38,7 +38,6 @@ left join white_ACCOUNT_text wct on(t.ACCOUNT = wct.acountid) left join white_plate_color wpc on(t.COLOR = wpc.value) left join WHITE_VEHICLE_CLASS wvc on(t.VEHICLE_CLASS = wvc.value) - AND t.id = #{params.id} @@ -220,6 +219,9 @@ BAK3= #{params.bak3}, + + DISCRP= #{params.discrp}, + MEMO= #{params.memo}, VEHICLE_CLASS=#{params.vehicleClass} @@ -274,19 +276,20 @@ insert into WHITE_CARNO_TABLE(ID,acarno,COLOR,DT,BEGDT,ENDDT,VEHICLE_TYPE, DATAFLAG,DESCRIB,BEGDT,ACCOUNT,VERNO,BAK1,BAK2,BAK3,MEMO, - VEHICLE_CLASS) values(#{params.id},#{params.acarno},#{params.color},#{params.dt},#{params.begdt}, + VEHICLE_CLASS,DISCRP) values(#{params.id},#{params.acarno},#{params.color},#{params.dt},#{params.begdt}, #{params.enddt},#{params.vehicleType},#{params.dataflag},#{params.describ},#{params.begdate}, - #{params.account},#{params.version},#{params.bak1},#{params.bak12},#{params.bak3},#{params.memo},#{params.vehicleClass} + #{params.account},#{params.version},#{params.bak1},#{params.bak12},#{params.bak3},#{params.memo}, + #{params.vehicleClass},#{params.discrp} ) insert into WHITE_CARNO_TABLE(ID,acarno,COLOR,DT,BEGDT,ENDDT,VEHICLE_TYPE, DATAFLAG,DESCRIB,BEGDATE,ACCOUNT,VERNO,BAK1,BAK2,BAK3,MEMO, - VEHICLE_CLASS) values + VEHICLE_CLASS,DISCRP) values (#{params.id},#{params.acarno},#{params.color},#{params.dt},#{params.begdt}, #{params.enddt},#{params.vehicleType},#{params.dataflag},#{params.describ},#{params.begdate}, - #{params.account},#{params.verno},#{params.bak1},#{params.bak2},#{params.bak3},#{params.memo},#{params.vehicleClass} + #{params.account},#{params.verno},#{params.bak1},#{params.bak2},#{params.bak3},#{params.memo},#{params.vehicleClass},#{params.discrp} ) @@ -300,7 +303,7 @@ select t.id,t.acarno,t.COLOR,t.DT,t.BEGDT,t.ENDDT, t.VEHICLE_TYPE,t.DATAFLAG,t.DESCRIB,t.BEGDATE, - t.ACCOUNT,t.VERNO,t.bak1,t.bak2,t.bak3,t.memo,t.VEHICLE_CLASS, + t.ACCOUNT,t.VERNO,t.bak1,t.bak2,t.bak3,t.memo,t.VEHICLE_CLASS,t.DISCRP, (case when t.ENDDT< dateadd(day,0,#{params.CURRENTDATE}) THEN '已过期' when t.ENDDT< dateadd(day,0,#{params.CURRENTWILLDATE}) THEN '将到期' diff --git a/src/main/java/com/nmgs/service/impl/SelectDataImpl.java b/src/main/java/com/nmgs/service/impl/SelectDataImpl.java index cb826d7..8b20d87 100644 --- a/src/main/java/com/nmgs/service/impl/SelectDataImpl.java +++ b/src/main/java/com/nmgs/service/impl/SelectDataImpl.java @@ -65,7 +65,10 @@ public class SelectDataImpl implements ISelectData { sql = "select a.value as VALUE,a.text as LABEL from WHITE_VEHICLE_CLASS a WHERE a.useflag='1' order by a.value "; }else if ("WHITE_PLATECOLOR".equals(selectType)) {//车牌颜色,白名单使用 sql = "select a.value as VALUE,a.text as LABEL from white_PLATE_COLOR a WHERE a.useflag='1' order by a.value "; - } + }else if ("WHITE_ZDYZH".equals(selectType)) {//自定义组合,白名单使用 + sql = "select a.memo as VALUE,a.DICNAME as LABEL,a.DISCRP as discrp from WHITE_CARNO_DIC_TABLE a WHERE 1=1 "; + } + try { ret=mapperI.selectforlist(sql); } catch (Exception e) { diff --git a/src/main/java/com/nmgs/service/impl/WhiteCarnoListSeriveImpl.java b/src/main/java/com/nmgs/service/impl/WhiteCarnoListSeriveImpl.java index 069daf6..5e656d7 100644 --- a/src/main/java/com/nmgs/service/impl/WhiteCarnoListSeriveImpl.java +++ b/src/main/java/com/nmgs/service/impl/WhiteCarnoListSeriveImpl.java @@ -87,6 +87,46 @@ public class WhiteCarnoListSeriveImpl implements IWhiteCarnoListSerive { } whiteCarnoList.setId(UUID.randomUUID().toString().replace("-","").substring(0,32)); whiteCarnoList.setDt(dateTimeFormatter.parse(dateTimeFormatter.format(new Date()))); + String memoDb=""; + if(!PubTools.isNull(whiteCarnoList.getQm()) && "1".equals(whiteCarnoList.getQm())){//免费类型:全免的话默认为零 + memoDb="0000000000"; + whiteCarnoList.setDiscrp(""); + }else{ + //免费路段处理 + if (!PubTools.isNull(whiteCarnoList.getMfld())){ + String[] ckgFree=whiteCarnoList.getMfld().split(","); + for (int i = 0; i < ckgFree.length; i++){ + String r = ckgFree[i]+""; + if (!PubTools.isNull(ckgFree[i]+"")){ + //不足两位补0, + if (Integer.parseInt(ckgFree[i]+"") < 10){ + memoDb += GetHex("0" + ckgFree[i]+"" + "0" + ckgFree[i]+"" + "00" + "0" + ckgFree[i]+"" + "00"); + }else if(Integer.parseInt(ckgFree[i]+"") < 100 && Integer.parseInt(ckgFree[i]+"")>=10){//两位的 + memoDb += GetHex(ckgFree[i]+"" + ckgFree[i]+"" + "00" + ckgFree[i]+"" + "00"); + }else{ + memoDb += GetHex(ckgFree[i].substring(0,2)+ ckgFree[i].substring(0,2)+ ckgFree[i].substring(0,2)+ ckgFree[i].substring(0,2)+ ckgFree[i].substring(0,2)); + } + } + } + } + //免费站站组合 + if (!PubTools.isNull(whiteCarnoList.getMfzzh())){ + String[] ckgFree=whiteCarnoList.getMfzzh().split(","); + for (int i = 0; i < ckgFree.length; i++){ + String r = ckgFree[i]+""; + memoDb += GetHex(r); + } + } + //自定义组合 + if (!PubTools.isNull(whiteCarnoList.getZdyzh())){ + String[] ckgFree=whiteCarnoList.getZdyzh().split(","); + for (int i = 0; i < ckgFree.length; i++){ + String r = ckgFree[i]+""; + memoDb += r; + } + } + } + whiteCarnoList.setMemo(memoDb); ret= whiteCarnoListMapper.insert(whiteCarnoList); if(ret>0){ WhiteCarnoLogTable wclt=new WhiteCarnoLogTable(); @@ -174,6 +214,46 @@ public class WhiteCarnoListSeriveImpl implements IWhiteCarnoListSerive { public int updateById(WhiteCarnoList params) throws Exception { int ret=-1; try{ + String memoDb=""; + if(!PubTools.isNull(params.getQm()) && "1".equals(params.getQm())){//免费类型:全免的话默认为零 + memoDb="0000000000"; + }else{ + + //免费路段处理 + if (!PubTools.isNull(params.getMfld())){ + String[] ckgFree=params.getMfld().split(","); + for (int i = 0; i < ckgFree.length; i++){ + String r = ckgFree[i]+""; + if (!PubTools.isNull(ckgFree[i]+"")){ + //不足两位补0, + if (Integer.parseInt(ckgFree[i]+"") < 10){ + memoDb += GetHex("0" + ckgFree[i]+"" + "0" + ckgFree[i]+"" + "00" + "0" + ckgFree[i]+"" + "00"); + }else if(Integer.parseInt(ckgFree[i]+"") < 100 && Integer.parseInt(ckgFree[i]+"")>=10){//两位的 + memoDb += GetHex(ckgFree[i]+"" + ckgFree[i]+"" + "00" + ckgFree[i]+"" + "00"); + }else{ + memoDb += GetHex(ckgFree[i].substring(0,2)+ ckgFree[i].substring(0,2)+ ckgFree[i].substring(0,2)+ ckgFree[i].substring(0,2)+ ckgFree[i].substring(0,2)); + } + } + } + } + //免费站站组合 + if (!PubTools.isNull(params.getMfzzh())){ + String[] ckgFree=params.getMfzzh().split(","); + for (int i = 0; i < ckgFree.length; i++){ + String r = ckgFree[i]+""; + memoDb += GetHex(r); + } + } + //自定义组合 + if (!PubTools.isNull(params.getZdyzh())){ + String[] ckgFree=params.getZdyzh().split(","); + for (int i = 0; i < ckgFree.length; i++){ + String r = ckgFree[i]+""; + memoDb += r; + } + } + } + params.setMemo(memoDb); ret= whiteCarnoListMapper.updateById(params); WhiteCarnoLogTable wclt=new WhiteCarnoLogTable(); BeanUtils.copyProperties(params,wclt,"id"); @@ -332,4 +412,21 @@ public class WhiteCarnoListSeriveImpl implements IWhiteCarnoListSerive { public List getWhiteCarno(Map params) { return this.whiteCarnoListMapper.getWhiteCarno(params); } + + private String GetHex(Object o) + { + String r = "", s1 = "", s2 = ""; + String s = o.toString(); + if (s.length() >= 10) + { + r = "00" + Integer.toHexString(Integer.parseInt(s.substring(0, 2))); + s1 = "0000" + Integer.toHexString(Integer.parseInt(s.substring(2, 6))); + s2 = "0000" + Integer.toHexString(Integer.parseInt(s.substring(6, 10))); + + r = r.substring(r.length() - 2, r.length()); + s1 = s1.substring(s1.length() - 4, s1.length()); + s2 = s2.substring(s2.length() - 4, s2.length()); + } + return r + s1 + s2; + } }