Эх сурвалжийг харах

药品和疫苗SOP冲突检测修改

klzhangweiya 4 сар өмнө
parent
commit
547a76d76c

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 1000396 - 135
SERVER/ChickenFarmV3/.script/sql/ChickenFarmDB_DEV.sql


+ 2 - 2
SERVER/ChickenFarmV3/vb-modules/vb-base/src/main/java/cn/vber/base/service/impl/VaccineDrugConflictServiceImpl.java

@@ -147,8 +147,8 @@ public class VaccineDrugConflictServiceImpl implements IVaccineDrugConflictServi
         LambdaQueryWrapper<VaccineDrugConflict> lqw = Wrappers.lambdaQuery(VaccineDrugConflict.class)
                 .eq(VaccineDrugConflict::getVaccineId, vaccineId)
                 .eq(VaccineDrugConflict::getDrugId, drugId)
-                .ge(VaccineDrugConflict::getStartAge, currentAge)
-                .le(VaccineDrugConflict::getEndAge, currentAge);
+                .le(VaccineDrugConflict::getStartAge, currentAge)
+                .ge(VaccineDrugConflict::getEndAge, currentAge);
         return baseMapper.selectVoList(lqw);
     }
 }

+ 0 - 1
SERVER/ChickenFarmV3/vb-modules/vb-breeding/src/main/java/cn/vber/breeding/service/impl/BatchDrugServiceImpl.java

@@ -139,7 +139,6 @@ public class BatchDrugServiceImpl implements IBatchDrugService {
             throw new ServiceException("批次不存在: " + batchNum);
         }
 
-
         //2. 获取该批次现有的疫苗SOP中的所有疫苗
         List<VaccineSopDetailVo> vaccineSopDetailVos = findVaccinesByBatchNum(batchNum);
         List<Long> vaccineIds = (vaccineSopDetailVos==null||vaccineSopDetailVos.isEmpty())? new ArrayList<>() : vaccineSopDetailVos.stream().map(VaccineSopDetailVo::getVaccineId).toList();

+ 1 - 0
UI/VB.VUE/src/core/services/RequestService.ts

