学 赵 1 year ago
parent
commit
b9f8f1f31d
  1. 2
      code/WebApp/vanilla/api/site.js
  2. 16
      code/WebApp/vanilla/api/user.js
  3. 27
      code/WebApp/vanilla/components/form/form-input.js
  4. 11
      code/WebApp/vanilla/components/form/form-item.js
  5. 67
      code/WebApp/vanilla/components/form/index.js
  6. 43
      code/WebApp/vanilla/components/icon/index.js
  7. 687
      code/WebApp/vanilla/components/list/index.js
  8. 36
      code/WebApp/vanilla/components/markdown/index.js
  9. 13
      code/WebApp/vanilla/index.html
  10. 13
      code/WebApp/vanilla/layouts/header.js
  11. 26
      code/WebApp/vanilla/layouts/index.js
  12. 7
      code/WebApp/vanilla/layouts/locale.js
  13. 20
      code/WebApp/vanilla/layouts/menu-item.js
  14. 2
      code/WebApp/vanilla/layouts/menu.js
  15. 35
      code/WebApp/vanilla/layouts/tabs.js
  16. 36
      code/WebApp/vanilla/lib/element-plus/index.full.min.mjs
  17. 2
      code/WebApp/vanilla/main.js
  18. 52
      code/WebApp/vanilla/models/login.js
  19. 50
      code/WebApp/vanilla/models/role.js
  20. 98
      code/WebApp/vanilla/models/user.js
  21. 72
      code/WebApp/vanilla/request/index.js
  22. 114
      code/WebApp/vanilla/router/index.js
  23. 101
      code/WebApp/vanilla/router/routes.js
  24. 33
      code/WebApp/vanilla/signalr/index.js
  25. 7
      code/WebApp/vanilla/store/app.js
  26. 5
      code/WebApp/vanilla/styles/site.css
  27. 6
      code/WebApp/vanilla/utils/index.js
  28. 2
      code/WebApp/vanilla/views/404.js
  29. 17
      code/WebApp/vanilla/views/base-data/role.js
  30. 17
      code/WebApp/vanilla/views/base-data/user.js
  31. 17
      code/WebApp/vanilla/views/list.js
  32. 84
      code/WebApp/vanilla/views/login.js
  33. 15
      code/WebApp/vanilla/views/user/index.js
  34. 2
      code/WebApp/vue/.env.development
  35. 7
      code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/appsettings.json
  36. 21
      code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Bases/RequestInputBase.cs
  37. 453
      code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/Prices/PriceListDtoBase.cs
  38. 150
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/CurdBaseAppService.cs
  39. 325
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/Prices/PriceListAppService.cs
  40. 506
      code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/Prices/PriceListAppServiceBJ.cs
  41. 1
      code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.csproj
  42. 77
      code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs
  43. 104
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/Prices/PriceList.cs
  44. 6
      code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/Prices/PriceListManager.cs
  45. 3744
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230710062137_20230710-1.Designer.cs
  46. 63
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230710062137_20230710-1.cs
  47. 3750
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230711014038_20230711-1.Designer.cs
  48. 33
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230711014038_20230711-1.cs
  49. 19
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/SettleAccountDbContextModelSnapshot.cs
  50. 6
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountNormalEfCoreRepository.cs
  51. 4
      code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/SettleAccount.EntityFrameworkCore.csproj
  52. 940
      code/src/Shared/Win.Abp.Snowflakes/bin/Debug/netcoreapp5/Win.Abp.Snowflakes.deps.json
  53. BIN
      code/src/Shared/Win.Abp.Snowflakes/bin/Debug/netcoreapp5/Win.Abp.Snowflakes.dll
  54. BIN
      code/src/Shared/Win.Abp.Snowflakes/bin/Debug/netcoreapp5/Win.Abp.Snowflakes.pdb
  55. BIN
      code/src/Shared/Win.Abp.Snowflakes/bin/Debug/netcoreapp5/ref/Win.Abp.Snowflakes.dll
  56. 940
      code/src/Shared/Win.Abp.Snowflakes/bin/Release/netcoreapp5/Win.Abp.Snowflakes.deps.json
  57. BIN
      code/src/Shared/Win.Abp.Snowflakes/bin/Release/netcoreapp5/Win.Abp.Snowflakes.dll
  58. BIN
      code/src/Shared/Win.Abp.Snowflakes/bin/Release/netcoreapp5/Win.Abp.Snowflakes.pdb
  59. BIN
      code/src/Shared/Win.Abp.Snowflakes/bin/Release/netcoreapp5/ref/Win.Abp.Snowflakes.dll
  60. 2
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
  61. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.assets.cache
  62. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.csproj.AssemblyReference.cache
  63. 0
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.csproj.BuildWithSkipAnalyzers
  64. 1
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
  65. 72
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.csproj.FileListAbsolute.txt
  66. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.csprojAssemblyReference.cache
  67. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.dll
  68. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.pdb
  69. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/ref/Win.Abp.Snowflakes.dll
  70. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/refint/Win.Abp.Snowflakes.dll
  71. 4
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs
  72. 20
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.AssemblyInfo.cs
  73. 1
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.AssemblyInfoInputs.cache
  74. 15
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
  75. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.assets.cache
  76. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.csproj.AssemblyReference.cache
  77. 5
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
  78. 51
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.csproj.FileListAbsolute.txt
  79. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.dll
  80. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.pdb
  81. BIN
      code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/ref/Win.Abp.Snowflakes.dll
  82. 30
      code/src/Shared/Win.Abp.Snowflakes/obj/Win.Abp.Snowflakes.csproj.nuget.dgspec.json
  83. 8
      code/src/Shared/Win.Abp.Snowflakes/obj/Win.Abp.Snowflakes.csproj.nuget.g.props
  84. 28
      code/src/Shared/Win.Abp.Snowflakes/obj/project.assets.json
  85. 121
      code/src/Shared/Win.Abp.Snowflakes/obj/project.nuget.cache
  86. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Debug/Win.Sfs.Shared.2.0.0.nupkg
  87. 3660
      code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.deps.json
  88. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.dll
  89. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.pdb
  90. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Utils.dll
  91. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Utils.pdb
  92. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/ref/Win.Sfs.Shared.dll
  93. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Release/Win.Sfs.Shared.2.0.0.nupkg
  94. 3660
      code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/Win.Sfs.Shared.deps.json
  95. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/Win.Sfs.Shared.dll
  96. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/Win.Sfs.Shared.pdb
  97. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/Win.Utils.dll
  98. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/Win.Utils.pdb
  99. BIN
      code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/ref/Win.Sfs.Shared.dll
  100. 23
      code/src/Shared/Win.Sfs.Shared/obj/Debug/Win.Sfs.Shared.2.0.0.nuspec

2
code/WebApp/vanilla/api/site.js

@ -17,7 +17,7 @@ async function getLocalizationAsync() {
locale: "zh", locale: "zh",
messages: { messages: {
zh: { zh: {
application: "北京北汽模塑-SAS结算分析系统", application: "北汽模塑销售结算系统",
copyright: "长春市闻荫科技有限公司 ©2023", copyright: "长春市闻荫科技有限公司 ©2023",
test: "测试", test: "测试",
compareAttribute: "{0}”和{1}不匹配", compareAttribute: "{0}”和{1}不匹配",

16
code/WebApp/vanilla/api/user.js

@ -16,6 +16,7 @@ const isLogin = async () => {
return true; return true;
} else { } else {
appStore.token = null; appStore.token = null;
removeAccessToken();
} }
} }
return false; return false;
@ -39,6 +40,7 @@ const login = async (data) => {
const logout = () => { const logout = () => {
const appStore = useAppStore(); const appStore = useAppStore();
appStore.token = null; appStore.token = null;
removeAccessToken();
removeRefreshToken(); removeRefreshToken();
router.push({ path: "/login", query: { redirect: router.currentRoute.value.fullPath } }); router.push({ path: "/login", query: { redirect: router.currentRoute.value.fullPath } });
}; };
@ -47,11 +49,13 @@ const getUser = async () => {
const result = await get("abp/application-configuration"); const result = await get("abp/application-configuration");
const data = result.data; const data = result.data;
const user = {}; const user = {};
user.name = data.currentUser.userName; user.id = data.currentUser.id;
user.userName = data.currentUser.userName;
user.email = data.currentUser.email; user.email = data.currentUser.email;
user.phoneNumber = data.currentUser.phoneNumber;
user.roles = data.currentUser.roles; user.roles = data.currentUser.roles;
const menus = (await get("base/role-menus")).data; user.permissions = data.auth.policies;
user.permissions = menus.items; user.localization = data.localization;
return user; return user;
}; };
@ -66,6 +70,10 @@ const hasPermission = (to) => {
} }
}; };
const accessTokenKey = "access_token";
const getAccessToken = () => localStorage.getItem(accessTokenKey);
const setAccessToken = (token) => localStorage.setItem(accessTokenKey, token);
const removeAccessToken = () => localStorage.removeItem(accessTokenKey);
const refreshTokenKey = "refresh_token"; const refreshTokenKey = "refresh_token";
const getRefreshToken = () => localStorage.getItem(refreshTokenKey); const getRefreshToken = () => localStorage.getItem(refreshTokenKey);
@ -77,4 +85,4 @@ const removeRefreshToken = () => {
connection.stop(); connection.stop();
}; };
export { isLogin, login, logout, getUser, hasPermission }; export { isLogin, login, logout, getAccessToken, setAccessToken, setRefreshToken, getUser, hasPermission };

27
code/WebApp/vanilla/components/form/form-input.js

@ -1,6 +1,7 @@
import html from "html"; import html from "html";
import { ref, reactive, watch } from "vue"; import { ref, reactive, watch } from "vue";
import { dayjs } from "element-plus"; import { dayjs } from "element-plus";
import { post } from "../../request/index.js";
export default { export default {
template: html` template: html`
@ -20,8 +21,9 @@ export default {
:multiple="!!schema.multiple" :multiple="!!schema.multiple"
clearable clearable
style="width:100%" style="width:100%"
:title="JSON.stringify(options)"
> >
<el-option v-for="item in schema.options" :key="item.value" :label="item.label" :value="item.value" /> <el-option v-for="item in options" :key="item.key" :label="item.label" :value="item.value" />
</el-select> </el-select>
</template> </template>
<el-input <el-input
@ -40,7 +42,7 @@ export default {
/> />
<template v-else-if="schema.type==='boolean'"> <template v-else-if="schema.type==='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="null" :label="$t('select')" /> <el-option prop="select" value="" :label="$t('select')" />
<el-option prop="true" :value="true" :label="$t('true')" /> <el-option prop="true" :value="true" :label="$t('true')" />
<el-option prop="false" :value="false" :label="$t('false')" /> <el-option prop="false" :value="false" :label="$t('false')" />
</el-select> </el-select>
@ -83,11 +85,32 @@ export default {
return schema.input ?? schema.type; return schema.input ?? schema.type;
}; };
/*end*/ /*end*/
//options
const selectProps = ref({});
const selectValues = ref([]);
const options = ref([]);
if (props.schema.options) {
options.value = props.schema.options;
} else if (props.schema.url) {
try {
const url = `${props.schema.url}`;
const result = await post(url, { queryAll: true, query: { isReadonly: null, isDisabled: null, order: null } });
options.value = result.data?.items.map((o) => ({
value: o[props.schema.value],
label: o[props.schema.label],
}));
} catch (error) {
console.log(error);
}
}
return { return {
model, model,
getDisabled, getDisabled,
getInput, getInput,
dayjs, dayjs,
selectProps,
selectValues,
options,
}; };
}, },
}; };

11
code/WebApp/vanilla/components/form/form-item.js

@ -1,16 +1,15 @@
import html from "html"; import html from "html";
import { ref, reactive, watch } from "vue"; import { defineAsyncComponent, ref, reactive, watch } from "vue";
import AppFormInput from "./form-input.js";
export default { export default {
name: "formItem", name: "formItem",
components: { AppFormInput }, components: { AppFormInput: defineAsyncComponent(() => import("./form-input.js")) },
template: html` template: html`
<template v-if="showItem()"> <template v-if="showItem()">
<template v-if="schema.type==='object'"></template> <template v-if="schema.type==='object'"></template>
<template v-if="schema.type!=='array'||(schema.items.type!=='object'&&schema.items.type!=='array')"> </template> <template v-else-if="schema.type!=='array'||schema.items.type!=='array'">
<el-form-item <el-form-item
:title="getProp(prop)" :title="prop"
:label="schema.title" :label="schema.title"
:prop="getProp(prop)" :prop="getProp(prop)"
:rules="getRules(parentSchema,schema,model)" :rules="getRules(parentSchema,schema,model)"
@ -33,7 +32,7 @@ export default {
if (props.schema.hidden) { if (props.schema.hidden) {
return false; return false;
} }
if (props.schema.readOnly && (props.mode === "query" || props.mode === "create" || props.mode === "update")) { if (props.schema.readOnly && (props.mode === "create" || props.mode === "update")) {
return false; return false;
} }
return true; return true;

67
code/WebApp/vanilla/components/form/index.js

@ -1,27 +1,28 @@
import html from "html"; import html from "html";
import { ref, reactive, watch } from "vue"; import { defineAsyncComponent, ref, reactive, watch } from "vue";
import AppFormItem from "./form-item.js";
export default { export default {
components: { AppFormItem }, components: { AppFormItem: defineAsyncComponent(() => import("./form-item.js")) },
name: "AppForm", name: "AppForm",
template: html`<el-form ref="formRef" :model="model" label-width="auto"> template: html`<div v-loading="loading">
<template v-for="(value, prop) in schema.properties"> <el-form ref="formRef" :model="model" label-width="auto">
<app-form-item <template v-for="(value, prop) in schema.properties">
:parentSchema="schema" <app-form-item
:schema="value" :parentSchema="schema"
v-model="model" :schema="value"
:prop="prop" v-model="model"
:mode="mode" :prop="prop"
:errors="errors" :mode="mode"
/> :errors="errors"
</template> />
<slot name="items"></slot> </template>
<el-form-item v-if="!hideButton"> <slot name="items"></slot>
<template #label></template> <el-form-item v-if="!hideButton">
<el-button type="primary" @click="submit" :disabled="loading"><slot>$t('confirm')</slot></el-button> <template #label></template>
</el-form-item> <el-button type="primary" @click="submit" :disabled="loading"><slot>$t('confirm')</slot></el-button>
</el-form>`, </el-form-item>
</el-form>
</div>`,
props: ["modelValue", "schema", "action", "hideButton", "isQueryForm", "mode"], props: ["modelValue", "schema", "action", "hideButton", "isQueryForm", "mode"],
emits: ["update:modelValue", "submit"], emits: ["update:modelValue", "submit"],
setup(props, context) { setup(props, context) {
@ -46,19 +47,21 @@ export default {
// submit // submit
const submit = async () => { const submit = async () => {
try { try {
//const valid = await validate(); const valid = await validate();
//if (valid) { if (valid) {
loading.value = true; loading.value = true;
context.emit("submit", (serverErrors) => { context.emit(
if (serverErrors) { "submit",
errors.value = serverErrors; (serverErrors) => {
} if (serverErrors) {
}); errors.value = serverErrors;
//} }
},
loading
);
}
} catch (error) { } catch (error) {
console.error(error); console.log(error);
} finally {
loading.value = false;
} }
}; };
// expose // expose

43
code/WebApp/vanilla/components/icon/index.js

@ -1,29 +1,42 @@
import html from "html";
import { onMounted, ref } from "vue"; import { onMounted, ref } from "vue";
import { useAppStore } from "../../store/index.js";
const template = `<component v-if="name.indexOf('ep-')===0" :is="name" /> <v-else g v-html="svg" /> `;
export default { export default {
template: html`<template v-if="name.indexOf('ep-')===0">
<component :is="name" />
</template>
<template v-else>
<g v-html="svg" />
</template> `,
props: { props: {
name: { name: {
default: "file", default: "file",
}, },
}, },
template, async setup(props) {
setup(props) { const svg = ref(null);
const svg = ref("");
onMounted(async () => { onMounted(async () => {
if (props.name.indexOf("ep-") !== 0) { if (!props.name.startsWith("ep-")) {
try { try {
const response = await fetch(`./assets/icons/${props.name}.svg`); const url = `./assets/icons/${props.name}.svg`;
if (response.ok && response.status === 200) { navigator.locks.request(url, async () => {
svg.value = await response.text(); const appStore = useAppStore();
} if (appStore.cache.has(url)) {
svg.value = appStore.cache.get(url);
} else {
const response = await fetch(url);
if (response.ok && response.status === 200) {
svg.value = await response.text();
appStore.cache.set(url, svg.value);
}
}
});
} catch (error) { } catch (error) {
console.error(error); console.log(error);
} if (!svg.value) {
if (!svg.value) { svg.value = `<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z"></path></svg>`;
const response = await fetch("./assets/icons/file.svg"); }
svg.value = await response.text();
} }
} }
}); });

687
code/WebApp/vanilla/components/list/index.js

@ -1,135 +1,156 @@
import html, { getProp } from "html"; import html, { getProp } from "html";
import AppForm from "../form/index.js"; import request, { get, post } from "../../request/index.js";
import { get, post } from "../../request/index.js"; import { defineAsyncComponent, ref, reactive, onMounted } from "vue";
import { ref, reactive } from "vue"; import { useRoute, useRouter } from "vue-router";
import { useRoute } from "vue-router";
import { useI18n } from "vue-i18n"; import { useI18n } from "vue-i18n";
import SvgIcon from "../../components/icon/index.js"; import { listToTree, schemaToModel } from "../../utils/index.js";
import { schemaToModel } from "../../utils/index.js";
import qs from "../../lib/qs/shim.js"; import qs from "../../lib/qs/shim.js";
import AppFormInput from "../form/form-input.js";
import VueOfficeExcel from "@vue-office/excel"; import VueOfficeExcel from "@vue-office/excel";
import { camelCase, capitalize } from "lodash"; import { camelCase, capitalize } from "lodash";
export default { export default {
components: { AppForm, SvgIcon, AppFormInput, VueOfficeExcel }, name: "AppList",
components: {
AppForm: defineAsyncComponent(() => import("../form/index.js")),
SvgIcon: defineAsyncComponent(() => import("../../components/icon/index.js")),
AppFormInput: defineAsyncComponent(() => import("../form/form-input.js")),
VueOfficeExcel,
},
template: html` template: html`
<el-row> <div v-loading="tableLoading">
<el-col> <el-row>
<app-form <el-col>
inline <app-form
mode="query" inline
label-position="left" mode="query"
:schema="queryFromSchema" label-position="left"
v-model="data.query" :schema="querySchema"
@submit="load" v-model="queryModel"
:hideButton="true" @submit="load"
:isQueryForm="true" :hideButton="true"
/> :isQueryForm="true"
</el-col> v-if="querySchema"
</el-row> />
<el-row style="padding-bottom:20px;"> </el-col>
<el-col> </el-row>
<template v-for="item in $route.meta.buttons"> <el-row style="padding-bottom:20px;">
<el-button <el-col>
:class="item.meta.htmlClass??'el-button--primary'" <template v-for="item in buttons">
v-if="item.meta.isTop" <el-button
@click="click(item,selectedRows)" :class="item.meta.htmlClass??'el-button--primary'"
> v-if="item.meta.isTop"
<el-icon v-if="item.meta.icon"><svg-icon :name="item.meta.icon" /></el-icon> @click="click(item,selectedRows)"
<span>{{item.meta.title}}</span> >
<el-icon v-if="item.meta.icon"><svg-icon :name="item.meta.icon" /></el-icon>
<span>{{item.meta.title}}</span>
</el-button>
</template>
<el-button @click="click('filter',selectedRows)">
<el-icon><ep-filter /></el-icon>
<span>{{$t('筛选')}}</span>
</el-button> </el-button>
</template> <slot name="tableButtons" :rows="selectedRows"></slot>
<slot name="tableButtons" :rows="selectedRows"></slot> </el-col>
</el-col> </el-row>
</el-row> <el-row>
<el-row> <el-col>
<el-col> <el-scrollbar>
<el-scrollbar> <el-table
<el-table :key="tableKey"
ref="tableRef" ref="tableRef"
v-loading="tableLoading" :tree-props="treeProps"
row-key="id" :data="tableData"
table-layout="auto" @selection-change="handleSelectionChange"
border @sort-change="sortChange"
fit :header-cell-class-name="getClass"
:data="data.items" row-key="id"
@selection-change="handleSelectionChange" table-layout="auto"
@sort-change="sortChange" border
:header-cell-class-name="getClass" fit
v-if="data.items" >
> <el-table-column fixed="left" type="selection" />
<el-table-column fixed="left" type="selection" /> <el-table-column type="index" :label="$t('rowIndex')">
<el-table-column type="index" :label="$t('rowIndex')"> <template #default="scope">
<template #default="scope"> {{ (data.pageIndex - 1) * data.pageSize + scope.$index + 1 }} </template> {{ (pageModel.pageIndex - 1) * pageModel.pageSize + scope.$index + 1 }}
</el-table-column> </template>
<template v-for="(item,key) in tableSchema.items.properties"> </el-table-column>
<template v-if="key==='properties'"> <template v-for="(item,key) in config.table.schema.properties">
<el-table-column :label="subKey" v-for="(subItem,subKey) in item.properties"> <template v-if="key==='properties'">
<template #default="scope">{{ scope.row[key][subKey] }} </template> <el-table-column :label="subKey" v-for="(subItem,subKey) in item.properties">
</el-table-column> <template #default="scope">{{ scope.row[key][subKey] }} </template>
</template> </el-table-column>
<template v-else-if="item.navigation"> </template>
<el-table-column :prop="key" :label="item.title"> <template v-else-if="item.navigation">
<template #default="scope">{{getProp(scope.row,item.navigation)}}</template> <el-table-column :prop="key" :label="item.title">
</el-table-column> <template #default="scope">{{getProp(scope.row,item.navigation)}}</template>
</template> </el-table-column>
<template v-else> </template>
<template v-if="showColumn(item,key)"> <template v-else-if="item.oneToMany">
<el-table-column :prop="key" sortable="custom" :sort-orders="['descending', 'ascending', null]"> <el-table-column :prop="key" :label="item.title">
<template #header="scope">{{item.title}}</template>
<template #default="scope"> <template #default="scope">
<app-form-input :isReadOnly="true" :schema="item" :prop="key" v-model="scope.row" /> <el-link type="primary" @click="showList(scope.row[key],item.oneToMany)">
<app-form-input :isReadOnly="true" :schema="item" :prop="key" v-model="scope.row" />
</el-link>
</template> </template>
</el-table-column> </el-table-column>
</template> </template>
</template> <template v-else>
</template> <template v-if="showColumn(item,key)">
<slot name="columns"></slot> <el-table-column :prop="key" sortable="custom" :sort-orders="['descending', 'ascending', null]">
<el-table-column fixed="right"> <template #header="scope">{{item.title}}</template>
<template #header> <template #default="scope">
<el-button @click="filterDrawer = true"> <app-form-input :isReadOnly="true" :schema="item" :prop="key" v-model="scope.row" />
{{$t('operations')}} </template>
<el-icon class="el-icon--right"><ep-filter /></el-icon> </el-table-column>
</el-button>
</template>
<template #default="scope">
<div class="flex">
<template v-for="item in $route.meta.buttons">
<el-button
:class="item.meta.htmlClass??'el-button--primary'"
v-if="!item.meta.isTop"
@click="click(item,[scope.row])"
>
<el-icon v-if="item.meta.icon"><svg-icon :name="item.meta.icon" /></el-icon>
<span>{{item.meta.title}}</span>
</el-button>
</template> </template>
<slot name="rowButtons" :rows="[scope.row]"></slot> </template>
</div>
</template> </template>
</el-table-column> <slot name="columns"></slot>
</el-table> <el-table-column fixed="right">
</el-scrollbar> <template #header>
</el-col> <el-button @click="filterDrawer = true">
</el-row> {{$t('operations')}}
<el-row> <el-icon class="el-icon--right"><ep-filter /></el-icon>
<el-col> </el-button>
<el-pagination </template>
v-if="data.items&&data.pageSize<data.totalCount" <template #default="scope">
v-model:currentPage="data.pageIndex" <div class="flex">
v-model:page-size="data.pageSize" <template v-for="item in buttons">
:total="data.totalCount" <el-button
:page-sizes="[20, 50, 100]" :class="item.meta.htmlClass??'el-button--primary'"
class="justify-end" v-if="!item.meta.isTop"
:background="true" @click="click(item,[scope.row])"
layout="total, sizes, prev, pager, next, jumper" >
@size-change="onPageSizeChange" <el-icon v-if="item.meta.icon"><svg-icon :name="item.meta.icon" /></el-icon>
@current-change="onPageIndexChange" <span>{{item.meta.title}}</span>
style="margin-top:20px" </el-button>
/> </template>
</el-col> <slot name="rowButtons" :rows="[scope.row]"></slot>
</el-row> </div>
</template>
</el-table-column>
</el-table>
</el-scrollbar>
</el-col>
</el-row>
<el-row>
<el-col>
<el-pagination
v-if="tableData.length&&pageModel.pageSize<pageModel.totalCount"
v-model:currentPage="pageModel.pageIndex"
v-model:page-size="pageModel.pageSize"
:total="pageModel.total"
:page-sizes="pageModel.sizeList"
class="justify-end"
:background="true"
layout="total, sizes, prev, pager, next, jumper"
@size-change="onPageSizeChange"
@current-change="onPageIndexChange"
style="margin-top:20px"
/>
</el-col>
</el-row>
</div>
<el-drawer v-model="filterDrawer" destroy-on-close @close="tableRef.doLayout()"> <el-drawer v-model="filterDrawer" destroy-on-close @close="tableRef.doLayout()">
<template #header> <span class="el-dialog__title"> {{$t('filter')}} </span> </template> <template #header> <span class="el-dialog__title"> {{$t('filter')}} </span> </template>
<el-scrollbar> <el-scrollbar>
@ -151,30 +172,138 @@ export default {
</el-col> </el-col>
</el-row> </el-row>
</el-scrollbar> </el-scrollbar>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button type="primary" @click="filterDrawer=false"> {{$t('confirm')}} </el-button> <el-button type="primary" @click="filterDrawer=false"> {{$t('confirm')}} </el-button>
</span> </span>
</template> </template>
</el-drawer> </el-drawer>
<el-dialog v-model="dialogVisible" align-center destroy-on-close width="700"> <el-drawer v-model="subDrawer" destroy-on-close size="50%">
<el-scrollbar>
<app-list
v-if="subDrawer"
:controller="subListQuery.controller"
:query="subListQuery.query"
:buttons="subListQuery.buttons"
/>
</el-scrollbar>
<template #footer>
<span class="dialog-footer">
<el-button type="primary" @click="subDrawer=false"> {{$t('confirm')}} </el-button>
</span>
</template>
</el-drawer>
<el-dialog
v-model="dialogVisible"
align-center
destroy-on-close
style="width:auto;min-width:500px;max-width:1000px;"
>
<template #header> <span class="el-dialog__title"> {{editFormTitle}} </span> </template> <template #header> <span class="el-dialog__title"> {{editFormTitle}} </span> </template>
<el-row> <el-row v-loading="editFormloading">
<el-col style="max-height:calc(100vh - 180px );"> <el-col style="max-height:calc(100vh - 180px );min-height:100%;">
<el-scrollbar> <el-scrollbar>
<app-form <template v-if="editFormMode==='create'||editFormMode==='update'||editFormMode==='details'">
v-loading="editFormloading" <app-form
:disabled="editFormMode==='details'" :disabled="editFormMode==='details'"
:mode="editFormMode" :mode="editFormMode"
ref="editFormRef" ref="editFormRef"
inline inline
label-position="left" label-position="left"
:hideButton="true" :hideButton="true"
:schema="editFormSchema" :schema="editFormSchema"
v-model="editFormModel" v-model="editFormModel"
v-if="editFormMode!=='import'" v-if="editFormSchema&&editFormMode"
/> />
</template>
<template v-else-if="editFormMode==='export'">
<el-form :model="exportModel">
<el-form-item :label="$t('全部')">
<el-switch v-model="exportModel.includeAll" />
</el-form-item>
<el-form-item :label="$t('已删除')">
<el-switch v-model="exportModel.includeDeleted" />
</el-form-item>
</el-form>
</template>
<template v-else-if="editFormMode==='import'">
<el-form :model="importModel" inline>
<el-form-item :label="$t('部分成功')">
<el-switch v-model="importModel.partial" />
</el-form-item>
<el-form-item :label="$t('全部替换')">
<el-switch v-model="importModel.replace" />
</el-form-item>
<el-form-item :label="$t('导入模板')">
<el-link type="primary" @click="getImportTemplate">{{$t('下载')}}</el-link>
</el-form-item>
<el-form-item :label="$t('文件')">
<el-upload
ref="uploadRef"
drag
accept=".xlsx"
:disabled="fileList.length===1"
:limit="1"
:auto-upload="false"
:on-change="handleChange"
>
<el-icon class="el-icon--upload"><ep-upload-filled /></el-icon>
</el-upload>
</el-form-item>
</el-form>
</template>
<template v-else-if="editFormMode==='filter'">
<el-form :model="queryList" inline class="filter">
<el-row v-for="(item,index) in queryList">
<el-col :span="6">
<el-select v-model="item.property" :placeholder="$t('字段')">
<el-option v-for="(value, prop) in querySchema.properties" :value="prop" :label="value.title" />
</el-select>
</el-col>
<el-col :span="6">
<el-select v-model="item.operator" :placeholder="$t('操作符')">
<el-option value="{0}=@0" :label="$t('等于')" />
<el-option value="{0}!=@0" :label="$t('不等于')" />
<el-option value="{0}>@0" :label="$t('大于')" />
<el-option value="{0}>=@0" :label="$t('大于等于')" />
<el-option value="{0}<@0" :label="$t('小于')" />
<el-option value="{0}<=@0" :label="$t('小于等于')" />
<el-option value="{0}.Contains(@0)" :label="$t('包含')" />
<el-option value="{0}.StartsWith(@0)" :label="$t('开始于')" />
<el-option value="{0}.StartsWith(@0)" :label="$t('结束于')" />
</el-select>
</el-col>
<el-col :span="6">
<el-input v-model="item.value" :placeholder="$t('值')" />
</el-col>
<!-- <el-col :span="4">
<el-select v-model="item.logic" :placeholder="$t('关系')">
<el-option value="and" :label="$t('且')" />
<el-option value="or" :label="$t('或')" />
</el-select>
</el-col> -->
<el-col :span="2">
<el-button circle @click="queryList.splice(index, 1)">
<template #icon>
<ep-close />
</template>
</el-button>
</el-col>
</el-row>
<el-row>
<el-col>
<el-button circle @click="pushQueryList">
<template #icon>
<ep-plus />
</template>
</el-button>
</el-col>
</el-row>
</el-form>
</template>
<template v-else>
<slot :name="editFormMode"></slot>
</template>
</el-scrollbar> </el-scrollbar>
</el-col> </el-col>
</el-row> </el-row>
@ -185,25 +314,66 @@ export default {
</template> </template>
</el-dialog> </el-dialog>
`, `,
props: ["modelValue"], styles: html`<style>
.el-form.filter .el-col {
padding: 5px;
}
</style>`,
props: ["modelValue", "config", "querySchema", "controller", "query", "buttons"],
emits: ["command"], emits: ["command"],
async setup(props, context) { async setup(props, context) {
// 变量定义
//// 配置
const config = ref(props.config);
//// 分页
const pageModel = reactive({
sizeList: [20, 50, 100],
pageIndex: 1,
pageSize: 10,
total: 0,
});
const treeProps = reactive({
children: "children",
});
const tableKey = ref(false);
const tableRef = ref(null); const tableRef = ref(null);
const uploadRef = ref(null);
const columns = ref([]); const columns = ref([]);
const filterDrawer = ref(false); const filterDrawer = ref(false);
const tableLoading = ref(false); const subDrawer = ref(false);
const subListQuery = ref({});
const tableLoading = ref(true);
const selectedRows = ref([]); const selectedRows = ref([]);
const dialogVisible = ref(false); const dialogVisible = ref(false);
const route = useRoute(); const route = useRoute();
const router = useRouter();
const { t } = useI18n(); const { t } = useI18n();
const baseUrl = `${route.meta.path}`.substring(1); const buttons = ref(props.buttons ?? route.meta.children);
const indexUrl = `${baseUrl}/index`; const baseUrl = props.controller ?? `${route.meta.path}`;
const vm = (await get(indexUrl)).data; const indexUrl = props.indexUrl ?? `${baseUrl}/index`;
const schema = vm.schema; const queryModel = ref({});
const data = reactive(vm.model ?? schemaToModel(schema));
const sortColumns = ref(new Map()); const sortColumns = ref(new Map());
const querySchema = ref(props.querySchema);
const queryList = ref([]);
const tableSchema = ref({});
const tableData = ref([]);
const editFormRef = ref(null);
const editFormloading = ref(false);
const editFormMode = ref(null);
const editFormTitle = ref("");
const editFormSchema = ref(null);
const editFormModel = ref(null);
const exportModel = reactive({
includeAll: false,
includeDeleted: false,
});
const importModel = reactive({
partial: true,
replace: false,
});
const fileList = ref([]);
const getSortModel = (model) => { const getSortModel = (model) => {
const orderBy = model.orderBy model.orderBy
.split(",") .split(",")
.map((o) => o.trim()) .map((o) => o.trim())
.filter((o) => o) .filter((o) => o)
@ -212,32 +382,30 @@ export default {
order: (o.split(" ").filter((o) => o)[1] ?? "asc") + "ending", order: (o.split(" ").filter((o) => o)[1] ?? "asc") + "ending",
})) }))
.forEach((o) => sortColumns.value.set(o.prop, o.order)); .forEach((o) => sortColumns.value.set(o.prop, o.order));
return orderBy;
}; };
const sortModel = reactive(getSortModel(data)); const getColumns = (schema) => {
Object.keys(schema.properties).forEach((propertyName) => {
const property = schema.properties[propertyName];
if (property.type !== "object" && property.type !== "array" && !property.hidden && property.showForList) {
columns.value.push({ name: propertyName, title: property.title, checked: true });
}
});
};
const getClass = ({ row, column }) => { const getClass = ({ row, column }) => {
if (column.property) { if (column.property) {
column.order = sortColumns.value.get(column.property); column.order = sortColumns.value.get(column.property);
} }
}; };
const sortChange = ({ column, prop, order }) => { const sortChange = async ({ column, prop, order }) => {
if (order === null) { if (order === null) {
sortColumns.value.delete(prop); sortColumns.value.delete(prop);
} else { } else {
sortColumns.value.set(prop, order); sortColumns.value.set(prop, order);
} }
data.orderBy = Array.from(sortColumns.value) queryModel.value.orderBy = Array.from(sortColumns.value)
.map((o) => capitalize(o[0]) + (o[1] === "ascending" ? "" : ` DESC`)) .map((o) => capitalize(o[0]) + (o[1] === "ascending" ? "" : ` DESC`))
.join(","); .join(",");
load(indexUrl); await load(indexUrl);
};
const getColumns = (schema) => {
Object.keys(schema.properties).forEach((propertyName) => {
const property = schema.properties[propertyName];
if (property.type !== "object" && property.type !== "array" && !property.hidden) {
columns.value.push({ name: propertyName, title: property.title, checked: true });
}
});
}; };
const showColumn = (item, prop) => { const showColumn = (item, prop) => {
return ( return (
@ -247,63 +415,62 @@ export default {
columns.value.findIndex((o) => o.name === prop && o.checked) >= 0 columns.value.findIndex((o) => o.name === prop && o.checked) >= 0
); );
}; };
getColumns(schema.properties.query);
const queryFromSchema = schema.properties.query;
const tableSchema = schema.properties.items;
const editFormRef = ref(null);
const editFormloading = ref(false);
const editFormMode = ref(null);
const editFormTitle = ref("");
const editFormSchema = reactive({});
const editFormModel = reactive({});
const exportModel = reactive({
includeAll: false,
includeDeleted: false,
});
const handleSelectionChange = (rows) => (selectedRows.value = rows); const handleSelectionChange = (rows) => (selectedRows.value = rows);
const load = async (url) => { const load = async (url) => {
tableLoading.value = true; tableLoading.value = true;
try { try {
const postData = JSON.parse(JSON.stringify(data)); const url = config.value.query.url;
delete postData["Id"]; const postData = JSON.parse(JSON.stringify(queryModel.value));
delete postData["items"]; postData.filters = queryList.value.filter((o) => o.property && o.value);
Object.assign(data, (await post(url, postData)).data); if (postData.items) {
delete postData["items"];
}
if (postData.query?.id) {
delete postData.query["id"];
}
const listData = (await request(url, postData, { method: config.value.query.method.toUpperCase() })).data;
const items = listData.items;
if (tableSchema.value.isTree) {
items = listToTree(listData.items);
}
tableData.value = items;
//data.value = listData;
queryModel.tableKey.value = !tableKey.value;
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} finally { } finally {
tableLoading.value = false; tableLoading.value = false;
} }
}; };
const onPageIndexChange = () => load(indexUrl); const onPageIndexChange = async () => {
const onPageSizeChange = () => load(indexUrl); await load(indexUrl);
};
const onPageSizeChange = async () => await load(indexUrl);
const click = async (item, rows) => { const click = async (item, rows) => {
editFormMode.value = item.path; editFormloading.value = true;
editFormMode.value = item.path ?? item;
context.emit("command", item, rows); context.emit("command", item, rows);
if (item.path === "index") { if (item.path === "index") {
//list //list
await load(indexUrl); await load(indexUrl);
} else if (item.path === "details") { } else if (item.path === "details") {
//details //details
const detailsUrl = `${baseUrl}/${item.path}?${qs.stringify({ id: rows[0].id })}`; const url = `${baseUrl}/${item.path}?${qs.stringify({ id: rows[0].id })}`;
Object.assign(editFormSchema, schema.properties.items.items); editFormSchema.value = (await get(url)).data;
Object.assign(editFormModel, (await post(detailsUrl)).data); editFormModel.value = (await post(url)).data;
editFormTitle.value = `${t("details")}${schema.title}`; editFormTitle.value = `${querySchema.value?.title}${t("details")}`;
dialogVisible.value = true; dialogVisible.value = true;
} else if (item.path === "create") { } else if (item.path === "create" || item.path === "update") {
//create //create
const url = `${baseUrl}/${item.path}`; let url = `${baseUrl}/${item.path}`;
if (item.path === "update") {
url = `${url}?${qs.stringify({ id: rows[0].id })}`;
}
const vm = (await get(url)).data; const vm = (await get(url)).data;
Object.assign(editFormSchema, vm.schema); editFormSchema.value = vm.schema;
Object.assign(editFormModel, vm.model); editFormModel.value = vm.model;
editFormTitle.value = `${t("create")}${schema.title}`; editFormTitle.value = `${t(item.path)}${querySchema.value?.title}`;
dialogVisible.value = true;
} else if (item.path === "update") {
//update
const url = `${baseUrl}/${item.path}`;
const vm = (await get(url, { id: rows[0].id })).data;
Object.assign(editFormSchema, vm.schema);
Object.assign(editFormModel, vm.model);
editFormTitle.value = `${t("update")}${schema.title}`;
dialogVisible.value = true; dialogVisible.value = true;
} else if (item.path === "delete") { } else if (item.path === "delete") {
//delete //delete
@ -318,15 +485,19 @@ export default {
await load(indexUrl); await load(indexUrl);
} else if (item.path === "export") { } else if (item.path === "export") {
//export //export
const url = `${baseUrl}/${item.path}`; editFormTitle.value = `${t(item.path)}${querySchema.value?.title}`;
const exportUrl = `${url}?${qs.stringify(exportModel)}`; dialogVisible.value = true;
await load(exportUrl);
} else if (item.path === "import") { } else if (item.path === "import") {
//import //import
const url = `${baseUrl}/${item.path}`; const url = `${baseUrl}/${item.path}`;
editFormTitle.value = `${t("import")}${schema.title}`; editFormTitle.value = `${t(item.path)}${querySchema.value?.title}`;
fileList.value = [];
dialogVisible.value = true;
} else if (item === "filter") {
editFormTitle.value = t("自定义查询");
dialogVisible.value = true; dialogVisible.value = true;
} }
editFormloading.value = false;
}; };
const submit = async () => { const submit = async () => {
if (editFormMode.value === "create" || editFormMode.value === "update") { if (editFormMode.value === "create" || editFormMode.value === "update") {
@ -335,7 +506,7 @@ export default {
if (valid) { if (valid) {
editFormloading.value = true; editFormloading.value = true;
const url = `${baseUrl}/${editFormMode.value}`; const url = `${baseUrl}/${editFormMode.value}`;
const result = await post(url, editFormModel); const result = await post(url, editFormModel.value);
if (result.errors) { if (result.errors) {
model.errors = result.errors; //?? model.errors = result.errors; //??
} else { } else {
@ -345,46 +516,154 @@ export default {
} }
} }
} catch (error) { } catch (error) {
console.error(error); console.log(error);
} finally { } finally {
editFormloading.value = false; editFormloading.value = false;
} }
} else if (editFormMode.value === "details") { } else if (editFormMode.value === "details") {
load(indexUrl); dialogVisible.value = false;
editFormMode.value = null; editFormMode.value = null;
} else if (editFormMode.value === "export") {
const postData = JSON.parse(JSON.stringify(queryModel.value));
postData.filters = queryList.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);
dialogVisible.value = false;
} else if (editFormMode.value === "import") {
editFormloading.value = true;
const url = `${baseUrl}/${editFormMode.value}`;
const formData = new FormData();
formData.append("partial", importModel.partial);
formData.append("replace", importModel.replace);
formData.append("file", fileList.value[0]?.raw);
console.log(uploadRef.value);
const response = await post(url, formData);
editFormloading.value = false;
dialogVisible.value = false;
await load(indexUrl);
} else if (editFormMode.value === "filter") {
await load(indexUrl);
dialogVisible.value = false; dialogVisible.value = false;
} }
}; };
await load(indexUrl); const showList = (value, nav) => {
if (!subDrawer.value) {
const controller = nav.substr(0, nav.lastIndexOf(".")).toLowerCase();
const findRoute = (tree) => {
for (const item of tree) {
if (item.meta.controller === controller) {
return item;
}
if (item.children) {
return findRoute(item.children);
}
}
};
const targetRoute = router.getRoutes().find((o) => o.meta?.controller === controller);
subListQuery.value = {
controller,
query: { [camelCase(nav.substr(nav.lastIndexOf(".") + 1))]: value },
buttons: targetRoute.meta.buttons,
};
subDrawer.value = true;
}
};
const pushQueryList = () => {
queryList.value.push({
property: "",
operator: "{0}=@0",
value: "",
logic: "and",
});
};
const download = (response) => {
const downloadUrl = window.URL.createObjectURL(response.data);
const filename = response.filename;
let link = document.createElement("a");
link.href = downloadUrl;
link.download = filename;
link.click();
window.URL.revokeObjectURL(downloadUrl);
};
const getImportTemplate = async () => {
const url = `${baseUrl}/${editFormMode.value}`;
const response = await get(url);
download(response);
};
const handleChange = (uploadFile, uploadFiles) => {
fileList.value = uploadFiles;
};
onMounted(async () => {
pushQueryList();
// if (!querySchema.value) {
// const vm = (await get(indexUrl)).data;
// querySchema.value = vm.schema.properties.query;
// tableSchema.value = vm.schema.properties.items.items;
// data.value = vm.model ?? schemaToModel(vm.schema);
// if (props.query) {
// Object.assign(data.value.query, props.query);
// }
// getSortModel(data.value);
// getColumns(vm.schema.properties.query);
// }
if (!config.value) {
//
}
getColumns(config.value.table.schema);
queryModel.value = schemaToModel(config.value.query.schema);
if (props.query) {
Object.assign(queryModel.value.query, props.query);
}
// getSortModel(data.value);
// getColumns(vm.schema.properties.query);
await load(indexUrl);
});
return { return {
route, config,
queryModel,
pageModel,
treeProps,
tableKey,
tableRef, tableRef,
uploadRef,
tableLoading, tableLoading,
columns, columns,
showColumn, showColumn,
filterDrawer, filterDrawer,
subDrawer,
dialogVisible, dialogVisible,
selectedRows, selectedRows,
schema, querySchema,
queryFromSchema, queryList,
tableSchema, tableSchema,
data, buttons,
sortModel, tableData,
getClass, getClass,
sortChange, sortChange,
getProp, getProp,
getImportTemplate,
editFormRef, editFormRef,
editFormloading,
editFormMode, editFormMode,
editFormTitle, editFormTitle,
editFormSchema, editFormSchema,
editFormModel, editFormModel,
exportModel, exportModel,
importModel,
onPageSizeChange, onPageSizeChange,
onPageIndexChange, onPageIndexChange,
handleSelectionChange, handleSelectionChange,
load, load,
click, click,
submit, submit,
showList,
subListQuery,
pushQueryList,
fileList,
handleChange,
}; };
}, },
}; };

36
code/WebApp/vanilla/components/markdown/index.js

@ -1,14 +1,18 @@
import { ref, onMounted } from 'vue'; import html from "html";
import { marked, setOptions } from '../../lib/marked/marked.esm.js'; import { ref, onMounted } from "vue";
import mermaid from '../../lib/mermaid/mermaid.esm.min.mjs'; import { marked, setOptions } from "../../lib/marked/marked.esm.js";
import hljs from '../../lib/highlightjs/highlight.min.js'; import mermaid from "../../lib/mermaid/mermaid.esm.min.mjs";
import hljs from "../../lib/highlightjs/highlight.min.js";
export default { export default {
template: `<div ref="tplRef"><div class="source" style="display:none;"><slot /></div><div class="markdown-body"></div></template>`, template: html`<div ref="tplRef">
<div class="source" style="display:none;"><slot /></div>
<div class="markdown-body"></div>
</div>`,
props: { props: {
name: { name: {
default: null default: null,
} },
}, },
setup(props) { setup(props) {
const tplRef = ref(null); const tplRef = ref(null);
@ -17,25 +21,25 @@ export default {
onMounted(async () => { onMounted(async () => {
setOptions({ setOptions({
highlight: function (code, lang) { highlight: function (code, lang) {
if (lang === 'mermaid') { if (lang === "mermaid") {
return mermaid.mermaidAPI.render(`mermaid${id++}`, code, undefined); return mermaid.mermaidAPI.render(`mermaid${id++}`, code, undefined);
} else { } else {
const language = hljs.getLanguage(lang) ? lang : 'plaintext'; const language = hljs.getLanguage(lang) ? lang : "plaintext";
return hljs.highlight(code, { language }).value; return hljs.highlight(code, { language }).value;
} }
}, },
langPrefix: 'hljs language-', langPrefix: "hljs language-",
}); });
let mdText = tplRef.value.querySelector('.source').innerText; let mdText = tplRef.value.querySelector(".source").innerText;
if (props.name !== null) { if (props.name !== null) {
const response = await fetch(`./assets/docs/${props.name}.md`); const response = await fetch(`./assets/docs/${props.name}.md`);
mdText = await response.text(); mdText = await response.text();
} }
tplRef.value.querySelector('.markdown-body').innerHTML = marked(mdText); tplRef.value.querySelector(".markdown-body").innerHTML = marked(mdText);
tplRef.value.querySelector('.source').remove(); tplRef.value.querySelector(".source").remove();
}); });
return { return {
tplRef tplRef,
}; };
} },
} };

13
code/WebApp/vanilla/index.html

@ -3,9 +3,7 @@
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<base href="/" /> <base href="/" />
<style> <style>
@keyframes loading-rotate { @keyframes loading-rotate {
@ -29,6 +27,7 @@
margin: auto; margin: auto;
width: 50px; width: 50px;
height: 50px; height: 50px;
color: #409eff;
} }
</style> </style>
<link rel="stylesheet" href="./main.css" /> <link rel="stylesheet" href="./main.css" />
@ -37,7 +36,13 @@
<body> <body>
<div id="app"></div> <div id="app"></div>
<img src="./assets/icons/loading.svg" id="loading" class="loading"> <i id="loading" class="loading">
<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg">
<path fill="currentColor"
d="M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32zm0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32zm448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32zm-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32zM195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248zm452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248zM828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0zm-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0z">
</path>
</svg>
</i>
<script type="importmap"> <script type="importmap">
{ {
"imports": { "imports": {

13
code/WebApp/vanilla/layouts/header.js

@ -1,18 +1,21 @@
import html from "html"; import html from "html";
import { ref, onMounted, onUnmounted } from "vue"; import { defineAsyncComponent, ref, onMounted, onUnmounted } from "vue";
import { useAppStore } from "../store/index.js"; import { useAppStore } from "../store/index.js";
import SvgIcon from "../components/icon/index.js";
import LayoutLogo from "./logo.js";
import { useDark, useFullscreen, useToggle } from "@vueuse/core"; import { useDark, useFullscreen, useToggle } from "@vueuse/core";
import { ElMessage, ElMessageBox } from "element-plus"; import { ElMessage, ElMessageBox } from "element-plus";
import { useI18n } from "vue-i18n"; import { useI18n } from "vue-i18n";
import { logout } from "../api/user.js"; import { logout } from "../api/user.js";
import LayoutLocale from "./locale.js";
import router from "../router/index.js"; import router from "../router/index.js";
import { treeToList } from "../utils/index.js"; import { treeToList } from "../utils/index.js";
export default { export default {
components: { SvgIcon, LayoutLogo, LayoutLocale, ElMessage, ElMessageBox }, components: {
SvgIcon: defineAsyncComponent(() => import("../components/icon/index.js")),
LayoutLogo: defineAsyncComponent(() => import("./logo.js")),
LayoutLocale: defineAsyncComponent(() => import("./locale.js")),
ElMessage,
ElMessageBox,
},
template: html` template: html`
<div class="flex items-center justify-between"> <div class="flex items-center justify-between">
<div class="flex items-center justify-center"> <div class="flex items-center justify-center">

26
code/WebApp/vanilla/layouts/index.js

@ -1,14 +1,14 @@
import html from "html"; import html from "html";
import LayoutHeader from "./header.js";
import LayoutMenu from "./menu.js";
import LayoutTabs from "./tabs.js";
import LayoutFooter from "./footer.js";
import Icon from "../components/icon/index.js";
import { useAppStore } from "../store/index.js"; import { useAppStore } from "../store/index.js";
import { computed } from "vue"; import { defineAsyncComponent, computed } from "vue";
export default { export default {
components: { Icon, LayoutHeader, LayoutMenu, LayoutTabs, LayoutFooter }, components: {
LayoutHeader: defineAsyncComponent(() => import("./header.js")),
LayoutMenu: defineAsyncComponent(() => import("./menu.js")),
LayoutTabs: defineAsyncComponent(() => import("./tabs.js")),
LayoutFooter: defineAsyncComponent(() => import("./footer.js")),
},
template: html`<el-container> template: html`<el-container>
<el-header><layout-header /></el-header> <el-header><layout-header /></el-header>
<el-container> <el-container>
@ -20,17 +20,9 @@ export default {
<layout-tabs /> <layout-tabs />
<el-main> <el-main>
<router-view v-if="!isRefreshing" v-slot="{ Component, route }"> <router-view v-if="!isRefreshing" v-slot="{ Component, route }">
<component <component :is="Component" v-if="route.meta?.disableCaching" :key="$route.fullPath" />
:is="Component"
v-if="!appStore.isUseTabsRouter || !route.meta?.cached"
:key="$route.fullPath"
/>
<keep-alive> <keep-alive>
<component <component :is="Component" v-if="!route.meta?.disableCaching" :key="route.fullPath" />
:is="Component"
v-if="appStore.isUseTabsRouter && route.meta?.cached"
:key="route.fullPath"
/>
</keep-alive> </keep-alive>
</router-view> </router-view>
</el-main> </el-main>

7
code/WebApp/vanilla/layouts/locale.js

@ -1,13 +1,14 @@
import html from "html"; import html from "html";
import { defineAsyncComponent } from "vue";
import { useAppStore } from "../store/index.js"; import { useAppStore } from "../store/index.js";
import { useI18n } from "vue-i18n"; import { useI18n } from "vue-i18n";
import Icon from "../components/icon/index.js";
export default { export default {
components: { Icon }, components: { SvgIcon: defineAsyncComponent(() => import("../components/icon/index.js")) },
template: html`<el-dropdown class="cursor-pointer" v-if="appStore.settings.enableLocale"> template: html`<el-dropdown class="cursor-pointer" v-if="appStore.settings.enableLocale">
<span class="el-dropdown-link flex"> <span class="el-dropdown-link flex">
<el-icon :size="18"> <el-icon :size="18">
<icon name="lang" /> <svg-icon name="lang" />
</el-icon> </el-icon>
</span> </span>
<template #dropdown> <template #dropdown>

20
code/WebApp/vanilla/layouts/menu-item.js

@ -1,28 +1,32 @@
import html from "html"; import html from "html";
import { reactive, watch } from "vue"; import { defineAsyncComponent, reactive, watch } from "vue";
import Icon from "../components/icon/index.js";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
export default { export default {
name: "menuItem", name: "menuItem",
components: { Icon }, components: { SvgIcon: defineAsyncComponent(() => import("../components/icon/index.js")) },
template: html`<el-sub-menu :index="modelValue.meta.path" v-if="modelValue.children"> template: html`<template v-if="!modelValue.meta.isHidden">
<el-sub-menu
:index="modelValue.meta.path"
v-if="modelValue.children&&modelValue.children.some(o=>!o.meta.isHidden)"
>
<template #title> <template #title>
<el-icon><icon :name="modelValue.meta.icon??'folder'" /></el-icon> <el-icon><svg-icon :name="modelValue.meta.icon??'folder'" /></el-icon>
<span>{{modelValue.meta.title}}</span> <span>{{modelValue.meta.title}}</span>
</template> </template>
<menu-item v-for="item in modelValue.children" v-model="item" /> <menu-item v-for="item in modelValue.children" v-model="item" />
</el-sub-menu> </el-sub-menu>
<el-menu-item <el-menu-item
v-else v-else-if="modelValue.meta.type==='page'"
:index="modelValue.meta.isExternal?null:modelValue.meta.path" :index="modelValue.meta.isExternal?null:modelValue.meta.path"
@click.native="click(modelValue)" @click.native="click(modelValue)"
> >
<el-icon><icon :name="modelValue.meta.icon??file" /></el-icon> <el-icon><svg-icon :name="modelValue.meta.icon??file" /></el-icon>
<template #title> <template #title>
<span>{{modelValue.meta.title}}</span> <span>{{modelValue.meta.title}}</span>
</template> </template>
</el-menu-item>`, </el-menu-item>
</template>`,
props: { props: {
modelValue: { modelValue: {
typeof: Object, typeof: Object,

2
code/WebApp/vanilla/layouts/menu.js

@ -15,7 +15,7 @@ export default {
</el-menu>`, </el-menu>`,
setup() { setup() {
const appStore = useAppStore(); const appStore = useAppStore();
const menus = router.getRoutes().find((o) => o.name === "layout").children; const menus = router.getRoutes().find((o) => o.path === "/").children;
return { return {
appStore, appStore,
menus, menus,

35
code/WebApp/vanilla/layouts/tabs.js

@ -1,12 +1,10 @@
import html from "html"; import html from "html";
import { ref, nextTick } from "vue"; import { defineAsyncComponent, ref, nextTick, getCurrentInstance } from "vue";
import { useRoute, onBeforeRouteUpdate, useRouter } from "vue-router"; import { useRoute, onBeforeRouteUpdate, useRouter } from "vue-router";
import Icon from "../components/icon/index.js";
import { useAppStore } from "../store/index.js"; import { useAppStore } from "../store/index.js";
import MenuItem from "./menu-item.js";
export default { export default {
components: { Icon, MenuItem }, components: { SvgIcon: defineAsyncComponent(() => import("../components/icon/index.js")) },
template: html`<el-tabs template: html`<el-tabs
v-model="model" v-model="model"
type="border-card" type="border-card"
@ -24,23 +22,24 @@ export default {
@visible-change="showContextMenu(index, $event)" @visible-change="showContextMenu(index, $event)"
> >
<span class="inline-flex items-center"> <span class="inline-flex items-center">
<el-icon><icon v-if="item.meta.icon" :name="item.meta.icon" /></el-icon> <el-icon><svg-icon v-if="item.meta.icon" :name="item.meta.icon" /></el-icon>
{{ item.meta?.title ?? item.fullPath }} {{ item.meta?.title ?? item.fullPath }}
</span> </span>
<template #dropdown> <template #dropdown>
<el-dropdown-menu> <el-dropdown-menu>
<el-dropdown-item @click="refresh(index)"><i-ep-refresh />刷新</el-dropdown-item> <el-dropdown-item @click="refresh(index)">
<el-icon><ep-refresh /></el-icon><span></span>
</el-dropdown-item>
<el-dropdown-item :disabled="index === 0" @click="removeLeft(index)"> <el-dropdown-item :disabled="index === 0" @click="removeLeft(index)">
<i-ep-back />关闭左侧 <el-icon><ep-back /></el-icon><span></span>
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item :disabled="index === appStore.routes.length - 1" @click="removeRight(index)"> <el-dropdown-item :disabled="index === appStore.routes.length - 1" @click="removeRight(index)">
<i-ep-right />关闭右侧 <el-icon><ep-right /></el-icon><span></span>
</el-dropdown-item> </el-dropdown-item>
<el-dropdown-item <el-dropdown-item
:disabled="index === 0 && index === appStore.routes.length - 1" :disabled="index === 0 && index === appStore.routes.length - 1"
@click="removeOthers(index)" @click="removeOthers(index)"
> ><el-icon><ep-switch /></el-icon><span></span>
<i-ep-switch />
</el-dropdown-item> </el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
@ -66,6 +65,10 @@ export default {
.router-tab .el-tabs__content { .router-tab .el-tabs__content {
display: none; display: none;
} }
.router-tab .el-icon {
margin-right: 5px;
}
</style> </style>
`, `,
setup() { setup() {
@ -108,11 +111,17 @@ export default {
}); });
}; };
const deleteItem = (start, end) => {
appStore.routes.splice(start, end);
const vue = getCurrentInstance();
console.log(vue);
};
const remove = (name) => { const remove = (name) => {
if (appStore.routes.length > 1) { if (appStore.routes.length > 1) {
const index = appStore.routes.findIndex((o) => o.fullPath === name); const index = appStore.routes.findIndex((o) => o.fullPath === name);
const currentIndex = appStore.routes.findIndex((o) => o.fullPath === currentRoute.fullPath); const currentIndex = appStore.routes.findIndex((o) => o.fullPath === currentRoute.fullPath);
appStore.routes.splice(index, 1); deleteItem(index, 1);
if (index === currentIndex) { if (index === currentIndex) {
if (appStore.routes[index]) { if (appStore.routes[index]) {
router.push(appStore.routes[index]); router.push(appStore.routes[index]);
@ -126,7 +135,7 @@ export default {
const removeLeft = (index) => { const removeLeft = (index) => {
const currentIndex = appStore.routes.findIndex((o) => o.fullPath === currentRoute.fullPath); const currentIndex = appStore.routes.findIndex((o) => o.fullPath === currentRoute.fullPath);
const route = appStore.routes[index]; const route = appStore.routes[index];
appStore.routes.splice(0, index); deleteItem(0, index);
if (currentIndex < index) { if (currentIndex < index) {
router.push(route); router.push(route);
} }
@ -134,7 +143,7 @@ export default {
const removeRight = (index) => { const removeRight = (index) => {
const currentIndex = appStore.routes.findIndex((o) => o.fullPath === currentRoute.fullPath); const currentIndex = appStore.routes.findIndex((o) => o.fullPath === currentRoute.fullPath);
appStore.routes.splice(index + 1, appStore.routes.length - index); deleteItem(index + 1, appStore.routes.length - index);
if (currentIndex > index) { if (currentIndex > index) {
router.push(appStore.routes[index]); router.push(appStore.routes[index]);
} }

36
code/WebApp/vanilla/lib/element-plus/index.full.min.mjs

File diff suppressed because one or more lines are too long

2
code/WebApp/vanilla/main.js

@ -1,5 +1,5 @@
import { createApp } from "vue"; import { createApp } from "vue";
import style from './mixins/style.js'; import style from "./mixins/style.js";
import store, { useAppStore } from "./store/index.js"; import store, { useAppStore } from "./store/index.js";
import router from "./router/index.js"; import router from "./router/index.js";
import ElementPlus from "element-plus"; import ElementPlus from "element-plus";

52
code/WebApp/vanilla/models/login.js

@ -0,0 +1,52 @@
export default function () {
return {
title: "登录",
type: "object",
properties: {
username: {
title: "用户名",
type: "string",
rules: [
{
required: true,
message: "用户名不能为空",
},
{
max: 64,
message: "用户名的最大长度为 64",
},
],
},
password: {
title: "密码",
type: "string",
format: "password",
rules: [
{
required: true,
message: "密码不能为空",
},
{
max: 64,
message: "密码的最大长度为 64",
},
{
message: "DataTypeAttribute",
},
],
},
client_id: {
default: "basic-web",
hidden: true,
},
grant_type: {
default: "password",
hidden: true,
},
scope: {
default: "WebAppGateway BaseService",
hidden: true,
},
},
};
}

50
code/WebApp/vanilla/models/role.js

@ -0,0 +1,50 @@
const schema = {
title: "角色",
type: "object",
properties: {
name: {
title: "角色名",
type: "string",
showForList: true,
rules: [
{
required: true,
},
{
max: 64,
message: "用户名的最大长度为 64",
},
],
},
},
};
export default function () {
return {
query: {
url: "identity/roles",
method: "get",
schema: {
title: "用户",
type: "object",
properties: {
filter: {
title: "角色名",
type: "string",
},
skipCount: {
hidden: true,
default: 0,
},
maxResultCount: {
hidden: true,
default: 10,
},
},
},
},
table: {
schema: schema,
},
};
}

98
code/WebApp/vanilla/models/user.js

@ -0,0 +1,98 @@
const schema = {
title: "用户",
type: "object",
properties: {
userName: {
title: "用户名",
type: "string",
showForList: true,
rules: [
{
required: true,
},
{
max: 64,
message: "用户名的最大长度为 64",
},
],
},
phoneNumber: {
title: "电话",
type: "string",
input: "password",
showForList: true,
rules: [
{
required: true,
},
],
},
name: {
title: "姓名",
type: "string",
showForList: true,
rules: [
{
required: true,
},
],
},
email: {
title: "邮箱",
type: "string",
showForList: true,
rules: [
{
required: true,
},
],
},
roleNames: {
title: "角色",
type: "array",
input: "select",
multiple: true,
},
password: {
title: "密码",
type: "string",
input: "password",
rules: [
{
required: true,
message: "密码不能为空",
},
],
},
},
};
export default function () {
return {
query: {
url: "base/user",
method: "get",
schema: {
title: "用户",
type: "object",
properties: {
filter: {
title: "用户名",
type: "string",
},
skipCount: {
hidden: true,
default: 0,
},
maxResultCount: {
hidden: true,
default: 10,
},
},
},
},
table: {
schema: schema,
},
};
}

72
code/WebApp/vanilla/request/index.js

@ -1,8 +1,13 @@
import qs from "../lib/qs/shim.js"; import qs from "../lib/qs/shim.js";
import { isLogin } from "../api/user.js"; import { isLogin } from "../api/user.js";
import { useAppStore } from "../store/index.js"; import { useAppStore } from "../store/index.js";
import { getFileName } from "../utils/index.js";
import settings from "../config/settings.js"; import settings from "../config/settings.js";
// const requestSettings = {
// baseURL: "/api",
// };
const addToken = async (options) => { const addToken = async (options) => {
if (await isLogin()) { if (await isLogin()) {
const appStore = useAppStore(); const appStore = useAppStore();
@ -17,6 +22,15 @@ const getUrl = (url) => {
} }
let result = settings.baseURL; let result = settings.baseURL;
return (result += `/${url}`); return (result += `/${url}`);
// let result = requestSettings.baseURL;
// if (withoutCulture) {
// result += `/${url}`;
// } else {
// const appStore = useAppStore();
// result += withoutCulture ? "/" : `/${appStore.localization.locale}/`;
// result += url;
// }
// return result;
}; };
const getResult = async (response) => { const getResult = async (response) => {
@ -34,22 +48,26 @@ const getResult = async (response) => {
message: messages.get(response.status), message: messages.get(response.status),
}; };
if (response.status == 200) { if (response.status == 200) {
result.data = await response.json(); const contentType = response.headers.get("Content-Type");
if (contentType.indexOf("application/json") > -1) {
result.data = await response.json();
} else if (contentType === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") {
result.data = await response.blob();
result.filename = getFileName(response.headers.get("Content-Disposition"));
}
} else if (response.status === 400 || response.status === 500) { } else if (response.status === 400 || response.status === 500) {
result.errors = await response.json(); result.errors = await response.json();
} }
return result; return result;
}; };
const get = async (url, data, options, withoutToken = false, withoutCulture = false) => { const get = async (url, data, options, withoutToken = false) => {
url = getUrl(url, withoutCulture); url = getUrl(url);
if (data) { if (data) {
url = `${url}?${qs.stringify(data)}`; url = `${url}?${qs.stringify(data)}`;
} }
const defaultOptions = { const defaultOptions = {
headers: { headers: { "Accept-Language": "zh-Hans" },
"Accept-Language": "zh-Hans",
},
}; };
if (options) { if (options) {
Object.assign(defaultOptions, options); Object.assign(defaultOptions, options);
@ -61,23 +79,25 @@ const get = async (url, data, options, withoutToken = false, withoutCulture = fa
return getResult(response); return getResult(response);
}; };
const post = async (url, data, options, withoutToken = false, withoutCulture = false) => { const post = async (url, data, options, withoutToken = false) => {
url = getUrl(url, withoutCulture); url = getUrl(url);
const defaultOptions = { let defaultOptions = {
method: "POST", method: "POST",
headers: { headers: { "Accept-Language": "zh-Hans" },
"Accept-Language": "zh-Hans",
"Content-Type": "application/json",
},
}; };
if (!(data instanceof FormData)) {
defaultOptions.headers["Content-Type"] = "application/json";
}
if (options) { if (options) {
Object.assign(defaultOptions, options); Object.assign(defaultOptions, options);
} }
if (data && !defaultOptions.body) { if (data && !defaultOptions.body) {
if (defaultOptions.headers["Content-Type"] === "application/x-www-form-urlencoded") { if (defaultOptions.headers["Content-Type"]?.startsWith("application/x-www-form-urlencoded")) {
defaultOptions.body = qs.stringify(data); defaultOptions.body = qs.stringify(data);
} else { } else if (defaultOptions.headers["Content-Type"]?.startsWith("application/json")) {
defaultOptions.body = JSON.stringify(data); defaultOptions.body = JSON.stringify(data);
} else {
defaultOptions.body = data;
} }
} }
if (!withoutToken) { if (!withoutToken) {
@ -87,4 +107,24 @@ const post = async (url, data, options, withoutToken = false, withoutCulture = f
return getResult(response); return getResult(response);
}; };
export { getUrl, get, post }; async function request(url, data, options, withoutToken = false) {
url = getUrl(url);
let defaultOptions = {
method: "POST",
headers: { "Accept-Language": "zh-Hans" },
};
if (options) {
Object.assign(defaultOptions, options);
}
if (defaultOptions.method !== "GET" && !(data instanceof FormData)) {
defaultOptions.headers["Content-Type"] = "application/json";
}
if (!withoutToken) {
await addToken(defaultOptions);
}
const response = await fetch(url, defaultOptions);
return getResult(response);
}
export default request;
export { get, post };

114
code/WebApp/vanilla/router/index.js

@ -1,3 +1,4 @@
import { defineAsyncComponent } from "vue";
import { createRouter, createWebHashHistory } from "vue-router"; import { createRouter, createWebHashHistory } from "vue-router";
import { useTitle } from "@vueuse/core"; import { useTitle } from "@vueuse/core";
import NProgress from "../lib/nprogress/nprogress.vite-esm.js"; import NProgress from "../lib/nprogress/nprogress.vite-esm.js";
@ -5,30 +6,17 @@ import { isLogin, hasPermission } from "../api/user.js";
import { useAppStore } from "../store/index.js"; import { useAppStore } from "../store/index.js";
import { listToTree } from "../utils/index.js"; import { listToTree } from "../utils/index.js";
import { connection, connect } from "../signalr/index.js"; import { connection, connect } from "../signalr/index.js";
import remoteRoutes from "./routes.js";
NProgress.configure({ showSpinner: false }); NProgress.configure({ showSpinner: false });
const routes = [ const routes = [
{
path: "/",
redirect: "/home",
component: () => import("../layouts/index.js"),
children: [
{
path: "home",
component: () => import("../views/home.js"),
meta: {
title: "首页",
icon: "home",
},
},
],
},
{ {
path: "/login", path: "/login",
component: () => import("../views/login.js"), component: () => import("../views/login.js"),
meta: { meta: {
title: "登录", title: "登录",
isHidden: true,
}, },
}, },
{ {
@ -36,6 +24,7 @@ const routes = [
component: () => import("../views/403.js"), component: () => import("../views/403.js"),
meta: { meta: {
title: "权限不足", title: "权限不足",
isHidden: true,
}, },
}, },
{ {
@ -43,6 +32,7 @@ const routes = [
component: () => import("../views/404.js"), component: () => import("../views/404.js"),
meta: { meta: {
title: "无法找到", title: "无法找到",
isHidden: true,
}, },
}, },
]; ];
@ -53,14 +43,13 @@ const router = createRouter({
}); });
router.beforeEach(async (to, from, next) => { router.beforeEach(async (to, from, next) => {
console.log(`before: ${from.path} -> ${to.path}`);
NProgress.start(); NProgress.start();
try { try {
if (to.path !== "/login") { if (to.path !== "/login") {
if (!(await isLogin())) { if (!(await isLogin())) {
next({ path: "/login", query: { redirect: to.fullPath } }); next({ path: "/login", query: { redirect: to.fullPath } });
} else { } else {
if (!hasPermission(to)) { if (!to.meta.public && to.meta.hasPermission === false) {
next({ path: "/403", query: { redirect: to.fullPath } }); next({ path: "/403", query: { redirect: to.fullPath } });
} else { } else {
next(); next();
@ -74,64 +63,67 @@ router.beforeEach(async (to, from, next) => {
} }
}); });
router.afterEach((to, from) => { router.afterEach((to) => {
console.log(`after: ${from.path} -> ${to.path}`);
try { try {
if (to.meta.title) { if (!to.meta.isHidden) {
useTitle().value = `${to.meta.title}`;
}
if (to.fullPath.startsWith("/")) {
const appStore = useAppStore(); const appStore = useAppStore();
appStore.add(to); appStore.add(to);
} }
if (to.meta.title) {
useTitle().value = `${to.meta.title}`;
}
to.meta.cache = new Map();
} finally { } finally {
NProgress.done(); NProgress.done();
} }
}); });
const reset = async (list, parent = null) => {
return list.map(async (o) => {
const item = {
path: o.path,
meta: o.meta,
};
if (o.component && typeof o.component === "string" && o.component !== "Layout") {
try {
item.component = await import(`../views/${o.component}.js`);
} catch (error) {
item.component = await import(`../views/list.js`);
}
}
item.meta.path = `${parent === null ? "" : parent.meta.path + "/"}${item.path}`;
item.meta.fullName = `${parent === null ? "" : parent.meta.title + " > "}${item.meta.title}`;
if (o.type === "Resource") {
if (o.children.length) {
item.meta.buttons = o.children.map((b) => {
return {
path: b.path,
meta: b.meta,
};
});
}
} else if (o.type !== "Operation" && o.children?.length) {
item.children = reset(o.children, item);
}
return item;
});
};
const refreshRouter = async () => { const refreshRouter = async () => {
await connect(); //await connect();
const appStore = useAppStore(); const appStore = useAppStore();
const permissions = appStore.user.permissions.filter((o) => !o.isHidden); const permissions = appStore.user.permissions;
const serverRoutes = await reset(permissions); const serverRoutes = JSON.parse(JSON.stringify(remoteRoutes));
const route = { const setPermission = (list, parent = null) => {
list.forEach((o) => {
// full path
o.meta.path = `${parent === null ? "/" : parent.meta.path + "/"}${o.path}`;
// full name
o.meta.fullName = `${parent === null ? "" : parent.meta.title + " > "}${o.meta.title}`;
// permission
if (o.meta.type === "page" || o.meta.type === "button") {
if (!o.meta.public) {
o.meta.hasPermission = !!permissions[o.meta.permission];
}
}
// component
if (o.meta?.type === "page") {
if (!o.component) {
o.component = o.path;
}
if (o.component.constructor === String) {
o.component = () => import(`../views${o.meta.path}.js`);
}
}
// children
if (o.children?.length) {
setPermission(o.children, o);
if (o.meta.type === "page") {
o.meta.children = o.children;
delete o.children;
}
}
});
};
setPermission(serverRoutes);
router.removeRoute("layout");
const layout = {
name: "layout", name: "layout",
path: "", path: "/",
redirect: "/home",
component: () => import("../layouts/index.js"),
children: serverRoutes, children: serverRoutes,
}; };
router.removeRoute("layout"); router.addRoute("/", layout);
router.addRoute("/", route);
}; };
export default router; export default router;
export { refreshRouter }; export { refreshRouter };

101
code/WebApp/vanilla/router/routes.js

@ -0,0 +1,101 @@
export default [
{
path: "home",
meta: {
type: "page",
title: "首页",
icon: "home",
public: true,
},
},
{
path: "base-data",
meta: {
type: "group",
title: "基础数据",
icon: "folder",
},
children: [
{
path: "user",
meta: {
type: "page",
title: "用户管理",
icon: "file",
permission: "AbpIdentity.Users",
},
children: [
{
path: "create",
meta: {
type: "button",
title: "新建",
icon: "file",
permission: "AbpIdentity.Users.Create",
isTop: true,
},
},
{
path: "update",
meta: {
type: "button",
title: "编辑",
icon: "file",
htmlClass: "el-button--primary",
permission: "AbpIdentity.Users.Update",
},
},
{
path: "delete",
meta: {
type: "button",
title: "删除",
icon: "file",
permission: "AbpIdentity.Users.Delete",
},
},
],
},
{
path: "role",
meta: {
type: "page",
title: "角色管理",
icon: "file",
permission: "AbpIdentity.Users",
},
children: [
{
path: "create",
meta: {
type: "button",
title: "新建",
icon: "file",
permission: "AbpIdentity.Users.Create",
isTop: true,
},
},
{
path: "update",
meta: {
type: "button",
title: "编辑",
icon: "file",
htmlClass: "el-button--primary",
permission: "AbpIdentity.Users.Update",
},
},
{
path: "delete",
meta: {
type: "button",
title: "删除",
icon: "file",
permission: "AbpIdentity.Users.Delete",
},
},
],
},
],
},
];

33
code/WebApp/vanilla/signalr/index.js

@ -7,27 +7,26 @@ let connectionId = null;
const connection = new signalR.HubConnectionBuilder() const connection = new signalR.HubConnectionBuilder()
.withUrl("./api/hub", { .withUrl("./api/hub", {
accessTokenFactory: () => { accessTokenFactory: () => {
const appStore = useAppStore(); return useAppStore().token;
return appStore.token;
}, },
}) })
.withAutomaticReconnect() //.withAutomaticReconnect()
.build(); .build();
const connect = async () => { const connect = async () => {
return; // if (await isLogin()) {
if (await isLogin()) { // if (connection.state === signalR.HubConnectionState.Disconnected) {
if (connection.state === signalR.HubConnectionState.Disconnected) { // connection
connection // .start()
.start() // .then(function () {
.then(function () { // console.log("signalr connected");
console.log("signalr connected"); // })
}) // .catch(async function (error) {
.catch(function (error) { // console.log(error);
console.error(error); // await isLogin();
//setTimeout(connect, 5000); // setTimeout(connect, 5000);
}); // });
} // }
} // }
}; };
connection.onclose(async () => { connection.onclose(async () => {
await connect(); await connect();

7
code/WebApp/vanilla/store/app.js

@ -1,6 +1,6 @@
import { defineStore } from "pinia"; import { defineStore } from "pinia";
import settings from "../config/settings.js"; import settings from "../config/settings.js";
import { getUser, isLogin } from "../api/user.js"; import { getAccessToken, getUser, isLogin } from "../api/user.js";
import { get, post } from "../request/index.js"; import { get, post } from "../request/index.js";
import { refreshRouter } from "../router/index.js"; import { refreshRouter } from "../router/index.js";
import { getLocalizationAsync } from "../api/site.js"; import { getLocalizationAsync } from "../api/site.js";
@ -12,6 +12,7 @@ const useAppStore = defineStore("app", {
isMenuCollapse: false, isMenuCollapse: false,
isRefreshing: false, isRefreshing: false,
routes: [], routes: [],
cache: new Map(),
}; };
const localSettings = JSON.parse(localStorage.getItem("settings") ?? "{}"); const localSettings = JSON.parse(localStorage.getItem("settings") ?? "{}");
Object.assign(state.settings, localSettings); Object.assign(state.settings, localSettings);
@ -20,6 +21,10 @@ const useAppStore = defineStore("app", {
actions: { actions: {
async init() { async init() {
// 获取站点信息 // 获取站点信息
// const result = await get("localization", null, null, true, true);
// this.localization = result.data;
//
this.token = getAccessToken();
this.localization = await getLocalizationAsync(); this.localization = await getLocalizationAsync();
// 获取用户信息 // 获取用户信息
if (await isLogin()) { if (await isLogin()) {

5
code/WebApp/vanilla/styles/site.css

@ -103,16 +103,13 @@ a.logo {
white-space: nowrap; white-space: nowrap;
} }
.el-icon {
margin-right: 5px;
}
.el-dialog__header, .el-dialog__header,
.el-dialog__footer, .el-dialog__footer,
.el-drawer__header, .el-drawer__header,
.el-drawer__footer { .el-drawer__footer {
height: var(--header); height: var(--header);
padding: 15px; padding: 15px;
margin: 0;
} }
.el-dialog__header, .el-dialog__header,

6
code/WebApp/vanilla/utils/index.js

@ -116,5 +116,9 @@ function getProp(instance, propPath) {
return get(instance, propPath); return get(instance, propPath);
} }
function getFileName(contentDisposition) {
return decodeURIComponent(/filename\*=UTF-8''([\w%\-\.]+)(?:; ?|$)/i.exec(contentDisposition)[1]);
}
export default html; export default html;
export { persentFormat, bytesFormat, format, schemaToModel, listToTree, treeToList, getProp }; export { persentFormat, bytesFormat, format, schemaToModel, listToTree, treeToList, getProp, getFileName };

2
code/WebApp/vanilla/views/404.js

@ -1,3 +1,3 @@
export default { export default {
template: `404:{{$route}}`, template: `404`,
}; };

17
code/WebApp/vanilla/views/base-data/role.js

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

17
code/WebApp/vanilla/views/base-data/user.js

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

17
code/WebApp/vanilla/views/list.js

@ -5,22 +5,7 @@ import router from "../router/index.js";
export default { export default {
components: { AppList }, components: { AppList },
template: html`<el-scrollbar> template: html`<el-scrollbar>
<app-list @command="onCommand"> <app-list @command="onCommand"> </app-list>
<template #columns="scope">
<el-table-column label="自定义列测试1" prop="id">
<template #default="scope"> {{scope.row.id}} </template>
</el-table-column>
<el-table-column label="自定义列测试2">
<template #default="scope"> {{scope.row.parent?.id}} </template>
</el-table-column>
</template>
<template #tableButtons="{rows}">
<el-button class="el-button--primary" @click="()=>(console.log(rows))">{{$t('test')}}</el-button>
</template>
<template #rowButtons="{rows}">
<el-button class="el-button--primary" @click="()=>(console.log(rows))">{{$t('test')}}</el-button>
</template>
</app-list>
</el-scrollbar>`, </el-scrollbar>`,
setup() { setup() {
console.log(router.currentRoute.value.fullPath); console.log(router.currentRoute.value.fullPath);

84
code/WebApp/vanilla/views/login.js

@ -1,11 +1,14 @@
import html, { schemaToModel } from "html"; import html, { schemaToModel } from "html";
import { ref, reactive } from "vue"; import { ref, reactive } from "vue";
import AppForm from "../components/form/index.js"; import AppForm from "../components/form/index.js";
import { login } from "../api/user.js"; import { login, setRefreshToken, getUser, setAccessToken } from "../api/user.js";
import { get } from "../request/index.js"; import router, { refreshRouter } from "../router/index.js";
import { post } 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";
import { useAppStore } from "../store/index.js";
import useLoginModel from "../models/login.js";
export default { export default {
components: { AppForm, LayoutLogo, LayoutLocale, LayoutFooter }, components: { AppForm, LayoutLogo, LayoutLocale, LayoutFooter },
@ -24,61 +27,32 @@ export default {
</el-main> </el-main>
</el-container>`, </el-container>`,
async setup() { async setup() {
const schema = reactive({ const schema = reactive(useLoginModel());
title: "LoginRequestModel",
type: "object",
properties: {
username: {
title: "用户名",
type: "string",
rules: [
{
required: true,
message: "用户名不能为空",
},
{
max: 64,
message: "用户名的最大长度为 64",
},
],
},
password: {
title: "密码",
type: "string",
format: "password",
rules: [
{
required: true,
message: "密码不能为空",
},
{
max: 64,
message: "密码的最大长度为 64",
},
{
message: "DataTypeAttribute",
},
],
},
client_id: {
default: "basic-web",
hidden: true,
},
grant_type: {
default: "password",
hidden: true,
},
scope: {
default: "WebAppGateway BaseService",
hidden: true,
},
},
});
const model = reactive(schemaToModel(schema)); const model = reactive(schemaToModel(schema));
const submit = async (callback) => { const submit = async (callback, loading) => {
const result = await login(model); try {
if (result.errors) { const url = "connect-token";
const appStore = useAppStore();
const result = await post(
url,
model,
{ headers: { "Content-Type": "application/x-www-form-urlencoded" } },
true
);
if (!result.errors) {
appStore.token = result.data.access_token;
setAccessToken(appStore.token);
//setRefreshToken(result.data.refresh_token);
appStore.user = await getUser();
await refreshRouter();
const redirect = router.currentRoute.value.query?.redirect ?? "/";
router.push(redirect);
}
callback(result.errors); callback(result.errors);
} catch (error) {
callback(error);
} finally {
loading.value = false;
} }
}; };
return { return {

15
code/WebApp/vanilla/views/user/index.js

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

2
code/WebApp/vue/.env.development

@ -4,7 +4,7 @@ ENV = 'development'
# base api # base api
VUE_APP_BASE_API = '/dev-api' VUE_APP_BASE_API = '/dev-api'
VUE_APP_BASE_API_ADMIN = 'http://114.116.225.148:8002' VUE_APP_BASE_API_ADMIN = 'http://114.116.225.148:8002'
port='9528' port='9527'
# vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable, # vue-cli uses the VUE_CLI_BABEL_TRANSPILE_MODULES environment variable,
# to control whether the babel-plugin-dynamic-import-node plugin is enabled. # to control whether the babel-plugin-dynamic-import-node plugin is enabled.
# It only does one thing by converting all import() to require(). # It only does one thing by converting all import() to require().

7
code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/appsettings.json

@ -3,13 +3,8 @@
"CorsOrigins": "https://*.abc.com,http://localhost:9528,http://149.223.116.5:8088" "CorsOrigins": "https://*.abc.com,http://localhost:9528,http://149.223.116.5:8088"
}, },
"ConnectionStrings": { "ConnectionStrings": {
"Default": "Server=dev.ccwin-in.com,13319;Database=BJABP;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True", "Default": "Server=dev.ccwin-in.com,13319;Database=BQ_SA;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True",
"SettleAccountService": "Server=dev.ccwin-in.com,13319;Database=BQ_SA;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True;" "SettleAccountService": "Server=dev.ccwin-in.com,13319;Database=BQ_SA;User ID=ccwin-in;Password=Microsoft@2022;Trusted_Connection=False;TrustServerCertificate=True;"
}, },
"Serilog": { "Serilog": {

21
code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Bases/RequestInputBase.cs

@ -0,0 +1,21 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Application.Dtos;
using Win.Sfs.Shared.Filter;
namespace Win.Sfs.SettleAccount.Bases
{
public class RequestInputBase: PagedAndSortedResultRequestDto
{
/// <summary>
/// 导出文件类型
/// </summary>
public int FileType { get; set; }
/// <summary>
/// 高级检索
/// </summary>
[Display(Name = "高级检索")]
public virtual List<FilterCondition> Filters { get; set; } = new List<FilterCondition>();
}
}

453
code/src/Modules/SettleAccount/src/SettleAccount.Application.Contracts/Entities/Prices/PriceListDtoBase.cs

@ -2,10 +2,8 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Win.Sfs.SettleAccount.Bases;
using Win.Sfs.Shared.Filter; using Win.Sfs.Shared.Filter;
namespace Win.Sfs.SettleAccount.Entities.Prices namespace Win.Sfs.SettleAccount.Entities.Prices
@ -50,81 +48,221 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
} }
/// <summary>
/// 销售价格单导出
/// </summary>
public class PriceListExportDto public class PriceListExportDto
{ {
/// <summary> /// <summary>
/// 版本 /// 零件号
/// </summary> /// </summary>
[Display(Name = "版本")] [Display(Name = "零件号")]
[ExporterHeader(DisplayName = "版本",IsIgnore =true)] [ExporterHeader(DisplayName = "零件号")]
public string Version { set; get; } public string LU { get; set; }
[ExporterHeader(DisplayName = "有效从")]
public DateTime BeginDate { get; set; }
/// <summary> /// <summary>
///结算时间 /// 价格
/// </summary> /// </summary>
[ExporterHeader(DisplayName = "有效到")] [Display(Name = "价格")]
public DateTime EndDate { get; set; } [ExporterHeader(DisplayName = "价格")]
public Decimal Price { set; get; }
/// <summary> /// <summary>
///价格 /// 开始时间
/// </summary> /// </summary>
[ExporterHeader(DisplayName = "*金额")] [Display(Name = "开始时间")]
public decimal Price { get; set; } [ExporterHeader(DisplayName = "开始时间")]
public DateTime BeginTime { set; get; }
/// <summary> /// <summary>
///物料编号 /// 结束时间
/// </summary> /// </summary>
[ExporterHeader(DisplayName = "*物料编码")] [Display(Name = "结束时间")]
public string MaterialCode { get; set; } [ExporterHeader(DisplayName = "结束时间")]
public DateTime EndTime { set; get; }
/// <summary> /// <summary>
///价格类型 /// 客户编码
/// </summary> /// </summary>
[ExporterHeader(DisplayName = "*分销渠道",IsIgnore =true)] [Display(Name = "客户编码")]
public int Type { get; set; } [ExporterHeader(DisplayName = "客户编码")]
[ExporterHeader(DisplayName = "*客户")] public string ClientCode { get; set; }
public string CustomerCode { get; set; }
} }
/// <summary>
/// 销售价格导入
/// </summary>
[ImportProject(Name = SettleAccountModuleName.PriceList)] [ImportProject(Name = SettleAccountModuleName.PriceList)]
public class PriceListImportDto public class PriceListImportDto
{ {
///// <summary> ///// <summary>
///// 版本 ///// ItemNo
///// </summary> ///// </summary>
//[Display(Name = "版本")] //[ImporterHeader(Name = "ItemNo")]
//public string Version { set; get; } //public string ItemNo { get; set; }
/// <summary> /// <summary>
///开始时间 /// 零件号
/// </summary> /// </summary>
[ImporterHeader(Name = "有效从")] [ImporterHeader(Name = "Part No.")]
public DateTime BeginDate { get; set; } public string PartNo { get; set; }
///// <summary>
///// PartDescription
///// </summary>
//[ImporterHeader(Name = "PartDescription")]
//public string PartDescription { get; set; }
///// <summary>
///// ES1
///// </summary>
//[ImporterHeader(Name = "ES1")]
//public string ES1 { get; set; }
///// <summary>
///// ES2
///// </summary>
//[ImporterHeader(Name = "ES2")]
//public string ES2 { get; set; }
///// <summary>
///// ZGS
///// </summary>
//[ImporterHeader(Name = "ZGS")]
//public string ZGS { get; set; }
///// <summary>
///// UnitOfMeasure
///// </summary>
//[ImporterHeader(Name = "UnitOfMeasure")]
//public string UnitOfMeasure { get; set; }
///// <summary>
///// Currency
///// </summary>
//[ImporterHeader(Name = "Currency")]
//public string Currency { get; set; }
///// <summary>
///// PriceType
///// </summary>
//[ImporterHeader(Name = "PriceType")]
//public string PriceType { get; set; }
/// <summary> /// <summary>
///结算时间 /// 价格
/// </summary> /// </summary>
[ImporterHeader(Name = "有效到")] [ImporterHeader(Name = "Total Price")]
public DateTime EndDate { get; set; } public string TotalPrice { get; set; }
///// <summary>
///// Base Price(Old)
///// </summary>
//[ImporterHeader(Name = "Base Price(Old)")]
//public string BasePriceOld { get; set; }
///// <summary>
///// UnitOfOrder
///// </summary>
//[ImporterHeader(Name = "Unit of Order")]
//public string UnitOfOrder { get; set; }
///// <summary>
///// 11000 - BBAC JIS
///// </summary>
//[ImporterHeader(Name = "11000 - BBAC JIS")]
//public string BBACJIS { get; set; }
/// <summary> /// <summary>
///价格 /// 开始时间
/// </summary> /// </summary>
[ImporterHeader(Name = "*金额")] [ImporterHeader(Name = "Valid From")]
public decimal Price { get; set; } public string ValidFrom { get; set; }
/// <summary> /// <summary>
///物料编号 /// 结束时间
/// </summary> /// </summary>
[ImporterHeader(Name = "*物料编码")] [ImporterHeader(Name = "Valid To")]
public string MaterialCode { get; set; } public string ValidTo { get; set; }
///// <summary>
///// ProductionCountry
///// </summary>
//[ImporterHeader(Name = "Production Country")]
//public string ProductionCountry { get; set; }
/// <summary> /// <summary>
///价格类型 /// 客户编码
/// </summary> /// </summary>
[ImporterHeader(Name = "*分销渠道")] [ImporterHeader(Name = "Plant")]
public int Type { get; set; } public string Plant { get; set; }
[ImporterHeader(Name = "*客户")]
public string CustomerCode { get; set; }
} ///// <summary>
///// Transport Term
///// </summary>
//[ImporterHeader(Name = "Transport Term")]
//public string TransportTerm { get; set; }
///// <summary>
///// Transport Term City
///// </summary>
//[ImporterHeader(Name = "Transport Term City")]
//public string TransportTermCity { get; set; }
///// <summary>
///// Transport Term Country
///// </summary>
//[ImporterHeader(Name = "Transport Term Country")]
//public string TransportTermCountry { get; set; }
///// <summary>
///// Shipping Location
///// </summary>
//[ImporterHeader(Name = "Shipping Location")]
//public string ShippingLocation { get; set; }
///// <summary>
///// Production Location
///// </summary>
//[ImporterHeader(Name = "Production Location")]
//public string ProductionLocation { get; set; }
///// <summary>
///// VAT Shipping Country
///// </summary>
//[ImporterHeader(Name = "VAT Shipping Country")]
//public string VATShippingCountry { get; set; }
///// <summary>
///// Minimum Order Quantity
///// </summary>
//[ImporterHeader(Name = "Minimum Order Quantity")]
//public string MinimumOrderQuantity { get; set; }
///// <summary>
///// Payment
///// </summary>
//[ImporterHeader(Name = "Payment")]
//public string Payment { get; set; }
///// <summary>
///// Packaging
///// </summary>
//[ImporterHeader(Name = "Packaging")]
//public string Packaging { get; set; }
///// <summary>
///// Return
///// </summary>
//[ImporterHeader(Name = "Return")]
//public string Return { get; set; }
///// <summary>
///// 3YP
///// </summary>
//[ImporterHeader(Name = "3YP")]
//public string YP3 { get; set; }
}
public class PriceListRequestDto : PagedAndSortedResultRequestDto public class PriceListRequestDto : PagedAndSortedResultRequestDto
{ {
@ -149,126 +287,76 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
public virtual List<FilterCondition> Filters { get; set; } = new List<FilterCondition>(); public virtual List<FilterCondition> Filters { get; set; } = new List<FilterCondition>();
} }
#region 备件价格
public class PriceListBJDto : EntityDto<Guid> public class PriceListBJDto : EntityDto<Guid>
{ {
/// <summary> /// <summary>
/// 版本 /// 零件号
/// </summary>
[Display(Name = "版本")]
public string Version { set; get; }
/// <summary>
///开始时间
/// </summary> /// </summary>
[Display(Name = "开始时间")] [Display(Name = "零件号")]
public DateTime BeginDate { get; set; } public string LU { get; set; }
/// <summary>
///结算时间
/// </summary>
[Display(Name = "结算时间")]
public DateTime EndDate { get; set; }
/// <summary> /// <summary>
///价格 /// 价格
/// </summary> /// </summary>
[Display(Name = "价格")] [Display(Name = "价格")]
public decimal Price { get; set; } public Decimal Price { set; get; }
/// <summary>
///物料编号
/// </summary>
[Display(Name = "物料编号")]
public string MaterialCode { get; set; }
/// <summary> /// <summary>
///价格类型 /// 客户编码
/// </summary> /// </summary>
[Display(Name = "价格类型")] [Display(Name = "客户编码")]
public int Type { get; set; } public string ClientCode { get; set; }
public Guid ParentId { set; get; }
[Display(Name = "客户")]
public string CustomerCode { get; set; }
} }
[Display(Name = "备件价格")]
public class PriceListBJExportDto public class PriceListBJExportDto
{ {
/// <summary> /// <summary>
/// 版本 /// 零件号
/// </summary> /// </summary>
[Display(Name = "版本")] [ExporterHeader(DisplayName = "零件号")]
[ExporterHeader(DisplayName = "版本")] public string LU { get; set; }
public string Version { set; get; }
[ImporterHeader(Name = "有效从")]
public DateTime BeginDate { get; set; }
/// <summary>
///结算时间
/// </summary>
[ImporterHeader(Name = "有效到")]
public DateTime EndDate { get; set; }
/// <summary> /// <summary>
///价格 /// 价格
/// </summary> /// </summary>
[ImporterHeader(Name = "*金额")] [ExporterHeader(DisplayName = "价格")]
public decimal Price { get; set; } public decimal Price { get; set; }
/// <summary> /// <summary>
///物料编号 ///客户编码
/// </summary>
[ImporterHeader(Name = "*物料编码")]
public string MaterialCode { get; set; }
/// <summary>
///价格类型
/// </summary> /// </summary>
[ImporterHeader(Name = "*分销渠道")] [ExporterHeader(DisplayName = "客户编码")]
public int Type { get; set; } public string ClientCode { get; set; }
[ImporterHeader(Name = "*客户")]
public string CustomerCode { get; set; }
} }
public class PriceListBJImportDto public class PriceListBJImportDto
{ {
///// <summary>
///// 版本
///// </summary>
//[Display(Name = "版本")]
//public string Version { set; get; }
/// <summary> /// <summary>
///开始时间 /// 零件号
/// </summary>
[ImporterHeader(Name = "有效从")]
public DateTime BeginDate { get; set; }
/// <summary>
///结算时间
/// </summary> /// </summary>
[ImporterHeader(Name = "有效到")] [ImporterHeader(Name = "零件号")]
public DateTime EndDate { get; set; } public string LU { get; set; }
/// <summary> /// <summary>
///价格 /// 价格
/// </summary> /// </summary>
[ImporterHeader(Name = "*金额")] [ImporterHeader(Name = "价格")]
public decimal Price { get; set; } public decimal Price { get; set; }
/// <summary> /// <summary>
///物料编号 ///客户编码
/// </summary>
[ImporterHeader(Name = "*物料编码")]
public string MaterialCode { get; set; }
/// <summary>
///价格类型
/// </summary> /// </summary>
[ImporterHeader(Name = "*分销渠道")] [ImporterHeader(Name = "客户编码")]
public int Type { get; set; } public string ClientCode { get; set; }
[ImporterHeader(Name = "*客户")]
public string CustomerCode { get; set; }
} }
public class PriceListBJRequestDto : PagedAndSortedResultRequestDto public class PriceListBJRequestDto : RequestInputBase
{ {
[Display(Name = "开始时间")] [Display(Name = "开始时间")]
public DateTime BeginDate { get; set; } public DateTime BeginDate { get; set; }
[Display(Name = "结算时间")] [Display(Name = "结算时间")]
@ -287,10 +375,115 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
public string Version { set; get; } public string Version { set; get; }
public virtual List<FilterCondition> Filters { get; set; } = new List<FilterCondition>(); public virtual List<FilterCondition> Filters { get; set; } = new List<FilterCondition>();
}
#endregion
/// <summary>
/// 列表
/// </summary>
public class TB_PRICE_LISTDto : AuditedEntityDto<Guid>
{
/// <summary>
/// 零件号
/// </summary>
[Display(Name = "零件号")]
public string LU { get; set; }
/// <summary>
/// 价格
/// </summary>
[Display(Name = "价格")]
public Decimal Price { set; get; }
/// <summary>
/// 开始时间
/// </summary>
[Display(Name = "开始时间")]
public DateTime BeginTime { set; get; }
/// <summary>
/// 结束时间
/// </summary>
[Display(Name = "结束时间")]
public DateTime EndTime { set; get; }
/// <summary>
/// 客户编码
/// </summary>
[Display(Name = "客户编码")]
public string ClientCode { get; set; }
/// <summary>
/// 业务类别
/// </summary>
[Display(Name = "业务类别")]
public string BusinessType { get; set; }
/// <summary>
/// 版本
/// </summary>
[Display(Name = "版本")]
public string Version { set; get; }
} }
/// <summary>
/// 列表请求
/// </summary>
public class TB_PRICE_LIST_RequestDto : PagedAndSortedResultRequestDto
{
/// <summary>
/// 零件号
/// </summary>
[Display(Name = "零件号")]
public string LU { get; set; }
/// <summary>
/// 价格
/// </summary>
[Display(Name = "价格")]
public Decimal Price { set; get; }
/// <summary>
/// 开始时间
/// </summary>
[Display(Name = "开始时间")]
public DateTime BeginTime { set; get; }
/// <summary>
/// 结束时间
/// </summary>
[Display(Name = "结束时间")]
public DateTime EndTime { set; get; }
/// <summary>
/// 客户编码
/// </summary>
[Display(Name = "客户编码")]
public string ClientCode { get; set; }
/// <summary>
/// 业务类别
/// </summary>
[Display(Name = "业务类别")]
public string BusinessType { get; set; }
/// <summary>
/// 版本
/// </summary>
[Display(Name = "版本")]
public string Version { set; get; }
/// <summary>
/// 高级检索
/// </summary>
[Display(Name = "高级检索")]
public virtual List<FilterCondition> Filters { get; set; } = new List<FilterCondition>();
/// <summary>
/// 导出文件类型
/// </summary>
public int FileType { set; get; }
}
} }

150
code/src/Modules/SettleAccount/src/SettleAccount.Application/Bases/CurdBaseAppService.cs

@ -0,0 +1,150 @@
using Castle.Core.Internal;
using Magicodes.ExporterAndImporter.Core;
using Magicodes.ExporterAndImporter.Csv;
using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Shouldly;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Entities;
using Win.Sfs.BaseData.ImportExcelCommon;
using Win.Sfs.SettleAccount.Constant;
using Win.Sfs.SettleAccount.Entities.Prices;
using Win.Sfs.SettleAccount.ExcelImporter;
using Win.Sfs.Shared.RepositoryBase;
namespace Win.Sfs.SettleAccount.Bases
{
public abstract class CurdBaseAppService<TEntity, TEntityDto, TRequestInput, TCreateInput, TImportInput, TExportDto> : ApplicationService
where TEntity : class, IEntity<Guid>
where TEntityDto : class, IEntityDto<Guid>, new()
where TRequestInput : RequestInputBase
where TImportInput : class, new()
where TExportDto : class, new()
{
private readonly INormalEfCoreRepository<TEntity, Guid> _repository;
private readonly IExcelImportAppService _excelImportService;
protected CurdBaseAppService(INormalEfCoreRepository<TEntity, Guid> repository, IExcelImportAppService excelImportService)
{
_repository = repository;
_excelImportService = excelImportService;
}
#region 导入、导出
/// <summary>
/// 获取导入模板
/// </summary>
[HttpPost("import-template")]
public virtual async Task<IActionResult> ImportTemplateAsync()
{
await Task.CompletedTask;
return new Microsoft.AspNetCore.Mvc.OkResult();
}
/// <summary>
/// 导入
/// </summary>
[HttpPost]
[Route("Import")]
public virtual async Task<string> ImportAsync([FromForm] IFormFileCollection files, string version)
{
await Task.CompletedTask;
return ApplicationConsts.SuccessStr;
}
/// <summary>
/// 导出
/// </summary>
[HttpPost]
[Route("Export")]
public virtual async Task<string> ExportAsync(TRequestInput input)
{
IExporter _csv = new CsvExporter();
IExporter _excel = new ExcelExporter();
var entities = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, int.MaxValue, 0, true);
var dtoDetails = ObjectMapper.Map<List<TEntity>, List<TExportDto>>(entities);
var classDisplayName = typeof(TExportDto).GetCustomAttribute<DisplayAttribute>()?.Name ?? typeof(TExportDto).Name;
string _fileName = $"{classDisplayName}_{Guid.NewGuid().ToString()}.xlsx";
byte[] result = null;
switch (input.FileType)
{
case 0:
result = await _csv.ExportAsByteArray(dtoDetails);
break;
case 1:
result = await _excel.ExportAsByteArray(dtoDetails);
break;
}
result.ShouldNotBeNull();
//保存导出文件到服务器存成二进制
await _excelImportService.SaveBlobAsync(
new SaveExcelImportInputDto
{
Name = _fileName,
Content = result
}
);
return _fileName;
}
#endregion
#region CURD
/// <summary>
/// 新增
/// </summary>
[HttpPost("")]
public virtual async Task<TEntityDto> CreateAsync(TCreateInput input)
{
var entity = ObjectMapper.Map<TCreateInput, TEntity>(input);
await _repository.InsertAsync(entity, autoSave: true).ConfigureAwait(continueOnCapturedContext: false);
return ObjectMapper.Map<TEntity, TEntityDto > (entity);
}
/// <summary>
/// 获取列表
/// </summary>
[HttpPost]
[Route("list")]
public virtual async Task<PagedResultDto<TEntityDto>> GetListAsync(TRequestInput input)
{
var entitys = await _repository.GetListByFilterAsync(input.Filters, input.Sorting, input.MaxResultCount, input.SkipCount);
var totalCount = await _repository.GetCountByFilterAsync(input.Filters);
var dtos = ObjectMapper.Map<List<TEntity>, List<TEntityDto>>(entitys);
return new PagedResultDto<TEntityDto>(totalCount, dtos);
}
/// <summary>
/// 删除
/// </summary>
[HttpDelete]
[Route("{id}")]
virtual public async Task DeleteAsync(Guid id)
{
await _repository.DeleteAsync(id);
}
/// <summary>
/// 批量删除
/// </summary>
[HttpPost]
[Route("delete")]
virtual public async Task<bool> DeleteListAsync(List<Guid> ids)
{
return await _repository.DeleteListAsync(ids);
}
#endregion
}
}

325
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/Prices/PriceListAppService.cs

@ -4,11 +4,16 @@ using Magicodes.ExporterAndImporter.Excel;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.OpenApi.Extensions;
using NPOI.SS.UserModel;
using SettleAccount.Job.Services.Report; using SettleAccount.Job.Services.Report;
using Shouldly; using Shouldly;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Linq; using System.Linq;
using System.Reflection;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using TaskJob.EventArgs; using TaskJob.EventArgs;
@ -27,29 +32,183 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
/// <summary> /// <summary>
/// 标准价格单-相关应用服务 /// 标准价格单-相关应用服务
/// </summary> /// </summary>
[Authorize(SettleAccountPermissions.PriceLists.Default)] //[Authorize(SettleAccountPermissions.PriceLists.Default)]
[Route("api/SettleAccount/PriceList")] [Route("api/SettleAccount/PriceList")]
//[AllowAnonymous] [AllowAnonymous]
public class PriceListAppService : ApplicationService public class PriceListAppService : ApplicationService
/*, IPriceListAppService*/ /*, IPriceListAppService*/
{ {
private readonly PriceListManager _mng; private readonly PriceListManager _priceListManager;
private readonly IExcelImportAppService _excelImportService; private readonly IExcelImportAppService _excelImportService;
private readonly ISettleAccountBranchEfCoreRepository<ImportColumnMap, Guid> _mapRepository; private readonly ISettleAccountBranchEfCoreRepository<ImportColumnMap, Guid> _mapRepository;
private readonly TaskJobService _service; private readonly TaskJobService _service;
public PriceListAppService( public PriceListAppService(
IExcelImportAppService excelImportService, IExcelImportAppService excelImportService,
ISettleAccountBranchEfCoreRepository<ImportColumnMap, Guid> mapRepository, ISettleAccountBranchEfCoreRepository<ImportColumnMap, Guid> mapRepository,
PriceListManager mng, PriceListManager priceListManager,
TaskJobService service TaskJobService service
) )
{ {
_mapRepository = mapRepository; _mapRepository = mapRepository;
_excelImportService = excelImportService; _excelImportService = excelImportService;
_mng = mng; _priceListManager = priceListManager;
_service = service; _service = service;
} }
#region 导入、导出
/// <summary>
/// 获取导入模板
/// </summary>
[HttpPost("import-template")]
public virtual async Task<IActionResult> ImportTemplateAsync()
{
await Task.CompletedTask;
return new Microsoft.AspNetCore.Mvc.OkResult();
}
/// <summary>
/// 导入
/// </summary>
[HttpPost]
[Route("Import")]
//[Authorize(SettleAccountPermissions.PriceLists.Create)]
public virtual async Task<string> ImportAsync([FromForm] IFormFileCollection files, string version)
{
ExportImporter _exportImporter = new ExportImporter();
var result = await _exportImporter.UploadExcelImport<PriceListImportDto>(files, _excelImportService);
List<string> _checkls = new List<string>();
_checkls.Add("1040");
_checkls.Add("1046");
_checkls.Add("104T");
result = result.Where(p => _checkls.Contains(p.Plant)).ToList();
var entityList = ObjectMapper.Map<List<PriceListImportDto>, List<PriceList>>(result);
var _ls = entityList.OrderByDescending(p => p.BeginTime).GroupBy(p => new { p.LU, p.ClientCode }).Select(p => p.FirstOrDefault());
foreach (var itm in _ls)
{
itm.Update(GuidGenerator.Create(), version);
}
await _priceListManager.ImportAsync(_ls.ToList(), version);
return ApplicationConsts.SuccessStr;
}
/// <summary>
/// 导出
/// </summary>
[HttpPost]
[Route("Export")]
//[Authorize(SettleAccountPermissions.PriceLists.Default)]
public virtual async Task<string> ExportAsync(TB_PRICE_LIST_RequestDto input)
{
IExporter _csv = new CsvExporter();
IExporter _excel = new ExcelExporter();
var entities = await _priceListManager.GetListAsync(input.Filters, input.Sorting, int.MaxValue,
0, true);
var dtoDetails = ObjectMapper.Map<List<PriceList>, List<PriceListExportDto>>(entities);
string _fileName = string.Empty;
//声明导出容器
byte[] result = null;
switch (input.FileType)
{
case 0:
_fileName = string.Format("销售价格单_{0}.xlsx", Guid.NewGuid().ToString());
result = await _csv.ExportAsByteArray(dtoDetails);
break;
case 1:
_fileName = string.Format("销售价格单_{0}.xlsx", Guid.NewGuid().ToString());
result = await _excel.ExportAsByteArray(dtoDetails);
break;
}
result.ShouldNotBeNull();
//保存导出文件到服务器存成二进制
await _excelImportService.SaveBlobAsync(
new SaveExcelImportInputDto
{
Name = _fileName,
Content = result
}
);
return _fileName;
}
#endregion
#region CURD
/// <summary>
/// 获取列表
/// </summary>
[HttpPost]
[Route("list")]
//[Authorize(SettleAccountPermissions.PriceLists.Default)]
public virtual async Task<PagedResultDto<TB_PRICE_LISTDto>> GetListAsync(TB_PRICE_LIST_RequestDto input)
{
if (!string.IsNullOrEmpty(input.Version))
{
input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Version", Logic = EnumFilterLogic.And, Value = input.Version });
}
var entitys = await _priceListManager.GetListAsync(input.Filters, input.Sorting, input.MaxResultCount, input.SkipCount);
var totalCount = await GetCountAsync(input);
var dtos = ObjectMapper.Map<List<PriceList>, List<TB_PRICE_LISTDto>>(entitys);
return new PagedResultDto<TB_PRICE_LISTDto>(totalCount, dtos);
}
/// <summary>
/// 删除
/// </summary>
[HttpDelete]
[Route("{id}")]
//[Authorize(SettleAccountPermissions.PriceLists.Delete)]
virtual public async Task DeleteAsync(Guid id)
{
await _priceListManager.DeleteAsync(id);
}
/// <summary>
/// 批量删除
/// </summary>
[HttpPost]
[Route("delete")]
//[Authorize(SettleAccountPermissions.PriceLists.Delete)]
virtual public async Task<bool> DeleteListAsync(List<Guid> ids)
{
return await _priceListManager.DeleteListAsync(ids);
}
#endregion
#region 私有方法
/// <summary>
/// 获取总数
/// </summary>
private async Task<long> GetCountAsync(TB_PRICE_LIST_RequestDto input)
{
return await _priceListManager.GetCountAsync(input.Filters, GuidGenerator.Create());
}
#endregion
/// <summary>
/// 获取总数
/// </summary>
private async Task<long> GetCountAsync(PriceListRequestDto input)
{
return await _priceListManager.GetCountAsync(input.Filters, GuidGenerator.Create());
}
/// <summary> /// <summary>
/// 结算总成和ERP总成价格对比 /// 结算总成和ERP总成价格对比
/// </summary> /// </summary>
@ -99,7 +258,7 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
/// [Authorize(SettleAccountPermissions.PriceLists.Default)] /// [Authorize(SettleAccountPermissions.PriceLists.Default)]
virtual public async Task<PriceListDto> GetAsync(Guid id) virtual public async Task<PriceListDto> GetAsync(Guid id)
{ {
var result = await _mng.GetAsync(id); ; var result = await _priceListManager.GetAsync(id); ;
var dto = ObjectMapper.Map<PriceList, PriceListDto>(result); var dto = ObjectMapper.Map<PriceList, PriceListDto>(result);
return dto; return dto;
@ -107,30 +266,7 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
/// <summary>
/// 根据筛选条件获取实体列表
/// </summary>
/// <remarks>
/// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
/// </remarks>
/// <param name="input">请求条件</param>
/// <returns>实体DTO列表</returns>
[HttpPost]
[Route("list")]
//[Authorize(SettleAccountPermissions.PriceLists.Default)]
virtual public async Task<PagedResultDto<PriceListDto>> GetListAsync(PriceListRequestDto input)
{
if (!string.IsNullOrEmpty(input.Version))
{
input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Version", Logic = EnumFilterLogic.And, Value = input.Version });
}
var entities = await _mng.GetListAsync(input.Filters, input.Sorting, input.MaxResultCount,
input.SkipCount);
var totalCount = await GetCountAsync(input);
var dtos = ObjectMapper.Map<List<PriceList>, List<PriceListDto>>(entities);
return new PagedResultDto<PriceListDto>(totalCount, dtos);
}
/// <summary> /// <summary>
/// 根据筛选条件获取实体列表 /// 根据筛选条件获取实体列表
@ -147,7 +283,7 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
{ {
var entities = await _mng.GetVersionListAsync(input.Filters, input.Sorting, input.MaxResultCount,input.SkipCount); var entities = await _priceListManager.GetVersionListAsync(input.Filters, input.Sorting, input.MaxResultCount,input.SkipCount);
var totalCount = await GetCountAsync(input); var totalCount = await GetCountAsync(input);
var dtos = ObjectMapper.Map<List<PriceListVersion>, List<PriceListVersionDto>>(entities); var dtos = ObjectMapper.Map<List<PriceListVersion>, List<PriceListVersionDto>>(entities);
return new PagedResultDto<PriceListVersionDto>(totalCount, dtos); return new PagedResultDto<PriceListVersionDto>(totalCount, dtos);
@ -158,11 +294,6 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
private async Task<long> GetCountAsync(PriceListRequestDto input)
{
return await _mng.GetCountAsync(input.Filters, GuidGenerator.Create());
}
/// <summary> /// <summary>
/// 获取实体总数 /// 获取实体总数
/// </summary> /// </summary>
@ -172,7 +303,7 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
//[Authorize(SettleAccountPermissions.PriceLists.Default)] //[Authorize(SettleAccountPermissions.PriceLists.Default)]
virtual public async Task<long> GetTotalCountAsync(Guid branchId) virtual public async Task<long> GetTotalCountAsync(Guid branchId)
{ {
return await _mng.GetCountAsync(new List<FilterCondition>(), branchId); return await _priceListManager.GetCountAsync(new List<FilterCondition>(), branchId);
} }
/// <summary> /// <summary>
@ -184,50 +315,11 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
//[Authorize(SettleAccountPermissions.PriceLists.Default)] //[Authorize(SettleAccountPermissions.PriceLists.Default)]
virtual public async Task<ListResultDto<PriceListDto>> GetAllAsync(Guid branchId) virtual public async Task<ListResultDto<PriceListDto>> GetAllAsync(Guid branchId)
{ {
var entities = await _mng.GetAllAsync(branchId); var entities = await _priceListManager.GetAllAsync(branchId);
var dtos = ObjectMapper.Map<List<PriceList>, List<PriceListDto>>(entities); var dtos = ObjectMapper.Map<List<PriceList>, List<PriceListDto>>(entities);
return new ListResultDto<PriceListDto>(dtos); return new ListResultDto<PriceListDto>(dtos);
} }
/// <summary>
/// 批量导入实体列表
/// </summary>
/// <remarks>
/// 以ID为依据,数据库中找不到ID的实体会新增,已有ID的实体会修改
/// </remarks>
/// <param name="entities">实体列表</param>
/// <returns>是否导入成功</returns>
[HttpPost]
[Route("ExcelImport-Map")]
//[Authorize(SettleAccountPermissions.PriceLists.Create)]
virtual public async Task<string> ImportAsync([FromForm] IFormFileCollection files,string version)
{
ExportImporter _exportImporter = new ExportImporter();
var result = await _exportImporter.UploadExcelImport<PriceListImportDto>(files, _excelImportService);
List<string> _checkls = new List<string>();
_checkls.Add("100001");
_checkls.Add("100053");
_checkls.Add("100113");
result = result.Where(p => _checkls.Contains(p.CustomerCode)).ToList();
var entityList = ObjectMapper.Map<List<PriceListImportDto>, List<PriceList>>(result);
var _ls = entityList.Where(p=>p.EndDate.ToString().Contains("9999")).OrderByDescending(p => p.BeginDate).GroupBy(p => new { p.MaterialCode, p.CustomerCode,p.Type }).Select(p=>p.FirstOrDefault());
foreach (var itm in _ls)
{
itm.Update(GuidGenerator.Create(),version);
}
await _mng.ImportAsync(_ls.ToList(), version);
return ApplicationConsts.SuccessStr;
}
/// <summary> /// <summary>
/// 修改实体 /// 修改实体
@ -244,92 +336,13 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
); );
var _ent = await _mng.UpdateAsync(id, entity); var _ent = await _priceListManager.UpdateAsync(id, entity);
var dto = ObjectMapper.Map<PriceList, PriceListDto>(_ent); var dto = ObjectMapper.Map<PriceList, PriceListDto>(_ent);
return dto; return dto;
} }
/// <summary>
/// 删除实体
/// </summary>
/// <param name="id">ID</param>
/// <returns>无</returns>
[HttpDelete]
[Route("{id}")]
//[Authorize(SettleAccountPermissions.PriceLists.Delete)]
virtual public async Task DeleteAsync(Guid id)
{
await _mng.DeleteAsync(id);
}
/// <summary>
/// 按IDs删除实体列表
/// </summary>
/// <param name="ids">ID列表</param>
/// <returns>是否执行成功</returns>
[HttpPost]
[Route("delete")]
//[Authorize(SettleAccountPermissions.PriceLists.Delete)]
virtual public async Task<bool> DeleteListAsync(List<Guid> ids)
{
return await _mng.DeleteListAsync(ids);
}
/// <summary>
/// 导出文件
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost]
[Route("Export")]
//[Authorize(SettleAccountPermissions.PriceLists.Default)]
virtual public async Task<string> ExportAsync(PriceListRequestDto input)
{
IExporter _csv = new CsvExporter();
IExporter _excel = new ExcelExporter();
var entities = await _mng.GetListAsync(input.Filters, input.Sorting, int.MaxValue,
0, true);
var dtoDetails = ObjectMapper.Map<List<PriceList>, List<PriceListExportDto>>(entities);
string _fileName = string.Empty;
//声明导出容器
byte[] result = null;
switch (input.FileType)
{
case 0:
_fileName = string.Format("标准价格单_{0}.xlsx", Guid.NewGuid().ToString());
result = await _csv.ExportAsByteArray(dtoDetails);
break;
case 1:
_fileName = string.Format("标准价格单_{0}.xlsx", Guid.NewGuid().ToString());
result = await _excel.ExportAsByteArray(dtoDetails);
break;
}
result.ShouldNotBeNull();
//保存导出文件到服务器存成二进制
await _excelImportService.SaveBlobAsync(
new SaveExcelImportInputDto
{
Name = _fileName,
Content = result
}
);
return _fileName;
}
} }
} }

506
code/src/Modules/SettleAccount/src/SettleAccount.Application/Entities/Prices/PriceListAppServiceBJ.cs

@ -13,277 +13,313 @@ using System.Threading.Tasks;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Win.Sfs.BaseData.ImportExcelCommon; using Win.Sfs.BaseData.ImportExcelCommon;
using Win.Sfs.SettleAccount.Bases;
using Win.Sfs.SettleAccount.Constant; using Win.Sfs.SettleAccount.Constant;
using Win.Sfs.SettleAccount.Entities.ImportMap; using Win.Sfs.SettleAccount.Entities.ImportMap;
using Win.Sfs.SettleAccount.ExcelImporter; using Win.Sfs.SettleAccount.ExcelImporter;
using Win.Sfs.SettleAccount.Repository;
using Win.Sfs.Shared.Filter; using Win.Sfs.Shared.Filter;
using Win.Sfs.Shared.RepositoryBase;
namespace Win.Sfs.SettleAccount.Entities.Prices namespace Win.Sfs.SettleAccount.Entities.Prices
{ {
/// <summary> /// <summary>
/// 标准价格单-相关应用服务 /// 备件价格
/// </summary> /// </summary>
//[Authorize(SettleAccountPermissions.PriceLists.Default)] //[Authorize(SettleAccountPermissions.PriceLists.Default)]
[AllowAnonymous] [AllowAnonymous]
[Route("api/SettleAccount/PriceListBJ")] [Route("api/SettleAccount/PriceListBJ")]
public class PriceListAppServiceBJ : ApplicationService public class PriceListAppServiceBJ : CurdBaseAppService<PriceListBJ, PriceListBJDto, PriceListBJRequestDto, PriceListBJ, PriceListBJExportDto, PriceListBJExportDto>
/*, IPriceListAppService*/
{ {
private readonly PriceListManagerBJ _mng; private readonly INormalEfCoreRepository<PriceListBJ, Guid> _repository;
private readonly PriceListManagerBJ _priceListManagerBJ;
private readonly IExcelImportAppService _excelImportService; private readonly IExcelImportAppService _excelImportService;
private readonly ISettleAccountBranchEfCoreRepository<ImportColumnMap, Guid> _mapRepository; private readonly ISettleAccountBranchEfCoreRepository<ImportColumnMap, Guid> _mapRepository;
public PriceListAppServiceBJ(
IExcelImportAppService excelImportService,
ISettleAccountBranchEfCoreRepository<ImportColumnMap, Guid> mapRepository,
PriceListManagerBJ mng
)
{
_mapRepository = mapRepository;
_excelImportService = excelImportService;
_mng = mng;
}
/// <summary>
/// 按ID获取唯一实体
/// </summary>
/// <remarks>
/// 返回实体全部属性
/// </remarks>
/// <param name="id">ID</param>
/// <returns>实体DTO</returns>
[HttpGet]
[Route("{id}")]
/// [Authorize(SettleAccountPermissions.PriceLists.Default)]
virtual public async Task<PriceListBJDto> GetAsync(Guid id)
{
var result = await _mng.GetAsync(id); ;
var dto = ObjectMapper.Map<PriceListBJ, PriceListBJDto>(result);
return dto;
}
/// <summary>
/// 根据筛选条件获取实体列表
/// </summary>
/// <remarks>
/// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
/// </remarks>
/// <param name="input">请求条件</param>
/// <returns>实体DTO列表</returns>
[HttpPost]
[Route("list")]
//[Authorize(SettleAccountPermissions.PriceLists.Default)]
virtual public async Task<PagedResultDto<PriceListBJDto>> GetListAsync(PriceListRequestDto input)
{
if (!string.IsNullOrEmpty(input.Version))
{
input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Version", Logic = EnumFilterLogic.And, Value = input.Version });
}
var entities = await _mng.GetListAsync(input.Filters, input.Sorting, input.MaxResultCount,
input.SkipCount);
var totalCount = await GetCountAsync(input);
var dtos = ObjectMapper.Map<List<PriceListBJ>, List<PriceListBJDto>>(entities);
return new PagedResultDto<PriceListBJDto>(totalCount, dtos);
}
/// <summary> public PriceListAppServiceBJ(
/// 根据筛选条件获取实体列表 INormalEfCoreRepository<PriceListBJ, Guid> repository,
/// </summary> PriceListManagerBJ priceListManagerBJ,
/// <remarks> IExcelImportAppService excelImportService,
/// 请求条件包括:筛选条件列表,排序条件,数据数量,页码 ISettleAccountBranchEfCoreRepository<ImportColumnMap, Guid> mapRepository
/// </remarks>
/// <param name="input">请求条件</param>
/// <returns>实体DTO列表</returns>
[HttpPost]
[Route("versionlist")]
// [Authorize(SettleAccountPermissions.PriceLists.Default)]
virtual public async Task<PagedResultDto<PriceListVersionBJDto>> GetVersionListAsync(PriceListRequestDto input)
{
var entities = await _mng.GetVersionListAsync(input.Filters, input.Sorting, input.MaxResultCount,input.SkipCount);
var totalCount = await GetCountAsync(input);
var dtos = ObjectMapper.Map<List<PriceListVersionBJ>, List<PriceListVersionBJDto>>(entities);
return new PagedResultDto<PriceListVersionBJDto>(totalCount, dtos);
}
private async Task<long> GetCountAsync(PriceListRequestDto input)
{
return await _mng.GetCountAsync(input.Filters, GuidGenerator.Create());
}
/// <summary> ) :base(repository: repository, excelImportService: excelImportService)
/// 获取实体总数
/// </summary>
/// <returns>实体总数</returns>
[HttpGet]
[Route("count")]
//[Authorize(SettleAccountPermissions.PriceLists.Default)]
virtual public async Task<long> GetTotalCountAsync(Guid branchId)
{ {
return await _mng.GetCountAsync(new List<FilterCondition>(), branchId); _repository = repository;
} _priceListManagerBJ = priceListManagerBJ;
_excelImportService = excelImportService;
/// <summary> _mapRepository = mapRepository;
/// 获取全部实体列表
/// </summary>
/// <returns>实体DTO列表</returns>
[HttpGet]
[Route("all")]
//[Authorize(SettleAccountPermissions.PriceLists.Default)]
virtual public async Task<ListResultDto<PriceListBJDto>> GetAllAsync(Guid branchId)
{
var entities = await _mng.GetAllAsync(branchId);
var dtos = ObjectMapper.Map<List<PriceListBJ>, List<PriceListBJDto>>(entities);
return new ListResultDto<PriceListBJDto>(dtos);
} }
#region 导入、导出
/// <summary> /// <summary>
/// 批量导入实体列表 /// 导入
/// </summary> /// </summary>
/// <remarks>
/// 以ID为依据,数据库中找不到ID的实体会新增,已有ID的实体会修改
/// </remarks>
/// <param name="entities">实体列表</param>
/// <returns>是否导入成功</returns>
[HttpPost] [HttpPost]
[Route("ExcelImport-Map")] [Route("Import")]
//[Authorize(SettleAccountPermissions.PriceLists.Create)] public override async Task<string> ImportAsync([FromForm] IFormFileCollection files, string version)
virtual public async Task<string> ImportAsync([FromForm] IFormFileCollection files,string version)
{ {
ExportImporter _exportImporter = new ExportImporter(); ExportImporter _exportImporter = new ExportImporter();
var result = await _exportImporter.UploadExcelImport<PriceListBJImportDto>(files, _excelImportService); var result = await _exportImporter.UploadExcelImport<PriceListBJImportDto>(files, _excelImportService);
List<string> _checkls = new List<string>(); List<string> _checkls = new List<string>();
_checkls.Add("100001"); _checkls.Add("1040");
_checkls.Add("100053"); _checkls.Add("1046");
_checkls.Add("100113"); _checkls.Add("104T");
// _checkls.Add("200067"); result = result.Where(p => _checkls.Contains(p.ClientCode)).ToList();
result = result.Where(p => _checkls.Contains(p.CustomerCode)).ToList();
var entityList = ObjectMapper.Map<List<PriceListBJImportDto>, List<PriceListBJ>>(result); var entityList = ObjectMapper.Map<List<PriceListBJImportDto>, List<PriceListBJ>>(result);
var _ls = entityList.Where(p=>p.EndDate.ToString().Contains("9999")).OrderByDescending(p => p.BeginDate).GroupBy(p => new { p.MaterialCode, p.CustomerCode,p.Type }).Select(p=>p.FirstOrDefault()); var _ls = entityList.GroupBy(p => new { p.LU, p.ClientCode }).Select(p => p.FirstOrDefault());
foreach (var itm in _ls) foreach (var itm in _ls)
{ {
itm.Update(GuidGenerator.Create(),version); itm.Update(GuidGenerator.Create(), version);
} }
_ls=_ls.Where(p => p.Type == 20).ToList();
await _mng.ImportAsync(_ls.ToList(), version); await _priceListManagerBJ.ImportAsync(_ls.ToList(), version);
return ApplicationConsts.SuccessStr; return ApplicationConsts.SuccessStr;
} }
#endregion
#region 原有的方法之后废弃删除
// /// <summary>
/// <summary> // /// 按ID获取唯一实体
/// 修改实体 // /// </summary>
/// </summary> // /// <remarks>
/// <param name="id">ID</param> // /// 返回实体全部属性
/// <param name="input">修改实体DTO</param> // /// </remarks>
/// <returns>实体DTO</returns> // /// <param name="id">ID</param>
[HttpPut] // /// <returns>实体DTO</returns>
[Route("{id}")]
[Authorize(SettleAccountPermissions.PriceLists.Update)] // [HttpGet]
virtual public async Task<PriceListBJDto> UpdateAsync(Guid id, PriceListBJDto input) // [Route("{id}")]
{ // /// [Authorize(SettleAccountPermissions.PriceLists.Default)]
var entity = new PriceListBJ( // virtual public async Task<PriceListBJDto> GetAsync(Guid id)
// {
); // var result = await _mng.GetAsync(id); ;
// var dto = ObjectMapper.Map<PriceListBJ, PriceListBJDto>(result);
var _ent = await _mng.UpdateAsync(id, entity); // return dto;
// }
var dto = ObjectMapper.Map<PriceListBJ, PriceListBJDto>(_ent);
return dto;
}
// /// <summary>
/// <summary> // /// 根据筛选条件获取实体列表
/// 删除实体 // /// </summary>
/// </summary> // /// <remarks>
/// <param name="id">ID</param> // /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
/// <returns>无</returns> // /// </remarks>
[HttpDelete] // /// <param name="input">请求条件</param>
[Route("{id}")] // /// <returns>实体DTO列表</returns>
//[Authorize(SettleAccountPermissions.PriceLists.Delete)] // [HttpPost]
virtual public async Task DeleteAsync(Guid id) // [Route("list")]
{ // //[Authorize(SettleAccountPermissions.PriceLists.Default)]
// virtual public async Task<PagedResultDto<PriceListBJDto>> GetListAsync(PriceListRequestDto input)
await _mng.DeleteAsync(id); // {
}
// if (!string.IsNullOrEmpty(input.Version))
/// <summary> // {
/// 按IDs删除实体列表 // input.Filters.Add(new FilterCondition() { Action = EnumFilterAction.Equal, Column = "Version", Logic = EnumFilterLogic.And, Value = input.Version });
/// </summary> // }
/// <param name="ids">ID列表</param> // var entities = await _mng.GetListAsync(input.Filters, input.Sorting, input.MaxResultCount,
/// <returns>是否执行成功</returns> //input.SkipCount);
[HttpPost] // var totalCount = await GetCountAsync(input);
[Route("delete")] // var dtos = ObjectMapper.Map<List<PriceListBJ>, List<PriceListBJDto>>(entities);
//[Authorize(SettleAccountPermissions.PriceLists.Delete)] // return new PagedResultDto<PriceListBJDto>(totalCount, dtos);
virtual public async Task<bool> DeleteListAsync(List<Guid> ids) // }
{
// /// <summary>
return await _mng.DeleteListAsync(ids); // /// 根据筛选条件获取实体列表
} // /// </summary>
// /// <remarks>
/// <summary> // /// 请求条件包括:筛选条件列表,排序条件,数据数量,页码
/// 导出文件 // /// </remarks>
/// </summary> // /// <param name="input">请求条件</param>
/// <param name="input"></param> // /// <returns>实体DTO列表</returns>
/// <returns></returns> // [HttpPost]
[HttpPost] // [Route("versionlist")]
[Route("Export")] // // [Authorize(SettleAccountPermissions.PriceLists.Default)]
//[Authorize(SettleAccountPermissions.PriceLists.Default)] // virtual public async Task<PagedResultDto<PriceListVersionBJDto>> GetVersionListAsync(PriceListRequestDto input)
virtual public async Task<string> ExportAsync(PriceListRequestDto input) // {
{ // var entities = await _mng.GetVersionListAsync(input.Filters, input.Sorting, input.MaxResultCount,input.SkipCount);
// var totalCount = await GetCountAsync(input);
IExporter _csv = new CsvExporter(); // var dtos = ObjectMapper.Map<List<PriceListVersionBJ>, List<PriceListVersionBJDto>>(entities);
IExporter _excel = new ExcelExporter(); // return new PagedResultDto<PriceListVersionBJDto>(totalCount, dtos);
var entities = await _mng.GetListAsync(input.Filters, input.Sorting, int.MaxValue, // }
0, true);
var dtoDetails = ObjectMapper.Map<List<PriceListBJ>, List<PriceListBJExportDto>>(entities);
string _fileName = string.Empty;
//声明导出容器
byte[] result = null; // private async Task<long> GetCountAsync(PriceListRequestDto input)
switch (input.FileType) // {
{ // return await _mng.GetCountAsync(input.Filters, GuidGenerator.Create());
case 0: // }
_fileName = string.Format("备件标准价格单_{0}.xlsx", Guid.NewGuid().ToString());
result = await _csv.ExportAsByteArray(dtoDetails); // /// <summary>
break; // /// 获取实体总数
case 1: // /// </summary>
_fileName = string.Format("备件标准价格单_{0}.xlsx", Guid.NewGuid().ToString()); // /// <returns>实体总数</returns>
result = await _excel.ExportAsByteArray(dtoDetails); // [HttpGet]
break; // [Route("count")]
} // //[Authorize(SettleAccountPermissions.PriceLists.Default)]
result.ShouldNotBeNull(); // virtual public async Task<long> GetTotalCountAsync(Guid branchId)
// {
//保存导出文件到服务器存成二进制 // return await _mng.GetCountAsync(new List<FilterCondition>(), branchId);
await _excelImportService.SaveBlobAsync( // }
new SaveExcelImportInputDto
{ // /// <summary>
Name = _fileName, // /// 获取全部实体列表
Content = result // /// </summary>
} // /// <returns>实体DTO列表</returns>
); // [HttpGet]
return _fileName; // [Route("all")]
} // //[Authorize(SettleAccountPermissions.PriceLists.Default)]
// virtual public async Task<ListResultDto<PriceListBJDto>> GetAllAsync(Guid branchId)
// {
// var entities = await _mng.GetAllAsync(branchId);
// var dtos = ObjectMapper.Map<List<PriceListBJ>, List<PriceListBJDto>>(entities);
// return new ListResultDto<PriceListBJDto>(dtos);
// }
// /// <summary>
// /// 批量导入实体列表
// /// </summary>
// /// <remarks>
// /// 以ID为依据,数据库中找不到ID的实体会新增,已有ID的实体会修改
// /// </remarks>
// /// <param name="entities">实体列表</param>
// /// <returns>是否导入成功</returns>
// [HttpPost]
// [Route("ExcelImport-Map")]
// //[Authorize(SettleAccountPermissions.PriceLists.Create)]
// virtual public async Task<string> ImportAsync([FromForm] IFormFileCollection files,string version)
// {
// ExportImporter _exportImporter = new ExportImporter();
// var result = await _exportImporter.UploadExcelImport<PriceListBJImportDto>(files, _excelImportService);
// List<string> _checkls = new List<string>();
// _checkls.Add("100001");
// _checkls.Add("100053");
// _checkls.Add("100113");
// // _checkls.Add("200067");
// result = result.Where(p => _checkls.Contains(p.CustomerCode)).ToList();
// var entityList = ObjectMapper.Map<List<PriceListBJImportDto>, List<PriceListBJ>>(result);
// var _ls = entityList.Where(p=>p.EndDate.ToString().Contains("9999")).OrderByDescending(p => p.BeginDate).GroupBy(p => new { p.MaterialCode, p.CustomerCode,p.Type }).Select(p=>p.FirstOrDefault());
// foreach (var itm in _ls)
// {
// itm.Update(GuidGenerator.Create(),version);
// }
// _ls=_ls.Where(p => p.Type == 20).ToList();
// await _mng.ImportAsync(_ls.ToList(), version);
// return ApplicationConsts.SuccessStr;
// }
// /// <summary>
// /// 修改实体
// /// </summary>
// /// <param name="id">ID</param>
// /// <param name="input">修改实体DTO</param>
// /// <returns>实体DTO</returns>
// [HttpPut]
// [Route("{id}")]
// [Authorize(SettleAccountPermissions.PriceLists.Update)]
// virtual public async Task<PriceListBJDto> UpdateAsync(Guid id, PriceListBJDto input)
// {
// var entity = new PriceListBJ(
// );
// var _ent = await _mng.UpdateAsync(id, entity);
// var dto = ObjectMapper.Map<PriceListBJ, PriceListBJDto>(_ent);
// return dto;
// }
// /// <summary>
// /// 删除实体
// /// </summary>
// /// <param name="id">ID</param>
// /// <returns>无</returns>
// [HttpDelete]
// [Route("{id}")]
// //[Authorize(SettleAccountPermissions.PriceLists.Delete)]
// virtual public async Task DeleteAsync(Guid id)
// {
// await _mng.DeleteAsync(id);
// }
// /// <summary>
// /// 按IDs删除实体列表
// /// </summary>
// /// <param name="ids">ID列表</param>
// /// <returns>是否执行成功</returns>
// [HttpPost]
// [Route("delete")]
// //[Authorize(SettleAccountPermissions.PriceLists.Delete)]
// virtual public async Task<bool> DeleteListAsync(List<Guid> ids)
// {
// return await _mng.DeleteListAsync(ids);
// }
// /// <summary>
// /// 导出文件
// /// </summary>
// /// <param name="input"></param>
// /// <returns></returns>
// [HttpPost]
// [Route("Export")]
// //[Authorize(SettleAccountPermissions.PriceLists.Default)]
// virtual public async Task<string> ExportAsync(PriceListRequestDto input)
// {
// IExporter _csv = new CsvExporter();
// IExporter _excel = new ExcelExporter();
// var entities = await _mng.GetListAsync(input.Filters, input.Sorting, int.MaxValue,
// 0, true);
// var dtoDetails = ObjectMapper.Map<List<PriceListBJ>, List<PriceListBJExportDto>>(entities);
// string _fileName = string.Empty;
// //声明导出容器
// byte[] result = null;
// switch (input.FileType)
// {
// case 0:
// _fileName = string.Format("备件标准价格单_{0}.xlsx", Guid.NewGuid().ToString());
// result = await _csv.ExportAsByteArray(dtoDetails);
// break;
// case 1:
// _fileName = string.Format("备件标准价格单_{0}.xlsx", Guid.NewGuid().ToString());
// result = await _excel.ExportAsByteArray(dtoDetails);
// break;
// }
// result.ShouldNotBeNull();
// //保存导出文件到服务器存成二进制
// await _excelImportService.SaveBlobAsync(
// new SaveExcelImportInputDto
// {
// Name = _fileName,
// Content = result
// }
// );
// return _fileName;
// }
#endregion
} }
} }

1
code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccount.Application.csproj

@ -125,6 +125,7 @@
<PackageReference Include="Volo.Abp.BackgroundJobs.Abstractions" Version="4.3.3" /> <PackageReference Include="Volo.Abp.BackgroundJobs.Abstractions" Version="4.3.3" />
<PackageReference Include="Volo.Abp.BackgroundWorkers" Version="4.3.3" /> <PackageReference Include="Volo.Abp.BackgroundWorkers" Version="4.3.3" />
<PackageReference Include="Volo.Abp.Dapper" Version="4.3.3" /> <PackageReference Include="Volo.Abp.Dapper" Version="4.3.3" />
<PackageReference Include="Volo.Abp.Ddd.Application" Version="4.3.3" />
<PackageReference Include="Volo.Abp.EventBus.RabbitMQ" Version="4.3.3" /> <PackageReference Include="Volo.Abp.EventBus.RabbitMQ" Version="4.3.3" />
<PackageReference Include="Volo.Abp.Http.Client.IdentityModel" Version="4.3.3" /> <PackageReference Include="Volo.Abp.Http.Client.IdentityModel" Version="4.3.3" />
<PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="4.3.3" /> <PackageReference Include="Volo.Abp.Identity.HttpApi.Client" Version="4.3.3" />

77
code/src/Modules/SettleAccount/src/SettleAccount.Application/SettleAccountApplicationAutoMapperProfile.cs

@ -6,12 +6,12 @@ using Win.Sfs.SettleAccount.Entities.CodeSettings;
using Win.Sfs.SettleAccount.FISes; using Win.Sfs.SettleAccount.FISes;
using Win.Sfs.SettleAccount.Entities.Materials; using Win.Sfs.SettleAccount.Entities.Materials;
using Win.Sfs.SettleAccount.Entities.SettleAccounts; using Win.Sfs.SettleAccount.Entities.SettleAccounts;
using Win.Sfs.SettleAccount.Inventories; using Win.Sfs.SettleAccount.Inventories;
using Win.Sfs.SettleAccount.Items; using Win.Sfs.SettleAccount.Items;
using Win.Sfs.SettleAccount.MaterialRelationships; using Win.Sfs.SettleAccount.MaterialRelationships;
using Win.Sfs.SettleAccount.Entities.SettleAccountVersion; using Win.Sfs.SettleAccount.Entities.SettleAccountVersion;
using Win.Sfs.SettleAccount.Prebatches; using Win.Sfs.SettleAccount.Prebatches;
using Win.Sfs.SettleAccount.Entities.Controls; using Win.Sfs.SettleAccount.Entities.Controls;
using Win.Sfs.SettleAccount.SendUnsettledDiffReports; using Win.Sfs.SettleAccount.SendUnsettledDiffReports;
@ -72,7 +72,7 @@ namespace Win.Sfs.SettleAccount
CreateMapBom(); CreateMapBom();
CreateMapBomVersion(); CreateMapBomVersion();
CreateMapInventoryDetail(); CreateMapInventoryDetail();
CreateMapMaterial(); CreateMapMaterial();
CreateMapMaterialRelationship(); CreateMapMaterialRelationship();
CreateMapCodeSetting(); CreateMapCodeSetting();
@ -84,7 +84,7 @@ namespace Win.Sfs.SettleAccount
CreateMapPrebatch(); CreateMapPrebatch();
CreateMapInventoryDetailVersion(); CreateMapInventoryDetailVersion();
CreateMapFISVersion(); CreateMapFISVersion();
CreateMapFactory(); CreateMapFactory();
CreateMapEstimatedStockDiffReport(); CreateMapEstimatedStockDiffReport();
@ -97,13 +97,13 @@ namespace Win.Sfs.SettleAccount
CreateMapSecondaryActuralDiffReport(); CreateMapSecondaryActuralDiffReport();
CreateMapBTSeqKBDiffReport(); CreateMapBTSeqKBDiffReport();
CreateMapBTNotConsignReport(); CreateMapBTNotConsignReport();
CreateMapHQNotConsignReport(); CreateMapHQNotConsignReport();
CreateMapHQSPNotConsignReport(); CreateMapHQSPNotConsignReport();
CreateMapImportColumnMap(); CreateMapImportColumnMap();
CreateMapInvoiceSettledDiff(); CreateMapInvoiceSettledDiff();
CreateMapInvoiceSettledDiffVersion(); CreateMapInvoiceSettledDiffVersion();
CreateMapPriceList(); CreateMapPriceList();
@ -152,7 +152,7 @@ namespace Win.Sfs.SettleAccount
private void CreateMapWMSDiffOutputSum() private void CreateMapWMSDiffOutputSum()
{ {
CreateMap<WmsDetailDiffReport, WmsDetailDiffReportDto>().ReverseMap(); CreateMap<WmsDetailDiffReport, WmsDetailDiffReportDto>().ReverseMap();
} }
private void CreateMapWMSCacelOutputSum() private void CreateMapWMSCacelOutputSum()
{ {
@ -172,7 +172,7 @@ namespace Win.Sfs.SettleAccount
#region PG-派格映射 #region PG-派格映射
/// <summary> /// <summary>
/// 红旗明细未结导入 /// 红旗明细未结导入
@ -301,15 +301,24 @@ namespace Win.Sfs.SettleAccount
CreateMap<PriceListVersionBJ, PriceListVersionBJExportDto>().ReverseMap(); CreateMap<PriceListVersionBJ, PriceListVersionBJExportDto>().ReverseMap();
} }
/// <summary>
/// 销售价格
/// </summary>
private void CreateMapPriceList() private void CreateMapPriceList()
{ {
CreateMap<PriceList, TB_PRICE_LISTDto>();
CreateMap<PriceListImportDto, PriceList>()
.ForMember(x => x.LU, y => y.MapFrom(y => y.PartNo))
.ForMember(x => x.Price, y => y.MapFrom(y => y.TotalPrice))
.ForMember(x => x.BeginTime, y => y.MapFrom(y => y.ValidFrom))
.ForMember(x => x.EndTime, y => y.MapFrom(y => y.ValidTo))
.ForMember(x => x.ClientCode, y => y.MapFrom(y => y.Plant));
CreateMap<PriceList, PriceListExportDto>();
CreateMap<PriceList, PriceListDto>().ReverseMap(); CreateMap<PriceList, PriceListDto>().ReverseMap();
CreateMap<PriceList, PriceListRequestDto>().ReverseMap(); CreateMap<PriceList, PriceListRequestDto>().ReverseMap();
CreateMap<PriceList, PriceListImportDto>().ReverseMap();
CreateMap<PriceList, PriceListExportDto>().ReverseMap();
} }
private void CreateMapPriceListBJ() private void CreateMapPriceListBJ()
@ -343,7 +352,7 @@ namespace Win.Sfs.SettleAccount
@ -370,7 +379,7 @@ namespace Win.Sfs.SettleAccount
CreateMap<SendUnsettledDiffReport, SendUnsettledDiffReportUpdateDto>(); CreateMap<SendUnsettledDiffReport, SendUnsettledDiffReportUpdateDto>();
CreateMap<SendUnsettledDiffReportCreateDto, SendUnsettledDiffReport>(); CreateMap<SendUnsettledDiffReportCreateDto, SendUnsettledDiffReport>();
CreateMap<SendUnsettledDiffReportUpdateDto, SendUnsettledDiffReport>(); CreateMap<SendUnsettledDiffReportUpdateDto, SendUnsettledDiffReport>();
CreateMap<SendUnsettledDiffReportDetail, SendUnsettledDiffReportDetailDto>(); CreateMap<SendUnsettledDiffReportDetail, SendUnsettledDiffReportDetailDto>();
CreateMap<SendUnsettledDiffReportDetailDto, SendUnsettledDiffReportDetail>(); CreateMap<SendUnsettledDiffReportDetailDto, SendUnsettledDiffReportDetail>();
@ -387,10 +396,10 @@ namespace Win.Sfs.SettleAccount
CreateMap<StockSettledDiffReport, StockSettledDiffReportDto>().ReverseMap(); CreateMap<StockSettledDiffReport, StockSettledDiffReportDto>().ReverseMap();
CreateMap<StockSettledDiffReport, StockSettledDiffReportCreateDto>().ReverseMap(); ; CreateMap<StockSettledDiffReport, StockSettledDiffReportCreateDto>().ReverseMap(); ;
CreateMap<StockSettledDiffReport, StockSettledDiffReportUpdateDto>().ReverseMap(); ; CreateMap<StockSettledDiffReport, StockSettledDiffReportUpdateDto>().ReverseMap(); ;
CreateMap<StockSettledDiffReportDetail, StockSettledDiffReportDetailDto>().ReverseMap(); ; CreateMap<StockSettledDiffReportDetail, StockSettledDiffReportDetailDto>().ReverseMap(); ;
CreateMap<StockSettledDiffReportDetailDto, StockSettledDiffReportDetailExportDto>(); CreateMap<StockSettledDiffReportDetailDto, StockSettledDiffReportDetailExportDto>();
CreateMap<StockSettledDiffReportDetail, StockSettledDiffReportDetailExportDto>(); CreateMap<StockSettledDiffReportDetail, StockSettledDiffReportDetailExportDto>();
@ -401,10 +410,10 @@ namespace Win.Sfs.SettleAccount
{ {
CreateMap<StockFisDiffReport, StockFisDiffReportDto>().ReverseMap(); CreateMap<StockFisDiffReport, StockFisDiffReportDto>().ReverseMap();
CreateMap<StockFisDiffReport, StockFisDiffReportCreateDto>().ReverseMap(); CreateMap<StockFisDiffReport, StockFisDiffReportCreateDto>().ReverseMap();
CreateMap<StockFisDiffReport, StockFisDiffReportUpdateDto>().ReverseMap(); CreateMap<StockFisDiffReport, StockFisDiffReportUpdateDto>().ReverseMap();
CreateMap<StockFisDiffReportDetail, StockFisDiffReportDetailDto>().ReverseMap(); CreateMap<StockFisDiffReportDetail, StockFisDiffReportDetailDto>().ReverseMap();
CreateMap<StockFisDiffReportDetailDto, StockFisDiffReportDetailExportDto>(); CreateMap<StockFisDiffReportDetailDto, StockFisDiffReportDetailExportDto>();
CreateMap<StockFisDiffReportDetail, StockFisDiffReportDetailExportDto>(); CreateMap<StockFisDiffReportDetail, StockFisDiffReportDetailExportDto>();
@ -440,9 +449,9 @@ namespace Win.Sfs.SettleAccount
CreateMap<SecondaryActuralAdjustmentReport, SecondaryActuralAdjustmentReportDto>().ReverseMap(); CreateMap<SecondaryActuralAdjustmentReport, SecondaryActuralAdjustmentReportDto>().ReverseMap();
CreateMap<SecondaryActuralAdjustmentReport, SecondaryActuralAdjustmentReportCreateDto>().ReverseMap(); CreateMap<SecondaryActuralAdjustmentReport, SecondaryActuralAdjustmentReportCreateDto>().ReverseMap();
CreateMap<SecondaryActuralAdjustmentReport, SecondaryActuralAdjustmentReportUpdateDto>().ReverseMap(); CreateMap<SecondaryActuralAdjustmentReport, SecondaryActuralAdjustmentReportUpdateDto>().ReverseMap();
CreateMap<SecondaryActuralAdjustmentReportDetail, SecondaryActuralAdjustmentReportDetailDto>().ReverseMap();
CreateMap<SecondaryActuralAdjustmentReportDetail, SecondaryActuralAdjustmentReportDetailDto>().ReverseMap();
CreateMap<SecondaryActuralAdjustmentReportDetail, SecondaryActuralAdjustmentReportDetailExportDto>(); CreateMap<SecondaryActuralAdjustmentReportDetail, SecondaryActuralAdjustmentReportDetailExportDto>();
} }
@ -452,9 +461,9 @@ namespace Win.Sfs.SettleAccount
{ {
CreateMap<SecondaryActuralDiffReport, SecondaryActuralDiffReportDto>().ReverseMap(); CreateMap<SecondaryActuralDiffReport, SecondaryActuralDiffReportDto>().ReverseMap();
CreateMap<SecondaryActuralDiffReport, SecondaryActuralDiffReportCreateDto>().ReverseMap(); CreateMap<SecondaryActuralDiffReport, SecondaryActuralDiffReportCreateDto>().ReverseMap();
CreateMap<SecondaryActuralDiffReport, SecondaryActuralDiffReportUpdateDto>().ReverseMap(); CreateMap<SecondaryActuralDiffReport, SecondaryActuralDiffReportUpdateDto>().ReverseMap();
CreateMap<SecondaryActuralDiffReportDetail, SecondaryActuralDiffReportDetailDto>().ReverseMap(); CreateMap<SecondaryActuralDiffReportDetail, SecondaryActuralDiffReportDetailDto>().ReverseMap();
CreateMap<SecSummaryOutPutDto, SecondaryActuralAdjustmentReportDetail>(); CreateMap<SecSummaryOutPutDto, SecondaryActuralAdjustmentReportDetail>();
@ -479,7 +488,7 @@ namespace Win.Sfs.SettleAccount
CreateMap<SettlementPart, SettlementPartDto>().ReverseMap(); CreateMap<SettlementPart, SettlementPartDto>().ReverseMap();
CreateMap<SettlementPart, SettlementPartCreateDto>().ReverseMap(); CreateMap<SettlementPart, SettlementPartCreateDto>().ReverseMap();
CreateMap<SettlementPart, SettlementPartUpdateDto>().ReverseMap(); CreateMap<SettlementPart, SettlementPartUpdateDto>().ReverseMap();
CreateMap<ImportSettlementPartDto, SettlementPart>(); CreateMap<ImportSettlementPartDto, SettlementPart>();
CreateMap<SettlementPart, SettlementPartExportDto>(); CreateMap<SettlementPart, SettlementPartExportDto>();
} }
@ -521,10 +530,10 @@ namespace Win.Sfs.SettleAccount
CreateMap<BomVersion, BomVersionUpdateDto>(); CreateMap<BomVersion, BomVersionUpdateDto>();
CreateMap<BomVersionCreateDto, BomVersion>(); CreateMap<BomVersionCreateDto, BomVersion>();
CreateMap<BomVersionUpdateDto, BomVersion>(); CreateMap<BomVersionUpdateDto, BomVersion>();
} }
@ -539,7 +548,7 @@ namespace Win.Sfs.SettleAccount
CreateMap<InventoryDetail, InventoryDetail>(); CreateMap<InventoryDetail, InventoryDetail>();
CreateMap<InventoryDetailUpdateDto, InventoryDetail>(); CreateMap<InventoryDetailUpdateDto, InventoryDetail>();
CreateMap<InventoryDetailImportDto, InventoryDetail>(); CreateMap<InventoryDetailImportDto, InventoryDetail>();
} }
private void CreateMapSupplierItemSetUp() private void CreateMapSupplierItemSetUp()
{ {
@ -616,7 +625,7 @@ namespace Win.Sfs.SettleAccount
CreateMap<CentralizedControl, CentralizedControlDto>().ReverseMap(); CreateMap<CentralizedControl, CentralizedControlDto>().ReverseMap();
CreateMap<CentralizedControl, CentralizedControlCreateDto>(); CreateMap<CentralizedControl, CentralizedControlCreateDto>();
CreateMap<CentralizedControl, CentralizedControlUpdateDto>(); CreateMap<CentralizedControl, CentralizedControlUpdateDto>();
CreateMap<CentralizedControlImportDto, CentralizedControl>(); CreateMap<CentralizedControlImportDto, CentralizedControl>();
CreateMap<CentralizedControlUpdateDto, CentralizedControl>(); CreateMap<CentralizedControlUpdateDto, CentralizedControl>();
} }
@ -673,11 +682,11 @@ namespace Win.Sfs.SettleAccount
private void CreateMapBTNotConsignReport() private void CreateMapBTNotConsignReport()
{ {
CreateMap<BTNotConsignReport, BTNotConsignReportDto>().ReverseMap(); CreateMap<BTNotConsignReport, BTNotConsignReportDto>().ReverseMap();
CreateMap<BTNotConsignReport, BTNotConsignReportCreateDto>().ReverseMap(); CreateMap<BTNotConsignReport, BTNotConsignReportCreateDto>().ReverseMap();
CreateMap<BTNotConsignReport, BTNotConsignReportUpdateDto>().ReverseMap(); CreateMap<BTNotConsignReport, BTNotConsignReportUpdateDto>().ReverseMap();
CreateMap<BTNotConsignReportDetail, BTNotConsignReportDetailDto>().ReverseMap(); CreateMap<BTNotConsignReportDetail, BTNotConsignReportDetailDto>().ReverseMap();
CreateMap<BTNotConsignReportDetailDto, BTNotConsignReportDetailExportDto>(); CreateMap<BTNotConsignReportDetailDto, BTNotConsignReportDetailExportDto>();
} }
@ -685,7 +694,7 @@ namespace Win.Sfs.SettleAccount
private void CreateMapHQNotConsignReport() private void CreateMapHQNotConsignReport()
{ {
CreateMap<HQNotConsignReport, HQNotConsignReportDto>().ReverseMap(); CreateMap<HQNotConsignReport, HQNotConsignReportDto>().ReverseMap();
@ -697,7 +706,7 @@ namespace Win.Sfs.SettleAccount
CreateMap<HQNotConsignReportDetailDto, HQNotConsignReportDetailExportDto>(); CreateMap<HQNotConsignReportDetailDto, HQNotConsignReportDetailExportDto>();
} }
private void CreateMapHQSPNotConsignReport() private void CreateMapHQSPNotConsignReport()
{ {
CreateMap<HQSPNotConsignReport, HQSPNotConsignReportDto>().ReverseMap(); CreateMap<HQSPNotConsignReport, HQSPNotConsignReportDto>().ReverseMap();
CreateMap<HQSPNotConsignReport, HQSPNotConsignReportCreateDto>().ReverseMap(); CreateMap<HQSPNotConsignReport, HQSPNotConsignReportCreateDto>().ReverseMap();

104
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/Prices/PriceList.cs

@ -16,14 +16,18 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
public decimal SapPrice { set; get; } public decimal SapPrice { set; get; }
} }
public class PriceList:FullAuditedAggregateRootBase<Guid>
/// <summary>
/// 销售价格
/// </summary>
public class PriceList : FullAuditedAggregateRootBase<Guid>
{ {
public PriceList() public PriceList()
{ } { }
public PriceList(Guid Id,DateTime beginDate, DateTime endDate, decimal price, string materialCode, int type,Guid parentId,string version, string customerCode) :base(Id) public PriceList(Guid Id, DateTime beginDate, DateTime endDate, decimal price, string materialCode, int type, Guid parentId, string version, string customerCode) : base(Id)
{ {
BeginDate = beginDate; BeginTime = beginDate;
EndDate = endDate; EndTime = endDate;
Price = price; Price = price;
MaterialCode = materialCode; MaterialCode = materialCode;
Type = type; Type = type;
@ -32,51 +36,76 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
CustomerCode = customerCode; CustomerCode = customerCode;
} }
public void Set(DateTime beginDate, DateTime endDate, decimal price, string materialCode, int type,string customerCode) public void Set(DateTime beginDate, DateTime endDate, decimal price, string materialCode, int type, string customerCode)
{ {
BeginDate = beginDate; BeginTime = beginDate;
EndDate = endDate; EndTime = endDate;
Price = price; Price = price;
MaterialCode = materialCode; MaterialCode = materialCode;
Type = type; Type = type;
CustomerCode = customerCode; CustomerCode = customerCode;
} }
public void Update(Guid id,string version) public void Update(Guid id, string version)
{ {
Id = id; Id = id;
Version = version; Version = version;
} }
[Display(Name = "客户")]
public string CustomerCode { get; set; }
/// <summary> /// <summary>
///版本 /// 零件号
/// </summary> /// </summary>
[Display(Name = "版本")] [Display(Name = "零件号")]
public string Version { set; get; } public string LU { get; set; }
/// <summary>
/// 价格
/// </summary>
[Display(Name = "价格")]
public Decimal Price { set; get; }
/// <summary> /// <summary>
/// 开始时间 /// 开始时间
/// </summary> /// </summary>
[Display(Name = "开始时间")] [Display(Name = "开始时间")]
public DateTime BeginDate { set; get; } public DateTime BeginTime { set; get; }
/// <summary> /// <summary>
/// 结束时间 /// 结束时间
/// </summary> /// </summary>
[Display(Name = "结算时间")] [Display(Name = "结束时间")]
public DateTime EndDate { set; get; } public DateTime EndTime { set; get; }
/// <summary> /// <summary>
/// 价格 /// 客户编码
/// </summary> /// </summary>
[Display(Name = "价格")] [Display(Name = "客户编码")]
public Decimal Price { set; get; } public string ClientCode { get; set; }
/// <summary>
/// 业务类别
/// </summary>
[Display(Name = "业务类别")]
public string BusinessType { get; set; }
/// <summary>
///版本
/// </summary>
[Display(Name = "版本")]
public string Version { set; get; }
[Display(Name = "客户")]
public string CustomerCode { get; set; }
/// <summary> /// <summary>
/// 物料编号 /// 物料编号
/// </summary> /// </summary>
[Display(Name = "物料编号")] [Display(Name = "物料编号")]
public string MaterialCode { set; get; } public string MaterialCode { set; get; }
/// <summary> /// <summary>
/// 类型 /// 类型
@ -90,6 +119,10 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
public Guid ParentId { set; get; } public Guid ParentId { set; get; }
} }
/// <summary>
/// 备件价格
/// </summary>
public class PriceListBJ : FullAuditedAggregateRootBase<Guid> public class PriceListBJ : FullAuditedAggregateRootBase<Guid>
{ {
public PriceListBJ() public PriceListBJ()
@ -120,6 +153,31 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
Id = id; Id = id;
Version = version; Version = version;
} }
/// <summary>
/// 零件号
/// </summary>
[Display(Name = "零件号")]
public string LU { get; set; }
/// <summary>
/// 价格
/// </summary>
[Display(Name = "价格")]
public Decimal Price { set; get; }
/// <summary>
/// 客户编码
/// </summary>
[Display(Name = "客户编码")]
public string ClientCode { get; set; }
[Display(Name = "客户")] [Display(Name = "客户")]
public string CustomerCode { get; set; } public string CustomerCode { get; set; }
@ -140,11 +198,7 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
/// </summary> /// </summary>
[Display(Name = "结算时间")] [Display(Name = "结算时间")]
public DateTime EndDate { set; get; } public DateTime EndDate { set; get; }
/// <summary>
/// 价格
/// </summary>
[Display(Name = "价格")]
public Decimal Price { set; get; }
/// <summary> /// <summary>
/// 物料编号 /// 物料编号

6
code/src/Modules/SettleAccount/src/SettleAccount.Domain/Entities/Prices/PriceListManager.cs

@ -87,7 +87,7 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
join itm2 in pricelist join itm2 in pricelist
on new { itm1.Type, itm1.MaterialCode,itm1.CustomerCode } equals new { itm2.Type, itm2.MaterialCode, itm2.CustomerCode } on new { itm1.Type, itm1.MaterialCode,itm1.CustomerCode } equals new { itm2.Type, itm2.MaterialCode, itm2.CustomerCode }
where itm1.Price != itm2.Price where itm1.Price != itm2.Price
select new PriceList(itm2.Id, itm2.BeginDate, itm2.EndDate, itm1.Price, itm2.MaterialCode, itm2.Type, itm2.ParentId, itm2.Version, itm1.CustomerCode); select new PriceList(itm2.Id, itm2.BeginTime, itm2.EndTime, itm1.Price, itm2.MaterialCode, itm2.Type, itm2.ParentId, itm2.Version, itm1.CustomerCode);
if (update.Count() > 0) if (update.Count() > 0)
{ {
@ -122,7 +122,7 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
public virtual async Task<PriceList> CreateAsync(PriceList input) public virtual async Task<PriceList> CreateAsync(PriceList input)
{ {
var entity = new PriceList( var entity = new PriceList(
GuidGenerator.Create(), input.BeginDate, input.EndDate, input.Price, input.MaterialCode, input.Type,input.ParentId,input.Version,input.CustomerCode GuidGenerator.Create(), input.BeginTime, input.EndTime, input.Price, input.MaterialCode, input.Type,input.ParentId,input.Version,input.CustomerCode
); );
return await _repository.InsertAsync(entity); return await _repository.InsertAsync(entity);
@ -134,7 +134,7 @@ namespace Win.Sfs.SettleAccount.Entities.Prices
{ {
var entity = await _repository.GetAsync(id); var entity = await _repository.GetAsync(id);
entity.Set( entity.Set(
input.BeginDate, input.EndDate, input.Price, input.MaterialCode, input.Type,input.CustomerCode input.BeginTime, input.EndTime, input.Price, input.MaterialCode, input.Type,input.CustomerCode
); );
return await _repository.UpdateAsync(entity); return await _repository.UpdateAsync(entity);

3744
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230710062137_20230710-1.Designer.cs

File diff suppressed because it is too large

63
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230710062137_20230710-1.cs

@ -0,0 +1,63 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace Win.Sfs.SettleAccount.Migrations
{
public partial class _202307101 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.RenameColumn(
name: "EndDate",
table: "Set_PriceList",
newName: "EndTime");
migrationBuilder.RenameColumn(
name: "BeginDate",
table: "Set_PriceList",
newName: "BeginTime");
migrationBuilder.AddColumn<string>(
name: "BusinessType",
table: "Set_PriceList",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "ClientCode",
table: "Set_PriceList",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "LU",
table: "Set_PriceList",
type: "nvarchar(max)",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "BusinessType",
table: "Set_PriceList");
migrationBuilder.DropColumn(
name: "ClientCode",
table: "Set_PriceList");
migrationBuilder.DropColumn(
name: "LU",
table: "Set_PriceList");
migrationBuilder.RenameColumn(
name: "EndTime",
table: "Set_PriceList",
newName: "EndDate");
migrationBuilder.RenameColumn(
name: "BeginTime",
table: "Set_PriceList",
newName: "BeginDate");
}
}
}

3750
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230711014038_20230711-1.Designer.cs

File diff suppressed because it is too large

33
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/20230711014038_20230711-1.cs

@ -0,0 +1,33 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace Win.Sfs.SettleAccount.Migrations
{
public partial class _202307111 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "ClientCode",
table: "Set_PriceListBJ",
type: "nvarchar(max)",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "LU",
table: "Set_PriceListBJ",
type: "nvarchar(max)",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "ClientCode",
table: "Set_PriceListBJ");
migrationBuilder.DropColumn(
name: "LU",
table: "Set_PriceListBJ");
}
}
}

19
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Migrations/SettleAccountDbContextModelSnapshot.cs

@ -3324,12 +3324,18 @@ namespace Win.Sfs.SettleAccount.Migrations
.ValueGeneratedOnAdd() .ValueGeneratedOnAdd()
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<DateTime>("BeginDate") b.Property<DateTime>("BeginTime")
.HasColumnType("datetime2"); .HasColumnType("datetime2");
b.Property<Guid>("BranchId") b.Property<Guid>("BranchId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<string>("BusinessType")
.HasColumnType("nvarchar(max)");
b.Property<string>("ClientCode")
.HasColumnType("nvarchar(max)");
b.Property<string>("ConcurrencyStamp") b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken() .IsConcurrencyToken()
.HasMaxLength(40) .HasMaxLength(40)
@ -3359,7 +3365,7 @@ namespace Win.Sfs.SettleAccount.Migrations
b.Property<bool>("Enabled") b.Property<bool>("Enabled")
.HasColumnType("bit"); .HasColumnType("bit");
b.Property<DateTime>("EndDate") b.Property<DateTime>("EndTime")
.HasColumnType("datetime2"); .HasColumnType("datetime2");
b.Property<string>("ExtraProperties") b.Property<string>("ExtraProperties")
@ -3372,6 +3378,9 @@ namespace Win.Sfs.SettleAccount.Migrations
.HasDefaultValue(false) .HasDefaultValue(false)
.HasColumnName("IsDeleted"); .HasColumnName("IsDeleted");
b.Property<string>("LU")
.HasColumnType("nvarchar(max)");
b.Property<DateTime?>("LastModificationTime") b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2") .HasColumnType("datetime2")
.HasColumnName("LastModificationTime"); .HasColumnName("LastModificationTime");
@ -3416,6 +3425,9 @@ namespace Win.Sfs.SettleAccount.Migrations
b.Property<Guid>("BranchId") b.Property<Guid>("BranchId")
.HasColumnType("uniqueidentifier"); .HasColumnType("uniqueidentifier");
b.Property<string>("ClientCode")
.HasColumnType("nvarchar(max)");
b.Property<string>("ConcurrencyStamp") b.Property<string>("ConcurrencyStamp")
.IsConcurrencyToken() .IsConcurrencyToken()
.HasMaxLength(40) .HasMaxLength(40)
@ -3458,6 +3470,9 @@ namespace Win.Sfs.SettleAccount.Migrations
.HasDefaultValue(false) .HasDefaultValue(false)
.HasColumnName("IsDeleted"); .HasColumnName("IsDeleted");
b.Property<string>("LU")
.HasColumnType("nvarchar(max)");
b.Property<DateTime?>("LastModificationTime") b.Property<DateTime?>("LastModificationTime")
.HasColumnType("datetime2") .HasColumnType("datetime2")
.HasColumnName("LastModificationTime"); .HasColumnName("LastModificationTime");

6
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/Repository/SettleAccountNormalEfCoreRepository.cs

@ -58,12 +58,8 @@ namespace Win.Sfs.SettleAccount.Repository
entities = GetSortingQueryable(entities, sorting); entities = GetSortingQueryable(entities, sorting);
return await entities.PageBy(skipCount, maxResultCount) return await entities.PageBy(skipCount, maxResultCount).ToListAsync(GetCancellationToken(cancellationToken));
.ToListAsync(GetCancellationToken(cancellationToken));
} }
} }
} }

4
code/src/Modules/SettleAccount/src/SettleAccount.EntityFrameworkCore/SettleAccount.EntityFrameworkCore.csproj

@ -30,9 +30,5 @@
<ProjectReference Include="..\..\..\..\Shared\Win.Sfs.Shared\Win.Sfs.Shared.csproj" /> <ProjectReference Include="..\..\..\..\Shared\Win.Sfs.Shared\Win.Sfs.Shared.csproj" />
<ProjectReference Include="..\SettleAccount.Domain\SettleAccount.Domain.csproj" /> <ProjectReference Include="..\SettleAccount.Domain\SettleAccount.Domain.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="Migrations\" />
</ItemGroup>
</Project> </Project>

940
code/src/Shared/Win.Abp.Snowflakes/bin/Debug/netcoreapp5/Win.Abp.Snowflakes.deps.json

@ -1,940 +0,0 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v5.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v5.0": {
"Win.Abp.Snowflakes/1.0.0": {
"dependencies": {
"Volo.Abp.Core": "4.0.0"
},
"runtime": {
"Win.Abp.Snowflakes.dll": {}
}
},
"JetBrains.Annotations/2020.1.0": {
"runtime": {
"lib/netstandard2.0/JetBrains.Annotations.dll": {
"assemblyVersion": "2020.1.0.0",
"fileVersion": "2020.1.0.0"
}
}
},
"Microsoft.Extensions.Configuration/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.Binder/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.CommandLine/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "5.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.CommandLine.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "5.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.FileExtensions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "5.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
"Microsoft.Extensions.FileProviders.Physical": "5.0.0",
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.Json/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "5.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "5.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0"
},
"runtime": {
"lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.UserSecrets/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.Configuration.Json": "5.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
"Microsoft.Extensions.FileProviders.Physical": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.DependencyInjection/5.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0"
},
"runtime": {
"lib/net5.0/Microsoft.Extensions.DependencyInjection.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileProviders.Abstractions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileProviders.Physical/5.0.0": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
"Microsoft.Extensions.FileSystemGlobbing": "5.0.0",
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileSystemGlobbing/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Hosting.Abstractions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0"
},
"runtime": {
"lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Localization/5.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Microsoft.Extensions.Localization.Abstractions": "5.0.0",
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
"Microsoft.Extensions.Options": "5.0.0"
},
"runtime": {
"lib/net5.0/Microsoft.Extensions.Localization.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.52605"
}
}
},
"Microsoft.Extensions.Localization.Abstractions/5.0.0": {
"runtime": {
"lib/net5.0/Microsoft.Extensions.Localization.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.52605"
}
}
},
"Microsoft.Extensions.Logging/5.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "5.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
"Microsoft.Extensions.Options": "5.0.0"
},
"runtime": {
"lib/netstandard2.1/Microsoft.Extensions.Logging.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Options/5.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/net5.0/Microsoft.Extensions.Options.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.Configuration.Binder": "5.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Microsoft.Extensions.Options": "5.0.0",
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Primitives/5.0.0": {
"runtime": {
"lib/netcoreapp3.0/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.NETCore.Platforms/1.1.0": {},
"Microsoft.NETCore.Targets/1.1.0": {},
"Nito.AsyncEx.Context/5.0.0": {
"dependencies": {
"Nito.AsyncEx.Tasks": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Nito.AsyncEx.Context.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.0.0"
}
}
},
"Nito.AsyncEx.Coordination/5.0.0": {
"dependencies": {
"Nito.AsyncEx.Tasks": "5.0.0",
"Nito.Collections.Deque": "1.0.4",
"Nito.Disposables": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/Nito.AsyncEx.Coordination.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.0.0"
}
}
},
"Nito.AsyncEx.Tasks/5.0.0": {
"dependencies": {
"Nito.Disposables": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/Nito.AsyncEx.Tasks.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.0.0"
}
}
},
"Nito.Collections.Deque/1.0.4": {
"runtime": {
"lib/netstandard2.0/Nito.Collections.Deque.dll": {
"assemblyVersion": "1.0.4.0",
"fileVersion": "1.0.4.0"
}
}
},
"Nito.Disposables/2.0.0": {
"dependencies": {
"System.Collections.Immutable": "1.7.1"
},
"runtime": {
"lib/netstandard2.0/Nito.Disposables.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"System.Collections/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Collections.Immutable/1.7.1": {},
"System.ComponentModel.Annotations/4.7.0": {},
"System.Diagnostics.Debug/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Globalization/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.IO/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Linq/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0"
}
},
"System.Linq.Dynamic.Core/1.1.5": {
"runtime": {
"lib/netcoreapp2.1/System.Linq.Dynamic.Core.dll": {
"assemblyVersion": "1.1.5.0",
"fileVersion": "1.1.5.0"
}
}
},
"System.Linq.Expressions/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.IO": "4.3.0",
"System.Linq": "4.3.0",
"System.ObjectModel": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Emit": "4.3.0",
"System.Reflection.Emit.ILGeneration": "4.3.0",
"System.Reflection.Emit.Lightweight": "4.3.0",
"System.Reflection.Extensions": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Reflection.TypeExtensions": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Linq.Queryable/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Linq": "4.3.0",
"System.Linq.Expressions": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Extensions": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.ObjectModel/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Reflection/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.IO": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Emit/4.3.0": {
"dependencies": {
"System.IO": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Emit.ILGeneration": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Emit.ILGeneration/4.3.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Emit.Lightweight/4.3.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Reflection.Emit.ILGeneration": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Primitives/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.TypeExtensions/4.3.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Resources.ResourceManager/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Globalization": "4.3.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"System.Runtime.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.Loader/4.3.0": {
"dependencies": {
"System.IO": "4.3.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Text.Encoding/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Threading/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Threading.Tasks/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"Volo.Abp.Core/4.0.0": {
"dependencies": {
"JetBrains.Annotations": "2020.1.0",
"Microsoft.Extensions.Configuration.CommandLine": "5.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "5.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "5.0.0",
"Microsoft.Extensions.DependencyInjection": "5.0.0",
"Microsoft.Extensions.Hosting.Abstractions": "5.0.0",
"Microsoft.Extensions.Localization": "5.0.0",
"Microsoft.Extensions.Logging": "5.0.0",
"Microsoft.Extensions.Options": "5.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "5.0.0",
"Nito.AsyncEx.Context": "5.0.0",
"Nito.AsyncEx.Coordination": "5.0.0",
"System.Collections.Immutable": "1.7.1",
"System.ComponentModel.Annotations": "4.7.0",
"System.Linq.Dynamic.Core": "1.1.5",
"System.Linq.Queryable": "4.3.0",
"System.Runtime.Loader": "4.3.0"
},
"runtime": {
"lib/netstandard2.0/Volo.Abp.Core.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.0.0.0"
}
}
}
}
},
"libraries": {
"Win.Abp.Snowflakes/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"JetBrains.Annotations/2020.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kD9D2ey3DGeLbfIzS8PkwLFkcF5vCOLk2rdjgfSxTfpoyovl7gAyoS6yq6T77zo9QgJGaVJ7PO/cSgLopnKlzg==",
"path": "jetbrains.annotations/2020.1.0",
"hashPath": "jetbrains.annotations.2020.1.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LN322qEKHjuVEhhXueTUe7RNePooZmS8aGid5aK2woX3NPjSnONFyKUc6+JknOS6ce6h2tCLfKPTBXE3mN/6Ag==",
"path": "microsoft.extensions.configuration/5.0.0",
"hashPath": "microsoft.extensions.configuration.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ETjSBHMp3OAZ4HxGQYpwyGsD8Sw5FegQXphi0rpoGMT74S4+I2mm7XJEswwn59XAaKOzC15oDSOWEE8SzDCd6Q==",
"path": "microsoft.extensions.configuration.abstractions/5.0.0",
"hashPath": "microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Binder/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Of1Irt1+NzWO+yEYkuDh5TpT4On7LKl98Q9iLqCdOZps6XXEWDj3AKtmyvzJPVXZe4apmkJJIiDL7rR1yC+hjQ==",
"path": "microsoft.extensions.configuration.binder/5.0.0",
"hashPath": "microsoft.extensions.configuration.binder.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.CommandLine/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OelM+VQdhZ0XMXsEQBq/bt3kFzD+EBGqR4TAgFDRAye0JfvHAaRi+3BxCRcwqUAwDhV0U0HieljBGHlTgYseRA==",
"path": "microsoft.extensions.configuration.commandline/5.0.0",
"hashPath": "microsoft.extensions.configuration.commandline.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fqh6y6hAi0Z0fRsb4B/mP9OkKkSlifh5osa+N/YSQ+/S2a//+zYApZMUC1XeP9fdjlgZoPQoZ72Q2eLHyKLddQ==",
"path": "microsoft.extensions.configuration.environmentvariables/5.0.0",
"hashPath": "microsoft.extensions.configuration.environmentvariables.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rRdspYKA18ViPOISwAihhCMbusHsARCOtDMwa23f+BGEdIjpKPlhs3LLjmKlxfhpGXBjIsS0JpXcChjRUN+PAw==",
"path": "microsoft.extensions.configuration.fileextensions/5.0.0",
"hashPath": "microsoft.extensions.configuration.fileextensions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Pak8ymSUfdzPfBTLHxeOwcR32YDbuVfhnH2hkfOLnJNQd19ItlBdpMjIDY9C5O/nS2Sn9bzDMai0ZrvF7KyY/Q==",
"path": "microsoft.extensions.configuration.json/5.0.0",
"hashPath": "microsoft.extensions.configuration.json.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.UserSecrets/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+tK3seG68106lN277YWQvqmfyI/89w0uTu/5Gz5VYSUu5TI4mqwsaWLlSmT9Bl1yW/i1Nr06gHJxqaqB5NU9Tw==",
"path": "microsoft.extensions.configuration.usersecrets/5.0.0",
"hashPath": "microsoft.extensions.configuration.usersecrets.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Rc2kb/p3Ze6cP6rhFC3PJRdWGbLvSHZc0ev7YlyeU6FmHciDMLrhoVoTUEzKPhN5ZjFgKF1Cf5fOz8mCMIkvpA==",
"path": "microsoft.extensions.dependencyinjection/5.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==",
"path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iuZIiZ3mteEb+nsUqpGXKx2cGF+cv6gWPd5jqQI4hzqdiJ6I94ddLjKhQOuRW1lueHwocIw30xbSHGhQj0zjdQ==",
"path": "microsoft.extensions.fileproviders.abstractions/5.0.0",
"hashPath": "microsoft.extensions.fileproviders.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1rkd8UO2qf21biwO7X0hL9uHP7vtfmdv/NLvKgCRHkdz1XnW8zVQJXyEYiN68WYpExgtVWn55QF0qBzgfh1mGg==",
"path": "microsoft.extensions.fileproviders.physical/5.0.0",
"hashPath": "microsoft.extensions.fileproviders.physical.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ArliS8lGk8sWRtrWpqI8yUVYJpRruPjCDT+EIjrgkA/AAPRctlAkRISVZ334chAKktTLzD1+PK8F5IZpGedSqA==",
"path": "microsoft.extensions.filesystemglobbing/5.0.0",
"hashPath": "microsoft.extensions.filesystemglobbing.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Hosting.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cbUOCePYBl1UhM+N2zmDSUyJ6cODulbtUd9gEzMFIK3RQDtP/gJsE08oLcBSXH3Q1RAQ0ex7OAB3HeTKB9bXpg==",
"path": "microsoft.extensions.hosting.abstractions/5.0.0",
"hashPath": "microsoft.extensions.hosting.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Localization/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PJ2TouziI0zcgiq2VapjNFkMsT05rZUfq0i6sY+59Ri6Mn9W7okJ1U5/CvetFDUAN0DHrXOTaaMSt5epUn6rQQ==",
"path": "microsoft.extensions.localization/5.0.0",
"hashPath": "microsoft.extensions.localization.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Localization.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Uey8VI3FbPFLiLh+mnFN13DTbQASSuzV3ZeN9Oma2Y4YW7OBWjU9LAsvPISRBQHrwztXegSoCacFWqB9o992xQ==",
"path": "microsoft.extensions.localization.abstractions/5.0.0",
"hashPath": "microsoft.extensions.localization.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MgOwK6tPzB6YNH21wssJcw/2MKwee8b2gI7SllYfn6rvTpIrVvVS5HAjSU2vqSku1fwqRvWP0MdIi14qjd93Aw==",
"path": "microsoft.extensions.logging/5.0.0",
"hashPath": "microsoft.extensions.logging.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NxP6ahFcBnnSfwNBi2KH2Oz8Xl5Sm2krjId/jRR3I7teFphwiUoUeZPwTNA21EX+5PtjqmyAvKaOeBXcJjcH/w==",
"path": "microsoft.extensions.logging.abstractions/5.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CBvR92TCJ5uBIdd9/HzDSrxYak+0W/3+yxrNg8Qm6Bmrkh5L+nu6m3WeazQehcZ5q1/6dDA7J5YdQjim0165zg==",
"path": "microsoft.extensions.options/5.0.0",
"hashPath": "microsoft.extensions.options.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options.ConfigurationExtensions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-280RxNJqOeQqq47aJLy5D9LN61CAWeuRA83gPToQ8B9jl9SNdQ5EXjlfvF66zQI5AXMl+C/3hGnbtIEN+X3mqA==",
"path": "microsoft.extensions.options.configurationextensions/5.0.0",
"hashPath": "microsoft.extensions.options.configurationextensions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ==",
"path": "microsoft.extensions.primitives/5.0.0",
"hashPath": "microsoft.extensions.primitives.5.0.0.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
"path": "microsoft.netcore.platforms/1.1.0",
"hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
},
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"path": "microsoft.netcore.targets/1.1.0",
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
},
"Nito.AsyncEx.Context/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Qnth1Ye+QSLg8P3fSFYzk7ue6oUUHQcKpLitgAig8xRFqTK5W1KTlfxF/Z8Eo0BuqZ17a5fAGtXrdKJsLqivZw==",
"path": "nito.asyncex.context/5.0.0",
"hashPath": "nito.asyncex.context.5.0.0.nupkg.sha512"
},
"Nito.AsyncEx.Coordination/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kjauyO8UMo/FGZO/M8TdjXB8ZlBPFOiRN8yakThaGQbYOywazQ0kGZ39SNr2gNNzsTxbZOUudBMYNo+IrtscbA==",
"path": "nito.asyncex.coordination/5.0.0",
"hashPath": "nito.asyncex.coordination.5.0.0.nupkg.sha512"
},
"Nito.AsyncEx.Tasks/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZtvotignafOLteP4oEjVcF3k2L8h73QUCaFpVKWbU+EOlW/I+JGkpMoXIl0rlwPcDmR84RxzggLRUNMaWlOosA==",
"path": "nito.asyncex.tasks/5.0.0",
"hashPath": "nito.asyncex.tasks.5.0.0.nupkg.sha512"
},
"Nito.Collections.Deque/1.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yGDKqCQ61i97MyfEUYG6+ln5vxpx11uA5M9+VV9B7stticbFm19YMI/G9w4AFYVBj5PbPi138P8IovkMFAL0Aw==",
"path": "nito.collections.deque/1.0.4",
"hashPath": "nito.collections.deque.1.0.4.nupkg.sha512"
},
"Nito.Disposables/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ExJl/jTjegSLHGcwnmaYaI5xIlrefAsVdeLft7VLtXI2+W5irihiu36LizWvlaUpzY1/llo+YSh09uSHMu2VFw==",
"path": "nito.disposables/2.0.0",
"hashPath": "nito.disposables.2.0.0.nupkg.sha512"
},
"System.Collections/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
"path": "system.collections/4.3.0",
"hashPath": "system.collections.4.3.0.nupkg.sha512"
},
"System.Collections.Immutable/1.7.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-B43Zsz5EfMwyEbnObwRxW5u85fzJma3lrDeGcSAV1qkhSRTNY5uXAByTn9h9ddNdhM+4/YoLc/CI43umjwIl9Q==",
"path": "system.collections.immutable/1.7.1",
"hashPath": "system.collections.immutable.1.7.1.nupkg.sha512"
},
"System.ComponentModel.Annotations/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==",
"path": "system.componentmodel.annotations/4.7.0",
"hashPath": "system.componentmodel.annotations.4.7.0.nupkg.sha512"
},
"System.Diagnostics.Debug/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
"path": "system.diagnostics.debug/4.3.0",
"hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
},
"System.Globalization/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
"path": "system.globalization/4.3.0",
"hashPath": "system.globalization.4.3.0.nupkg.sha512"
},
"System.IO/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
"path": "system.io/4.3.0",
"hashPath": "system.io.4.3.0.nupkg.sha512"
},
"System.Linq/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
"path": "system.linq/4.3.0",
"hashPath": "system.linq.4.3.0.nupkg.sha512"
},
"System.Linq.Dynamic.Core/1.1.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VxPRhLUvdALtBE6vdO83LxjSc3RQ9CPYwLofqKg3BkOxgz8xb4Z4vr/YhoSQ5NGHR7m6yhMDzUNUWUEeSTCHmA==",
"path": "system.linq.dynamic.core/1.1.5",
"hashPath": "system.linq.dynamic.core.1.1.5.nupkg.sha512"
},
"System.Linq.Expressions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
"path": "system.linq.expressions/4.3.0",
"hashPath": "system.linq.expressions.4.3.0.nupkg.sha512"
},
"System.Linq.Queryable/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-In1Bmmvl/j52yPu3xgakQSI0YIckPUr870w4K5+Lak3JCCa8hl+my65lABOuKfYs4ugmZy25ScFerC4nz8+b6g==",
"path": "system.linq.queryable/4.3.0",
"hashPath": "system.linq.queryable.4.3.0.nupkg.sha512"
},
"System.ObjectModel/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
"path": "system.objectmodel/4.3.0",
"hashPath": "system.objectmodel.4.3.0.nupkg.sha512"
},
"System.Reflection/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
"path": "system.reflection/4.3.0",
"hashPath": "system.reflection.4.3.0.nupkg.sha512"
},
"System.Reflection.Emit/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
"path": "system.reflection.emit/4.3.0",
"hashPath": "system.reflection.emit.4.3.0.nupkg.sha512"
},
"System.Reflection.Emit.ILGeneration/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
"path": "system.reflection.emit.ilgeneration/4.3.0",
"hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512"
},
"System.Reflection.Emit.Lightweight/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
"path": "system.reflection.emit.lightweight/4.3.0",
"hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512"
},
"System.Reflection.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
"path": "system.reflection.extensions/4.3.0",
"hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512"
},
"System.Reflection.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
"path": "system.reflection.primitives/4.3.0",
"hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
},
"System.Reflection.TypeExtensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
"path": "system.reflection.typeextensions/4.3.0",
"hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512"
},
"System.Resources.ResourceManager/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
"path": "system.resources.resourcemanager/4.3.0",
"hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
},
"System.Runtime/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"path": "system.runtime/4.3.0",
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
},
"System.Runtime.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
"path": "system.runtime.extensions/4.3.0",
"hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
},
"System.Runtime.Loader/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
"path": "system.runtime.loader/4.3.0",
"hashPath": "system.runtime.loader.4.3.0.nupkg.sha512"
},
"System.Text.Encoding/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
"path": "system.text.encoding/4.3.0",
"hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
},
"System.Threading/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
"path": "system.threading/4.3.0",
"hashPath": "system.threading.4.3.0.nupkg.sha512"
},
"System.Threading.Tasks/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
"path": "system.threading.tasks/4.3.0",
"hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
},
"Volo.Abp.Core/4.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZMfrx0XAQB8hkQDr7yK7z+p9m48VmKxpEH0/B2k8QNK9/D+2CGa4pBJtwJfQocgm2lltI25NapgcIr5GG8bQJA==",
"path": "volo.abp.core/4.0.0",
"hashPath": "volo.abp.core.4.0.0.nupkg.sha512"
}
}
}

BIN
code/src/Shared/Win.Abp.Snowflakes/bin/Debug/netcoreapp5/Win.Abp.Snowflakes.dll

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/bin/Debug/netcoreapp5/Win.Abp.Snowflakes.pdb

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/bin/Debug/netcoreapp5/ref/Win.Abp.Snowflakes.dll

Binary file not shown.

940
code/src/Shared/Win.Abp.Snowflakes/bin/Release/netcoreapp5/Win.Abp.Snowflakes.deps.json

@ -1,940 +0,0 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v5.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v5.0": {
"Win.Abp.Snowflakes/1.0.0": {
"dependencies": {
"Volo.Abp.Core": "4.0.0"
},
"runtime": {
"Win.Abp.Snowflakes.dll": {}
}
},
"JetBrains.Annotations/2020.1.0": {
"runtime": {
"lib/netstandard2.0/JetBrains.Annotations.dll": {
"assemblyVersion": "2020.1.0.0",
"fileVersion": "2020.1.0.0"
}
}
},
"Microsoft.Extensions.Configuration/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.Abstractions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.Binder/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.Binder.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.CommandLine/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "5.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.CommandLine.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "5.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.FileExtensions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "5.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
"Microsoft.Extensions.FileProviders.Physical": "5.0.0",
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.FileExtensions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.Json/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration": "5.0.0",
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.Configuration.FileExtensions": "5.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0"
},
"runtime": {
"lib/netstandard2.1/Microsoft.Extensions.Configuration.Json.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Configuration.UserSecrets/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.Configuration.Json": "5.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
"Microsoft.Extensions.FileProviders.Physical": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Configuration.UserSecrets.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.DependencyInjection/5.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0"
},
"runtime": {
"lib/net5.0/Microsoft.Extensions.DependencyInjection.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileProviders.Abstractions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileProviders.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileProviders.Physical/5.0.0": {
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0",
"Microsoft.Extensions.FileSystemGlobbing": "5.0.0",
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileProviders.Physical.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.FileSystemGlobbing/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.FileSystemGlobbing.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Hosting.Abstractions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Microsoft.Extensions.FileProviders.Abstractions": "5.0.0"
},
"runtime": {
"lib/netstandard2.1/Microsoft.Extensions.Hosting.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Localization/5.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Microsoft.Extensions.Localization.Abstractions": "5.0.0",
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
"Microsoft.Extensions.Options": "5.0.0"
},
"runtime": {
"lib/net5.0/Microsoft.Extensions.Localization.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.52605"
}
}
},
"Microsoft.Extensions.Localization.Abstractions/5.0.0": {
"runtime": {
"lib/net5.0/Microsoft.Extensions.Localization.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.52605"
}
}
},
"Microsoft.Extensions.Logging/5.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection": "5.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Microsoft.Extensions.Logging.Abstractions": "5.0.0",
"Microsoft.Extensions.Options": "5.0.0"
},
"runtime": {
"lib/netstandard2.1/Microsoft.Extensions.Logging.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Logging.Abstractions/5.0.0": {
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Options/5.0.0": {
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/net5.0/Microsoft.Extensions.Options.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Options.ConfigurationExtensions/5.0.0": {
"dependencies": {
"Microsoft.Extensions.Configuration.Abstractions": "5.0.0",
"Microsoft.Extensions.Configuration.Binder": "5.0.0",
"Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0",
"Microsoft.Extensions.Options": "5.0.0",
"Microsoft.Extensions.Primitives": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Microsoft.Extensions.Options.ConfigurationExtensions.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.Extensions.Primitives/5.0.0": {
"runtime": {
"lib/netcoreapp3.0/Microsoft.Extensions.Primitives.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.20.51904"
}
}
},
"Microsoft.NETCore.Platforms/1.1.0": {},
"Microsoft.NETCore.Targets/1.1.0": {},
"Nito.AsyncEx.Context/5.0.0": {
"dependencies": {
"Nito.AsyncEx.Tasks": "5.0.0"
},
"runtime": {
"lib/netstandard2.0/Nito.AsyncEx.Context.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.0.0"
}
}
},
"Nito.AsyncEx.Coordination/5.0.0": {
"dependencies": {
"Nito.AsyncEx.Tasks": "5.0.0",
"Nito.Collections.Deque": "1.0.4",
"Nito.Disposables": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/Nito.AsyncEx.Coordination.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.0.0"
}
}
},
"Nito.AsyncEx.Tasks/5.0.0": {
"dependencies": {
"Nito.Disposables": "2.0.0"
},
"runtime": {
"lib/netstandard2.0/Nito.AsyncEx.Tasks.dll": {
"assemblyVersion": "5.0.0.0",
"fileVersion": "5.0.0.0"
}
}
},
"Nito.Collections.Deque/1.0.4": {
"runtime": {
"lib/netstandard2.0/Nito.Collections.Deque.dll": {
"assemblyVersion": "1.0.4.0",
"fileVersion": "1.0.4.0"
}
}
},
"Nito.Disposables/2.0.0": {
"dependencies": {
"System.Collections.Immutable": "1.7.1"
},
"runtime": {
"lib/netstandard2.0/Nito.Disposables.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "2.0.0.0"
}
}
},
"System.Collections/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Collections.Immutable/1.7.1": {},
"System.ComponentModel.Annotations/4.7.0": {},
"System.Diagnostics.Debug/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Globalization/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.IO/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0",
"System.Text.Encoding": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Linq/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0"
}
},
"System.Linq.Dynamic.Core/1.1.5": {
"runtime": {
"lib/netcoreapp2.1/System.Linq.Dynamic.Core.dll": {
"assemblyVersion": "1.1.5.0",
"fileVersion": "1.1.5.0"
}
}
},
"System.Linq.Expressions/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Globalization": "4.3.0",
"System.IO": "4.3.0",
"System.Linq": "4.3.0",
"System.ObjectModel": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Emit": "4.3.0",
"System.Reflection.Emit.ILGeneration": "4.3.0",
"System.Reflection.Emit.Lightweight": "4.3.0",
"System.Reflection.Extensions": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Reflection.TypeExtensions": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Runtime.Extensions": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Linq.Queryable/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Linq": "4.3.0",
"System.Linq.Expressions": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Extensions": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.ObjectModel/4.3.0": {
"dependencies": {
"System.Collections": "4.3.0",
"System.Diagnostics.Debug": "4.3.0",
"System.Resources.ResourceManager": "4.3.0",
"System.Runtime": "4.3.0",
"System.Threading": "4.3.0"
}
},
"System.Reflection/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.IO": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Emit/4.3.0": {
"dependencies": {
"System.IO": "4.3.0",
"System.Reflection": "4.3.0",
"System.Reflection.Emit.ILGeneration": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Emit.ILGeneration/4.3.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Emit.Lightweight/4.3.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Reflection.Emit.ILGeneration": "4.3.0",
"System.Reflection.Primitives": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.Primitives/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Reflection.TypeExtensions/4.3.0": {
"dependencies": {
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Resources.ResourceManager/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Globalization": "4.3.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0"
}
},
"System.Runtime.Extensions/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Runtime.Loader/4.3.0": {
"dependencies": {
"System.IO": "4.3.0",
"System.Reflection": "4.3.0",
"System.Runtime": "4.3.0"
}
},
"System.Text.Encoding/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"System.Threading/4.3.0": {
"dependencies": {
"System.Runtime": "4.3.0",
"System.Threading.Tasks": "4.3.0"
}
},
"System.Threading.Tasks/4.3.0": {
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0",
"Microsoft.NETCore.Targets": "1.1.0",
"System.Runtime": "4.3.0"
}
},
"Volo.Abp.Core/4.0.0": {
"dependencies": {
"JetBrains.Annotations": "2020.1.0",
"Microsoft.Extensions.Configuration.CommandLine": "5.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "5.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "5.0.0",
"Microsoft.Extensions.DependencyInjection": "5.0.0",
"Microsoft.Extensions.Hosting.Abstractions": "5.0.0",
"Microsoft.Extensions.Localization": "5.0.0",
"Microsoft.Extensions.Logging": "5.0.0",
"Microsoft.Extensions.Options": "5.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "5.0.0",
"Nito.AsyncEx.Context": "5.0.0",
"Nito.AsyncEx.Coordination": "5.0.0",
"System.Collections.Immutable": "1.7.1",
"System.ComponentModel.Annotations": "4.7.0",
"System.Linq.Dynamic.Core": "1.1.5",
"System.Linq.Queryable": "4.3.0",
"System.Runtime.Loader": "4.3.0"
},
"runtime": {
"lib/netstandard2.0/Volo.Abp.Core.dll": {
"assemblyVersion": "4.0.0.0",
"fileVersion": "4.0.0.0"
}
}
}
}
},
"libraries": {
"Win.Abp.Snowflakes/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"JetBrains.Annotations/2020.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kD9D2ey3DGeLbfIzS8PkwLFkcF5vCOLk2rdjgfSxTfpoyovl7gAyoS6yq6T77zo9QgJGaVJ7PO/cSgLopnKlzg==",
"path": "jetbrains.annotations/2020.1.0",
"hashPath": "jetbrains.annotations.2020.1.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LN322qEKHjuVEhhXueTUe7RNePooZmS8aGid5aK2woX3NPjSnONFyKUc6+JknOS6ce6h2tCLfKPTBXE3mN/6Ag==",
"path": "microsoft.extensions.configuration/5.0.0",
"hashPath": "microsoft.extensions.configuration.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ETjSBHMp3OAZ4HxGQYpwyGsD8Sw5FegQXphi0rpoGMT74S4+I2mm7XJEswwn59XAaKOzC15oDSOWEE8SzDCd6Q==",
"path": "microsoft.extensions.configuration.abstractions/5.0.0",
"hashPath": "microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Binder/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Of1Irt1+NzWO+yEYkuDh5TpT4On7LKl98Q9iLqCdOZps6XXEWDj3AKtmyvzJPVXZe4apmkJJIiDL7rR1yC+hjQ==",
"path": "microsoft.extensions.configuration.binder/5.0.0",
"hashPath": "microsoft.extensions.configuration.binder.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.CommandLine/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-OelM+VQdhZ0XMXsEQBq/bt3kFzD+EBGqR4TAgFDRAye0JfvHAaRi+3BxCRcwqUAwDhV0U0HieljBGHlTgYseRA==",
"path": "microsoft.extensions.configuration.commandline/5.0.0",
"hashPath": "microsoft.extensions.configuration.commandline.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.EnvironmentVariables/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-fqh6y6hAi0Z0fRsb4B/mP9OkKkSlifh5osa+N/YSQ+/S2a//+zYApZMUC1XeP9fdjlgZoPQoZ72Q2eLHyKLddQ==",
"path": "microsoft.extensions.configuration.environmentvariables/5.0.0",
"hashPath": "microsoft.extensions.configuration.environmentvariables.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.FileExtensions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rRdspYKA18ViPOISwAihhCMbusHsARCOtDMwa23f+BGEdIjpKPlhs3LLjmKlxfhpGXBjIsS0JpXcChjRUN+PAw==",
"path": "microsoft.extensions.configuration.fileextensions/5.0.0",
"hashPath": "microsoft.extensions.configuration.fileextensions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.Json/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Pak8ymSUfdzPfBTLHxeOwcR32YDbuVfhnH2hkfOLnJNQd19ItlBdpMjIDY9C5O/nS2Sn9bzDMai0ZrvF7KyY/Q==",
"path": "microsoft.extensions.configuration.json/5.0.0",
"hashPath": "microsoft.extensions.configuration.json.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Configuration.UserSecrets/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+tK3seG68106lN277YWQvqmfyI/89w0uTu/5Gz5VYSUu5TI4mqwsaWLlSmT9Bl1yW/i1Nr06gHJxqaqB5NU9Tw==",
"path": "microsoft.extensions.configuration.usersecrets/5.0.0",
"hashPath": "microsoft.extensions.configuration.usersecrets.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Rc2kb/p3Ze6cP6rhFC3PJRdWGbLvSHZc0ev7YlyeU6FmHciDMLrhoVoTUEzKPhN5ZjFgKF1Cf5fOz8mCMIkvpA==",
"path": "microsoft.extensions.dependencyinjection/5.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==",
"path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0",
"hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-iuZIiZ3mteEb+nsUqpGXKx2cGF+cv6gWPd5jqQI4hzqdiJ6I94ddLjKhQOuRW1lueHwocIw30xbSHGhQj0zjdQ==",
"path": "microsoft.extensions.fileproviders.abstractions/5.0.0",
"hashPath": "microsoft.extensions.fileproviders.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileProviders.Physical/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-1rkd8UO2qf21biwO7X0hL9uHP7vtfmdv/NLvKgCRHkdz1XnW8zVQJXyEYiN68WYpExgtVWn55QF0qBzgfh1mGg==",
"path": "microsoft.extensions.fileproviders.physical/5.0.0",
"hashPath": "microsoft.extensions.fileproviders.physical.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.FileSystemGlobbing/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ArliS8lGk8sWRtrWpqI8yUVYJpRruPjCDT+EIjrgkA/AAPRctlAkRISVZ334chAKktTLzD1+PK8F5IZpGedSqA==",
"path": "microsoft.extensions.filesystemglobbing/5.0.0",
"hashPath": "microsoft.extensions.filesystemglobbing.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Hosting.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cbUOCePYBl1UhM+N2zmDSUyJ6cODulbtUd9gEzMFIK3RQDtP/gJsE08oLcBSXH3Q1RAQ0ex7OAB3HeTKB9bXpg==",
"path": "microsoft.extensions.hosting.abstractions/5.0.0",
"hashPath": "microsoft.extensions.hosting.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Localization/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PJ2TouziI0zcgiq2VapjNFkMsT05rZUfq0i6sY+59Ri6Mn9W7okJ1U5/CvetFDUAN0DHrXOTaaMSt5epUn6rQQ==",
"path": "microsoft.extensions.localization/5.0.0",
"hashPath": "microsoft.extensions.localization.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Localization.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Uey8VI3FbPFLiLh+mnFN13DTbQASSuzV3ZeN9Oma2Y4YW7OBWjU9LAsvPISRBQHrwztXegSoCacFWqB9o992xQ==",
"path": "microsoft.extensions.localization.abstractions/5.0.0",
"hashPath": "microsoft.extensions.localization.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MgOwK6tPzB6YNH21wssJcw/2MKwee8b2gI7SllYfn6rvTpIrVvVS5HAjSU2vqSku1fwqRvWP0MdIi14qjd93Aw==",
"path": "microsoft.extensions.logging/5.0.0",
"hashPath": "microsoft.extensions.logging.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Logging.Abstractions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NxP6ahFcBnnSfwNBi2KH2Oz8Xl5Sm2krjId/jRR3I7teFphwiUoUeZPwTNA21EX+5PtjqmyAvKaOeBXcJjcH/w==",
"path": "microsoft.extensions.logging.abstractions/5.0.0",
"hashPath": "microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-CBvR92TCJ5uBIdd9/HzDSrxYak+0W/3+yxrNg8Qm6Bmrkh5L+nu6m3WeazQehcZ5q1/6dDA7J5YdQjim0165zg==",
"path": "microsoft.extensions.options/5.0.0",
"hashPath": "microsoft.extensions.options.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Options.ConfigurationExtensions/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-280RxNJqOeQqq47aJLy5D9LN61CAWeuRA83gPToQ8B9jl9SNdQ5EXjlfvF66zQI5AXMl+C/3hGnbtIEN+X3mqA==",
"path": "microsoft.extensions.options.configurationextensions/5.0.0",
"hashPath": "microsoft.extensions.options.configurationextensions.5.0.0.nupkg.sha512"
},
"Microsoft.Extensions.Primitives/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-cI/VWn9G1fghXrNDagX9nYaaB/nokkZn0HYAawGaELQrl8InSezfe9OnfPZLcJq3esXxygh3hkq2c3qoV3SDyQ==",
"path": "microsoft.extensions.primitives/5.0.0",
"hashPath": "microsoft.extensions.primitives.5.0.0.nupkg.sha512"
},
"Microsoft.NETCore.Platforms/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
"path": "microsoft.netcore.platforms/1.1.0",
"hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
},
"Microsoft.NETCore.Targets/1.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
"path": "microsoft.netcore.targets/1.1.0",
"hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
},
"Nito.AsyncEx.Context/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Qnth1Ye+QSLg8P3fSFYzk7ue6oUUHQcKpLitgAig8xRFqTK5W1KTlfxF/Z8Eo0BuqZ17a5fAGtXrdKJsLqivZw==",
"path": "nito.asyncex.context/5.0.0",
"hashPath": "nito.asyncex.context.5.0.0.nupkg.sha512"
},
"Nito.AsyncEx.Coordination/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kjauyO8UMo/FGZO/M8TdjXB8ZlBPFOiRN8yakThaGQbYOywazQ0kGZ39SNr2gNNzsTxbZOUudBMYNo+IrtscbA==",
"path": "nito.asyncex.coordination/5.0.0",
"hashPath": "nito.asyncex.coordination.5.0.0.nupkg.sha512"
},
"Nito.AsyncEx.Tasks/5.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZtvotignafOLteP4oEjVcF3k2L8h73QUCaFpVKWbU+EOlW/I+JGkpMoXIl0rlwPcDmR84RxzggLRUNMaWlOosA==",
"path": "nito.asyncex.tasks/5.0.0",
"hashPath": "nito.asyncex.tasks.5.0.0.nupkg.sha512"
},
"Nito.Collections.Deque/1.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-yGDKqCQ61i97MyfEUYG6+ln5vxpx11uA5M9+VV9B7stticbFm19YMI/G9w4AFYVBj5PbPi138P8IovkMFAL0Aw==",
"path": "nito.collections.deque/1.0.4",
"hashPath": "nito.collections.deque.1.0.4.nupkg.sha512"
},
"Nito.Disposables/2.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ExJl/jTjegSLHGcwnmaYaI5xIlrefAsVdeLft7VLtXI2+W5irihiu36LizWvlaUpzY1/llo+YSh09uSHMu2VFw==",
"path": "nito.disposables/2.0.0",
"hashPath": "nito.disposables.2.0.0.nupkg.sha512"
},
"System.Collections/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
"path": "system.collections/4.3.0",
"hashPath": "system.collections.4.3.0.nupkg.sha512"
},
"System.Collections.Immutable/1.7.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-B43Zsz5EfMwyEbnObwRxW5u85fzJma3lrDeGcSAV1qkhSRTNY5uXAByTn9h9ddNdhM+4/YoLc/CI43umjwIl9Q==",
"path": "system.collections.immutable/1.7.1",
"hashPath": "system.collections.immutable.1.7.1.nupkg.sha512"
},
"System.ComponentModel.Annotations/4.7.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-0YFqjhp/mYkDGpU0Ye1GjE53HMp9UVfGN7seGpAMttAC0C40v5gw598jCgpbBLMmCo0E5YRLBv5Z2doypO49ZQ==",
"path": "system.componentmodel.annotations/4.7.0",
"hashPath": "system.componentmodel.annotations.4.7.0.nupkg.sha512"
},
"System.Diagnostics.Debug/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
"path": "system.diagnostics.debug/4.3.0",
"hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
},
"System.Globalization/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
"path": "system.globalization/4.3.0",
"hashPath": "system.globalization.4.3.0.nupkg.sha512"
},
"System.IO/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
"path": "system.io/4.3.0",
"hashPath": "system.io.4.3.0.nupkg.sha512"
},
"System.Linq/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5DbqIUpsDp0dFftytzuMmc0oeMdQwjcP/EWxsksIz/w1TcFRkZ3yKKz0PqiYFMmEwPSWw+qNVqD7PJ889JzHbw==",
"path": "system.linq/4.3.0",
"hashPath": "system.linq.4.3.0.nupkg.sha512"
},
"System.Linq.Dynamic.Core/1.1.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VxPRhLUvdALtBE6vdO83LxjSc3RQ9CPYwLofqKg3BkOxgz8xb4Z4vr/YhoSQ5NGHR7m6yhMDzUNUWUEeSTCHmA==",
"path": "system.linq.dynamic.core/1.1.5",
"hashPath": "system.linq.dynamic.core.1.1.5.nupkg.sha512"
},
"System.Linq.Expressions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-PGKkrd2khG4CnlyJwxwwaWWiSiWFNBGlgXvJpeO0xCXrZ89ODrQ6tjEWS/kOqZ8GwEOUATtKtzp1eRgmYNfclg==",
"path": "system.linq.expressions/4.3.0",
"hashPath": "system.linq.expressions.4.3.0.nupkg.sha512"
},
"System.Linq.Queryable/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-In1Bmmvl/j52yPu3xgakQSI0YIckPUr870w4K5+Lak3JCCa8hl+my65lABOuKfYs4ugmZy25ScFerC4nz8+b6g==",
"path": "system.linq.queryable/4.3.0",
"hashPath": "system.linq.queryable.4.3.0.nupkg.sha512"
},
"System.ObjectModel/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-bdX+80eKv9bN6K4N+d77OankKHGn6CH711a6fcOpMQu2Fckp/Ft4L/kW9WznHpyR0NRAvJutzOMHNNlBGvxQzQ==",
"path": "system.objectmodel/4.3.0",
"hashPath": "system.objectmodel.4.3.0.nupkg.sha512"
},
"System.Reflection/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
"path": "system.reflection/4.3.0",
"hashPath": "system.reflection.4.3.0.nupkg.sha512"
},
"System.Reflection.Emit/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
"path": "system.reflection.emit/4.3.0",
"hashPath": "system.reflection.emit.4.3.0.nupkg.sha512"
},
"System.Reflection.Emit.ILGeneration/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-59tBslAk9733NXLrUJrwNZEzbMAcu8k344OYo+wfSVygcgZ9lgBdGIzH/nrg3LYhXceynyvTc8t5/GD4Ri0/ng==",
"path": "system.reflection.emit.ilgeneration/4.3.0",
"hashPath": "system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512"
},
"System.Reflection.Emit.Lightweight/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
"path": "system.reflection.emit.lightweight/4.3.0",
"hashPath": "system.reflection.emit.lightweight.4.3.0.nupkg.sha512"
},
"System.Reflection.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
"path": "system.reflection.extensions/4.3.0",
"hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512"
},
"System.Reflection.Primitives/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
"path": "system.reflection.primitives/4.3.0",
"hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
},
"System.Reflection.TypeExtensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7u6ulLcZbyxB5Gq0nMkQttcdBTx57ibzw+4IOXEfR+sXYQoHvjW5LTLyNr8O22UIMrqYbchJQJnos4eooYzYJA==",
"path": "system.reflection.typeextensions/4.3.0",
"hashPath": "system.reflection.typeextensions.4.3.0.nupkg.sha512"
},
"System.Resources.ResourceManager/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
"path": "system.resources.resourcemanager/4.3.0",
"hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
},
"System.Runtime/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
"path": "system.runtime/4.3.0",
"hashPath": "system.runtime.4.3.0.nupkg.sha512"
},
"System.Runtime.Extensions/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
"path": "system.runtime.extensions/4.3.0",
"hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
},
"System.Runtime.Loader/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DHMaRn8D8YCK2GG2pw+UzNxn/OHVfaWx7OTLBD/hPegHZZgcZh3H6seWegrC4BYwsfuGrywIuT+MQs+rPqRLTQ==",
"path": "system.runtime.loader/4.3.0",
"hashPath": "system.runtime.loader.4.3.0.nupkg.sha512"
},
"System.Text.Encoding/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
"path": "system.text.encoding/4.3.0",
"hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
},
"System.Threading/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
"path": "system.threading/4.3.0",
"hashPath": "system.threading.4.3.0.nupkg.sha512"
},
"System.Threading.Tasks/4.3.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
"path": "system.threading.tasks/4.3.0",
"hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
},
"Volo.Abp.Core/4.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ZMfrx0XAQB8hkQDr7yK7z+p9m48VmKxpEH0/B2k8QNK9/D+2CGa4pBJtwJfQocgm2lltI25NapgcIr5GG8bQJA==",
"path": "volo.abp.core/4.0.0",
"hashPath": "volo.abp.core.4.0.0.nupkg.sha512"
}
}
}

