diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/table/index.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/table/index.js index b9f5c709..d820c71a 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/table/index.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/table/index.js @@ -3,40 +3,40 @@ import { reactive, ref } from "vue"; export default { template: html`
-
+
-
+
diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/_options.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/_options.js index 2cbfcc14..43951e3c 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/_options.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/_options.js @@ -36,6 +36,98 @@ const businessType = { { value: 8, label: "印度件" }, ], }; -export default businessType; -export { version, state, state2, state3 }; +const transType = { + title: "事务类型", + type: "string", + input: "select", + options: [ + { value: -1, label: "退货" }, + { value: 1, label: "发货" }, + ], +}; + +const deliverBillType = { + title: "发运主类型", + type: "string", + input: "select", + options: [ + { value: 0, label: "无" }, + { value: 1, label: "JIS件" }, + { value: 2, label: "JIT直供件" }, + { value: 3, label: "印度件" }, + { value: 4, label: "北汽4S备件" }, + ], +}; + +const deliverSubBillType = { + title: "发运子类型", + type: "string", + input: "select", + options: [ + { value: 0, label: "无" }, + { value: 1, label: "保险杠BBAC" }, + { value: 2, label: "保险杠HBPO" }, + { value: 3, label: "买单件保险杠BBAC" }, + { value: 4, label: "买单件保险杠HBPO" }, + { value: 5, label: "买单件小件BBAC" }, + { value: 6, label: "买单件小件HBPO" }, + { value: 7, label: "小件BBAC" }, + { value: 8, label: "小件HBPO" }, + { value: 9, label: "JIT直供件BBAC" }, + { value: 10, label: "JIT直供件HBPO" }, + { value: 11, label: "印度件BBAC" }, + { value: 12, label: "北汽4S备件BBAC" }, + ], +}; + +const proType = { + title: "业务类型", + type: "string", + input: "select", + options: [ + { value: 0, label: "无" }, + { value: 1, label: "Jit发货" }, + { value: 2, label: "Jit补发订单" }, + { value: 3, label: "Jit备件" }, + { value: 4, label: "Jit买单件" }, + { value: 5, label: "Jit匹配件" }, + { value: 6, label: "Jis发货" }, + { value: 7, label: "Jis备件" }, + { value: 8, label: "Jis买单件" }, + { value: 9, label: "Jis匹配件" }, + { value: 10, label: "Jis补发订单" }, + { value: 11, label: "Jis退货" }, + { value: 12, label: "Jis备件退货" }, + { value: 13, label: "Jis买单件退货" }, + { value: 14, label: "Jis匹配件退货" }, + { value: 15, label: "Jis补发订单退货" }, + { value: 16, label: "Jit退货" }, + { value: 17, label: "Jit备件退货" }, + { value: 18, label: "Jit买单件退货" }, + { value: 19, label: "Jit匹配件退货" }, + { value: 20, label: "Jit补发订单退货" }, + { value: 21, label: "北汽4S发货" }, + { value: 22, label: "HBPO发货" }, + { value: 23, label: "直供件发货" }, + { value: 24, label: "印度件发货" }, + { value: 25, label: "北汽4S退货" }, + { value: 26, label: "HBPO退货" }, + { value: 27, label: "直供件退货" }, + { value: 28, label: "印度件退货" }, + ], +}; + +const billState = { + title: "状态", + type: "string", + input: "select", + options: [ + { value: 0, label: "新建" }, + { value: 1, label: "部分执行" }, + { value: 2, label: "完成" }, + ], +}; + +export default businessType; +export { version, state, state2, state3, transType, deliverBillType, deliverSubBillType, proType, billState }; diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/input/fa-yun.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/input/fa-yun.js index dca0e093..a7cea341 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/input/fa-yun.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/input/fa-yun.js @@ -1,92 +1,155 @@ -const schema = { - title: "JIS发运数据", +import { version, transType, deliverBillType, deliverSubBillType, proType, billState } from "../_options.js"; + +const schema1 = { + title: "发运数据", type: "object", properties: { - wmsBillNum: { - title: "发货单号", + version, + shippingDate: { + title: "发货时间", type: "string", + input: "datetime", }, - num: { - title: "单据编号", + wmsBillNum: { + title: "WMS发货单号", type: "string", }, - billTime: { - title: "发货时间", + lu: { + title: "客户零件号", type: "string", - input: "datetime", }, - oper: { - title: "发货人", + factoryPartCode: { + title: "厂内零件号", type: "string", }, - orderNum: { - title: "排序单号", + pn: { + title: "生产号", type: "string", }, - seq: { - title: "订单序号", - type: "string", + // 已废除 + // keyCode: { + // hidden: true, + // }, + qty: { + type: "number", + title: "数量", }, - realCode: { - title: "实际生产码", + jisNum: { + title: "JIT订单号", type: "string", }, vinCode: { - title: "订单生产码", + title: "JIT排序生产码", type: "string", }, codeType: { - title: "生产码类型", - type: "string", - }, - realPartCode: { - title: "实际零件号", + title: "JIT排序生产码类型", type: "string", }, partCode: { title: "零件号", type: "string", }, + realPartCode: { + title: "真实零件号", + type: "string", + }, batch: { title: "批次", type: "string", }, - mesConfigCode: { - title: "MES配置码", + custPartCode: { + title: "客户零件号", type: "string", }, - fromLoc: { - title: "来源库位", + seq: { + title: "订单序号", type: "string", }, - toLoc: { - title: "目标库位", + assembleData: { + title: "订单时间", type: "string", + input: "datetime", }, - refVinCode: { - title: "参照订单生产码", + deliverCode: { + title: "发货条码", type: "string", }, - billCharacter: { - title: "单据性质", + billNum: { + title: "发货单号", type: "string", }, - refBillNum: { - title: "发货关联单号", + billTime: { + title: "发货时间", type: "string", + input: "datetime", }, - erpToLoc: { - title: "Erp目标库位", + oper: { + title: "发货人", + type: "string", + }, + factory: { + title: "工厂", + type: "string", + }, + mesConfigCode: { + title: "MES配置码", + type: "string", + }, + toLoc: { + title: "目标库位", + type: "string", + }, + // 已废除 + // billType: { + // }, + // 已废除 + // subBillType: {, + // }, + transType, + deliverBillType, + deliverSubBillType, + billCharacter: { + title: "单据性质", type: "string", }, origiCode: { title: "原生产码", type: "string", }, + partDesc: { + title: "描述", + type: "string", + }, remark: { title: "备注", type: "string", }, + proType, + orderNum: { + title: "JIS排序单号", + type: "string", + }, + realCode: { + title: "JIS实际生产码", + type: "string", + }, + fromLoc: { + title: "来源库位", + type: "string", + }, + refVinCode: { + title: "参照订单生产码", + type: "string", + }, + refBillNum: { + title: "发货关联单号", + type: "string", + }, + erpToLoc: { + title: "Erp目标库位", + type: "string", + }, uniqueCode: { title: "塑件唯一码", type: "string", @@ -99,29 +162,166 @@ const schema = { title: "虚拟小总成", type: "string", }, - deliverCode: { - title: "发货条码", + state: billState, + createTime: { + title: "创建时间", + type: "string", + input: "datetime", + }, + isHaveEdiData: { + title: "是否有EDI数据", + type: "boolean", + }, + }, +}; + +const schema2 = { + title: "发运数据", + type: "object", + properties: { + assembleData: { + title: "订单时间", + type: "string", + input: "datetime", + }, + batch: { + title: "批次", + type: "string", + }, + billNum: { + title: "发货单号", + type: "string", + }, + billTime: { + title: "发货时间", + type: "string", + input: "datetime", + }, + custId: { + title: "客户", + type: "string", + }, + // 已废除 + // billType: { + // }, + createTime: { + title: "创建时间", + type: "string", + input: "datetime", + }, + custPartCode: { + title: "客户零件号", + type: "string", + }, + deliverBillType, + deliverSubBillType, + deliveryHose: { + title: "发货仓库", + type: "string", + }, + deliveryIndex: { + title: "交付索引", + type: "string", + }, + dnBillNum: { + title: "DN单据号", + type: "string", + }, + dnBillTime: { + title: "DN单据时间", + type: "string", + input: "datetime", + }, + dnOper: { + title: "DN单添加人", type: "string", }, - position: { - title: "客户位置", + factoryPartCode: { + title: "厂内零件号", + type: "string", + }, + fromErpLocCode: { + title: "来源ERP库存", + type: "string", + }, + fromHose: { + title: "来源仓库", + type: "string", + }, + fromLocCode: { + title: "来源库位", + type: "string", + }, + // keyCode: { + // title: "组合键值", + // type: "string", + // }, + lu: { + title: "客户零件号", + type: "string", + }, + oper: { + title: "发货人", + type: "string", + }, + partCode: { + title: "零件号", + type: "string", + }, + pn: { + title: "生产号", + type: "string", + }, + proType, + qty: { + title: "数量", + type: "number", + }, + remark: { + title: "备注", + type: "string", + }, + shippingDate: { + title: "发货时间", + type: "string", + input: "datetime", + }, + state: billState, + //subBillType, + toErpLocCode: { + title: "目标Erp库位", + type: "string", + }, + toHose: { + title: "目标仓库", + type: "string", + }, + toLocCode: { + title: "目标库位", + type: "string", + }, + transType, + version, + wmsBillNum: { + title: "WMS发货单号", type: "string", }, }, }; export default function (businessType) { + let schema = null; let service = null; - let syncService = null; + const syncService = "hand-se-sync/sync"; if (businessType === "JisBBAC") { + schema = schema1; service = "bbac_se_detail_service"; - syncService = "bbacse-sync/invoke"; } else if (businessType === "JisHBPO") { + schema = schema1; service = "hbpo_se_detail_service"; - syncService = "hbpose-sync/invoke"; } else { + schema = schema2; service = "pub_se_detail_service"; - syncService = "hand-se-sync/sync"; } const queryUrl = `settleaccount/${service}/get-list`; const exportUrl = `settleaccount/${service}/export`; diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/settle/commerce.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/settle/commerce.js index 535e3b8c..63b72cca 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/settle/commerce.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/settle/commerce.js @@ -65,7 +65,7 @@ export default function (businessType, type) { service = "invoice_service"; } const queryUrl = `settleaccount/${service}/main-query`; - const exportUrl = `settleaccount/${service}/export`; + const exportUrl = `settleaccount/invoice_service/export-detail`; const invoiceUrl = `settleaccount/${service}/generate-invoice`; const receivedUrl = `settleaccount/${service}/received`; const rejectUrl = `settleaccount/${service}/reject`; diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/router/business.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/router/business.js index 9f6ce240..a32f0b32 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/router/business.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/router/business.js @@ -87,7 +87,7 @@ function createCommerceCheckList(path, business, client, title = "商务审批") createButton("query", "title=查询&isTop=true"), createButton("approval", "title=商务审核通过&isTop=true"), createButton("reject", "title=退回"), - createButton("export", "title=导出&isTop=true&pattern=paged"), + createButton("export-group", "title=导出发票分组&pattern=paged"), createButton("receive", "title=客户已收票&isTop=true"), ], }; diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/base-data/user.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/base-data/user.js index f7a38935..58525a07 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/base-data/user.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/base-data/user.js @@ -15,7 +15,7 @@ export default { const url = `base/user/${rows[0].id}/${item.path}`; await appListRef.value.action( async () => await request(url, null, { method: item.meta.method }), - `是否重置用户${rows[0].userName}密码`, + `是否重置用户${rows[0].userName}密码?`, `${rows[0].userName}密码已经重置为123456` ); } diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/input/fa-yun.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/input/fa-yun.js index 72f4cc63..6eb00d2e 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/input/fa-yun.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/input/fa-yun.js @@ -1,13 +1,15 @@ import AppList from "../../components/list/index.js"; import html from "html"; +import { ref } from "vue"; import { useRoute } from "vue-router"; import useConfig from "../../models/input/fa-yun.js"; import request from "../../request/index.js"; export default { components: { AppList }, - template: html``, + template: html``, setup() { + const appListRef = ref(null); const route = useRoute(); const businessType = route.meta.businessType; const config = useConfig(businessType); @@ -16,9 +18,9 @@ export default { if (item.path === "sync") { const url = config.edit.syncUrl; const method = config.edit.syncMethod; - await request(url, route.meta.businessType, { method }); + await appListRef.value.action(async () => await request(url, route.meta.businessType, { method }), `确认手动同步吗?`); } }; - return { config, onCommand }; + return { appListRef, config, onCommand }; }, }; diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/_check.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/_check.js index ca438ee3..5e51a00f 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/_check.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/_check.js @@ -70,12 +70,12 @@ export default { - + - + @@ -280,6 +280,24 @@ export default { ...columns4.properties, }, }; + const setup2columns = { + lu: { + type: "string", + title: "零件号", + }, + price: { + type: "number", + title: "单价", + }, + qty: { + type: "number", + title: "数量", + }, + amt: { + type: "number", + title: "金额", + }, + }; delete columns5.properties["oldInvBillNum"]; delete columns5.properties["invGroupNum"]; //显示重开发票对话框 @@ -290,6 +308,8 @@ export default { const adjListRef = ref(null); const addDialogVisible = ref(false); const importDialogVisible = ref(false); + const setup2table1Ref = ref(null); + const setup2table2Ref = ref(null); const showSetupDialog = () => { //重开发票号 //invBillNum= @@ -422,19 +442,39 @@ export default { const next = async () => { if (setupRef.value === 1) { try { - // const url = "settleaccount/adj_service/check-import"; - // const result = await request(url, adjList.value, { method: "POST" }); - // if (!result.errors) { - // if (result.data?.code === 200) { - // setupRef.value += 1; - // } else if (result.data?.code === 400 && result.data.fileName) { - // window.open(getUrl(`settleaccount/getblobfile/download/${result.data.fileName}`)); - // } - // } setupRef.value += 1; + //处理高亮 + nextTick(() => { + console.log(setup2table1Ref.value); + console.log(setup2table2Ref.value); + const list1 = setup2table1Ref.value.tableRef.querySelectorAll(".row.data"); + const list2 = setup2table2Ref.value.tableRef.querySelectorAll(".row.data"); + list1.forEach((o) => { + const key = o.querySelector(".lu").innerText; + var qty = o.querySelector(".qty"); + var qtyValue = qty.innerText; + var qty2 = Array.from(list2).find((o) => o.querySelector(".lu").innerText === key); + var qtyValue2 = qty2?.innerText; + if (qtyValue !== qty2) { + qty.classList.addClass("diff"); + qty2?.addClass("diff"); + } + }); + }); } catch (e) { console.log(e); } + } else if (setupRef.value === 2) { + // const url = "settleaccount/adj_service/check-import"; + // const result = await request(url, adjList.value, { method: "POST" }); + // if (!result.errors) { + // if (result.data?.code === 200) { + // setupRef.value += 1; + // } else if (result.data?.code === 400 && result.data.fileName) { + // window.open(getUrl(`settleaccount/getblobfile/download/${result.data.fileName}`)); + // } + // } + setupRef.value += 1; } else { setupRef.value += 1; } @@ -465,6 +505,7 @@ export default { columns3, columns4, columns5, + setup2columns, showSetupDialog, setupRef, setupDialogVisable, @@ -485,6 +526,8 @@ export default { importAdj, scrollRef, next, + setup2table1Ref, + setup2table2Ref, }; }, }; diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/commerce.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/commerce.js index 941ae5f7..48af9dd5 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/commerce.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/commerce.js @@ -46,6 +46,23 @@ export default { appListRef.value.tableLoading = false; } } + } else if (item.path === "export-group") { + const url = config.edit.exportUrl; + const method = config.edit.exportMethod; + const postData = { + filters: [ + { + logic: "and", + column: "invGroupNum", + action: "equal", + value: rows[0]["invGroupNum"], + }, + ], + }; + const response = await request(url, postData, { method }); + if (!response.errors) { + window.open(getUrl(`settleaccount/getblobfile/download/${response.data}`)); + } } else if (item.path === "invbillNum" || item.path === "invGroupNum") { data.value = { [item.path]: rows[0][item.path] }; visable.value = true; diff --git a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/HandSeSyncAppService.cs b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/HandSeSyncAppService.cs index 6ff75cf8..c767583d 100644 --- a/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/HandSeSyncAppService.cs +++ b/code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/HandSeSyncAppService.cs @@ -36,10 +36,10 @@ public class HandSeSyncAppService : ApplicationService EnumBusinessType.JisHBPO => scope.ServiceProvider.GetRequiredService(), EnumBusinessType.MaiDanJianBBAC => scope.ServiceProvider.GetRequiredService(), EnumBusinessType.MaiDanJianHBPO => scope.ServiceProvider.GetRequiredService(), - //EnumBusinessType.ZhiGongJianBBAC => scope.ServiceProvider.GetRequiredService(), + EnumBusinessType.ZhiGongJianBBAC => scope.ServiceProvider.GetRequiredService(), EnumBusinessType.ZhiGongJianHBPO => scope.ServiceProvider.GetRequiredService(), - //EnumBusinessType.BeiJian => scope.ServiceProvider.GetRequiredService(), - //EnumBusinessType.YinDuJian => scope.ServiceProvider.GetRequiredService(), + EnumBusinessType.BeiJian => scope.ServiceProvider.GetRequiredService(), + EnumBusinessType.YinDuJian => scope.ServiceProvider.GetRequiredService(), _ => throw new ArgumentOutOfRangeException(nameof(businessType), $"Not expected direction value: {businessType}"), }; await jitSeSyncAppService.Invoke().ConfigureAwait(false);