diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagement.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagement.vue
index 489aa083e2..f4b3dd7117 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagement.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagement.vue
@@ -82,6 +82,7 @@
+
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagementAdd.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagementAdd.vue
index 0da92c8d63..9942e3121b 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagementAdd.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagementAdd.vue
@@ -17,18 +17,22 @@
回款返利
-
+
分公司
{{ formobj.useOrgName }}
-
+
采购系统
{{ formobj.purchaseSystemName }}
-
+
品牌
{{ formobj.brandName }}
+
+ 款项名称
+ {{ formobj.costTitleValue }}
+
@@ -114,9 +118,11 @@
明细计算
-
+
+
+
@@ -148,6 +154,7 @@ export default {
adjustmentRemarks: '',
purchaseSystemSid: '',
purchaseSystemName: '',
+ costTitleValue: '',
rebateTypeKey: '',
rebateTypeValue: '',
rebateName: '',
@@ -295,6 +302,30 @@ export default {
}
})
},
+ // 合计
+ getSummaries(param) {
+ const {columns, data} = param
+ const sums = []
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = ''
+ return
+ }
+ const values = data.map(item => Number(item[column.property]))
+ if (column.property !== 'vinNo') {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr)
+ if (!isNaN(value)) {
+ return Math.round((parseFloat(prev) + parseFloat(curr)) * 100) / 100
+ } else {
+ return Math.round((parseFloat(prev)) * 100) / 100
+ }
+ }, 0)
+ sums[index] += ''
+ }
+ })
+ return sums
+ },
// 返回(===既判断)
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
@@ -305,6 +336,7 @@ export default {
adjustmentRemarks: '',
purchaseSystemSid: '',
purchaseSystemName: '',
+ costTitleValue: '',
rebateTypeKey: '',
rebateTypeValue: '',
rebateName: '',
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagementInfo.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagementInfo.vue
index 78379185a4..0da8652647 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagementInfo.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanguanli/collectionrebatemanagementInfo.vue
@@ -11,18 +11,22 @@
回款返利
-
+
分公司
{{ formobj.useOrgName }}
-
+
采购系统
{{ formobj.purchaseSystemName }}
-
+
品牌
{{ formobj.brandName }}
+
+ 款项名称
+ {{ formobj.costTitleValue }}
+
@@ -113,9 +117,11 @@
车辆回款返利列表
-
+
+
+
@@ -151,6 +157,30 @@ export default {
}
})
},
+ // 合计
+ getSummaries(param) {
+ const {columns, data} = param
+ const sums = []
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = ''
+ return
+ }
+ const values = data.map(item => Number(item[column.property]))
+ if (column.property !== 'vinNo') {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr)
+ if (!isNaN(value)) {
+ return Math.round((parseFloat(prev) + parseFloat(curr)) * 100) / 100
+ } else {
+ return Math.round((parseFloat(prev)) * 100) / 100
+ }
+ }, 0)
+ sums[index] += ''
+ }
+ })
+ return sums
+ },
// 返回(===既判断)
handleReturn() {
this.formobj = {}
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobechecked.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobechecked.vue
index 840613f5d2..d0c1e130a6 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobechecked.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobechecked.vue
@@ -72,6 +72,7 @@
+
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobecheckedAdd.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobecheckedAdd.vue
index 79296a456f..e6c775d65b 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobecheckedAdd.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobecheckedAdd.vue
@@ -18,6 +18,10 @@
回款返利
+
+ 款项名称
+ {{ formobj.costTitleValue }}
+
回款方式
{{ formobj.collectionTypeValue }}
@@ -26,12 +30,12 @@
回款日期
{{ formobj.collectionDate }}
+
+
回款金额
{{ formobj.collectionMoney }}
-
-
返利类型
{{ formobj.rebateTypeValue }}
@@ -40,12 +44,12 @@
返利名称
{{ formobj.rebateName }}
+
+
预计返利
{{ formobj.estimateRebate }}
-
-
上传日期
@@ -54,13 +58,13 @@
上传金额
+
+
调整金额
{{ formobj.adjustmentMoney }}
-
-
-
+
调整说明
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobecheckedInfo.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobecheckedInfo.vue
index 9d1451857e..087dd16bf7 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobecheckedInfo.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/collectionrebatetobecheckedInfo.vue
@@ -16,6 +16,10 @@
回款返利核对
+
+ 款项名称
+ {{ formobj.costTitleValue }}
+
回款方式
{{ formobj.collectionTypeValue }}
@@ -24,12 +28,12 @@
回款日期
{{ formobj.collectionDate }}
+
+
回款金额
{{ formobj.collectionMoney }}
-
-
返利类型
{{ formobj.rebateTypeValue }}
@@ -38,12 +42,12 @@
返利名称
{{ formobj.rebateName }}
+
+
预计返利
{{ formobj.estimateRebate }}
-
-
上传日期
{{ formobj.uploadDate }}
@@ -52,13 +56,13 @@
上传金额
{{ formobj.uploadMoney }}
+
+
调整金额
{{ formobj.adjustmentMoney }}
-
-
-
+
调整说明
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/heduishenpiAdd.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/heduishenpiAdd.vue
index bed425f51b..e3068150dd 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/heduishenpiAdd.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/heduishenpiAdd.vue
@@ -21,6 +21,7 @@
+
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/heduishenpiInfo.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/heduishenpiInfo.vue
index 0872bc2f8f..999a93b01a 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/heduishenpiInfo.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/heduishenpiInfo.vue
@@ -19,6 +19,7 @@
+
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/yiheduihiukuanfanli.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/yiheduihiukuanfanli.vue
index 5048b5694c..347c4c8f25 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/yiheduihiukuanfanli.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanhedui/relation/yiheduihiukuanfanli.vue
@@ -14,6 +14,7 @@
+
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliAdd.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliAdd.vue
index 8aa1048a9d..520c4eb9a3 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliAdd.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliAdd.vue
@@ -26,6 +26,7 @@
+
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliInfo.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliInfo.vue
index 082aadda8e..bfd98d5c0f 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliInfo.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliInfo.vue
@@ -24,6 +24,7 @@
+
diff --git a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliselect.vue b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliselect.vue
index 15f04558b0..dba6225e49 100644
--- a/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliselect.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/manufacturerrebates/huikuanyuti/relation/huikuanfanliselect.vue
@@ -60,6 +60,7 @@
+
diff --git a/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliAdd.vue b/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliAdd.vue
index 65eefb0681..765524b627 100644
--- a/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliAdd.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliAdd.vue
@@ -26,6 +26,7 @@
+
diff --git a/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliInfo.vue b/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliInfo.vue
index 4af227f52e..a201d50760 100644
--- a/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliInfo.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliInfo.vue
@@ -24,6 +24,7 @@
+
diff --git a/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliguanliInfo.vue b/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliguanliInfo.vue
index 497441d4d1..f310c71b29 100644
--- a/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliguanliInfo.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliguanliInfo.vue
@@ -11,18 +11,22 @@
回款返利
-
+
分公司
{{ formobj.useOrgName }}
-
+
采购系统
{{ formobj.purchaseSystemName }}
-
+
品牌
{{ formobj.brandName }}
+
+ 品牌
+ {{ formobj.costTitleValue }}
+
@@ -113,9 +117,11 @@
车辆回款返利列表
-
+
+
+
@@ -152,6 +158,30 @@ export default {
}
})
},
+ // 合计
+ getSummaries(param) {
+ const {columns, data} = param
+ const sums = []
+ columns.forEach((column, index) => {
+ if (index === 0) {
+ sums[index] = ''
+ return
+ }
+ const values = data.map(item => Number(item[column.property]))
+ if (column.property !== 'vinNo') {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr)
+ if (!isNaN(value)) {
+ return Math.round((parseFloat(prev) + parseFloat(curr)) * 100) / 100
+ } else {
+ return Math.round((parseFloat(prev)) * 100) / 100
+ }
+ }, 0)
+ sums[index] += ''
+ }
+ })
+ return sums
+ },
// 返回(===既判断)
handleReturn() {
this.$emit('doback')
diff --git a/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliselect.vue b/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliselect.vue
index 5aff058034..84030db5df 100644
--- a/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliselect.vue
+++ b/anrui-scm/anrui-scm-ui/src/views/workFlow/huikuanfanliyutiFlow/relation/huikuanfanliselect.vue
@@ -60,6 +60,7 @@
+
diff --git a/yxt-as-ui/src/views/operation/salesSettlement/salesSettlementAdd.vue b/yxt-as-ui/src/views/operation/salesSettlement/salesSettlementAdd.vue
index a5e884d9a0..623775a157 100644
--- a/yxt-as-ui/src/views/operation/salesSettlement/salesSettlementAdd.vue
+++ b/yxt-as-ui/src/views/operation/salesSettlement/salesSettlementAdd.vue
@@ -93,7 +93,6 @@
-
附加项目
diff --git a/yxt-as-ui/src/views/operation/salesSettlement/salesSettlementInfo.vue b/yxt-as-ui/src/views/operation/salesSettlement/salesSettlementInfo.vue
index fe7ad26342..d2a625556f 100644
--- a/yxt-as-ui/src/views/operation/salesSettlement/salesSettlementInfo.vue
+++ b/yxt-as-ui/src/views/operation/salesSettlement/salesSettlementInfo.vue
@@ -104,7 +104,6 @@
-
附加项目
diff --git a/yxt-as-ui/src/views/operation/workslrsettlement/workslrsettlementAdd.vue b/yxt-as-ui/src/views/operation/workslrsettlement/workslrsettlementAdd.vue
index e53cd39a92..85b432bf49 100644
--- a/yxt-as-ui/src/views/operation/workslrsettlement/workslrsettlementAdd.vue
+++ b/yxt-as-ui/src/views/operation/workslrsettlement/workslrsettlementAdd.vue
@@ -333,6 +333,7 @@ export default {
this.$refs['divSelect'].showData(this.formobj.deptSid)
},
backData(val) {
+ this.viewState = 1
req.reverseSettleInit({ sid: val.sid, userSid: window.sessionStorage.getItem('userSid'), orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.formobj = res.data
diff --git a/yxt-as-ui/src/views/workFlow/fanjiesuanFlow/workslrsettlementEdit.vue b/yxt-as-ui/src/views/workFlow/fanjiesuanFlow/workslrsettlementEdit.vue
index e8ed287c74..6cfcfbeeb7 100644
--- a/yxt-as-ui/src/views/workFlow/fanjiesuanFlow/workslrsettlementEdit.vue
+++ b/yxt-as-ui/src/views/workFlow/fanjiesuanFlow/workslrsettlementEdit.vue
@@ -324,6 +324,7 @@ export default {
this.$refs['divSelect'].showData(this.formobj.deptSid)
},
backData(val) {
+ this.viewState = 1
req.reverseSettleInit({ sid: val.sid, userSid: window.sessionStorage.getItem('userSid'), orgPath: this.formobj.orgPath }).then((res) => {
if (res.success) {
this.formobj = res.data
diff --git a/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementDaiBan.vue b/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementDaiBan.vue
index 7fe463e901..0db7afbfe0 100644
--- a/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementDaiBan.vue
+++ b/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementDaiBan.vue
@@ -107,7 +107,6 @@
-
附加项目
diff --git a/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementEdit.vue b/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementEdit.vue
index c4787004d4..6ed82c690b 100644
--- a/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementEdit.vue
+++ b/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementEdit.vue
@@ -92,7 +92,6 @@
-
附加项目
diff --git a/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementYiBan.vue b/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementYiBan.vue
index 7595385851..5fd361b958 100644
--- a/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementYiBan.vue
+++ b/yxt-as-ui/src/views/workFlow/xiaoshoujiesuanFlow/salesSettlementYiBan.vue
@@ -104,7 +104,6 @@
-
附加项目
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbillsettelapply/AsBillSettelApplyDetailsVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbillsettelapply/AsBillSettelApplyDetailsVo.java
index cf6d7ea432..d6e179d15d 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbillsettelapply/AsBillSettelApplyDetailsVo.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbillsettelapply/AsBillSettelApplyDetailsVo.java
@@ -55,6 +55,9 @@ import java.util.List;
@ApiModel(value = "结算申请 视图数据详情", description = "结算申请 视图数据详情")
public class AsBillSettelApplyDetailsVo implements Vo {
+
+ private String settleTime;
+ private String actualAmount;
/**
* 附加费
*/
@@ -252,4 +255,5 @@ public class AsBillSettelApplyDetailsVo implements Vo {
private String outSid; //外出费sid
private String subsidySid; //厂家补助SID
private String rescueSid; //施救费sid
+ private String partsSellers; //销售人员
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java
index fe89e22a86..64c181f709 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java
@@ -169,4 +169,6 @@ public class AsBusrepairBill extends BaseEntity {
private Date reportFirstDate;
@ApiModelProperty("结算金额")
private BigDecimal settleAmount;
+ @ApiModelProperty("是否结清款项(1是,0否)")
+ private Integer settleState;
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java
index 1ab6c3bdcb..1995e22e27 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java
@@ -181,4 +181,6 @@ public class AsBusrepairBillDetailsVo implements Vo {
private String shClaimTypeKey;
@ApiModelProperty("索赔类型value")
private String shClaimTypeValue;
+ @ApiModelProperty("结算时间")
+ private String settleTime;
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SitemVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SitemVo.java
index 79a9af8618..36cea8dfc6 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SitemVo.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SitemVo.java
@@ -65,5 +65,20 @@ public class SitemVo {
// private String groupName;
private List staffList = new ArrayList<>(); //维修人员Sid
private List staffNameList = new ArrayList<>(); //维修人员姓名信息
-
+ /**
+ * 应收合计,销售价
+ */
+ private String sitemReceivableAmount;
+ /**
+ * 结算金额,应收金额 - 优惠金额
+ */
+ private String sitemSettleAmount;
+ /**
+ * 成本
+ */
+ private String sitemCost;
+ /**
+ * 利润额,结算金额 - 成本
+ */
+ private String sitemPrint;
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsBusrepairBillReverseSettle.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsBusrepairBillReverseSettle.java
index 794d5a16cb..f6c457ec07 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsBusrepairBillReverseSettle.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsBusrepairBillReverseSettle.java
@@ -87,4 +87,33 @@ public class AsBusrepairBillReverseSettle extends BaseEntity {
@ApiModelProperty("办结时间")
private Date closeDate; // 办结时间
+
+ /**
+ * 成本合计
+ */
+ private BigDecimal costAmount;
+ /**
+ * 材料费
+ */
+ private BigDecimal goodsAmount;
+ /**
+ * 工时费
+ */
+ private BigDecimal hourAmount;
+ /**
+ * 优惠
+ */
+ private BigDecimal discountAmount;
+ /**
+ * 附加费
+ */
+ private BigDecimal addAmount;
+ /**
+ * 利润
+ */
+ private BigDecimal profit;
+ @ApiModelProperty("应收金额")
+ private BigDecimal receivableAmount; // 应收金额
+ @ApiModelProperty("反结算金额")
+ private BigDecimal actualAmount; // 结算金额
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsChoseBusrepairbillQuery.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsChoseBusrepairbillQuery.java
new file mode 100644
index 0000000000..30e642f4d1
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsChoseBusrepairbillQuery.java
@@ -0,0 +1,48 @@
+package com.yxt.anrui.as.api.asbusrepairbillreversesettle;
+
+import com.yxt.common.core.query.Query;
+import lombok.Data;
+
+@Data
+public class AsChoseBusrepairbillQuery implements Query {
+
+ /**
+ * 维修单号
+ */
+ private String billNo;
+ /**
+ * 维修类型
+ */
+ private String billType;
+ /**
+ * 客户名称
+ */
+ private String customerName;
+ /**
+ * 进厂结束
+ */
+ private String entryTimeEnd;
+ /**
+ * 进厂开始日期
+ */
+ private String entryTimeStart;
+ private String menuUrl;
+ private String orgPath;
+ /**
+ * 结算结束
+ */
+ private String settleDateEnd;
+ /**
+ * 结算开始
+ */
+ private String settleDateStart;
+ /**
+ * 科目
+ */
+ private String subject;
+ private String userSid;
+ /**
+ * 车牌号
+ */
+ private String vehMark;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsChoseBusrepairbillVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsChoseBusrepairbillVo.java
new file mode 100644
index 0000000000..478ef10ece
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsChoseBusrepairbillVo.java
@@ -0,0 +1,49 @@
+package com.yxt.anrui.as.api.asbusrepairbillreversesettle;
+
+import lombok.Data;
+
+@Data
+public class AsChoseBusrepairbillVo {
+
+ /**
+ * 维修单编号
+ */
+ private String billNo;
+ /**
+ * 维修单类型
+ */
+ private String billType;
+ private String closeDate;
+ /**
+ * 客户
+ */
+ private String customerName;
+ /**
+ * 进厂时间
+ */
+ private String entryTime;
+ /**
+ * 是否外出(无需转换,直接返回是否汉字)
+ */
+ private String isGoOut;
+ /**
+ * 结算时间
+ */
+ private String settleTime;
+ /**
+ * 维修单sid
+ */
+ private String sid;
+ /**
+ * 科目
+ */
+ private String subject;
+ /**
+ * 车牌号
+ */
+ private String vehMark;
+ /**
+ * 车架号
+ */
+ private String vinNo;
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/flowable/SubmitReverseSettleDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/flowable/SubmitReverseSettleDto.java
index 4c329c8c9c..91a07b6ce4 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/flowable/SubmitReverseSettleDto.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/flowable/SubmitReverseSettleDto.java
@@ -1,5 +1,6 @@
package com.yxt.anrui.as.api.asbusrepairbillreversesettle.flowable;
+import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyDetailsVo;
import com.yxt.anrui.as.api.asbusrepairbillreversesettle.AsBusrepairBillReverseSettleDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@@ -13,7 +14,7 @@ import lombok.Data;
*/
@ApiModel("提交")
@Data
-public class SubmitReverseSettleDto extends AsBusrepairBillReverseSettleDto {
+public class SubmitReverseSettleDto extends AsBillSettelApplyDetailsVo {
@ApiModelProperty("意见")
private String comment;
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.java
index 6e4bf93acf..8de32ba0e6 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.java
@@ -69,4 +69,7 @@ public interface AsBillSettelApplyMapper extends BaseMapper {
int updateFlowFiled(Map map);
int selCount(@Param("sourceSid") String sourceSid);
+
+ int selSalesCount(@Param("sourceSid") String sourceSid);
+
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.xml
index e035746626..05e759cc0c 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.xml
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.xml
@@ -60,4 +60,11 @@
WHERE a.sourceSid = #{sourceSid} and a.nodeState != '终止' and a.nodeState != '发起申请' AND
(SELECT IFNULL(count(*),0) FROM as_busrepair_bill_reverse_settle as r WHERE r.sourceSid = #{sourceSid} AND r.nodeState = '已办结') = 0
+
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyRest.java
index 1d553326f7..b5f36b9adc 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyRest.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyRest.java
@@ -69,178 +69,235 @@ import java.util.List;
@RequestMapping("v1/settleaccounts")
public class AsBillSettelApplyRest {
- @Autowired
- private AsBillSettelApplyService asBillSettelApplyService;
+ @Autowired
+ private AsBillSettelApplyService asBillSettelApplyService;
- @ApiOperation("根据条件分页查询数据的列表")
- @PostMapping("/listPage")
- public ResultBean> listPage(@RequestBody PagerQuery pq){
- ResultBean rb = ResultBean.fireFail();
- PagerVo pv = asBillSettelApplyService.listPageVo(pq);
- return rb.success().setData(pv);
- }
+ @ApiOperation("根据条件分页查询数据的列表")
+ @PostMapping("/listPage")
+ public ResultBean> listPage(@RequestBody PagerQuery pq) {
+ ResultBean rb = ResultBean.fireFail();
+ PagerVo pv = asBillSettelApplyService.listPageVo(pq);
+ return rb.success().setData(pv);
+ }
- @ApiOperation("新增或修改")
- @PostMapping("/save")
- public ResultBean save(@RequestBody AsBillSettelApplyDetailsVo dto){
- ResultBean rb = ResultBean.fireFail();
- asBillSettelApplyService.saveOrUpdateDto(dto);
- return rb.success();
- }
+ @ApiOperation("新增或修改")
+ @PostMapping("/save")
+ public ResultBean save(@RequestBody AsBillSettelApplyDetailsVo dto) {
+ ResultBean rb = ResultBean.fireFail();
+ asBillSettelApplyService.saveOrUpdateDto(dto);
+ return rb.success();
+ }
- @ApiOperation("根据sid批量删除")
+ @ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
- public ResultBean delBySids(@RequestBody String[] sids){
- ResultBean rb = ResultBean.fireFail();
- asBillSettelApplyService.delBySids(sids);
- return rb.success();
- }
-
- @ApiOperation("维修单初始化")
- @GetMapping("/busrepairbillInit")
- public ResultBean busrepairbillInit(@RequestParam("sid") String sid,
- @RequestParam("userSid") String userSid,
- @RequestParam("orgPath") String orgPath
- ){
- ResultBean rb = ResultBean.fireFail();
- AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.busrepairbillInit(sid,userSid,orgPath);
- return rb.success().setData(vo);
- }
-
- @ApiOperation("销售单初始化")
- @PostMapping("/salesbillInit")
- public ResultBean salesbillInit(@RequestParam("sid") String sid,
- @RequestParam("userSid") String userSid,
- @RequestParam("orgPath") String orgPath
- ){
- ResultBean rb = ResultBean.fireFail();
- AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.salesbillInit(sid,userSid,orgPath);
- return rb.success().setData(vo);
- }
-
- @ApiOperation("销售单保存")
- @PostMapping("/salesSave")
- public ResultBean salesSave(@RequestBody AsBillSettelApplyDetailsVo dto){
- ResultBean rb = ResultBean.fireFail();
- asBillSettelApplyService.saveOrUpdateDto(dto);
- return rb.success();
- }
-
- @ApiOperation("根据SID获取一条记录")
+ public ResultBean delBySids(@RequestBody String[] sids) {
+ ResultBean rb = ResultBean.fireFail();
+ asBillSettelApplyService.delBySids(sids);
+ return rb.success();
+ }
+
+ @ApiOperation("维修单初始化")
+ @GetMapping("/busrepairbillInit")
+ public ResultBean busrepairbillInit(@RequestParam("sid") String sid,
+ @RequestParam("userSid") String userSid,
+ @RequestParam("orgPath") String orgPath
+ ) {
+ ResultBean rb = ResultBean.fireFail();
+ AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.busrepairbillInit(sid, userSid, orgPath);
+ return rb.success().setData(vo);
+ }
+
+ @ApiOperation("销售单初始化")
+ @PostMapping("/salesbillInit")
+ public ResultBean salesbillInit(@RequestParam("sid") String sid,
+ @RequestParam("userSid") String userSid,
+ @RequestParam("orgPath") String orgPath
+ ) {
+ ResultBean rb = ResultBean.fireFail();
+ AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.salesbillInit(sid, userSid, orgPath);
+ return rb.success().setData(vo);
+ }
+
+ @ApiOperation("销售单保存")
+ @PostMapping("/salesSave")
+ public ResultBean salesSave(@RequestBody AsBillSettelApplyDetailsVo dto) {
+ ResultBean rb = ResultBean.fireFail();
+ asBillSettelApplyService.salesSave(dto);
+ return rb.success();
+ }
+
+ @ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
- public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){
- ResultBean rb = ResultBean.fireFail();
- AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.fetchDetailsVoBySid(sid);
- return rb.success().setData(vo);
- }
- @ApiOperation("app详情")
- @GetMapping("/fetchDetailsBySid2/{sid}")
- public ResultBean fetchDetailsBySid2(@PathVariable("sid") String sid){
- ResultBean rb = ResultBean.fireFail();
- AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.fetchDetailsVoBySid(sid);
- return rb.success().setData(vo);
- }
- //---------------------------------flow----------------------------------------
- @ApiOperation("提交审批流程")
- @PostMapping("/submit")
- public ResultBean submit(@RequestBody @Valid SubmitSettleDto dto) {
- return asBillSettelApplyService.submit(dto);
- }
-
- @ApiOperation(value = "办理(同意)")
- @PostMapping("/complete")
- public ResultBean complete(@Valid @RequestBody SettleCompleteDto query) {
- BusinessVariables bv = new BusinessVariables();
- BeanUtil.copyProperties(query, bv);
- bv.setModelId(ProcDefEnum.BILLSETTLEAPPLY.getProDefId());
- return asBillSettelApplyService.complete(bv);
- }
-
- @ApiOperation(value = "获取上一个环节")
- @GetMapping(value = "/getPreviousNodesForReject")
- public ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap SettleNodeQuery query) {
- return asBillSettelApplyService.getPreviousNodesForReject(query);
- }
-
- @ApiOperation(value = "获取下一个环节")
- @GetMapping(value = "/getNextNodesForSubmit")
- public ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap SettleNodeQuery query) {
- return asBillSettelApplyService.getNextNodesForSubmit(query);
- }
-
- @ApiOperation(value = "驳回任务")
- @PostMapping(value = "/reject")
- public ResultBean reject(@Valid @RequestBody SettleTaskQuery query) {
- return asBillSettelApplyService.reject(query);
- }
-
- @ApiOperation(value = "撤回流程")
- @PostMapping(value = "/revokeProcess")
- public ResultBean revokeProcess(@Valid @RequestBody SettleTaskQuery query) {
- return asBillSettelApplyService.revokeProcess(query);
- }
-
- @ApiOperation(value = "终止任务")
- @PostMapping(value = "/breakProcess")
- public ResultBean breakProcess(@Valid @RequestBody SettleTaskQuery query) {
- return asBillSettelApplyService.breakProcess(query);
- }
-
- @ApiOperation(value = "加签")
- @PostMapping(value = "/delegateProcess")
- public ResultBean delegateProcess(@RequestBody SettleDelegateQuery query) {
- return asBillSettelApplyService.delegate(query);
- }
-
- //---------------- app ---------------------
- @ApiOperation("办理")
- @PutMapping("/agreeCreditInfo")
- @ResponseBody
- ResultBean agreeCreditInfo(@Valid @RequestBody CompleteSettleDto dto){
- return asBillSettelApplyService.agreeCreditInfo(dto);
- }
-
- @ApiOperation("驳回")
- @PutMapping("/rejectCreditInfo")
- @ResponseBody
- ResultBean rejectCreditInfo(@Valid @RequestBody AppSettleTaskQuery query){
- return asBillSettelApplyService.rejectCreditInfo(query);
- }
-
-
- @ApiOperation("撤回")
- @PutMapping("/recallCreditInfo")
- @ResponseBody
- ResultBean recallCreditInfo(@Valid @RequestBody AppSettleTaskQuery query){
- return asBillSettelApplyService.recallCreditInfo(query);
- }
-
-
- @ApiOperation("终止")
- @PutMapping("/stopCreditInfo")
- @ResponseBody
- ResultBean stopCreditInfo(@Valid @RequestBody AppSettleTaskQuery query){
- return asBillSettelApplyService.stopCreditInfo(query);
- }
-
-
- @ApiOperation("获取流程操作标题")
- @GetMapping("/getFlowOperateTitle")
- @ResponseBody
- ResultBean getFlowOperateTitle(@Valid @SpringQueryMap SettleFlowableQuery query){
- return asBillSettelApplyService.getFlowOperateTitle(query);
- }
-
-
- @ApiOperation(value = "加签")
- @PutMapping(value = "/delegate")
- @ResponseBody
- public ResultBean delegate(@RequestBody AppSettleDelegateQuery delegateQuery){
- return asBillSettelApplyService.delegate2(delegateQuery);
- }
+ public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid) {
+ ResultBean rb = ResultBean.fireFail();
+ AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.fetchDetailsVoBySid(sid);
+ return rb.success().setData(vo);
+ }
+
+ @ApiOperation("app详情")
+ @GetMapping("/fetchDetailsBySid2/{sid}")
+ public ResultBean fetchDetailsBySid2(@PathVariable("sid") String sid) {
+ ResultBean rb = ResultBean.fireFail();
+ AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.fetchDetailsVoBySid(sid);
+ return rb.success().setData(vo);
+ }
+
+ //---------------------------------flow----------------------------------------
+ @ApiOperation("提交审批流程")
+ @PostMapping("/submit")
+ public ResultBean submit(@RequestBody @Valid SubmitSettleDto dto) {
+ return asBillSettelApplyService.submit(dto);
+ }
+
+ @ApiOperation(value = "办理(同意)")
+ @PostMapping("/complete")
+ public ResultBean complete(@Valid @RequestBody SettleCompleteDto query) {
+ BusinessVariables bv = new BusinessVariables();
+ BeanUtil.copyProperties(query, bv);
+ bv.setModelId(ProcDefEnum.BILLSETTLEAPPLY.getProDefId());
+ return asBillSettelApplyService.complete(bv);
+ }
+
+ @ApiOperation(value = "获取上一个环节")
+ @GetMapping(value = "/getPreviousNodesForReject")
+ public ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap SettleNodeQuery query) {
+ return asBillSettelApplyService.getPreviousNodesForReject(query);
+ }
+
+ @ApiOperation(value = "获取下一个环节")
+ @GetMapping(value = "/getNextNodesForSubmit")
+ public ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap SettleNodeQuery query) {
+ return asBillSettelApplyService.getNextNodesForSubmit(query);
+ }
+
+ @ApiOperation(value = "驳回任务")
+ @PostMapping(value = "/reject")
+ public ResultBean reject(@Valid @RequestBody SettleTaskQuery query) {
+ return asBillSettelApplyService.reject(query);
+ }
+
+ @ApiOperation(value = "撤回流程")
+ @PostMapping(value = "/revokeProcess")
+ public ResultBean revokeProcess(@Valid @RequestBody SettleTaskQuery query) {
+ return asBillSettelApplyService.revokeProcess(query);
+ }
+
+ @ApiOperation(value = "终止任务")
+ @PostMapping(value = "/breakProcess")
+ public ResultBean breakProcess(@Valid @RequestBody SettleTaskQuery query) {
+ return asBillSettelApplyService.breakProcess(query);
+ }
+
+ @ApiOperation(value = "加签")
+ @PostMapping(value = "/delegateProcess")
+ public ResultBean delegateProcess(@RequestBody SettleDelegateQuery query) {
+ return asBillSettelApplyService.delegate(query);
+ }
+
+
+ //----------------------------销售单流程--------------------------------
+ @ApiOperation("提交审批流程")
+ @PostMapping("/submitSales")
+ public ResultBean submitSales(@RequestBody @Valid SubmitSettleDto dto) {
+ return asBillSettelApplyService.submitSales(dto);
+ }
+
+ @ApiOperation(value = "办理(同意)")
+ @PostMapping("/completeSales")
+ public ResultBean completeSales(@Valid @RequestBody SettleCompleteDto query) {
+ BusinessVariables bv = new BusinessVariables();
+ BeanUtil.copyProperties(query, bv);
+ bv.setModelId(ProcDefEnum.SALESBILLSETTLEAPPLY.getProDefId());
+ return asBillSettelApplyService.completeSales(bv);
+ }
+
+ @ApiOperation(value = "获取上一个环节")
+ @GetMapping(value = "/getPreviousNodesForRejectSales")
+ public ResultBean> getPreviousNodesForRejectSales(@Valid @SpringQueryMap SettleNodeQuery query) {
+ return asBillSettelApplyService.getPreviousNodesForRejectSales(query);
+ }
+
+ @ApiOperation(value = "获取下一个环节")
+ @GetMapping(value = "/getNextNodesForSubmitSales")
+ public ResultBean> getNextNodesForSubmitSales(@Valid @SpringQueryMap SettleNodeQuery query) {
+ return asBillSettelApplyService.getNextNodesForSubmitSales(query);
+ }
+
+ @ApiOperation(value = "驳回任务")
+ @PostMapping(value = "/rejectSales")
+ public ResultBean rejectSales(@Valid @RequestBody SettleTaskQuery query) {
+ return asBillSettelApplyService.rejectSales(query);
+ }
+
+ @ApiOperation(value = "撤回流程")
+ @PostMapping(value = "/revokeProcessSales")
+ public ResultBean revokeProcessSales(@Valid @RequestBody SettleTaskQuery query) {
+ return asBillSettelApplyService.revokeProcessSales(query);
+ }
+
+ @ApiOperation(value = "终止任务")
+ @PostMapping(value = "/breakProcessSales")
+ public ResultBean breakProcessSales(@Valid @RequestBody SettleTaskQuery query) {
+ return asBillSettelApplyService.breakProcessSales(query);
+ }
+
+ @ApiOperation(value = "加签")
+ @PostMapping(value = "/delegateProcessSales")
+ public ResultBean delegateProcessSales(@RequestBody SettleDelegateQuery query) {
+ return asBillSettelApplyService.delegateProcessSales(query);
+ }
+
+
+
+ //---------------- app ---------------------
+ @ApiOperation("办理")
+ @PutMapping("/agreeCreditInfo")
+ @ResponseBody
+ ResultBean agreeCreditInfo(@Valid @RequestBody CompleteSettleDto dto) {
+ return asBillSettelApplyService.agreeCreditInfo(dto);
+ }
+
+ @ApiOperation("驳回")
+ @PutMapping("/rejectCreditInfo")
+ @ResponseBody
+ ResultBean rejectCreditInfo(@Valid @RequestBody AppSettleTaskQuery query) {
+ return asBillSettelApplyService.rejectCreditInfo(query);
+ }
+
+
+ @ApiOperation("撤回")
+ @PutMapping("/recallCreditInfo")
+ @ResponseBody
+ ResultBean recallCreditInfo(@Valid @RequestBody AppSettleTaskQuery query) {
+ return asBillSettelApplyService.recallCreditInfo(query);
+ }
+
+
+ @ApiOperation("终止")
+ @PutMapping("/stopCreditInfo")
+ @ResponseBody
+ ResultBean stopCreditInfo(@Valid @RequestBody AppSettleTaskQuery query) {
+ return asBillSettelApplyService.stopCreditInfo(query);
+ }
+
+
+ @ApiOperation("获取流程操作标题")
+ @GetMapping("/getFlowOperateTitle")
+ @ResponseBody
+ ResultBean getFlowOperateTitle(@Valid @SpringQueryMap SettleFlowableQuery query) {
+ return asBillSettelApplyService.getFlowOperateTitle(query);
+ }
+
+
+ @ApiOperation(value = "加签")
+ @PutMapping(value = "/delegate")
+ @ResponseBody
+ public ResultBean delegate(@RequestBody AppSettleDelegateQuery delegateQuery) {
+ return asBillSettelApplyService.delegate2(delegateQuery);
+ }
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java
index b9c3394fef..d4171d2f5b 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java
@@ -219,6 +219,9 @@ public class AsBillSettelApplyService extends MybatisBaseService goodsDetailsVos = data.getGoodsVos();
if (!goodsDetailsVos.isEmpty()) {
List goodsList = new ArrayList<>();
@@ -2684,6 +2698,7 @@ public class AsBillSettelApplyService extends MybatisBaseService 0) {
+ List aitemVos = dto.getAitemVos();
+ for (SettleAitemVo aitemVo : aitemVos) {
+ AsBillSettelApplyAitem a = new AsBillSettelApplyAitem();
+ BeanUtil.copyProperties(aitemVo, a, "sid");
+ a.setMainSid(sid);
+ asBillSettelApplyAitemService.insert(a);
+ if (StringUtils.isNotBlank(aitemVo.getAitemCost())) {
+ costAll = costAll.add(new BigDecimal(aitemVo.getAitemCost()));
+ }
+ if (StringUtils.isNotBlank(aitemVo.getAitemPrint())) {
+ printAll = printAll.add(new BigDecimal(aitemVo.getAitemPrint()));
+ }
+ }
+ }
+ if (!dto.getGoodsDetailsVos().isEmpty() && dto.getGoodsDetailsVos().size() > 0) {
+ List goodsDetailsVos = dto.getGoodsDetailsVos();
+ for (SettleGoodsDetailsVo g : goodsDetailsVos) {
+ AsBillSettelApplyDetail d = new AsBillSettelApplyDetail();
+ BeanUtil.copyProperties(g, d, "sid");
+ d.setMainSid(sid);
+ asBillSettelApplyDetailService.insert(d);
+ if (StringUtils.isNotBlank(g.getGoodsCost())) {
+ costAll = costAll.add(new BigDecimal(g.getGoodsCost()));
+ }
+ if (StringUtils.isNotBlank(g.getGoodsPrint())) {
+ printAll = printAll.add(new BigDecimal(g.getGoodsPrint()));
+ }
+ }
+ }
+ AsBillSettelApply settelApply = fetchBySid(sid);
+ if (null != settelApply) {
+ settelApply.setCostAmount(costAll);
+ settelApply.setProfit(printAll);
+ baseMapper.updateById(settelApply);
+ }
+ return sid;
+ }
+
+ public ResultBean submitSales(SubmitSettleDto dto) {
+ ResultBean rb = ResultBean.fireFail();
+ String sourceSid = dto.getSourceSid();
+ int count = baseMapper.selSalesCount(sourceSid);
+ if (count > 0) {
+ return rb.setMsg("该销售单已发起结算申请,请勿重复发起!");
+ }
+
+ AsBillSettelApply settelApply = fetchBySid(dto.getSid());
+ int r = submitBusinessData(dto, settelApply);
+ if (r == 3) {
+ return rb.setMsg("该申请不存在");
+ }
+ if (r == 0) {
+ return rb.setMsg("操作失败!提交的数据不一致");
+ }
+ //新增修改保存
+ String businessSid = salesSave(dto);
+ settelApply = fetchBySid(businessSid);
+ //创建BusinessVariables实体对象
+ BusinessVariables bv = new BusinessVariables();
+ //流程中的参数赋值、若有网关,则赋值网关中判断的字段。
+ Map variables = new HashMap<>();
+ //用户的部门全路径sid
+ SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(settelApply.getDeptSid()).getData();
+ bv.setOrgSidPath(deptVo.getOrgSidPath());
+ //业务sid
+ bv.setBusinessSid(businessSid);
+ //用户sid
+ bv.setUserSid(settelApply.getCreateBySid());
+ //若app移动端有此功能,则传递appMap参数
+ Map appMap = new HashMap<>();
+ appMap.put("sid", businessSid);
+ //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
+ variables.put("app", appMap);
+ //判断发起人是否为前台主管
+ String createBySid = settelApply.getCreateBySid();
+// List list = sysUserRoleFeign.getUserRoleSidByUserSid(createBySid).getData();
+// variables.put("iszg", list.contains("f00a7338-a6a4-4712-ab85-ca211d56fb1f"));
+ boolean discount = false; //是否低于销售价X折或低于优惠金额X元
+ boolean isSecond = false; //是否为自有二级站
+ boolean isZhan = false; //是否为自有二级站长
+ boolean isZG = false; //是否为配件主管
+ boolean price = false; //是否低于销售价X折
+ boolean chengben = false; //是否低于成本价
+ AsBillSettelApplyDetailsVo vo = fetchDetailsVoBySid(businessSid);
+ if (null != vo) {
+ List goodsDetailsVos = vo.getGoodsDetailsVos();
+ if (!goodsDetailsVos.isEmpty()) {
+ for (SettleGoodsDetailsVo s : goodsDetailsVos) {
+ String discountC = "0";
+ String discountAmountC = "0";
+ BigDecimal amount = BigDecimal.ZERO;
+ BigDecimal cost = BigDecimal.ZERO;
+ if (StringUtils.isNotBlank(s.getDiscount())) {
+ discountC = s.getDiscount();
+ }
+ if (StringUtils.isNotBlank(s.getDiscountAmount())) {
+ discountAmountC = s.getDiscountAmount();
+ }
+ if (StringUtils.isNotBlank(s.getGoodsSettleAmount())) {
+ amount = new BigDecimal(s.getGoodsSettleAmount());
+ }
+ if (StringUtils.isNotBlank(s.getGoodsCost())) {
+ cost = new BigDecimal(s.getGoodsCost());
+ }
+ SysFlowNodeQuery flowNodeQuery = new SysFlowNodeQuery();
+ flowNodeQuery.setType(0);
+ flowNodeQuery.setFlowName("商品配件销售结算申请");
+ flowNodeQuery.setCreateOrgName(vo.getUseOrgName());
+ flowNodeQuery.setProcDefId(settelApply.getProcDefId());
+ flowNodeQuery.setNodeNames("配件主管审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f1 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("配件主管审批");
+ flowNodeQuery.setParameter("优惠金额");
+ flowNodeQuery.setValue(discountAmountC);
+ boolean f2 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("自有二级站长审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f3 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("自有二级站长审批");
+ flowNodeQuery.setParameter("优惠金额");
+ flowNodeQuery.setValue(discountAmountC);
+ boolean f4 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ if (f1 || f2 || f3 || f4) {
+ discount = true;
+ }
+ flowNodeQuery.setNodeNames("站长审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f5 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ if (f5) {
+ price = true;
+ }
+ if (amount.compareTo(cost) < 0) {
+ chengben = true;
+ }
+ }
+ }
+ }
+ SysOrganizationVo data = sysOrganizationFeign.fetchBySid(settelApply.getDeptSid()).getData();
+ if (data != null) {
+ String orgAttributeValue = data.getOrgAttributeValue();
+ if (orgAttributeValue.equals("自有二级服务站")) {
+ isSecond = true;
+ String roles = "";
+ //根据当前用户sid查询用户角色
+ List roleVoList = sysRoleFeign.fetchByUserSid(createBySid).getData();
+ roleVoList.removeAll(Collections.singleton(null));
+ if (!roleVoList.isEmpty()) {
+ roles = String.join("+", roleVoList.stream().map(SysRoleVo::getName).collect(Collectors.toList()));
+ }
+ if (StringUtils.isNotBlank(roles)) {
+ if (roles.contains("分公司自有二级站站长")) {
+ isZhan = true;
+ }
+ }
+ } else {
+ String roles = "";
+ //根据当前用户sid查询用户角色
+ List roleVoList = sysRoleFeign.fetchByUserSid(createBySid).getData();
+ roleVoList.removeAll(Collections.singleton(null));
+ if (!roleVoList.isEmpty()) {
+ roles = String.join("+", roleVoList.stream().map(SysRoleVo::getName).collect(Collectors.toList()));
+ }
+ if (StringUtils.isNotBlank(roles)) {
+ if (roles.contains("分公司配件主管")) {
+ isZG = true;
+ }
+ }
+ }
+ }
+ variables.put("discount", discount);
+ variables.put("isSecond", isSecond);
+ variables.put("isZhan", isZhan);
+ variables.put("isZG", isZG);
+ variables.put("price", price);
+ variables.put("chengben", chengben);
+ if (!discount) {
+ smsSettleComplete(businessSid);
+ return rb.success();
+ }
+ //流程定义id
+ bv.setModelId(ProcDefEnum.SALESBILLSETTLEAPPLY.getProDefId());
+ bv.setFormVariables(variables);
+ if (r == 1) {
+ ResultBean voResultBean = flowFeign.startProcess(bv);
+ UpdateFlowFieldVo ufVo = voResultBean.getData();
+ updateFlowFiled(BeanUtil.beanToMap(ufVo));
+ //极光推送
+ settelApply = fetchBySid(businessSid);
+ MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
+ MessageFlowVo messageFlowVo = new MessageFlowVo();
+ BeanUtil.copyProperties(ufVo, messageFlowVo);
+ messageFlowableQuery.setUfVo(messageFlowVo);
+ messageFlowableQuery.setAppMap(appMap);
+ messageFlowableQuery.setBusinessSid(businessSid);
+ messageFlowableQuery.setModuleName("结算申请");
+ messageFlowableQuery.setMsgContent(settelApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
+ messageFlowableQuery.setMsgTitle("结算申请");
+ messageFeign.pushMessage(messageFlowableQuery);
+ return voResultBean;
+ }
+ if (r == 2) {
+ // ToDo:驳回到发起人后再次提交
+ if (StringUtils.isBlank(dto.getInstanceId())) {
+ return rb.setMsg("参数错误:instanceId");
+ }
+ bv.setTaskId(settelApply.getTaskId());
+ bv.setTaskDefKey(settelApply.getNodeSid());
+ bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
+ bv.setInstanceId(dto.getInstanceId());
+ return complete(bv);
+ }
+ return rb;
+ }
+
+
+
+
+ public ResultBean completeSales(BusinessVariables bv) {
+ ResultBean rb = ResultBean.fireFail();
+ String businessSid = bv.getBusinessSid();
+ AsBillSettelApply settelApply = fetchBySid(businessSid);
+ Map variables = new HashMap<>();
+ Map appMap = new HashMap<>();
+ appMap.put("sid", businessSid);
+ variables.put("app", appMap);
+ boolean discount = false; //是否低于销售价X折或低于优惠金额X元
+ boolean isSecond = false; //是否为自有二级站
+ boolean isZhan = false; //是否为自有二级站长
+ boolean isZG = false; //是否为前台主管
+ boolean price = false; //是否低于销售价X折
+ boolean chengben = false; //是否低于成本价
+ AsBillSettelApplyDetailsVo vo = fetchDetailsVoBySid(businessSid);
+ if (null != vo) {
+ List goodsDetailsVos = vo.getGoodsDetailsVos();
+ if (!goodsDetailsVos.isEmpty()) {
+ for (SettleGoodsDetailsVo s : goodsDetailsVos) {
+ String discountC = "0";
+ String discountAmountC = "0";
+ BigDecimal amount = BigDecimal.ZERO;
+ BigDecimal cost = BigDecimal.ZERO;
+ if (StringUtils.isNotBlank(s.getDiscount())) {
+ discountC = s.getDiscount();
+ }
+ if (StringUtils.isNotBlank(s.getDiscountAmount())) {
+ discountAmountC = s.getDiscountAmount();
+ }
+ if (StringUtils.isNotBlank(s.getGoodsSettleAmount())) {
+ amount = new BigDecimal(s.getGoodsSettleAmount());
+ }
+ if (StringUtils.isNotBlank(s.getGoodsCost())) {
+ cost = new BigDecimal(s.getGoodsCost());
+ }
+ SysFlowNodeQuery flowNodeQuery = new SysFlowNodeQuery();
+ flowNodeQuery.setType(0);
+ flowNodeQuery.setFlowName("商品配件销售结算申请");
+ flowNodeQuery.setCreateOrgName(vo.getUseOrgName());
+ flowNodeQuery.setProcDefId(settelApply.getProcDefId());
+ flowNodeQuery.setNodeNames("配件主管审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f1 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("配件主管审批");
+ flowNodeQuery.setParameter("优惠金额");
+ flowNodeQuery.setValue(discountAmountC);
+ boolean f2 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("自有二级站长审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f3 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("自有二级站长审批");
+ flowNodeQuery.setParameter("优惠金额");
+ flowNodeQuery.setValue(discountAmountC);
+ boolean f4 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ if (f1 || f2 || f3 || f4) {
+ discount = true;
+ }
+ flowNodeQuery.setNodeNames("站长审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f5 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ if (f5) {
+ price = true;
+ }
+ if (amount.compareTo(cost) < 0) {
+ chengben = true;
+ }
+ }
+ }
+ }
+ SysOrganizationVo data = sysOrganizationFeign.fetchBySid(settelApply.getDeptSid()).getData();
+ if (data != null) {
+ String orgAttributeValue = data.getOrgAttributeValue();
+ if (orgAttributeValue.equals("自有二级服务站")) {
+ isSecond = true;
+ String roles = "";
+ //根据当前用户sid查询用户角色
+ List roleVoList = sysRoleFeign.fetchByUserSid(settelApply.getCreateBySid()).getData();
+ roleVoList.removeAll(Collections.singleton(null));
+ if (!roleVoList.isEmpty()) {
+ roles = String.join("+", roleVoList.stream().map(SysRoleVo::getName).collect(Collectors.toList()));
+ }
+ if (StringUtils.isNotBlank(roles)) {
+ if (roles.contains("分公司自有二级站站长")) {
+ isZhan = true;
+ }
+ }
+ } else {
+ String roles = "";
+ //根据当前用户sid查询用户角色
+ List roleVoList = sysRoleFeign.fetchByUserSid(settelApply.getCreateBySid()).getData();
+ roleVoList.removeAll(Collections.singleton(null));
+ if (!roleVoList.isEmpty()) {
+ roles = String.join("+", roleVoList.stream().map(SysRoleVo::getName).collect(Collectors.toList()));
+ }
+ if (StringUtils.isNotBlank(roles)) {
+ if (roles.contains("分公司配件主管")) {
+ isZG = true;
+ }
+ }
+ }
+ }
+ variables.put("discount", discount);
+ variables.put("isSecond", isSecond);
+ variables.put("isZhan", isZhan);
+ variables.put("isZG", isZG);
+ variables.put("price", price);
+ variables.put("chengben", chengben);
+ FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery();
+ if (StringUtils.isBlank(settelApply.getProcDefId())) {
+ flowProcessMapQuery.setProDefKey(bv.getModelId());
+ } else {
+ flowProcessMapQuery.setProDefKey(settelApply.getProcDefId());
+ }
+ flowProcessMapQuery.setVariables(variables);
+ variables = flowableFeign.getMap(flowProcessMapQuery).getData();
+ //=======================================
+ bv.setFormVariables(variables);
+ SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(settelApply.getDeptSid()).getData();
+ bv.setOrgSidPath(deptVo.getOrgSidPath());
+ if (bv.getTaskId().equals(settelApply.getTaskId())) {
+ ResultBean resultBean = flowFeign.handleProsess(bv);
+ if (!resultBean.getSuccess()) {
+ return rb.setMsg(resultBean.getMsg());
+ }
+ UpdateFlowFieldVo ufVo = resultBean.getData();
+ updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
+ if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
+ smsSettleComplete(businessSid);
+ } else {
+ //极光推送
+ settelApply = fetchBySid(businessSid);
+ MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
+ MessageFlowVo messageFlowVo = new MessageFlowVo();
+ BeanUtil.copyProperties(ufVo, messageFlowVo);
+ ufVo.setProcDefId(settelApply.getProcDefId());
+ ufVo.setProcInsId(settelApply.getProcInstId());
+ messageFlowableQuery.setUfVo(messageFlowVo);
+ messageFlowableQuery.setAppMap(appMap);
+ messageFlowableQuery.setBusinessSid(businessSid);
+ messageFlowableQuery.setModuleName("结算申请");
+ messageFlowableQuery.setMsgContent(settelApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
+ messageFlowableQuery.setMsgTitle("结算申请");
+ messageFeign.pushMessage(messageFlowableQuery);
+ }
+ return rb.success().setData(resultBean.getData());
+ } else {
+ return rb.setMsg("操作失败!提交的数据不一致");
+ }
+ }
+
+ public ResultBean> getPreviousNodesForRejectSales(SettleNodeQuery query) {
+ ResultBean> rb = ResultBean.fireFail();
+ BusinessVariables bv = new BusinessVariables();
+ BeanUtil.copyProperties(query, bv);
+ String businessSid = query.getBusinessSid();
+ boolean discount = false; //是否低于销售价X折或低于优惠金额X元
+ boolean isSecond = false; //是否为自有二级站
+ boolean isZhan = false; //是否为自有二级站长
+ boolean isZG = false; //是否为前台主管
+ boolean price = false; //是否低于销售价X折
+ boolean chengben = false; //是否低于成本价
+ AsBillSettelApplyDetailsVo vo = fetchDetailsVoBySid(businessSid);
+ AsBillSettelApply settelApply = fetchBySid(businessSid);
+ if (null != vo) {
+ List goodsDetailsVos = vo.getGoodsDetailsVos();
+ if (!goodsDetailsVos.isEmpty()) {
+ for (SettleGoodsDetailsVo s : goodsDetailsVos) {
+ String discountC = "0";
+ String discountAmountC = "0";
+ BigDecimal amount = BigDecimal.ZERO;
+ BigDecimal cost = BigDecimal.ZERO;
+ if (StringUtils.isNotBlank(s.getDiscount())) {
+ discountC = s.getDiscount();
+ }
+ if (StringUtils.isNotBlank(s.getDiscountAmount())) {
+ discountAmountC = s.getDiscountAmount();
+ }
+ if (StringUtils.isNotBlank(s.getGoodsSettleAmount())) {
+ amount = new BigDecimal(s.getGoodsSettleAmount());
+ }
+ if (StringUtils.isNotBlank(s.getGoodsCost())) {
+ cost = new BigDecimal(s.getGoodsCost());
+ }
+ SysFlowNodeQuery flowNodeQuery = new SysFlowNodeQuery();
+ flowNodeQuery.setType(0);
+ flowNodeQuery.setFlowName("商品配件销售结算申请");
+ flowNodeQuery.setCreateOrgName(vo.getUseOrgName());
+ flowNodeQuery.setProcDefId(settelApply.getProcDefId());
+ flowNodeQuery.setNodeNames("配件主管审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f1 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("配件主管审批");
+ flowNodeQuery.setParameter("优惠金额");
+ flowNodeQuery.setValue(discountAmountC);
+ boolean f2 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("自有二级站长审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f3 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("自有二级站长审批");
+ flowNodeQuery.setParameter("优惠金额");
+ flowNodeQuery.setValue(discountAmountC);
+ boolean f4 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ if (f1 || f2 || f3 || f4) {
+ discount = true;
+ }
+ flowNodeQuery.setNodeNames("站长审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f5 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ if (f5) {
+ price = true;
+ }
+ if (amount.compareTo(cost) < 0) {
+ chengben = true;
+ }
+ }
+ }
+ }
+ SysOrganizationVo data = sysOrganizationFeign.fetchBySid(settelApply.getDeptSid()).getData();
+ if (data != null) {
+ String orgAttributeValue = data.getOrgAttributeValue();
+ if (orgAttributeValue.equals("自有二级服务站")) {
+ isSecond = true;
+ String roles = "";
+ //根据当前用户sid查询用户角色
+ List roleVoList = sysRoleFeign.fetchByUserSid(settelApply.getCreateBySid()).getData();
+ roleVoList.removeAll(Collections.singleton(null));
+ if (!roleVoList.isEmpty()) {
+ roles = String.join("+", roleVoList.stream().map(SysRoleVo::getName).collect(Collectors.toList()));
+ }
+ if (StringUtils.isNotBlank(roles)) {
+ if (roles.contains("分公司自有二级站站长")) {
+ isZhan = true;
+ }
+ }
+ } else {
+ String roles = "";
+ //根据当前用户sid查询用户角色
+ List roleVoList = sysRoleFeign.fetchByUserSid(settelApply.getCreateBySid()).getData();
+ roleVoList.removeAll(Collections.singleton(null));
+ if (!roleVoList.isEmpty()) {
+ roles = String.join("+", roleVoList.stream().map(SysRoleVo::getName).collect(Collectors.toList()));
+ }
+ if (StringUtils.isNotBlank(roles)) {
+ if (roles.contains("分公司配件主管")) {
+ isZG = true;
+ }
+ }
+ }
+ }
+ Map variables = new HashMap<>();
+ variables.put("discount", discount);
+ variables.put("isSecond", isSecond);
+ variables.put("isZhan", isZhan);
+ variables.put("isZG", isZG);
+ variables.put("price", price);
+ variables.put("chengben", chengben);
+ bv.setFormVariables(variables);
+ bv.setModelId(ProcDefEnum.BILLSETTLEAPPLY.getProDefId());
+ ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
+ //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
+ List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SettleNodeVo.class)).collect(Collectors.toList());
+ return rb.success().setData(voList);
+ }
+
+ public ResultBean> getNextNodesForSubmitSales(SettleNodeQuery query) {
+ ResultBean> rb = ResultBean.fireFail();
+ BusinessVariables bv = new BusinessVariables();
+ BeanUtil.copyProperties(query, bv);
+ String businessSid = query.getBusinessSid();
+ boolean discount = false; //是否低于销售价X折或低于优惠金额X元
+ boolean isSecond = false; //是否为自有二级站
+ boolean isZhan = false; //是否为自有二级站长
+ boolean isZG = false; //是否为前台主管
+ boolean price = false; //是否低于销售价X折
+ boolean chengben = false; //是否低于成本价
+ AsBillSettelApplyDetailsVo vo = fetchDetailsVoBySid(businessSid);
+ AsBillSettelApply settelApply = fetchBySid(businessSid);
+ if (null != vo) {
+ List goodsDetailsVos = vo.getGoodsDetailsVos();
+ if (!goodsDetailsVos.isEmpty()) {
+ for (SettleGoodsDetailsVo s : goodsDetailsVos) {
+ String discountC = "0";
+ String discountAmountC = "0";
+ BigDecimal amount = BigDecimal.ZERO;
+ BigDecimal cost = BigDecimal.ZERO;
+ if (StringUtils.isNotBlank(s.getDiscount())) {
+ discountC = s.getDiscount();
+ }
+ if (StringUtils.isNotBlank(s.getDiscountAmount())) {
+ discountAmountC = s.getDiscountAmount();
+ }
+ if (StringUtils.isNotBlank(s.getGoodsSettleAmount())) {
+ amount = new BigDecimal(s.getGoodsSettleAmount());
+ }
+ if (StringUtils.isNotBlank(s.getGoodsCost())) {
+ cost = new BigDecimal(s.getGoodsCost());
+ }
+ SysFlowNodeQuery flowNodeQuery = new SysFlowNodeQuery();
+ flowNodeQuery.setType(0);
+ flowNodeQuery.setFlowName("商品配件销售结算申请");
+ flowNodeQuery.setCreateOrgName(vo.getUseOrgName());
+ flowNodeQuery.setProcDefId(settelApply.getProcDefId());
+ flowNodeQuery.setNodeNames("配件主管审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f1 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("配件主管审批");
+ flowNodeQuery.setParameter("优惠金额");
+ flowNodeQuery.setValue(discountAmountC);
+ boolean f2 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("自有二级站长审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f3 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("自有二级站长审批");
+ flowNodeQuery.setParameter("优惠金额");
+ flowNodeQuery.setValue(discountAmountC);
+ boolean f4 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ if (f1 || f2 || f3 || f4) {
+ discount = true;
+ }
+ flowNodeQuery.setNodeNames("站长审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f5 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ if (f5) {
+ price = true;
+ }
+ if (amount.compareTo(cost) < 0) {
+ chengben = true;
+ }
+ }
+ }
+ }
+ SysOrganizationVo data = sysOrganizationFeign.fetchBySid(settelApply.getDeptSid()).getData();
+ if (data != null) {
+ String orgAttributeValue = data.getOrgAttributeValue();
+ if (orgAttributeValue.equals("自有二级服务站")) {
+ isSecond = true;
+ String roles = "";
+ //根据当前用户sid查询用户角色
+ List roleVoList = sysRoleFeign.fetchByUserSid(settelApply.getCreateBySid()).getData();
+ roleVoList.removeAll(Collections.singleton(null));
+ if (!roleVoList.isEmpty()) {
+ roles = String.join("+", roleVoList.stream().map(SysRoleVo::getName).collect(Collectors.toList()));
+ }
+ if (StringUtils.isNotBlank(roles)) {
+ if (roles.contains("分公司自有二级站站长")) {
+ isZhan = true;
+ }
+ }
+ } else {
+ String roles = "";
+ //根据当前用户sid查询用户角色
+ List roleVoList = sysRoleFeign.fetchByUserSid(settelApply.getCreateBySid()).getData();
+ roleVoList.removeAll(Collections.singleton(null));
+ if (!roleVoList.isEmpty()) {
+ roles = String.join("+", roleVoList.stream().map(SysRoleVo::getName).collect(Collectors.toList()));
+ }
+ if (StringUtils.isNotBlank(roles)) {
+ if (roles.contains("分公司配件主管")) {
+ isZG = true;
+ }
+ }
+ }
+ }
+ Map variables = new HashMap<>();
+ variables.put("discount", discount);
+ variables.put("isSecond", isSecond);
+ variables.put("isZhan", isZhan);
+ variables.put("isZG", isZG);
+ variables.put("price", price);
+ variables.put("chengben", chengben);
+ bv.setFormVariables(variables);
+ bv.setModelId(ProcDefEnum.BILLSETTLEAPPLY.getProDefId());
+ ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
+ //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
+ List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SettleNodeVo.class)).collect(Collectors.toList());
+ return rb.success().setData(voList);
+ }
+
+ public ResultBean rejectSales(SettleTaskQuery query) {
+ ResultBean rb = ResultBean.fireFail();
+ String businessSid = query.getBusinessSid();
+ AsBillSettelApply settelApply = fetchBySid(businessSid);
+ if (settelApply == null) {
+ return rb.setMsg("该申请不存在");
+ }
+ String businessTaskId = settelApply.getTaskId();
+ if (StringUtils.isNotBlank(businessTaskId)) {
+ if (businessTaskId.equals(query.getTaskId())) {
+ if (StringUtils.isBlank(query.getComment())) {
+ return rb.setMsg("请填写意见");
+ }
+ if (StringUtils.isBlank(query.getUserSid())) {
+ return rb.setMsg("参数错误:userSid");
+ }
+ FlowTaskVo flowTaskVo = new FlowTaskVo();
+ BeanUtil.copyProperties(query, flowTaskVo);
+ Map variables = new HashMap<>();
+ Map appMap = new HashMap<>();
+ appMap.put("sid", businessSid);
+ variables.put("app", appMap);
+ boolean discount = false; //是否低于销售价X折或低于优惠金额X元
+ boolean isSecond = false; //是否为自有二级站
+ boolean isZhan = false; //是否为自有二级站长
+ boolean isZG = false; //是否为前台主管
+ boolean price = false; //是否低于销售价X折
+ boolean chengben = false; //是否低于成本价
+ AsBillSettelApplyDetailsVo vo = fetchDetailsVoBySid(businessSid);
+ if (null != vo) {
+ List goodsDetailsVos = vo.getGoodsDetailsVos();
+ if (!goodsDetailsVos.isEmpty()) {
+ for (SettleGoodsDetailsVo s : goodsDetailsVos) {
+ String discountC = "0";
+ String discountAmountC = "0";
+ BigDecimal amount = BigDecimal.ZERO;
+ BigDecimal cost = BigDecimal.ZERO;
+ if (StringUtils.isNotBlank(s.getDiscount())) {
+ discountC = s.getDiscount();
+ }
+ if (StringUtils.isNotBlank(s.getDiscountAmount())) {
+ discountAmountC = s.getDiscountAmount();
+ }
+ if (StringUtils.isNotBlank(s.getGoodsSettleAmount())) {
+ amount = new BigDecimal(s.getGoodsSettleAmount());
+ }
+ if (StringUtils.isNotBlank(s.getGoodsCost())) {
+ cost = new BigDecimal(s.getGoodsCost());
+ }
+ SysFlowNodeQuery flowNodeQuery = new SysFlowNodeQuery();
+ flowNodeQuery.setType(0);
+ flowNodeQuery.setFlowName("商品配件销售结算申请");
+ flowNodeQuery.setCreateOrgName(vo.getUseOrgName());
+ flowNodeQuery.setProcDefId(settelApply.getProcDefId());
+ flowNodeQuery.setNodeNames("配件主管审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f1 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("配件主管审批");
+ flowNodeQuery.setParameter("优惠金额");
+ flowNodeQuery.setValue(discountAmountC);
+ boolean f2 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("自有二级站长审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f3 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ flowNodeQuery.setNodeNames("自有二级站长审批");
+ flowNodeQuery.setParameter("优惠金额");
+ flowNodeQuery.setValue(discountAmountC);
+ boolean f4 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ if (f1 || f2 || f3 || f4) {
+ discount = true;
+ }
+ flowNodeQuery.setNodeNames("站长审批");
+ flowNodeQuery.setParameter("销售价折扣");
+ flowNodeQuery.setValue(discountC);
+ boolean f5 = sysFlowPowerFeign.flowPermissions(flowNodeQuery);
+ if (f5) {
+ price = true;
+ }
+ if (amount.compareTo(cost) < 0) {
+ chengben = true;
+ }
+ }
+ }
+ }
+ SysOrganizationVo data = sysOrganizationFeign.fetchBySid(settelApply.getDeptSid()).getData();
+ if (data != null) {
+ String orgAttributeValue = data.getOrgAttributeValue();
+ if (orgAttributeValue.equals("自有二级服务站")) {
+ isSecond = true;
+ String roles = "";
+ //根据当前用户sid查询用户角色
+ List roleVoList = sysRoleFeign.fetchByUserSid(settelApply.getCreateBySid()).getData();
+ roleVoList.removeAll(Collections.singleton(null));
+ if (!roleVoList.isEmpty()) {
+ roles = String.join("+", roleVoList.stream().map(SysRoleVo::getName).collect(Collectors.toList()));
+ }
+ if (StringUtils.isNotBlank(roles)) {
+ if (roles.contains("分公司自有二级站站长")) {
+ isZhan = true;
+ }
+ }
+ } else {
+ String roles = "";
+ //根据当前用户sid查询用户角色
+ List roleVoList = sysRoleFeign.fetchByUserSid(settelApply.getCreateBySid()).getData();
+ roleVoList.removeAll(Collections.singleton(null));
+ if (!roleVoList.isEmpty()) {
+ roles = String.join("+", roleVoList.stream().map(SysRoleVo::getName).collect(Collectors.toList()));
+ }
+ if (StringUtils.isNotBlank(roles)) {
+ if (roles.contains("分公司配件主管")) {
+ isZG = true;
+ }
+ }
+ }
+ }
+ variables.put("discount", discount);
+ variables.put("isSecond", isSecond);
+ variables.put("isZhan", isZhan);
+ variables.put("isZG", isZG);
+ variables.put("price", price);
+ variables.put("chengben", chengben);
+ flowTaskVo.setValues(variables);
+ ResultBean resultBean = flowableFeign.taskReject(flowTaskVo);
+ if (!resultBean.getSuccess()) {
+ return rb.setMsg(resultBean.getMsg());
+ }
+ UpdateFlowFieldVo ufVo = resultBean.getData();
+ Map map = BeanUtil.beanToMap(ufVo);
+ //更新业务中的流程相关的参数
+ updateFlowFiled(map);
+ //极光推送
+ settelApply = fetchBySid(businessSid);
+ MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
+ MessageFlowVo messageFlowVo = new MessageFlowVo();
+ BeanUtil.copyProperties(ufVo, messageFlowVo);
+ String procId = settelApply.getProcInstId();
+ ufVo.setProcInsId(procId);
+ ufVo.setProcDefId(settelApply.getProcDefId());
+ messageFlowableQuery.setUfVo(messageFlowVo);
+ messageFlowableQuery.setAppMap(appMap);
+ messageFlowableQuery.setBusinessSid(businessSid);
+ messageFlowableQuery.setModuleName("结算申请");
+ ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId);
+ String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
+ List receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
+ if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(settelApply.getCreateBySid())) {
+ messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
+ } else {
+ messageFlowableQuery.setMsgContent(settelApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
+ }
+ messageFlowableQuery.setMsgTitle("结算申请");
+ messageFeign.pushMessage(messageFlowableQuery);
+ return rb.success();
+ }
+ }
+ return rb.setMsg("操作失败!提交的数据不一致!");
+ }
+
+ public ResultBean revokeProcessSales(SettleTaskQuery query) {
+ ResultBean rb = ResultBean.fireFail();
+ if (StringUtils.isBlank(query.getUserSid())) {
+ return rb.setMsg("参数错误:userSid");
+ }
+ AsBillSettelApply settelApply = fetchBySid(query.getBusinessSid());
+ String businessTaskId = settelApply.getTaskId();
+ if (StringUtils.isNotBlank(businessTaskId)) {
+ if (businessTaskId.equals(query.getTaskId())) {
+ FlowTaskVo flowTaskVo = new FlowTaskVo();
+ BeanUtil.copyProperties(query, flowTaskVo);
+ ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo);
+ if (!resultBean.getSuccess()) {
+ return rb.setMsg(resultBean.getMsg());
+ }
+ updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
+ return rb.success().setData(resultBean.getData());
+ }
+ }
+ return rb.setMsg("操作失败,提交的数据不一致!");
+ }
+
+ public ResultBean breakProcessSales(SettleTaskQuery query) {
+ ResultBean rb = ResultBean.fireFail();
+ if (StringUtils.isBlank(query.getInstanceId())) {
+ return rb.setMsg("参数错误:instanceId");
+ }
+ if (StringUtils.isBlank(query.getUserSid())) {
+ return rb.setMsg("参数错误:userSid");
+ }
+ if (StringUtils.isBlank(query.getComment())) {
+ return rb.setMsg("请填写意见");
+ }
+ AsBillSettelApply settelApply = fetchBySid(query.getBusinessSid());
+ String businessTaskId = settelApply.getTaskId();
+ if (StringUtils.isNotBlank(businessTaskId)) {
+ if (query.getUserSid().equals(settelApply.getCreateBySid())) {
+ FlowTaskVo flowTaskVo = new FlowTaskVo();
+ BeanUtil.copyProperties(query, flowTaskVo);
+ ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo);
+ if (!resultBean.getSuccess()) {
+ return rb.setMsg(resultBean.getMsg());
+ }
+ Map map = BeanUtil.beanToMap(resultBean.getData());
+ updateFlowFiled(map);
+ return rb.success().setData(resultBean.getData());
+ } else {
+ if (businessTaskId.equals(query.getTaskId())) {
+ FlowTaskVo flowTaskVo = new FlowTaskVo();
+ BeanUtil.copyProperties(query, flowTaskVo);
+ ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo);
+ if (!resultBean.getSuccess()) {
+ return rb.setMsg(resultBean.getMsg());
+ }
+ Map map = BeanUtil.beanToMap(resultBean.getData());
+ updateFlowFiled(map);
+ return rb.success().setData(resultBean.getData());
+ }
+ }
+
+ }
+ return rb.setMsg("操作失败!提交的数据不一致!");
+ }
+
+ public ResultBean delegateProcessSales(SettleDelegateQuery query) {
+ ResultBean rb = ResultBean.fireFail();
+ FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
+ BeanUtil.copyProperties(query, delegateQuery);
+ flowFeign.delegate(delegateQuery);
+ return rb.success();
+ }
+
+ public void smsSettleComplete(String sid) {
+ AsBillSettelApply asBillSettelApply = fetchBySid(sid);
+ asBillSettelApply.setCloseDate(new Date());
+ asBillSettelApply.setNodeState("已办结");
+ baseMapper.updateById(asBillSettelApply);
+ SmsSalesBillDetailsVo data = smsSalesBillFeign.fetchDetailsBySid(asBillSettelApply.getSourceSid()).getData();
+ if (null != asBillSettelApply.getGoodsAmount()) {
+ if (asBillSettelApply.getGoodsAmount().compareTo(BigDecimal.ZERO) > 0) {
+ FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
+ finUncollectedReceivablesDetailedDto.setCreateByName(data.getCreateByName());
+ finUncollectedReceivablesDetailedDto.setCreateBySid(data.getCreateBySid());
+ finUncollectedReceivablesDetailedDto.setCustomerSid(data.getCustomerSid());
+ finUncollectedReceivablesDetailedDto.setCustomerName(data.getCustomerName());
+ finUncollectedReceivablesDetailedDto.setContractSid(data.getSid());
+ finUncollectedReceivablesDetailedDto.setContractNo(data.getBillNo());
+ finUncollectedReceivablesDetailedDto.setVIN(data.getVinNo());
+ finUncollectedReceivablesDetailedDto.setStaffDeptSid(data.getDeptSid());
+ finUncollectedReceivablesDetailedDto.setStaffDeptName(data.getDeptName());
+ finUncollectedReceivablesDetailedDto.setCustomerPhone(data.getMobile());
+ finUncollectedReceivablesDetailedDto.setUseOrgSid(data.getUseOrgSid());
+ SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(data.getDeptSid()).getData();
+ if (null != organizationVo) {
+ finUncollectedReceivablesDetailedDto.setOrgSidPath(organizationVo.getOrgSidPath());
+ }
+ finUncollectedReceivablesDetailedDto.setReceivablesName("材料费");
+ finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((asBillSettelApply.getGoodsAmount()).toString());
+ finUncollectedReceivablesDetailedDto.setReveivableMoney((asBillSettelApply.getGoodsAmount()).toString());
+ finUncollectedReceivablesDetailedDto.setUseOrgName(asBillSettelApply.getUseOrgName());
+ finUncollectedReceivablesDetailedDto.setKxState("01");
+ finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
+ }
+ }
+ if (null != asBillSettelApply.getAddAmount()) {
+ if (asBillSettelApply.getAddAmount().compareTo(BigDecimal.ZERO) > 0) {
+ FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
+ finUncollectedReceivablesDetailedDto.setCreateByName(data.getCreateByName());
+ finUncollectedReceivablesDetailedDto.setCreateBySid(data.getCreateBySid());
+ finUncollectedReceivablesDetailedDto.setCustomerSid(data.getCustomerSid());
+ finUncollectedReceivablesDetailedDto.setCustomerName(data.getCustomerName());
+ finUncollectedReceivablesDetailedDto.setContractSid(data.getSid());
+ finUncollectedReceivablesDetailedDto.setContractNo(data.getBillNo());
+ finUncollectedReceivablesDetailedDto.setVIN(data.getVinNo());
+ finUncollectedReceivablesDetailedDto.setStaffDeptSid(data.getDeptSid());
+ finUncollectedReceivablesDetailedDto.setStaffDeptName(data.getDeptName());
+ finUncollectedReceivablesDetailedDto.setCustomerPhone(data.getMobile());
+ finUncollectedReceivablesDetailedDto.setUseOrgSid(data.getUseOrgSid());
+ SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(data.getDeptSid()).getData();
+ if (null != organizationVo) {
+ finUncollectedReceivablesDetailedDto.setOrgSidPath(organizationVo.getOrgSidPath());
+ }
+ finUncollectedReceivablesDetailedDto.setReceivablesName("其他费用");
+ finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((asBillSettelApply.getAddAmount()).toString());
+ finUncollectedReceivablesDetailedDto.setReveivableMoney((asBillSettelApply.getAddAmount()).toString());
+ finUncollectedReceivablesDetailedDto.setUseOrgName(asBillSettelApply.getUseOrgName());
+ finUncollectedReceivablesDetailedDto.setKxState("01");
+ finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
+ }
+ }
+ SmsCompleteDto smsCompleteDto = new SmsCompleteDto();
+ smsCompleteDto.setSid(asBillSettelApply.getSourceSid());
+ smsCompleteDto.setSettleAmount(asBillSettelApply.getSettleAmount());
+ smsSalesBillFeign.smsBillSettle(smsCompleteDto);
+ }
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
index 92ff7c5e87..d7ae07c44e 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
@@ -751,6 +751,15 @@ public class AsBusrepairBillService extends MybatisBaseService map);
+
+ IPage busrepairListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw);
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleMapper.xml b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleMapper.xml
index 0e60b6e654..ebf0a441f1 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleMapper.xml
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleMapper.xml
@@ -75,4 +75,23 @@
AND `nodeState` != '发起申请'
AND `nodeState` != '终止'
+
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleRest.java
index 7aaa663b29..825420f4c8 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleRest.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleRest.java
@@ -26,6 +26,7 @@
package com.yxt.anrui.as.biz.asbusrepairbillreversesettle;
import cn.hutool.core.bean.BeanUtil;
+import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyDetailsVo;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.AppSettleDelegateQuery;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.AppSettleTaskQuery;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.CompleteSettleDto;
@@ -79,6 +80,15 @@ public class AsBusrepairBillReverseSettleRest{
}
+ @ApiOperation("选择维修单列表")
+ @PostMapping("/busrepairListPage")
+ public ResultBean> busrepairListPage(@RequestBody PagerQuery pq){
+ ResultBean rb = ResultBean.fireFail();
+ PagerVo pv = asBusrepairBillReverseSettleService.busrepairListPage(pq);
+ return rb.success().setData(pv);
+ }
+
+
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody AsBusrepairBillReverseSettleDto dto){
@@ -89,7 +99,7 @@ public class AsBusrepairBillReverseSettleRest{
@ApiOperation("新增或修改")
@PostMapping("/saveReverseSettle")
- public ResultBean saveReverseSettle(@RequestBody AsBusrepairBillReverseSettleDto dto){
+ public ResultBean saveReverseSettle(@RequestBody AsBillSettelApplyDetailsVo dto){
ResultBean rb = ResultBean.fireFail();
String sid = asBusrepairBillReverseSettleService.saveReverseSettle(dto);
return rb.success().setData(sid);
@@ -105,17 +115,17 @@ public class AsBusrepairBillReverseSettleRest{
@ApiOperation("新增初始化")
@PostMapping("/reverseSettleInit")
- public ResultBean reverseSettleInit(@RequestBody ReverseSettleInitQuery query){
+ public ResultBean reverseSettleInit(@RequestBody ReverseSettleInitQuery query){
ResultBean rb = ResultBean.fireFail();
- AsBusrepairBillReverseSettleDetailsVo vo = asBusrepairBillReverseSettleService.reverseSettleInit(query);
+ AsBillSettelApplyDetailsVo vo = asBusrepairBillReverseSettleService.reverseSettleInit(query);
return rb.success().setData(vo);
}
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
- public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){
+ public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
- AsBusrepairBillReverseSettleDetailsVo vo = asBusrepairBillReverseSettleService.fetchDetailsVoBySid(sid);
+ AsBillSettelApplyDetailsVo vo = asBusrepairBillReverseSettleService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@@ -175,9 +185,9 @@ public class AsBusrepairBillReverseSettleRest{
// ----------------------------------app------------------------------------------------
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid2/{sid}")
- public ResultBean fetchDetailsBySid2(@PathVariable("sid") String sid){
+ public ResultBean fetchDetailsBySid2(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
- AsBusrepairBillReverseSettleDetailsVo vo = asBusrepairBillReverseSettleService.fetchDetailsVoBySid(sid);
+ AsBillSettelApplyDetailsVo vo = asBusrepairBillReverseSettleService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleService.java
index 51285344d1..4967d27a17 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleService.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleService.java
@@ -31,21 +31,33 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yxt.anrui.as.api.asbillsettelapply.*;
import com.yxt.anrui.as.api.asbillsettelapply.flow.*;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.AppSettleDelegateQuery;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.AppSettleTaskQuery;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.CompleteSettleDto;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.SettleFlowableQuery;
+import com.yxt.anrui.as.api.asbillsettelapplyaitem.AsBillSettelApplyAitem;
+import com.yxt.anrui.as.api.asbillsettelapplyaitemspec.AsBillSettelApplyAitemspec;
+import com.yxt.anrui.as.api.asbillsettelapplydetail.AsBillSettelApplyDetail;
+import com.yxt.anrui.as.api.asbillsettelapplysitem.AsBillSettelApplySitem;
import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApply;
import com.yxt.anrui.as.api.asbusrepairbill.*;
import com.yxt.anrui.as.api.asbusrepairbillnode.AsBusrepairBillNode;
import com.yxt.anrui.as.api.asbusrepairbillreversesettle.*;
import com.yxt.anrui.as.api.asbusrepairbillreversesettle.flowable.*;
+import com.yxt.anrui.as.api.asserviceattachitem.AsServiceAttachItem;
import com.yxt.anrui.as.api.enums.AsBillTypeEnum;
import com.yxt.anrui.as.api.utils.AsRule;
+import com.yxt.anrui.as.api.utils.FileUrlQuery;
import com.yxt.anrui.as.api.utils.domain.AsBillNo;
+import com.yxt.anrui.as.biz.asbillsettelapplyaitem.AsBillSettelApplyAitemService;
+import com.yxt.anrui.as.biz.asbillsettelapplyaitemspec.AsBillSettelApplyAitemSpecService;
+import com.yxt.anrui.as.biz.asbillsettelapplydetail.AsBillSettelApplyDetailService;
+import com.yxt.anrui.as.biz.asbillsettelapplysitem.AsBillSettelApplySitemService;
import com.yxt.anrui.as.biz.asbusrepairbill.AsBusrepairBillService;
import com.yxt.anrui.as.biz.asbusrepairbillnode.AsBusrepairBillNodeService;
+import com.yxt.anrui.as.biz.asserviceattachitem.AsServiceAttachItemService;
import com.yxt.anrui.as.feign.flowable.flow.*;
import com.yxt.anrui.as.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.anrui.as.feign.flowable.flow2.FlowFeign;
@@ -56,6 +68,7 @@ import com.yxt.anrui.as.feign.message.MessageFeign;
import com.yxt.anrui.as.feign.message.MessageFlowVo;
import com.yxt.anrui.as.feign.message.MessageFlowableQuery;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
+import com.yxt.anrui.as.feign.portal.privilege.PrivilegeVo;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrg;
@@ -63,6 +76,12 @@ import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserVo;
import com.yxt.anrui.as.feign.portal.sysuserrole.SysUserRoleFeign;
+import com.yxt.anrui.as.feign.sms.smssalesbill.SalesGoodsVo;
+import com.yxt.anrui.as.feign.sms.smssalesbill.SalesInvoiceVo;
+import com.yxt.anrui.as.feign.sms.smssalesbill.SmsAttachitemVo;
+import com.yxt.anrui.as.feign.sms.smssalesbill.SmsSalesBillDetailsVo;
+import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventory;
+import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventoryFeign;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@@ -73,6 +92,7 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -91,6 +111,19 @@ import java.util.stream.Collectors;
*/
@Service
public class AsBusrepairBillReverseSettleService extends MybatisBaseService {
+
+ @Autowired
+ private AsBillSettelApplyAitemService asBillSettelApplyAitemService;
+ @Autowired
+ private AsBillSettelApplyAitemSpecService asBillSettelApplyAitemSpecService;
+ @Autowired
+ private AsBillSettelApplySitemService asBillSettelApplySitemService;
+ @Autowired
+ private AsBillSettelApplyDetailService asBillSettelApplyDetailService;
+ @Autowired
+ private AsServiceAttachItemService asServiceAttachItemService;
+ @Autowired
+ private WmsInventoryFeign wmsInventoryFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
@@ -231,101 +264,407 @@ public class AsBusrepairBillReverseSettleService extends MybatisBaseService fileName = data.getFileName();
+ if (!fileName.isEmpty()) {
+ vo.setFileName(fileName);
+ List files = new ArrayList<>();
+ for (FileUrlQuery fileUrlQuery : fileName) {
+ files.add(fileUrlQuery.getUrl());
+ }
+ vo.setFileName2(files);
}
- if (StringUtils.isNotBlank(bill.getWaitorName())) {
- vo.setWaitorName(bill.getWaitorName());
+ List aitemVos = new ArrayList<>();
+ List goodsDetailsVos = new ArrayList<>();
+ List sitemVos = new ArrayList<>();
+ List applyAitems = asBillSettelApplyAitemService.fetchByBillSid(sid);
+ if (!applyAitems.isEmpty() && applyAitems.size() > 0) {
+ for (AsBillSettelApplyAitem c : applyAitems) {
+ SettleAitemVo e = new SettleAitemVo();
+ BeanUtil.copyProperties(c, e);
+ aitemVos.add(e);
+ }
+ vo.setAitemVos(aitemVos);
}
- if (StringUtils.isNotBlank(bill.getBillType())) {
- vo.setBillType(bill.getBillType());
+ List sitems = asBillSettelApplySitemService.fetchByBillSid(sid);
+ if (!sitems.isEmpty() && sitems.size() > 0) {
+ for (AsBillSettelApplySitem c : sitems) {
+ SettleSitemVo e = new SettleSitemVo();
+ BeanUtil.copyProperties(c, e);
+ sitemVos.add(e);
+ }
+ vo.setSitemVos(sitemVos);
}
- if (StringUtils.isNotBlank(bill.getSubject())) {
- vo.setSubject(bill.getSubject());
+ List goods = asBillSettelApplyDetailService.fetchByBillSid(sid);
+ if (!goods.isEmpty() && goods.size() > 0) {
+ for (AsBillSettelApplyDetail c : goods) {
+ SettleGoodsDetailsVo e = new SettleGoodsDetailsVo();
+ BeanUtil.copyProperties(c, e);
+ goodsDetailsVos.add(e);
+ }
+ vo.setGoodsDetailsVos(goodsDetailsVos);
}
- if (null != bill.getSettleVo()) {
- SettleVo settleVo = bill.getSettleVo();
- if (StringUtils.isNotBlank(settleVo.getSettleTime())) {
- vo.setSettleDate(settleVo.getSettleTime());
+ List specs = asBillSettelApplyAitemSpecService.fetchByBillSid(sid);
+ if (!specs.isEmpty() && specs.size() > 0) {
+ for (AsBillSettelApplyAitemspec c : specs) {
+ if (c.getAttachItem().equals("外出费")) {
+ if (null != c.getPrice()) {
+ vo.setOutAmount(c.getPrice().toString());
+ }
+ if (StringUtils.isNotBlank(c.getRemarks())) {
+ vo.setOutRemarks(c.getRemarks());
+ }
+ if (null != c.getCostTotal()) {
+ vo.setOutCost(c.getCostTotal().toString());
+ }
+ if (null != c.getTaxPrice()) {
+ vo.setOutKPAmount(c.getTaxPrice().toString());
+ }
+ if (null != c.getPrint()) {
+ vo.setOutPrint(c.getPrint().toString());
+ }
+ }
+ if (c.getAttachItem().equals("厂家补助")) {
+ if (null != c.getPrice()) {
+ vo.setSubsidyAmount(c.getPrice().toString());
+ }
+ if (StringUtils.isNotBlank(c.getRemarks())) {
+ vo.setSubsidyRemarks(c.getRemarks());
+ }
+ if (null != c.getCostTotal()) {
+ vo.setSubsidyCost(c.getCostTotal().toString());
+ }
+ if (null != c.getTaxPrice()) {
+ vo.setSubsidyKPAmount(c.getTaxPrice().toString());
+ }
+ if (null != c.getPrint()) {
+ vo.setSubsidyPrint(c.getPrint().toString());
+ }
+ }
+ if (c.getAttachItem().equals("施救费")) {
+ if (null != c.getPrice()) {
+ vo.setRescueAmount(c.getPrice().toString());
+ }
+ if (StringUtils.isNotBlank(c.getRemarks())) {
+ vo.setRescueRemarks(c.getRemarks());
+ }
+ if (null != c.getCostTotal()) {
+ vo.setRescueCost(c.getCostTotal().toString());
+ }
+ if (null != c.getTaxPrice()) {
+ vo.setRescueKPAmount(c.getTaxPrice().toString());
+ }
+ if (null != c.getPrint()) {
+ vo.setRescuePrint(c.getPrint().toString());
+ }
+ }
}
}
- if (StringUtils.isNotBlank(bill.getCustomerName())) {
- vo.setCustomerName(bill.getCustomerName());
+ }
+
+ }
+
+ return vo;
+ }
+
+ public AsBillSettelApplyDetailsVo reverseSettleInit(ReverseSettleInitQuery query) {
+ AsBillSettelApplyDetailsVo vo = new AsBillSettelApplyDetailsVo();
+ AsBusrepairBillDetailsVo data = asBusrepairBillService.fetchDetailsBySid(query.getSid()).getData();
+ if (null != data) {
+ vo.setSourceSid(data.getSid());
+ vo.setCustomerSid(data.getCustomerSid());
+ vo.setCustomerName(data.getCustomerName());
+ vo.setSourceBillNo(data.getBillNo());
+ vo.setSourceBillDate(data.getCreateDate());
+ if (StringUtils.isNotBlank(data.getWaitorName())) {
+ vo.setWaitorName(data.getWaitorName());
+ }
+ vo.setBillType(data.getBillType());
+ vo.setSubject(data.getSubject());
+ vo.setIsGoOut(data.getIsGoOut());
+ vo.setIsGoOut2(data.getIsGoOut2());
+ BigDecimal yingshouZ = BigDecimal.ZERO;
+ BigDecimal youhuiZ = BigDecimal.ZERO;
+ if (StringUtils.isNotBlank(data.getDiscountAmount())) {
+ vo.setDiscountAmount(data.getDiscountAmount());
+ youhuiZ = new BigDecimal(data.getDiscountAmount());
+ }
+ if (StringUtils.isNotBlank(data.getReceivableAmount())) {
+ vo.setReceivableAmount(data.getReceivableAmount());
+ yingshouZ = new BigDecimal(data.getReceivableAmount());
+ }
+ vo.setActualAmount(yingshouZ.subtract(youhuiZ).toString());
+ if (StringUtils.isNotBlank(data.getMobile())) {
+ vo.setMobile(data.getMobile());
+ }
+ if (StringUtils.isNotBlank(data.getVinNo())) {
+ vo.setVinNo(data.getVinNo());
+ }
+ if (StringUtils.isNotBlank(data.getVehMark())) {
+ vo.setVehMark(data.getVehMark());
+ }
+ InvoiceVo invoiceVo = data.getInvoiceVo();
+ if (null != invoiceVo) {
+ if (StringUtils.isNotBlank(invoiceVo.getIsInvoicing())) {
+ vo.setIsInvoicing(invoiceVo.getIsInvoicing());
+ }
+ if (StringUtils.isNotBlank(invoiceVo.getIsInvoicing2())) {
+ vo.setIsInvoicing2(invoiceVo.getIsInvoicing2());
+ }
+ if (StringUtils.isNotBlank(invoiceVo.getTaxRate())) {
+ vo.setTaxRate(invoiceVo.getTaxRate());
+ }
+ if (StringUtils.isNotBlank(invoiceVo.getTaxItems2())) {
+ vo.setTaxItems(invoiceVo.getTaxItems2());
+ }
+ }
+ if (StringUtils.isNotBlank(data.getOutRemarks())) {
+ vo.setOutRemarks(data.getOutRemarks());
+ }
+ if (StringUtils.isNotBlank(data.getSubsidyRemarks())) {
+ vo.setSubsidyRemarks(data.getSubsidyRemarks());
+ }
+ if (StringUtils.isNotBlank(data.getRescueRemarks())) {
+ vo.setRescueRemarks(data.getRescueRemarks());
+ }
+ BigDecimal costAmount = BigDecimal.ZERO;//成本合计
+ BigDecimal profit = BigDecimal.ZERO;//总利润额
+ BigDecimal outAmount = BigDecimal.ZERO;//外出费
+ BigDecimal subsidyAmount = BigDecimal.ZERO;//厂家补助
+ BigDecimal rescueAmount = BigDecimal.ZERO;//施救费
+ BigDecimal outKPAmount = BigDecimal.ZERO;//外出费KP
+ BigDecimal subsidyKPAmount = BigDecimal.ZERO;//厂家补助KP
+ BigDecimal rescueKPAmount = BigDecimal.ZERO;//施救费KP
+// BigDecimal sitemProfit = BigDecimal.ZERO;//维修项目利润
+// BigDecimal goodsProfit = BigDecimal.ZERO;//维修用料利润
+// BigDecimal otherProfit = BigDecimal.ZERO;//附件项目利润
+// BigDecimal addProfit = BigDecimal.ZERO;//其他附加项目利润
+ if (StringUtils.isNotBlank(data.getHourAmount())) {
+ vo.setHourAmount(data.getHourAmount());
+ }
+ if (StringUtils.isNotBlank(data.getGoodsAmount())) {
+ vo.setGoodsAmount(data.getGoodsAmount());
+ }
+ if (StringUtils.isNotBlank(data.getAddAmount())) {
+ vo.setAddAmount(data.getAddAmount());
+ }
+ if (StringUtils.isNotBlank(data.getDiscountAmount())) {
+ vo.setDiscountAmount(data.getDiscountAmount());
+ }
+ if (StringUtils.isNotBlank(data.getOutAmount())) {
+ vo.setOutAmount(data.getOutAmount());
+ outAmount = new BigDecimal(data.getOutAmount());
+ vo.setOutPrint(data.getOutAmount());
+ }
+ if (StringUtils.isNotBlank(data.getOutKPAmount())) {
+ vo.setOutKPAmount(data.getOutKPAmount());
+ outKPAmount = new BigDecimal(data.getOutKPAmount());
+ }
+ if (StringUtils.isNotBlank(data.getSubsidyAmount())) {
+ vo.setSubsidyAmount(data.getSubsidyAmount());
+ subsidyAmount = new BigDecimal(data.getSubsidyAmount());
+ vo.setSubsidyPrint(data.getSubsidyAmount());
+ }
+
+ if (StringUtils.isNotBlank(data.getSubsidyKPAmount())) {
+ vo.setSubsidyKPAmount(data.getSubsidyKPAmount());
+ subsidyKPAmount = new BigDecimal(data.getSubsidyKPAmount());
+ }
+ if (StringUtils.isNotBlank(data.getRescueAmount())) {
+ vo.setRescueAmount(data.getRescueAmount());
+ rescueAmount = new BigDecimal(data.getRescueAmount());
+ vo.setRescuePrint(data.getRescueAmount());
+ }
+ if (StringUtils.isNotBlank(data.getRescueKPAmount())) {
+ vo.setRescueKPAmount(data.getRescueKPAmount());
+ rescueKPAmount = new BigDecimal(data.getRescueKPAmount());
+ }
+ List sitemVos = data.getSitemVos();
+ if (!sitemVos.isEmpty()) {
+ List settleSitemVos = new ArrayList<>();
+ for (SitemVo s : sitemVos) {
+ SettleSitemVo v = new SettleSitemVo();
+ BeanUtil.copyProperties(s, v);
+ BigDecimal yingshou = BigDecimal.ZERO; //应收
+ BigDecimal youhui = BigDecimal.ZERO; //优惠
+ BigDecimal jiesuan = BigDecimal.ZERO; //结算
+ BigDecimal chengben = BigDecimal.ZERO; //成本
+ BigDecimal lirun = BigDecimal.ZERO; //利润
+ if (StringUtils.isNotBlank(s.getAmount())) {
+ yingshou = new BigDecimal(s.getAmount());
+ v.setSitemReceivableAmount(yingshou.toString());
+ }
+ if (StringUtils.isNotBlank(s.getDiscountAmount())) {
+ youhui = new BigDecimal(s.getDiscountAmount());
}
- if (StringUtils.isNotBlank(bill.getMobile())) {
- vo.setMobile(bill.getMobile());
+ jiesuan = yingshou.subtract(youhui);
+ v.setSitemSettleAmount(jiesuan.toString());
+ if (StringUtils.isNotBlank(s.getCostTotal())) {
+ chengben = new BigDecimal(s.getCostTotal());
}
- if (StringUtils.isNotBlank(bill.getVinNo())) {
- vo.setVinNo(bill.getVinNo());
+ v.setSitemCost(chengben.toString());
+ lirun = jiesuan.subtract(chengben);
+ v.setSitemPrint(lirun.toString());
+ costAmount = costAmount.add(chengben);
+ profit = profit.add(lirun);
+ settleSitemVos.add(v);
+ }
+ vo.setSitemVos(settleSitemVos);
+ }
+ List goodsDetailsVos = data.getGoodsDetailsVos();
+ if (!goodsDetailsVos.isEmpty()) {
+ List goodsList = new ArrayList<>();
+ for (GoodsDetailsVo g : goodsDetailsVos) {
+ SettleGoodsDetailsVo v = new SettleGoodsDetailsVo();
+ BeanUtil.copyProperties(g, v, "partsSellers");
+ if (StringUtils.isNotBlank(g.getPartsSellers2())) {
+ v.setPartsSellers(g.getPartsSellers2());
}
- if (StringUtils.isNotBlank(bill.getVehMark())) {
- vo.setVehMark(bill.getVehMark());
+ BigDecimal yingshou = BigDecimal.ZERO; //应收
+ BigDecimal youhui = BigDecimal.ZERO; //优惠
+ BigDecimal jiesuan = BigDecimal.ZERO; //结算
+ BigDecimal chengben = BigDecimal.ZERO; //成本
+ BigDecimal chengbenPrice = BigDecimal.ZERO; //成本单价
+ BigDecimal lirun = BigDecimal.ZERO; //利润
+ BigDecimal count = BigDecimal.ZERO; //数量
+ if (StringUtils.isNotBlank(g.getCount())) {
+ count = new BigDecimal(g.getCount());
}
- if (StringUtils.isNotBlank(bill.getCustomerOrg())) {
- vo.setCustomerOrg(bill.getCustomerOrg());
+ if (StringUtils.isNotBlank(g.getPrice())) {
+ BigDecimal price = new BigDecimal(g.getPrice());
+ yingshou = price.multiply(count);
+ v.setGoodsReceivableAmount(yingshou.toString());
}
- if (!bill.getSitemVos().isEmpty()) {
- vo.setSitemVos(bill.getSitemVos());
+ if (StringUtils.isNotBlank(g.getDiscountAmount())) {
+ youhui = new BigDecimal(g.getDiscountAmount());
}
- if (!bill.getGoodsDetailsVos().isEmpty()) {
- vo.setGoodsDetailsVos(bill.getGoodsDetailsVos());
+ jiesuan = yingshou.subtract(youhui);
+ v.setGoodsSettleAmount(jiesuan.toString());
+ //求成本
+ if (StringUtils.isNotBlank(g.getInventorySid())) {
+ String inventorySid = g.getInventorySid();
+ WmsInventory inventory = wmsInventoryFeign.fetchEntityBySid(inventorySid).getData();
+ if (null != inventory) {
+ if (null != inventory.getCost()) {
+ chengbenPrice = inventory.getCost();
+ chengben = chengbenPrice.multiply(count);
+ }
+ }
+ }
+ v.setGoodsCost(chengben.toString());
+ lirun = jiesuan.subtract(chengben);
+ v.setGoodsPrint(lirun.toString());
+ costAmount = costAmount.add(chengben);
+ profit = profit.add(lirun);
+ goodsList.add(v);
+ }
+ vo.setGoodsDetailsVos(goodsList);
+ }
+ List aitemVos = data.getAitemVos();
+ if (!aitemVos.isEmpty()) {
+ List aitemVoList = new ArrayList<>();
+ for (AitemVo a : aitemVos) {
+ SettleAitemVo v = new SettleAitemVo();
+ BeanUtil.copyProperties(a, v);
+ BigDecimal yingshou = BigDecimal.ZERO; //应收
+ BigDecimal chengben = BigDecimal.ZERO; //成本
+ BigDecimal lirun = BigDecimal.ZERO; //利润
+ if (StringUtils.isNotBlank(a.getPrice())) {
+ yingshou = new BigDecimal(a.getPrice());
+ v.setAitemReceivableAmount(yingshou.toString());
}
- if (!bill.getAitemVos().isEmpty()) {
- vo.setAitemVos(bill.getAitemVos());
+ //求成本
+ if (StringUtils.isNotBlank(a.getAitemSid())) {
+ String aitemsid = a.getAitemSid();
+ AsServiceAttachItem attachItem = asServiceAttachItemService.fetchBySid(aitemsid);
+ if (null != attachItem) {
+ if (null != attachItem.getCost()) {
+ chengben = attachItem.getCost();
+ }
+ }
}
+ v.setAitemCost(chengben.toString());
+ lirun = yingshou.subtract(chengben);
+ v.setAitemPrint(lirun.toString());
+ costAmount = costAmount.add(chengben);
+ profit = profit.add(lirun);
+ aitemVoList.add(v);
}
+ vo.setAitemVos(aitemVoList);
+ }
+ vo.setOutCost("0");
+ vo.setSubsidyCost("0");
+ vo.setRescueCost("0");
+ profit = profit.add(outAmount);
+ profit = profit.add(subsidyAmount);
+ profit = profit.add(rescueAmount);
+// vo.setProfit(profit.toString());
+// vo.setCostAmount(costAmount.toString());
+ List fileName = data.getFileName();
+ if (!fileName.isEmpty()) {
+ vo.setFileName(fileName);
+ List files = new ArrayList<>();
+ for (FileUrlQuery fileUrlQuery : fileName) {
+ files.add(fileUrlQuery.getUrl());
+ }
+ vo.setFileName2(files);
}
}
- return vo;
- }
-
- public AsBusrepairBillReverseSettleDetailsVo reverseSettleInit(ReverseSettleInitQuery query) {
- AsBusrepairBillReverseSettleDetailsVo vo = new AsBusrepairBillReverseSettleDetailsVo();
- String sourceSid = query.getSid();
- String orgPath = query.getOrgPath();
- String userSid = query.getUserSid();
- vo.setApplyDate(DateUtil.formatDate(new Date()));
- vo.setSourceSid(sourceSid);
- vo.setUseSid(userSid);
- vo.setOrgPath(orgPath);
//根据用户查询发起人、发起部门、发起日期为当前日期
String deptName = "";
String deptSid = "";
String useOrgSid = "";
+ String orgPath = query.getOrgPath();
+ String userSid = query.getUserSid();
if (StringUtils.isNotBlank(orgPath)) {
List split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
@@ -347,78 +686,16 @@ public class AsBusrepairBillReverseSettleService extends MybatisBaseService organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid);
if (organizationResultBean.getData() != null) {
vo.setUseOrgName(organizationResultBean.getData().getName());
- vo.setUseOrgSid(useOrgSid);
}
//根据用户sid查询人员姓名
ResultBean userVoResultBean = sysUserFeign.fetchBySid(userSid);
- if (userVoResultBean.getSuccess()) {
- vo.setCreateByName(userVoResultBean.getData().getName());
- }
vo.setDept(deptName);
vo.setDeptSid(deptSid);
- AsBusrepairBillDetailsVo bill = asBusrepairBillService.fetchDetailsBySid(sourceSid).getData();
- if (null != bill) {
- BeanUtil.copyProperties(bill,vo,"id","sid","billNo","useOrgSid","createBySid","createOrgSid","orgPath");
- if (bill.getInvoiceVo() != null) {
- if (StringUtils.isNotBlank(bill.getInvoiceVo().getTaxRate())) {
- vo.setTaxRate(bill.getInvoiceVo().getTaxRate());
- }
- }
- if (StringUtils.isNotBlank(bill.getDiscountAmount())) {
- vo.setDiscountAmount(bill.getDiscountAmount());
- }
- if (StringUtils.isNotBlank(bill.getCoupon())) {
- vo.setCoupon(bill.getCoupon());
- }
- if (StringUtils.isNotBlank(bill.getScoreDeduct())) {
- vo.setScoreDeduct(bill.getScoreDeduct());
- }
- if (StringUtils.isNotBlank(bill.getBillNo())) {
- vo.setSourceBillNo(bill.getBillNo());
- }
- if (StringUtils.isNotBlank(bill.getCreateDate())) {
- vo.setSourceBillDate(bill.getCreateDate());
- }
- if (StringUtils.isNotBlank(bill.getWaitorName())) {
- vo.setWaitorName(bill.getWaitorName());
- }
- if (StringUtils.isNotBlank(bill.getBillType())) {
- vo.setBillType(bill.getBillType());
- }
- if (StringUtils.isNotBlank(bill.getSubject())) {
- vo.setSubject(bill.getSubject());
- }
- if (null != bill.getSettleVo()) {
- SettleVo settleVo = bill.getSettleVo();
- if (StringUtils.isNotBlank(settleVo.getSettleTime())) {
- vo.setSettleDate(settleVo.getSettleTime());
- }
- }
- if (StringUtils.isNotBlank(bill.getCustomerName())) {
- vo.setCustomerName(bill.getCustomerName());
- }
- if (StringUtils.isNotBlank(bill.getMobile())) {
- vo.setMobile(bill.getMobile());
- }
- if (StringUtils.isNotBlank(bill.getVinNo())) {
- vo.setVinNo(bill.getVinNo());
- }
- if (StringUtils.isNotBlank(bill.getVehMark())) {
- vo.setVehMark(bill.getVehMark());
- }
- if (StringUtils.isNotBlank(bill.getCustomerOrg())) {
- vo.setCustomerOrg(bill.getCustomerOrg());
- }
- if (!bill.getSitemVos().isEmpty()) {
- vo.setSitemVos(bill.getSitemVos());
- }
- if (!bill.getGoodsDetailsVos().isEmpty()) {
- vo.setGoodsDetailsVos(bill.getGoodsDetailsVos());
- }
- if (!bill.getAitemVos().isEmpty()) {
- vo.setAitemVos(bill.getAitemVos());
- }
- }
+ vo.setCreateByName(userVoResultBean.getData().getName());
+ vo.setApplyDate(DateUtil.today());
+ vo.setOrgPath(orgPath);
+ vo.setCreateBySid(userSid);
+ vo.setUseOrgSid(useOrgSid);
return vo;
}
@@ -452,24 +729,154 @@ public class AsBusrepairBillReverseSettleService extends MybatisBaseService 0) {
+ List aitemVos = dto.getAitemVos();
+ for (SettleAitemVo aitemVo : aitemVos) {
+ AsBillSettelApplyAitem a = new AsBillSettelApplyAitem();
+ BeanUtil.copyProperties(aitemVo, a, "sid");
+ a.setMainSid(sid);
+ asBillSettelApplyAitemService.insert(a);
+ if (StringUtils.isNotBlank(aitemVo.getAitemCost())) {
+ costAll = costAll.add(new BigDecimal(aitemVo.getAitemCost()));
+ }
+ if (StringUtils.isNotBlank(aitemVo.getAitemPrint())) {
+ printAll = printAll.add(new BigDecimal(aitemVo.getAitemPrint()));
+ }
+ }
+ }
+ if (!dto.getSitemVos().isEmpty() && dto.getSitemVos().size() > 0) {
+ List sitemVos = dto.getSitemVos();
+ for (SettleSitemVo sitemVo : sitemVos) {
+ AsBillSettelApplySitem a = new AsBillSettelApplySitem();
+ BeanUtil.copyProperties(sitemVo, a, "sid");
+ a.setMainSid(sid);
+ asBillSettelApplySitemService.insert(a);
+ if (StringUtils.isNotBlank(sitemVo.getSitemCost())) {
+ costAll = costAll.add(new BigDecimal(sitemVo.getSitemCost()));
+ }
+ if (StringUtils.isNotBlank(sitemVo.getSitemPrint())) {
+ printAll = printAll.add(new BigDecimal(sitemVo.getSitemPrint()));
+ }
+ }
+ }
+ if (!dto.getGoodsDetailsVos().isEmpty() && dto.getGoodsDetailsVos().size() > 0) {
+ List goodsDetailsVos = dto.getGoodsDetailsVos();
+ for (SettleGoodsDetailsVo g : goodsDetailsVos) {
+ AsBillSettelApplyDetail d = new AsBillSettelApplyDetail();
+ BeanUtil.copyProperties(g, d, "sid");
+ d.setMainSid(sid);
+ asBillSettelApplyDetailService.insert(d);
+ if (StringUtils.isNotBlank(g.getGoodsCost())) {
+ costAll = costAll.add(new BigDecimal(g.getGoodsCost()));
+ }
+ if (StringUtils.isNotBlank(g.getGoodsPrint())) {
+ printAll = printAll.add(new BigDecimal(g.getGoodsPrint()));
+ }
+ }
+ }
+ if (StringUtils.isNotBlank(dto.getOutAmount())) {
+ BigDecimal outAmount = new BigDecimal(dto.getOutAmount());
+ if (outAmount.compareTo(BigDecimal.ZERO) > 0) {
+ AsBillSettelApplyAitemspec s = new AsBillSettelApplyAitemspec();
+ s.setMainSid(sid);
+ s.setAttachItem("外出费");
+ s.setPrice(outAmount);
+ if (StringUtils.isNotBlank(dto.getOutKPAmount())) {
+ s.setTaxPrice(new BigDecimal(dto.getOutKPAmount()));
+ }
+ if (StringUtils.isNotBlank(dto.getOutPrint())) {
+ s.setPrint(new BigDecimal(dto.getOutPrint()));
+ printAll = printAll.add(new BigDecimal(dto.getOutPrint()));
+ }
+ if (StringUtils.isNotBlank(dto.getOutCost())) {
+ s.setCostTotal(new BigDecimal(dto.getOutCost()));
+ costAll = costAll.add(new BigDecimal(dto.getOutCost()));
+ }
+ if (StringUtils.isNotBlank(dto.getOutRemarks())) {
+ s.setRemarks(dto.getOutRemarks());
+ }
+ asBillSettelApplyAitemSpecService.insert(s);
+ }
+ }
+ if (StringUtils.isNotBlank(dto.getSubsidyAmount())) {
+ BigDecimal amount = new BigDecimal(dto.getSubsidyAmount());
+ if (amount.compareTo(BigDecimal.ZERO) > 0) {
+ AsBillSettelApplyAitemspec s = new AsBillSettelApplyAitemspec();
+ s.setMainSid(sid);
+ s.setAttachItem("厂家补助");
+ s.setPrice(amount);
+ if (StringUtils.isNotBlank(dto.getSubsidyKPAmount())) {
+ s.setTaxPrice(new BigDecimal(dto.getSubsidyKPAmount()));
+ }
+ if (StringUtils.isNotBlank(dto.getSubsidyPrint())) {
+ s.setPrint(new BigDecimal(dto.getSubsidyPrint()));
+ printAll = printAll.add(new BigDecimal(dto.getSubsidyPrint()));
+ }
+ if (StringUtils.isNotBlank(dto.getSubsidyCost())) {
+ s.setCostTotal(new BigDecimal(dto.getSubsidyCost()));
+ costAll = costAll.add(new BigDecimal(dto.getSubsidyCost()));
+ }
+ if (StringUtils.isNotBlank(dto.getSubsidyRemarks())) {
+ s.setRemarks(dto.getSubsidyRemarks());
+ }
+ asBillSettelApplyAitemSpecService.insert(s);
+ }
+ }
+ if (StringUtils.isNotBlank(dto.getRescueAmount())) {
+ BigDecimal amount = new BigDecimal(dto.getRescueAmount());
+ if (amount.compareTo(BigDecimal.ZERO) > 0) {
+ AsBillSettelApplyAitemspec s = new AsBillSettelApplyAitemspec();
+ s.setMainSid(sid);
+ s.setAttachItem("施救费");
+ s.setPrice(amount);
+ if (StringUtils.isNotBlank(dto.getRescueKPAmount())) {
+ s.setTaxPrice(new BigDecimal(dto.getRescueKPAmount()));
+ }
+ if (StringUtils.isNotBlank(dto.getRescuePrint())) {
+ s.setPrint(new BigDecimal(dto.getRescuePrint()));
+ printAll = printAll.add(new BigDecimal(dto.getRescuePrint()));
+ }
+ if (StringUtils.isNotBlank(dto.getRescueCost())) {
+ s.setCostTotal(new BigDecimal(dto.getRescueCost()));
+ costAll = costAll.add(new BigDecimal(dto.getRescueCost()));
+ }
+ if (StringUtils.isNotBlank(dto.getRescueRemarks())) {
+ s.setRemarks(dto.getRescueRemarks());
+ }
+ asBillSettelApplyAitemSpecService.insert(s);
+ }
+ }
+ AsBusrepairBillReverseSettle settelApply = fetchBySid(sid);
+ if (null != settelApply) {
+ settelApply.setCostAmount(costAll);
+ settelApply.setProfit(printAll);
+ baseMapper.updateById(settelApply);
}
return sid;
}
@@ -923,4 +1330,60 @@ public class AsBusrepairBillReverseSettleService extends MybatisBaseService busrepairListPage(PagerQuery pq) {
+ AsChoseBusrepairbillQuery query = pq.getParams();
+ QueryWrapper qw = new QueryWrapper<>();
+ if (StringUtils.isNotBlank(query.getMenuUrl())) {
+ PrivilegeQuery privilegeQuery = new PrivilegeQuery();
+ privilegeQuery.setOrgPath(query.getOrgPath());
+ privilegeQuery.setMenuUrl(query.getMenuUrl());
+ privilegeQuery.setUserSid(query.getUserSid());
+ ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevelPath(privilegeQuery);
+ if (null != defaultIdReltBean.getData()) {
+ //数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
+ PrivilegeVo privilegeVo = defaultIdReltBean.getData();
+ if ("5".equals(privilegeVo.getOrgLevelKey())) {
+ qw.eq("b.createBySid", privilegeVo.getLevelPath());
+ } else {
+ qw.eq("b.orgSidPath", privilegeVo.getLevelPath());
+ }
+ } else {
+ PagerVo p = new PagerVo<>();
+ return p;
+ }
+ }
+ if (StringUtils.isNotBlank(query.getBillNo())) {
+ qw.like("b.billNo", query.getBillNo());
+ }
+ if (StringUtils.isNotBlank(query.getBillType())) {
+ qw.like("b.billType", query.getBillType());
+ }
+ if (StringUtils.isNotBlank(query.getSubject())) {
+ qw.like("b.`subject`", query.getSubject());
+ }
+ if (StringUtils.isNotBlank(query.getCustomerName())) {
+ qw.like("b.customerName", query.getCustomerName());
+ }
+ if (StringUtils.isNotBlank(query.getVehMark())) {
+ qw.like("v.vehMark", query.getVehMark());
+ }
+ qw.eq("b.nodeCode",6);
+ qw.apply("(b.`subject` = '保内' OR (b.`subject` = '保外' and b.settleState = '0'))");
+ String startDate = query.getEntryTimeStart();
+ String endDate = query.getEntryTimeEnd();
+ qw.apply(StringUtils.isNotEmpty(startDate), "date_format (b.entryTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')").
+ apply(StringUtils.isNotEmpty(endDate), "date_format (b.entryTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')"
+ );
+ String closeDateStart = query.getSettleDateStart();
+ String closeDateEnd = query.getSettleDateEnd();
+ qw.apply(StringUtils.isNotEmpty(closeDateStart), "date_format (s.settleTime,'%Y-%m-%d') >= date_format('" + closeDateStart + "','%Y-%m-%d')").
+ apply(StringUtils.isNotEmpty(closeDateEnd), "date_format (s.settleTime,'%Y-%m-%') <= date_format('" + closeDateEnd + "','%Y-%m-%d')"
+ );
+
+ IPage page = PagerUtil.queryToPage(pq);
+ IPage pagging = baseMapper.busrepairListPage(page, qw);
+ PagerVo p = PagerUtil.pageToVo(pagging, null);
+ return p;
+ }
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java
index 45fa6d1300..522b9f75a0 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java
@@ -17,6 +17,7 @@ public enum ProcDefEnum {
ASBWINVOICEAPPLY("工单开票申请", "process_ldw1bs5t:1:14197536"),
ASTECHTITLEAPPLY("维修技师职称备案申请", "process_kl8rqdjf:1:14197604"),
BILLSETTLEAPPLY("工单结算申请", "process_q2p7s99n:2:14900004"),
+ SALESBILLSETTLEAPPLY("商品配件销售结算申请", "process_q2p7s958752:1:16062504"),
ASHOSESUPPAPPLY("工时提成抵顶配件费用申请", "process_z2d1n43e:1:14197592"),
ASSERVICEITEMAPPLY("维修项目备案申请", "process_mbiz75zg:1:14197572"),
ASSERVICEACCOMMAPPLY("配件销售提成备案申请", "process_89i56wrn:1:14197576"),
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/privilege/PrivilegeVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/privilege/PrivilegeVo.java
new file mode 100644
index 0000000000..eecce3cab4
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/privilege/PrivilegeVo.java
@@ -0,0 +1,20 @@
+package com.yxt.anrui.as.feign.portal.privilege;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Fan
+ * @description
+ * @date 2024/11/22 11:04
+ */
+@Data
+public class PrivilegeVo {
+
+ @ApiModelProperty("权限查询路径")
+ private String levelPath;
+ @ApiModelProperty("权限等级")
+ private String orgLevelKey;
+
+
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/SysUserFeign.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/SysUserFeign.java
index 02ac2678f8..8af03c9089 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/SysUserFeign.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/SysUserFeign.java
@@ -1,6 +1,7 @@
package com.yxt.anrui.as.feign.portal.sysuser;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
+import com.yxt.anrui.as.feign.portal.privilege.PrivilegeVo;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -24,4 +25,9 @@ public interface SysUserFeign {
@ApiOperation("根据sid获取一条记录")
@GetMapping("/fetchBySid/{sid}")
public ResultBean fetchBySid(@PathVariable("sid") String sid);
+
+ @ApiOperation(value = "查询角色权限的层级获取权限路径")
+ @PostMapping(value = "/selectPrivilegeLevelPath")
+ ResultBean selectPrivilegeLevelPath(@RequestBody PrivilegeQuery query);
+
}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsAttachitemVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsAttachitemVo.java
index 55f5c4c304..7e5d902022 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsAttachitemVo.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsAttachitemVo.java
@@ -11,7 +11,7 @@ import lombok.Data;
@Data
public class SmsAttachitemVo {
@ApiModelProperty("附加项目sid")
- private String aitemsid;
+ private String aitemSid;
@ApiModelProperty("附加项目名称")
private String aitemName;
@ApiModelProperty("销售价")
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsCompleteDto.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsCompleteDto.java
new file mode 100644
index 0000000000..1cd542698f
--- /dev/null
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsCompleteDto.java
@@ -0,0 +1,26 @@
+package com.yxt.anrui.as.feign.sms.smssalesbill;
+
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class SmsCompleteDto {
+
+ /**
+ * 结算金额
+ */
+ private BigDecimal settleAmount;
+ /**
+ * 材料费
+ */
+ private BigDecimal goodsAmount;
+ /**
+ * 附加费
+ */
+ private BigDecimal addAmount;
+
+ private String sid;
+
+}
diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillFeign.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillFeign.java
index 5e0f7cf95e..e1d0af1f33 100644
--- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillFeign.java
+++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillFeign.java
@@ -5,9 +5,7 @@ import com.yxt.anrui.as.feign.sms.SmsGoods;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
/**
* @author Fan
@@ -25,4 +23,9 @@ public interface SmsSalesBillFeign {
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid);
+
+
+ @ApiOperation("配件销售结算")
+ @PostMapping("/smsBillSettle")
+ public ResultBean smsBillSettle(@RequestBody SmsCompleteDto dto);
}
diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesBillRest.java b/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesBillRest.java
index 7500ba93e5..9ffa120bff 100644
--- a/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesBillRest.java
+++ b/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesBillRest.java
@@ -157,6 +157,12 @@ public class SmsSalesBillRest {
return smsSalesBillService.printSmsBill(query);
}
+ @ApiOperation("配件销售结算")
+ @PostMapping("/smsBillSettle")
+ public ResultBean smsBillSettle(@RequestBody SmsCompleteDto dto) {
+ return smsSalesBillService.smsBillSettle(dto);
+ }
+
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids) {
diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsCompleteDto.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsCompleteDto.java
new file mode 100644
index 0000000000..88d77e2d8f
--- /dev/null
+++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsCompleteDto.java
@@ -0,0 +1,26 @@
+package com.yxt.sms.biz.smssalesbill;
+
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class SmsCompleteDto {
+
+ /**
+ * 结算金额
+ */
+ private BigDecimal settleAmount;
+ /**
+ * 材料费
+ */
+ private BigDecimal goodsAmount;
+ /**
+ * 附加费
+ */
+ private BigDecimal addAmount;
+
+ private String sid;
+
+}
diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java
index 602b2a1be1..f0856517c0 100644
--- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java
+++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java
@@ -108,4 +108,6 @@ public class SmsSalesBill extends BaseEntity {
private BigDecimal addAmount;
@ApiModelProperty("结算时间")
private String settleTime;
+ @ApiModelProperty("结算金额")
+ private BigDecimal settleAmount;
}
diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java
index 8c74101e18..151ca76c45 100644
--- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java
+++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java
@@ -445,13 +445,13 @@ public class SmsSalesBillService extends MybatisBaseService billDetailList = smsSalesBillDetailService.fetchByMainSid(dto.getSid());
+ if (!billDetailList.isEmpty()) {
+ for (SmsSalesBillDetail salesBillDetail : billDetailList) {
+ Map map = new HashMap<>();
+ //取商品id 和 需要扣除数量
+ String goodsID = salesBillDetail.getGoodsID();
+ BigDecimal count = salesBillDetail.getCount();
+ List data = wmsInventoryFeign.getListByGoodsID(goodsID).getData();
+ if (!data.isEmpty()) {
+ for (WmsInventory inventory : data) {
+ if (count.compareTo(BigDecimal.ZERO) > 0) {
+ BigDecimal inventoryCount = inventory.getCount();
+ if (inventoryCount.compareTo(count) >= 0) {
+ map.put(inventory.getSid(), count);
+ count = count.subtract(inventory.getCount());
+ continue;
+ }
+ map.put(inventory.getSid(), inventory.getCount());
+ count = count.subtract(inventory.getCount());
+ }
+ }
+ for (Map.Entry entry : map.entrySet()) {
+ String inventorySid = entry.getKey();
+ BigDecimal inventoryCount = entry.getValue();
+ WmsInventoryRecordDto recordDto = new WmsInventoryRecordDto();
+ WmsInventory inventory = wmsInventoryFeign.fetchEntityBySid(inventorySid).getData();
+ BigDecimal wiCount = inventory.getCount();
+ BigDecimal subtractCount = wiCount.subtract(inventoryCount);
+ recordDto.setInventorySid(inventorySid);
+ recordDto.setCreateBySid(smsSalesBill.getCreateBySid());
+ recordDto.setUseOrgSid(smsSalesBill.getDeptSid());
+ recordDto.setCreateOrgSid(smsSalesBill.getCreateOrgSid());
+ recordDto.setHandlerSid(smsSalesBill.getCreateBySid());
+ recordDto.setHandlerName(smsSalesBill.getCreateByName());
+ recordDto.setGoodsID(goodsID);
+ recordDto.setSourceBillSid(dto.getSid());
+ recordDto.setBillNo(smsSalesBill.getBillNo());
+ recordDto.setBillType("0");
+ recordDto.setBusTypeKey("11");
+ recordDto.setBusTypeValue("销售出库");
+ BeanUtil.copyProperties(inventory, recordDto, "sid", "createBySid");
+ recordDto.setCount(inventoryCount.toString());
+ recordDto.setCurrentCount(subtractCount.toString());
+ wmsInventoryRecordFeign.save(recordDto);
+ WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery();
+ countQuery.setSid(inventorySid);
+ countQuery.setCount(inventoryCount);
+ countQuery.setAddOrReduce(1);
+ wmsInventoryFeign.updateInventoryCount(countQuery);
+ }
+ }
+ }
+ }
+ return rb.success();
+ }
}
diff --git a/yxt-sms-biz/src/main/resources/application.yml b/yxt-sms-biz/src/main/resources/application.yml
index bc8f091fc8..3260373dab 100644
--- a/yxt-sms-biz/src/main/resources/application.yml
+++ b/yxt-sms-biz/src/main/resources/application.yml
@@ -39,7 +39,20 @@ mybatis-plus:
cache-enabled: true
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
-
+#hystrix的超时时间
+hystrix:
+ command:
+ default:
+ execution:
+ timeout:
+ enabled: true
+ isolation:
+ thread:
+ timeoutInMilliseconds: 60000
+#ribbon的超时时间
+ribbon:
+ ReadTimeout: 60000
+ ConnectTimeout: 60000
#rocketmq:
# producer:
# group: yxt-supervise-gf