BIN
code/src/Shared/Win.Abp.Snowflakes/bin/Release/netcoreapp5/Win.Abp.Snowflakes.dll

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/bin/Release/netcoreapp5/Win.Abp.Snowflakes.pdb

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/bin/Release/netcoreapp5/ref/Win.Abp.Snowflakes.dll

Binary file not shown.

2
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig

@ -8,4 +8,4 @@ build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules = build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = build_property.RootNamespace =
build_property.ProjectDir = D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\ build_property.ProjectDir = E:\我的工作\B_BJBQJS\BJBQJS\code\src\Shared\Win.Abp.Snowflakes\

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.assets.cache

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.csproj.AssemblyReference.cache

Binary file not shown.

0
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.csproj.BuildWithSkipAnalyzers

1
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache

@ -1 +0,0 @@
45e6072ab5eb696ef5d62c419debca5b1894b3a0

72
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.csproj.FileListAbsolute.txt

@ -1,72 +0,0 @@
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.deps.json
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\ref\Win.Abp.Snowflakes.dll
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.AssemblyReference.cache
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfoInputs.cache
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfo.cs
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\ref\Win.Abp.Snowflakes.dll
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\pg\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.deps.json
D:\pg\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
D:\pg\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.AssemblyReference.cache
D:\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
D:\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfoInputs.cache
D:\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfo.cs
D:\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
D:\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
D:\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\refint\Win.Abp.Snowflakes.dll
D:\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\ref\Win.Abp.Snowflakes.dll
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.deps.json
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.AssemblyReference.cache
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfoInputs.cache
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfo.cs
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\refint\Win.Abp.Snowflakes.dll
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\长春项目\结算代码\pg\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\ref\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.deps.json
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.AssemblyReference.cache
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfoInputs.cache
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfo.cs
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\refint\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\长春项目\北京北汽结算项目\ABP4BJSettleAccount\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\ref\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.deps.json
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.AssemblyReference.cache
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfoInputs.cache
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfo.cs
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\refint\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\ref\Win.Abp.Snowflakes.dll
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.deps.json
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.AssemblyReference.cache
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfoInputs.cache
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfo.cs
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.dll
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\refint\Win.Abp.Snowflakes.dll
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Debug\netcoreapp5\ref\Win.Abp.Snowflakes.dll

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.csprojAssemblyReference.cache

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.dll

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/Win.Abp.Snowflakes.pdb

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/ref/Win.Abp.Snowflakes.dll

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Debug/netcoreapp5/refint/Win.Abp.Snowflakes.dll

Binary file not shown.

4
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/.NETCoreApp,Version=v5.0.AssemblyAttributes.cs

@ -1,4 +0,0 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v5.0", FrameworkDisplayName = ".NET 5.0")]

20
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.AssemblyInfo.cs

@ -1,20 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyTitleAttribute("Win.Abp.Snowflakes")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

1
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.AssemblyInfoInputs.cache

@ -1 +0,0 @@
dd45d7419542ed747e383f3acb2b9bf5ef266736

15
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig

@ -1,15 +0,0 @@
is_global = true
build_property.TargetFramework = netcoreapp5
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace =
<<<<<<< HEAD
build_property.ProjectDir = D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\
=======
build_property.ProjectDir = D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\
>>>>>>> 1c2946500765850db29fa7d216f5e55e2e4de888

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.assets.cache

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.csproj.AssemblyReference.cache

Binary file not shown.

5
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache

@ -1,5 +0,0 @@
<<<<<<< HEAD
490ed7a03a4d14bd9778d0cf635e6ea08e460be1
=======
dabb1a5d47fc58eca331ebf17c1e39cf211ca0c0
>>>>>>> 1c2946500765850db29fa7d216f5e55e2e4de888

51
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.csproj.FileListAbsolute.txt

@ -1,51 +0,0 @@
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.deps.json
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.dll
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\ref\Win.Abp.Snowflakes.dll
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.pdb
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.csproj.AssemblyReference.cache
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfoInputs.cache
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfo.cs
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.dll
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\ref\Win.Abp.Snowflakes.dll
G:\TIANHE\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.pdb
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.deps.json
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.dll
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\ref\Win.Abp.Snowflakes.dll
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.pdb
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.csproj.AssemblyReference.cache
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfoInputs.cache
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfo.cs
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.dll
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\ref\Win.Abp.Snowflakes.dll
C:\Users\Administrator\Source\Repos\Win.Sfs.SmartSettlementSystem.PG\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.pdb
<<<<<<< HEAD
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.deps.json
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.csproj.AssemblyReference.cache
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfoInputs.cache
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfo.cs
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\refint\Win.Abp.Snowflakes.dll
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\长春项目\北京北汽结算项目\NewBJSettleAccount\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\ref\Win.Abp.Snowflakes.dll
=======
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.deps.json
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.dll
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\bin\Release\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.csproj.AssemblyReference.cache
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.GeneratedMSBuildEditorConfig.editorconfig
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfoInputs.cache
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.AssemblyInfo.cs
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.csproj.CoreCompileInputs.cache
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.dll
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\refint\Win.Abp.Snowflakes.dll
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\Win.Abp.Snowflakes.pdb
D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Abp.Snowflakes\obj\Release\netcoreapp5\ref\Win.Abp.Snowflakes.dll
>>>>>>> 1c2946500765850db29fa7d216f5e55e2e4de888

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.dll

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/Win.Abp.Snowflakes.pdb