@@ -149,6 +149,7 @@ Rs.interceptors.response.use(
 			return data
 		}
 		if (code === HttpStatus.UNAUTHORIZED) {
+			console.log("未授权", isReLogin)
 			if (!isReLogin.show) {
 				isReLogin.show = true
 				msgUtil

+ 2 - 0
UI/VB.VUE/src/router/index.ts

@@ -134,6 +134,7 @@ router.beforeEach((to, _from, next) => {
 				authStore
 					.getInfo()
 					.then(() => {
+						isReLogin.show = false
 						if (to.path.search("/redirect-tenant") == 0) {
 							next({ ...to, replace: true })
 						} else {
@@ -143,6 +144,7 @@ router.beforeEach((to, _from, next) => {
 						}
 					})
 					.catch((err) => {
+						isReLogin.show = false
 						authStore.logout().then(() => {
 							message.msgError(err)
 							next({ path: import.meta.env.VITE_APP_CONTEXT_PATH + "home" })

+ 3 - 0
UI/VB.VUE/src/stores/_auth.ts

@@ -3,6 +3,7 @@ import appStore from "@s"
 import apis from "@/api"
 import type { User } from "@@/types/User"
 import type { LoginData } from "@@/types/Account"
+import { isReLogin } from "@@/services/RequestService"
 
 export const useAuthStore = defineStore("auth", () => {
 	const errors = ref({})
@@ -62,6 +63,7 @@ export const useAuthStore = defineStore("auth", () => {
 				.login(loginData)
 				.then(({ data }) => {
 					setToken(data.access_token)
+					//isReLogin.show = false // 登录成功后重置重新登录标志
 					resolve(true)
 				})
 				.catch((error) => {
@@ -79,6 +81,7 @@ export const useAuthStore = defineStore("auth", () => {
 				.callback(loginData)
 				.then(({ data }) => {
 					setToken(data.access_token)
+					//isReLogin.show = false // 登录成功后重置重新登录标志
 					resolve(true)
 				})
 				.catch((error) => {

+ 14 - 2
UI/VB.VUE/src/views/base/drugSop/index.vue

@@ -8,6 +8,7 @@ const modalRef = ref()
 const modalDetailRef = ref()
 const drugOptions = ref([])
 const drugSopSelectId = ref(0)
+const drugSopSelectName = ref("")
 apis.base.drugApi.query({}).then((res: any) => {
 	drugOptions.value = res.map((item) => {
 		return {
@@ -155,6 +156,11 @@ const detailOpts = reactive({
 	permission: "base:drugSopDetail",
 	handleBtns: [],
 	handleFuns: {
+		handleCreate: () => {
+			detailForm.value = detailEmptyFormData.value
+			tableDetailRef.value.defaultHandleFuns.handleCreate()
+			detailForm.value.drugSopName = drugSopSelectName.value
+		},
 		handleUpdate: () => {
 			const row = tableDetailRef.value.getSelected()
 			handleDetailUpdate(row)
@@ -173,7 +179,7 @@ const detailOpts = reactive({
 	modalTitle: "药品SOP详情",
 	formItems: [
 		{
-			field: "drugSopId",
+			field: "drugSopName",
 			label: "药品SOP",
 			class: "w-100",
 			required: true,
@@ -249,6 +255,7 @@ const detailOpts = reactive({
 	detailEmptyFormData: {
 		id: undefined,
 		drugSopId: undefined,
+		drugSopName: undefined,
 		drugId: undefined,
 		startAge: undefined,
 		endAge: undefined,
@@ -342,6 +349,7 @@ function submitDetailForm() {
 // }
 function handleCheckBoxChange(isChecked: boolean, row: any) {
 	drugSopSelectId.value = isChecked ? row.id : 0
+	drugSopSelectName.value = isChecked ? row.sopName : ""
 	detailQueryParams.value.drugSopId = isChecked ? row.id : undefined
 	detailForm.value.drugSopId = isChecked ? row.id : undefined
 	handleDetailQuery(detailQueryParams.value)
@@ -350,6 +358,9 @@ function handleQuerySuccess() {
 	const data = tableRef.value.getFirstRowData()
 	tableRef.value.setSelected(data, true)
 }
+function handleDetailEdit(data: any) {
+	data.drugSopName = drugSopSelectName.value
+}
 </script>
 <template>
 	<div class="app-container">
@@ -432,7 +443,8 @@ function handleQuerySuccess() {
 					:check-multiple="true"
 					:noPage="true"
 					:reset-search-form-fun="detailOpts.resetForm"
-					:custom-search-fun="handleQuery">
+					:custom-search-fun="handleQuery"
+					@form-edit="handleDetailEdit">
 					<template #actions="{ row }">
 						<vb-tooltip content="修改" placement="top">
 							<el-button

+ 5 - 5
UI/VB.VUE/src/views/base/feed/index.vue

@@ -95,11 +95,11 @@ const opts = reactive({
 			class: "w-100",
 			required: false,
 			placeholder: "请输入饲料成分(配比)",
-			component: "I",
-			props: {
-				type: "textarea",
-				rows: 5
-			}
+			component: "I"
+			// props: {
+			// 	type: "textarea",
+			// 	rows: 5
+			// }
 		},
 		{
 			field: "status",

+ 23 - 4
UI/VB.VUE/src/views/base/feedSop/index.vue

@@ -8,6 +8,7 @@ const modalRef = ref()
 const modalDetailRef = ref()
 const feedOptions = ref([])
 const feedSopSelectId = ref(0)
+const feedSopSelectName = ref("")
 apis.base.feedApi.query({}).then((res: any) => {
 	feedOptions.value = res.map((item) => {
 		return {
@@ -210,6 +211,9 @@ const detailOpts = reactive({
 	permission: "base:feedSopDetail",
 	handleBtns: [],
 	handleFuns: {
+		handleCreate: () => {
+			handleDetailCreate()
+		},
 		handleUpdate: () => {
 			const row = tableDetailRef.value.getSelected()
 			handleDetailUpdate(row)
@@ -228,11 +232,11 @@ const detailOpts = reactive({
 	modalTitle: "饲养指标详情",
 	formItems: [
 		{
-			field: "feedSopId",
-			label: "饲养指标ID",
+			field: "feedSopName",
+			label: "饲养指标",
 			class: "w-100",
 			required: true,
-			placeholder: "请输入饲养指标ID",
+			placeholder: "请输入饲养指标",
 			component: "I",
 			props: {
 				disabled: true
@@ -312,6 +316,7 @@ const detailOpts = reactive({
 	detailEmptyFormData: {
 		id: undefined,
 		feedSopId: undefined,
+		feedSopName: undefined,
 		startAge: undefined,
 		endAge: undefined,
 		feedId: undefined,
@@ -375,14 +380,27 @@ const detailForm = ref<any>(detailEmptyFormData.value)
 // }
 function handleCheckBoxChange(isChecked: boolean, row: any) {
 	feedSopSelectId.value = isChecked ? row.id : 0
+	feedSopSelectName.value = isChecked ? row.sopName : ""
 	detailQueryParams.value.feedSopId = isChecked ? row.id : undefined
 	detailForm.value.feedSopId = isChecked ? row.id : undefined
+
 	handleDetailQuery(detailQueryParams.value)
 }
 function handleQuerySuccess() {
 	const data = tableRef.value.getFirstRowData()
 	tableRef.value.setSelected(data, true)
 }
+function handleDetailCreate() {
+	detailForm.value = detailEmptyFormData.value
+	tableDetailRef.value.defaultHandleFuns.handleCreate()
+	nextTick(() => {
+		detailForm.value.feedSopId = feedSopSelectId.value
+		detailForm.value.feedSopName = feedSopSelectName.value
+	})
+}
+function handleDetailEdit(data: any) {
+	data.feedSopName = feedSopSelectName.value
+}
 function handleDetailUpdate(row: any) {
 	tableDetailRef.value.defaultHandleFuns.handleUpdate("", row)
 }
@@ -492,7 +510,8 @@ function submitDetailForm() {
 					v-model:form-data="detailForm"
 					v-model:query-params="detailQueryParams"
 					:noPage="true"
-					:check-multiple="true">
+					:check-multiple="true"
+					@form-edit="handleDetailEdit">
 					<template #gender="{ row }">
 						<DictTag type="chicken_gender" :value-is-number="true" :value="row.gender"></DictTag>
 					</template>

+ 17 - 4
UI/VB.VUE/src/views/base/vaccineSop/index.vue

@@ -8,7 +8,7 @@ const modalRef = ref()
 const modalDetailRef = ref()
 const vaccineOptions = ref([])
 const vaccineSopSelectId = ref(0)
-
+const vaccineSopSelectName = ref("")
 apis.base.vaccineApi.query({}).then((res: any) => {
 	vaccineOptions.value = res.map((item) => {
 		return {
@@ -169,6 +169,14 @@ const detailOpts = reactive({
 	permission: "base:vaccineSopDetail",
 	handleBtns: [],
 	handleFuns: {
+		handleCreate: () => {
+			detailForm.value = detailEmptyFormData.value
+			tableDetailRef.value.defaultHandleFuns.handleCreate()
+			nextTick(() => {
+				detailForm.value.vaccineSopId = vaccineSopSelectId.value
+				detailForm.value.vaccineSopName = vaccineSopSelectName.value
+			})
+		},
 		handleUpdate: () => {
 			const row = tableDetailRef.value.getSelected()
 			handleDetailUpdate(row)
@@ -187,7 +195,7 @@ const detailOpts = reactive({
 	modalTitle: "免疫SOP详情",
 	formItems: [
 		{
-			field: "vaccineSopId",
+			field: "vaccineSopName",
 			label: "免疫SOP",
 			class: "w-100",
 			required: true,
@@ -264,6 +272,7 @@ const detailOpts = reactive({
 	detailEmptyFormData: {
 		id: undefined,
 		vaccineSopId: undefined,
+		vaccineSopName: undefined,
 		startAge: undefined,
 		endAge: undefined,
 		vaccineId: undefined,
@@ -315,7 +324,9 @@ function handleDetailQuery(query?: any) {
 	query = query || tableDetailRef.value?.getQueryParams() || detailQueryParams.value
 	tableDetailRef.value?.query(query)
 }
-
+function handleDetailEdit(data: any) {
+	data.vaccineSopName = vaccineSopSelectName.value
+}
 /** 修改按钮操作 */
 function handleDetailUpdate(row: any) {
 	tableDetailRef.value.defaultHandleFuns.handleUpdate("", row)
@@ -351,6 +362,7 @@ function submitDetailForm() {
 function handleCheckBoxChange(isChecked: boolean, row: any) {
 	if (isChecked) {
 		vaccineSopSelectId.value = row.id
+		vaccineSopSelectName.value = row.sopName
 		detailQueryParams.value.vaccineSopId = row.id
 		detailForm.value.vaccineSopId = row.id
 	} else {
@@ -447,7 +459,8 @@ function handleQuerySuccess() {
 					v-model:query-params="detailQueryParams"
 					:check-multiple="true"
 					:noPage="true"
-					:reset-search-form-fun="detailOpts.resetForm">
+					:reset-search-form-fun="detailOpts.resetForm"
+					@form-edit="handleDetailEdit">
 					<template #actions="{ row }">
 						<vb-tooltip content="修改" placement="top">
 							<el-button

+ 15 - 12
UI/VB.VUE/src/views/breeding/batch/index.vue

@@ -586,7 +586,7 @@ function submitCullForm() {
 								</template>
 							</el-button>
 						</vb-tooltip>
-						<vb-tooltip content="绑定SOP" placement="top">
+						<vb-tooltip content="绑定SOP" placement="top" v-if="row.status !== 2">
 							<el-dropdown
 								trigger="hover"
 								class="m-2"
@@ -605,25 +605,28 @@ function submitCullForm() {
 								</template>
 							</el-dropdown>
 						</vb-tooltip>
-						<vb-tooltip content="删除" placement="top">
+						<vb-tooltip content="批次淘汰" placement="top" v-if="row.status !== 2">
 							<el-button
 								link
 								type="primary"
-								@click="handleDelete([row])"
-								v-hasPermission="'breeding:batch:remove'">
+								@click="handleEliminate(row)"
+								v-hasPermission="'breeding:batch:edit'">
 								<template #icon>
-									<VbIcon icon-name="trash-square" icon-type="duotone" class="fs-3"></VbIcon>
+									<VbIcon
+										icon-name="cross-circle"
+										icon-type="solid"
+										class="fs-3 text-info"></VbIcon>
 								</template>
 							</el-button>
 						</vb-tooltip>
-						<vb-tooltip content="批次淘汰" placement="top" v-if="row.status !== 2">
+						<vb-tooltip content="删除" placement="top">
 							<el-button
 								link
 								type="primary"
-								@click="handleEliminate(row)"
-								v-hasPermission="'breeding:batch:edit'">
+								@click="handleDelete([row])"
+								v-hasPermission="'breeding:batch:remove'">
 								<template #icon>
-									<VbIcon icon-name="delete-folder" icon-type="duotone" class="fs-3"></VbIcon>
+									<VbIcon icon-name="trash-square" icon-type="duotone" class="fs-3"></VbIcon>
 								</template>
 							</el-button>
 						</vb-tooltip>
@@ -653,9 +656,9 @@ function submitCullForm() {
 		<SopSelectModal ref="sopSelectModalRef" @confirm="handleSopBindConfirm" />
 
 		<!-- SOP详细查看模态框 -->
-		<FeedSopDetailModal ref="feedSopDetailModalRef" :sop-id="showFeedSopId" />
-		<DrugSopDetailModal ref="drugSopDetailModalRef" :sop-id="showDrugSopId" />
-		<VaccineSopDetailModal ref="vaccineSopDetailModalRef" :sop-id="showVaccineSopId" />
+		<FeedSopDetailModal ref="feedSopDetailModalRef" :feed-sop-id="showFeedSopId" />
+		<DrugSopDetailModal ref="drugSopDetailModalRef" :drug-sop-id="showDrugSopId" />
+		<VaccineSopDetailModal ref="vaccineSopDetailModalRef" :vaccine-sop-id="showVaccineSopId" />
 	</div>
 </template>
 

+ 1 - 0
UI/VB.VUE/src/views/common/modal/drugSopDetailModal.vue

@@ -49,6 +49,7 @@ const columns = [
 ]
 
 function handleQuery() {
+	console.log(props.drugSopId)
 	queryParams.value.drugSopId = props.drugSopId
 	tableRef.value?.query(queryParams.value)
 }

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно