fix:同步新华三接口调整,应付单详情添加超链接
parent
4ac353a83a
commit
9a8fe13f28
|
|
@ -244,7 +244,7 @@ export default {
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getCompanyList();
|
// this.getCompanyList();
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
totalAmountNumber() {
|
totalAmountNumber() {
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,16 @@
|
||||||
<dict-tag :options="dict.type.payment_status" :value="scope.row.paymentStatus"/>
|
<dict-tag :options="dict.type.payment_status" :value="scope.row.paymentStatus"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="paymentBillCode" label="采购-付款单编号"></el-table-column>
|
<el-table-column prop="paymentBillCode" label="采购-付款单编号">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.paymentBillCode"
|
||||||
|
type="text"
|
||||||
|
@click="handlePaymentDetail(scope.row)"
|
||||||
|
>{{ scope.row.paymentBillCode }}</el-button>
|
||||||
|
<span v-else>-</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="回执单/退款图">
|
<el-table-column label="回执单/退款图">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.finAttachment">
|
<span v-if="scope.row.finAttachment">
|
||||||
|
|
@ -152,7 +161,16 @@
|
||||||
<dict-tag :options="dict.type.receipt_status" :value="scope.row.ticketStatus"/>
|
<dict-tag :options="dict.type.receipt_status" :value="scope.row.ticketStatus"/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="ticketBillCode" label="采购-收票单编号"></el-table-column>
|
<el-table-column prop="ticketBillCode" label="采购-收票单编号">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
v-if="scope.row.ticketBillCode"
|
||||||
|
type="text"
|
||||||
|
@click="handleTicketDetail(scope.row)"
|
||||||
|
>{{ scope.row.ticketBillCode }}</el-button>
|
||||||
|
<span v-else>-</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column label="发票/红冲发票">
|
<el-table-column label="发票/红冲发票">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span v-if="scope.row.finAttachment">
|
<span v-if="scope.row.finAttachment">
|
||||||
|
|
@ -174,6 +192,17 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<GlobalFilePreview ref="filePreview" />
|
<GlobalFilePreview ref="filePreview" />
|
||||||
|
<PaymentDetailDrawer
|
||||||
|
:visible.sync="paymentDetailOpen"
|
||||||
|
:detail="paymentDetailData"
|
||||||
|
:z-index="zIndex + 100"
|
||||||
|
@submit="handleUpdatePaymentBillSubmit"
|
||||||
|
/>
|
||||||
|
<ReceiptDetailDrawer
|
||||||
|
:visible.sync="receiptDetailOpen"
|
||||||
|
:detail="receiptDetailData"
|
||||||
|
:z-index="zIndex + 100"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div slot="footer" class="dialog-footer">-->
|
<!-- <div slot="footer" class="dialog-footer">-->
|
||||||
<!-- <el-button @click="handleClose">取 消</el-button>-->
|
<!-- <el-button @click="handleClose">取 消</el-button>-->
|
||||||
|
|
@ -187,6 +216,8 @@
|
||||||
import PaymentPlan from './PaymentPlan.vue';
|
import PaymentPlan from './PaymentPlan.vue';
|
||||||
import ReceivingTicketPlan from './ReceivingTicketPlan.vue';
|
import ReceivingTicketPlan from './ReceivingTicketPlan.vue';
|
||||||
import { getPayable } from "@/api/finance/payable";
|
import { getPayable } from "@/api/finance/payable";
|
||||||
|
import { getPayment, updatePaymentBill } from "@/api/finance/payment";
|
||||||
|
import { getReceipt } from "@/api/finance/receipt";
|
||||||
import ReceiptPlan from "@/views/finance/receivable/components/ReceiptPlan.vue";
|
import ReceiptPlan from "@/views/finance/receivable/components/ReceiptPlan.vue";
|
||||||
import GlobalFilePreview from '@/components/GlobalFilePreview';
|
import GlobalFilePreview from '@/components/GlobalFilePreview';
|
||||||
|
|
||||||
|
|
@ -197,7 +228,9 @@ export default {
|
||||||
ReceiptPlan,
|
ReceiptPlan,
|
||||||
PaymentPlan,
|
PaymentPlan,
|
||||||
ReceivingTicketPlan,
|
ReceivingTicketPlan,
|
||||||
GlobalFilePreview
|
GlobalFilePreview,
|
||||||
|
PaymentDetailDrawer: () => import("@/views/finance/payment/components/DetailDrawer.vue"),
|
||||||
|
ReceiptDetailDrawer: () => import("@/views/finance/receipt/components/DetailDrawer.vue")
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
visible: {
|
visible: {
|
||||||
|
|
@ -218,6 +251,10 @@ export default {
|
||||||
internalVisible: this.visible, // Local copy of the visible prop
|
internalVisible: this.visible, // Local copy of the visible prop
|
||||||
activeTab: 'details',
|
activeTab: 'details',
|
||||||
formData: {},
|
formData: {},
|
||||||
|
paymentDetailOpen: false,
|
||||||
|
paymentDetailData: {},
|
||||||
|
receiptDetailOpen: false,
|
||||||
|
receiptDetailData: null,
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
|
|
@ -249,6 +286,41 @@ export default {
|
||||||
downloadFile(attachment){
|
downloadFile(attachment){
|
||||||
this.$refs.filePreview.downloadFile(attachment);
|
this.$refs.filePreview.downloadFile(attachment);
|
||||||
},
|
},
|
||||||
|
handlePaymentDetail(row) {
|
||||||
|
const paymentId = row.paymentBillId || row.paymentId || row.id;
|
||||||
|
if (!paymentId) {
|
||||||
|
this.$modal.msgWarning("未获取到付款单ID");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
getPayment(paymentId).then(response => {
|
||||||
|
this.paymentDetailData = response.data || {};
|
||||||
|
this.paymentDetailData.approveNode = row.approveNode;
|
||||||
|
this.paymentDetailOpen = true;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleTicketDetail(row) {
|
||||||
|
const ticketId = row.ticketBillId || row.receiptId || row.id;
|
||||||
|
if (!ticketId) {
|
||||||
|
this.$modal.msgWarning("未获取到收票单ID");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
getReceipt(ticketId).then(response => {
|
||||||
|
this.receiptDetailData = response.data || null;
|
||||||
|
if (this.receiptDetailData) {
|
||||||
|
this.receiptDetailData.approveNode = row.approveNode;
|
||||||
|
}
|
||||||
|
this.receiptDetailOpen = true;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleUpdatePaymentBillSubmit(form) {
|
||||||
|
updatePaymentBill(form).then(() => {
|
||||||
|
this.$modal.msgSuccess("保存成功");
|
||||||
|
this.paymentDetailOpen = false;
|
||||||
|
}).catch(error => {
|
||||||
|
console.error("保存补充附件失败", error);
|
||||||
|
this.$modal.msgError("保存失败");
|
||||||
|
});
|
||||||
|
},
|
||||||
getSummaries(param) {
|
getSummaries(param) {
|
||||||
const { columns, data } = param;
|
const { columns, data } = param;
|
||||||
const sums = [];
|
const sums = [];
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@
|
||||||
:visible.sync="visible"
|
:visible.sync="visible"
|
||||||
direction="rtl"
|
direction="rtl"
|
||||||
size="70%"
|
size="70%"
|
||||||
|
append-to-body
|
||||||
|
:z-index="zIndex"
|
||||||
:wrapper-closable="false"
|
:wrapper-closable="false"
|
||||||
@close="handleClose"
|
@close="handleClose"
|
||||||
>
|
>
|
||||||
|
|
@ -164,6 +166,10 @@ export default {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => {},
|
default: () => {},
|
||||||
},
|
},
|
||||||
|
zIndex: {
|
||||||
|
type: Number,
|
||||||
|
default: 2000,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@
|
||||||
:visible.sync="visible"
|
:visible.sync="visible"
|
||||||
direction="rtl"
|
direction="rtl"
|
||||||
size="70%"
|
size="70%"
|
||||||
|
append-to-body
|
||||||
|
:z-index="zIndex"
|
||||||
@close="handleClose"
|
@close="handleClose"
|
||||||
>
|
>
|
||||||
<div class="dialog-body" v-if="detail">
|
<div class="dialog-body" v-if="detail">
|
||||||
|
|
@ -117,6 +119,10 @@ export default {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => null,
|
default: () => null,
|
||||||
},
|
},
|
||||||
|
zIndex: {
|
||||||
|
type: Number,
|
||||||
|
default: 2000,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
|
|
||||||
|
|
@ -166,10 +166,12 @@ public class DeliveryListServiceImpl implements IDeliveryListService {
|
||||||
Collectors.groupingBy(OrderList::getOrderId, Collectors.mapping(OrderList::getProductInfo, Collectors.toList())));
|
Collectors.groupingBy(OrderList::getOrderId, Collectors.mapping(OrderList::getProductInfo, Collectors.toList())));
|
||||||
|
|
||||||
|
|
||||||
// 查询标准硬件维保的产品信息
|
// 查询服务维保的产品信息
|
||||||
ProductInfo productInfo = new ProductInfo();
|
ProductInfo productInfo = new ProductInfo();
|
||||||
productInfo.setType(ProductInfo.ProductTypeEnum.HARDWARE_MAINTENANCE.getType());
|
productInfo.setType(ProductInfo.ProductTypeEnum.HARDWARE_MAINTENANCE.getType());
|
||||||
List<ProductInfo> productInfos = productInfoMapper.selectProductInfoList(productInfo);
|
List<ProductInfo> productInfos = productInfoMapper.selectProductInfoList(productInfo);
|
||||||
|
productInfo.setType(ProductInfo.ProductTypeEnum.SERVICE.getType());
|
||||||
|
productInfos.addAll(productInfoMapper.selectProductInfoList(productInfo));
|
||||||
// 设置服务等级和服务结束时间
|
// 设置服务等级和服务结束时间
|
||||||
for (DeliveryInfoVo deliveryInfoVo : deliveryInfoVos) {
|
for (DeliveryInfoVo deliveryInfoVo : deliveryInfoVos) {
|
||||||
updateDeliveryInfoVo(deliveryInfoVo, maintenanceTypeMap, productInfos);
|
updateDeliveryInfoVo(deliveryInfoVo, maintenanceTypeMap, productInfos);
|
||||||
|
|
|
||||||
|
|
@ -276,6 +276,9 @@ public class ExecutionTrackServiceImpl implements IExecutionTrackService {
|
||||||
//剔除流程
|
//剔除流程
|
||||||
todoService.deleteTodoByBusinessKey(projectOrderInfo.getOrderCode());
|
todoService.deleteTodoByBusinessKey(projectOrderInfo.getOrderCode());
|
||||||
|
|
||||||
|
//还原库存
|
||||||
|
inventoryInfoService.recallByOrderCode(Collections.singletonList(projectOrderInfo.getOrderCode()));
|
||||||
|
|
||||||
//累计发货
|
//累计发货
|
||||||
List<InventoryDelivery> inventoryDeliveries = deliveryMapper.selectQuantityByOrderCodeStatus(projectOrderInfo.getOrderCode(), InventoryDelivery.DeliveryStatusEnum.CONFIRM_DELIVERY.getCode());
|
List<InventoryDelivery> inventoryDeliveries = deliveryMapper.selectQuantityByOrderCodeStatus(projectOrderInfo.getOrderCode(), InventoryDelivery.DeliveryStatusEnum.CONFIRM_DELIVERY.getCode());
|
||||||
if (CollUtil.isNotEmpty(inventoryDeliveries)) {
|
if (CollUtil.isNotEmpty(inventoryDeliveries)) {
|
||||||
|
|
@ -329,10 +332,5 @@ public class ExecutionTrackServiceImpl implements IExecutionTrackService {
|
||||||
if (CollUtil.isNotEmpty(updateMap.values())) {
|
if (CollUtil.isNotEmpty(updateMap.values())) {
|
||||||
productInfoService.updateCount(new ArrayList<>(updateMap.values()));
|
productInfoService.updateCount(new ArrayList<>(updateMap.values()));
|
||||||
}
|
}
|
||||||
|
|
||||||
//还原库存
|
|
||||||
inventoryInfoService.recallByOrderCode(Collections.singletonList(projectOrderInfo.getOrderCode()));
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -365,10 +365,12 @@ public class InventoryDeliveryServiceImpl implements IInventoryDeliveryService {
|
||||||
|
|
||||||
Map<Long, List<ProjectProductInfo>> maintenanceTypeMap = projectProductInfos.stream().collect(Collectors.groupingBy(ProjectProductInfo::getProjectId));
|
Map<Long, List<ProjectProductInfo>> maintenanceTypeMap = projectProductInfos.stream().collect(Collectors.groupingBy(ProjectProductInfo::getProjectId));
|
||||||
|
|
||||||
// 查询标准硬件维保的产品信息
|
// 查询服务维保的产品信息
|
||||||
ProductInfo productInfo = new ProductInfo();
|
ProductInfo productInfo = new ProductInfo();
|
||||||
productInfo.setType(ProductInfo.ProductTypeEnum.HARDWARE_MAINTENANCE.getType());
|
productInfo.setType(ProductInfo.ProductTypeEnum.HARDWARE_MAINTENANCE.getType());
|
||||||
List<ProductInfo> productInfos = productInfoService.selectProductInfoList(productInfo);
|
List<ProductInfo> productInfos = productInfoService.selectProductInfoList(productInfo);
|
||||||
|
productInfo.setType(ProductInfo.ProductTypeEnum.SERVICE.getType());
|
||||||
|
productInfos.addAll(productInfoService.selectProductInfoList(productInfo));
|
||||||
// 设置服务等级和服务结束时间
|
// 设置服务等级和服务结束时间
|
||||||
for (DeliveryInfoVo deliveryInfoVo : resultList) {
|
for (DeliveryInfoVo deliveryInfoVo : resultList) {
|
||||||
updateDeliveryInfoVo(deliveryInfoVo, maintenanceTypeMap, productInfos);
|
updateDeliveryInfoVo(deliveryInfoVo, maintenanceTypeMap, productInfos);
|
||||||
|
|
|
||||||
|
|
@ -360,8 +360,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
LEFT JOIN project_info t2 ON t1.project_id = t2.id
|
LEFT JOIN project_info t2 ON t1.project_id = t2.id
|
||||||
LEFT JOIN agent_info t3 ON t2.agent_code = t3.agent_code
|
LEFT JOIN agent_info t3 ON t2.agent_code = t3.agent_code
|
||||||
LEFT JOIN customer_info t4 ON t2.customer_code = t4.customer_code
|
LEFT JOIN customer_info t4 ON t2.customer_code = t4.customer_code
|
||||||
where t1.order_code in ( select DISTINCT order_code from oms_inventory_outer where outer_code in (SELECT outer_code from oms_inventory_delivery where delivery_status=1)
|
where (
|
||||||
)
|
CAST(ifnull(t1.version_code,0) + ifnull(t1.operation_version,0) AS SIGNED) > 1 or
|
||||||
|
t1.order_code in ( select DISTINCT order_code from oms_inventory_outer where outer_code in (SELECT outer_code from oms_inventory_delivery where delivery_status=1))
|
||||||
|
)
|
||||||
<choose>
|
<choose>
|
||||||
<when test="updateTimeStart!=null and updateTimeEnd!=null">
|
<when test="updateTimeStart!=null and updateTimeEnd!=null">
|
||||||
and t1.update_time between #{updateTimeStart} and #{updateTimeEnd}
|
and t1.update_time between #{updateTimeStart} and #{updateTimeEnd}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue