diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt index 790d0b2..dea353f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.InspectEventModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.utils.DataBaseManager import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -26,12 +26,9 @@ "抱歉,无法查询到相关记录".show(this) } else { val eventAdapter = object : - NormalRecyclerAdapter( - R.layout.item_event_rv_l, dataRows - ) { + NormalRecyclerAdapter(R.layout.item_event_rv_l, dataRows) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectEventModel.DataModel.ListModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg @@ -39,7 +36,7 @@ * images: 2020-12/c2fd5777fe5d4e09af0bbd6693f5fbf4.jpg,2020-12/7d91abc431d0482da33745bacc111bc4.jpg * */ val images = item.images - val urls: ArrayList = ArrayList() + val urls = ArrayList() if (images != null) { // images == "" if (images.isNotEmpty()) { @@ -50,18 +47,18 @@ } } - viewHolder.setImageResource(R.id.inspectImageView, urls[0]) - .setText(R.id.inspectMsgView, item.name) + if (urls.isNotEmpty()) { + viewHolder.setImageResource(R.id.inspectImageView, urls[0]) + } + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventAdapter eventAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectEventModel.DataModel.ListModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt index 790d0b2..dea353f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.InspectEventModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.utils.DataBaseManager import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -26,12 +26,9 @@ "抱歉,无法查询到相关记录".show(this) } else { val eventAdapter = object : - NormalRecyclerAdapter( - R.layout.item_event_rv_l, dataRows - ) { + NormalRecyclerAdapter(R.layout.item_event_rv_l, dataRows) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectEventModel.DataModel.ListModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg @@ -39,7 +36,7 @@ * images: 2020-12/c2fd5777fe5d4e09af0bbd6693f5fbf4.jpg,2020-12/7d91abc431d0482da33745bacc111bc4.jpg * */ val images = item.images - val urls: ArrayList = ArrayList() + val urls = ArrayList() if (images != null) { // images == "" if (images.isNotEmpty()) { @@ -50,18 +47,18 @@ } } - viewHolder.setImageResource(R.id.inspectImageView, urls[0]) - .setText(R.id.inspectMsgView, item.name) + if (urls.isNotEmpty()) { + viewHolder.setImageResource(R.id.inspectImageView, urls[0]) + } + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventAdapter eventAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectEventModel.DataModel.ListModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt index 161bf67..7c00304 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt @@ -7,15 +7,8 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.utils.DataBaseManager import com.google.gson.Gson @@ -44,13 +37,13 @@ ImmersionBar.with(this).statusBarDarkFont(false).init() titleView.text = "巡检记录" - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! + val inspectionId = intent.getStringExtra(Constant.INTENT_PARAM)!! - initMap(savedInstanceState, id) + initMap(savedInstanceState, inspectionId) leftBackView.setOnClickListener { this.finish() } eventButton.setOnClickListener { - navigatePageTo(id) + navigatePageTo(inspectionId) } } @@ -64,43 +57,31 @@ //根据id查询详情 val detailData = DataBaseManager.get.queryInspectDetailById(id) - inspectMsgView.text = detailData.name + inspectMsgView.text = detailData.inspectionTitle startTimeView.text = detailData.startTime endTimeView.text = detailData.endTime - - LatLng(detailData.startLat, detailData.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(detailData.endLat, detailData.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) + startLocationView.text = detailData.startAddress + endLocationView.text = detailData.endAddress + distanceView.text = detailData.distance.toString() //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 addMarker(LatLng(detailData.endLat, detailData.endLng), R.mipmap.zhongdian) //瞄点画线 - val routeJson = detailData.routes!! - if (routeJson.isEmpty()) { + if (detailData.routes.isEmpty()) { return } //[{"lat":39.917433,"lng":116.269525},{"lat":39.917433,"lng":116.269525}] val type = object : TypeToken>() {}.type - val routeModels = gson.fromJson>(routeJson, type) + val routeModels = gson.fromJson>(detailData.routes, type) //画线 val latLngPoints: ArrayList = ArrayList() routeModels.forEach { routeModel -> @@ -109,12 +90,6 @@ aMap.addPolyline( PolylineOptions().addAll(latLngPoints).width(10.toFloat()).color(Color.RED) ) - - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) } private fun addMarker(point: LatLng, res: Int) { diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt index 790d0b2..dea353f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.InspectEventModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.utils.DataBaseManager import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -26,12 +26,9 @@ "抱歉,无法查询到相关记录".show(this) } else { val eventAdapter = object : - NormalRecyclerAdapter( - R.layout.item_event_rv_l, dataRows - ) { + NormalRecyclerAdapter(R.layout.item_event_rv_l, dataRows) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectEventModel.DataModel.ListModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg @@ -39,7 +36,7 @@ * images: 2020-12/c2fd5777fe5d4e09af0bbd6693f5fbf4.jpg,2020-12/7d91abc431d0482da33745bacc111bc4.jpg * */ val images = item.images - val urls: ArrayList = ArrayList() + val urls = ArrayList() if (images != null) { // images == "" if (images.isNotEmpty()) { @@ -50,18 +47,18 @@ } } - viewHolder.setImageResource(R.id.inspectImageView, urls[0]) - .setText(R.id.inspectMsgView, item.name) + if (urls.isNotEmpty()) { + viewHolder.setImageResource(R.id.inspectImageView, urls[0]) + } + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventAdapter eventAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectEventModel.DataModel.ListModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt index 161bf67..7c00304 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt @@ -7,15 +7,8 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.utils.DataBaseManager import com.google.gson.Gson @@ -44,13 +37,13 @@ ImmersionBar.with(this).statusBarDarkFont(false).init() titleView.text = "巡检记录" - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! + val inspectionId = intent.getStringExtra(Constant.INTENT_PARAM)!! - initMap(savedInstanceState, id) + initMap(savedInstanceState, inspectionId) leftBackView.setOnClickListener { this.finish() } eventButton.setOnClickListener { - navigatePageTo(id) + navigatePageTo(inspectionId) } } @@ -64,43 +57,31 @@ //根据id查询详情 val detailData = DataBaseManager.get.queryInspectDetailById(id) - inspectMsgView.text = detailData.name + inspectMsgView.text = detailData.inspectionTitle startTimeView.text = detailData.startTime endTimeView.text = detailData.endTime - - LatLng(detailData.startLat, detailData.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(detailData.endLat, detailData.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) + startLocationView.text = detailData.startAddress + endLocationView.text = detailData.endAddress + distanceView.text = detailData.distance.toString() //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 addMarker(LatLng(detailData.endLat, detailData.endLng), R.mipmap.zhongdian) //瞄点画线 - val routeJson = detailData.routes!! - if (routeJson.isEmpty()) { + if (detailData.routes.isEmpty()) { return } //[{"lat":39.917433,"lng":116.269525},{"lat":39.917433,"lng":116.269525}] val type = object : TypeToken>() {}.type - val routeModels = gson.fromJson>(routeJson, type) + val routeModels = gson.fromJson>(detailData.routes, type) //画线 val latLngPoints: ArrayList = ArrayList() routeModels.forEach { routeModel -> @@ -109,12 +90,6 @@ aMap.addPolyline( PolylineOptions().addAll(latLngPoints).width(10.toFloat()).color(Color.RED) ) - - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) } private fun addMarker(point: LatLng, res: Int) { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 8569dc1..c314640 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -1,16 +1,20 @@ package com.casic.birmm.inspect.utils +import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.bean.TaskEventLocalBean +import com.casic.birmm.inspect.callback.OnDataAddListener +import com.casic.birmm.inspect.callback.OnDistanceSearchListener +import com.casic.birmm.inspect.callback.OnGeocodeSearchListener +import com.casic.birmm.inspect.extensions.calculateDistance +import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.greendao.InspectionLocalBeanDao import com.casic.birmm.inspect.greendao.TaskEventLocalBeanDao -import com.casic.birmm.inspect.model.EventListModel -import com.casic.birmm.inspect.model.InspectDetailModel -import com.casic.birmm.inspect.model.InspectEventModel -import com.casic.birmm.inspect.model.InspectListModel +import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.single.fragment.QueryEventFragment import com.casic.birmm.inspect.single.fragment.QueryInspectionFragment +import com.google.gson.Gson class DataBaseManager private constructor() { @@ -27,6 +31,7 @@ BaseApplication.get().getDaoSession().inspectionLocalBeanDao private var taskEventDao: TaskEventLocalBeanDao = BaseApplication.get().getDaoSession().taskEventLocalBeanDao + private val gson by lazy { Gson() } /** * 保存巡检记录到本地 @@ -41,7 +46,8 @@ startLat: Double, endLng: Double, endLat: Double, - routes: String + routes: ArrayList, + listener: OnDataAddListener ) { val bean = InspectionLocalBean() bean.inspectionId = inspectionId @@ -53,14 +59,37 @@ bean.startLat = startLat bean.endLng = endLng bean.endLat = endLat - bean.routes = routes + bean.routes = gson.toJson(routes) bean.user = "超级管理员" - if (!isInspectionExist(inspectionId)) { - inspectionDao.insert(bean) - //通知列表刷新 - QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage(2023081202) - } + LatLng(startLat, startLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.startAddress = address + + LatLng(endLat, endLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.endAddress = address + + routes.calculateDistance(object : OnDistanceSearchListener { + override fun onDistanceSearched(distance: String) { + bean.distance = distance.toDouble() + + if (!isInspectionExist(inspectionId)) { + inspectionDao.insert(bean) + + //通知列表刷新 + QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage( + 2023081202 + ) + + listener.onAddSuccess() + } + } + }) + } + }) + } + }) } private fun isInspectionExist(inspectionId: String): Boolean { @@ -92,89 +121,35 @@ /** * id查询巡检数据 */ - fun queryInspectDetailById(inspectionId: String): InspectDetailModel.DataModel { - val dataModel = InspectDetailModel.DataModel() + fun queryInspectDetailById(inspectionId: String): InspectionLocalBean { + val dataModel = InspectionLocalBean() val result = inspectionDao.queryBuilder().where( InspectionLocalBeanDao.Properties.InspectionId.eq(inspectionId) ).list() - if (!result.isNullOrEmpty()) { - val bean = result.first() - - dataModel.id = bean.inspectionId - dataModel.name = bean.inspectionTitle - dataModel.date = bean.date - dataModel.startTime = bean.startTime - dataModel.endTime = bean.endTime - dataModel.startLat = bean.startLat - dataModel.startLng = bean.startLng - dataModel.endLat = bean.endLat - dataModel.endLng = bean.endLng - dataModel.routes = bean.routes - dataModel.user = bean.user - - return dataModel + return if (!result.isNullOrEmpty()) { + result.first() } else { - return dataModel + dataModel } } /** * 查询所有巡检数据 */ - fun loadInspection(): MutableList { - val result = ArrayList() - - val temp = inspectionDao.queryBuilder() + fun loadInspection(): MutableList { + return inspectionDao.queryBuilder() .orderDesc(InspectionLocalBeanDao.Properties.StartTime) .list() - - temp.forEach { - val rowsBean = InspectListModel.DataModel.RowsModel() - - rowsBean.id = it.inspectionId - rowsBean.name = it.inspectionTitle - rowsBean.startTime = it.startTime - rowsBean.endTime = it.endTime - rowsBean.date = it.date - rowsBean.startLng = it.startLng - rowsBean.startLat = it.startLat - rowsBean.endLng = it.endLng - rowsBean.endLat = it.endLat - rowsBean.routes = it.routes - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } /** * 根据巡检Id查询事件数据 */ - fun queryEventByInspection(inspectionId: String): MutableList { - val resultList = ArrayList() - taskEventDao.queryBuilder() + fun queryEventByInspection(inspectionId: String): MutableList { + return taskEventDao.queryBuilder() .where(TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId)) .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime)//按时间顺序最新顺序排序 - .list()?.forEach { - val listBean = InspectEventModel.DataModel.ListModel() - - listBean.id = it.taskId - listBean.inspectionId = it.inspectionId - listBean.name = it.eventTitle - listBean.createTime = it.createTime - listBean.type = it.type - listBean.lng = it.lng - listBean.lat = it.lat - listBean.data = it.data.toString() - listBean.images = it.images - listBean.description = it.description - listBean.user = it.user - - resultList.add(listBean) - } - return resultList + .list() } /**********************************************************************************************/ @@ -208,9 +183,9 @@ bean.user = "超级管理员" if (!isEventExist(taskId)) { taskEventDao.insert(bean) - //通知列表刷新 - QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } private fun isEventExist(taskId: String): Boolean { @@ -243,31 +218,9 @@ /** * 查询所有事件数据 */ - fun loadEvent(): MutableList { - val result = ArrayList() - - val temp = taskEventDao.queryBuilder() + fun loadEvent(): MutableList { + return taskEventDao.queryBuilder() .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime) .list() - - temp.forEach { - val rowsBean = EventListModel.DataModel.RowsModel() - - rowsBean.id = it.taskId - rowsBean.inspectionId = it.inspectionId - rowsBean.name = it.eventTitle - rowsBean.createTime = it.createTime - rowsBean.type = it.type - rowsBean.data = it.data.toString() - rowsBean.description = it.description - rowsBean.lat = it.lat - rowsBean.lng = it.lng - rowsBean.images = it.images - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt index 790d0b2..dea353f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.InspectEventModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.utils.DataBaseManager import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -26,12 +26,9 @@ "抱歉,无法查询到相关记录".show(this) } else { val eventAdapter = object : - NormalRecyclerAdapter( - R.layout.item_event_rv_l, dataRows - ) { + NormalRecyclerAdapter(R.layout.item_event_rv_l, dataRows) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectEventModel.DataModel.ListModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg @@ -39,7 +36,7 @@ * images: 2020-12/c2fd5777fe5d4e09af0bbd6693f5fbf4.jpg,2020-12/7d91abc431d0482da33745bacc111bc4.jpg * */ val images = item.images - val urls: ArrayList = ArrayList() + val urls = ArrayList() if (images != null) { // images == "" if (images.isNotEmpty()) { @@ -50,18 +47,18 @@ } } - viewHolder.setImageResource(R.id.inspectImageView, urls[0]) - .setText(R.id.inspectMsgView, item.name) + if (urls.isNotEmpty()) { + viewHolder.setImageResource(R.id.inspectImageView, urls[0]) + } + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventAdapter eventAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectEventModel.DataModel.ListModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt index 161bf67..7c00304 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt @@ -7,15 +7,8 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.utils.DataBaseManager import com.google.gson.Gson @@ -44,13 +37,13 @@ ImmersionBar.with(this).statusBarDarkFont(false).init() titleView.text = "巡检记录" - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! + val inspectionId = intent.getStringExtra(Constant.INTENT_PARAM)!! - initMap(savedInstanceState, id) + initMap(savedInstanceState, inspectionId) leftBackView.setOnClickListener { this.finish() } eventButton.setOnClickListener { - navigatePageTo(id) + navigatePageTo(inspectionId) } } @@ -64,43 +57,31 @@ //根据id查询详情 val detailData = DataBaseManager.get.queryInspectDetailById(id) - inspectMsgView.text = detailData.name + inspectMsgView.text = detailData.inspectionTitle startTimeView.text = detailData.startTime endTimeView.text = detailData.endTime - - LatLng(detailData.startLat, detailData.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(detailData.endLat, detailData.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) + startLocationView.text = detailData.startAddress + endLocationView.text = detailData.endAddress + distanceView.text = detailData.distance.toString() //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 addMarker(LatLng(detailData.endLat, detailData.endLng), R.mipmap.zhongdian) //瞄点画线 - val routeJson = detailData.routes!! - if (routeJson.isEmpty()) { + if (detailData.routes.isEmpty()) { return } //[{"lat":39.917433,"lng":116.269525},{"lat":39.917433,"lng":116.269525}] val type = object : TypeToken>() {}.type - val routeModels = gson.fromJson>(routeJson, type) + val routeModels = gson.fromJson>(detailData.routes, type) //画线 val latLngPoints: ArrayList = ArrayList() routeModels.forEach { routeModel -> @@ -109,12 +90,6 @@ aMap.addPolyline( PolylineOptions().addAll(latLngPoints).width(10.toFloat()).color(Color.RED) ) - - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) } private fun addMarker(point: LatLng, res: Int) { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 8569dc1..c314640 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -1,16 +1,20 @@ package com.casic.birmm.inspect.utils +import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.bean.TaskEventLocalBean +import com.casic.birmm.inspect.callback.OnDataAddListener +import com.casic.birmm.inspect.callback.OnDistanceSearchListener +import com.casic.birmm.inspect.callback.OnGeocodeSearchListener +import com.casic.birmm.inspect.extensions.calculateDistance +import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.greendao.InspectionLocalBeanDao import com.casic.birmm.inspect.greendao.TaskEventLocalBeanDao -import com.casic.birmm.inspect.model.EventListModel -import com.casic.birmm.inspect.model.InspectDetailModel -import com.casic.birmm.inspect.model.InspectEventModel -import com.casic.birmm.inspect.model.InspectListModel +import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.single.fragment.QueryEventFragment import com.casic.birmm.inspect.single.fragment.QueryInspectionFragment +import com.google.gson.Gson class DataBaseManager private constructor() { @@ -27,6 +31,7 @@ BaseApplication.get().getDaoSession().inspectionLocalBeanDao private var taskEventDao: TaskEventLocalBeanDao = BaseApplication.get().getDaoSession().taskEventLocalBeanDao + private val gson by lazy { Gson() } /** * 保存巡检记录到本地 @@ -41,7 +46,8 @@ startLat: Double, endLng: Double, endLat: Double, - routes: String + routes: ArrayList, + listener: OnDataAddListener ) { val bean = InspectionLocalBean() bean.inspectionId = inspectionId @@ -53,14 +59,37 @@ bean.startLat = startLat bean.endLng = endLng bean.endLat = endLat - bean.routes = routes + bean.routes = gson.toJson(routes) bean.user = "超级管理员" - if (!isInspectionExist(inspectionId)) { - inspectionDao.insert(bean) - //通知列表刷新 - QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage(2023081202) - } + LatLng(startLat, startLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.startAddress = address + + LatLng(endLat, endLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.endAddress = address + + routes.calculateDistance(object : OnDistanceSearchListener { + override fun onDistanceSearched(distance: String) { + bean.distance = distance.toDouble() + + if (!isInspectionExist(inspectionId)) { + inspectionDao.insert(bean) + + //通知列表刷新 + QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage( + 2023081202 + ) + + listener.onAddSuccess() + } + } + }) + } + }) + } + }) } private fun isInspectionExist(inspectionId: String): Boolean { @@ -92,89 +121,35 @@ /** * id查询巡检数据 */ - fun queryInspectDetailById(inspectionId: String): InspectDetailModel.DataModel { - val dataModel = InspectDetailModel.DataModel() + fun queryInspectDetailById(inspectionId: String): InspectionLocalBean { + val dataModel = InspectionLocalBean() val result = inspectionDao.queryBuilder().where( InspectionLocalBeanDao.Properties.InspectionId.eq(inspectionId) ).list() - if (!result.isNullOrEmpty()) { - val bean = result.first() - - dataModel.id = bean.inspectionId - dataModel.name = bean.inspectionTitle - dataModel.date = bean.date - dataModel.startTime = bean.startTime - dataModel.endTime = bean.endTime - dataModel.startLat = bean.startLat - dataModel.startLng = bean.startLng - dataModel.endLat = bean.endLat - dataModel.endLng = bean.endLng - dataModel.routes = bean.routes - dataModel.user = bean.user - - return dataModel + return if (!result.isNullOrEmpty()) { + result.first() } else { - return dataModel + dataModel } } /** * 查询所有巡检数据 */ - fun loadInspection(): MutableList { - val result = ArrayList() - - val temp = inspectionDao.queryBuilder() + fun loadInspection(): MutableList { + return inspectionDao.queryBuilder() .orderDesc(InspectionLocalBeanDao.Properties.StartTime) .list() - - temp.forEach { - val rowsBean = InspectListModel.DataModel.RowsModel() - - rowsBean.id = it.inspectionId - rowsBean.name = it.inspectionTitle - rowsBean.startTime = it.startTime - rowsBean.endTime = it.endTime - rowsBean.date = it.date - rowsBean.startLng = it.startLng - rowsBean.startLat = it.startLat - rowsBean.endLng = it.endLng - rowsBean.endLat = it.endLat - rowsBean.routes = it.routes - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } /** * 根据巡检Id查询事件数据 */ - fun queryEventByInspection(inspectionId: String): MutableList { - val resultList = ArrayList() - taskEventDao.queryBuilder() + fun queryEventByInspection(inspectionId: String): MutableList { + return taskEventDao.queryBuilder() .where(TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId)) .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime)//按时间顺序最新顺序排序 - .list()?.forEach { - val listBean = InspectEventModel.DataModel.ListModel() - - listBean.id = it.taskId - listBean.inspectionId = it.inspectionId - listBean.name = it.eventTitle - listBean.createTime = it.createTime - listBean.type = it.type - listBean.lng = it.lng - listBean.lat = it.lat - listBean.data = it.data.toString() - listBean.images = it.images - listBean.description = it.description - listBean.user = it.user - - resultList.add(listBean) - } - return resultList + .list() } /**********************************************************************************************/ @@ -208,9 +183,9 @@ bean.user = "超级管理员" if (!isEventExist(taskId)) { taskEventDao.insert(bean) - //通知列表刷新 - QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } private fun isEventExist(taskId: String): Boolean { @@ -243,31 +218,9 @@ /** * 查询所有事件数据 */ - fun loadEvent(): MutableList { - val result = ArrayList() - - val temp = taskEventDao.queryBuilder() + fun loadEvent(): MutableList { + return taskEventDao.queryBuilder() .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime) .list() - - temp.forEach { - val rowsBean = EventListModel.DataModel.RowsModel() - - rowsBean.id = it.taskId - rowsBean.inspectionId = it.inspectionId - rowsBean.name = it.eventTitle - rowsBean.createTime = it.createTime - rowsBean.type = it.type - rowsBean.data = it.data.toString() - rowsBean.description = it.description - rowsBean.lat = it.lat - rowsBean.lng = it.lng - rowsBean.images = it.images - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt index 9302416..79b6d74 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt @@ -64,8 +64,6 @@ const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" - const val CURRENT_LONGITUDE = "currentLongitude" - const val CURRENT_LATITUDE = "currentLatitude" const val SERVICE_UUID = "0003cdd0-0000-1000-8000-00805f9b0131"//连接设备的UUID const val WRITE_CHARACTERISTIC_UUID = "0003cdd2-0000-1000-8000-00805f9b0131"//写数据特征值UUID const val READ_CHARACTERISTIC_UUID = "0003cdd1-0000-1000-8000-00805f9b0131"//读数据特征值UUID diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt index 790d0b2..dea353f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.InspectEventModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.utils.DataBaseManager import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -26,12 +26,9 @@ "抱歉,无法查询到相关记录".show(this) } else { val eventAdapter = object : - NormalRecyclerAdapter( - R.layout.item_event_rv_l, dataRows - ) { + NormalRecyclerAdapter(R.layout.item_event_rv_l, dataRows) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectEventModel.DataModel.ListModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg @@ -39,7 +36,7 @@ * images: 2020-12/c2fd5777fe5d4e09af0bbd6693f5fbf4.jpg,2020-12/7d91abc431d0482da33745bacc111bc4.jpg * */ val images = item.images - val urls: ArrayList = ArrayList() + val urls = ArrayList() if (images != null) { // images == "" if (images.isNotEmpty()) { @@ -50,18 +47,18 @@ } } - viewHolder.setImageResource(R.id.inspectImageView, urls[0]) - .setText(R.id.inspectMsgView, item.name) + if (urls.isNotEmpty()) { + viewHolder.setImageResource(R.id.inspectImageView, urls[0]) + } + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventAdapter eventAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectEventModel.DataModel.ListModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt index 161bf67..7c00304 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt @@ -7,15 +7,8 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.utils.DataBaseManager import com.google.gson.Gson @@ -44,13 +37,13 @@ ImmersionBar.with(this).statusBarDarkFont(false).init() titleView.text = "巡检记录" - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! + val inspectionId = intent.getStringExtra(Constant.INTENT_PARAM)!! - initMap(savedInstanceState, id) + initMap(savedInstanceState, inspectionId) leftBackView.setOnClickListener { this.finish() } eventButton.setOnClickListener { - navigatePageTo(id) + navigatePageTo(inspectionId) } } @@ -64,43 +57,31 @@ //根据id查询详情 val detailData = DataBaseManager.get.queryInspectDetailById(id) - inspectMsgView.text = detailData.name + inspectMsgView.text = detailData.inspectionTitle startTimeView.text = detailData.startTime endTimeView.text = detailData.endTime - - LatLng(detailData.startLat, detailData.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(detailData.endLat, detailData.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) + startLocationView.text = detailData.startAddress + endLocationView.text = detailData.endAddress + distanceView.text = detailData.distance.toString() //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 addMarker(LatLng(detailData.endLat, detailData.endLng), R.mipmap.zhongdian) //瞄点画线 - val routeJson = detailData.routes!! - if (routeJson.isEmpty()) { + if (detailData.routes.isEmpty()) { return } //[{"lat":39.917433,"lng":116.269525},{"lat":39.917433,"lng":116.269525}] val type = object : TypeToken>() {}.type - val routeModels = gson.fromJson>(routeJson, type) + val routeModels = gson.fromJson>(detailData.routes, type) //画线 val latLngPoints: ArrayList = ArrayList() routeModels.forEach { routeModel -> @@ -109,12 +90,6 @@ aMap.addPolyline( PolylineOptions().addAll(latLngPoints).width(10.toFloat()).color(Color.RED) ) - - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) } private fun addMarker(point: LatLng, res: Int) { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 8569dc1..c314640 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -1,16 +1,20 @@ package com.casic.birmm.inspect.utils +import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.bean.TaskEventLocalBean +import com.casic.birmm.inspect.callback.OnDataAddListener +import com.casic.birmm.inspect.callback.OnDistanceSearchListener +import com.casic.birmm.inspect.callback.OnGeocodeSearchListener +import com.casic.birmm.inspect.extensions.calculateDistance +import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.greendao.InspectionLocalBeanDao import com.casic.birmm.inspect.greendao.TaskEventLocalBeanDao -import com.casic.birmm.inspect.model.EventListModel -import com.casic.birmm.inspect.model.InspectDetailModel -import com.casic.birmm.inspect.model.InspectEventModel -import com.casic.birmm.inspect.model.InspectListModel +import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.single.fragment.QueryEventFragment import com.casic.birmm.inspect.single.fragment.QueryInspectionFragment +import com.google.gson.Gson class DataBaseManager private constructor() { @@ -27,6 +31,7 @@ BaseApplication.get().getDaoSession().inspectionLocalBeanDao private var taskEventDao: TaskEventLocalBeanDao = BaseApplication.get().getDaoSession().taskEventLocalBeanDao + private val gson by lazy { Gson() } /** * 保存巡检记录到本地 @@ -41,7 +46,8 @@ startLat: Double, endLng: Double, endLat: Double, - routes: String + routes: ArrayList, + listener: OnDataAddListener ) { val bean = InspectionLocalBean() bean.inspectionId = inspectionId @@ -53,14 +59,37 @@ bean.startLat = startLat bean.endLng = endLng bean.endLat = endLat - bean.routes = routes + bean.routes = gson.toJson(routes) bean.user = "超级管理员" - if (!isInspectionExist(inspectionId)) { - inspectionDao.insert(bean) - //通知列表刷新 - QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage(2023081202) - } + LatLng(startLat, startLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.startAddress = address + + LatLng(endLat, endLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.endAddress = address + + routes.calculateDistance(object : OnDistanceSearchListener { + override fun onDistanceSearched(distance: String) { + bean.distance = distance.toDouble() + + if (!isInspectionExist(inspectionId)) { + inspectionDao.insert(bean) + + //通知列表刷新 + QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage( + 2023081202 + ) + + listener.onAddSuccess() + } + } + }) + } + }) + } + }) } private fun isInspectionExist(inspectionId: String): Boolean { @@ -92,89 +121,35 @@ /** * id查询巡检数据 */ - fun queryInspectDetailById(inspectionId: String): InspectDetailModel.DataModel { - val dataModel = InspectDetailModel.DataModel() + fun queryInspectDetailById(inspectionId: String): InspectionLocalBean { + val dataModel = InspectionLocalBean() val result = inspectionDao.queryBuilder().where( InspectionLocalBeanDao.Properties.InspectionId.eq(inspectionId) ).list() - if (!result.isNullOrEmpty()) { - val bean = result.first() - - dataModel.id = bean.inspectionId - dataModel.name = bean.inspectionTitle - dataModel.date = bean.date - dataModel.startTime = bean.startTime - dataModel.endTime = bean.endTime - dataModel.startLat = bean.startLat - dataModel.startLng = bean.startLng - dataModel.endLat = bean.endLat - dataModel.endLng = bean.endLng - dataModel.routes = bean.routes - dataModel.user = bean.user - - return dataModel + return if (!result.isNullOrEmpty()) { + result.first() } else { - return dataModel + dataModel } } /** * 查询所有巡检数据 */ - fun loadInspection(): MutableList { - val result = ArrayList() - - val temp = inspectionDao.queryBuilder() + fun loadInspection(): MutableList { + return inspectionDao.queryBuilder() .orderDesc(InspectionLocalBeanDao.Properties.StartTime) .list() - - temp.forEach { - val rowsBean = InspectListModel.DataModel.RowsModel() - - rowsBean.id = it.inspectionId - rowsBean.name = it.inspectionTitle - rowsBean.startTime = it.startTime - rowsBean.endTime = it.endTime - rowsBean.date = it.date - rowsBean.startLng = it.startLng - rowsBean.startLat = it.startLat - rowsBean.endLng = it.endLng - rowsBean.endLat = it.endLat - rowsBean.routes = it.routes - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } /** * 根据巡检Id查询事件数据 */ - fun queryEventByInspection(inspectionId: String): MutableList { - val resultList = ArrayList() - taskEventDao.queryBuilder() + fun queryEventByInspection(inspectionId: String): MutableList { + return taskEventDao.queryBuilder() .where(TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId)) .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime)//按时间顺序最新顺序排序 - .list()?.forEach { - val listBean = InspectEventModel.DataModel.ListModel() - - listBean.id = it.taskId - listBean.inspectionId = it.inspectionId - listBean.name = it.eventTitle - listBean.createTime = it.createTime - listBean.type = it.type - listBean.lng = it.lng - listBean.lat = it.lat - listBean.data = it.data.toString() - listBean.images = it.images - listBean.description = it.description - listBean.user = it.user - - resultList.add(listBean) - } - return resultList + .list() } /**********************************************************************************************/ @@ -208,9 +183,9 @@ bean.user = "超级管理员" if (!isEventExist(taskId)) { taskEventDao.insert(bean) - //通知列表刷新 - QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } private fun isEventExist(taskId: String): Boolean { @@ -243,31 +218,9 @@ /** * 查询所有事件数据 */ - fun loadEvent(): MutableList { - val result = ArrayList() - - val temp = taskEventDao.queryBuilder() + fun loadEvent(): MutableList { + return taskEventDao.queryBuilder() .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime) .list() - - temp.forEach { - val rowsBean = EventListModel.DataModel.RowsModel() - - rowsBean.id = it.taskId - rowsBean.inspectionId = it.inspectionId - rowsBean.name = it.eventTitle - rowsBean.createTime = it.createTime - rowsBean.type = it.type - rowsBean.data = it.data.toString() - rowsBean.description = it.description - rowsBean.lat = it.lat - rowsBean.lng = it.lng - rowsBean.images = it.images - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt index 9302416..79b6d74 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt @@ -64,8 +64,6 @@ const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" - const val CURRENT_LONGITUDE = "currentLongitude" - const val CURRENT_LATITUDE = "currentLatitude" const val SERVICE_UUID = "0003cdd0-0000-1000-8000-00805f9b0131"//连接设备的UUID const val WRITE_CHARACTERISTIC_UUID = "0003cdd2-0000-1000-8000-00805f9b0131"//写数据特征值UUID const val READ_CHARACTERISTIC_UUID = "0003cdd1-0000-1000-8000-00805f9b0131"//读数据特征值UUID diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt new file mode 100644 index 0000000..525b4b0 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt @@ -0,0 +1,60 @@ +package com.casic.birmm.inspect.utils + +import android.content.Context +import android.util.Log +import com.amap.api.location.AMapLocation +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption + +class LocationHub private constructor() { + private val kTag = "LocationHub" + + companion object { + //Kotlin委托模式双重锁单例 + val get: LocationHub by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + LocationHub() + } + } + + private val locationOption = AMapLocationClientOption() + private lateinit var locationClient: AMapLocationClient + + init { + //设置定位模式为高精度模式,AMapLocationMode.Battery_Saving为低功耗模式,AMapLocationMode.Device_Sensors是仅设备模式 + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isNeedAddress = true //设置是否返回地址信息(默认返回地址信息) + locationOption.isLocationCacheEnable = true //可选,设置是否使用缓存定位,默认为true + } + + /** + * 高德sdk定位 + */ + fun getLocationByAMap(context: Context?, listener: ILocationListener) { + locationClient = AMapLocationClient(context) + //给定位客户端对象设置定位参数 + locationClient.setLocationOption(locationOption) + //设置定位回调监听 + locationClient.setLocationListener { aMapLocation -> + if (aMapLocation != null) { + if (aMapLocation.errorCode == 0) { + listener.onAMapLocationGet(aMapLocation) + } else { + Log.e( + kTag, + "ErrCode: ${aMapLocation.errorCode}, errInfo: ${aMapLocation.errorInfo}" + ) + } + } + } + //启动定位 + locationClient.startLocation() + } + + fun stopLocation() { + locationClient.stopLocation()//停止定位 + } + + interface ILocationListener { + fun onAMapLocationGet(aMapLocation: AMapLocation?) //高德定位数据 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt index 790d0b2..dea353f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.InspectEventModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.utils.DataBaseManager import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -26,12 +26,9 @@ "抱歉,无法查询到相关记录".show(this) } else { val eventAdapter = object : - NormalRecyclerAdapter( - R.layout.item_event_rv_l, dataRows - ) { + NormalRecyclerAdapter(R.layout.item_event_rv_l, dataRows) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectEventModel.DataModel.ListModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg @@ -39,7 +36,7 @@ * images: 2020-12/c2fd5777fe5d4e09af0bbd6693f5fbf4.jpg,2020-12/7d91abc431d0482da33745bacc111bc4.jpg * */ val images = item.images - val urls: ArrayList = ArrayList() + val urls = ArrayList() if (images != null) { // images == "" if (images.isNotEmpty()) { @@ -50,18 +47,18 @@ } } - viewHolder.setImageResource(R.id.inspectImageView, urls[0]) - .setText(R.id.inspectMsgView, item.name) + if (urls.isNotEmpty()) { + viewHolder.setImageResource(R.id.inspectImageView, urls[0]) + } + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventAdapter eventAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectEventModel.DataModel.ListModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt index 161bf67..7c00304 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt @@ -7,15 +7,8 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.utils.DataBaseManager import com.google.gson.Gson @@ -44,13 +37,13 @@ ImmersionBar.with(this).statusBarDarkFont(false).init() titleView.text = "巡检记录" - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! + val inspectionId = intent.getStringExtra(Constant.INTENT_PARAM)!! - initMap(savedInstanceState, id) + initMap(savedInstanceState, inspectionId) leftBackView.setOnClickListener { this.finish() } eventButton.setOnClickListener { - navigatePageTo(id) + navigatePageTo(inspectionId) } } @@ -64,43 +57,31 @@ //根据id查询详情 val detailData = DataBaseManager.get.queryInspectDetailById(id) - inspectMsgView.text = detailData.name + inspectMsgView.text = detailData.inspectionTitle startTimeView.text = detailData.startTime endTimeView.text = detailData.endTime - - LatLng(detailData.startLat, detailData.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(detailData.endLat, detailData.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) + startLocationView.text = detailData.startAddress + endLocationView.text = detailData.endAddress + distanceView.text = detailData.distance.toString() //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 addMarker(LatLng(detailData.endLat, detailData.endLng), R.mipmap.zhongdian) //瞄点画线 - val routeJson = detailData.routes!! - if (routeJson.isEmpty()) { + if (detailData.routes.isEmpty()) { return } //[{"lat":39.917433,"lng":116.269525},{"lat":39.917433,"lng":116.269525}] val type = object : TypeToken>() {}.type - val routeModels = gson.fromJson>(routeJson, type) + val routeModels = gson.fromJson>(detailData.routes, type) //画线 val latLngPoints: ArrayList = ArrayList() routeModels.forEach { routeModel -> @@ -109,12 +90,6 @@ aMap.addPolyline( PolylineOptions().addAll(latLngPoints).width(10.toFloat()).color(Color.RED) ) - - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) } private fun addMarker(point: LatLng, res: Int) { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 8569dc1..c314640 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -1,16 +1,20 @@ package com.casic.birmm.inspect.utils +import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.bean.TaskEventLocalBean +import com.casic.birmm.inspect.callback.OnDataAddListener +import com.casic.birmm.inspect.callback.OnDistanceSearchListener +import com.casic.birmm.inspect.callback.OnGeocodeSearchListener +import com.casic.birmm.inspect.extensions.calculateDistance +import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.greendao.InspectionLocalBeanDao import com.casic.birmm.inspect.greendao.TaskEventLocalBeanDao -import com.casic.birmm.inspect.model.EventListModel -import com.casic.birmm.inspect.model.InspectDetailModel -import com.casic.birmm.inspect.model.InspectEventModel -import com.casic.birmm.inspect.model.InspectListModel +import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.single.fragment.QueryEventFragment import com.casic.birmm.inspect.single.fragment.QueryInspectionFragment +import com.google.gson.Gson class DataBaseManager private constructor() { @@ -27,6 +31,7 @@ BaseApplication.get().getDaoSession().inspectionLocalBeanDao private var taskEventDao: TaskEventLocalBeanDao = BaseApplication.get().getDaoSession().taskEventLocalBeanDao + private val gson by lazy { Gson() } /** * 保存巡检记录到本地 @@ -41,7 +46,8 @@ startLat: Double, endLng: Double, endLat: Double, - routes: String + routes: ArrayList, + listener: OnDataAddListener ) { val bean = InspectionLocalBean() bean.inspectionId = inspectionId @@ -53,14 +59,37 @@ bean.startLat = startLat bean.endLng = endLng bean.endLat = endLat - bean.routes = routes + bean.routes = gson.toJson(routes) bean.user = "超级管理员" - if (!isInspectionExist(inspectionId)) { - inspectionDao.insert(bean) - //通知列表刷新 - QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage(2023081202) - } + LatLng(startLat, startLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.startAddress = address + + LatLng(endLat, endLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.endAddress = address + + routes.calculateDistance(object : OnDistanceSearchListener { + override fun onDistanceSearched(distance: String) { + bean.distance = distance.toDouble() + + if (!isInspectionExist(inspectionId)) { + inspectionDao.insert(bean) + + //通知列表刷新 + QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage( + 2023081202 + ) + + listener.onAddSuccess() + } + } + }) + } + }) + } + }) } private fun isInspectionExist(inspectionId: String): Boolean { @@ -92,89 +121,35 @@ /** * id查询巡检数据 */ - fun queryInspectDetailById(inspectionId: String): InspectDetailModel.DataModel { - val dataModel = InspectDetailModel.DataModel() + fun queryInspectDetailById(inspectionId: String): InspectionLocalBean { + val dataModel = InspectionLocalBean() val result = inspectionDao.queryBuilder().where( InspectionLocalBeanDao.Properties.InspectionId.eq(inspectionId) ).list() - if (!result.isNullOrEmpty()) { - val bean = result.first() - - dataModel.id = bean.inspectionId - dataModel.name = bean.inspectionTitle - dataModel.date = bean.date - dataModel.startTime = bean.startTime - dataModel.endTime = bean.endTime - dataModel.startLat = bean.startLat - dataModel.startLng = bean.startLng - dataModel.endLat = bean.endLat - dataModel.endLng = bean.endLng - dataModel.routes = bean.routes - dataModel.user = bean.user - - return dataModel + return if (!result.isNullOrEmpty()) { + result.first() } else { - return dataModel + dataModel } } /** * 查询所有巡检数据 */ - fun loadInspection(): MutableList { - val result = ArrayList() - - val temp = inspectionDao.queryBuilder() + fun loadInspection(): MutableList { + return inspectionDao.queryBuilder() .orderDesc(InspectionLocalBeanDao.Properties.StartTime) .list() - - temp.forEach { - val rowsBean = InspectListModel.DataModel.RowsModel() - - rowsBean.id = it.inspectionId - rowsBean.name = it.inspectionTitle - rowsBean.startTime = it.startTime - rowsBean.endTime = it.endTime - rowsBean.date = it.date - rowsBean.startLng = it.startLng - rowsBean.startLat = it.startLat - rowsBean.endLng = it.endLng - rowsBean.endLat = it.endLat - rowsBean.routes = it.routes - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } /** * 根据巡检Id查询事件数据 */ - fun queryEventByInspection(inspectionId: String): MutableList { - val resultList = ArrayList() - taskEventDao.queryBuilder() + fun queryEventByInspection(inspectionId: String): MutableList { + return taskEventDao.queryBuilder() .where(TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId)) .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime)//按时间顺序最新顺序排序 - .list()?.forEach { - val listBean = InspectEventModel.DataModel.ListModel() - - listBean.id = it.taskId - listBean.inspectionId = it.inspectionId - listBean.name = it.eventTitle - listBean.createTime = it.createTime - listBean.type = it.type - listBean.lng = it.lng - listBean.lat = it.lat - listBean.data = it.data.toString() - listBean.images = it.images - listBean.description = it.description - listBean.user = it.user - - resultList.add(listBean) - } - return resultList + .list() } /**********************************************************************************************/ @@ -208,9 +183,9 @@ bean.user = "超级管理员" if (!isEventExist(taskId)) { taskEventDao.insert(bean) - //通知列表刷新 - QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } private fun isEventExist(taskId: String): Boolean { @@ -243,31 +218,9 @@ /** * 查询所有事件数据 */ - fun loadEvent(): MutableList { - val result = ArrayList() - - val temp = taskEventDao.queryBuilder() + fun loadEvent(): MutableList { + return taskEventDao.queryBuilder() .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime) .list() - - temp.forEach { - val rowsBean = EventListModel.DataModel.RowsModel() - - rowsBean.id = it.taskId - rowsBean.inspectionId = it.inspectionId - rowsBean.name = it.eventTitle - rowsBean.createTime = it.createTime - rowsBean.type = it.type - rowsBean.data = it.data.toString() - rowsBean.description = it.description - rowsBean.lat = it.lat - rowsBean.lng = it.lng - rowsBean.images = it.images - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt index 9302416..79b6d74 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt @@ -64,8 +64,6 @@ const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" - const val CURRENT_LONGITUDE = "currentLongitude" - const val CURRENT_LATITUDE = "currentLatitude" const val SERVICE_UUID = "0003cdd0-0000-1000-8000-00805f9b0131"//连接设备的UUID const val WRITE_CHARACTERISTIC_UUID = "0003cdd2-0000-1000-8000-00805f9b0131"//写数据特征值UUID const val READ_CHARACTERISTIC_UUID = "0003cdd1-0000-1000-8000-00805f9b0131"//读数据特征值UUID diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt new file mode 100644 index 0000000..525b4b0 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt @@ -0,0 +1,60 @@ +package com.casic.birmm.inspect.utils + +import android.content.Context +import android.util.Log +import com.amap.api.location.AMapLocation +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption + +class LocationHub private constructor() { + private val kTag = "LocationHub" + + companion object { + //Kotlin委托模式双重锁单例 + val get: LocationHub by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + LocationHub() + } + } + + private val locationOption = AMapLocationClientOption() + private lateinit var locationClient: AMapLocationClient + + init { + //设置定位模式为高精度模式,AMapLocationMode.Battery_Saving为低功耗模式,AMapLocationMode.Device_Sensors是仅设备模式 + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isNeedAddress = true //设置是否返回地址信息(默认返回地址信息) + locationOption.isLocationCacheEnable = true //可选,设置是否使用缓存定位,默认为true + } + + /** + * 高德sdk定位 + */ + fun getLocationByAMap(context: Context?, listener: ILocationListener) { + locationClient = AMapLocationClient(context) + //给定位客户端对象设置定位参数 + locationClient.setLocationOption(locationOption) + //设置定位回调监听 + locationClient.setLocationListener { aMapLocation -> + if (aMapLocation != null) { + if (aMapLocation.errorCode == 0) { + listener.onAMapLocationGet(aMapLocation) + } else { + Log.e( + kTag, + "ErrCode: ${aMapLocation.errorCode}, errInfo: ${aMapLocation.errorInfo}" + ) + } + } + } + //启动定位 + locationClient.startLocation() + } + + fun stopLocation() { + locationClient.stopLocation()//停止定位 + } + + interface ILocationListener { + fun onAMapLocationGet(aMapLocation: AMapLocation?) //高德定位数据 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt index c84129f..d535178 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt @@ -9,10 +9,7 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R import com.casic.birmm.inspect.callback.OnDistanceSearchListener import com.casic.birmm.inspect.callback.OnGeocodeSearchListener @@ -100,12 +97,12 @@ }) //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt index 790d0b2..dea353f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.InspectEventModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.utils.DataBaseManager import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -26,12 +26,9 @@ "抱歉,无法查询到相关记录".show(this) } else { val eventAdapter = object : - NormalRecyclerAdapter( - R.layout.item_event_rv_l, dataRows - ) { + NormalRecyclerAdapter(R.layout.item_event_rv_l, dataRows) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectEventModel.DataModel.ListModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg @@ -39,7 +36,7 @@ * images: 2020-12/c2fd5777fe5d4e09af0bbd6693f5fbf4.jpg,2020-12/7d91abc431d0482da33745bacc111bc4.jpg * */ val images = item.images - val urls: ArrayList = ArrayList() + val urls = ArrayList() if (images != null) { // images == "" if (images.isNotEmpty()) { @@ -50,18 +47,18 @@ } } - viewHolder.setImageResource(R.id.inspectImageView, urls[0]) - .setText(R.id.inspectMsgView, item.name) + if (urls.isNotEmpty()) { + viewHolder.setImageResource(R.id.inspectImageView, urls[0]) + } + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventAdapter eventAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectEventModel.DataModel.ListModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt index 161bf67..7c00304 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt @@ -7,15 +7,8 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.utils.DataBaseManager import com.google.gson.Gson @@ -44,13 +37,13 @@ ImmersionBar.with(this).statusBarDarkFont(false).init() titleView.text = "巡检记录" - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! + val inspectionId = intent.getStringExtra(Constant.INTENT_PARAM)!! - initMap(savedInstanceState, id) + initMap(savedInstanceState, inspectionId) leftBackView.setOnClickListener { this.finish() } eventButton.setOnClickListener { - navigatePageTo(id) + navigatePageTo(inspectionId) } } @@ -64,43 +57,31 @@ //根据id查询详情 val detailData = DataBaseManager.get.queryInspectDetailById(id) - inspectMsgView.text = detailData.name + inspectMsgView.text = detailData.inspectionTitle startTimeView.text = detailData.startTime endTimeView.text = detailData.endTime - - LatLng(detailData.startLat, detailData.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(detailData.endLat, detailData.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) + startLocationView.text = detailData.startAddress + endLocationView.text = detailData.endAddress + distanceView.text = detailData.distance.toString() //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 addMarker(LatLng(detailData.endLat, detailData.endLng), R.mipmap.zhongdian) //瞄点画线 - val routeJson = detailData.routes!! - if (routeJson.isEmpty()) { + if (detailData.routes.isEmpty()) { return } //[{"lat":39.917433,"lng":116.269525},{"lat":39.917433,"lng":116.269525}] val type = object : TypeToken>() {}.type - val routeModels = gson.fromJson>(routeJson, type) + val routeModels = gson.fromJson>(detailData.routes, type) //画线 val latLngPoints: ArrayList = ArrayList() routeModels.forEach { routeModel -> @@ -109,12 +90,6 @@ aMap.addPolyline( PolylineOptions().addAll(latLngPoints).width(10.toFloat()).color(Color.RED) ) - - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) } private fun addMarker(point: LatLng, res: Int) { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 8569dc1..c314640 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -1,16 +1,20 @@ package com.casic.birmm.inspect.utils +import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.bean.TaskEventLocalBean +import com.casic.birmm.inspect.callback.OnDataAddListener +import com.casic.birmm.inspect.callback.OnDistanceSearchListener +import com.casic.birmm.inspect.callback.OnGeocodeSearchListener +import com.casic.birmm.inspect.extensions.calculateDistance +import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.greendao.InspectionLocalBeanDao import com.casic.birmm.inspect.greendao.TaskEventLocalBeanDao -import com.casic.birmm.inspect.model.EventListModel -import com.casic.birmm.inspect.model.InspectDetailModel -import com.casic.birmm.inspect.model.InspectEventModel -import com.casic.birmm.inspect.model.InspectListModel +import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.single.fragment.QueryEventFragment import com.casic.birmm.inspect.single.fragment.QueryInspectionFragment +import com.google.gson.Gson class DataBaseManager private constructor() { @@ -27,6 +31,7 @@ BaseApplication.get().getDaoSession().inspectionLocalBeanDao private var taskEventDao: TaskEventLocalBeanDao = BaseApplication.get().getDaoSession().taskEventLocalBeanDao + private val gson by lazy { Gson() } /** * 保存巡检记录到本地 @@ -41,7 +46,8 @@ startLat: Double, endLng: Double, endLat: Double, - routes: String + routes: ArrayList, + listener: OnDataAddListener ) { val bean = InspectionLocalBean() bean.inspectionId = inspectionId @@ -53,14 +59,37 @@ bean.startLat = startLat bean.endLng = endLng bean.endLat = endLat - bean.routes = routes + bean.routes = gson.toJson(routes) bean.user = "超级管理员" - if (!isInspectionExist(inspectionId)) { - inspectionDao.insert(bean) - //通知列表刷新 - QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage(2023081202) - } + LatLng(startLat, startLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.startAddress = address + + LatLng(endLat, endLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.endAddress = address + + routes.calculateDistance(object : OnDistanceSearchListener { + override fun onDistanceSearched(distance: String) { + bean.distance = distance.toDouble() + + if (!isInspectionExist(inspectionId)) { + inspectionDao.insert(bean) + + //通知列表刷新 + QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage( + 2023081202 + ) + + listener.onAddSuccess() + } + } + }) + } + }) + } + }) } private fun isInspectionExist(inspectionId: String): Boolean { @@ -92,89 +121,35 @@ /** * id查询巡检数据 */ - fun queryInspectDetailById(inspectionId: String): InspectDetailModel.DataModel { - val dataModel = InspectDetailModel.DataModel() + fun queryInspectDetailById(inspectionId: String): InspectionLocalBean { + val dataModel = InspectionLocalBean() val result = inspectionDao.queryBuilder().where( InspectionLocalBeanDao.Properties.InspectionId.eq(inspectionId) ).list() - if (!result.isNullOrEmpty()) { - val bean = result.first() - - dataModel.id = bean.inspectionId - dataModel.name = bean.inspectionTitle - dataModel.date = bean.date - dataModel.startTime = bean.startTime - dataModel.endTime = bean.endTime - dataModel.startLat = bean.startLat - dataModel.startLng = bean.startLng - dataModel.endLat = bean.endLat - dataModel.endLng = bean.endLng - dataModel.routes = bean.routes - dataModel.user = bean.user - - return dataModel + return if (!result.isNullOrEmpty()) { + result.first() } else { - return dataModel + dataModel } } /** * 查询所有巡检数据 */ - fun loadInspection(): MutableList { - val result = ArrayList() - - val temp = inspectionDao.queryBuilder() + fun loadInspection(): MutableList { + return inspectionDao.queryBuilder() .orderDesc(InspectionLocalBeanDao.Properties.StartTime) .list() - - temp.forEach { - val rowsBean = InspectListModel.DataModel.RowsModel() - - rowsBean.id = it.inspectionId - rowsBean.name = it.inspectionTitle - rowsBean.startTime = it.startTime - rowsBean.endTime = it.endTime - rowsBean.date = it.date - rowsBean.startLng = it.startLng - rowsBean.startLat = it.startLat - rowsBean.endLng = it.endLng - rowsBean.endLat = it.endLat - rowsBean.routes = it.routes - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } /** * 根据巡检Id查询事件数据 */ - fun queryEventByInspection(inspectionId: String): MutableList { - val resultList = ArrayList() - taskEventDao.queryBuilder() + fun queryEventByInspection(inspectionId: String): MutableList { + return taskEventDao.queryBuilder() .where(TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId)) .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime)//按时间顺序最新顺序排序 - .list()?.forEach { - val listBean = InspectEventModel.DataModel.ListModel() - - listBean.id = it.taskId - listBean.inspectionId = it.inspectionId - listBean.name = it.eventTitle - listBean.createTime = it.createTime - listBean.type = it.type - listBean.lng = it.lng - listBean.lat = it.lat - listBean.data = it.data.toString() - listBean.images = it.images - listBean.description = it.description - listBean.user = it.user - - resultList.add(listBean) - } - return resultList + .list() } /**********************************************************************************************/ @@ -208,9 +183,9 @@ bean.user = "超级管理员" if (!isEventExist(taskId)) { taskEventDao.insert(bean) - //通知列表刷新 - QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } private fun isEventExist(taskId: String): Boolean { @@ -243,31 +218,9 @@ /** * 查询所有事件数据 */ - fun loadEvent(): MutableList { - val result = ArrayList() - - val temp = taskEventDao.queryBuilder() + fun loadEvent(): MutableList { + return taskEventDao.queryBuilder() .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime) .list() - - temp.forEach { - val rowsBean = EventListModel.DataModel.RowsModel() - - rowsBean.id = it.taskId - rowsBean.inspectionId = it.inspectionId - rowsBean.name = it.eventTitle - rowsBean.createTime = it.createTime - rowsBean.type = it.type - rowsBean.data = it.data.toString() - rowsBean.description = it.description - rowsBean.lat = it.lat - rowsBean.lng = it.lng - rowsBean.images = it.images - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt index 9302416..79b6d74 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt @@ -64,8 +64,6 @@ const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" - const val CURRENT_LONGITUDE = "currentLongitude" - const val CURRENT_LATITUDE = "currentLatitude" const val SERVICE_UUID = "0003cdd0-0000-1000-8000-00805f9b0131"//连接设备的UUID const val WRITE_CHARACTERISTIC_UUID = "0003cdd2-0000-1000-8000-00805f9b0131"//写数据特征值UUID const val READ_CHARACTERISTIC_UUID = "0003cdd1-0000-1000-8000-00805f9b0131"//读数据特征值UUID diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt new file mode 100644 index 0000000..525b4b0 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt @@ -0,0 +1,60 @@ +package com.casic.birmm.inspect.utils + +import android.content.Context +import android.util.Log +import com.amap.api.location.AMapLocation +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption + +class LocationHub private constructor() { + private val kTag = "LocationHub" + + companion object { + //Kotlin委托模式双重锁单例 + val get: LocationHub by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + LocationHub() + } + } + + private val locationOption = AMapLocationClientOption() + private lateinit var locationClient: AMapLocationClient + + init { + //设置定位模式为高精度模式,AMapLocationMode.Battery_Saving为低功耗模式,AMapLocationMode.Device_Sensors是仅设备模式 + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isNeedAddress = true //设置是否返回地址信息(默认返回地址信息) + locationOption.isLocationCacheEnable = true //可选,设置是否使用缓存定位,默认为true + } + + /** + * 高德sdk定位 + */ + fun getLocationByAMap(context: Context?, listener: ILocationListener) { + locationClient = AMapLocationClient(context) + //给定位客户端对象设置定位参数 + locationClient.setLocationOption(locationOption) + //设置定位回调监听 + locationClient.setLocationListener { aMapLocation -> + if (aMapLocation != null) { + if (aMapLocation.errorCode == 0) { + listener.onAMapLocationGet(aMapLocation) + } else { + Log.e( + kTag, + "ErrCode: ${aMapLocation.errorCode}, errInfo: ${aMapLocation.errorInfo}" + ) + } + } + } + //启动定位 + locationClient.startLocation() + } + + fun stopLocation() { + locationClient.stopLocation()//停止定位 + } + + interface ILocationListener { + fun onAMapLocationGet(aMapLocation: AMapLocation?) //高德定位数据 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt index c84129f..d535178 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt @@ -9,10 +9,7 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R import com.casic.birmm.inspect.callback.OnDistanceSearchListener import com.casic.birmm.inspect.callback.OnGeocodeSearchListener @@ -100,12 +97,12 @@ }) //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt index f88fbf4..041f8de 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt @@ -4,7 +4,6 @@ import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.extensions.separateResponseCode import com.casic.birmm.inspect.extensions.toErrorMessage -import com.casic.birmm.inspect.model.ActionResultModel import com.casic.birmm.inspect.model.InspectDetailModel import com.casic.birmm.inspect.model.InspectEventModel import com.casic.birmm.inspect.model.InspectListModel @@ -25,7 +24,6 @@ val inspectionList = MutableLiveData() val inspectDetail = MutableLiveData() val inspectEvent = MutableLiveData() - val addInspectionResult = MutableLiveData() fun getInspectionList(keywords: String, startTime: String, endTime: String, pageIndex: Int) = launch({ @@ -96,9 +94,6 @@ val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success - addInspectionResult.value = gson.fromJson( - response, object : TypeToken() {}.type - ) } else { loadState.value = LoadState.Fail response.toErrorMessage().show(BaseApplication.get()) diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt index 790d0b2..dea353f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.InspectEventModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.utils.DataBaseManager import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -26,12 +26,9 @@ "抱歉,无法查询到相关记录".show(this) } else { val eventAdapter = object : - NormalRecyclerAdapter( - R.layout.item_event_rv_l, dataRows - ) { + NormalRecyclerAdapter(R.layout.item_event_rv_l, dataRows) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectEventModel.DataModel.ListModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg @@ -39,7 +36,7 @@ * images: 2020-12/c2fd5777fe5d4e09af0bbd6693f5fbf4.jpg,2020-12/7d91abc431d0482da33745bacc111bc4.jpg * */ val images = item.images - val urls: ArrayList = ArrayList() + val urls = ArrayList() if (images != null) { // images == "" if (images.isNotEmpty()) { @@ -50,18 +47,18 @@ } } - viewHolder.setImageResource(R.id.inspectImageView, urls[0]) - .setText(R.id.inspectMsgView, item.name) + if (urls.isNotEmpty()) { + viewHolder.setImageResource(R.id.inspectImageView, urls[0]) + } + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventAdapter eventAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectEventModel.DataModel.ListModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt index 161bf67..7c00304 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt @@ -7,15 +7,8 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.utils.DataBaseManager import com.google.gson.Gson @@ -44,13 +37,13 @@ ImmersionBar.with(this).statusBarDarkFont(false).init() titleView.text = "巡检记录" - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! + val inspectionId = intent.getStringExtra(Constant.INTENT_PARAM)!! - initMap(savedInstanceState, id) + initMap(savedInstanceState, inspectionId) leftBackView.setOnClickListener { this.finish() } eventButton.setOnClickListener { - navigatePageTo(id) + navigatePageTo(inspectionId) } } @@ -64,43 +57,31 @@ //根据id查询详情 val detailData = DataBaseManager.get.queryInspectDetailById(id) - inspectMsgView.text = detailData.name + inspectMsgView.text = detailData.inspectionTitle startTimeView.text = detailData.startTime endTimeView.text = detailData.endTime - - LatLng(detailData.startLat, detailData.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(detailData.endLat, detailData.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) + startLocationView.text = detailData.startAddress + endLocationView.text = detailData.endAddress + distanceView.text = detailData.distance.toString() //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 addMarker(LatLng(detailData.endLat, detailData.endLng), R.mipmap.zhongdian) //瞄点画线 - val routeJson = detailData.routes!! - if (routeJson.isEmpty()) { + if (detailData.routes.isEmpty()) { return } //[{"lat":39.917433,"lng":116.269525},{"lat":39.917433,"lng":116.269525}] val type = object : TypeToken>() {}.type - val routeModels = gson.fromJson>(routeJson, type) + val routeModels = gson.fromJson>(detailData.routes, type) //画线 val latLngPoints: ArrayList = ArrayList() routeModels.forEach { routeModel -> @@ -109,12 +90,6 @@ aMap.addPolyline( PolylineOptions().addAll(latLngPoints).width(10.toFloat()).color(Color.RED) ) - - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) } private fun addMarker(point: LatLng, res: Int) { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 8569dc1..c314640 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -1,16 +1,20 @@ package com.casic.birmm.inspect.utils +import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.bean.TaskEventLocalBean +import com.casic.birmm.inspect.callback.OnDataAddListener +import com.casic.birmm.inspect.callback.OnDistanceSearchListener +import com.casic.birmm.inspect.callback.OnGeocodeSearchListener +import com.casic.birmm.inspect.extensions.calculateDistance +import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.greendao.InspectionLocalBeanDao import com.casic.birmm.inspect.greendao.TaskEventLocalBeanDao -import com.casic.birmm.inspect.model.EventListModel -import com.casic.birmm.inspect.model.InspectDetailModel -import com.casic.birmm.inspect.model.InspectEventModel -import com.casic.birmm.inspect.model.InspectListModel +import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.single.fragment.QueryEventFragment import com.casic.birmm.inspect.single.fragment.QueryInspectionFragment +import com.google.gson.Gson class DataBaseManager private constructor() { @@ -27,6 +31,7 @@ BaseApplication.get().getDaoSession().inspectionLocalBeanDao private var taskEventDao: TaskEventLocalBeanDao = BaseApplication.get().getDaoSession().taskEventLocalBeanDao + private val gson by lazy { Gson() } /** * 保存巡检记录到本地 @@ -41,7 +46,8 @@ startLat: Double, endLng: Double, endLat: Double, - routes: String + routes: ArrayList, + listener: OnDataAddListener ) { val bean = InspectionLocalBean() bean.inspectionId = inspectionId @@ -53,14 +59,37 @@ bean.startLat = startLat bean.endLng = endLng bean.endLat = endLat - bean.routes = routes + bean.routes = gson.toJson(routes) bean.user = "超级管理员" - if (!isInspectionExist(inspectionId)) { - inspectionDao.insert(bean) - //通知列表刷新 - QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage(2023081202) - } + LatLng(startLat, startLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.startAddress = address + + LatLng(endLat, endLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.endAddress = address + + routes.calculateDistance(object : OnDistanceSearchListener { + override fun onDistanceSearched(distance: String) { + bean.distance = distance.toDouble() + + if (!isInspectionExist(inspectionId)) { + inspectionDao.insert(bean) + + //通知列表刷新 + QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage( + 2023081202 + ) + + listener.onAddSuccess() + } + } + }) + } + }) + } + }) } private fun isInspectionExist(inspectionId: String): Boolean { @@ -92,89 +121,35 @@ /** * id查询巡检数据 */ - fun queryInspectDetailById(inspectionId: String): InspectDetailModel.DataModel { - val dataModel = InspectDetailModel.DataModel() + fun queryInspectDetailById(inspectionId: String): InspectionLocalBean { + val dataModel = InspectionLocalBean() val result = inspectionDao.queryBuilder().where( InspectionLocalBeanDao.Properties.InspectionId.eq(inspectionId) ).list() - if (!result.isNullOrEmpty()) { - val bean = result.first() - - dataModel.id = bean.inspectionId - dataModel.name = bean.inspectionTitle - dataModel.date = bean.date - dataModel.startTime = bean.startTime - dataModel.endTime = bean.endTime - dataModel.startLat = bean.startLat - dataModel.startLng = bean.startLng - dataModel.endLat = bean.endLat - dataModel.endLng = bean.endLng - dataModel.routes = bean.routes - dataModel.user = bean.user - - return dataModel + return if (!result.isNullOrEmpty()) { + result.first() } else { - return dataModel + dataModel } } /** * 查询所有巡检数据 */ - fun loadInspection(): MutableList { - val result = ArrayList() - - val temp = inspectionDao.queryBuilder() + fun loadInspection(): MutableList { + return inspectionDao.queryBuilder() .orderDesc(InspectionLocalBeanDao.Properties.StartTime) .list() - - temp.forEach { - val rowsBean = InspectListModel.DataModel.RowsModel() - - rowsBean.id = it.inspectionId - rowsBean.name = it.inspectionTitle - rowsBean.startTime = it.startTime - rowsBean.endTime = it.endTime - rowsBean.date = it.date - rowsBean.startLng = it.startLng - rowsBean.startLat = it.startLat - rowsBean.endLng = it.endLng - rowsBean.endLat = it.endLat - rowsBean.routes = it.routes - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } /** * 根据巡检Id查询事件数据 */ - fun queryEventByInspection(inspectionId: String): MutableList { - val resultList = ArrayList() - taskEventDao.queryBuilder() + fun queryEventByInspection(inspectionId: String): MutableList { + return taskEventDao.queryBuilder() .where(TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId)) .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime)//按时间顺序最新顺序排序 - .list()?.forEach { - val listBean = InspectEventModel.DataModel.ListModel() - - listBean.id = it.taskId - listBean.inspectionId = it.inspectionId - listBean.name = it.eventTitle - listBean.createTime = it.createTime - listBean.type = it.type - listBean.lng = it.lng - listBean.lat = it.lat - listBean.data = it.data.toString() - listBean.images = it.images - listBean.description = it.description - listBean.user = it.user - - resultList.add(listBean) - } - return resultList + .list() } /**********************************************************************************************/ @@ -208,9 +183,9 @@ bean.user = "超级管理员" if (!isEventExist(taskId)) { taskEventDao.insert(bean) - //通知列表刷新 - QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } private fun isEventExist(taskId: String): Boolean { @@ -243,31 +218,9 @@ /** * 查询所有事件数据 */ - fun loadEvent(): MutableList { - val result = ArrayList() - - val temp = taskEventDao.queryBuilder() + fun loadEvent(): MutableList { + return taskEventDao.queryBuilder() .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime) .list() - - temp.forEach { - val rowsBean = EventListModel.DataModel.RowsModel() - - rowsBean.id = it.taskId - rowsBean.inspectionId = it.inspectionId - rowsBean.name = it.eventTitle - rowsBean.createTime = it.createTime - rowsBean.type = it.type - rowsBean.data = it.data.toString() - rowsBean.description = it.description - rowsBean.lat = it.lat - rowsBean.lng = it.lng - rowsBean.images = it.images - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt index 9302416..79b6d74 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt @@ -64,8 +64,6 @@ const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" - const val CURRENT_LONGITUDE = "currentLongitude" - const val CURRENT_LATITUDE = "currentLatitude" const val SERVICE_UUID = "0003cdd0-0000-1000-8000-00805f9b0131"//连接设备的UUID const val WRITE_CHARACTERISTIC_UUID = "0003cdd2-0000-1000-8000-00805f9b0131"//写数据特征值UUID const val READ_CHARACTERISTIC_UUID = "0003cdd1-0000-1000-8000-00805f9b0131"//读数据特征值UUID diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt new file mode 100644 index 0000000..525b4b0 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt @@ -0,0 +1,60 @@ +package com.casic.birmm.inspect.utils + +import android.content.Context +import android.util.Log +import com.amap.api.location.AMapLocation +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption + +class LocationHub private constructor() { + private val kTag = "LocationHub" + + companion object { + //Kotlin委托模式双重锁单例 + val get: LocationHub by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + LocationHub() + } + } + + private val locationOption = AMapLocationClientOption() + private lateinit var locationClient: AMapLocationClient + + init { + //设置定位模式为高精度模式,AMapLocationMode.Battery_Saving为低功耗模式,AMapLocationMode.Device_Sensors是仅设备模式 + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isNeedAddress = true //设置是否返回地址信息(默认返回地址信息) + locationOption.isLocationCacheEnable = true //可选,设置是否使用缓存定位,默认为true + } + + /** + * 高德sdk定位 + */ + fun getLocationByAMap(context: Context?, listener: ILocationListener) { + locationClient = AMapLocationClient(context) + //给定位客户端对象设置定位参数 + locationClient.setLocationOption(locationOption) + //设置定位回调监听 + locationClient.setLocationListener { aMapLocation -> + if (aMapLocation != null) { + if (aMapLocation.errorCode == 0) { + listener.onAMapLocationGet(aMapLocation) + } else { + Log.e( + kTag, + "ErrCode: ${aMapLocation.errorCode}, errInfo: ${aMapLocation.errorInfo}" + ) + } + } + } + //启动定位 + locationClient.startLocation() + } + + fun stopLocation() { + locationClient.stopLocation()//停止定位 + } + + interface ILocationListener { + fun onAMapLocationGet(aMapLocation: AMapLocation?) //高德定位数据 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt index c84129f..d535178 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt @@ -9,10 +9,7 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R import com.casic.birmm.inspect.callback.OnDistanceSearchListener import com.casic.birmm.inspect.callback.OnGeocodeSearchListener @@ -100,12 +97,12 @@ }) //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt index f88fbf4..041f8de 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt @@ -4,7 +4,6 @@ import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.extensions.separateResponseCode import com.casic.birmm.inspect.extensions.toErrorMessage -import com.casic.birmm.inspect.model.ActionResultModel import com.casic.birmm.inspect.model.InspectDetailModel import com.casic.birmm.inspect.model.InspectEventModel import com.casic.birmm.inspect.model.InspectListModel @@ -25,7 +24,6 @@ val inspectionList = MutableLiveData() val inspectDetail = MutableLiveData() val inspectEvent = MutableLiveData() - val addInspectionResult = MutableLiveData() fun getInspectionList(keywords: String, startTime: String, endTime: String, pageIndex: Int) = launch({ @@ -96,9 +94,6 @@ val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success - addInspectionResult.value = gson.fromJson( - response, object : TypeToken() {}.type - ) } else { loadState.value = LoadState.Fail response.toErrorMessage().show(BaseApplication.get()) diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 09a5d0f..5fb0844 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -96,7 +96,7 @@ android:layout_below="@id/loginButton" android:layout_marginHorizontal="@dimen/dp_50" android:layout_marginTop="@dimen/dp_10" - android:text="单机模式使用" /> + android:text="本地模式使用" /> , + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt index 790d0b2..dea353f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.InspectEventModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.utils.DataBaseManager import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -26,12 +26,9 @@ "抱歉,无法查询到相关记录".show(this) } else { val eventAdapter = object : - NormalRecyclerAdapter( - R.layout.item_event_rv_l, dataRows - ) { + NormalRecyclerAdapter(R.layout.item_event_rv_l, dataRows) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectEventModel.DataModel.ListModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg @@ -39,7 +36,7 @@ * images: 2020-12/c2fd5777fe5d4e09af0bbd6693f5fbf4.jpg,2020-12/7d91abc431d0482da33745bacc111bc4.jpg * */ val images = item.images - val urls: ArrayList = ArrayList() + val urls = ArrayList() if (images != null) { // images == "" if (images.isNotEmpty()) { @@ -50,18 +47,18 @@ } } - viewHolder.setImageResource(R.id.inspectImageView, urls[0]) - .setText(R.id.inspectMsgView, item.name) + if (urls.isNotEmpty()) { + viewHolder.setImageResource(R.id.inspectImageView, urls[0]) + } + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventAdapter eventAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectEventModel.DataModel.ListModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt index 161bf67..7c00304 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt @@ -7,15 +7,8 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.utils.DataBaseManager import com.google.gson.Gson @@ -44,13 +37,13 @@ ImmersionBar.with(this).statusBarDarkFont(false).init() titleView.text = "巡检记录" - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! + val inspectionId = intent.getStringExtra(Constant.INTENT_PARAM)!! - initMap(savedInstanceState, id) + initMap(savedInstanceState, inspectionId) leftBackView.setOnClickListener { this.finish() } eventButton.setOnClickListener { - navigatePageTo(id) + navigatePageTo(inspectionId) } } @@ -64,43 +57,31 @@ //根据id查询详情 val detailData = DataBaseManager.get.queryInspectDetailById(id) - inspectMsgView.text = detailData.name + inspectMsgView.text = detailData.inspectionTitle startTimeView.text = detailData.startTime endTimeView.text = detailData.endTime - - LatLng(detailData.startLat, detailData.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(detailData.endLat, detailData.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) + startLocationView.text = detailData.startAddress + endLocationView.text = detailData.endAddress + distanceView.text = detailData.distance.toString() //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 addMarker(LatLng(detailData.endLat, detailData.endLng), R.mipmap.zhongdian) //瞄点画线 - val routeJson = detailData.routes!! - if (routeJson.isEmpty()) { + if (detailData.routes.isEmpty()) { return } //[{"lat":39.917433,"lng":116.269525},{"lat":39.917433,"lng":116.269525}] val type = object : TypeToken>() {}.type - val routeModels = gson.fromJson>(routeJson, type) + val routeModels = gson.fromJson>(detailData.routes, type) //画线 val latLngPoints: ArrayList = ArrayList() routeModels.forEach { routeModel -> @@ -109,12 +90,6 @@ aMap.addPolyline( PolylineOptions().addAll(latLngPoints).width(10.toFloat()).color(Color.RED) ) - - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) } private fun addMarker(point: LatLng, res: Int) { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 8569dc1..c314640 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -1,16 +1,20 @@ package com.casic.birmm.inspect.utils +import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.bean.TaskEventLocalBean +import com.casic.birmm.inspect.callback.OnDataAddListener +import com.casic.birmm.inspect.callback.OnDistanceSearchListener +import com.casic.birmm.inspect.callback.OnGeocodeSearchListener +import com.casic.birmm.inspect.extensions.calculateDistance +import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.greendao.InspectionLocalBeanDao import com.casic.birmm.inspect.greendao.TaskEventLocalBeanDao -import com.casic.birmm.inspect.model.EventListModel -import com.casic.birmm.inspect.model.InspectDetailModel -import com.casic.birmm.inspect.model.InspectEventModel -import com.casic.birmm.inspect.model.InspectListModel +import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.single.fragment.QueryEventFragment import com.casic.birmm.inspect.single.fragment.QueryInspectionFragment +import com.google.gson.Gson class DataBaseManager private constructor() { @@ -27,6 +31,7 @@ BaseApplication.get().getDaoSession().inspectionLocalBeanDao private var taskEventDao: TaskEventLocalBeanDao = BaseApplication.get().getDaoSession().taskEventLocalBeanDao + private val gson by lazy { Gson() } /** * 保存巡检记录到本地 @@ -41,7 +46,8 @@ startLat: Double, endLng: Double, endLat: Double, - routes: String + routes: ArrayList, + listener: OnDataAddListener ) { val bean = InspectionLocalBean() bean.inspectionId = inspectionId @@ -53,14 +59,37 @@ bean.startLat = startLat bean.endLng = endLng bean.endLat = endLat - bean.routes = routes + bean.routes = gson.toJson(routes) bean.user = "超级管理员" - if (!isInspectionExist(inspectionId)) { - inspectionDao.insert(bean) - //通知列表刷新 - QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage(2023081202) - } + LatLng(startLat, startLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.startAddress = address + + LatLng(endLat, endLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.endAddress = address + + routes.calculateDistance(object : OnDistanceSearchListener { + override fun onDistanceSearched(distance: String) { + bean.distance = distance.toDouble() + + if (!isInspectionExist(inspectionId)) { + inspectionDao.insert(bean) + + //通知列表刷新 + QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage( + 2023081202 + ) + + listener.onAddSuccess() + } + } + }) + } + }) + } + }) } private fun isInspectionExist(inspectionId: String): Boolean { @@ -92,89 +121,35 @@ /** * id查询巡检数据 */ - fun queryInspectDetailById(inspectionId: String): InspectDetailModel.DataModel { - val dataModel = InspectDetailModel.DataModel() + fun queryInspectDetailById(inspectionId: String): InspectionLocalBean { + val dataModel = InspectionLocalBean() val result = inspectionDao.queryBuilder().where( InspectionLocalBeanDao.Properties.InspectionId.eq(inspectionId) ).list() - if (!result.isNullOrEmpty()) { - val bean = result.first() - - dataModel.id = bean.inspectionId - dataModel.name = bean.inspectionTitle - dataModel.date = bean.date - dataModel.startTime = bean.startTime - dataModel.endTime = bean.endTime - dataModel.startLat = bean.startLat - dataModel.startLng = bean.startLng - dataModel.endLat = bean.endLat - dataModel.endLng = bean.endLng - dataModel.routes = bean.routes - dataModel.user = bean.user - - return dataModel + return if (!result.isNullOrEmpty()) { + result.first() } else { - return dataModel + dataModel } } /** * 查询所有巡检数据 */ - fun loadInspection(): MutableList { - val result = ArrayList() - - val temp = inspectionDao.queryBuilder() + fun loadInspection(): MutableList { + return inspectionDao.queryBuilder() .orderDesc(InspectionLocalBeanDao.Properties.StartTime) .list() - - temp.forEach { - val rowsBean = InspectListModel.DataModel.RowsModel() - - rowsBean.id = it.inspectionId - rowsBean.name = it.inspectionTitle - rowsBean.startTime = it.startTime - rowsBean.endTime = it.endTime - rowsBean.date = it.date - rowsBean.startLng = it.startLng - rowsBean.startLat = it.startLat - rowsBean.endLng = it.endLng - rowsBean.endLat = it.endLat - rowsBean.routes = it.routes - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } /** * 根据巡检Id查询事件数据 */ - fun queryEventByInspection(inspectionId: String): MutableList { - val resultList = ArrayList() - taskEventDao.queryBuilder() + fun queryEventByInspection(inspectionId: String): MutableList { + return taskEventDao.queryBuilder() .where(TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId)) .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime)//按时间顺序最新顺序排序 - .list()?.forEach { - val listBean = InspectEventModel.DataModel.ListModel() - - listBean.id = it.taskId - listBean.inspectionId = it.inspectionId - listBean.name = it.eventTitle - listBean.createTime = it.createTime - listBean.type = it.type - listBean.lng = it.lng - listBean.lat = it.lat - listBean.data = it.data.toString() - listBean.images = it.images - listBean.description = it.description - listBean.user = it.user - - resultList.add(listBean) - } - return resultList + .list() } /**********************************************************************************************/ @@ -208,9 +183,9 @@ bean.user = "超级管理员" if (!isEventExist(taskId)) { taskEventDao.insert(bean) - //通知列表刷新 - QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } private fun isEventExist(taskId: String): Boolean { @@ -243,31 +218,9 @@ /** * 查询所有事件数据 */ - fun loadEvent(): MutableList { - val result = ArrayList() - - val temp = taskEventDao.queryBuilder() + fun loadEvent(): MutableList { + return taskEventDao.queryBuilder() .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime) .list() - - temp.forEach { - val rowsBean = EventListModel.DataModel.RowsModel() - - rowsBean.id = it.taskId - rowsBean.inspectionId = it.inspectionId - rowsBean.name = it.eventTitle - rowsBean.createTime = it.createTime - rowsBean.type = it.type - rowsBean.data = it.data.toString() - rowsBean.description = it.description - rowsBean.lat = it.lat - rowsBean.lng = it.lng - rowsBean.images = it.images - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt index 9302416..79b6d74 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt @@ -64,8 +64,6 @@ const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" - const val CURRENT_LONGITUDE = "currentLongitude" - const val CURRENT_LATITUDE = "currentLatitude" const val SERVICE_UUID = "0003cdd0-0000-1000-8000-00805f9b0131"//连接设备的UUID const val WRITE_CHARACTERISTIC_UUID = "0003cdd2-0000-1000-8000-00805f9b0131"//写数据特征值UUID const val READ_CHARACTERISTIC_UUID = "0003cdd1-0000-1000-8000-00805f9b0131"//读数据特征值UUID diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt new file mode 100644 index 0000000..525b4b0 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt @@ -0,0 +1,60 @@ +package com.casic.birmm.inspect.utils + +import android.content.Context +import android.util.Log +import com.amap.api.location.AMapLocation +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption + +class LocationHub private constructor() { + private val kTag = "LocationHub" + + companion object { + //Kotlin委托模式双重锁单例 + val get: LocationHub by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + LocationHub() + } + } + + private val locationOption = AMapLocationClientOption() + private lateinit var locationClient: AMapLocationClient + + init { + //设置定位模式为高精度模式,AMapLocationMode.Battery_Saving为低功耗模式,AMapLocationMode.Device_Sensors是仅设备模式 + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isNeedAddress = true //设置是否返回地址信息(默认返回地址信息) + locationOption.isLocationCacheEnable = true //可选,设置是否使用缓存定位,默认为true + } + + /** + * 高德sdk定位 + */ + fun getLocationByAMap(context: Context?, listener: ILocationListener) { + locationClient = AMapLocationClient(context) + //给定位客户端对象设置定位参数 + locationClient.setLocationOption(locationOption) + //设置定位回调监听 + locationClient.setLocationListener { aMapLocation -> + if (aMapLocation != null) { + if (aMapLocation.errorCode == 0) { + listener.onAMapLocationGet(aMapLocation) + } else { + Log.e( + kTag, + "ErrCode: ${aMapLocation.errorCode}, errInfo: ${aMapLocation.errorInfo}" + ) + } + } + } + //启动定位 + locationClient.startLocation() + } + + fun stopLocation() { + locationClient.stopLocation()//停止定位 + } + + interface ILocationListener { + fun onAMapLocationGet(aMapLocation: AMapLocation?) //高德定位数据 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt index c84129f..d535178 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt @@ -9,10 +9,7 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R import com.casic.birmm.inspect.callback.OnDistanceSearchListener import com.casic.birmm.inspect.callback.OnGeocodeSearchListener @@ -100,12 +97,12 @@ }) //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt index f88fbf4..041f8de 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt @@ -4,7 +4,6 @@ import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.extensions.separateResponseCode import com.casic.birmm.inspect.extensions.toErrorMessage -import com.casic.birmm.inspect.model.ActionResultModel import com.casic.birmm.inspect.model.InspectDetailModel import com.casic.birmm.inspect.model.InspectEventModel import com.casic.birmm.inspect.model.InspectListModel @@ -25,7 +24,6 @@ val inspectionList = MutableLiveData() val inspectDetail = MutableLiveData() val inspectEvent = MutableLiveData() - val addInspectionResult = MutableLiveData() fun getInspectionList(keywords: String, startTime: String, endTime: String, pageIndex: Int) = launch({ @@ -96,9 +94,6 @@ val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success - addInspectionResult.value = gson.fromJson( - response, object : TypeToken() {}.type - ) } else { loadState.value = LoadState.Fail response.toErrorMessage().show(BaseApplication.get()) diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 09a5d0f..5fb0844 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -96,7 +96,7 @@ android:layout_below="@id/loginButton" android:layout_marginHorizontal="@dimen/dp_50" android:layout_marginTop="@dimen/dp_10" - android:text="单机模式使用" /> + android:text="本地模式使用" /> @@ -83,7 +82,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="2023-08-11 15:39:55" android:textColor="@color/black" android:textSize="@dimen/sp_14" /> @@ -92,7 +90,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="北京市海淀区金沟河路航天科工二院" android:textColor="@color/lightGray" android:textSize="@dimen/sp_12" /> @@ -109,7 +106,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="2023-08-11 15:45:05" android:textColor="@color/black" android:textSize="@dimen/sp_14" /> @@ -118,7 +114,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="北京市海淀区金沟河路航天科工二院" android:textColor="@color/lightGray" android:textSize="@dimen/sp_12" /> @@ -154,7 +149,6 @@ android:layout_height="wrap_content" android:fontFamily="sans-serif-black" android:singleLine="true" - android:text="3.15" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> diff --git a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java index 43a6515..b049ab6 100644 --- a/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java +++ b/app/src/main/java/com/casic/birmm/inspect/bean/InspectionLocalBean.java @@ -17,18 +17,20 @@ private String startTime; //开始事件 private String endTime; // 结束时间 private String date; // 日期 - private double startLng; // 开始经度 - private double startLat; // 开始纬度 + private double startLng; // 开始纬度 + private double startLat; // 开始经度 + private String startAddress; // 开始点位置 private double endLng; // 结束经度 private double endLat; // 结束维度 + private String endAddress; // 开始点位置 private String routes; // 路线Json + private double distance; // 路线点距离 private String user; // 巡检人 - @Generated(hash = 813913188) - public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, - String startTime, String endTime, String date, double startLng, - double startLat, double endLng, double endLat, String routes, - String user) { + @Generated(hash = 1830851884) + public InspectionLocalBean(Long id, String inspectionId, String inspectionTitle, String startTime, + String endTime, String date, double startLng, double startLat, String startAddress, double endLng, + double endLat, String endAddress, String routes, double distance, String user) { this.id = id; this.inspectionId = inspectionId; this.inspectionTitle = inspectionTitle; @@ -37,9 +39,12 @@ this.date = date; this.startLng = startLng; this.startLat = startLat; + this.startAddress = startAddress; this.endLng = endLng; this.endLat = endLat; + this.endAddress = endAddress; this.routes = routes; + this.distance = distance; this.user = user; } @@ -142,4 +147,28 @@ public void setUser(String user) { this.user = user; } + + public double getDistance() { + return this.distance; + } + + public void setDistance(double distance) { + this.distance = distance; + } + + public String getStartAddress() { + return this.startAddress; + } + + public void setStartAddress(String startAddress) { + this.startAddress = startAddress; + } + + public String getEndAddress() { + return this.endAddress; + } + + public void setEndAddress(String endAddress) { + this.endAddress = endAddress; + } } diff --git a/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt new file mode 100644 index 0000000..01bc6d9 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/callback/OnDataAddListener.kt @@ -0,0 +1,5 @@ +package com.casic.birmm.inspect.callback + +interface OnDataAddListener { + fun onAddSuccess() +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java index 7275b54..adea918 100644 --- a/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java +++ b/app/src/main/java/com/casic/birmm/inspect/greendao/InspectionLocalBeanDao.java @@ -32,10 +32,13 @@ public final static Property Date = new Property(5, String.class, "date", false, "DATE"); public final static Property StartLng = new Property(6, double.class, "startLng", false, "START_LNG"); public final static Property StartLat = new Property(7, double.class, "startLat", false, "START_LAT"); - public final static Property EndLng = new Property(8, double.class, "endLng", false, "END_LNG"); - public final static Property EndLat = new Property(9, double.class, "endLat", false, "END_LAT"); - public final static Property Routes = new Property(10, String.class, "routes", false, "ROUTES"); - public final static Property User = new Property(11, String.class, "user", false, "USER"); + public final static Property StartAddress = new Property(8, String.class, "startAddress", false, "START_ADDRESS"); + public final static Property EndLng = new Property(9, double.class, "endLng", false, "END_LNG"); + public final static Property EndLat = new Property(10, double.class, "endLat", false, "END_LAT"); + public final static Property EndAddress = new Property(11, String.class, "endAddress", false, "END_ADDRESS"); + public final static Property Routes = new Property(12, String.class, "routes", false, "ROUTES"); + public final static Property Distance = new Property(13, double.class, "distance", false, "DISTANCE"); + public final static Property User = new Property(14, String.class, "user", false, "USER"); } @@ -59,10 +62,13 @@ "\"DATE\" TEXT," + // 5: date "\"START_LNG\" REAL NOT NULL ," + // 6: startLng "\"START_LAT\" REAL NOT NULL ," + // 7: startLat - "\"END_LNG\" REAL NOT NULL ," + // 8: endLng - "\"END_LAT\" REAL NOT NULL ," + // 9: endLat - "\"ROUTES\" TEXT," + // 10: routes - "\"USER\" TEXT);"); // 11: user + "\"START_ADDRESS\" TEXT," + // 8: startAddress + "\"END_LNG\" REAL NOT NULL ," + // 9: endLng + "\"END_LAT\" REAL NOT NULL ," + // 10: endLat + "\"END_ADDRESS\" TEXT," + // 11: endAddress + "\"ROUTES\" TEXT," + // 12: routes + "\"DISTANCE\" REAL NOT NULL ," + // 13: distance + "\"USER\" TEXT);"); // 14: user } /** Drops the underlying database table. */ @@ -99,24 +105,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -148,24 +165,35 @@ if (endTime != null) { stmt.bindString(5, endTime); } - + String date = entity.getDate(); if (date != null) { stmt.bindString(6, date); } stmt.bindDouble(7, entity.getStartLng()); stmt.bindDouble(8, entity.getStartLat()); - stmt.bindDouble(9, entity.getEndLng()); - stmt.bindDouble(10, entity.getEndLat()); - + + String startAddress = entity.getStartAddress(); + if (startAddress != null) { + stmt.bindString(9, startAddress); + } + stmt.bindDouble(10, entity.getEndLng()); + stmt.bindDouble(11, entity.getEndLat()); + + String endAddress = entity.getEndAddress(); + if (endAddress != null) { + stmt.bindString(12, endAddress); + } + String routes = entity.getRoutes(); if (routes != null) { - stmt.bindString(11, routes); + stmt.bindString(13, routes); } - + stmt.bindDouble(14, entity.getDistance()); + String user = entity.getUser(); if (user != null) { - stmt.bindString(12, user); + stmt.bindString(15, user); } } @@ -177,18 +205,21 @@ @Override public InspectionLocalBean readEntity(Cursor cursor, int offset) { InspectionLocalBean entity = new InspectionLocalBean( // - cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id - cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId - cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle - cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime - cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime - cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date - cursor.getDouble(offset + 6), // startLng - cursor.getDouble(offset + 7), // startLat - cursor.getDouble(offset + 8), // endLng - cursor.getDouble(offset + 9), // endLat - cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10), // routes - cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11) // user + cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // id + cursor.isNull(offset + 1) ? null : cursor.getString(offset + 1), // inspectionId + cursor.isNull(offset + 2) ? null : cursor.getString(offset + 2), // inspectionTitle + cursor.isNull(offset + 3) ? null : cursor.getString(offset + 3), // startTime + cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // endTime + cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // date + cursor.getDouble(offset + 6), // startLng + cursor.getDouble(offset + 7), // startLat + cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8), // startAddress + cursor.getDouble(offset + 9), // endLng + cursor.getDouble(offset + 10), // endLat + cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11), // endAddress + cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12), // routes + cursor.getDouble(offset + 13), // distance + cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14) // user ); return entity; } @@ -203,11 +234,14 @@ entity.setDate(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setStartLng(cursor.getDouble(offset + 6)); entity.setStartLat(cursor.getDouble(offset + 7)); - entity.setEndLng(cursor.getDouble(offset + 8)); - entity.setEndLat(cursor.getDouble(offset + 9)); - entity.setRoutes(cursor.isNull(offset + 10) ? null : cursor.getString(offset + 10)); - entity.setUser(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); - } + entity.setStartAddress(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8)); + entity.setEndLng(cursor.getDouble(offset + 9)); + entity.setEndLat(cursor.getDouble(offset + 10)); + entity.setEndAddress(cursor.isNull(offset + 11) ? null : cursor.getString(offset + 11)); + entity.setRoutes(cursor.isNull(offset + 12) ? null : cursor.getString(offset + 12)); + entity.setDistance(cursor.getDouble(offset + 13)); + entity.setUser(cursor.isNull(offset + 14) ? null : cursor.getString(offset + 14)); + } @Override protected final Long updateKeyAfterInsert(InspectionLocalBean entity, long rowId) { diff --git a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt index 136a62e..a7b5de0 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/NewInspectionModel.kt @@ -1,124 +1,15 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class NewInspectionModel { - /** - * 巡检记录ID - */ - private String id; - private String name; - private String startTime; - private String endTime; - private String date; - private double startLng; - private double startLat; - private double endLng; - private double endLat; - private String routes; - private String user; - - public NewInspectionModel() { - - } - - public NewInspectionModel(String id, String name, String startTime, String endTime, String date, double startLng, double startLat, double endLng, double endLat, String routes, String user) { - this.id = id; - this.name = name; - this.startTime = startTime; - this.endTime = endTime; - this.date = date; - this.startLng = startLng; - this.startLat = startLat; - this.endLng = endLng; - this.endLat = endLat; - this.routes = routes; - this.user = user; - } - - public String getId() { - return id; - } - - public void setId(String id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getStartTime() { - return startTime; - } - - public void setStartTime(String startTime) { - this.startTime = startTime; - } - - public String getEndTime() { - return endTime; - } - - public void setEndTime(String endTime) { - this.endTime = endTime; - } - - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } - - public double getStartLng() { - return startLng; - } - - public void setStartLng(double startLng) { - this.startLng = startLng; - } - - public double getStartLat() { - return startLat; - } - - public void setStartLat(double startLat) { - this.startLat = startLat; - } - - public double getEndLng() { - return endLng; - } - - public void setEndLng(double endLng) { - this.endLng = endLng; - } - - public double getEndLat() { - return endLat; - } - - public void setEndLat(double endLat) { - this.endLat = endLat; - } - - public String getRoutes() { - return routes; - } - - public void setRoutes(String routes) { - this.routes = routes; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } -} \ No newline at end of file +data class NewInspectionModel( + var id: String, + var name: String, + var startTime: String, + var endTime: String, + var date: String, + var startLng: Double, + var startLat: Double, + var endLng: Double, + var endLat: Double, + var routes: ArrayList, + var user: String +) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt index debc0da..87c2850 100644 --- a/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/model/RoutePointModel.kt @@ -1,23 +1,3 @@ -package com.casic.birmm.inspect.model; +package com.casic.birmm.inspect.model -public class RoutePointModel { - - private double lat; - private double lng; - - public double getLat() { - return lat; - } - - public void setLat(double lat) { - this.lat = lat; - } - - public double getLng() { - return lng; - } - - public void setLng(double lng) { - this.lng = lng; - } -} +data class RoutePointModel(var lat: Double, var lng: Double) \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt index f3de4f3..1d2dae9 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryEventFragment.kt @@ -5,7 +5,7 @@ import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.single.view.EventDetailActivity import com.casic.birmm.inspect.utils.DataBaseManager import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -22,7 +22,7 @@ class QueryEventFragment : KotlinBaseFragment(), Handler.Callback { - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -37,12 +37,11 @@ } else { emptyView.hide() val eventListAdapter = - object : NormalRecyclerAdapter( + object : NormalRecyclerAdapter( R.layout.item_event_rv_l, dataBeans ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: EventListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { if (!item.images.isNullOrBlank()) { val imageArray = item.images!!.split(",") @@ -50,8 +49,7 @@ try { val drawable = withContext(Dispatchers.IO) { Glide.with(requireContext()).load(imageArray[0]) - .submit() - .get() + .submit().get() } viewHolder.setImageResource(R.id.inspectImageView, drawable) } catch (e: Exception) { @@ -60,18 +58,15 @@ } } - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventListAdapter eventListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, - t: EventListModel.DataModel.RowsModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { requireContext().navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt index 7bc6bea..c0361a1 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/fragment/QueryInspectionFragment.kt @@ -2,19 +2,10 @@ import android.os.Handler import android.os.Message -import android.widget.TextView -import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese -import com.casic.birmm.inspect.model.InspectListModel -import com.casic.birmm.inspect.model.RoutePointModel +import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.single.view.InspectionRouteActivity import com.casic.birmm.inspect.utils.DataBaseManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter import com.pengxh.kt.lite.adapter.ViewHolder import com.pengxh.kt.lite.base.KotlinBaseFragment @@ -25,8 +16,7 @@ class QueryInspectionFragment : KotlinBaseFragment(), Handler.Callback { - private val gson by lazy { Gson() } - private var dataBeans: MutableList = ArrayList() + private var dataBeans: MutableList = ArrayList() companion object { lateinit var weakReferenceHandler: WeakReferenceHandler @@ -40,59 +30,25 @@ emptyView.show("抱歉,无法查询到相关记录", null) } else { emptyView.hide() - val inspectListAdapter = object : - NormalRecyclerAdapter( - R.layout.item_inspect_rv_l, dataBeans - ) { + val inspectListAdapter = object : NormalRecyclerAdapter( + R.layout.item_inspect_rv_l, dataBeans + ) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectListModel.DataModel.RowsModel + viewHolder: ViewHolder, position: Int, item: InspectionLocalBean ) { - val routeJson = item.routes!! - val routeModels = if (routeJson.isEmpty()) { - ArrayList() - } else { - gson.fromJson>( - routeJson, - object : TypeToken>() {}.type - ) - } - - val startLocationView = viewHolder.getView(R.id.startLocationView) - val endLocationView = viewHolder.getView(R.id.endLocationView) - LatLng(item.startLat, item.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(item.endLat, item.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) - - val distanceView = viewHolder.getView(R.id.distanceView) - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) - - viewHolder.setText(R.id.inspectMsgView, item.name) + viewHolder.setText(R.id.inspectMsgView, item.inspectionTitle) .setText(R.id.startTimeView, item.startTime) + .setText(R.id.startLocationView, item.startAddress) .setText(R.id.endTimeView, item.endTime) + .setText(R.id.endLocationView, item.endAddress) + .setText(R.id.distanceView, item.distance.toString()) } } inspectRecyclerView.adapter = inspectListAdapter inspectListAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectListModel.DataModel.RowsModel - ) { - requireContext().navigatePageTo(t.id.toString()) + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: InspectionLocalBean) { + requireContext().navigatePageTo(t.inspectionId) } }) } diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt index b7d59e8..4970ddf 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/EventDetailActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.EventListModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.view.BigImageActivity import com.google.gson.Gson import com.google.gson.reflect.TypeToken @@ -22,19 +22,13 @@ override fun initData() { val args = intent.getStringExtra(Constant.INTENT_PARAM)!! - val model = gson.fromJson( - args, object : TypeToken() {}.type + val model = gson.fromJson( + args, object : TypeToken() {}.type ) createTimeView.text = model.createTime descriptionView.text = model.description - val data = model.data - val value = if (data.isNullOrBlank()) { - "0.0" - } else { - data - } - dataView.text = value + dataView.text = model.data.toString() val images = model.images diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt index 790d0b2..dea353f 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionEventActivity.kt @@ -2,7 +2,7 @@ import androidx.core.content.ContextCompat import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.model.InspectEventModel +import com.casic.birmm.inspect.bean.TaskEventLocalBean import com.casic.birmm.inspect.utils.DataBaseManager import com.gyf.immersionbar.ImmersionBar import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter @@ -26,12 +26,9 @@ "抱歉,无法查询到相关记录".show(this) } else { val eventAdapter = object : - NormalRecyclerAdapter( - R.layout.item_event_rv_l, dataRows - ) { + NormalRecyclerAdapter(R.layout.item_event_rv_l, dataRows) { override fun convertView( - viewHolder: ViewHolder, position: Int, - item: InspectEventModel.DataModel.ListModel + viewHolder: ViewHolder, position: Int, item: TaskEventLocalBean ) { /** * images: 2020-12/6528aeb21cff426c91c43a7f8b716d1e.jpg @@ -39,7 +36,7 @@ * images: 2020-12/c2fd5777fe5d4e09af0bbd6693f5fbf4.jpg,2020-12/7d91abc431d0482da33745bacc111bc4.jpg * */ val images = item.images - val urls: ArrayList = ArrayList() + val urls = ArrayList() if (images != null) { // images == "" if (images.isNotEmpty()) { @@ -50,18 +47,18 @@ } } - viewHolder.setImageResource(R.id.inspectImageView, urls[0]) - .setText(R.id.inspectMsgView, item.name) + if (urls.isNotEmpty()) { + viewHolder.setImageResource(R.id.inspectImageView, urls[0]) + } + viewHolder.setText(R.id.inspectMsgView, item.eventTitle) .setText(R.id.inspectTypeView, "类型:${item.type}") .setText(R.id.inspectDateView, "时间:${item.createTime}") } } eventRecyclerView.adapter = eventAdapter eventAdapter.setOnItemClickedListener(object : - NormalRecyclerAdapter.OnItemClickedListener { - override fun onItemClicked( - position: Int, t: InspectEventModel.DataModel.ListModel - ) { + NormalRecyclerAdapter.OnItemClickedListener { + override fun onItemClicked(position: Int, t: TaskEventLocalBean) { navigatePageTo(t.toJson()) } }) diff --git a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt index 161bf67..7c00304 100644 --- a/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/single/view/InspectionRouteActivity.kt @@ -7,15 +7,8 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R -import com.casic.birmm.inspect.callback.OnDistanceSearchListener -import com.casic.birmm.inspect.callback.OnGeocodeSearchListener -import com.casic.birmm.inspect.extensions.calculateDistance -import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.utils.DataBaseManager import com.google.gson.Gson @@ -44,13 +37,13 @@ ImmersionBar.with(this).statusBarDarkFont(false).init() titleView.text = "巡检记录" - val id = intent.getStringExtra(Constant.INTENT_PARAM)!! + val inspectionId = intent.getStringExtra(Constant.INTENT_PARAM)!! - initMap(savedInstanceState, id) + initMap(savedInstanceState, inspectionId) leftBackView.setOnClickListener { this.finish() } eventButton.setOnClickListener { - navigatePageTo(id) + navigatePageTo(inspectionId) } } @@ -64,43 +57,31 @@ //根据id查询详情 val detailData = DataBaseManager.get.queryInspectDetailById(id) - inspectMsgView.text = detailData.name + inspectMsgView.text = detailData.inspectionTitle startTimeView.text = detailData.startTime endTimeView.text = detailData.endTime - - LatLng(detailData.startLat, detailData.startLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - startLocationView.text = address - } - }) - - LatLng(detailData.endLat, detailData.endLng).toChinese(object : - OnGeocodeSearchListener { - override fun onRegionCodeSearched(address: String) { - endLocationView.text = address - } - }) + startLocationView.text = detailData.startAddress + endLocationView.text = detailData.endAddress + distanceView.text = detailData.distance.toString() //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 addMarker(LatLng(detailData.endLat, detailData.endLng), R.mipmap.zhongdian) //瞄点画线 - val routeJson = detailData.routes!! - if (routeJson.isEmpty()) { + if (detailData.routes.isEmpty()) { return } //[{"lat":39.917433,"lng":116.269525},{"lat":39.917433,"lng":116.269525}] val type = object : TypeToken>() {}.type - val routeModels = gson.fromJson>(routeJson, type) + val routeModels = gson.fromJson>(detailData.routes, type) //画线 val latLngPoints: ArrayList = ArrayList() routeModels.forEach { routeModel -> @@ -109,12 +90,6 @@ aMap.addPolyline( PolylineOptions().addAll(latLngPoints).width(10.toFloat()).color(Color.RED) ) - - routeModels.calculateDistance(object : OnDistanceSearchListener { - override fun onDistanceSearched(distance: String) { - distanceView.text = distance - } - }) } private fun addMarker(point: LatLng, res: Int) { diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt index 8569dc1..c314640 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/DataBaseManager.kt @@ -1,16 +1,20 @@ package com.casic.birmm.inspect.utils +import com.amap.api.maps.model.LatLng import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.bean.InspectionLocalBean import com.casic.birmm.inspect.bean.TaskEventLocalBean +import com.casic.birmm.inspect.callback.OnDataAddListener +import com.casic.birmm.inspect.callback.OnDistanceSearchListener +import com.casic.birmm.inspect.callback.OnGeocodeSearchListener +import com.casic.birmm.inspect.extensions.calculateDistance +import com.casic.birmm.inspect.extensions.toChinese import com.casic.birmm.inspect.greendao.InspectionLocalBeanDao import com.casic.birmm.inspect.greendao.TaskEventLocalBeanDao -import com.casic.birmm.inspect.model.EventListModel -import com.casic.birmm.inspect.model.InspectDetailModel -import com.casic.birmm.inspect.model.InspectEventModel -import com.casic.birmm.inspect.model.InspectListModel +import com.casic.birmm.inspect.model.RoutePointModel import com.casic.birmm.inspect.single.fragment.QueryEventFragment import com.casic.birmm.inspect.single.fragment.QueryInspectionFragment +import com.google.gson.Gson class DataBaseManager private constructor() { @@ -27,6 +31,7 @@ BaseApplication.get().getDaoSession().inspectionLocalBeanDao private var taskEventDao: TaskEventLocalBeanDao = BaseApplication.get().getDaoSession().taskEventLocalBeanDao + private val gson by lazy { Gson() } /** * 保存巡检记录到本地 @@ -41,7 +46,8 @@ startLat: Double, endLng: Double, endLat: Double, - routes: String + routes: ArrayList, + listener: OnDataAddListener ) { val bean = InspectionLocalBean() bean.inspectionId = inspectionId @@ -53,14 +59,37 @@ bean.startLat = startLat bean.endLng = endLng bean.endLat = endLat - bean.routes = routes + bean.routes = gson.toJson(routes) bean.user = "超级管理员" - if (!isInspectionExist(inspectionId)) { - inspectionDao.insert(bean) - //通知列表刷新 - QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage(2023081202) - } + LatLng(startLat, startLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.startAddress = address + + LatLng(endLat, endLng).toChinese(object : OnGeocodeSearchListener { + override fun onRegionCodeSearched(address: String) { + bean.endAddress = address + + routes.calculateDistance(object : OnDistanceSearchListener { + override fun onDistanceSearched(distance: String) { + bean.distance = distance.toDouble() + + if (!isInspectionExist(inspectionId)) { + inspectionDao.insert(bean) + + //通知列表刷新 + QueryInspectionFragment.weakReferenceHandler.sendEmptyMessage( + 2023081202 + ) + + listener.onAddSuccess() + } + } + }) + } + }) + } + }) } private fun isInspectionExist(inspectionId: String): Boolean { @@ -92,89 +121,35 @@ /** * id查询巡检数据 */ - fun queryInspectDetailById(inspectionId: String): InspectDetailModel.DataModel { - val dataModel = InspectDetailModel.DataModel() + fun queryInspectDetailById(inspectionId: String): InspectionLocalBean { + val dataModel = InspectionLocalBean() val result = inspectionDao.queryBuilder().where( InspectionLocalBeanDao.Properties.InspectionId.eq(inspectionId) ).list() - if (!result.isNullOrEmpty()) { - val bean = result.first() - - dataModel.id = bean.inspectionId - dataModel.name = bean.inspectionTitle - dataModel.date = bean.date - dataModel.startTime = bean.startTime - dataModel.endTime = bean.endTime - dataModel.startLat = bean.startLat - dataModel.startLng = bean.startLng - dataModel.endLat = bean.endLat - dataModel.endLng = bean.endLng - dataModel.routes = bean.routes - dataModel.user = bean.user - - return dataModel + return if (!result.isNullOrEmpty()) { + result.first() } else { - return dataModel + dataModel } } /** * 查询所有巡检数据 */ - fun loadInspection(): MutableList { - val result = ArrayList() - - val temp = inspectionDao.queryBuilder() + fun loadInspection(): MutableList { + return inspectionDao.queryBuilder() .orderDesc(InspectionLocalBeanDao.Properties.StartTime) .list() - - temp.forEach { - val rowsBean = InspectListModel.DataModel.RowsModel() - - rowsBean.id = it.inspectionId - rowsBean.name = it.inspectionTitle - rowsBean.startTime = it.startTime - rowsBean.endTime = it.endTime - rowsBean.date = it.date - rowsBean.startLng = it.startLng - rowsBean.startLat = it.startLat - rowsBean.endLng = it.endLng - rowsBean.endLat = it.endLat - rowsBean.routes = it.routes - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } /** * 根据巡检Id查询事件数据 */ - fun queryEventByInspection(inspectionId: String): MutableList { - val resultList = ArrayList() - taskEventDao.queryBuilder() + fun queryEventByInspection(inspectionId: String): MutableList { + return taskEventDao.queryBuilder() .where(TaskEventLocalBeanDao.Properties.InspectionId.eq(inspectionId)) .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime)//按时间顺序最新顺序排序 - .list()?.forEach { - val listBean = InspectEventModel.DataModel.ListModel() - - listBean.id = it.taskId - listBean.inspectionId = it.inspectionId - listBean.name = it.eventTitle - listBean.createTime = it.createTime - listBean.type = it.type - listBean.lng = it.lng - listBean.lat = it.lat - listBean.data = it.data.toString() - listBean.images = it.images - listBean.description = it.description - listBean.user = it.user - - resultList.add(listBean) - } - return resultList + .list() } /**********************************************************************************************/ @@ -208,9 +183,9 @@ bean.user = "超级管理员" if (!isEventExist(taskId)) { taskEventDao.insert(bean) - //通知列表刷新 - QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } + //通知列表刷新 + QueryEventFragment.weakReferenceHandler.sendEmptyMessage(2023081102) } private fun isEventExist(taskId: String): Boolean { @@ -243,31 +218,9 @@ /** * 查询所有事件数据 */ - fun loadEvent(): MutableList { - val result = ArrayList() - - val temp = taskEventDao.queryBuilder() + fun loadEvent(): MutableList { + return taskEventDao.queryBuilder() .orderDesc(TaskEventLocalBeanDao.Properties.CreateTime) .list() - - temp.forEach { - val rowsBean = EventListModel.DataModel.RowsModel() - - rowsBean.id = it.taskId - rowsBean.inspectionId = it.inspectionId - rowsBean.name = it.eventTitle - rowsBean.createTime = it.createTime - rowsBean.type = it.type - rowsBean.data = it.data.toString() - rowsBean.description = it.description - rowsBean.lat = it.lat - rowsBean.lng = it.lng - rowsBean.images = it.images - rowsBean.user = it.user - - result.add(rowsBean) - } - - return result } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt index 9302416..79b6d74 100644 --- a/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocaleConstant.kt @@ -64,8 +64,6 @@ const val USER_OBJECT = "userObject" const val OPEN_WARNING = "isOpenWarning" const val AUTO_RECORD = "isRecordLog" - const val CURRENT_LONGITUDE = "currentLongitude" - const val CURRENT_LATITUDE = "currentLatitude" const val SERVICE_UUID = "0003cdd0-0000-1000-8000-00805f9b0131"//连接设备的UUID const val WRITE_CHARACTERISTIC_UUID = "0003cdd2-0000-1000-8000-00805f9b0131"//写数据特征值UUID const val READ_CHARACTERISTIC_UUID = "0003cdd1-0000-1000-8000-00805f9b0131"//读数据特征值UUID diff --git a/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt new file mode 100644 index 0000000..525b4b0 --- /dev/null +++ b/app/src/main/java/com/casic/birmm/inspect/utils/LocationHub.kt @@ -0,0 +1,60 @@ +package com.casic.birmm.inspect.utils + +import android.content.Context +import android.util.Log +import com.amap.api.location.AMapLocation +import com.amap.api.location.AMapLocationClient +import com.amap.api.location.AMapLocationClientOption + +class LocationHub private constructor() { + private val kTag = "LocationHub" + + companion object { + //Kotlin委托模式双重锁单例 + val get: LocationHub by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + LocationHub() + } + } + + private val locationOption = AMapLocationClientOption() + private lateinit var locationClient: AMapLocationClient + + init { + //设置定位模式为高精度模式,AMapLocationMode.Battery_Saving为低功耗模式,AMapLocationMode.Device_Sensors是仅设备模式 + locationOption.locationMode = AMapLocationClientOption.AMapLocationMode.Hight_Accuracy + locationOption.isNeedAddress = true //设置是否返回地址信息(默认返回地址信息) + locationOption.isLocationCacheEnable = true //可选,设置是否使用缓存定位,默认为true + } + + /** + * 高德sdk定位 + */ + fun getLocationByAMap(context: Context?, listener: ILocationListener) { + locationClient = AMapLocationClient(context) + //给定位客户端对象设置定位参数 + locationClient.setLocationOption(locationOption) + //设置定位回调监听 + locationClient.setLocationListener { aMapLocation -> + if (aMapLocation != null) { + if (aMapLocation.errorCode == 0) { + listener.onAMapLocationGet(aMapLocation) + } else { + Log.e( + kTag, + "ErrCode: ${aMapLocation.errorCode}, errInfo: ${aMapLocation.errorInfo}" + ) + } + } + } + //启动定位 + locationClient.startLocation() + } + + fun stopLocation() { + locationClient.stopLocation()//停止定位 + } + + interface ILocationListener { + fun onAMapLocationGet(aMapLocation: AMapLocation?) //高德定位数据 + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt b/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt index c84129f..d535178 100644 --- a/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt +++ b/app/src/main/java/com/casic/birmm/inspect/view/InspectionRouteActivity.kt @@ -9,10 +9,7 @@ import com.amap.api.maps.AMap import com.amap.api.maps.AMapOptions import com.amap.api.maps.CameraUpdateFactory -import com.amap.api.maps.model.BitmapDescriptorFactory -import com.amap.api.maps.model.LatLng -import com.amap.api.maps.model.MarkerOptions -import com.amap.api.maps.model.PolylineOptions +import com.amap.api.maps.model.* import com.casic.birmm.inspect.R import com.casic.birmm.inspect.callback.OnDistanceSearchListener import com.casic.birmm.inspect.callback.OnGeocodeSearchListener @@ -100,12 +97,12 @@ }) //移动到巡检起始经纬度 - aMap.moveCamera( - CameraUpdateFactory.changeLatLng( - LatLng(detailData.startLat, detailData.startLng) - ) + val cameraPosition = CameraPosition( + LatLng(detailData.startLat, detailData.startLng), 16f, 0f, 0f ) - aMap.moveCamera(CameraUpdateFactory.zoomTo(14.toFloat())) + val cameraUpdate = CameraUpdateFactory.newCameraPosition(cameraPosition) + aMap.animateCamera(cameraUpdate, 1500, null) + //设置起点 addMarker(LatLng(detailData.startLat, detailData.startLng), R.mipmap.qidian) //设置终点 diff --git a/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt b/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt index f88fbf4..041f8de 100644 --- a/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt +++ b/app/src/main/java/com/casic/birmm/inspect/vm/InspectionViewModel.kt @@ -4,7 +4,6 @@ import com.casic.birmm.inspect.base.BaseApplication import com.casic.birmm.inspect.extensions.separateResponseCode import com.casic.birmm.inspect.extensions.toErrorMessage -import com.casic.birmm.inspect.model.ActionResultModel import com.casic.birmm.inspect.model.InspectDetailModel import com.casic.birmm.inspect.model.InspectEventModel import com.casic.birmm.inspect.model.InspectListModel @@ -25,7 +24,6 @@ val inspectionList = MutableLiveData() val inspectDetail = MutableLiveData() val inspectEvent = MutableLiveData() - val addInspectionResult = MutableLiveData() fun getInspectionList(keywords: String, startTime: String, endTime: String, pageIndex: Int) = launch({ @@ -96,9 +94,6 @@ val responseCode = response.separateResponseCode() if (responseCode == 200) { loadState.value = LoadState.Success - addInspectionResult.value = gson.fromJson( - response, object : TypeToken() {}.type - ) } else { loadState.value = LoadState.Fail response.toErrorMessage().show(BaseApplication.get()) diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 09a5d0f..5fb0844 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -96,7 +96,7 @@ android:layout_below="@id/loginButton" android:layout_marginHorizontal="@dimen/dp_50" android:layout_marginTop="@dimen/dp_10" - android:text="单机模式使用" /> + android:text="本地模式使用" /> @@ -83,7 +82,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="2023-08-11 15:39:55" android:textColor="@color/black" android:textSize="@dimen/sp_14" /> @@ -92,7 +90,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="北京市海淀区金沟河路航天科工二院" android:textColor="@color/lightGray" android:textSize="@dimen/sp_12" /> @@ -109,7 +106,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="2023-08-11 15:45:05" android:textColor="@color/black" android:textSize="@dimen/sp_14" /> @@ -118,7 +114,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="北京市海淀区金沟河路航天科工二院" android:textColor="@color/lightGray" android:textSize="@dimen/sp_12" /> @@ -154,7 +149,6 @@ android:layout_height="wrap_content" android:fontFamily="sans-serif-black" android:singleLine="true" - android:text="3.15" android:textColor="@color/black" android:textSize="@dimen/sp_12" /> diff --git a/app/src/main/res/layout/single_activity_inspection_route.xml b/app/src/main/res/layout/single_activity_inspection_route.xml index 128ff83..bf7bedb 100644 --- a/app/src/main/res/layout/single_activity_inspection_route.xml +++ b/app/src/main/res/layout/single_activity_inspection_route.xml @@ -31,7 +31,6 @@ android:layout_height="wrap_content" android:paddingHorizontal="@dimen/dp_7" android:singleLine="true" - android:text="金沟河路甲烷巡检任务" android:textColor="@color/black" android:textSize="@dimen/sp_16" /> @@ -100,7 +99,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="2023-08-11 15:39:55" android:textColor="@color/black" android:textSize="@dimen/sp_14" /> @@ -109,7 +107,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="北京市海淀区金沟河路航天科工二院" android:textColor="@color/lightGray" android:textSize="@dimen/sp_12" /> @@ -126,7 +123,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="2023-08-11 15:45:05" android:textColor="@color/black" android:textSize="@dimen/sp_14" /> @@ -135,7 +131,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:singleLine="true" - android:text="北京市海淀区金沟河路航天科工二院" android:textColor="@color/lightGray" android:textSize="@dimen/sp_12" /> @@ -171,7 +166,6 @@ android:layout_height="wrap_content" android:fontFamily="sans-serif-black" android:singleLine="true" - android:text="3.15" android:textColor="@color/black" android:textSize="@dimen/sp_12" />