Binary file not shown.

BIN
code/src/Shared/Win.Abp.Snowflakes/obj/Release/netcoreapp5/ref/Win.Abp.Snowflakes.dll

Binary file not shown.

30
code/src/Shared/Win.Abp.Snowflakes/obj/Win.Abp.Snowflakes.csproj.nuget.dgspec.json

@ -1,23 +1,23 @@
{ {
"format": 1, "format": 1,
"restore": { "restore": {
"D:\\CODE\\BeiJinSettleAccount\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj": {} "E:\\我的工作\\B_BJBQJS\\BJBQJS\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj": {}
}, },
"projects": { "projects": {
"D:\\CODE\\BeiJinSettleAccount\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj": { "E:\\我的工作\\B_BJBQJS\\BJBQJS\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj": {
"version": "1.0.0", "version": "1.0.0",
"restore": { "restore": {
"projectUniqueName": "D:\\CODE\\BeiJinSettleAccount\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj", "projectUniqueName": "E:\\我的工作\\B_BJBQJS\\BJBQJS\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj",
"projectName": "Win.Abp.Snowflakes", "projectName": "Win.Abp.Snowflakes",
"projectPath": "D:\\CODE\\BeiJinSettleAccount\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj", "projectPath": "E:\\我的工作\\B_BJBQJS\\BJBQJS\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj",
"packagesPath": "C:\\Users\\AIJXZ\\.nuget\\packages\\", "packagesPath": "D:\\ProgramData\\NuGet\\packages",
"outputPath": "D:\\CODE\\BeiJinSettleAccount\\code\\src\\Shared\\Win.Abp.Snowflakes\\obj\\", "outputPath": "E:\\我的工作\\B_BJBQJS\\BJBQJS\\code\\src\\Shared\\Win.Abp.Snowflakes\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"fallbackFolders": [ "fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
], ],
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\AIJXZ\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\Administrator\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
], ],
@ -61,26 +61,12 @@
], ],
"assetTargetFallback": true, "assetTargetFallback": true,
"warn": true, "warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[5.0.0, 5.0.0]"
},
{
"name": "Microsoft.NETCore.App.Ref",
"version": "[5.0.0, 5.0.0]"
},
{
"name": "Microsoft.WindowsDesktop.App.Ref",
"version": "[5.0.0, 5.0.0]"
}
],
"frameworkReferences": { "frameworkReferences": {
"Microsoft.NETCore.App": { "Microsoft.NETCore.App": {
"privateAssets": "all" "privateAssets": "all"
} }
}, },
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.304\\RuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.200\\RuntimeIdentifierGraph.json"
} }
} }
} }

