diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index bc4d694..d104cea 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
@@ -457,4 +457,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取合同详情
+ */
+ @POST("/finance/agreement/detail")
+ suspend fun getContractDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): String
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index bc4d694..d104cea 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
@@ -457,4 +457,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取合同详情
+ */
+ @POST("/finance/agreement/detail")
+ suspend fun getContractDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): 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 1aaabee..759a2a5 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
@@ -1010,7 +1010,7 @@
}
/**
- * 合同列表
+ * 获取合同列表
*/
suspend fun getContractList(
customerId: String,
@@ -1051,4 +1051,16 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取合同详情
+ */
+ suspend fun getContractDetail(id: String): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getContractDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index bc4d694..d104cea 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
@@ -457,4 +457,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取合同详情
+ */
+ @POST("/finance/agreement/detail")
+ suspend fun getContractDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): 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 1aaabee..759a2a5 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
@@ -1010,7 +1010,7 @@
}
/**
- * 合同列表
+ * 获取合同列表
*/
suspend fun getContractList(
customerId: String,
@@ -1051,4 +1051,16 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取合同详情
+ */
+ suspend fun getContractDetail(id: String): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getContractDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
new file mode 100644
index 0000000..cd6ca61
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.contract.BasicInformationFragment
+import com.casic.xz.meterage.fragment.contract.CollectionFragment
+import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_contract_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class ContractDetailActivity : ApplicationBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_detail
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "发票合同"
+ }
+
+ override fun initData() {
+ val contractId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(contractId))
+ fragmentPages.add(EntrustBriefFragment())
+ fragmentPages.add(CollectionFragment())
+
+ val equipmentPageTitles = arrayOf("基础信息", "委托单信息", "收款信息")
+
+ contractViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, equipmentPageTitles
+ )
+ contractViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(contractViewPager)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index bc4d694..d104cea 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
@@ -457,4 +457,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取合同详情
+ */
+ @POST("/finance/agreement/detail")
+ suspend fun getContractDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): 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 1aaabee..759a2a5 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
@@ -1010,7 +1010,7 @@
}
/**
- * 合同列表
+ * 获取合同列表
*/
suspend fun getContractList(
customerId: String,
@@ -1051,4 +1051,16 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取合同详情
+ */
+ suspend fun getContractDetail(id: String): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getContractDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
new file mode 100644
index 0000000..cd6ca61
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.contract.BasicInformationFragment
+import com.casic.xz.meterage.fragment.contract.CollectionFragment
+import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_contract_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class ContractDetailActivity : ApplicationBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_detail
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "发票合同"
+ }
+
+ override fun initData() {
+ val contractId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(contractId))
+ fragmentPages.add(EntrustBriefFragment())
+ fragmentPages.add(CollectionFragment())
+
+ val equipmentPageTitles = arrayOf("基础信息", "委托单信息", "收款信息")
+
+ contractViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, equipmentPageTitles
+ )
+ contractViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(contractViewPager)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+}
\ 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
index 96148a3..a60e2a9 100644
--- 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
@@ -169,20 +169,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index bc4d694..d104cea 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
@@ -457,4 +457,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取合同详情
+ */
+ @POST("/finance/agreement/detail")
+ suspend fun getContractDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): 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 1aaabee..759a2a5 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
@@ -1010,7 +1010,7 @@
}
/**
- * 合同列表
+ * 获取合同列表
*/
suspend fun getContractList(
customerId: String,
@@ -1051,4 +1051,16 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取合同详情
+ */
+ suspend fun getContractDetail(id: String): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getContractDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
new file mode 100644
index 0000000..cd6ca61
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.contract.BasicInformationFragment
+import com.casic.xz.meterage.fragment.contract.CollectionFragment
+import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_contract_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class ContractDetailActivity : ApplicationBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_detail
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "发票合同"
+ }
+
+ override fun initData() {
+ val contractId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(contractId))
+ fragmentPages.add(EntrustBriefFragment())
+ fragmentPages.add(CollectionFragment())
+
+ val equipmentPageTitles = arrayOf("基础信息", "委托单信息", "收款信息")
+
+ contractViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, equipmentPageTitles
+ )
+ contractViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(contractViewPager)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+}
\ 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
index 96148a3..a60e2a9 100644
--- 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
@@ -169,20 +169,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
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
index 5096b88..a18a2f4 100644
--- 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
@@ -13,11 +13,13 @@
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.view.home.ContractDetailActivity
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.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -187,20 +189,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index bc4d694..d104cea 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
@@ -457,4 +457,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取合同详情
+ */
+ @POST("/finance/agreement/detail")
+ suspend fun getContractDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): 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 1aaabee..759a2a5 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
@@ -1010,7 +1010,7 @@
}
/**
- * 合同列表
+ * 获取合同列表
*/
suspend fun getContractList(
customerId: String,
@@ -1051,4 +1051,16 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取合同详情
+ */
+ suspend fun getContractDetail(id: String): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getContractDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
new file mode 100644
index 0000000..cd6ca61
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.contract.BasicInformationFragment
+import com.casic.xz.meterage.fragment.contract.CollectionFragment
+import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_contract_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class ContractDetailActivity : ApplicationBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_detail
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "发票合同"
+ }
+
+ override fun initData() {
+ val contractId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(contractId))
+ fragmentPages.add(EntrustBriefFragment())
+ fragmentPages.add(CollectionFragment())
+
+ val equipmentPageTitles = arrayOf("基础信息", "委托单信息", "收款信息")
+
+ contractViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, equipmentPageTitles
+ )
+ contractViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(contractViewPager)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+}
\ 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
index 96148a3..a60e2a9 100644
--- 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
@@ -169,20 +169,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
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
index 5096b88..a18a2f4 100644
--- 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
@@ -13,11 +13,13 @@
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.view.home.ContractDetailActivity
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.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -187,20 +189,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
index 99b5871..6281e2b 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
@@ -4,6 +4,7 @@
import com.casic.xz.meterage.base.BaseApplication
import com.casic.xz.meterage.extensions.separateResponseCode
import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.ContractDetailModel
import com.casic.xz.meterage.model.ContractListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val contractList = MutableLiveData()
+ val contractDetail = MutableLiveData()
fun getContractList(
customerId: String,
@@ -63,4 +65,23 @@
it.cause.toString().show(BaseApplication.get())
it.printStackTrace()
})
+
+ fun getContractDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getContractDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ contractDetail.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index bc4d694..d104cea 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
@@ -457,4 +457,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取合同详情
+ */
+ @POST("/finance/agreement/detail")
+ suspend fun getContractDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): 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 1aaabee..759a2a5 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
@@ -1010,7 +1010,7 @@
}
/**
- * 合同列表
+ * 获取合同列表
*/
suspend fun getContractList(
customerId: String,
@@ -1051,4 +1051,16 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取合同详情
+ */
+ suspend fun getContractDetail(id: String): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getContractDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
new file mode 100644
index 0000000..cd6ca61
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.contract.BasicInformationFragment
+import com.casic.xz.meterage.fragment.contract.CollectionFragment
+import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_contract_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class ContractDetailActivity : ApplicationBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_detail
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "发票合同"
+ }
+
+ override fun initData() {
+ val contractId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(contractId))
+ fragmentPages.add(EntrustBriefFragment())
+ fragmentPages.add(CollectionFragment())
+
+ val equipmentPageTitles = arrayOf("基础信息", "委托单信息", "收款信息")
+
+ contractViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, equipmentPageTitles
+ )
+ contractViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(contractViewPager)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+}
\ 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
index 96148a3..a60e2a9 100644
--- 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
@@ -169,20 +169,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
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
index 5096b88..a18a2f4 100644
--- 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
@@ -13,11 +13,13 @@
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.view.home.ContractDetailActivity
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.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -187,20 +189,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
index 99b5871..6281e2b 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
@@ -4,6 +4,7 @@
import com.casic.xz.meterage.base.BaseApplication
import com.casic.xz.meterage.extensions.separateResponseCode
import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.ContractDetailModel
import com.casic.xz.meterage.model.ContractListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val contractList = MutableLiveData()
+ val contractDetail = MutableLiveData()
fun getContractList(
customerId: String,
@@ -63,4 +65,23 @@
it.cause.toString().show(BaseApplication.get())
it.printStackTrace()
})
+
+ fun getContractDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getContractDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ contractDetail.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_contract_detail.xml b/app/src/main/res/layout/activity_contract_detail.xml
new file mode 100644
index 0000000..0a8b8f8
--- /dev/null
+++ b/app/src/main/res/layout/activity_contract_detail.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index bc4d694..d104cea 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
@@ -457,4 +457,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取合同详情
+ */
+ @POST("/finance/agreement/detail")
+ suspend fun getContractDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): 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 1aaabee..759a2a5 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
@@ -1010,7 +1010,7 @@
}
/**
- * 合同列表
+ * 获取合同列表
*/
suspend fun getContractList(
customerId: String,
@@ -1051,4 +1051,16 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取合同详情
+ */
+ suspend fun getContractDetail(id: String): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getContractDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
new file mode 100644
index 0000000..cd6ca61
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.contract.BasicInformationFragment
+import com.casic.xz.meterage.fragment.contract.CollectionFragment
+import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_contract_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class ContractDetailActivity : ApplicationBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_detail
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "发票合同"
+ }
+
+ override fun initData() {
+ val contractId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(contractId))
+ fragmentPages.add(EntrustBriefFragment())
+ fragmentPages.add(CollectionFragment())
+
+ val equipmentPageTitles = arrayOf("基础信息", "委托单信息", "收款信息")
+
+ contractViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, equipmentPageTitles
+ )
+ contractViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(contractViewPager)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+}
\ 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
index 96148a3..a60e2a9 100644
--- 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
@@ -169,20 +169,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
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
index 5096b88..a18a2f4 100644
--- 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
@@ -13,11 +13,13 @@
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.view.home.ContractDetailActivity
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.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -187,20 +189,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
index 99b5871..6281e2b 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
@@ -4,6 +4,7 @@
import com.casic.xz.meterage.base.BaseApplication
import com.casic.xz.meterage.extensions.separateResponseCode
import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.ContractDetailModel
import com.casic.xz.meterage.model.ContractListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val contractList = MutableLiveData()
+ val contractDetail = MutableLiveData()
fun getContractList(
customerId: String,
@@ -63,4 +65,23 @@
it.cause.toString().show(BaseApplication.get())
it.printStackTrace()
})
+
+ fun getContractDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getContractDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ contractDetail.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_contract_detail.xml b/app/src/main/res/layout/activity_contract_detail.xml
new file mode 100644
index 0000000..0a8b8f8
--- /dev/null
+++ b/app/src/main/res/layout/activity_contract_detail.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_contract_basic_information.xml b/app/src/main/res/layout/fragment_contract_basic_information.xml
new file mode 100644
index 0000000..b4e9d26
--- /dev/null
+++ b/app/src/main/res/layout/fragment_contract_basic_information.xml
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index bc4d694..d104cea 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
@@ -457,4 +457,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取合同详情
+ */
+ @POST("/finance/agreement/detail")
+ suspend fun getContractDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): 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 1aaabee..759a2a5 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
@@ -1010,7 +1010,7 @@
}
/**
- * 合同列表
+ * 获取合同列表
*/
suspend fun getContractList(
customerId: String,
@@ -1051,4 +1051,16 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取合同详情
+ */
+ suspend fun getContractDetail(id: String): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getContractDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
new file mode 100644
index 0000000..cd6ca61
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.contract.BasicInformationFragment
+import com.casic.xz.meterage.fragment.contract.CollectionFragment
+import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_contract_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class ContractDetailActivity : ApplicationBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_detail
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "发票合同"
+ }
+
+ override fun initData() {
+ val contractId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(contractId))
+ fragmentPages.add(EntrustBriefFragment())
+ fragmentPages.add(CollectionFragment())
+
+ val equipmentPageTitles = arrayOf("基础信息", "委托单信息", "收款信息")
+
+ contractViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, equipmentPageTitles
+ )
+ contractViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(contractViewPager)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+}
\ 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
index 96148a3..a60e2a9 100644
--- 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
@@ -169,20 +169,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
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
index 5096b88..a18a2f4 100644
--- 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
@@ -13,11 +13,13 @@
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.view.home.ContractDetailActivity
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.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -187,20 +189,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
index 99b5871..6281e2b 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
@@ -4,6 +4,7 @@
import com.casic.xz.meterage.base.BaseApplication
import com.casic.xz.meterage.extensions.separateResponseCode
import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.ContractDetailModel
import com.casic.xz.meterage.model.ContractListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val contractList = MutableLiveData()
+ val contractDetail = MutableLiveData()
fun getContractList(
customerId: String,
@@ -63,4 +65,23 @@
it.cause.toString().show(BaseApplication.get())
it.printStackTrace()
})
+
+ fun getContractDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getContractDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ contractDetail.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_contract_detail.xml b/app/src/main/res/layout/activity_contract_detail.xml
new file mode 100644
index 0000000..0a8b8f8
--- /dev/null
+++ b/app/src/main/res/layout/activity_contract_detail.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_contract_basic_information.xml b/app/src/main/res/layout/fragment_contract_basic_information.xml
new file mode 100644
index 0000000..b4e9d26
--- /dev/null
+++ b/app/src/main/res/layout/fragment_contract_basic_information.xml
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_contract_collection.xml b/app/src/main/res/layout/fragment_contract_collection.xml
new file mode 100644
index 0000000..77d9ef6
--- /dev/null
+++ b/app/src/main/res/layout/fragment_contract_collection.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 78d7828..2e98ec0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -72,6 +72,7 @@
+
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
new file mode 100644
index 0000000..c9ce08a
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/BasicInformationFragment.kt
@@ -0,0 +1,79 @@
+package com.casic.xz.meterage.fragment.contract
+
+import android.graphics.Color
+import android.graphics.Paint
+import androidx.lifecycle.ViewModelProvider
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.extensions.formatToYearMonthDay
+import com.casic.xz.meterage.extensions.watchAttachFile
+import com.casic.xz.meterage.utils.LoadingDialogHub
+import com.casic.xz.meterage.vm.ContractInvoiceViewModel
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+import com.pengxh.kt.lite.vm.LoadState
+import kotlinx.android.synthetic.main.fragment_contract_basic_information.*
+
+class BasicInformationFragment(private val id: String) : KotlinBaseFragment() {
+
+ private lateinit var constructViewModel: ContractInvoiceViewModel
+
+ override fun initData() {
+ constructViewModel = ViewModelProvider(this)[ContractInvoiceViewModel::class.java]
+ constructViewModel.getContractDetail(id)
+ constructViewModel.contractDetail.observe(this) {
+ if (it.code == 200) {
+ val data = it.data!!
+
+ contractCodeView.text = data.agreementNo
+ contractNameView.text = data.agreementName
+ contractTypeView.text = data.agreementTypeName
+ creatorView.text = data.createUserName
+ deptNameView.text = data.deptName
+ estimateDateView.text = data.estimateSignDate
+ contractAmountView.text =
+ "¥ ${data.agreementAmount.toBigDecimal() / 100.toBigDecimal()}"
+ contractSourceView.text = data.agreementSourceName
+ contractStartView.text = data.agreementStartDate.formatToYearMonthDay()
+ contractEndView.text = data.agreementEndDate.formatToYearMonthDay()
+ firstPartView.text = data.firstParty
+ firstPersonView.text = data.director
+ contractContentView.text = data.agreementImportantContent
+ remarkView.text = data.remark
+
+ if (data.minioFileName.isNullOrBlank()) {
+ annexView.text = "暂无附件"
+ } else {
+ val minioFileName = data.minioFileName
+
+ annexView.text = minioFileName
+ val textPaint = annexView.paint
+ textPaint.flags = Paint.UNDERLINE_TEXT_FLAG
+ textPaint.isAntiAlias = true
+ annexView.setTextColor(Color.BLUE)
+
+ annexView.setOnClickListener {
+ minioFileName.watchAttachFile(requireContext())
+ }
+ }
+ }
+ }
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_basic_information
+
+ override fun observeRequestState() {
+ constructViewModel.loadState.observe(this) {
+ when (it) {
+ LoadState.Loading -> LoadingDialogHub.show(requireActivity(), "数据加载中...")
+ else -> LoadingDialogHub.dismiss()
+ }
+ }
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
new file mode 100644
index 0000000..435ec86
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/CollectionFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class CollectionFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_collection
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
new file mode 100644
index 0000000..068e0b9
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/fragment/contract/EntrustBriefFragment.kt
@@ -0,0 +1,25 @@
+package com.casic.xz.meterage.fragment.contract
+
+import com.casic.xz.meterage.R
+import com.pengxh.kt.lite.base.KotlinBaseFragment
+
+class EntrustBriefFragment : KotlinBaseFragment() {
+
+ override fun initData() {
+
+ }
+
+ override fun initEvent() {
+
+ }
+
+ override fun initLayoutView(): Int = R.layout.fragment_contract_entrust_brief
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun setupTopBarLayout() {
+
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
new file mode 100644
index 0000000..9d56f09
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/model/ContractDetailModel.java
@@ -0,0 +1,592 @@
+package com.casic.xz.meterage.model;
+
+import java.util.List;
+
+public class ContractDetailModel {
+
+ 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 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 List orderList;
+ private List 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 List getOrderList() {
+ return orderList;
+ }
+
+ public void setOrderList(List orderList) {
+ this.orderList = orderList;
+ }
+
+ public List getPaymentList() {
+ return paymentList;
+ }
+
+ public void setPaymentList(List 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;
+ }
+
+ public static class OrderListModel {
+ private String createTime;
+ private String customerAddress;
+ private String customerId;
+ private String customerName;
+ private String customerNo;
+ private String customerPhone;
+ private String deliverer;
+ private String delivererTel;
+ private String id;
+ private String isUrgent;
+ private String orderCode;
+ private String orderTime;
+ private String planDeliverTime;
+ private String remark;
+ private String requireOverTime;
+ private String sampleCount;
+ private String status;
+ private String statusName;
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getCustomerAddress() {
+ return customerAddress;
+ }
+
+ public void setCustomerAddress(String customerAddress) {
+ this.customerAddress = customerAddress;
+ }
+
+ public String getCustomerId() {
+ return customerId;
+ }
+
+ public void setCustomerId(String customerId) {
+ this.customerId = customerId;
+ }
+
+ public String getCustomerName() {
+ return customerName;
+ }
+
+ public void setCustomerName(String customerName) {
+ this.customerName = customerName;
+ }
+
+ public String getCustomerNo() {
+ return customerNo;
+ }
+
+ public void setCustomerNo(String customerNo) {
+ this.customerNo = customerNo;
+ }
+
+ public String getCustomerPhone() {
+ return customerPhone;
+ }
+
+ public void setCustomerPhone(String customerPhone) {
+ this.customerPhone = customerPhone;
+ }
+
+ public String getDeliverer() {
+ return deliverer;
+ }
+
+ public void setDeliverer(String deliverer) {
+ this.deliverer = deliverer;
+ }
+
+ public String getDelivererTel() {
+ return delivererTel;
+ }
+
+ public void setDelivererTel(String delivererTel) {
+ this.delivererTel = delivererTel;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getIsUrgent() {
+ return isUrgent;
+ }
+
+ public void setIsUrgent(String isUrgent) {
+ this.isUrgent = isUrgent;
+ }
+
+ public String getOrderCode() {
+ return orderCode;
+ }
+
+ public void setOrderCode(String orderCode) {
+ this.orderCode = orderCode;
+ }
+
+ public String getOrderTime() {
+ return orderTime;
+ }
+
+ public void setOrderTime(String orderTime) {
+ this.orderTime = orderTime;
+ }
+
+ public String getPlanDeliverTime() {
+ return planDeliverTime;
+ }
+
+ public void setPlanDeliverTime(String planDeliverTime) {
+ this.planDeliverTime = planDeliverTime;
+ }
+
+ public String getRemark() {
+ return remark;
+ }
+
+ public void setRemark(String remark) {
+ this.remark = remark;
+ }
+
+ public String getRequireOverTime() {
+ return requireOverTime;
+ }
+
+ public void setRequireOverTime(String requireOverTime) {
+ this.requireOverTime = requireOverTime;
+ }
+
+ public String getSampleCount() {
+ return sampleCount;
+ }
+
+ public void setSampleCount(String sampleCount) {
+ this.sampleCount = sampleCount;
+ }
+
+ 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 static class PaymentListModel {
+ private String actualPaymentAmount;
+ private String actualPaymentDate;
+ private String agreementId;
+ private String createTime;
+ private String estimatePaymentAmount;
+ private String estimatePaymentDate;
+ private String id;
+ private String paymentNum;
+ private String updateTime;
+
+ public String getActualPaymentAmount() {
+ return actualPaymentAmount;
+ }
+
+ public void setActualPaymentAmount(String actualPaymentAmount) {
+ this.actualPaymentAmount = actualPaymentAmount;
+ }
+
+ public String getActualPaymentDate() {
+ return actualPaymentDate;
+ }
+
+ public void setActualPaymentDate(String actualPaymentDate) {
+ this.actualPaymentDate = actualPaymentDate;
+ }
+
+ public String getAgreementId() {
+ return agreementId;
+ }
+
+ public void setAgreementId(String agreementId) {
+ this.agreementId = agreementId;
+ }
+
+ public String getCreateTime() {
+ return createTime;
+ }
+
+ public void setCreateTime(String createTime) {
+ this.createTime = createTime;
+ }
+
+ public String getEstimatePaymentAmount() {
+ return estimatePaymentAmount;
+ }
+
+ public void setEstimatePaymentAmount(String estimatePaymentAmount) {
+ this.estimatePaymentAmount = estimatePaymentAmount;
+ }
+
+ public String getEstimatePaymentDate() {
+ return estimatePaymentDate;
+ }
+
+ public void setEstimatePaymentDate(String estimatePaymentDate) {
+ this.estimatePaymentDate = estimatePaymentDate;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getPaymentNum() {
+ return paymentNum;
+ }
+
+ public void setPaymentNum(String paymentNum) {
+ this.paymentNum = paymentNum;
+ }
+
+ 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/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt
index bc4d694..d104cea 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
@@ -457,4 +457,13 @@
@QueryMap limit: Map,
@QueryMap offset: Map
): String
+
+ /**
+ * 获取合同详情
+ */
+ @POST("/finance/agreement/detail")
+ suspend fun getContractDetail(
+ @Header("token") token: String,
+ @Body requestBody: RequestBody
+ ): 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 1aaabee..759a2a5 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
@@ -1010,7 +1010,7 @@
}
/**
- * 合同列表
+ * 获取合同列表
*/
suspend fun getContractList(
customerId: String,
@@ -1051,4 +1051,16 @@
AuthenticationHelper.token!!, requestBody, limitMap, offsetMap
)
}
+
+ /**
+ * 获取合同详情
+ */
+ suspend fun getContractDetail(id: String): String {
+ val param = JsonObject()
+ param.addProperty("id", id)
+ val requestBody = param.toString().toRequestBody(
+ "application/json;charset=UTF-8".toMediaType()
+ )
+ return api.getContractDetail(AuthenticationHelper.token!!, requestBody)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
new file mode 100644
index 0000000..cd6ca61
--- /dev/null
+++ b/app/src/main/java/com/casic/xz/meterage/view/home/ContractDetailActivity.kt
@@ -0,0 +1,52 @@
+package com.casic.xz.meterage.view.home
+
+import androidx.fragment.app.Fragment
+import com.casic.xz.meterage.R
+import com.casic.xz.meterage.adapter.SubViewPagerAdapter
+import com.casic.xz.meterage.base.ApplicationBaseActivity
+import com.casic.xz.meterage.extensions.initLayoutImmersionBar
+import com.casic.xz.meterage.fragment.contract.BasicInformationFragment
+import com.casic.xz.meterage.fragment.contract.CollectionFragment
+import com.casic.xz.meterage.fragment.contract.EntrustBriefFragment
+import com.gyf.immersionbar.ImmersionBar
+import com.pengxh.kt.lite.utils.Constant
+import kotlinx.android.synthetic.main.activity_contract_detail.*
+import kotlinx.android.synthetic.main.include_base_title.*
+
+class ContractDetailActivity : ApplicationBaseActivity() {
+
+ private var fragmentPages: ArrayList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_contract_detail
+
+ override fun setupTopBarLayout() {
+ ImmersionBar.with(this).statusBarDarkFont(true).init()
+ initLayoutImmersionBar(rootView)
+ titleView.text = "发票合同"
+ }
+
+ override fun initData() {
+ val contractId = intent.getStringExtra(Constant.INTENT_PARAM)!!
+
+ fragmentPages.add(BasicInformationFragment(contractId))
+ fragmentPages.add(EntrustBriefFragment())
+ fragmentPages.add(CollectionFragment())
+
+ val equipmentPageTitles = arrayOf("基础信息", "委托单信息", "收款信息")
+
+ contractViewPager.adapter = SubViewPagerAdapter(
+ supportFragmentManager, fragmentPages, equipmentPageTitles
+ )
+ contractViewPager.offscreenPageLimit = fragmentPages.size
+ //绑定
+ topTabLayout.setupWithViewPager(contractViewPager)
+ }
+
+ override fun observeRequestState() {
+
+ }
+
+ override fun initEvent() {
+ leftBackView.setOnClickListener { finish() }
+ }
+}
\ 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
index 96148a3..a60e2a9 100644
--- 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
@@ -169,20 +169,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
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
index 5096b88..a18a2f4 100644
--- 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
@@ -13,11 +13,13 @@
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.view.home.ContractDetailActivity
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.Constant
import com.pengxh.kt.lite.utils.WeakReferenceHandler
@@ -187,20 +189,16 @@
R.id.contractStateView, R.color.gray.convertColor(context)
)
}
+
+ viewHolder.setOnClickListener(R.id.showDetailButton) {
+ navigatePageTo(item.id)
+ }
}
}
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)
- }
- })
}
}
}
diff --git a/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
index 99b5871..6281e2b 100644
--- a/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
+++ b/app/src/main/java/com/casic/xz/meterage/vm/ContractInvoiceViewModel.kt
@@ -4,6 +4,7 @@
import com.casic.xz.meterage.base.BaseApplication
import com.casic.xz.meterage.extensions.separateResponseCode
import com.casic.xz.meterage.extensions.toErrorMessage
+import com.casic.xz.meterage.model.ContractDetailModel
import com.casic.xz.meterage.model.ContractListModel
import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager
import com.google.gson.Gson
@@ -20,6 +21,7 @@
private val gson by lazy { Gson() }
val contractList = MutableLiveData()
+ val contractDetail = MutableLiveData()
fun getContractList(
customerId: String,
@@ -63,4 +65,23 @@
it.cause.toString().show(BaseApplication.get())
it.printStackTrace()
})
+
+ fun getContractDetail(id: String) = launch({
+ loadState.value = LoadState.Loading
+ val response = RetrofitServiceManager.getContractDetail(id)
+ val responseCode = response.separateResponseCode()
+ if (responseCode == 200) {
+ loadState.value = LoadState.Success
+ contractDetail.value = gson.fromJson(
+ response, object : TypeToken() {}.type
+ )
+ } else {
+ loadState.value = LoadState.Fail
+ response.toErrorMessage().show(BaseApplication.get())
+ }
+ }, {
+ loadState.value = LoadState.Fail
+ it.cause.toString().show(BaseApplication.get())
+ it.printStackTrace()
+ })
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_contract_detail.xml b/app/src/main/res/layout/activity_contract_detail.xml
new file mode 100644
index 0000000..0a8b8f8
--- /dev/null
+++ b/app/src/main/res/layout/activity_contract_detail.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_contract_basic_information.xml b/app/src/main/res/layout/fragment_contract_basic_information.xml
new file mode 100644
index 0000000..b4e9d26
--- /dev/null
+++ b/app/src/main/res/layout/fragment_contract_basic_information.xml
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_contract_collection.xml b/app/src/main/res/layout/fragment_contract_collection.xml
new file mode 100644
index 0000000..77d9ef6
--- /dev/null
+++ b/app/src/main/res/layout/fragment_contract_collection.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_contract_entrust_brief.xml b/app/src/main/res/layout/fragment_contract_entrust_brief.xml
new file mode 100644
index 0000000..77d9ef6
--- /dev/null
+++ b/app/src/main/res/layout/fragment_contract_entrust_brief.xml
@@ -0,0 +1,6 @@
+
+
+
+
\ No newline at end of file