diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 85756b0..36059c5 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -65,4 +65,8 @@
const val USER_ID = "userId"
const val PRIVACY_CHECK_BOX = "privacyCheckBox"
const val PUSH_SETTING = "pushSetting"
+ const val METERAGE_TRAIN_FORM_ID = "jlglpxjhsp"
+ const val STANDARD_FILE_FORM_ID = "jlglwjsp"
+ const val CERTIFICATE_REPORT_FORM_ID = "ywglzsbg"
+ const val CONTRACT_FORM_ID = "cwczht"
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 85756b0..36059c5 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -65,4 +65,8 @@
const val USER_ID = "userId"
const val PRIVACY_CHECK_BOX = "privacyCheckBox"
const val PUSH_SETTING = "pushSetting"
+ const val METERAGE_TRAIN_FORM_ID = "jlglpxjhsp"
+ const val STANDARD_FILE_FORM_ID = "jlglwjsp"
+ const val CERTIFICATE_REPORT_FORM_ID = "ywglzsbg"
+ const val CONTRACT_FORM_ID = "cwczht"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
index da58079..99f3bb1 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
@@ -2,37 +2,42 @@
object SearchType {
/**
+ * 首页模糊搜索
+ * */
+ const val All = "0"
+
+ /**
* 搜索仪器设备
* */
- const val Equipment = "0"
+ const val Equipment = "1"
/**
* 搜索标准装置
* */
- const val StandardDevice = "1"
+ const val StandardDevice = "2"
/**
* 搜索委托书需求
* */
- const val Entrust = "2"
+ const val Entrust = "3"
/**
* 搜索能力
* */
- const val Capability = "3"
+ const val Capability = "4"
/**
* 搜索计量培训
* */
- const val MeterageTrain = "4"
+ const val MeterageTrain = "5"
/**
* 搜索客户
* */
- const val Customer = "5"
+ const val Customer = "6"
/**
- * 首页模糊搜索
+ * 搜索仪器设备
* */
- const val All = "6"
+ const val Contract = "7"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 85756b0..36059c5 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -65,4 +65,8 @@
const val USER_ID = "userId"
const val PRIVACY_CHECK_BOX = "privacyCheckBox"
const val PUSH_SETTING = "pushSetting"
+ const val METERAGE_TRAIN_FORM_ID = "jlglpxjhsp"
+ const val STANDARD_FILE_FORM_ID = "jlglwjsp"
+ const val CERTIFICATE_REPORT_FORM_ID = "ywglzsbg"
+ const val CONTRACT_FORM_ID = "cwczht"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
index da58079..99f3bb1 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
@@ -2,37 +2,42 @@
object SearchType {
/**
+ * 首页模糊搜索
+ * */
+ const val All = "0"
+
+ /**
* 搜索仪器设备
* */
- const val Equipment = "0"
+ const val Equipment = "1"
/**
* 搜索标准装置
* */
- const val StandardDevice = "1"
+ const val StandardDevice = "2"
/**
* 搜索委托书需求
* */
- const val Entrust = "2"
+ const val Entrust = "3"
/**
* 搜索能力
* */
- const val Capability = "3"
+ const val Capability = "4"
/**
* 搜索计量培训
* */
- const val MeterageTrain = "4"
+ const val MeterageTrain = "5"
/**
* 搜索客户
* */
- const val Customer = "5"
+ const val Customer = "6"
/**
- * 首页模糊搜索
+ * 搜索仪器设备
* */
- const val All = "6"
+ const val Contract = "7"
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 3bd698a..bc4d694 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -446,4 +446,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 合同列表
+ */
+ @POST("/finance/agreement/listPage")
+ suspend fun getContractList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 85756b0..36059c5 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -65,4 +65,8 @@
const val USER_ID = "userId"
const val PRIVACY_CHECK_BOX = "privacyCheckBox"
const val PUSH_SETTING = "pushSetting"
+ const val METERAGE_TRAIN_FORM_ID = "jlglpxjhsp"
+ const val STANDARD_FILE_FORM_ID = "jlglwjsp"
+ const val CERTIFICATE_REPORT_FORM_ID = "ywglzsbg"
+ const val CONTRACT_FORM_ID = "cwczht"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
index da58079..99f3bb1 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
@@ -2,37 +2,42 @@
object SearchType {
/**
+ * 首页模糊搜索
+ * */
+ const val All = "0"
+
+ /**
* 搜索仪器设备
* */
- const val Equipment = "0"
+ const val Equipment = "1"
/**
* 搜索标准装置
* */
- const val StandardDevice = "1"
+ const val StandardDevice = "2"
/**
* 搜索委托书需求
* */
- const val Entrust = "2"
+ const val Entrust = "3"
/**
* 搜索能力
* */
- const val Capability = "3"
+ const val Capability = "4"
/**
* 搜索计量培训
* */
- const val MeterageTrain = "4"
+ const val MeterageTrain = "5"
/**
* 搜索客户
* */
- const val Customer = "5"
+ const val Customer = "6"
/**
- * 首页模糊搜索
+ * 搜索仪器设备
* */
- const val All = "6"
+ const val Contract = "7"
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 3bd698a..bc4d694 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -446,4 +446,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 合同列表
+ */
+ @POST("/finance/agreement/listPage")
+ suspend fun getContractList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9e7556b..1aaabee 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -459,7 +459,6 @@
effectiveCompany: String,
trainStartTime: String,
trainEndTime: String,
- formId: String,
ids: Array,
offset: Int
): String {
@@ -473,7 +472,7 @@
param.addProperty("effectiveCompany", effectiveCompany)
param.addProperty("trainStartTime", trainStartTime)
param.addProperty("trainEndTime", trainEndTime)
- param.addProperty("formId", formId)
+ param.addProperty("formId", LocaleConstant.METERAGE_TRAIN_FORM_ID)
param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
val requestBody = param.toString().toRequestBody(
@@ -843,7 +842,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "jlglwjsp")
+ param.addProperty("formId", LocaleConstant.STANDARD_FILE_FORM_ID)
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -884,7 +883,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("approvalStatus", approvalStatus)
param.addProperty("certificateReportCode", certificateReportCode)
param.addProperty("customerName", customerName)
@@ -925,7 +924,7 @@
*/
suspend fun submit(id: String): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("id", id)
val requestBody = param.toString().toRequestBody(
"application/json;charset=UTF-8".toMediaType()
@@ -1009,4 +1008,47 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 合同列表
+ */
+ suspend fun getContractList(
+ customerId: String,
+ agreementKind: String,
+ agreementName: String,
+ agreementType: String,
+ agreementNo: String,
+ estimateSignStartDate: String,
+ estimateSignEndDate: String,
+ firstParty: String,
+ status: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("customerId", customerId)
+ param.addProperty("agreementKind", agreementKind)
+ param.addProperty("agreementName", agreementName)
+ param.addProperty("agreementType", agreementType)
+ param.addProperty("agreementNo", agreementNo)
+ param.addProperty("estimateSignStartDate", estimateSignStartDate)
+ param.addProperty("estimateSignEndDate", estimateSignEndDate)
+ param.addProperty("firstParty", firstParty)
+ param.addProperty("formId", LocaleConstant.CONTRACT_FORM_ID)
+ param.addProperty("status", status)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getContractList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 85756b0..36059c5 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -65,4 +65,8 @@
const val USER_ID = "userId"
const val PRIVACY_CHECK_BOX = "privacyCheckBox"
const val PUSH_SETTING = "pushSetting"
+ const val METERAGE_TRAIN_FORM_ID = "jlglpxjhsp"
+ const val STANDARD_FILE_FORM_ID = "jlglwjsp"
+ const val CERTIFICATE_REPORT_FORM_ID = "ywglzsbg"
+ const val CONTRACT_FORM_ID = "cwczht"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
index da58079..99f3bb1 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
@@ -2,37 +2,42 @@
object SearchType {
/**
+ * 首页模糊搜索
+ * */
+ const val All = "0"
+
+ /**
* 搜索仪器设备
* */
- const val Equipment = "0"
+ const val Equipment = "1"
/**
* 搜索标准装置
* */
- const val StandardDevice = "1"
+ const val StandardDevice = "2"
/**
* 搜索委托书需求
* */
- const val Entrust = "2"
+ const val Entrust = "3"
/**
* 搜索能力
* */
- const val Capability = "3"
+ const val Capability = "4"
/**
* 搜索计量培训
* */
- const val MeterageTrain = "4"
+ const val MeterageTrain = "5"
/**
* 搜索客户
* */
- const val Customer = "5"
+ const val Customer = "6"
/**
- * 首页模糊搜索
+ * 搜索仪器设备
* */
- const val All = "6"
+ const val Contract = "7"
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 3bd698a..bc4d694 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -446,4 +446,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 合同列表
+ */
+ @POST("/finance/agreement/listPage")
+ suspend fun getContractList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9e7556b..1aaabee 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -459,7 +459,6 @@
effectiveCompany: String,
trainStartTime: String,
trainEndTime: String,
- formId: String,
ids: Array,
offset: Int
): String {
@@ -473,7 +472,7 @@
param.addProperty("effectiveCompany", effectiveCompany)
param.addProperty("trainStartTime", trainStartTime)
param.addProperty("trainEndTime", trainEndTime)
- param.addProperty("formId", formId)
+ param.addProperty("formId", LocaleConstant.METERAGE_TRAIN_FORM_ID)
param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
val requestBody = param.toString().toRequestBody(
@@ -843,7 +842,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "jlglwjsp")
+ param.addProperty("formId", LocaleConstant.STANDARD_FILE_FORM_ID)
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -884,7 +883,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("approvalStatus", approvalStatus)
param.addProperty("certificateReportCode", certificateReportCode)
param.addProperty("customerName", customerName)
@@ -925,7 +924,7 @@
*/
suspend fun submit(id: String): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("id", id)
val requestBody = param.toString().toRequestBody(
"application/json;charset=UTF-8".toMediaType()
@@ -1009,4 +1008,47 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 合同列表
+ */
+ suspend fun getContractList(
+ customerId: String,
+ agreementKind: String,
+ agreementName: String,
+ agreementType: String,
+ agreementNo: String,
+ estimateSignStartDate: String,
+ estimateSignEndDate: String,
+ firstParty: String,
+ status: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("customerId", customerId)
+ param.addProperty("agreementKind", agreementKind)
+ param.addProperty("agreementName", agreementName)
+ param.addProperty("agreementType", agreementType)
+ param.addProperty("agreementNo", agreementNo)
+ param.addProperty("estimateSignStartDate", estimateSignStartDate)
+ param.addProperty("estimateSignEndDate", estimateSignEndDate)
+ param.addProperty("firstParty", firstParty)
+ param.addProperty("formId", LocaleConstant.CONTRACT_FORM_ID)
+ param.addProperty("status", status)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getContractList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
new file mode 100644
index 0000000..96148a3
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
@@ -0,0 +1,192 @@
+package com.casic.xz.meterage.view.home
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.ContractListModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.search.SearchContractActivity
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_contract_invoice.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class ContractInvoiceActivity : ApplicationBaseActivity() {
+
+ private var context: Context = this@ContractInvoiceActivity
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var contractViewModel: ContractInvoiceViewModel
+ private lateinit var contractAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_invoice
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "合同发票"
+ }
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ contractViewModel.contractList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ contractLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ contractLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023041001)
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ contractViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ rightOperateView.setOnClickListener {
+ navigatePageTo()
+ }
+
+ contractLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ contractLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getContractListByPage()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ private fun getContractListByPage() {
+ contractViewModel.getContractList(
+ "",
+ "",
+ "",
+ "",
+ "",
+ "1",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023041001 -> {
+ if (isRefresh || isLoadMore) {
+ contractAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无合同") {
+ pageIndex = 1
+ getContractListByPage()
+ }
+ } else {
+ emptyView!!.hide()
+ contractAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_contract_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: ContractListModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.contractNameView, item.agreementName)
+ .setText(R.id.contractStateView, item.statusName)
+ .setText(R.id.contractCodeView, "合同编号:${item.agreementNo}")
+ .setText(R.id.firstPartNameView, "甲方单位:${item.firstParty}")
+ .setText(
+ R.id.startDateView,
+ "签订日期:${item.estimateSignDate.formatToYearMonthDay()}"
+ )
+
+ if (item.statusName.contains("已完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.green.convertColor(context)
+ )
+ } else if (item.statusName.contains("未完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.red.convertColor(context)
+ )
+ } else if (item.statusName.contains("已废止")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.gray.convertColor(context)
+ )
+ }
+ }
+ }
+ contractRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ contractRecyclerView.adapter = contractAdapter
+ contractAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: ContractListModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(t.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 85756b0..36059c5 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -65,4 +65,8 @@
const val USER_ID = "userId"
const val PRIVACY_CHECK_BOX = "privacyCheckBox"
const val PUSH_SETTING = "pushSetting"
+ const val METERAGE_TRAIN_FORM_ID = "jlglpxjhsp"
+ const val STANDARD_FILE_FORM_ID = "jlglwjsp"
+ const val CERTIFICATE_REPORT_FORM_ID = "ywglzsbg"
+ const val CONTRACT_FORM_ID = "cwczht"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
index da58079..99f3bb1 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
@@ -2,37 +2,42 @@
object SearchType {
/**
+ * 首页模糊搜索
+ * */
+ const val All = "0"
+
+ /**
* 搜索仪器设备
* */
- const val Equipment = "0"
+ const val Equipment = "1"
/**
* 搜索标准装置
* */
- const val StandardDevice = "1"
+ const val StandardDevice = "2"
/**
* 搜索委托书需求
* */
- const val Entrust = "2"
+ const val Entrust = "3"
/**
* 搜索能力
* */
- const val Capability = "3"
+ const val Capability = "4"
/**
* 搜索计量培训
* */
- const val MeterageTrain = "4"
+ const val MeterageTrain = "5"
/**
* 搜索客户
* */
- const val Customer = "5"
+ const val Customer = "6"
/**
- * 首页模糊搜索
+ * 搜索仪器设备
* */
- const val All = "6"
+ const val Contract = "7"
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 3bd698a..bc4d694 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -446,4 +446,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 合同列表
+ */
+ @POST("/finance/agreement/listPage")
+ suspend fun getContractList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9e7556b..1aaabee 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -459,7 +459,6 @@
effectiveCompany: String,
trainStartTime: String,
trainEndTime: String,
- formId: String,
ids: Array,
offset: Int
): String {
@@ -473,7 +472,7 @@
param.addProperty("effectiveCompany", effectiveCompany)
param.addProperty("trainStartTime", trainStartTime)
param.addProperty("trainEndTime", trainEndTime)
- param.addProperty("formId", formId)
+ param.addProperty("formId", LocaleConstant.METERAGE_TRAIN_FORM_ID)
param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
val requestBody = param.toString().toRequestBody(
@@ -843,7 +842,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "jlglwjsp")
+ param.addProperty("formId", LocaleConstant.STANDARD_FILE_FORM_ID)
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -884,7 +883,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("approvalStatus", approvalStatus)
param.addProperty("certificateReportCode", certificateReportCode)
param.addProperty("customerName", customerName)
@@ -925,7 +924,7 @@
*/
suspend fun submit(id: String): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("id", id)
val requestBody = param.toString().toRequestBody(
"application/json;charset=UTF-8".toMediaType()
@@ -1009,4 +1008,47 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 合同列表
+ */
+ suspend fun getContractList(
+ customerId: String,
+ agreementKind: String,
+ agreementName: String,
+ agreementType: String,
+ agreementNo: String,
+ estimateSignStartDate: String,
+ estimateSignEndDate: String,
+ firstParty: String,
+ status: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("customerId", customerId)
+ param.addProperty("agreementKind", agreementKind)
+ param.addProperty("agreementName", agreementName)
+ param.addProperty("agreementType", agreementType)
+ param.addProperty("agreementNo", agreementNo)
+ param.addProperty("estimateSignStartDate", estimateSignStartDate)
+ param.addProperty("estimateSignEndDate", estimateSignEndDate)
+ param.addProperty("firstParty", firstParty)
+ param.addProperty("formId", LocaleConstant.CONTRACT_FORM_ID)
+ param.addProperty("status", status)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getContractList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
new file mode 100644
index 0000000..96148a3
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
@@ -0,0 +1,192 @@
+package com.casic.xz.meterage.view.home
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.ContractListModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.search.SearchContractActivity
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_contract_invoice.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class ContractInvoiceActivity : ApplicationBaseActivity() {
+
+ private var context: Context = this@ContractInvoiceActivity
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var contractViewModel: ContractInvoiceViewModel
+ private lateinit var contractAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_invoice
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "合同发票"
+ }
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ contractViewModel.contractList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ contractLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ contractLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023041001)
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ contractViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ rightOperateView.setOnClickListener {
+ navigatePageTo()
+ }
+
+ contractLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ contractLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getContractListByPage()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ private fun getContractListByPage() {
+ contractViewModel.getContractList(
+ "",
+ "",
+ "",
+ "",
+ "",
+ "1",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023041001 -> {
+ if (isRefresh || isLoadMore) {
+ contractAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无合同") {
+ pageIndex = 1
+ getContractListByPage()
+ }
+ } else {
+ emptyView!!.hide()
+ contractAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_contract_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: ContractListModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.contractNameView, item.agreementName)
+ .setText(R.id.contractStateView, item.statusName)
+ .setText(R.id.contractCodeView, "合同编号:${item.agreementNo}")
+ .setText(R.id.firstPartNameView, "甲方单位:${item.firstParty}")
+ .setText(
+ R.id.startDateView,
+ "签订日期:${item.estimateSignDate.formatToYearMonthDay()}"
+ )
+
+ if (item.statusName.contains("已完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.green.convertColor(context)
+ )
+ } else if (item.statusName.contains("未完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.red.convertColor(context)
+ )
+ } else if (item.statusName.contains("已废止")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.gray.convertColor(context)
+ )
+ }
+ }
+ }
+ contractRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ contractRecyclerView.adapter = contractAdapter
+ contractAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: ContractListModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(t.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index 373c386..078f497 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -117,7 +117,6 @@
"",
"",
"",
- "jlglpxjhsp",
arrayOf(),
pageIndex
)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 85756b0..36059c5 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -65,4 +65,8 @@
const val USER_ID = "userId"
const val PRIVACY_CHECK_BOX = "privacyCheckBox"
const val PUSH_SETTING = "pushSetting"
+ const val METERAGE_TRAIN_FORM_ID = "jlglpxjhsp"
+ const val STANDARD_FILE_FORM_ID = "jlglwjsp"
+ const val CERTIFICATE_REPORT_FORM_ID = "ywglzsbg"
+ const val CONTRACT_FORM_ID = "cwczht"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
index da58079..99f3bb1 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
@@ -2,37 +2,42 @@
object SearchType {
/**
+ * 首页模糊搜索
+ * */
+ const val All = "0"
+
+ /**
* 搜索仪器设备
* */
- const val Equipment = "0"
+ const val Equipment = "1"
/**
* 搜索标准装置
* */
- const val StandardDevice = "1"
+ const val StandardDevice = "2"
/**
* 搜索委托书需求
* */
- const val Entrust = "2"
+ const val Entrust = "3"
/**
* 搜索能力
* */
- const val Capability = "3"
+ const val Capability = "4"
/**
* 搜索计量培训
* */
- const val MeterageTrain = "4"
+ const val MeterageTrain = "5"
/**
* 搜索客户
* */
- const val Customer = "5"
+ const val Customer = "6"
/**
- * 首页模糊搜索
+ * 搜索仪器设备
* */
- const val All = "6"
+ const val Contract = "7"
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 3bd698a..bc4d694 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -446,4 +446,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 合同列表
+ */
+ @POST("/finance/agreement/listPage")
+ suspend fun getContractList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9e7556b..1aaabee 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -459,7 +459,6 @@
effectiveCompany: String,
trainStartTime: String,
trainEndTime: String,
- formId: String,
ids: Array,
offset: Int
): String {
@@ -473,7 +472,7 @@
param.addProperty("effectiveCompany", effectiveCompany)
param.addProperty("trainStartTime", trainStartTime)
param.addProperty("trainEndTime", trainEndTime)
- param.addProperty("formId", formId)
+ param.addProperty("formId", LocaleConstant.METERAGE_TRAIN_FORM_ID)
param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
val requestBody = param.toString().toRequestBody(
@@ -843,7 +842,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "jlglwjsp")
+ param.addProperty("formId", LocaleConstant.STANDARD_FILE_FORM_ID)
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -884,7 +883,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("approvalStatus", approvalStatus)
param.addProperty("certificateReportCode", certificateReportCode)
param.addProperty("customerName", customerName)
@@ -925,7 +924,7 @@
*/
suspend fun submit(id: String): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("id", id)
val requestBody = param.toString().toRequestBody(
"application/json;charset=UTF-8".toMediaType()
@@ -1009,4 +1008,47 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 合同列表
+ */
+ suspend fun getContractList(
+ customerId: String,
+ agreementKind: String,
+ agreementName: String,
+ agreementType: String,
+ agreementNo: String,
+ estimateSignStartDate: String,
+ estimateSignEndDate: String,
+ firstParty: String,
+ status: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("customerId", customerId)
+ param.addProperty("agreementKind", agreementKind)
+ param.addProperty("agreementName", agreementName)
+ param.addProperty("agreementType", agreementType)
+ param.addProperty("agreementNo", agreementNo)
+ param.addProperty("estimateSignStartDate", estimateSignStartDate)
+ param.addProperty("estimateSignEndDate", estimateSignEndDate)
+ param.addProperty("firstParty", firstParty)
+ param.addProperty("formId", LocaleConstant.CONTRACT_FORM_ID)
+ param.addProperty("status", status)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getContractList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
new file mode 100644
index 0000000..96148a3
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
@@ -0,0 +1,192 @@
+package com.casic.xz.meterage.view.home
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.ContractListModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.search.SearchContractActivity
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_contract_invoice.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class ContractInvoiceActivity : ApplicationBaseActivity() {
+
+ private var context: Context = this@ContractInvoiceActivity
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var contractViewModel: ContractInvoiceViewModel
+ private lateinit var contractAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_invoice
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "合同发票"
+ }
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ contractViewModel.contractList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ contractLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ contractLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023041001)
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ contractViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ rightOperateView.setOnClickListener {
+ navigatePageTo()
+ }
+
+ contractLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ contractLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getContractListByPage()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ private fun getContractListByPage() {
+ contractViewModel.getContractList(
+ "",
+ "",
+ "",
+ "",
+ "",
+ "1",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023041001 -> {
+ if (isRefresh || isLoadMore) {
+ contractAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无合同") {
+ pageIndex = 1
+ getContractListByPage()
+ }
+ } else {
+ emptyView!!.hide()
+ contractAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_contract_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: ContractListModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.contractNameView, item.agreementName)
+ .setText(R.id.contractStateView, item.statusName)
+ .setText(R.id.contractCodeView, "合同编号:${item.agreementNo}")
+ .setText(R.id.firstPartNameView, "甲方单位:${item.firstParty}")
+ .setText(
+ R.id.startDateView,
+ "签订日期:${item.estimateSignDate.formatToYearMonthDay()}"
+ )
+
+ if (item.statusName.contains("已完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.green.convertColor(context)
+ )
+ } else if (item.statusName.contains("未完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.red.convertColor(context)
+ )
+ } else if (item.statusName.contains("已废止")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.gray.convertColor(context)
+ )
+ }
+ }
+ }
+ contractRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ contractRecyclerView.adapter = contractAdapter
+ contractAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: ContractListModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(t.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index 373c386..078f497 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -117,7 +117,6 @@
"",
"",
"",
- "jlglpxjhsp",
arrayOf(),
pageIndex
)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt
index 16bcd38..92e256d 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt
@@ -15,7 +15,7 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
import com.zhy.view.flowlayout.FlowLayout
import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_capability.*
+import kotlinx.android.synthetic.main.activity_search_history.*
import kotlinx.android.synthetic.main.include_search_input_title.*
/**
@@ -93,7 +93,7 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_search_capability
+ override fun initLayoutView(): Int = R.layout.activity_search_history
override fun observeRequestState() {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 85756b0..36059c5 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -65,4 +65,8 @@
const val USER_ID = "userId"
const val PRIVACY_CHECK_BOX = "privacyCheckBox"
const val PUSH_SETTING = "pushSetting"
+ const val METERAGE_TRAIN_FORM_ID = "jlglpxjhsp"
+ const val STANDARD_FILE_FORM_ID = "jlglwjsp"
+ const val CERTIFICATE_REPORT_FORM_ID = "ywglzsbg"
+ const val CONTRACT_FORM_ID = "cwczht"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
index da58079..99f3bb1 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
@@ -2,37 +2,42 @@
object SearchType {
/**
+ * 首页模糊搜索
+ * */
+ const val All = "0"
+
+ /**
* 搜索仪器设备
* */
- const val Equipment = "0"
+ const val Equipment = "1"
/**
* 搜索标准装置
* */
- const val StandardDevice = "1"
+ const val StandardDevice = "2"
/**
* 搜索委托书需求
* */
- const val Entrust = "2"
+ const val Entrust = "3"
/**
* 搜索能力
* */
- const val Capability = "3"
+ const val Capability = "4"
/**
* 搜索计量培训
* */
- const val MeterageTrain = "4"
+ const val MeterageTrain = "5"
/**
* 搜索客户
* */
- const val Customer = "5"
+ const val Customer = "6"
/**
- * 首页模糊搜索
+ * 搜索仪器设备
* */
- const val All = "6"
+ const val Contract = "7"
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 3bd698a..bc4d694 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -446,4 +446,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 合同列表
+ */
+ @POST("/finance/agreement/listPage")
+ suspend fun getContractList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9e7556b..1aaabee 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -459,7 +459,6 @@
effectiveCompany: String,
trainStartTime: String,
trainEndTime: String,
- formId: String,
ids: Array,
offset: Int
): String {
@@ -473,7 +472,7 @@
param.addProperty("effectiveCompany", effectiveCompany)
param.addProperty("trainStartTime", trainStartTime)
param.addProperty("trainEndTime", trainEndTime)
- param.addProperty("formId", formId)
+ param.addProperty("formId", LocaleConstant.METERAGE_TRAIN_FORM_ID)
param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
val requestBody = param.toString().toRequestBody(
@@ -843,7 +842,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "jlglwjsp")
+ param.addProperty("formId", LocaleConstant.STANDARD_FILE_FORM_ID)
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -884,7 +883,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("approvalStatus", approvalStatus)
param.addProperty("certificateReportCode", certificateReportCode)
param.addProperty("customerName", customerName)
@@ -925,7 +924,7 @@
*/
suspend fun submit(id: String): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("id", id)
val requestBody = param.toString().toRequestBody(
"application/json;charset=UTF-8".toMediaType()
@@ -1009,4 +1008,47 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 合同列表
+ */
+ suspend fun getContractList(
+ customerId: String,
+ agreementKind: String,
+ agreementName: String,
+ agreementType: String,
+ agreementNo: String,
+ estimateSignStartDate: String,
+ estimateSignEndDate: String,
+ firstParty: String,
+ status: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("customerId", customerId)
+ param.addProperty("agreementKind", agreementKind)
+ param.addProperty("agreementName", agreementName)
+ param.addProperty("agreementType", agreementType)
+ param.addProperty("agreementNo", agreementNo)
+ param.addProperty("estimateSignStartDate", estimateSignStartDate)
+ param.addProperty("estimateSignEndDate", estimateSignEndDate)
+ param.addProperty("firstParty", firstParty)
+ param.addProperty("formId", LocaleConstant.CONTRACT_FORM_ID)
+ param.addProperty("status", status)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getContractList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
new file mode 100644
index 0000000..96148a3
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
@@ -0,0 +1,192 @@
+package com.casic.xz.meterage.view.home
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.ContractListModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.search.SearchContractActivity
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_contract_invoice.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class ContractInvoiceActivity : ApplicationBaseActivity() {
+
+ private var context: Context = this@ContractInvoiceActivity
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var contractViewModel: ContractInvoiceViewModel
+ private lateinit var contractAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_invoice
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "合同发票"
+ }
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ contractViewModel.contractList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ contractLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ contractLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023041001)
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ contractViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ rightOperateView.setOnClickListener {
+ navigatePageTo()
+ }
+
+ contractLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ contractLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getContractListByPage()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ private fun getContractListByPage() {
+ contractViewModel.getContractList(
+ "",
+ "",
+ "",
+ "",
+ "",
+ "1",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023041001 -> {
+ if (isRefresh || isLoadMore) {
+ contractAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无合同") {
+ pageIndex = 1
+ getContractListByPage()
+ }
+ } else {
+ emptyView!!.hide()
+ contractAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_contract_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: ContractListModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.contractNameView, item.agreementName)
+ .setText(R.id.contractStateView, item.statusName)
+ .setText(R.id.contractCodeView, "合同编号:${item.agreementNo}")
+ .setText(R.id.firstPartNameView, "甲方单位:${item.firstParty}")
+ .setText(
+ R.id.startDateView,
+ "签订日期:${item.estimateSignDate.formatToYearMonthDay()}"
+ )
+
+ if (item.statusName.contains("已完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.green.convertColor(context)
+ )
+ } else if (item.statusName.contains("未完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.red.convertColor(context)
+ )
+ } else if (item.statusName.contains("已废止")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.gray.convertColor(context)
+ )
+ }
+ }
+ }
+ contractRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ contractRecyclerView.adapter = contractAdapter
+ contractAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: ContractListModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(t.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index 373c386..078f497 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -117,7 +117,6 @@
"",
"",
"",
- "jlglpxjhsp",
arrayOf(),
pageIndex
)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt
index 16bcd38..92e256d 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt
@@ -15,7 +15,7 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
import com.zhy.view.flowlayout.FlowLayout
import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_capability.*
+import kotlinx.android.synthetic.main.activity_search_history.*
import kotlinx.android.synthetic.main.include_search_input_title.*
/**
@@ -93,7 +93,7 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_search_capability
+ override fun initLayoutView(): Int = R.layout.activity_search_history
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractActivity.kt
new file mode 100644
index 0000000..17f6cda
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractActivity.kt
@@ -0,0 +1,113 @@
+package com.casic.xz.meterage.view.search
+
+import android.view.LayoutInflater
+import android.view.View
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.bean.SearchHistoryBean
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.DataBaseManager
+import com.casic.xz.meterage.utils.SearchType
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+import com.zhy.view.flowlayout.FlowLayout
+import com.zhy.view.flowlayout.TagAdapter
+import kotlinx.android.synthetic.main.activity_search_history.*
+import kotlinx.android.synthetic.main.include_search_input_title.*
+
+/**
+ * 搜索合同
+ * */
+class SearchContractActivity : ApplicationBaseActivity() {
+
+ private lateinit var inflater: LayoutInflater
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var historyAdapter: TagAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var isRefresh = false
+
+ override fun initLayoutView(): Int = R.layout.activity_search_history
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ inputView.hint = "请输入合同名称或者编号查询"
+ }
+
+ override fun initData() {
+ inflater = LayoutInflater.from(this)
+ weakReferenceHandler = WeakReferenceHandler {
+ if (it.what == 2023041001) {
+ if (isRefresh) {
+ historyAdapter.notifyDataChanged()
+ } else {
+ historyAdapter = object : TagAdapter(dataBeans) {
+ override fun getView(
+ parent: FlowLayout?, position: Int, bean: SearchHistoryBean
+ ): View {
+ val tagView = inflater.inflate(
+ R.layout.item_search_rv_l, tagFlowLayout, false
+ ) as QMUIRoundButton
+ tagView.text = bean.keywords
+ return tagView
+ }
+ }
+ tagFlowLayout.adapter = historyAdapter
+ tagFlowLayout.setOnTagClickListener { _, position, _ ->
+ inputView.setText(dataBeans[position].keywords)
+ navigatePageTo(inputView.text.toString())
+ true
+ }
+ }
+ }
+ true
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.Contract)
+ weakReferenceHandler.sendEmptyMessage(2023041001)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ if (!inputView.text.isNullOrBlank()) {
+ DataBaseManager.get.addSearchHistory(
+ inputView.text.toString(), SearchType.Contract
+ )
+ }
+
+ navigatePageTo(inputView.text.toString())
+ }
+
+ deleteHistoryView.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定将所有搜索记录删除?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ DataBaseManager.get.deleteHistoryByType(SearchType.Contract)
+ dataBeans.clear()
+ historyAdapter.notifyDataChanged()
+ }
+ }).build().show()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 85756b0..36059c5 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -65,4 +65,8 @@
const val USER_ID = "userId"
const val PRIVACY_CHECK_BOX = "privacyCheckBox"
const val PUSH_SETTING = "pushSetting"
+ const val METERAGE_TRAIN_FORM_ID = "jlglpxjhsp"
+ const val STANDARD_FILE_FORM_ID = "jlglwjsp"
+ const val CERTIFICATE_REPORT_FORM_ID = "ywglzsbg"
+ const val CONTRACT_FORM_ID = "cwczht"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
index da58079..99f3bb1 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
@@ -2,37 +2,42 @@
object SearchType {
/**
+ * 首页模糊搜索
+ * */
+ const val All = "0"
+
+ /**
* 搜索仪器设备
* */
- const val Equipment = "0"
+ const val Equipment = "1"
/**
* 搜索标准装置
* */
- const val StandardDevice = "1"
+ const val StandardDevice = "2"
/**
* 搜索委托书需求
* */
- const val Entrust = "2"
+ const val Entrust = "3"
/**
* 搜索能力
* */
- const val Capability = "3"
+ const val Capability = "4"
/**
* 搜索计量培训
* */
- const val MeterageTrain = "4"
+ const val MeterageTrain = "5"
/**
* 搜索客户
* */
- const val Customer = "5"
+ const val Customer = "6"
/**
- * 首页模糊搜索
+ * 搜索仪器设备
* */
- const val All = "6"
+ const val Contract = "7"
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 3bd698a..bc4d694 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -446,4 +446,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 合同列表
+ */
+ @POST("/finance/agreement/listPage")
+ suspend fun getContractList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9e7556b..1aaabee 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -459,7 +459,6 @@
effectiveCompany: String,
trainStartTime: String,
trainEndTime: String,
- formId: String,
ids: Array,
offset: Int
): String {
@@ -473,7 +472,7 @@
param.addProperty("effectiveCompany", effectiveCompany)
param.addProperty("trainStartTime", trainStartTime)
param.addProperty("trainEndTime", trainEndTime)
- param.addProperty("formId", formId)
+ param.addProperty("formId", LocaleConstant.METERAGE_TRAIN_FORM_ID)
param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
val requestBody = param.toString().toRequestBody(
@@ -843,7 +842,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "jlglwjsp")
+ param.addProperty("formId", LocaleConstant.STANDARD_FILE_FORM_ID)
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -884,7 +883,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("approvalStatus", approvalStatus)
param.addProperty("certificateReportCode", certificateReportCode)
param.addProperty("customerName", customerName)
@@ -925,7 +924,7 @@
*/
suspend fun submit(id: String): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("id", id)
val requestBody = param.toString().toRequestBody(
"application/json;charset=UTF-8".toMediaType()
@@ -1009,4 +1008,47 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 合同列表
+ */
+ suspend fun getContractList(
+ customerId: String,
+ agreementKind: String,
+ agreementName: String,
+ agreementType: String,
+ agreementNo: String,
+ estimateSignStartDate: String,
+ estimateSignEndDate: String,
+ firstParty: String,
+ status: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("customerId", customerId)
+ param.addProperty("agreementKind", agreementKind)
+ param.addProperty("agreementName", agreementName)
+ param.addProperty("agreementType", agreementType)
+ param.addProperty("agreementNo", agreementNo)
+ param.addProperty("estimateSignStartDate", estimateSignStartDate)
+ param.addProperty("estimateSignEndDate", estimateSignEndDate)
+ param.addProperty("firstParty", firstParty)
+ param.addProperty("formId", LocaleConstant.CONTRACT_FORM_ID)
+ param.addProperty("status", status)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getContractList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
new file mode 100644
index 0000000..96148a3
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
@@ -0,0 +1,192 @@
+package com.casic.xz.meterage.view.home
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.ContractListModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.search.SearchContractActivity
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_contract_invoice.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class ContractInvoiceActivity : ApplicationBaseActivity() {
+
+ private var context: Context = this@ContractInvoiceActivity
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var contractViewModel: ContractInvoiceViewModel
+ private lateinit var contractAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_invoice
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "合同发票"
+ }
+
+ override fun initData() {
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ contractViewModel.contractList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ contractLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ contractLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023041001)
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ contractViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ rightOperateView.setOnClickListener {
+ navigatePageTo()
+ }
+
+ contractLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ contractLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getContractListByPage()
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ private fun getContractListByPage() {
+ contractViewModel.getContractList(
+ "",
+ "",
+ "",
+ "",
+ "",
+ "1",
+ "",
+ "",
+ "",
+ arrayOf(),
+ pageIndex
+ )
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023041001 -> {
+ if (isRefresh || isLoadMore) {
+ contractAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无合同") {
+ pageIndex = 1
+ getContractListByPage()
+ }
+ } else {
+ emptyView!!.hide()
+ contractAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_contract_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: ContractListModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.contractNameView, item.agreementName)
+ .setText(R.id.contractStateView, item.statusName)
+ .setText(R.id.contractCodeView, "合同编号:${item.agreementNo}")
+ .setText(R.id.firstPartNameView, "甲方单位:${item.firstParty}")
+ .setText(
+ R.id.startDateView,
+ "签订日期:${item.estimateSignDate.formatToYearMonthDay()}"
+ )
+
+ if (item.statusName.contains("已完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.green.convertColor(context)
+ )
+ } else if (item.statusName.contains("未完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.red.convertColor(context)
+ )
+ } else if (item.statusName.contains("已废止")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.gray.convertColor(context)
+ )
+ }
+ }
+ }
+ contractRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ contractRecyclerView.adapter = contractAdapter
+ contractAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: ContractListModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(t.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
index 373c386..078f497 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/MeterageTrainActivity.kt
@@ -117,7 +117,6 @@
"",
"",
"",
- "jlglpxjhsp",
arrayOf(),
pageIndex
)
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt
index 16bcd38..92e256d 100644
--- a/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchCapabilityActivity.kt
@@ -15,7 +15,7 @@
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
import com.zhy.view.flowlayout.FlowLayout
import com.zhy.view.flowlayout.TagAdapter
-import kotlinx.android.synthetic.main.activity_search_capability.*
+import kotlinx.android.synthetic.main.activity_search_history.*
import kotlinx.android.synthetic.main.include_search_input_title.*
/**
@@ -93,7 +93,7 @@
}
}
- override fun initLayoutView(): Int = R.layout.activity_search_capability
+ override fun initLayoutView(): Int = R.layout.activity_search_history
override fun observeRequestState() {
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractActivity.kt
new file mode 100644
index 0000000..17f6cda
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractActivity.kt
@@ -0,0 +1,113 @@
+package com.casic.xz.meterage.view.search
+
+import android.view.LayoutInflater
+import android.view.View
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.bean.SearchHistoryBean
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.utils.DataBaseManager
+import com.casic.xz.meterage.utils.SearchType
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.widget.dialog.AlertControlDialog
+import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
+import com.zhy.view.flowlayout.FlowLayout
+import com.zhy.view.flowlayout.TagAdapter
+import kotlinx.android.synthetic.main.activity_search_history.*
+import kotlinx.android.synthetic.main.include_search_input_title.*
+
+/**
+ * 搜索合同
+ * */
+class SearchContractActivity : ApplicationBaseActivity() {
+
+ private lateinit var inflater: LayoutInflater
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var historyAdapter: TagAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var isRefresh = false
+
+ override fun initLayoutView(): Int = R.layout.activity_search_history
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ inputView.hint = "请输入合同名称或者编号查询"
+ }
+
+ override fun initData() {
+ inflater = LayoutInflater.from(this)
+ weakReferenceHandler = WeakReferenceHandler {
+ if (it.what == 2023041001) {
+ if (isRefresh) {
+ historyAdapter.notifyDataChanged()
+ } else {
+ historyAdapter = object : TagAdapter(dataBeans) {
+ override fun getView(
+ parent: FlowLayout?, position: Int, bean: SearchHistoryBean
+ ): View {
+ val tagView = inflater.inflate(
+ R.layout.item_search_rv_l, tagFlowLayout, false
+ ) as QMUIRoundButton
+ tagView.text = bean.keywords
+ return tagView
+ }
+ }
+ tagFlowLayout.adapter = historyAdapter
+ tagFlowLayout.setOnTagClickListener { _, position, _ ->
+ inputView.setText(dataBeans[position].keywords)
+ navigatePageTo(inputView.text.toString())
+ true
+ }
+ }
+ }
+ true
+ }
+ }
+
+ override fun onResume() {
+ super.onResume()
+ dataBeans = DataBaseManager.get.queryHistoryByType(SearchType.Contract)
+ weakReferenceHandler.sendEmptyMessage(2023041001)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ searchTextView.setOnClickListener {
+ if (!inputView.text.isNullOrBlank()) {
+ DataBaseManager.get.addSearchHistory(
+ inputView.text.toString(), SearchType.Contract
+ )
+ }
+
+ navigatePageTo(inputView.text.toString())
+ }
+
+ deleteHistoryView.setOnClickListener {
+ AlertControlDialog.Builder()
+ .setContext(this)
+ .setTitle("提示")
+ .setMessage("确定将所有搜索记录删除?")
+ .setNegativeButton("取消")
+ .setPositiveButton("确定")
+ .setOnDialogButtonClickListener(object :
+ AlertControlDialog.OnDialogButtonClickListener {
+ override fun onCancelClick() {
+
+ }
+
+ override fun onConfirmClick() {
+ DataBaseManager.get.deleteHistoryByType(SearchType.Contract)
+ dataBeans.clear()
+ historyAdapter.notifyDataChanged()
+ }
+ }).build().show()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt
new file mode 100644
index 0000000..5096b88
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/search/SearchContractResultActivity.kt
@@ -0,0 +1,210 @@
+package com.casic.xz.meterage.view.search
+
+import android.content.Context
+import android.os.Handler
+import androidx.core.text.isDigitsOnly
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.ContractListModel
+import com.casic.xz.meterage.utils.AppMemoryCache
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.Constant
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_search_contract_reasult.*
+import kotlinx.android.synthetic.main.include_base_title.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+
+class SearchContractResultActivity : ApplicationBaseActivity() {
+
+ private var context: Context = this@SearchContractResultActivity
+ private lateinit var param: String
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var contractViewModel: ContractInvoiceViewModel
+ private lateinit var contractAdapter: NormalRecyclerAdapter
+ private var dataBeans: MutableList = ArrayList()
+ private var pageIndex = 1
+ private var isRefresh = false
+ private var isLoadMore = false
+
+ override fun initLayoutView(): Int = R.layout.activity_search_contract_reasult
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "查询结果"
+ }
+
+ override fun onResume() {
+ super.onResume()
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ override fun initData() {
+ param = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ weakReferenceHandler = WeakReferenceHandler(callback)
+ contractViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ contractViewModel.contractList.observe(this) {
+ if (it.code == 200) {
+ val dataRows = it.data?.rows!!
+ when {
+ isRefresh -> {
+ dataBeans.clear()
+ dataBeans = dataRows
+ contractLayout.finishRefresh()
+ isRefresh = false
+ }
+ isLoadMore -> {
+ if (dataRows.size == 0) {
+ "到底了,别拉了".show(this)
+ }
+ dataBeans.addAll(dataRows)
+ contractLayout.finishLoadMore()
+ isLoadMore = false
+ }
+ else -> {
+ dataBeans = dataRows
+ }
+ }
+ weakReferenceHandler.sendEmptyMessage(2023041002)
+ }
+ }
+ }
+
+ override fun observeRequestState() {
+ contractViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(this, "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+
+ contractLayout.setOnRefreshListener {
+ isRefresh = true
+ //刷新之后页码重置
+ pageIndex = 1
+ getContractListByPage()
+ }
+
+ contractLayout.setOnLoadMoreListener {
+ isLoadMore = true
+ pageIndex++
+ getContractListByPage()
+ }
+ }
+
+ private fun getContractListByPage() {
+ if (param.isDigitsOnly()) {
+ contractViewModel.getContractList(
+ "", "", "", "", param,
+ "1", "", "", "", arrayOf(),
+ pageIndex
+ )
+ } else {
+ if (param.length < 4) {
+ //输入参数长度小于4,默认查名称
+ contractViewModel.getContractList(
+ "", "", param, "", "",
+ "1", "", "", "", arrayOf(),
+ pageIndex
+ )
+ } else {
+ if (AppMemoryCache.prefixCode.contains(param.substring(0, 4))) {
+ contractViewModel.getContractList(
+ "", "", "", "", param,
+ "1", "", "", "", arrayOf(),
+ pageIndex
+ )
+ } else {
+ contractViewModel.getContractList(
+ "", "", param, "", "",
+ "1", "", "", "", arrayOf(),
+ pageIndex
+ )
+ }
+ }
+ }
+ }
+
+ private val callback = Handler.Callback {
+ when (it.what) {
+ 2023041002 -> {
+ if (isRefresh || isLoadMore) {
+ contractAdapter.notifyDataSetChanged()
+ } else {
+ if (dataBeans.size == 0) {
+ emptyView!!.showEmptyPage("无合同") {
+ pageIndex = 1
+ getContractListByPage()
+ }
+ } else {
+ emptyView!!.hide()
+ contractAdapter = object :
+ NormalRecyclerAdapter(
+ R.layout.item_contract_rv_l, dataBeans
+ ) {
+ override fun convertView(
+ viewHolder: ViewHolder,
+ position: Int,
+ item: ContractListModel.DataModel.RowsModel
+ ) {
+ viewHolder.setText(R.id.contractNameView, item.agreementName)
+ .setText(R.id.contractStateView, item.statusName)
+ .setText(R.id.contractCodeView, "合同编号:${item.agreementNo}")
+ .setText(R.id.firstPartNameView, "甲方单位:${item.firstParty}")
+ .setText(
+ R.id.startDateView,
+ "签订日期:${item.estimateSignDate.formatToYearMonthDay()}"
+ )
+
+ if (item.statusName.contains("已完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.green.convertColor(context)
+ )
+ } else if (item.statusName.contains("未完成")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.red.convertColor(context)
+ )
+ } else if (item.statusName.contains("已废止")) {
+ viewHolder.setBackgroundColor(
+ R.id.contractStateView, R.color.gray.convertColor(context)
+ )
+ }
+ }
+ }
+ contractRecyclerView.addItemDecoration(
+ DividerItemDecoration(this, DividerItemDecoration.VERTICAL)
+ )
+ contractRecyclerView.adapter = contractAdapter
+ contractAdapter.setOnItemClickedListener(object :
+ NormalRecyclerAdapter.OnItemClickedListener {
+ override fun onItemClicked(
+ position: Int, t: ContractListModel.DataModel.RowsModel
+ ) {
+// navigatePageTo(t.id)
+ }
+ })
+ }
+ }
+ }
+ }
+ true
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 9fc7c01..78d7828 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
@@ -85,6 +86,8 @@
+
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
index 71fe5a8..ad81434 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt
@@ -170,7 +170,7 @@
"标准规范" -> requireContext().navigatePageTo()
"能力列表" -> requireContext().navigatePageTo()
"计量培训" -> requireContext().navigatePageTo()
-// "合同发票" -> requireContext().navigatePageTo()
+ "合同发票" -> requireContext().navigatePageTo()
// "业务统计" -> requireContext().navigatePageTo()
"客户列表" -> requireContext().navigatePageTo()
// "外场检测" -> requireContext().navigatePageTo()
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
index b47cb32..b12a0bf 100644
--- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt
@@ -184,7 +184,7 @@
requireContext().navigatePageTo()
}
- //TODO 未实现
+ //TODO 通过接口修改数据库字段实现
pushSettingSwitch.setOnCheckedChangeListener { _, isChecked ->
SaveKeyValues.putValue(LocaleConstant.PUSH_SETTING, isChecked)
if (isChecked) {
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
new file mode 100644
index 0000000..111ff52
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractListModel.java
@@ -0,0 +1,364 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractListModel {
+
+ private int code;
+ private DataModel data;
+ private String message;
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+ public DataModel getData() {
+ return data;
+ }
+
+ public void setData(DataModel data) {
+ this.data = data;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ public static class DataModel {
+ private List rows;
+ private int total;
+
+ public List getRows() {
+ return rows;
+ }
+
+ public void setRows(List rows) {
+ this.rows = rows;
+ }
+
+ public int getTotal() {
+ return total;
+ }
+
+ public void setTotal(int total) {
+ this.total = total;
+ }
+
+ public static class RowsModel {
+ private String agreementAmount;
+ private String agreementEndDate;
+ private String agreementImportantContent;
+ private String agreementKind;
+ private String agreementKindName;
+ private String agreementName;
+ private String agreementNo;
+ private String agreementSource;
+ private String agreementSourceName;
+ private String agreementStartDate;
+ private String agreementType;
+ private String agreementTypeName;
+ private String approvalStatus;
+ private String createTime;
+ private String createUser;
+ private String createUserName;
+ private String customerId;
+ private String deptId;
+ private String deptName;
+ private String director;
+ private String estimateSignDate;
+ private String firstParty;
+ private String id;
+ private String isDel;
+ private String minioFileName;
+ private String orderIdList;
+ private String orderList;
+ private String paymentList;
+ private String processId;
+ private String remark;
+ private String secondParty;
+ private String status;
+ private String statusName;
+ private String updateTime;
+
+ public String getAgreementAmount() {
+ return agreementAmount;
+ }
+
+ public void setAgreementAmount(String agreementAmount) {
+ this.agreementAmount = agreementAmount;
+ }
+
+ public String getAgreementEndDate() {
+ return agreementEndDate;
+ }
+
+ public void setAgreementEndDate(String agreementEndDate) {
+ this.agreementEndDate = agreementEndDate;
+ }
+
+ public String getAgreementImportantContent() {
+ return agreementImportantContent;
+ }
+
+ public void setAgreementImportantContent(String agreementImportantContent) {
+ this.agreementImportantContent = agreementImportantContent;
+ }
+
+ public String getAgreementKind() {
+ return agreementKind;
+ }
+
+ public void setAgreementKind(String agreementKind) {
+ this.agreementKind = agreementKind;
+ }
+
+ public String getAgreementKindName() {
+ return agreementKindName;
+ }
+
+ public void setAgreementKindName(String agreementKindName) {
+ this.agreementKindName = agreementKindName;
+ }
+
+ public String getAgreementName() {
+ return agreementName;
+ }
+
+ public void setAgreementName(String agreementName) {
+ this.agreementName = agreementName;
+ }
+
+ public String getAgreementNo() {
+ return agreementNo;
+ }
+
+ public void setAgreementNo(String agreementNo) {
+ this.agreementNo = agreementNo;
+ }
+
+ public String getAgreementSource() {
+ return agreementSource;
+ }
+
+ public void setAgreementSource(String agreementSource) {
+ this.agreementSource = agreementSource;
+ }
+
+ public String getAgreementSourceName() {
+ return agreementSourceName;
+ }
+
+ public void setAgreementSourceName(String agreementSourceName) {
+ this.agreementSourceName = agreementSourceName;
+ }
+
+ public String getAgreementStartDate() {
+ return agreementStartDate;
+ }
+
+ public void setAgreementStartDate(String agreementStartDate) {
+ this.agreementStartDate = agreementStartDate;
+ }
+
+ public String getAgreementType() {
+ return agreementType;
+ }
+
+ public void setAgreementType(String agreementType) {
+ this.agreementType = agreementType;
+ }
+
+ public String getAgreementTypeName() {
+ return agreementTypeName;
+ }
+
+ public void setAgreementTypeName(String agreementTypeName) {
+ this.agreementTypeName = agreementTypeName;
+ }
+
+ public String getApprovalStatus() {
+ return approvalStatus;
+ }
+
+ public void setApprovalStatus(String approvalStatus) {
+ this.approvalStatus = approvalStatus;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCreateUser() {
+ return createUser;
+ }
+
+ public void setCreateUser(String createUser) {
+ this.createUser = createUser;
+ }
+
+ public String getCreateUserName() {
+ return createUserName;
+ }
+
+ public void setCreateUserName(String createUserName) {
+ this.createUserName = createUserName;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getDeptId() {
+ return deptId;
+ }
+
+ public void setDeptId(String deptId) {
+ this.deptId = deptId;
+ }
+
+ public String getDeptName() {
+ return deptName;
+ }
+
+ public void setDeptName(String deptName) {
+ this.deptName = deptName;
+ }
+
+ public String getDirector() {
+ return director;
+ }
+
+ public void setDirector(String director) {
+ this.director = director;
+ }
+
+ public String getEstimateSignDate() {
+ return estimateSignDate;
+ }
+
+ public void setEstimateSignDate(String estimateSignDate) {
+ this.estimateSignDate = estimateSignDate;
+ }
+
+ public String getFirstParty() {
+ return firstParty;
+ }
+
+ public void setFirstParty(String firstParty) {
+ this.firstParty = firstParty;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsDel() {
+ return isDel;
+ }
+
+ public void setIsDel(String isDel) {
+ this.isDel = isDel;
+ }
+
+ public String getMinioFileName() {
+ return minioFileName;
+ }
+
+ public void setMinioFileName(String minioFileName) {
+ this.minioFileName = minioFileName;
+ }
+
+ public String getOrderIdList() {
+ return orderIdList;
+ }
+
+ public void setOrderIdList(String orderIdList) {
+ this.orderIdList = orderIdList;
+ }
+
+ public String getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(String orderList) {
+ this.orderList = orderList;
+ }
+
+ public String getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(String paymentList) {
+ this.paymentList = paymentList;
+ }
+
+ public String getProcessId() {
+ return processId;
+ }
+
+ public void setProcessId(String processId) {
+ this.processId = processId;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getSecondParty() {
+ return secondParty;
+ }
+
+ public void setSecondParty(String secondParty) {
+ this.secondParty = secondParty;
+ }
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusName() {
+ return statusName;
+ }
+
+ public void setStatusName(String statusName) {
+ this.statusName = statusName;
+ }
+
+ public String getUpdateTime() {
+ return updateTime;
+ }
+
+ public void setUpdateTime(String updateTime) {
+ this.updateTime = updateTime;
+ }
+ }
+ }
+}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
index 85756b0..36059c5 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/LocaleConstant.kt
@@ -65,4 +65,8 @@
const val USER_ID = "userId"
const val PRIVACY_CHECK_BOX = "privacyCheckBox"
const val PUSH_SETTING = "pushSetting"
+ const val METERAGE_TRAIN_FORM_ID = "jlglpxjhsp"
+ const val STANDARD_FILE_FORM_ID = "jlglwjsp"
+ const val CERTIFICATE_REPORT_FORM_ID = "ywglzsbg"
+ const val CONTRACT_FORM_ID = "cwczht"
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
index da58079..99f3bb1 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/SearchType.kt
@@ -2,37 +2,42 @@
object SearchType {
/**
+ * 首页模糊搜索
+ * */
+ const val All = "0"
+
+ /**
* 搜索仪器设备
* */
- const val Equipment = "0"
+ const val Equipment = "1"
/**
* 搜索标准装置
* */
- const val StandardDevice = "1"
+ const val StandardDevice = "2"
/**
* 搜索委托书需求
* */
- const val Entrust = "2"
+ const val Entrust = "3"
/**
* 搜索能力
* */
- const val Capability = "3"
+ const val Capability = "4"
/**
* 搜索计量培训
* */
- const val MeterageTrain = "4"
+ const val MeterageTrain = "5"
/**
* 搜索客户
* */
- const val Customer = "5"
+ const val Customer = "6"
/**
- * 首页模糊搜索
+ * 搜索仪器设备
* */
- const val All = "6"
+ const val Contract = "7"
}
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index 3bd698a..bc4d694 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
@@ -446,4 +446,15 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 合同列表
+ */
+ @POST("/finance/agreement/listPage")
+ suspend fun getContractList(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody,
+ @QueryMap limit: Map,
+ @QueryMap offset: Map
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
index 9e7556b..1aaabee 100644
--- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
+++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt
@@ -459,7 +459,6 @@
effectiveCompany: String,
trainStartTime: String,
trainEndTime: String,
- formId: String,
ids: Array,
offset: Int
): String {
@@ -473,7 +472,7 @@
param.addProperty("effectiveCompany", effectiveCompany)
param.addProperty("trainStartTime", trainStartTime)
param.addProperty("trainEndTime", trainEndTime)
- param.addProperty("formId", formId)
+ param.addProperty("formId", LocaleConstant.METERAGE_TRAIN_FORM_ID)
param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
val requestBody = param.toString().toRequestBody(
@@ -843,7 +842,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "jlglwjsp")
+ param.addProperty("formId", LocaleConstant.STANDARD_FILE_FORM_ID)
param.addProperty("fileType", fileType)
param.addProperty("fileName", fileName)
param.addProperty("fileNo", fileNo)
@@ -884,7 +883,7 @@
offset: Int
): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("approvalStatus", approvalStatus)
param.addProperty("certificateReportCode", certificateReportCode)
param.addProperty("customerName", customerName)
@@ -925,7 +924,7 @@
*/
suspend fun submit(id: String): String {
val param = JsonObject()
- param.addProperty("formId", "ywglzsbg")
+ param.addProperty("formId", LocaleConstant.CERTIFICATE_REPORT_FORM_ID)
param.addProperty("id", id)
val requestBody = param.toString().toRequestBody(
"application/json;charset=UTF-8".toMediaType()
@@ -1009,4 +1008,47 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 合同列表
+ */
+ suspend fun getContractList(
+ customerId: String,
+ agreementKind: String,
+ agreementName: String,
+ agreementType: String,
+ agreementNo: String,
+ estimateSignStartDate: String,
+ estimateSignEndDate: String,
+ firstParty: String,
+ status: String,
+ ids: Array,
+ offset: Int
+ ): String {
+ val param = JsonObject()
+ param.addProperty("customerId", customerId)
+ param.addProperty("agreementKind", agreementKind)
+ param.addProperty("agreementName", agreementName)
+ param.addProperty("agreementType", agreementType)
+ param.addProperty("agreementNo", agreementNo)
+ param.addProperty("estimateSignStartDate", estimateSignStartDate)
+ param.addProperty("estimateSignEndDate", estimateSignEndDate)
+ param.addProperty("firstParty", firstParty)
+ param.addProperty("formId", LocaleConstant.CONTRACT_FORM_ID)
+ param.addProperty("status", status)
+ param.add("ids", gson.toJsonTree(ids, typeToken).asJsonArray)
+
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+
+ val limitMap = HashMap()
+ limitMap["limit"] = LocaleConstant.PAGE_LIMIT
+
+ val offsetMap = HashMap()
+ offsetMap["offset"] = offset
+ return api.getContractList(
+ AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
new file mode 100644
index 0000000..96148a3
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractInvoiceActivity.kt
@@ -0,0 +1,192 @@
+package com.casic.xz.meterage.view.home
+
+import android.content.Context
+import android.os.Handler
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.DividerItemDecoration
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.extensions.showEmptyPage
+import com.casic.xz.meterage.model.ContractListModel
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.view.search.SearchContractActivity
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.adapter.NormalRecyclerAdapter
+import com.pengxh.kt.lite.adapter.ViewHolder
+import com.pengxh.kt.lite.extensions.convertColor
+import com.pengxh.kt.lite.extensions.navigatePageTo
+import com.pengxh.kt.lite.extensions.show
+import com.pengxh.kt.lite.utils.WeakReferenceHandler
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.activity_contract_invoice.*
+import kotlinx.android.synthetic.main.include_empty_view.*
+import kotlinx.android.synthetic.main.include_search_title.*
+
+class ContractInvoiceActivity : ApplicationBaseActivity() {
+
+ private var context: Context = this@ContractInvoiceActivity
+ private lateinit var weakReferenceHandler: WeakReferenceHandler
+ private lateinit var contractViewModel: ContractInvoiceViewModel
+ private lateinit var contractAdapter: NormalRecyclerAdapter