8
code/src/Shared/Win.Abp.Snowflakes/obj/Win.Abp.Snowflakes.csproj.nuget.g.props

@ -4,13 +4,13 @@
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess> <RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool> <RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile> <ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot> <NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">D:\ProgramData\NuGet\packages</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\AIJXZ\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders> <NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">D:\ProgramData\NuGet\packages;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle> <NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.6.0</NuGetToolVersion> <NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.5.0</NuGetToolVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' "> <ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\AIJXZ\.nuget\packages\" /> <SourceRoot Include="D:\ProgramData\NuGet\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" /> <SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup> </ItemGroup>
</Project> </Project>

28
code/src/Shared/Win.Abp.Snowflakes/obj/project.assets.json

@ -3033,23 +3033,23 @@
] ]
}, },
"packageFolders": { "packageFolders": {
"C:\\Users\\AIJXZ\\.nuget\\packages\\": {}, "D:\\ProgramData\\NuGet\\packages": {},
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {} "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
}, },
"project": { "project": {
"version": "1.0.0", "version": "1.0.0",
"restore": { "restore": {
"projectUniqueName": "D:\\CODE\\BeiJinSettleAccount\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj", "projectUniqueName": "E:\\我的工作\\B_BJBQJS\\BJBQJS\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj",
"projectName": "Win.Abp.Snowflakes", "projectName": "Win.Abp.Snowflakes",
"projectPath": "D:\\CODE\\BeiJinSettleAccount\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj", "projectPath": "E:\\我的工作\\B_BJBQJS\\BJBQJS\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj",
"packagesPath": "C:\\Users\\AIJXZ\\.nuget\\packages\\", "packagesPath": "D:\\ProgramData\\NuGet\\packages",
"outputPath": "D:\\CODE\\BeiJinSettleAccount\\code\\src\\Shared\\Win.Abp.Snowflakes\\obj\\", "outputPath": "E:\\我的工作\\B_BJBQJS\\BJBQJS\\code\\src\\Shared\\Win.Abp.Snowflakes\\obj\\",
"projectStyle": "PackageReference", "projectStyle": "PackageReference",
"fallbackFolders": [ "fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
], ],
"configFilePaths": [ "configFilePaths": [
"C:\\Users\\AIJXZ\\AppData\\Roaming\\NuGet\\NuGet.Config", "C:\\Users\\Administrator\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
], ],
@ -3093,26 +3093,12 @@
], ],
"assetTargetFallback": true, "assetTargetFallback": true,
"warn": true, "warn": true,
"downloadDependencies": [
{
"name": "Microsoft.AspNetCore.App.Ref",
"version": "[5.0.0, 5.0.0]"
},
{
"name": "Microsoft.NETCore.App.Ref",
"version": "[5.0.0, 5.0.0]"
},
{
"name": "Microsoft.WindowsDesktop.App.Ref",
"version": "[5.0.0, 5.0.0]"
}
],
"frameworkReferences": { "frameworkReferences": {
"Microsoft.NETCore.App": { "Microsoft.NETCore.App": {
"privateAssets": "all" "privateAssets": "all"
} }
}, },
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.304\\RuntimeIdentifierGraph.json" "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.200\\RuntimeIdentifierGraph.json"
} }
} }
} }

