mahao 1 year ago
parent
commit
93d5449b78
  1. 17
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/api/user.js
  2. 8
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/assets/demo/index.html
  3. 1987
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/assets/demo/lib/pinia.esm-browser.js
  4. 3613
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/assets/demo/lib/vue-router.esm-browser.js
  5. 15377
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/assets/demo/lib/vue.esm-browser.js
  6. 6
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/assets/demo/pages/component.html
  7. 102
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/form/form-input.js
  8. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/form/form-item.js
  9. 126
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/list/index.js
  10. 4
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/index.html
  11. 13
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/businessType.js
  12. 200
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/adjust.js
  13. 6
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/backup.js
  14. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/balance.js
  15. 23
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/inventory.js
  16. 92
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/log.js
  17. 60
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/vmi.js
  18. 6
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/invoice/invoice_map_group.js
  19. 49
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-bbac/input/bbac_sa_detail_service.js
  20. 54
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-bbac/input/bbac_sa_service.js
  21. 4
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-bbac/input/bbac_se_detail_service.js
  22. 18
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-bbac/settlement/bbac_can_sa_detail_service.js
  23. 48
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-hbpo/input/hbpo_sa_detail_service.js
  24. 62
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-hbpo/input/hbpo_sa_service.js
  25. 4
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-hbpo/input/hbpo_se_detail_service.js
  26. 18
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-hbpo/settlement/hbpo_can_sa_detail_service.js
  27. 4
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/job-service.js
  28. 16
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/pub_can_sa_detail_service.js
  29. 3
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/tb_re-parts-relationship_service.js
  30. 14
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/request/index.js
  31. 689
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/router/business.js
  32. 4
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/utils/validation.js
  33. 12
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/bj/contrast/bj_pub_sa_detail_jobservice.js
  34. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/bj/input/bj_pub_sa_detail_service.js
  35. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/bj/input/bj_pub_sa_service.js
  36. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/bj/input/bj_pub_se_detail_service.js
  37. 40
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/home.js
  38. 12
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/in/contrast/in_pub_sa_detail_jobservice.js
  39. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/in/input/in_pub_sa_detail_service.js
  40. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/in/input/in_pub_sa_service.js
  41. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/in/input/in_pub_se_detail_service.js
  42. 15
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/inventory/adjust.js
  43. 61
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/invoice/invoice_map_group.js
  44. 12
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/contrast/bbac_jit_pub_sa_detail_jobservice.js
  45. 12
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/contrast/hbpo_jit_pub_sa_detail_jobservice.js
  46. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/bbac_jit_pub_sa_detail_service.js
  47. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/bbac_jit_pub_sa_service.js
  48. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/bbac_jit_pub_se_detail_service.js
  49. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/hbpo_jit_pub_sa_detail_service.js
  50. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/hbpo_jit_pub_sa_service.js
  51. 2
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/hbpo_jit_pub_se_detail_service.js
  52. 6
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/login.js
  53. 24
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/contrast/md_pub_sa_detail_jobservice.js
  54. 16
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/input/md_pub_sa_detail_service.js
  55. 16
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/input/md_pub_sa_service.js
  56. 16
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/input/md_pub_se_detail_service.js
  57. 15
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_ba_detail_service.js
  58. 15
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_ba_service.js
  59. 15
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_can_sa_detail_service.js
  60. 15
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_can_sa_service.js
  61. 15
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_not_sa_service.js
  62. 15
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_pd_detail_service.js
  63. 15
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_pd_service.js
  64. 19
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/VmiAppService.cs

17
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/api/user.js

