From 86f687fe84d34d9291ed9e5c6ea45e04e11e3be2 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期日, 21 四月 2024 15:54:04 +0800
Subject: [PATCH] 国家统一编码-财务接口增加统一编码字段及页面调整

---
 src/main/java/com/fzzy/push/nx2023/NX2023ApiRemoteService.java |  208 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 167 insertions(+), 41 deletions(-)

diff --git a/src/main/java/com/fzzy/push/nx2023/NX2023ApiRemoteService.java b/src/main/java/com/fzzy/push/nx2023/NX2023ApiRemoteService.java
index 31538c5..a198632 100644
--- a/src/main/java/com/fzzy/push/nx2023/NX2023ApiRemoteService.java
+++ b/src/main/java/com/fzzy/push/nx2023/NX2023ApiRemoteService.java
@@ -199,6 +199,36 @@
             api1102.setLkxz("1");
             return api1102;
         }
+        if (NX2023Constant.NX_2023_API_CODE_1103.equals(inteId)) {
+
+            Nx2023Api1103 api1103 = new Nx2023Api1103();
+            BeanUtils.copyProperties(data, api1103);
+            return api1103;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1104.equals(inteId)) {
+
+            Nx2023Api1104 api1104 = new Nx2023Api1104();
+            BeanUtils.copyProperties(data, api1104);
+            return api1104;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1105.equals(inteId)) {
+
+            Nx2023Api1105 api1105 = new Nx2023Api1105();
+            BeanUtils.copyProperties(data, api1105);
+            return api1105;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1106.equals(inteId)) {
+
+            Nx2023Api1106 api1106 = new Nx2023Api1106();
+            BeanUtils.copyProperties(data, api1106);
+            return api1106;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1107.equals(inteId)) {
+
+            Nx2023Api1107 api1107 = new Nx2023Api1107();
+            BeanUtils.copyProperties(data, api1107);
+            return api1107;
+        }
         if (NX2023Constant.NX_2023_API_CODE_1108.equals(inteId)) {
             Nx2023Api1108 api1108 = new Nx2023Api1108();
             BeanUtils.copyProperties(data, api1108);
@@ -212,6 +242,11 @@
             map.put(apiData.getWjmc(), FileUtils.fileToByteString(apiData.getWjdz()));
             api1109.setWjl(JSON.toJSONString(map));
             return api1109;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1110.equals(inteId)) {
+            Nx2023Api1110 api1110 = new Nx2023Api1110();
+            BeanUtils.copyProperties(data, api1110);
+            return api1110;
         }
         if (NX2023Constant.NX_2023_API_CODE_1111.equals(inteId)) {
             Nx2023Api1111 api1111 = new Nx2023Api1111();
@@ -233,22 +268,86 @@
             BeanUtils.copyProperties(data, api1201);
             return api1201;
         }
+        if (NX2023Constant.NX_2023_API_CODE_1202.equals(inteId)) {
+            Nx2023Api1202 api1202 = new Nx2023Api1202();
+            BeanUtils.copyProperties(data, api1202);
+            return api1202;
+        }
         if (NX2023Constant.NX_2023_API_CODE_1203.equals(inteId)) {
             Nx2023Api1203 api1203 = new Nx2023Api1203();
             BeanUtils.copyProperties(data, api1203);
             return api1203;
         }
-
-        if (NX2023Constant.NX_2023_API_CODE_1211.equals(inteId)) {
-            Nx2023Api1211 api1211 = new Nx2023Api1211();
-            BeanUtils.copyProperties(data, api1211);
-            return api1211;
+        if (NX2023Constant.NX_2023_API_CODE_1204.equals(inteId)) {
+            Nx2023Api1204 api1204 = new Nx2023Api1204();
+            BeanUtils.copyProperties(data, api1204);
+            return api1204;
         }
         if (NX2023Constant.NX_2023_API_CODE_1205.equals(inteId)) {
             Nx2023Api1205 api1205 = new Nx2023Api1205();
             BeanUtils.copyProperties(data, api1205);
             api1205.setSzlx("09");
             return api1205;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1206.equals(inteId)) {
+            Nx2023Api1206 api1206 = new Nx2023Api1206();
+            BeanUtils.copyProperties(data, api1206);
+            return api1206;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1207.equals(inteId)) {
+            Nx2023Api1207 api1207 = new Nx2023Api1207();
+            BeanUtils.copyProperties(data, api1207);
+            return api1207;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1208.equals(inteId)) {
+            Nx2023Api1208 api1208 = new Nx2023Api1208();
+            BeanUtils.copyProperties(data, api1208);
+            return api1208;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1209.equals(inteId)) {
+            Nx2023Api1209 api1209 = new Nx2023Api1209();
+            BeanUtils.copyProperties(data, api1209);
+            return api1209;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1210.equals(inteId)) {
+            Nx2023Api1210 api1210 = new Nx2023Api1210();
+            BeanUtils.copyProperties(data, api1210);
+            return api1210;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1211.equals(inteId)) {
+            Nx2023Api1211 api1211 = new Nx2023Api1211();
+            BeanUtils.copyProperties(data, api1211);
+            return api1211;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1212.equals(inteId)) {
+            Nx2023Api1212 api1212 = new Nx2023Api1212();
+            BeanUtils.copyProperties(data, api1212);
+            return api1212;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1301.equals(inteId)) {
+            Nx2023Api1301 api1301 = new Nx2023Api1301();
+            BeanUtils.copyProperties(data, api1301);
+            return api1301;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1302.equals(inteId)) {
+            Nx2023Api1302 api1302 = new Nx2023Api1302();
+            BeanUtils.copyProperties(data, api1302);
+            return api1302;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1303.equals(inteId)) {
+            Nx2023Api1303 api1303 = new Nx2023Api1303();
+            BeanUtils.copyProperties(data, api1303);
+            return api1303;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1304.equals(inteId)) {
+            Nx2023Api1304 api1304 = new Nx2023Api1304();
+            BeanUtils.copyProperties(data, api1304);
+            return api1304;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1305.equals(inteId)) {
+            Nx2023Api1305 api1305 = new Nx2023Api1305();
+            BeanUtils.copyProperties(data, api1305);
+            return api1305;
         }
         if (NX2023Constant.NX_2023_API_CODE_1306.equals(inteId)) {
             Nx2023Api1306 api1306 = new Nx2023Api1306();
@@ -270,10 +369,40 @@
             BeanUtils.copyProperties(data, api1308);
             return api1308;
         }
+        if (NX2023Constant.NX_2023_API_CODE_1309.equals(inteId)) {
+            Nx2023Api1309 api1309 = new Nx2023Api1309();
+            BeanUtils.copyProperties(data, api1309);
+            return api1309;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1310.equals(inteId)) {
+            Nx2023Api1310 api1310 = new Nx2023Api1310();
+            BeanUtils.copyProperties(data, api1310);
+            return api1310;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1401.equals(inteId)) {
+            Nx2023Api1401 api1401 = new Nx2023Api1401();
+            BeanUtils.copyProperties(data, api1401);
+            return api1401;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1402.equals(inteId)) {
+            Nx2023Api1402 api1402 = new Nx2023Api1402();
+            BeanUtils.copyProperties(data, api1402);
+            return api1402;
+        }
         if (NX2023Constant.NX_2023_API_CODE_1403.equals(inteId)) {
             Nx2023Api1403 api1403 = new Nx2023Api1403();
             BeanUtils.copyProperties(data, api1403);
             return api1403;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1404.equals(inteId)) {
+            Nx2023Api1404 api1404 = new Nx2023Api1404();
+            BeanUtils.copyProperties(data, api1404);
+            return api1404;
+        }
+        if (NX2023Constant.NX_2023_API_CODE_1405.equals(inteId)) {
+            Nx2023Api1405 api1405 = new Nx2023Api1405();
+            BeanUtils.copyProperties(data, api1405);
+            return api1405;
         }
         return data;
     }