121
code/src/Shared/Win.Abp.Snowflakes/obj/project.nuget.cache

@ -1,71 +1,64 @@
{ {
"version": 2, "version": 2,
<<<<<<< HEAD "dgSpecHash": "Ub4JQ58b10+xiFEHhFzG6d6yEoGhQ90WlHa0QLExy5UwBYfOAou1jOGc006kixczlWN+OUEoirHCniYH+f7bpQ==",
"dgSpecHash": "nH1pRrQe3k1fNoF9X1jN0LTmtNwHI243FAtfoHxtwvv4NwVPUgW1N4eVt9Rh3jt7mxkxf8r8b0SCtQuENreyPg==",
=======
"dgSpecHash": "CugfBKjayiD+GhmotTe3At90iFNx0Pi6XhbVBO993irp5Dtb+LKaC/9V7bidoTRT9vBbQnaftq7cMvEHm+sOcQ==",
>>>>>>> 1c2946500765850db29fa7d216f5e55e2e4de888
"success": true, "success": true,
"projectFilePath": "D:\\CODE\\BeiJinSettleAccount\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj", "projectFilePath": "E:\\我的工作\\B_BJBQJS\\BJBQJS\\code\\src\\Shared\\Win.Abp.Snowflakes\\Win.Abp.Snowflakes.csproj",
"expectedPackageFiles": [ "expectedPackageFiles": [
"C:\\Users\\AIJXZ\\.nuget\\packages\\jetbrains.annotations\\2020.1.0\\jetbrains.annotations.2020.1.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\jetbrains.annotations\\2020.1.0\\jetbrains.annotations.2020.1.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.configuration\\5.0.0\\microsoft.extensions.configuration.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.configuration\\5.0.0\\microsoft.extensions.configuration.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\5.0.0\\microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.configuration.abstractions\\5.0.0\\microsoft.extensions.configuration.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.configuration.binder\\5.0.0\\microsoft.extensions.configuration.binder.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.configuration.binder\\5.0.0\\microsoft.extensions.configuration.binder.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.configuration.commandline\\5.0.0\\microsoft.extensions.configuration.commandline.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.configuration.commandline\\5.0.0\\microsoft.extensions.configuration.commandline.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.configuration.environmentvariables\\5.0.0\\microsoft.extensions.configuration.environmentvariables.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.configuration.environmentvariables\\5.0.0\\microsoft.extensions.configuration.environmentvariables.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\5.0.0\\microsoft.extensions.configuration.fileextensions.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.configuration.fileextensions\\5.0.0\\microsoft.extensions.configuration.fileextensions.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.configuration.json\\5.0.0\\microsoft.extensions.configuration.json.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.configuration.json\\5.0.0\\microsoft.extensions.configuration.json.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.configuration.usersecrets\\5.0.0\\microsoft.extensions.configuration.usersecrets.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.configuration.usersecrets\\5.0.0\\microsoft.extensions.configuration.usersecrets.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.dependencyinjection\\5.0.0\\microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.dependencyinjection\\5.0.0\\microsoft.extensions.dependencyinjection.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.dependencyinjection.abstractions\\5.0.0\\microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.dependencyinjection.abstractions\\5.0.0\\microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\5.0.0\\microsoft.extensions.fileproviders.abstractions.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.fileproviders.abstractions\\5.0.0\\microsoft.extensions.fileproviders.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\5.0.0\\microsoft.extensions.fileproviders.physical.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.fileproviders.physical\\5.0.0\\microsoft.extensions.fileproviders.physical.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\5.0.0\\microsoft.extensions.filesystemglobbing.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.filesystemglobbing\\5.0.0\\microsoft.extensions.filesystemglobbing.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.hosting.abstractions\\5.0.0\\microsoft.extensions.hosting.abstractions.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.hosting.abstractions\\5.0.0\\microsoft.extensions.hosting.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.localization\\5.0.0\\microsoft.extensions.localization.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.localization\\5.0.0\\microsoft.extensions.localization.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.localization.abstractions\\5.0.0\\microsoft.extensions.localization.abstractions.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.localization.abstractions\\5.0.0\\microsoft.extensions.localization.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.logging\\5.0.0\\microsoft.extensions.logging.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.logging\\5.0.0\\microsoft.extensions.logging.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.logging.abstractions\\5.0.0\\microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.logging.abstractions\\5.0.0\\microsoft.extensions.logging.abstractions.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.options\\5.0.0\\microsoft.extensions.options.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.options\\5.0.0\\microsoft.extensions.options.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.options.configurationextensions\\5.0.0\\microsoft.extensions.options.configurationextensions.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.options.configurationextensions\\5.0.0\\microsoft.extensions.options.configurationextensions.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.extensions.primitives\\5.0.0\\microsoft.extensions.primitives.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.extensions.primitives\\5.0.0\\microsoft.extensions.primitives.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.netcore.platforms\\1.1.0\\microsoft.netcore.platforms.1.1.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\nito.asyncex.context\\5.0.0\\nito.asyncex.context.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\nito.asyncex.context\\5.0.0\\nito.asyncex.context.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\nito.asyncex.coordination\\5.0.0\\nito.asyncex.coordination.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\nito.asyncex.coordination\\5.0.0\\nito.asyncex.coordination.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\nito.asyncex.tasks\\5.0.0\\nito.asyncex.tasks.5.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\nito.asyncex.tasks\\5.0.0\\nito.asyncex.tasks.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\nito.collections.deque\\1.0.4\\nito.collections.deque.1.0.4.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\nito.collections.deque\\1.0.4\\nito.collections.deque.1.0.4.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\nito.disposables\\2.0.0\\nito.disposables.2.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\nito.disposables\\2.0.0\\nito.disposables.2.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.collections.immutable\\1.7.1\\system.collections.immutable.1.7.1.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.collections.immutable\\1.7.1\\system.collections.immutable.1.7.1.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.componentmodel.annotations\\4.7.0\\system.componentmodel.annotations.4.7.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.componentmodel.annotations\\4.7.0\\system.componentmodel.annotations.4.7.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.linq.dynamic.core\\1.1.5\\system.linq.dynamic.core.1.1.5.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.linq.dynamic.core\\1.1.5\\system.linq.dynamic.core.1.1.5.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.linq.expressions\\4.3.0\\system.linq.expressions.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.linq.expressions\\4.3.0\\system.linq.expressions.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.linq.queryable\\4.3.0\\system.linq.queryable.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.linq.queryable\\4.3.0\\system.linq.queryable.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.objectmodel\\4.3.0\\system.objectmodel.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.objectmodel\\4.3.0\\system.objectmodel.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.reflection.emit\\4.3.0\\system.reflection.emit.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.reflection.emit\\4.3.0\\system.reflection.emit.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.reflection.emit.ilgeneration\\4.3.0\\system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.reflection.emit.ilgeneration\\4.3.0\\system.reflection.emit.ilgeneration.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.reflection.emit.lightweight\\4.3.0\\system.reflection.emit.lightweight.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.reflection.emit.lightweight\\4.3.0\\system.reflection.emit.lightweight.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.reflection.extensions\\4.3.0\\system.reflection.extensions.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.reflection.extensions\\4.3.0\\system.reflection.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.reflection.typeextensions\\4.3.0\\system.reflection.typeextensions.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.reflection.typeextensions\\4.3.0\\system.reflection.typeextensions.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.runtime.loader\\4.3.0\\system.runtime.loader.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.runtime.loader\\4.3.0\\system.runtime.loader.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\volo.abp.core\\4.0.0\\volo.abp.core.4.0.0.nupkg.sha512", "D:\\ProgramData\\NuGet\\packages\\volo.abp.core\\4.0.0\\volo.abp.core.4.0.0.nupkg.sha512"
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.windowsdesktop.app.ref\\5.0.0\\microsoft.windowsdesktop.app.ref.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.netcore.app.ref\\5.0.0\\microsoft.netcore.app.ref.5.0.0.nupkg.sha512",
"C:\\Users\\AIJXZ\\.nuget\\packages\\microsoft.aspnetcore.app.ref\\5.0.0\\microsoft.aspnetcore.app.ref.5.0.0.nupkg.sha512"
], ],
"logs": [] "logs": []
} }