@ -22,21 +22,6 @@ const isLogin = async () => {
return false; return false;
}; };
const login = async (data) => {
const url = "connect-token";
const appStore = useAppStore();
const result = await post(url, data, { headers: { "Content-Type": "application/x-www-form-urlencoded" } }, true);
if (!result.errors) {
appStore.token = result.data.access_token;
setRefreshToken(result.data.refresh_token);
appStore.user = await getUser();
await refreshRouter();
const redirect = router.currentRoute.value.query?.redirect ?? "/";
router.push(redirect);
}
return result;
};
const logout = () => { const logout = () => {
const appStore = useAppStore(); const appStore = useAppStore();
appStore.token = null; appStore.token = null;
@ -87,4 +72,4 @@ const removeRefreshToken = () => {
connection.stop(); connection.stop();
}; };
export { isLogin, login, logout, getAccessToken, setAccessToken, setRefreshToken, getUser, hasPermission }; export { isLogin, logout, getAccessToken, setAccessToken, setRefreshToken, getUser, hasPermission };

8
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/assets/demo/index.html

@ -46,9 +46,9 @@
<script type="importmap"> <script type="importmap">
{ {
"imports": { "imports": {
"vue": "./lib/vue.esm-browser.js", "vue": "/lib/vue/vue.esm-browser.js",
"vue-router": "./lib/vue-router.esm-browser.js", "vue-router": "/lib/vue-router/vue-router.esm-browser.js",
"pinia": "./lib/pinia.esm-browser.js" "pinia": "/lib/pinia/pinia.esm-browser.js"
} }
} }
</script> </script>
@ -82,4 +82,4 @@
</script> </script>
</body> </body>
</html> </html>

1987
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/assets/demo/lib/pinia.esm-browser.js

File diff suppressed because it is too large

3613
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/assets/demo/lib/vue-router.esm-browser.js

File diff suppressed because it is too large

15377
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/assets/demo/lib/vue.esm-browser.js

File diff suppressed because it is too large

6
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/assets/demo/pages/component.html

@ -13,9 +13,9 @@
<script type="importmap"> <script type="importmap">
{ {
"imports": { "imports": {
"vue": "../lib/vue.esm-browser.js", "vue": "/lib/vue/vue.esm-browser.js",
"vue-router": "../lib/vue-router.esm-browser.js", "vue-router": "/lib/vue-router/vue-router.esm-browser.js",
"pinia": "../lib/pinia.esm-browser.js" "pinia": "/lib/pinia/pinia.esm-browser.js"
} }
} }
</script> </script>

102
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/form/form-input.js

@ -1,8 +1,9 @@
import html from "html"; import html from "html";
import { ref, reactive, watch, onMounted } from "vue"; import { ref, reactive, watch, onMounted, nextTick } from "vue";
import { dayjs } from "element-plus"; import { dayjs } from "element-plus";
import request from "../../request/index.js"; import request from "../../request/index.js";
import { importFunction } from "../../utils/index.js"; import { importFunction, bytesFormat } from "../../utils/index.js";
import { ElMessage, useFormItem } from "element-plus";
export default { export default {
template: html` template: html`
@ -32,20 +33,12 @@ export default {
<template v-else-if="getInput(schema)==='month'"> <template v-else-if="getInput(schema)==='month'">
<el-date-picker v-model="model[prop]" :type="schema.input" :value-format="schema.format" /> <el-date-picker v-model="model[prop]" :type="schema.input" :value-format="schema.format" />
</template> </template>
<el-input <template v-else-if="getInput(schema)==='number'">
:disabled="getDisabled()" <el-input :disabled="getDisabled()" :placeholder="schema.title" v-model="model[prop]" type="number" />
:placeholder="schema.title" </template>
v-model="model[prop]" <template v-else-if="getInput(schema)==='integer'">
type="number" <el-input-number :disabled="getDisabled()" :placeholder="schema.title" v-model="model[prop]" :precision="0" />
v-else-if="getInput(schema)==='number'" </template>
/>
<el-input-number
:disabled="getDisabled()"
:placeholder="schema.title"
v-model="model[prop]"
:precision="0"
v-else-if="getInput(schema)==='integer'"
/>
<template v-else-if="getInput(schema)==='boolean'"> <template v-else-if="getInput(schema)==='boolean'">
<el-select :disabled="getDisabled()" v-model="model[prop]" :placeholder="schema.title" v-if="schema.nullable"> <el-select :disabled="getDisabled()" v-model="model[prop]" :placeholder="schema.title" v-if="schema.nullable">
<el-option prop="select" value="" :label="$t('select')" /> <el-option prop="select" value="" :label="$t('select')" />
@ -54,23 +47,41 @@ export default {
</el-select> </el-select>
<el-switch v-model="model[prop]" type="checked" v-else /> <el-switch v-model="model[prop]" type="checked" v-else />
</template> </template>
<template v-else-if="getInput(schema)==='file'">
<el-upload
ref="uploadRef"
v-model:file-list="model[prop]"
class="upload"
drag
:accept="schema.accept"
:multiple="schema.multiple"
:limit="limit"
:auto-upload="false"
:on-change="handleChange"
>
<template #trigger>
<el-icon style="font-size:4em;">
<ep-upload-filled />
</el-icon>
</template>
<template #tip>
<div class="el-upload__tip">
<div>
单个文件大小限制{{ bytesFormat(size) }}上传数量限制{{ limit }}
<template v-if="schema.accept">上传文件类型{{ schema.accept }}</template>
</div>
</div>
</template>
</el-upload>
</template>
<template v-else> <template v-else>
<el-input
:clearable="!!schema.clearable"
:disabled="getDisabled()"
:placeholder="schema.title"
v-model="model[prop]"
type="password"
show-password
v-if="schema.input==='password'"
/>
<el-input <el-input
:clearable="!!schema.clearable" :clearable="!!schema.clearable"
:disabled="getDisabled()" :disabled="getDisabled()"
:placeholder="schema.title" :placeholder="schema.title"
v-model="model[prop]" v-model="model[prop]"
:type="schema.input??'text'" :type="schema.input??'text'"
v-else :show-password="schema.input==='password'"
/> />
</template> </template>
</template> </template>
@ -96,12 +107,44 @@ export default {
return schema.input ?? schema.type; return schema.input ?? schema.type;
}; };
/*end*/ /*end*/
//options //options
const selectProps = ref({}); const selectProps = ref({});
const selectValues = ref([]); const selectValues = ref([]);
const options = ref([]); const options = ref([]);
//watch
//upload
const fileList = ref([]);
const limit = props.schema.multiple ? props.schema.limit ?? 5 : 1;
const size = props.schema.size ?? 1024 * 1024;
const fileTypes = props.schema.accept?.split(",").map((o) => o.toLowerCase()) ?? [];
const { formItem } = useFormItem();
const handleChange = async (uploadFile, uploadFiles) => {
const ext = uploadFile.name.substr(uploadFile.name.lastIndexOf("."));
const index = uploadFiles.findIndex((o) => o.uid !== uploadFile.uid);
if (props.schema.accept && !fileTypes.some((o) => o === ext)) {
ElMessage.error(`当前文件 ${uploadFile.name} 不是可选文件类型 ${props.schema.accept}`);
uploadFiles.splice(index, 1);
return false;
}
if (uploadFile.size > size) {
ElMessage.error(`当前文件大小 ${bytesFormat(uploadFile.size)} 已超过 ${bytesFormat(size)}`);
uploadFiles.splice(index, 1);
return false;
}
if (uploadFiles.length) {
model[props.prop] = props.schema.multiple ? uploadFiles : uploadFiles[0];
} else {
model[props.prop] = props.schema.multiple ? [] : null;
}
try {
await formItem.validate();
} catch (error) {
console.log(error);
}
};
//watch
watch( watch(
() => model[props.prop], () => model[props.prop],
async (value) => { async (value) => {
@ -143,6 +186,11 @@ export default {
selectProps, selectProps,
selectValues, selectValues,
options, options,
bytesFormat,
fileList,
limit,
size,
handleChange,
}; };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/form/form-item.js

@ -10,7 +10,7 @@ export default {
template: html` template: html`
<template v-if="!schema.hidden"> <template v-if="!schema.hidden">
<template v-if="schema.type==='object'"></template> <template v-if="schema.type==='object'"></template>
<template v-else-if="schema.type!=='array'||schema.items.type!=='array'"> <template v-else-if="schema.type!=='array'||schema.items?.type!=='array'">
<el-form-item <el-form-item
:title="prop" :title="prop"
:label="schema.title" :label="schema.title"

126
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/list/index.js

@ -263,25 +263,15 @@ export default {
</template> </template>
<template v-else-if="editFormMode==='import'"> <template v-else-if="editFormMode==='import'">
<app-form <app-form
mode="import" ref="importFormRef"
mode="update"
label-position="left" label-position="left"
:schema="config.import?.schema" :schema="config.import?.schema"
v-model="importModel" v-model="importModel"
:hideButton="true" :hideButton="true"
:isQueryForm="true" :isQueryForm="true"
style="height:100%;"
> >
<el-form-item :label="$t('文件')" label-width="80px">
<el-upload
ref="uploadRef"
class="upload"
drag
accept=".xlsx"
:auto-upload="false"
:on-change="handleChange"
>
<el-icon class="el-icon--upload"><ep-upload-filled /></el-icon>
</el-upload>
</el-form-item>
</app-form> </app-form>
</template> </template>
<template v-else-if="editFormMode==='filter'"> <template v-else-if="editFormMode==='filter'">
@ -408,6 +398,7 @@ export default {
const tableSchema = ref({}); const tableSchema = ref({});
const tableData = ref([]); const tableData = ref([]);
const editFormRef = ref(null); const editFormRef = ref(null);
const importFormRef = ref(null);
const editFormloading = ref(false); const editFormloading = ref(false);
const editFormMode = ref(null); const editFormMode = ref(null);
const editFormTitle = ref(""); const editFormTitle = ref("");
@ -424,11 +415,27 @@ export default {
businessType: route.meta.businessType, businessType: route.meta.businessType,
}; };
const exportModel = ref(defaultExportModel); const exportModel = ref(defaultExportModel);
const defaultImportModel = config.import?.schema ? schemaToModel(config.import.schema) : {}; //
const importModel = ref(defaultImportModel); config.import ??= { schema: { type: "object", properties: {} } };
const factories = ref([]); config.import.schema.properties.files ??= {
title: "文件",
type: "array",
multiple: true,
input: "file",
accept: ".xlsx",
default: [],
limit: 10,
size: 100 * 1024 * 1024,
rules: [
{
required: true,
trigger: "change",
},
],
};
const defaultImportModel = schemaToModel(config.import.schema);
const importModel = ref(null);
const versions = ref([]); const versions = ref([]);
const fileList = ref([]);
const getSortModel = (model) => { const getSortModel = (model) => {
(model.sorting ?? "") (model.sorting ?? "")
.split(",") .split(",")
@ -575,10 +582,6 @@ export default {
} }
} }
} }
// await post(
// url,
// rows.map((o) => o.id)
// );
await load(); await load();
} else if (item.path === "export") { } else if (item.path === "export") {
//export //export
@ -609,20 +612,7 @@ export default {
importModel.value = Object.assign({}, defaultImportModel); importModel.value = Object.assign({}, defaultImportModel);
editFormloading.value = true; editFormloading.value = true;
editFormTitle.value = `${t(item.path)}${config.query.schema.title}`; editFormTitle.value = `${t(item.path)}${config.query.schema.title}`;
fileList.value = [];
dialogVisible.value = true; dialogVisible.value = true;
// versions.value = (
// await request("settleaccount/centralized-control/get-all", null, { method: "POST" })
// ).data.items.map((o) => ({
// value: o.version,
// label: o.version,
// }));
// factories.value = (
// await request("settleaccount/code-setting/get-all", null, { method: "POST" })
// ).data.items.map((o) => ({
// value: o.project,
// label: o.project,
// }));
} catch (e) { } catch (e) {
console.log(e); console.log(e);
} finally { } finally {
@ -667,38 +657,47 @@ export default {
dialogVisible.value = false; dialogVisible.value = false;
editFormMode.value = null; editFormMode.value = null;
} else if (editFormMode.value === "compare") { } else if (editFormMode.value === "compare") {
// const postData = JSON.parse(JSON.stringify(queryModel.value));
// postData.filters = filterList.value.filter((o) => o.property && o.value);
// delete postData.query["items"];
// delete postData.query["id"];
// const url = `${baseUrl}/${editFormMode.value}?${qs.stringify(exportModel)}`;
// const response = await post(url, postData);
// download(response);
const url = config.edit.compareUrl; const url = config.edit.compareUrl;
await request(url, exportModel.value, { method: config.edit.compareMethod }); await request(url, exportModel.value, { method: config.edit.compareMethod });
dialogVisible.value = false; dialogVisible.value = false;
} else if (editFormMode.value === "import") { } else if (editFormMode.value === "import") {
editFormloading.value = true; try {
const url = config.edit.importUrl; const valid = await importFormRef.value.validate();
const formData = new FormData(); if (valid) {
// formData.append("version", importModel.value.version); editFormloading.value = true;
// // formData.append("factory", importModel.value.factory); const url = config.edit.importUrl;
// Object.keys(importModel.value).forEach((q) => {if(importModel.value) const formData = new FormData();
Object.keys(importModel.value).forEach((q) => { //
if (importModel.value[q]) { if (config.query.schema.properties.businessType?.default) {
formData.append(q, importModel.value[q]); formData.append("businessType", config.query.schema.properties.businessType.default);
}
Object.keys(importModel.value).forEach((propertyName) => {
if (importModel.value[propertyName]) {
const schema = config.import.schema.properties[propertyName];
const value = importModel.value[propertyName];
if (schema?.type === "array") {
importModel.value[propertyName].forEach((item) => {
formData.append(propertyName, schema.input === "file" ? item.raw : item);
});
} else {
formData.append(propertyName, schema.input === "file" ? value.raw : value);
}
}
});
const result = await request(url, formData);
if (result.data?.code === 200) {
editFormloading.value = false;
dialogVisible.value = false;
await load();
} else if (result.data?.code === 400 && result.data.fileName) {
window.open(getUrl(`settleaccount/getblobfile/download/${result.data.fileName}`));
}
} }
}); } catch (error) {
if (config.query.schema.properties.businessType?.default) { console.log(error);
formData.append("businessType", config.query.schema.properties.businessType.default); } finally {
} editFormloading.value = false;
for (let i = 0; i < fileList.value.length; i++) {
formData.append(`files`, fileList.value[i].raw);
} }
await post(url, formData);
editFormloading.value = false;
dialogVisible.value = false;
await load();
} else if (editFormMode.value === "filter") { } else if (editFormMode.value === "filter") {
await load(); await load();
dialogVisible.value = false; dialogVisible.value = false;
@ -728,9 +727,6 @@ export default {
const response = await get(url); const response = await get(url);
download(url, response.filename); download(url, response.filename);
}; };
const handleChange = (uploadFile, uploadFiles) => {
fileList.value = uploadFiles;
};
const getButtonDisabled = async (src, row) => { const getButtonDisabled = async (src, row) => {
if (src) { if (src) {
const method = await importFunction(src); const method = await importFunction(src);
@ -886,6 +882,7 @@ export default {
sortChange, sortChange,
getProp, getProp,
getImportTemplate, getImportTemplate,
importFormRef,
editFormRef, editFormRef,
editFormloading, editFormloading,
editFormMode, editFormMode,
@ -902,10 +899,7 @@ export default {
submit, submit,
showList, showList,
subListQuery, subListQuery,
fileList,
handleChange,
getButtonDisabled, getButtonDisabled,
factories,
versions, versions,
pushfilterList, pushfilterList,
getOperators, getOperators,

4
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/index.html

@ -49,7 +49,7 @@
"html":"./utils/index.js", "html":"./utils/index.js",
"detect-it":"./lib/detect-it/detect-it.esm.js", "detect-it":"./lib/detect-it/detect-it.esm.js",
"lodash":"./lib/lodash/lodash.esm.js", "lodash":"./lib/lodash/lodash.esm.js",
"vue": "./lib/vue/vue.esm-browser.prod.js", "vue": "./lib/vue/vue.esm-browser.js",
"vue-router": "./lib/vue-router/vue-router.esm-browser.js", "vue-router": "./lib/vue-router/vue-router.esm-browser.js",
"vue-i18n":"./lib/vue-i18n/vue-i18n.esm-browser.prod.js", "vue-i18n":"./lib/vue-i18n/vue-i18n.esm-browser.prod.js",
"pinia": "./lib/pinia/pinia.esm-browser.js", "pinia": "./lib/pinia/pinia.esm-browser.js",
@ -77,4 +77,4 @@
<script type="module" src="./main.js"></script> <script type="module" src="./main.js"></script>
</body> </body>
</html> </html>

13
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/businessType.js

@ -0,0 +1,13 @@
const options = [
{ value: 0, label: "未定义" },
{ value: 1, label: "JisBBAC" },
{ value: 2, label: "JisHBPO" },
{ value: 3, label: "直供件BBAC" },
{ value: 4, label: "直供件HBPO" },
{ value: 5, label: "买单件BBAC" },
{ value: 6, label: "买单件HBPO" },
{ value: 7, label: "备件" },
{ value: 8, label: "印度件" },
];
const businessType = { title: "业务类型", type: "string", input: "select", options };
export default businessType;

200
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/adjust.js

@ -0,0 +1,200 @@
import { billType, codeType, changedType, subBillType } from "./inventory.js";
const schema = {
title: "库存事务日志",
type: "object",
properties: {
changedNumber: {
title: "变动单号",
type: "string",
},
changedTime: {
title: "变动时间",
type: "string",
input: "dateTime",
},
changedType,
changedBy: {
title: "变动人",
type: "string",
},
partCode: {
title: "调整LU零件号",
type: "string",
},
customerPartCode: {
title: "调整客户零件号",
type: "string",
},
orderNum: {
title: "EDI原始订单号",
type: "string",
},
billType,
subBillType,
reMark: {
title: "备注",
type: "string",
},
vinCode: {
title: "调整生产码",
type: "string",
},
codeType,
qty: {
title: "调整生产码",
type: "number",
},
billTime: {
title: "发运日期",
type: "string",
},
billNum: {
title: "WMS发运单号",
type: "string",
},
deliverTime: {
title: "订单日期",
type: "string",
input: "datetime",
},
erpToLoc: {
title: "ERP库位",
type: "string",
},
},
};
const baseUrl = "settleaccount/vmi";
const queryUrl = `${baseUrl}/log`;
const detailsUrl = `${baseUrl}/get/%s`;
const createUrl = `${baseUrl}/create`;
const updateUrl = `${baseUrl}/update/%s`;
const deleteUrl = `${baseUrl}/delete-list`;
const importUrl = `${baseUrl}/code-setting-upload-excel-import`;
const exportUrl = `${baseUrl}/export`;
const queryMethod = "POST";
const detailsMethod = "POST";
const createMethod = "POST";
const updateMethod = "POST";
const deleteMethod = "POST";
const importMethod = "POST";
const exportMethod = "POST";
export default function () {
return {
query: {
url: queryUrl,
method: queryMethod,
hasFilter: true,
schema: {
title: "通用代码",
type: "object",
properties: {
filters: {
title: "项目",
type: "array",
hidden: true,
items: {
type: "object",
properties: {
logic: {
type: "int",
},
column: {
type: "string",
},
action: {
type: "int",
},
value: {
type: "string",
},
},
},
default: [
{
logic: "and",
column: "erpToLoc",
action: "like",
value: null,
readOnly: true,
},
{
logic: "and",
column: "createdDate",
action: "like",
value: null,
readOnly: true,
},
{
logic: "and",
column: "lu",
action: "like",
value: null,
readOnly: true,
},
{
logic: "and",
column: "tmpe4",
action: "like",
value: null,
readOnly: true,
},
{
logic: "and",
column: "vinCode",
action: "like",
value: null,
readOnly: true,
},
{
logic: "and",
column: "codeType",
action: "like",
value: null,
readOnly: true,
},
{
logic: "and",
column: "proType",
action: "like",
value: null,
readOnly: true,
},
],
},
skipCount: {
hidden: true,
default: 0,
},
maxResultCount: {
hidden: true,
default: 10,
},
sorting: {
hidden: true,
},
},
},
},
table: {
schema: schema,
},
edit: {
detailsUrl,
createUrl,
updateUrl,
deleteUrl,
importUrl,
exportUrl,
detailsMethod,
createMethod,
updateMethod,
deleteMethod,
importMethod,
exportMethod,
schema: schema,
},
};
}

6
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/backup.js

@ -10,6 +10,7 @@ const updateUrl = `${baseUrl}/update/%s`;
const deleteUrl = `${baseUrl}/delete-list`; const deleteUrl = `${baseUrl}/delete-list`;
const importUrl = `${baseUrl}/code-setting-upload-excel-import`; const importUrl = `${baseUrl}/code-setting-upload-excel-import`;
const exportUrl = `${baseUrl}/backup-export`; const exportUrl = `${baseUrl}/backup-export`;
const invokeUrl = "settleaccount/vmi/invoke";
const queryMethod = "POST"; const queryMethod = "POST";
const detailsMethod = "POST"; const detailsMethod = "POST";
const createMethod = "POST"; const createMethod = "POST";
@ -17,6 +18,7 @@ const updateMethod = "POST";
const deleteMethod = "POST"; const deleteMethod = "POST";
const importMethod = "POST"; const importMethod = "POST";
const exportMethod = "POST"; const exportMethod = "POST";
const invokeMethod = "POST";
export default function () { export default function () {
return { return {
@ -92,7 +94,7 @@ export default function () {
}, },
{ {
logic: "and", logic: "and",
column: "proType", column: "billType",
action: "like", action: "like",
value: null, value: null,
readOnly: true, readOnly: true,
@ -123,12 +125,14 @@ export default function () {
deleteUrl, deleteUrl,
importUrl, importUrl,
exportUrl, exportUrl,
invokeUrl,
detailsMethod, detailsMethod,
createMethod, createMethod,
updateMethod, updateMethod,
deleteMethod, deleteMethod,
importMethod, importMethod,
exportMethod, exportMethod,
invokeMethod,
schema: schema, schema: schema,
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/balance.js

@ -80,7 +80,7 @@ export default function () {
}, },
{ {
logic: "and", logic: "and",
column: "proType", column: "billType",
action: "like", action: "like",
value: null, value: null,
readOnly: true, readOnly: true,

23
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/inventory.js

@ -16,7 +16,26 @@ const options2 = [
{ value: "08", label: "后左轮眉" }, { value: "08", label: "后左轮眉" },
{ value: "09", label: "后右轮眉" }, { value: "09", label: "后右轮眉" },
]; ];
const proType = { title: "发货类型", type: "number", input: "select", options: options1 }; const options3 = [
{ 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" },
];
const options4 = [
{ value: "In", label: "入库" },
{ value: "Out", label: "出库" },
];
const billType = { title: "发货类型", type: "number", input: "select", options: options1 };
const codeType = { title: "生产码类型", type: "string", input: "select", options: options2 }; const codeType = { title: "生产码类型", type: "string", input: "select", options: options2 };
const subBillType = { title: "发货子类型", type: "number", input: "select", options: options3 };
const changedType = { title: "变动类型", type: "string", input: "select", options: options4 };
export { proType, codeType }; export { billType, codeType, subBillType, changedType };

92
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/log.js

@ -1,4 +1,4 @@
import { proType, codeType } from "./inventory.js"; import { billType, codeType, changedType, subBillType } from "./inventory.js";
//变动单据号、发生时间、生产码类型、、订单号、库位、变动数、EDI顺序号、备注、变动类型(In、Out标识)、发货类型(JIS\JIT\买单件\备件等)、 //变动单据号、发生时间、生产码类型、、订单号、库位、变动数、EDI顺序号、备注、变动类型(In、Out标识)、发货类型(JIS\JIT\买单件\备件等)、
//实扣LU零件号、实扣客户零件号、结算LU零件号、结算客户零件号、实扣生产码、结算生产码 //实扣LU零件号、实扣客户零件号、结算LU零件号、结算客户零件号、实扣生产码、结算生产码
@ -7,38 +7,94 @@ const schema = {
title: "库存事务日志", title: "库存事务日志",
type: "object", type: "object",
properties: { properties: {
orderNumber: { changedNumber: {
title: "变动单号", title: "变动单号",
type: "string", type: "string",
}, },
createdDate: { changedTime: {
title: "发生时间", title: "变动时间",
type: "string", type: "string",
input: "dateTime",
}, },
codeType, changedType,
tmpe4: { changedBy: {
title: "订单号", title: "变动人",
type: "string", type: "string",
}, },
erpToLoc: { partCode: {
title: "库位", title: "实扣厂内零件号",
type: "string", type: "string",
}, },
count: { partCode2: {
title: "变动数", title: "结算厂内零件号",
type: "number", type: "string",
},
customerPartCode: {
title: "结算客户零件号",
type: "string",
}, },
changedType: { realCode: {
title: "变动类型", title: "WMS实发生产码",
type: "string", type: "string",
}, },
proType,
vinCode: { vinCode: {
title: "生产码", title: "EDI订单生产码",
type: "string",
},
settlementVinCode: {
title: "结算生产码",
type: "string",
},
codeType: {
title: "生产码类型",
type: "string",
},
billType,
subBillType,
qty: {
title: "数量",
type: "number",
},
billTime: {
title: "发运日期",
type: "string",
input: "datetime",
},
deliverTime: {
title: "订单日期",
type: "string",
input: "datetime",
},
seq: {
title: "EDI顺序号",
type: "string",
},
orderNum: {
title: "客户订单号",
type: "string",
},
uniqueCode: {
title: "塑件唯一码",
type: "string",
},
matchNumber: {
title: "EDI总成号",
type: "string",
},
pjsNum: {
title: "PJIS生产顺序号",
type: "string",
},
isReplenished: {
title: "是否补货",
type: "boolean",
},
erpToLoc: {
title: "ERP库位",
type: "string", type: "string",
}, },
lu: { configcode: {
title: "LU零件号", title: "配置码",
type: "string", type: "string",
}, },
}, },

60
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/inventory/vmi.js

@ -1,4 +1,4 @@
import { proType, codeType } from "./inventory.js"; import { billType, codeType, subBillType } from "./inventory.js";
export default function () { export default function () {
return { return {
@ -10,10 +10,6 @@ export default function () {
// hidden: true, // hidden: true,
// showForList: false, // showForList: false,
// }, // },
erpToLoc: {
title: "ERP库位",
type: "string",
},
lu: { lu: {
title: "LU零件号", title: "LU零件号",
type: "string", type: "string",
@ -27,47 +23,30 @@ export default function () {
type: "string", type: "string",
}, },
codeType, codeType,
proType, billType,
// codeType: {
// title: "生产码类型",
// type: "string",
// input: "select",
// options: [
// { value: "01", label: "前保" },
// { value: "02", label: "后保" },
// { value: "03", label: "门槛" },
// ],
// },
// proType: {
// title: "发货类型",
// type: "string",
// input: "select",
// options: [
// { value: "JIS", label: "JIS" },
// { value: "JIT", label: "JIT" },
// { value: "买单件", label: "买单件" },
// { value: "备件", label: "备件" },
// ],
// },
qty: { qty: {
title: "数量", title: "数量",
type: "string", type: "string",
}, },
shippingDate: { billTime: {
title: "发运日期", title: "发运日期",
type: "string", type: "string",
input: "date", input: "datetime",
}, },
creationTime: { deliverTime: {
title: "订单日期", title: "订单日期",
type: "string", type: "string",
input: "date", input: "datetime",
},
erpToLoc: {
title: "ERP库位",
type: "string",
}, },
seqNumber: { seq: {
title: "EDI顺序号", title: "EDI顺序号",
type: "string", type: "string",
}, },
tmpe4: { orderNum: {
title: "客户订单号", title: "客户订单号",
type: "string", type: "string",
}, },
@ -83,10 +62,23 @@ export default function () {
title: "PJIS生产顺序号", title: "PJIS生产顺序号",
type: "string", type: "string",
}, },
desc: { reMark: {
title: "备注", title: "备注",
type: "string", type: "string",
}, },
configcode: {
title: "配置码",
type: "string",
},
factory: {
title: "工厂",
type: "string",
},
subBillType,
realCode: {
title: "WMS实发生产码",
type: "string",
},
}, },
}; };
} }

6
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/invoice/invoice_map_group.js

@ -40,13 +40,11 @@ const exportUrl = "settleaccount/invoice_service/export";
const rejectUrl = "settleaccount/invoice_service/reject"; const rejectUrl = "settleaccount/invoice_service/reject";
const passedUrl = "settleaccount/invoice_service/approval-passed"; const passedUrl = "settleaccount/invoice_service/approval-passed";
const sync_qadUrl = "settleaccount/invoice_service/sync_qad"; const sync_qadUrl = "settleaccount/invoice_service/sync_qad";
const importJsonUrl = "settleaccount/vmi/excel-to-json";
const queryMethod = "POST"; const queryMethod = "POST";
const exportMethod = "POST"; const exportMethod = "POST";
const rejectMethod = "POST"; const rejectMethod = "POST";
const passedMethod = "POST"; const passedMethod = "POST";
const sync_qadMethod = "POST"; const sync_qadMethod = "POST";
const importJsonMethod = "POST";
export default function () { export default function () {
return { return {
@ -111,12 +109,12 @@ export default function () {
rejectUrl, rejectUrl,
passedUrl, passedUrl,
sync_qadUrl, sync_qadUrl,
importJsonUrl, // importJsonUrl,
exportMethod, exportMethod,
rejectMethod, rejectMethod,
passedMethod, passedMethod,
sync_qadMethod, sync_qadMethod,
importJsonMethod, // importJsonMethod,
schema: schema, schema: schema,
}, },
}; };

49
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-bbac/input/bbac_sa_detail_service.js

@ -2,39 +2,31 @@ const schema = {
title: "JIS结算数据", title: "JIS结算数据",
type: "object", type: "object",
properties: { properties: {
project: { settleDate: {
title: "项目", title: "结算日期",
type: "string", type: "string",
readOnly: true, input: "dateTime",
showForList: true,
rules: [
{
required: true,
},
],
}, },
value: { groupNum: {
title: "", title: "结算分组号",
type: "string", type: "string",
readOnly: true,
showForList: true,
rules: [
{
required: true,
},
],
}, },
description: { deliveryDate: {
title: "描述", title: "到货日期",
type: "string",
input: "dateTime",
},
lu: {
title: "客户零件号",
type: "string",
},
qty: {
title: "结算数量",
type: "number",
},
pn: {
title: "生产号",
type: "string", type: "string",
input: "textarea",
showForList: true,
rules: [
{
required: true,
},
{ max: 60 },
],
}, },
}, },
}; };
@ -42,7 +34,6 @@ const schema = {
const queryUrl = "settleaccount/bbac_sa_service/detail_query"; const queryUrl = "settleaccount/bbac_sa_service/detail_query";
const queryMethod = "POST"; const queryMethod = "POST";
export default function () { export default function () {
return { return {
query: { query: {

54
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-bbac/input/bbac_sa_service.js

@ -1,58 +1,42 @@
import version from "../../version.js"; import version from "../../version.js";
import businessType from "../../businessType.js";
const schema = { const schema = {
title: "JIS结算数据", title: "JIS结算数据",
type: "object", type: "object",
properties: { properties: {
version, version,
project: { billNum: {
title: "项目", title: "结算单据",
type: "string", type: "string",
readOnly: true,
showForList: true,
rules: [
{
required: true,
},
],
}, },
value: { dnBillNum: {
title: "", title: "出库单号",
type: "string", type: "string",
readOnly: true,
showForList: true,
rules: [
{
required: true,
},
],
}, },
description: { state: {
title: "描述", title: "状态",
type: "string",
},
recordCount: {
title: "明细记录行数",
type: "string",
},
site: {
title: "工厂地点",
type: "string", type: "string",
input: "textarea",
showForList: true,
rules: [
{
required: true,
},
{ max: 60 },
],
}, },
businessType,
}, },
}; };
const baseUrl = "settleaccount/bbac_sa_service"; const baseUrl = "settleaccount/bbac_sa_service";
const queryUrl = "settleaccount/bbac_sa_service/get-list"; const queryUrl = "settleaccount/bbac_sa_service/get-list";
const createUrl = "settleaccount/bbac_sa_service/create";
const deleteUrl = `${baseUrl}/delete-list`; const deleteUrl = `${baseUrl}/delete-list`;
const importUrl = `${baseUrl}/code-setting-upload-excel-import`; const importUrl = `${baseUrl}/import`;
const exportUrl = `${baseUrl}/export`;
const queryMethod = "POST"; const queryMethod = "POST";
const createMethod = "POST";
const deleteMethod = "POST"; const deleteMethod = "POST";
const importMethod = "POST"; const importMethod = "POST";
const exportMethod = "POST";
export default function () { export default function () {
return { return {
@ -113,14 +97,10 @@ export default function () {
schema: schema, schema: schema,
}, },
edit: { edit: {
createUrl,
deleteUrl, deleteUrl,
importUrl, importUrl,
exportUrl,
createMethod,
deleteMethod, deleteMethod,
importMethod, importMethod,
exportMethod,
schema: schema, schema: schema,
}, },
}; };

4
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-bbac/input/bbac_se_detail_service.js

@ -114,10 +114,12 @@ const queryUrl = "settleaccount/bbac_se_detail_service/get-list";
// const deleteUrl = `${baseUrl}/delete-list`; // const deleteUrl = `${baseUrl}/delete-list`;
// const importUrl = `${baseUrl}/import`; // const importUrl = `${baseUrl}/import`;
const exportUrl = "settleaccount/bbac_se_detail_service/export"; const exportUrl = "settleaccount/bbac_se_detail_service/export";
const invokeUrl = "settleaccount/bbacse-sync/invoke";
const queryMethod = "POST"; const queryMethod = "POST";
// const deleteMethod = "POST"; // const deleteMethod = "POST";
// const importMethod = "POST"; // const importMethod = "POST";
const exportMethod = "POST"; const exportMethod = "POST";
const invokeMethod = "POST";
export default function () { export default function () {
return { return {
@ -181,9 +183,11 @@ export default function () {
// deleteUrl, // deleteUrl,
// importUrl, // importUrl,
exportUrl, exportUrl,
invokeUrl,
// deleteMethod, // deleteMethod,
// importMethod, // importMethod,
exportMethod, exportMethod,
invokeMethod,
schema: schema, schema: schema,
}, },
}; };

18
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-bbac/settlement/bbac_can_sa_detail_service.js

@ -2,14 +2,14 @@ const schema = {
title: "发票分组号明细", title: "发票分组号明细",
type: "object", type: "object",
properties: { properties: {
settleBillNum: { // settleBillNum: {
title: "关联结算单号", // title: "关联结算单号",
type: "int", // type: "int",
}, // },
site: { // site: {
title: "工厂地点", // title: "工厂地点",
type: "string", // type: "string",
}, // },
version: { version: {
title: "期间", title: "期间",
type: "string", type: "string",
@ -46,7 +46,7 @@ const schema = {
title: "结算数量", title: "结算数量",
type: "decimal", type: "decimal",
}, },
groupNumy: { groupNum: {
title: "结算分组号", title: "结算分组号",
type: "string", type: "string",
}, },

48
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-hbpo/input/hbpo_sa_detail_service.js

@ -2,39 +2,31 @@ const schema = {
title: "JIS结算数据", title: "JIS结算数据",
type: "object", type: "object",
properties: { properties: {
project: { settleDate: {
title: "项目", title: "结算日期",
type: "string", type: "string",
readOnly: true, input: "dateTime",
showForList: true,
rules: [
{
required: true,
},
],
}, },
value: { groupNum: {
title: "", title: "结算分组号",
type: "string", type: "string",
readOnly: true,
showForList: true,
rules: [
{
required: true,
},
],
}, },
description: { deliveryDate: {
title: "描述", title: "到货日期",
type: "string",
input: "dateTime",
},
lu: {
title: "客户零件号",
type: "string",
},
qty: {
title: "结算数量",
type: "number",
},
pn: {
title: "生产号",
type: "string", type: "string",
input: "textarea",
showForList: true,
rules: [
{
required: true,
},
{ max: 60 },
],
}, },
}, },
}; };

62
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-hbpo/input/hbpo_sa_service.js

@ -1,62 +1,40 @@
import version from "../../version.js"; import version from "../../version.js";
import businessType from "../../businessType.js";
import state from "../../state.js";
const schema = { const schema = {
title: "JIS结算数据", title: "JIS结算数据",
type: "object", type: "object",
properties: { properties: {
version, version,
project: { billNum: {
title: "项目", title: "结算单据",
type: "string", type: "string",
readOnly: true,
showForList: true,
rules: [
{
required: true,
},
],
}, },
value: { dnBillNum: {
title: "", title: "出库单号",
type: "string", type: "string",
readOnly: true,
showForList: true,
rules: [
{
required: true,
},
],
}, },
description: { state,
title: "描述", recordCount: {
title: "明细记录行数",
type: "string",
},
site: {
title: "工厂地点",
type: "string", type: "string",
input: "textarea",
showForList: true,
rules: [
{
required: true,
},
{ max: 60 },
],
}, },
businessType,
}, },
}; };
const baseUrl = "settleaccount/hbpo_sa_service"; const baseUrl = "settleaccount/hbpo_sa_service";
const queryUrl = `${baseUrl}/get-list`; const queryUrl = "settleaccount/hbpo_sa_service/get-list";
const detailsUrl = `${baseUrl}/get/%s`;
const createUrl = `${baseUrl}/create`;
const updateUrl = `${baseUrl}/update/%s`;
const deleteUrl = `${baseUrl}/delete-list`; const deleteUrl = `${baseUrl}/delete-list`;
const importUrl = `${baseUrl}/code-setting-upload-excel-import`; const importUrl = `${baseUrl}/import`;
const exportUrl = `${baseUrl}/export`;
const queryMethod = "POST"; const queryMethod = "POST";
const detailsMethod = "POST";
const createMethod = "POST";
const updateMethod = "POST";
const deleteMethod = "POST"; const deleteMethod = "POST";
const importMethod = "POST"; const importMethod = "POST";
const exportMethod = "POST";
export default function () { export default function () {
return { return {
@ -117,18 +95,10 @@ export default function () {
schema: schema, schema: schema,
}, },
edit: { edit: {
detailsUrl,
createUrl,
updateUrl,
deleteUrl, deleteUrl,
importUrl, importUrl,
exportUrl,
detailsMethod,
createMethod,
updateMethod,
deleteMethod, deleteMethod,
importMethod, importMethod,
exportMethod,
schema: schema, schema: schema,
}, },
}; };

4
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-hbpo/input/hbpo_se_detail_service.js

@ -115,8 +115,10 @@ const schema = {
const baseUrl = "settleaccount/hbpo_se_detail_service"; const baseUrl = "settleaccount/hbpo_se_detail_service";
const queryUrl = `${baseUrl}/get-list`; const queryUrl = `${baseUrl}/get-list`;
const exportUrl = `${baseUrl}/export`; const exportUrl = `${baseUrl}/export`;
const invokeUrl = "settleaccount/hbpose-sync/invoke";
const queryMethod = "POST"; const queryMethod = "POST";
const exportMethod = "POST"; const exportMethod = "POST";
const invokeMethod = "POST";
export default function () { export default function () {
return { return {
@ -178,7 +180,9 @@ export default function () {
}, },
edit: { edit: {
exportUrl, exportUrl,
invokeUrl,
exportMethod, exportMethod,
invokeMethod,
schema: schema, schema: schema,
}, },
}; };

18
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/jis-hbpo/settlement/hbpo_can_sa_detail_service.js

@ -2,14 +2,14 @@ const schema = {
title: "可结算单明细", title: "可结算单明细",
type: "object", type: "object",
properties: { properties: {
settleBillNum: { // settleBillNum: {
title: "关联结算单号", // title: "关联结算单号",
type: "int", // type: "int",
}, // },
site: { // site: {
title: "工厂地点", // title: "工厂地点",
type: "string", // type: "string",
}, // },
version: { version: {
title: "期间", title: "期间",
type: "string", type: "string",
@ -46,7 +46,7 @@ const schema = {
title: "结算数量", title: "结算数量",
type: "decimal", type: "decimal",
}, },
groupNumy: { groupNum: {
title: "结算分组号", title: "结算分组号",
type: "string", type: "string",
}, },

4
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/job-service.js

@ -42,11 +42,11 @@ const schema = {
const queryUrl = "settleaccount/Job/list"; const queryUrl = "settleaccount/Job/list";
const deleteUrl = "settleaccount/Job/delete"; const deleteUrl = "settleaccount/Job/delete";
const exportUrl = "settleaccount/pub_sa_detail_service/export"; const exportUrl = "settleaccount/getblobfile/download/%s";
const compareUrl = "settleaccount/pub_sa_detail_service/pub-sa-se-compare"; const compareUrl = "settleaccount/pub_sa_detail_service/pub-sa-se-compare";
const queryMethod = "POST"; const queryMethod = "POST";
const deleteMethod = "POST"; const deleteMethod = "POST";
const exportMethod = "POST"; const exportMethod = "GET";
const compareMethod = "POST"; const compareMethod = "POST";
export default function () { export default function () {

16
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/pub_can_sa_detail_service.js

@ -6,14 +6,14 @@ const schema = {
type: "object", type: "object",
properties: { properties: {
state, state,
settleBillNum: { // settleBillNum: {
title: "关联结算单号", // title: "关联结算单号",
type: "string", // type: "string",
}, // },
site: { // site: {
title: "工厂地点", // title: "工厂地点",
type: "string", // type: "string",
}, // },
businessType: { businessType: {
title: "业务分类", title: "业务分类",
type: "EnumBusinessType", type: "EnumBusinessType",

3
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/models/tb_re-parts-relationship_service.js

@ -84,9 +84,6 @@ export default function () {
}, },
table: { table: {
schema: schema, schema: schema,
},
import:{
}, },
edit: { edit: {
importUrl, importUrl,

14
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/request/index.js

@ -60,13 +60,15 @@ const getResult = async (response) => {
result.filename = getFileName(response.headers.get("Content-Disposition")); result.filename = getFileName(response.headers.get("Content-Disposition"));
} }
} else { } else {
result.errors = await response.json(); try {
if (result.errors) { result.errors = await response.json();
ElMessageBox.alert( } catch (error) {
`错误:${result.errors?.error?.message ?? messages.get(response.status)}`, console.log(error);
`代码:${result.errors?.error?.code}`
);
} }
ElMessageBox.alert(
`${result.errors?.error?.message ?? messages.get(response.status) ?? result.status}`,
`${result.errors?.error?.code ?? result.status}`
);
} }
return result; return result;
}; };

689
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/router/business.js

@ -32,6 +32,15 @@ export default [
isTop: true, isTop: true,
}, },
}, },
{
path: "import",
meta: {
type: "button",
title: "导入",
icon: "file",
isTop: true,
},
},
{ {
path: "delete", path: "delete",
meta: { meta: {
@ -61,24 +70,6 @@ export default [
isTop: true, isTop: true,
}, },
}, },
{
path: "delete",
meta: {
type: "button",
title: "删除",
icon: "file",
isTop: true,
},
},
{
path: "import",
meta: {
type: "button",
title: "导入",
icon: "file",
isTop: true,
},
},
{ {
path: "export", path: "export",
meta: { meta: {
@ -218,6 +209,7 @@ export default [
type: "button", type: "button",
title: "下载", title: "下载",
icon: "file", icon: "file",
pattern: "paged",
}, },
}, },
], ],
@ -272,6 +264,7 @@ export default [
type: "button", type: "button",
title: "下载", title: "下载",
icon: "file", icon: "file",
pattern: "paged",
}, },
}, },
], ],
@ -557,6 +550,15 @@ export default [
isTop: true, isTop: true,
}, },
}, },
{
path: "import",
meta: {
type: "button",
title: "导入",
icon: "file",
isTop: true,
},
},
{ {
path: "delete", path: "delete",
meta: { meta: {
@ -586,24 +588,6 @@ export default [
isTop: true, isTop: true,
}, },
}, },
{
path: "delete",
meta: {
type: "button",
title: "删除",
icon: "file",
isTop: true,
},
},
{
path: "import",
meta: {
type: "button",
title: "导入",
icon: "file",
isTop: true,
},
},
{ {
path: "export", path: "export",
meta: { meta: {
@ -743,6 +727,7 @@ export default [
type: "button", type: "button",
title: "下载", title: "下载",
icon: "file", icon: "file",
pattern: "paged",
}, },
}, },
], ],
@ -797,6 +782,7 @@ export default [
type: "button", type: "button",
title: "下载", title: "下载",
icon: "file", icon: "file",
pattern: "paged",
}, },
}, },
], ],
@ -1211,7 +1197,7 @@ export default [
path: "hbpo_jit_pub_sa_detail_service", path: "hbpo_jit_pub_sa_detail_service",
meta: { meta: {
type: "page", type: "page",
title: "4", title: "HBPO结算数据明细",
icon: "file", icon: "file",
isHidden: true, isHidden: true,
}, },
@ -1291,7 +1277,7 @@ export default [
type: "page", type: "page",
title: "BBAC发运与结算比对", title: "BBAC发运与结算比对",
icon: "file", icon: "file",
businessType: 3, // businessType: "ZhiGongJianBBAC",
}, },
children: [ children: [
{ {
@ -1336,6 +1322,7 @@ export default [
type: "button", type: "button",
title: "下载", title: "下载",
icon: "file", icon: "file",
pattern: "paged",
}, },
}, },
], ],
@ -1346,7 +1333,7 @@ export default [
type: "page", type: "page",
title: "HBPO发运与结算比对", title: "HBPO发运与结算比对",
icon: "file", icon: "file",
businessType: 4, // businessType: "ZhiGongJianHBPO",
}, },
children: [ children: [
{ {
@ -1391,6 +1378,7 @@ export default [
type: "button", type: "button",
title: "下载", title: "下载",
icon: "file", icon: "file",
pattern: "paged",
}, },
}, },
], ],
@ -1694,24 +1682,6 @@ export default [
isTop: true, isTop: true,
}, },
}, },
{
path: "delete",
meta: {
type: "button",
title: "删除",
icon: "file",
isTop: true,
},
},
{
path: "import",
meta: {
type: "button",
title: "导入",
icon: "file",
isTop: true,
},
},
{ {
path: "export", path: "export",
meta: { meta: {
@ -1778,7 +1748,7 @@ export default [
type: "page", type: "page",
title: "发运与结算比对", title: "发运与结算比对",
icon: "file", icon: "file",
businessType: 7, // businessType: "BeiJian",
}, },
children: [ children: [
{ {
@ -1823,6 +1793,7 @@ export default [
type: "button", type: "button",
title: "下载", title: "下载",
icon: "file", icon: "file",
pattern: "paged",
}, },
}, },
], ],
@ -2126,24 +2097,6 @@ export default [
isTop: true, isTop: true,
}, },
}, },
{
path: "delete",
meta: {
type: "button",
title: "删除",
icon: "file",
isTop: true,
},
},
{
path: "import",
meta: {
type: "button",
title: "导入",
icon: "file",
isTop: true,
},
},
{ {
path: "export", path: "export",
meta: { meta: {
@ -2210,7 +2163,7 @@ export default [
type: "page", type: "page",
title: "发运与结算比对", title: "发运与结算比对",
icon: "file", icon: "file",
businessType: 8, // businessType: "YinDuJian",
}, },
children: [ children: [
{ {
@ -2255,6 +2208,7 @@ export default [
type: "button", type: "button",
title: "下载", title: "下载",
icon: "file", icon: "file",
pattern: "paged",
}, },
}, },
], ],
@ -2487,96 +2441,522 @@ export default [
}, },
], ],
}, },
//不知道自主起的名字
{ {
path: "invoice", path: "md",
meta: { meta: {
type: "group", type: "group",
title: "财务审核", title: "买单件HBPO",
icon: "folder", icon: "folder",
}, },
children: [ children: [
{ {
path: "invoice_map_group", path: "input",
meta: { meta: {
type: "page", type: "group",
title: "财务审核", title: "数据输入",
icon: "file", icon: "file",
}, },
children: [ children: [
{ {
path: "query", path: "md_pub_sa_service",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
{
path: "reject",
meta: {
type: "button",
title: "退回",
icon: "file",
isTop: true,
},
},
{
path: "importInvocie",
meta: { meta: {
type: "button", type: "page",
title: "导入发票号", title: "结算数据",
icon: "file", icon: "file",
isTop: true,
pattern: "paged",
}, },
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
{
path: "import",
meta: {
type: "button",
title: "导入",
icon: "file",
isTop: true,
},
},
{
path: "delete",
meta: {
type: "button",
title: "删除",
icon: "file",
isTop: true,
},
},
{
path: "export",
meta: {
type: "button",
title: "导出",
icon: "file",
isTop: true,
pattern: "paged",
},
},
],
}, },
{ {
path: "passed ", path: "md_pub_sa_detail_service",
meta: { meta: {
type: "button", type: "page",
title: "审核通过", title: "结算数据明细",
icon: "file", icon: "file",
isTop: true, isHidden: true,
pattern: "paged",
}, },
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
{
path: "export",
meta: {
type: "button",
title: "导出",
icon: "file",
isTop: true,
pattern: "paged",
},
},
],
}, },
{ {
path: "sync_qad ", path: "md_pub_se_detail_service",
meta: { meta: {
type: "button", type: "page",
title: "同步寄售库至QAD", title: "发运数据",
icon: "file", icon: "file",
isTop: true,
pattern: "paged",
}, },
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
{
path: "export",
meta: {
type: "button",
title: "导出",
icon: "file",
isTop: true,
pattern: "paged",
},
},
{
path: "synchronous",
meta: {
type: "button",
title: "手动同步",
icon: "file",
isTop: true,
},
},
],
}, },
], ],
}, },
{ {
path: "invoice_wait_detail", path: "contrast",
meta: { meta: {
type: "page", type: "group",
title: "待开票明细", title: "数据对比",
icon: "file", icon: "file",
isHidden: true,
}, },
children: [ children: [
{ {
path: "query", path: "md_pub_sa_detail_jobservice",
meta: { meta: {
type: "button", type: "page",
title: "查询", title: "发运与结算比对",
icon: "file", icon: "file",
isTop: true, // businessType: "MaiDanJianHBPO",
}, },
}, children: [
], {
}, path: "query",
{ meta: {
path: "invoice_grp", type: "button",
meta: { title: "查询",
type: "page", icon: "file",
isTop: true,
},
},
{
path: "compare",
meta: {
type: "button",
title: "生成对比",
icon: "file",
isTop: true,
},
},
{
path: "delete",
meta: {
type: "button",
title: "删除",
icon: "file",
isTop: true,
},
},
{
path: "update-data",
meta: {
type: "button",
title: "更新结算数据状态",
icon: "file",
isTop: true,
},
},
{
path: "export",
meta: {
type: "button",
title: "下载",
icon: "file",
pattern: "paged",
},
},
],
},
],
},
{
path: "settlement",
meta: {
type: "group",
title: "结算开票",
icon: "folder",
},
children: [
{
path: "md_pub_can_sa_service",
meta: {
type: "page",
title: "可结算单",
icon: "file",
},
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
{
path: "export",
meta: {
type: "button",
title: "导出",
icon: "file",
isTop: true,
pattern: "paged",
},
},
{
path: "generateInvoice",
meta: {
type: "button",
title: "生成发票数据",
icon: "file",
isTop: true,
pattern: "paged",
},
},
],
},
{
path: "md_pub_not_sa_service",
meta: {
type: "page",
title: "不可结算单",
icon: "file",
},
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
{
path: "export",
meta: {
type: "button",
title: "导出",
icon: "file",
isTop: true,
pattern: "paged",
},
},
{
path: "generateSettlementOrder",
meta: {
type: "button",
title: "生成可结算单",
icon: "file",
isTop: true,
pattern: "paged",
},
},
],
},
{
path: "md_pub_ba_service",
meta: {
type: "page",
title: "商务审批",
icon: "file",
},
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
{
path: "reject",
meta: {
type: "button",
title: "退回",
icon: "file",
isTop: true,
},
},
{
path: "export",
meta: {
type: "button",
title: "导出",
icon: "file",
isTop: true,
pattern: "paged",
},
},
{
path: "received ",
meta: {
type: "button",
title: "客户已收票",
icon: "file",
isTop: true,
pattern: "paged",
},
},
],
},
{
path: "md_pub_ba_detail_service",
meta: {
type: "page",
title: "商务审批明细",
icon: "file",
isHidden: true,
},
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
],
},
{
path: "md_pub_pd_service",
meta: {
type: "page",
title: "寄售库库存扣减审批",
icon: "file",
},
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
{
path: "reject",
meta: {
type: "button",
title: "退回",
icon: "file",
isTop: true,
},
},
{
path: "export",
meta: {
type: "button",
title: "导出",
icon: "file",
isTop: true,
pattern: "paged",
},
},
{
path: "approvalPassed ",
meta: {
type: "button",
title: "审核通过",
icon: "file",
isTop: true,
pattern: "paged",
},
},
],
},
{
path: "md_pub_pd_detail_service",
meta: {
type: "page",
title: "寄售库库存扣减审批明细",
icon: "file",
isHidden: true,
},
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
],
},
],
},
],
},
{
path: "invoice",
meta: {
type: "group",
title: "财务审核",
icon: "folder",
},
children: [
{
path: "invoice_map_group",
meta: {
type: "page",
title: "财务审核",
icon: "file",
},
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
{
path: "reject",
meta: {
type: "button",
title: "退回",
icon: "file",
isTop: true,
},
},
{
path: "importInvocie",
meta: {
type: "button",
title: "导入发票号",
icon: "file",
isTop: true,
pattern: "paged",
},
},
{
path: "passed ",
meta: {
type: "button",
title: "审核通过",
icon: "file",
isTop: true,
pattern: "paged",
},
},
{
path: "sync_qad ",
meta: {
type: "button",
title: "同步寄售库至QAD",
icon: "file",
isTop: true,
pattern: "paged",
},
},
],
},
{
path: "invoice_wait_detail",
meta: {
type: "page",
title: "待开票明细",
icon: "file",
isHidden: true,
},
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
],
},
{
path: "invoice_grp",
meta: {
type: "page",
title: "发票分组", title: "发票分组",
icon: "file", icon: "file",
isHidden: true, isHidden: true,
@ -2781,13 +3161,58 @@ export default [
}, },
}, },
{ {
path: "backups", path: "invoke",
meta: { meta: {
type: "button", type: "button",
title: "手动备份", title: "手动备份",
icon: "file", icon: "file",
isTop: true, isTop: true,
pattern: "paged", },
},
],
},
{
path: "adjust",
meta: {
type: "page",
title: "技术库存调整表",
icon: "file",
},
children: [
{
path: "query",
meta: {
type: "button",
title: "查询",
icon: "file",
isTop: true,
},
},
{
path: "create",
meta: {
type: "button",
title: "新建",
icon: "file",
isTop: true,
},
},
{
path: "update",
meta: {
type: "button",
title: "编辑",
icon: "file",
isTop: true,
},
},
{
path: "import",
meta: {
type: "button",
title: "导入",
icon: "file",
isTop: true,
}, },
}, },
], ],

4
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/utils/validation.js

@ -129,7 +129,9 @@ const getRules = (parentSchema, property, data) => {
rule.type = property.type; rule.type = property.type;
} }
if (rule.validator) { if (rule.validator) {
rule.validator = validators[rule.validator]; if (rule.validator.constructor === String) {
rule.validator = validators[rule.validator];
}
} }
if (!rule.message) { if (!rule.message) {
if (rule.required) { if (rule.required) {

12
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/bj/contrast/bj_pub_sa_detail_jobservice.js

@ -1,10 +1,11 @@
import AppList from "../../../components/list/index.js"; import AppList from "../../../components/list/index.js";
import html from "html"; import html from "html";
import useConfig from "../../../models/job-service.js"; import useConfig from "../../../models/job-service.js";
import { ref, onMounted, onUnmounted } from "vue";
export default { export default {
components: { AppList }, components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`, template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`,
setup() { setup() {
const config = useConfig(); const config = useConfig();
config.query.schema.title = "发运与结算"; config.query.schema.title = "发运与结算";
@ -12,7 +13,12 @@ export default {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.name.default = "备件结算与发运数据对比"; config.query.schema.properties.name.default = "备件结算与发运数据对比";
config.query.schema.properties.businessType.default = 7; config.query.schema.properties.businessType.default = "BeiJian";
return { config, onCommand }; const appListRef = ref(null);
onMounted(() =>
PubSub.subscribe(config.query.schema.properties.businessType.default, async () => await appListRef.value.load())
);
onUnmounted(() => PubSub.unsubscribe(config.query.schema.properties.businessType.default));
return { config, onCommand, appListRef };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/bj/input/bj_pub_sa_detail_service.js

@ -9,7 +9,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default=7; config.query.schema.properties.businessType.default="BeiJian";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/bj/input/bj_pub_sa_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default=7; config.query.schema.properties.businessType.default="BeiJian";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/bj/input/bj_pub_se_detail_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 7; config.query.schema.properties.businessType.default = "BeiJian";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

40
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/home.js

@ -1,5 +1,43 @@
import html from "html"; import html from "html";
import AppList from "../../../components/list/index.js";
export default { export default {
template: html`<a href="../assets/导入模版.zip" target="blank">导入模板下载</a>`, components: { AppList },
template: html`</app-list :config="config" @command="onCommand"></app-list>
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="date" label="custoner/type" width="180" />
<el-table-column prop="name" label="BBAC" width="180" />
<el-table-column prop="address" label="HBPO" width="180" />
</el-table>
`,
setup() {
const tableData = [
{
date: "JIS",
name: "√",
address: "√",
},
{
date: "直供件",
name: "√",
address: "√",
},
{
date: "印度件",
name: "√",
address: "",
},
{
date: "备件",
name: "√",
address: "",
},
{
date: "买单件",
name: "对比√ 开票×",
address: "√",
},
];
return { tableData };
},
}; };

12
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/in/contrast/in_pub_sa_detail_jobservice.js

@ -1,18 +1,24 @@
import AppList from "../../../components/list/index.js"; import AppList from "../../../components/list/index.js";
import html from "html"; import html from "html";
import useConfig from "../../../models/job-service.js"; import useConfig from "../../../models/job-service.js";
import { ref, onMounted, onUnmounted } from "vue";
export default { export default {
components: { AppList }, components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`, template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`,
setup() { setup() {
const config = useConfig(); const config = useConfig();
config.query.schema.title = "发运与结算"; config.query.schema.title = "发运与结算";
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 8; config.query.schema.properties.businessType.default = "YinDuJian";
config.query.schema.properties.name.default = "印度件结算与发运数据对比"; config.query.schema.properties.name.default = "印度件结算与发运数据对比";
return { config, onCommand }; const appListRef = ref(null);
onMounted(() =>
PubSub.subscribe(config.query.schema.properties.name.default, async () => await appListRef.value.load())
);
onUnmounted(() => PubSub.unsubscribe(config.query.schema.properties.businessType.default));
return { config, onCommand, appListRef };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/in/input/in_pub_sa_detail_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 8; config.query.schema.properties.businessType.default = "YinDuJian";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/in/input/in_pub_sa_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 8; config.query.schema.properties.businessType.default = "YinDuJian";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/in/input/in_pub_se_detail_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 8; config.query.schema.properties.businessType.default = "YinDuJian";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

15
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/inventory/adjust.js

@ -0,0 +1,15 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/inventory/adjust.js";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
return { config, onCommand };
},
};

61
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/invoice/invoice_map_group.js

@ -5,6 +5,7 @@ import useConfig from "../../../models/invoice/invoice_map_group.js";
import request from "../../../request/index.js"; import request from "../../../request/index.js";
import AppTable from "../../components/table/index.js"; import AppTable from "../../components/table/index.js";
import { ElMessageBox } from "element-plus"; import { ElMessageBox } from "element-plus";
import { post } from "../../../request/index.js";
export default { export default {
components: { AppList, AppTable }, components: { AppList, AppTable },
@ -54,9 +55,9 @@ export default {
</span> </span>
</div> </div>
</template> </template>
<el-table :data="invoiceValue"> <el-table :data="invoiceValue" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="50"> <el-table-column width="50" type="selection">
<el-checkbox v-model="selectedRows"></el-checkbox> <!-- <el-checkbox v-model="selectedRows" /> -->
</el-table-column> </el-table-column>
<el-table-column property="oldInvBillNum" label="作废发票号" /> <el-table-column property="oldInvBillNum" label="作废发票号" />
<el-table-column property="invBillNum" label="发票号" /> <el-table-column property="invBillNum" label="发票号" />
@ -101,19 +102,21 @@ export default {
</el-dialog> </el-dialog>
<el-dialog v-model="openImport" width="30%"> <el-dialog v-model="openImport" width="30%">
<app-form> <app-form>
<el-form-item :label="$t('文件')" label-width="80px"> <div>
<el-upload <el-form-item :label="$t('文件')" label-width="80px">
ref="uploadRef" <el-upload
class="upload" ref="uploadRef"
drag class="upload"
accept=".xlsx" drag
:auto-upload="false" accept=".xlsx"
:on-change="handleChange" :auto-upload="false"
> :on-change="handleChange"
<el-icon class="el-icon--upload"><ep-upload-filled /></el-icon> >
</el-upload> <el-icon class="el-icon--upload"><ep-upload-filled /></el-icon>
<el-button type="primary" @click="openImportHandler" style="margin-left: 10px;">确定</el-button> </el-upload>
</el-form-item> </el-form-item>
</div>
<el-button type="primary" @click="openImportHandler" style="margin-left: 10px;">确定</el-button>
</app-form> </app-form>
</el-dialog> </el-dialog>
<el-button type="primary" @click="dialogVisible = false" style="margin-left: 10px;">下一页</el-button> <el-button type="primary" @click="dialogVisible = false" style="margin-left: 10px;">下一页</el-button>
@ -133,10 +136,23 @@ export default {
} }
</style>`, </style>`,
setup() { setup() {
const fileList = ref([]);
// const load = async () => {};
// const editFormModel = ref(null);
// const editFormMode = ref(null);
// const defaultImportModel = config.import?.schema ? schemaToModel(config.import.schema) : {};
// const importModel = ref(defaultImportModel);
const openImportHandler = async () => { const openImportHandler = async () => {
const data = {}; const url = "settleaccount/vmi/excel-to-json";
const response = await request("settleaccount/vmi/excel-to-json", data, { method: "POST" }); const method = "POST";
console.log(response.data); const formData = new FormData();
if (config.query.schema.properties.businessType?.default) {
formData.append("businessType", config.query.schema.properties.businessType.default);
}
for (let i = 0; i < fileList.value.length; i++) {
formData.append(`files`, fileList.value[i].raw);
}
await post(url, formData, method);
}; };
const formInline = reactive({ const formInline = reactive({
oldInvBillNum: "", oldInvBillNum: "",
@ -149,6 +165,7 @@ export default {
groupNum: "", groupNum: "",
}); });
//create //create
const invoiceValue = ref([]);
const submitForm = () => { const submitForm = () => {
const newFormInline = { ...formInline }; const newFormInline = { ...formInline };
invoiceValue.value.push(newFormInline); invoiceValue.value.push(newFormInline);
@ -159,12 +176,10 @@ export default {
}; };
//delete //delete
const selectedRows = ref([]); const selectedRows = ref([]);
const invoiceValue = ref([]); const deleteRow = async () => {
const deleteRow = () => {
const indexes = selectedRows.value.map((row) => invoiceValue.value.indexOf(row)); const indexes = selectedRows.value.map((row) => invoiceValue.value.indexOf(row));
indexes.sort((a, b) => b - a);
indexes.forEach((index) => { indexes.forEach((index) => {
invoiceValue.value.splice(index, 1); invoiceValue.value.splice(index, 10000000000);
}); });
selectedRows.value = []; selectedRows.value = [];
}; };

12
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/contrast/bbac_jit_pub_sa_detail_jobservice.js

@ -1,18 +1,24 @@
import AppList from "../../../components/list/index.js"; import AppList from "../../../components/list/index.js";
import html from "html"; import html from "html";
import useConfig from "../../../models/job-service.js"; import useConfig from "../../../models/job-service.js";
import { ref, onMounted, onUnmounted } from "vue";
export default { export default {
components: { AppList }, components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`, template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`,
setup() { setup() {
const config = useConfig(); const config = useConfig();
config.query.schema.title = "发运与结算"; config.query.schema.title = "发运与结算";
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 3; config.query.schema.properties.businessType.default = "ZhiGongJianBBAC";
config.query.schema.properties.name.default = "直供件BBAC结算与发运数据对比"; config.query.schema.properties.name.default = "直供件BBAC结算与发运数据对比";
return { config, onCommand }; const appListRef = ref(null);
onMounted(() =>
PubSub.subscribe(config.query.schema.properties.name.default, async () => await appListRef.value.load())
);
onUnmounted(() => PubSub.unsubscribe(config.query.schema.properties.businessType.default));
return { config, onCommand, appListRef };
}, },
}; };

12
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/contrast/hbpo_jit_pub_sa_detail_jobservice.js

@ -1,18 +1,24 @@
import AppList from "../../../components/list/index.js"; import AppList from "../../../components/list/index.js";
import html from "html"; import html from "html";
import useConfig from "../../../models/job-service.js"; import useConfig from "../../../models/job-service.js";
import { ref, onMounted, onUnmounted } from "vue";
export default { export default {
components: { AppList }, components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`, template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`,
setup() { setup() {
const config = useConfig(); const config = useConfig();
config.query.schema.title = "发运与结算"; config.query.schema.title = "发运与结算";
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 4; config.query.schema.properties.businessType.default = "ZhiGongJianHBPO";
config.query.schema.properties.name.default = "直供件HBPO结算与发运数据对比"; config.query.schema.properties.name.default = "直供件HBPO结算与发运数据对比";
return { config, onCommand }; const appListRef = ref(null);
onMounted(() =>
PubSub.subscribe(config.query.schema.properties.name.default, async () => await appListRef.value.load())
);
onUnmounted(() => PubSub.unsubscribe(config.query.schema.properties.businessType.default));
return { config, onCommand, appListRef };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/bbac_jit_pub_sa_detail_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 3; config.query.schema.properties.businessType.default = "ZhiGongJianBBAC";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/bbac_jit_pub_sa_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 3; config.query.schema.properties.businessType.default = "ZhiGongJianBBAC";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/bbac_jit_pub_se_detail_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 3; config.query.schema.properties.businessType.default = "ZhiGongJianBBAC";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/hbpo_jit_pub_sa_detail_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 4; config.query.schema.properties.businessType.default = "ZhiGongJianHBPO";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/hbpo_jit_pub_sa_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 4; config.query.schema.properties.businessType.default = "ZhiGongJianHBPO";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

2
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/jit/input/hbpo_jit_pub_se_detail_service.js

@ -10,7 +10,7 @@ export default {
const onCommand = async (item, rows) => { const onCommand = async (item, rows) => {
console.log(item.path, item, rows); console.log(item.path, item, rows);
}; };
config.query.schema.properties.businessType.default = 4; config.query.schema.properties.businessType.default = "ZhiGongJianHBPO";
return { config, onCommand }; return { config, onCommand };
}, },
}; };

6
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/login.js

@ -1,9 +1,9 @@
import html, { schemaToModel } from "html"; import html, { schemaToModel } from "html";
import { ref, reactive } from "vue"; import { reactive } from "vue";
import AppForm from "../components/form/index.js"; import AppForm from "../components/form/index.js";
import { login, setRefreshToken, getUser, setAccessToken } from "../api/user.js"; import { getUser, setAccessToken } from "../api/user.js";
import router, { refreshRouter } from "../router/index.js"; import router, { refreshRouter } from "../router/index.js";
import request, { post } from "../request/index.js"; import request from "../request/index.js";
import LayoutLogo from "../layouts/logo.js"; import LayoutLogo from "../layouts/logo.js";
import LayoutLocale from "../layouts/locale.js"; import LayoutLocale from "../layouts/locale.js";
import LayoutFooter from "../layouts/footer.js"; import LayoutFooter from "../layouts/footer.js";

24
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/contrast/md_pub_sa_detail_jobservice.js

@ -0,0 +1,24 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/job-service.js";
import { ref, onMounted, onUnmounted } from "vue";
export default {
components: { AppList },
template: html`<app-list ref="appListRef" :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
config.query.schema.title = "发运与结算";
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
config.query.schema.properties.businessType.default = "MaiDanJianHBPO";
// config.query.schema.properties.name.default = "直供件BBAC结算与发运数据对比";
const appListRef = ref(null);
onMounted(() =>
PubSub.subscribe(config.query.schema.properties.name.default, async () => await appListRef.value.load())
);
onUnmounted(() => PubSub.unsubscribe(config.query.schema.properties.businessType.default));
return { config, onCommand, appListRef };
},
};

16
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/input/md_pub_sa_detail_service.js

@ -0,0 +1,16 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/pub_sa_detail_service.js";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
config.query.schema.properties.businessType.default = "MaiDanJianHBPO";
return { config, onCommand };
},
};

16
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/input/md_pub_sa_service.js

@ -0,0 +1,16 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/pub_sa_service.js";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
config.query.schema.properties.businessType.default = "MaiDanJianHBPO";
return { config, onCommand };
},
};

16
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/input/md_pub_se_detail_service.js

@ -0,0 +1,16 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/pub_se_detail_service.js";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
config.query.schema.properties.businessType.default = "MaiDanJianHBPO";
return { config, onCommand };
},
};

15
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_ba_detail_service.js

@ -0,0 +1,15 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/pub_ba_detail_service";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
return { config, onCommand };
},
};

15
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_ba_service.js

@ -0,0 +1,15 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/pub_ba_service.js";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
return { config, onCommand };
},
};

15
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_can_sa_detail_service.js

@ -0,0 +1,15 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/pub_can_sa_detail_service.js";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
return { config, onCommand };
},
};

15
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_can_sa_service.js

@ -0,0 +1,15 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/pub_can_sa_service.js";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
return { config, onCommand };
},
};

15
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_not_sa_service.js

@ -0,0 +1,15 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/pub_not_sa_service.js";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
return { config, onCommand };
},
};

15
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_pd_detail_service.js

@ -0,0 +1,15 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/pub_pd_detail_service.js";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
return { config, onCommand };
},
};

15
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/views/md/settlement/md_pub_pd_service.js

@ -0,0 +1,15 @@
import AppList from "../../../components/list/index.js";
import html from "html";
import useConfig from "../../../models/pub_pd_service.js";
export default {
components: { AppList },
template: html`<app-list :config="config" @command="onCommand" />`,
setup() {
const config = useConfig();
const onCommand = async (item, rows) => {
console.log(item.path, item, rows);
};
return { config, onCommand };
},
};

19
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/BQ/VmiAppService.cs

@ -55,6 +55,7 @@ public interface IVmiService : IApplicationService, ITransientDependency, IJobSe
public class VmiAppService : ApplicationService, IVmiService, IJobService, ITransientDependency public class VmiAppService : ApplicationService, IVmiService, IJobService, ITransientDependency
{ {
private readonly IConfiguration _cfg; private readonly IConfiguration _cfg;
private readonly IServiceProvider _serviceProvider;
private readonly INormalEfCoreRepository<VmiBalance, Guid> _balanceRepository; private readonly INormalEfCoreRepository<VmiBalance, Guid> _balanceRepository;
private readonly INormalEfCoreRepository<VmiLog, Guid> _logRepository; private readonly INormalEfCoreRepository<VmiLog, Guid> _logRepository;
private readonly INormalEfCoreRepository<VmiSnapshot, Guid> _snapshotRepository; private readonly INormalEfCoreRepository<VmiSnapshot, Guid> _snapshotRepository;
@ -63,6 +64,7 @@ public class VmiAppService : ApplicationService, IVmiService, IJobService, ITran
private readonly ICurrentUser _currentUser; private readonly ICurrentUser _currentUser;
public VmiAppService(IConfiguration cfg, public VmiAppService(IConfiguration cfg,
IServiceProvider serviceProvider,
INormalEfCoreRepository<VmiBalance, Guid> balanceRepository, INormalEfCoreRepository<VmiBalance, Guid> balanceRepository,
INormalEfCoreRepository<VmiLog, Guid> logRepository, INormalEfCoreRepository<VmiLog, Guid> logRepository,
INormalEfCoreRepository<VmiSnapshot, Guid> snapshotRepository, INormalEfCoreRepository<VmiSnapshot, Guid> snapshotRepository,
@ -71,6 +73,7 @@ public class VmiAppService : ApplicationService, IVmiService, IJobService, ITran
ICurrentUser currentUser) ICurrentUser currentUser)
{ {
this._cfg = cfg; this._cfg = cfg;
this._serviceProvider = serviceProvider;
this._balanceRepository = balanceRepository; this._balanceRepository = balanceRepository;
this._logRepository = logRepository; this._logRepository = logRepository;
this._snapshotRepository = snapshotRepository; this._snapshotRepository = snapshotRepository;
@ -124,7 +127,7 @@ public class VmiAppService : ApplicationService, IVmiService, IJobService, ITran
/// <summary> /// <summary>
/// 定时备份:0 0 8 26 * ? /// 定时备份:0 0 8 26 * ?
/// </summary> /// </summary>
[HttpPost] [NonAction]
[DisableValidation] [DisableValidation]
public virtual Task Invoke(IServiceProvider serviceProvider) public virtual Task Invoke(IServiceProvider serviceProvider)
{ {
@ -170,6 +173,20 @@ public class VmiAppService : ApplicationService, IVmiService, IJobService, ITran
return Task.CompletedTask; return Task.CompletedTask;
} }
/// <summary>
/// 定时备份:0 0 8 26 * ?
/// </summary>
[HttpPost("invoke")]
[DisableValidation]
public virtual Task VmiBackup()
{
Task.Run(async () =>
{
await Invoke(_serviceProvider).ConfigureAwait(false);
});
return Task.CompletedTask;
}
/// <summary> /// <summary>
/// 发运入库\反结入库\调整入库 /// 发运入库\反结入库\调整入库
/// </summary> /// </summary>

Loading…
Cancel
Save