@@ -313,8 +442,7 @@
         }
     }
 
-    private List<NxFinanceDto> copyApi1503(Api1503 data) {
-        Api1503 api1503 = data;
+    private List<NxFinanceDto> copyApi1503(Api1503 api1503) {
         List<NxFinanceDto> list = new ArrayList<>();
         NxFinanceDto nxFinanceDto = new NxFinanceDto();
         nxFinanceDto.setDwdm(api1503.getDwdm());
@@ -324,16 +452,16 @@
         nxFinanceDto.setCzbz(api1503.getCzbz());
         nxFinanceDto.setZhgxsj(DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
 
-        paddingData(nxFinanceDto, list, "0","椤圭洰//t", "鏈湡閲戦//t", "鏈勾绱//t");
-        paddingData(nxFinanceDto, list, "1","涓�銆佽惀涓氭敹鍏�", api1503.getYyzsrbqye() + "", api1503.getYyzsrbnlj() + "");
-        paddingData(nxFinanceDto, list, "2","鍑忥細钀ヤ笟鎴愭湰", api1503.getYycbbqye() + "", api1503.getYycbbnlj() + "");
-        paddingData(nxFinanceDto, list, "3","绋庨噾鍙婇檮鍔�", api1503.getSjjfjbqye() + "", api1503.getSjjfjbnlj() + "");
-        paddingData(nxFinanceDto, list, "4","閿�鍞垂鐢�", api1503.getXsfybqye() + "", api1503.getXsfybnlj() + "");
-        paddingData(nxFinanceDto, list, "5","绠$悊璐圭敤", api1503.getGlfybqye() + "", api1503.getGlfybnlj() + "");
-        paddingData(nxFinanceDto, list, "6","鐮斿彂璐圭敤", api1503.getYffybqye() + "", api1503.getYffybnlj() + "");
-        paddingData(nxFinanceDto, list, "7","璐㈠姟璐圭敤", api1503.getCwfybqye() + "", api1503.getCwfybnlj() + "");
-        paddingData(nxFinanceDto, list, "8","鍏朵腑锛氬埄鎭垂鐢�", api1503.getLxfybqye() + "", api1503.getLxfybnlj() + "");
-        paddingData(nxFinanceDto, list, "9","鍒╂伅鏀跺叆", api1503.getLxsrbqye() + "", api1503.getLxsrbnlj() + "");
+        paddingData(nxFinanceDto, list, "0", "椤圭洰//t", "鏈湡閲戦//t", "鏈勾绱//t");
+        paddingData(nxFinanceDto, list, "1", "涓�銆佽惀涓氭敹鍏�", api1503.getYyzsrbqye() + "", api1503.getYyzsrbnlj() + "");
+        paddingData(nxFinanceDto, list, "2", "鍑忥細钀ヤ笟鎴愭湰", api1503.getYycbbqye() + "", api1503.getYycbbnlj() + "");
+        paddingData(nxFinanceDto, list, "3", "绋庨噾鍙婇檮鍔�", api1503.getSjjfjbqye() + "", api1503.getSjjfjbnlj() + "");
+        paddingData(nxFinanceDto, list, "4", "閿�鍞垂鐢�", api1503.getXsfybqye() + "", api1503.getXsfybnlj() + "");
+        paddingData(nxFinanceDto, list, "5", "绠$悊璐圭敤", api1503.getGlfybqye() + "", api1503.getGlfybnlj() + "");
+        paddingData(nxFinanceDto, list, "6", "鐮斿彂璐圭敤", api1503.getYffybqye() + "", api1503.getYffybnlj() + "");
+        paddingData(nxFinanceDto, list, "7", "璐㈠姟璐圭敤", api1503.getCwfybqye() + "", api1503.getCwfybnlj() + "");
+        paddingData(nxFinanceDto, list, "8", "鍏朵腑锛氬埄鎭垂鐢�", api1503.getLxfybqye() + "", api1503.getLxfybnlj() + "");
+        paddingData(nxFinanceDto, list, "9", "鍒╂伅鏀跺叆", api1503.getLxsrbqye() + "", api1503.getLxsrbnlj() + "");
         paddingData(nxFinanceDto, list, "10","鍔狅細鍏朵粬鏀剁泭", api1503.getQtsybqye() + "", api1503.getQtsybnlj() + "");
         paddingData(nxFinanceDto, list, "11","鎶曡祫鏀剁泭锛堟崯澶变互鈥�-鈥濆彿濉垪锛�", api1503.getTzsybqye() + "", api1503.getTzsybnlj() + "");
         paddingData(nxFinanceDto, list, "12","鍏朵腑锛氬鑱旇惀浼佷笟鍜屽悎钀ヤ紒涓氱殑鎶曡祫鏀剁泭", api1503.getLyqytzsybqye() + "", api1503.getLyqytzsybnlj() + "");
@@ -365,8 +493,7 @@
         return list;
     }
 
-    private List<NxFinanceDto> copyApi1502(Api1502 data) {
-        Api1502 api1502 = data;
+    private List<NxFinanceDto> copyApi1502(Api1502 api1502) {
         List<NxFinanceDto> list = new ArrayList<>();
         NxFinanceDto nxFinanceDto = new NxFinanceDto();
         nxFinanceDto.setDwdm(api1502.getDwdm());
@@ -376,16 +503,16 @@
         nxFinanceDto.setCzbz(api1502.getCzbz());
         nxFinanceDto.setZhgxsj(DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
 
-        paddingData(nxFinanceDto, list, "0","椤圭洰//t", "鏈湀鏁�//t", "鏈勾绱鏁�//t");
-        paddingData(nxFinanceDto, list, "1","涓�銆佺粡钀ユ椿鍔ㄤ骇鐢熺殑鐜伴噾娴侀噺锛�", api1502.getJyhdxjllbys() + "", api1502.getJyhdxjllbnljs() + "");
-        paddingData(nxFinanceDto, list, "2","閿�鍞晢鍝併�佹彁渚涘姵鍔℃敹鍒扮殑鐜伴噾", api1502.getXssplwxjbys() + "", api1502.getXssplwxjbnljs() + "");
-        paddingData(nxFinanceDto, list, "3","鏀跺埌鐨勭◣璐硅繑杩�", api1502.getSffhbys() + "", api1502.getSffhbnljs() + "");
-        paddingData(nxFinanceDto, list, "4","鏀跺埌鍏朵粬涓庣粡钀ユ椿鍔ㄦ湁鍏崇殑鐜伴噾", api1502.getQtjyhdxjbys() + "", api1502.getQtjyhdxjbnljs() + "");
-        paddingData(nxFinanceDto, list, "5","缁忚惀娲诲姩鐜伴噾娴佸叆灏忚", api1502.getJyhdxjlrbys() + "", api1502.getJyhdxjlrbnljs() + "");
-        paddingData(nxFinanceDto, list, "6","璐拱鍟嗗搧銆佹帴鍙楀姵鍔℃敮浠樼殑鐜伴噾", api1502.getGmsplwzfbys() + "", api1502.getGmsplwzfbnljs() + "");
-        paddingData(nxFinanceDto, list, "7","鏀粯缁欒亴宸ヤ互鍙婁负鑱屽伐鏀粯鐨勭幇閲�", api1502.getZfzgxjbys() + "", api1502.getZfzgxjbnljs() + "");
-        paddingData(nxFinanceDto, list, "8","鏀粯鐨勫悇椤圭◣璐�", api1502.getZfxxsfbys() + "", api1502.getZfxxsfbnljs() + "");
-        paddingData(nxFinanceDto, list, "9","鏀粯鍏朵粬涓庣粡钀ユ椿鍔ㄦ湁鍏崇殑鐜伴噾", api1502.getZfqtjyhdxjbys() + "", api1502.getZfqtjyhdxjbnljs() + "");
+        paddingData(nxFinanceDto, list, "0", "椤圭洰//t", "鏈湀鏁�//t", "鏈勾绱鏁�//t");
+        paddingData(nxFinanceDto, list, "1", "涓�銆佺粡钀ユ椿鍔ㄤ骇鐢熺殑鐜伴噾娴侀噺锛�", api1502.getJyhdxjllbys() + "", api1502.getJyhdxjllbnljs() + "");
+        paddingData(nxFinanceDto, list, "2", "閿�鍞晢鍝併�佹彁渚涘姵鍔℃敹鍒扮殑鐜伴噾", api1502.getXssplwxjbys() + "", api1502.getXssplwxjbnljs() + "");
+        paddingData(nxFinanceDto, list, "3", "鏀跺埌鐨勭◣璐硅繑杩�", api1502.getSffhbys() + "", api1502.getSffhbnljs() + "");
+        paddingData(nxFinanceDto, list, "4", "鏀跺埌鍏朵粬涓庣粡钀ユ椿鍔ㄦ湁鍏崇殑鐜伴噾", api1502.getQtjyhdxjbys() + "", api1502.getQtjyhdxjbnljs() + "");
+        paddingData(nxFinanceDto, list, "5", "缁忚惀娲诲姩鐜伴噾娴佸叆灏忚", api1502.getJyhdxjlrbys() + "", api1502.getJyhdxjlrbnljs() + "");
+        paddingData(nxFinanceDto, list, "6", "璐拱鍟嗗搧銆佹帴鍙楀姵鍔℃敮浠樼殑鐜伴噾", api1502.getGmsplwzfbys() + "", api1502.getGmsplwzfbnljs() + "");
+        paddingData(nxFinanceDto, list, "7", "鏀粯缁欒亴宸ヤ互鍙婁负鑱屽伐鏀粯鐨勭幇閲�", api1502.getZfzgxjbys() + "", api1502.getZfzgxjbnljs() + "");
+        paddingData(nxFinanceDto, list, "8", "鏀粯鐨勫悇椤圭◣璐�", api1502.getZfxxsfbys() + "", api1502.getZfxxsfbnljs() + "");
+        paddingData(nxFinanceDto, list, "9", "鏀粯鍏朵粬涓庣粡钀ユ椿鍔ㄦ湁鍏崇殑鐜伴噾", api1502.getZfqtjyhdxjbys() + "", api1502.getZfqtjyhdxjbnljs() + "");
         paddingData(nxFinanceDto, list, "10","缁忚惀娲诲姩鐜伴噾娴佸嚭灏忚", api1502.getJyhdxjlcbys() + "", api1502.getJyhdxjlcbnljs() + "");
         paddingData(nxFinanceDto, list, "11","缁忚惀娲诲姩浜х敓鐨勭幇閲戞祦閲忓噣棰�", api1502.getJyhdxjlljebys() + "", api1502.getJyhdxjlljebnljs() + "");
         paddingData(nxFinanceDto, list, "12","浜屻�佹姇璧勬椿鍔ㄤ骇鐢熺殑鐜伴噾娴侀噺锛�", api1502.getTzhdxjllbys() + "", api1502.getTzhdxjllbnljs() + "");
@@ -419,8 +546,7 @@
         return list;
     }
 
-    private List<NxFinanceDto> copyApi1501(Api1501 data) {
-        Api1501 api1501 = data;
+    private List<NxFinanceDto> copyApi1501(Api1501 api1501) {
         List<NxFinanceDto> list = new ArrayList<>();
         NxFinanceDto nxFinanceDto = new NxFinanceDto();
         nxFinanceDto.setDwdm(api1501.getDwdm());
@@ -430,16 +556,16 @@
         nxFinanceDto.setCzbz(api1501.getCzbz());
         nxFinanceDto.setZhgxsj(DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss"));
 
-        paddingData(nxFinanceDto, list, "0", "璧勪骇//t", "鏈熸湯浣欓//t", "骞村垵浣欓//t");
-        paddingData(nxFinanceDto, list, "1", "娴佸姩璧勪骇锛�", api1501.getLdzchjqmye() + "", api1501.getLdzchjncye() + "");
-        paddingData(nxFinanceDto, list, "2", "璐у竵璧勯噾", api1501.getHbjjqmye() + "", api1501.getHbjjncye() + "");
-        paddingData(nxFinanceDto, list, "3", "浜ゆ槗鎬ч噾铻嶈祫浜�", api1501.getJyxjrzcqmye() + "", api1501.getJyxjrzcncye() + "");
-        paddingData(nxFinanceDto, list, "4", "琛嶇敓閲戣瀺璧勪骇", api1501.getYsjrzcqmye() + "", api1501.getYsjrzcncye() + "");
-        paddingData(nxFinanceDto, list, "5", "搴旀敹绁ㄦ嵁", api1501.getYspjqmye() + "", api1501.getYspjncye() + "");
-        paddingData(nxFinanceDto, list, "6", "搴旀敹璐︽", api1501.getYszkqmye() + "", api1501.getYszkncye() + "");
-        paddingData(nxFinanceDto, list, "7", "棰勪粯娆鹃」", api1501.getYuskxqmye() + "", api1501.getYuskxncye() + "");
-        paddingData(nxFinanceDto, list, "8", "鍏朵粬搴旀敹娆�", api1501.getQtyszkqmye() + "", api1501.getQtyszkncye() + "");
-        paddingData(nxFinanceDto, list, "9", "瀛樿揣", api1501.getChqmye() + "", api1501.getChncye() + "");
+        paddingData(nxFinanceDto, list, "0",  "璧勪骇//t", "鏈熸湯浣欓//t", "骞村垵浣欓//t");
+        paddingData(nxFinanceDto, list, "1",  "娴佸姩璧勪骇锛�", api1501.getLdzchjqmye() + "", api1501.getLdzchjncye() + "");
+        paddingData(nxFinanceDto, list, "2",  "璐у竵璧勯噾", api1501.getHbjjqmye() + "", api1501.getHbjjncye() + "");
+        paddingData(nxFinanceDto, list, "3",  "浜ゆ槗鎬ч噾铻嶈祫浜�", api1501.getJyxjrzcqmye() + "", api1501.getJyxjrzcncye() + "");
+        paddingData(nxFinanceDto, list, "4",  "琛嶇敓閲戣瀺璧勪骇", api1501.getYsjrzcqmye() + "", api1501.getYsjrzcncye() + "");
+        paddingData(nxFinanceDto, list, "5",  "搴旀敹绁ㄦ嵁", api1501.getYspjqmye() + "", api1501.getYspjncye() + "");
+        paddingData(nxFinanceDto, list, "6",  "搴旀敹璐︽", api1501.getYszkqmye() + "", api1501.getYszkncye() + "");
+        paddingData(nxFinanceDto, list, "7",  "棰勪粯娆鹃」", api1501.getYuskxqmye() + "", api1501.getYuskxncye() + "");
+        paddingData(nxFinanceDto, list, "8",  "鍏朵粬搴旀敹娆�", api1501.getQtyszkqmye() + "", api1501.getQtyszkncye() + "");
+        paddingData(nxFinanceDto, list, "9",  "瀛樿揣", api1501.getChqmye() + "", api1501.getChncye() + "");
         paddingData(nxFinanceDto, list, "10", "鍚堝悓璧勪骇", api1501.getHtzcqmye() + "", api1501.getHtzcncye() + "");
         paddingData(nxFinanceDto, list, "11", "鎸佹湁寰呭敭璧勪骇", api1501.getCydszcqmye() + "", api1501.getCydszcncye() + "");
         paddingData(nxFinanceDto, list, "12", "涓�骞村唴鍒版湡鐨勯潪娴佸姩璧勪骇", api1501.getYnndqfldzcqmye() + "", api1501.getYnndqfldzcncye() + "");

--
Gitblit v1.9.3