BIN
code/src/Shared/Win.Sfs.Shared/bin/Debug/Win.Sfs.Shared.2.0.0.nupkg

Binary file not shown.

3660
code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.deps.json

File diff suppressed because it is too large

BIN
code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.dll

Binary file not shown.

BIN
code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Sfs.Shared.pdb

Binary file not shown.

BIN
code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Utils.dll

Binary file not shown.

BIN
code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/Win.Utils.pdb

Binary file not shown.

BIN
code/src/Shared/Win.Sfs.Shared/bin/Debug/netcoreapp5/ref/Win.Sfs.Shared.dll

Binary file not shown.

BIN
code/src/Shared/Win.Sfs.Shared/bin/Release/Win.Sfs.Shared.2.0.0.nupkg

Binary file not shown.

3660
code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/Win.Sfs.Shared.deps.json

File diff suppressed because it is too large

BIN
code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/Win.Sfs.Shared.dll

Binary file not shown.

BIN
code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/Win.Sfs.Shared.pdb

Binary file not shown.

BIN
code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/Win.Utils.dll

Binary file not shown.

BIN
code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/Win.Utils.pdb

Binary file not shown.

BIN
code/src/Shared/Win.Sfs.Shared/bin/Release/netcoreapp5/ref/Win.Sfs.Shared.dll

Binary file not shown.

23
code/src/Shared/Win.Sfs.Shared/obj/Debug/Win.Sfs.Shared.2.0.0.nuspec

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Win.Sfs.Shared</id>
<version>2.0.0</version>
<authors>Win.Sfs.Shared</authors>
<description>Package Description</description>
<dependencies>
<group targetFramework="net5.0">
<dependency id="Win.Utils" version="2.0.0" exclude="Build,Analyzers" />
<dependency id="Microsoft.AspNetCore.Mvc" version="2.2.0" exclude="Build,Analyzers" />
<dependency id="Volo.Abp.Caching" version="4.0.0" exclude="Build,Analyzers" />
<dependency id="Volo.Abp.Ddd.Application" version="4.0.0" exclude="Build,Analyzers" />
<dependency id="Volo.Abp.Ddd.Application.Contracts" version="4.0.0" exclude="Build,Analyzers" />
<dependency id="Volo.Abp.Ddd.Domain" version="4.0.0" exclude="Build,Analyzers" />
<dependency id="Volo.Abp.EntityFrameworkCore" version="4.0.0" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
<files>
<file src="D:\CODE\BeiJinSettleAccount\code\src\Shared\Win.Sfs.Shared\bin\Debug\netcoreapp5\Win.Sfs.Shared.dll" target="lib\net5.0\Win.Sfs.Shared.dll" />
</files>
</package>

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save