学 赵 1 year ago
parent
commit
c954190e7f
  1. 16
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/table/index.js
  2. 96
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/_options.js
  3. 292
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/input/fa-yun.js
  4. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/settle/commerce.js
  5. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/router/business.js
  6. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/base-data/user.js
  7. 8
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/input/fa-yun.js
  8. 65
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/_check.js
  9. 17
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/commerce.js
  10. 6
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/Syncs/HandSeSyncAppService.cs

16
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`<div class="app-table el-table" ref="tableRef">
<div class="row">
<div class="row header">
<template v-for="(item,key) in columns.properties">
<div class="cell el-table__cell" v-if="item.input==='selection'">
<div class="cell el-table__cell selection" v-if="item.input==='selection'">
<div class="cell" style="text-align:center;">
<input class="el-checkbox__input" type="checkbox" v-model="checkAll" :indeterminate="checkAllIndeterminate" @click="checkAllClick($event)" />
</div>
</div>
<template v-else-if="item.type==='object'">
<template v-for="(item2,key2) in item.properties">
<div class="cell el-table__cell" v-if="!item2.hidden">
<div class="cell el-table__cell" :class="key+'.'+key2" v-if="!item2.hidden">
<div class="cell">{{item2.title}}</div>
</div>
</template>
</template>
<div class="cell el-table__cell" v-else-if="!item.hidden">
<div class="cell el-table__cell" :class="key" v-else-if="!item.hidden">
<div class="cell">{{item.title}}</div>
</div>
</template>
</div>
<div v-for="(row,index) in data" class="row">
<div v-for="(row,index) in data" class="row data">
<template v-for="(item,key) in columns.properties">
<div class="cell el-table__cell" v-if="item.input==='selection'">
<div class="cell el-table__cell selection" v-if="item.input==='selection'">
<div class="cell" style="text-align:center;" v-if="item.input==='selection'">
<input class="el-checkbox__input row" type="checkbox" :value="index" @click="checkClick" />
</div>
</div>
<template v-else-if="item.type==='object'">
<template v-for="(item2,key2) in item.properties">
<div class="cell el-table__cell" v-if="!item2.hidden">
<div class="cell el-table__cell" :class="key+'.'+key2" v-if="!item2.hidden">
<div class="cell" v-if="row[key]&&!item.hidden">{{row[key][key2]}}</div>
</div>
</template>
</template>
<div class="cell el-table__cell" v-else-if="!item.hidden">
<div class="cell el-table__cell" :class="key" v-else-if="!item.hidden">
<div class="cell">{{row[key]}}</div>
</div>
</template>

96
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 };

292
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`;

2
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`;

2
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"),
],
};

2
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`
);
}

8
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`<app-list :config="config" @command="onCommand" />`,
template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`,
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 };
},
};

65
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/settle/_check.js

@ -70,12 +70,12 @@ export default {
<el-row style="width:100%;height:100%;padding:10px;">
<el-col :span="12" style="height:100%;padding:0 5px 0 0;">
<el-scrollbar>
<app-table :data="model.invoicE_WAIT_DETAIL" :columns="columns2" />
<app-table ref="setup2table1Ref" :data="model.invoicE_WAIT_DETAIL" :columns="columns2" />
</el-scrollbar>
</el-col>
<el-col :span="12" style="height:100%;padding:0 0 0 5px;">
<el-scrollbar>
<app-table :data="model.invoicE_WAIT_DETAIL" :columns="columns2" />
<app-table ref="setup2table2Ref" :data="adjList" :columns="columns5" />
</el-scrollbar>
</el-col>
</el-row>
@ -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,
};
},
};

17
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;

6
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<JisHBPOSeSyncAppService>(),
EnumBusinessType.MaiDanJianBBAC => scope.ServiceProvider.GetRequiredService<MaiDanBBACSeSyncAppService>(),
EnumBusinessType.MaiDanJianHBPO => scope.ServiceProvider.GetRequiredService<MaiDanHBPOSeSyncAppService>(),
//EnumBusinessType.ZhiGongJianBBAC => scope.ServiceProvider.GetRequiredService<ZhiGongBBACSeSyncAppService>(),
EnumBusinessType.ZhiGongJianBBAC => scope.ServiceProvider.GetRequiredService<ZhiGongBBACSeSyncAppService>(),
EnumBusinessType.ZhiGongJianHBPO => scope.ServiceProvider.GetRequiredService<ZhiGongHBPOSeSyncAppService>(),
//EnumBusinessType.BeiJian => scope.ServiceProvider.GetRequiredService<BeiSeSyncAppService>(),
//EnumBusinessType.YinDuJian => scope.ServiceProvider.GetRequiredService<YinDuSeSyncAppService>(),
EnumBusinessType.BeiJian => scope.ServiceProvider.GetRequiredService<BeiSeSyncAppService>(),
EnumBusinessType.YinDuJian => scope.ServiceProvider.GetRequiredService<YinDuSeSyncAppService>(),
_ => throw new ArgumentOutOfRangeException(nameof(businessType), $"Not expected direction value: {businessType}"),
};
await jitSeSyncAppService.Invoke().ConfigureAwait(false);

Loading…
Cancel
Save