fix(inspection): 修复检查时间格式和计划执行相关功能

- 修复检查时间查询时添加了正确的开始和结束时间格式 (00:00:00 和 23:59:59)
- 修复检查时间显示时添加了空值判断,避免显示异常
- 修复检查人员显示时添加了联系电话信息
- 移除了检查视图页面的打印按钮
- 修复计划执行详情页面跳转时传递了正确的类型参数
- 修复计划管理页面的查询参数传递和格式化问题
- 优化了计划执行记录页面的部门选择器配置
- 修复了计划状态判断逻辑和相关显示问题
- 添加了计划管理页面的权限控制参数传递
master
fangjiakai 2026-01-07 09:55:28 +08:00
parent d21c39108f
commit e91eabcd55
16 changed files with 142 additions and 128 deletions

View File

@ -9,8 +9,8 @@ module.exports = {
// 应用后端分支名称,部署上线需要 // 应用后端分支名称,部署上线需要
javaGitBranch: "<branch-name>", javaGitBranch: "<branch-name>",
// 接口服务地址 // 接口服务地址
// API_HOST: "http://192.168.20.100:30140", API_HOST: "http://192.168.20.100:30140",
API_HOST: "https://gbs-gateway.qhdsafety.com", // API_HOST: "https://gbs-gateway.qhdsafety.com",
}, },
production: { production: {
// 应用后端分支名称,部署上线需要 // 应用后端分支名称,部署上线需要
@ -25,8 +25,8 @@ module.exports = {
contextInject: { contextInject: {
// 应用Key // 应用Key
appKey: "", appKey: "",
// fileUrl: "http://192.168.20.240:9787/mnt/", fileUrl: "http://192.168.20.240:9787/mnt/",
fileUrl: "https://jpfz.qhdsafety.com/gbsFileTest/", // fileUrl: "https://jpfz.qhdsafety.com/gbsFileTest/",
}, },
// public/index.html注入全局变量 // public/index.html注入全局变量
windowInject: { windowInject: {

View File

@ -16,8 +16,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], { const { tableProps, getData } = useTable(props["inspectionList"], {
form, form,
transform: formData => ({ transform: formData => ({
checkStartTime: formData.checkTime?.[0], checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1], checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}), }),
params: { status: "400" }, params: { status: "400" },
}); });
@ -51,7 +51,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" }, { title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 }, { title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ title: "检查类型", dataIndex: "typeName" }, { title: "检查类型", dataIndex: "typeName" },
{ title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) }, { title: "检查时间", width: 200, render: (_, record) => (record.timeStart ? `${record.timeStart}${record.timeEnd}` : "") },
{ title: "检查状态", dataIndex: "status", render: () => "待验收" }, { title: "检查状态", dataIndex: "status", render: () => "待验收" },
{ title: "发现隐患数", dataIndex: "hiddenNumber" }, { title: "发现隐患数", dataIndex: "hiddenNumber" },
{ {

View File

@ -16,8 +16,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], { const { tableProps, getData } = useTable(props["inspectionList"], {
form, form,
transform: formData => ({ transform: formData => ({
checkStartTime: formData.checkTime?.[0], checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1], checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}), }),
params: { status: "301" }, params: { status: "301" },
}); });
@ -51,7 +51,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" }, { title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 }, { title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ title: "检查类型", dataIndex: "typeName" }, { title: "检查类型", dataIndex: "typeName" },
{ title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) }, { title: "检查时间", width: 200, render: (_, record) => (record.timeStart ? `${record.timeStart}${record.timeEnd}` : "") },
{ title: "检查状态", dataIndex: "status", render: () => "待指派" }, { title: "检查状态", dataIndex: "status", render: () => "待指派" },
{ title: "发现隐患数", dataIndex: "hiddenNumber" }, { title: "发现隐患数", dataIndex: "hiddenNumber" },
{ {

View File

@ -28,8 +28,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], { const { tableProps, getData } = useTable(props["inspectionList"], {
form, form,
transform: formData => ({ transform: formData => ({
checkStartTime: formData.checkTime?.[0], checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1], checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}), }),
params: { status: "700" }, params: { status: "700" },
}); });
@ -64,7 +64,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" }, { title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 }, { title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ title: "检查类型", dataIndex: "typeName" }, { title: "检查类型", dataIndex: "typeName" },
{ title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) }, { title: "检查时间", width: 200, render: (_, record) => (record.timeStart ? `${record.timeStart}${record.timeEnd}` : "") },
{ title: "检查状态", dataIndex: "status", render: () => "被检查单位负责人申辩" }, { title: "检查状态", dataIndex: "status", render: () => "被检查单位负责人申辩" },
{ title: "发现隐患数", dataIndex: "hiddenNumber" }, { title: "发现隐患数", dataIndex: "hiddenNumber" },
{ {
@ -263,27 +263,31 @@ function DefenseRecordModalComponent(props) {
columns={[ columns={[
{ title: "申辩时间", dataIndex: "createTime", width: 200 }, { title: "申辩时间", dataIndex: "createTime", width: 200 },
{ title: "申辩描述", dataIndex: "content" }, { title: "申辩描述", dataIndex: "content" },
{ title: "申辩状态", dataIndex: "isPass", render: (_, record) => ( {
<> title: "申辩状态", dataIndex: "isPass", render: (_, record) => (
<div>{record.isPass === 0 && "未审批"}</div> <>
<div>{record.isPass === 1 && "通过"}</div> <div>{record.isPass === 0 && "未审批"}</div>
<div>{record.isPass === 2 && "未通过"}</div> <div>{record.isPass === 1 && "通过"}</div>
</> <div>{record.isPass === 2 && "未通过"}</div>
) }, </>
)
},
{ title: "签字图片", dataIndex: "signature", render: (_, record) => (record.signature && <Image src={getFileUrl() + record.signature} width={100} height={100} />) }, { title: "签字图片", dataIndex: "signature", render: (_, record) => (record.signature && <Image src={getFileUrl() + record.signature} width={100} height={100} />) },
{ title: "申辩附件名称", dataIndex: "name", width: 200, render: (_, record) => record.files?.[0]?.fileName || "无" }, { title: "申辩附件名称", dataIndex: "name", width: 200, render: (_, record) => record.files?.[0]?.fileName || "无" },
{ title: "申辩附件", dataIndex: "url", render: (_, record) => ( {
record.files?.[0]?.filePath && ( title: "申辩附件", dataIndex: "url", render: (_, record) => (
<Button record.files?.[0]?.filePath && (
type="link" <Button
onClick={() => { type="link"
downloadFile({ url: record.files?.[0]?.filePath, name: record.files?.[0]?.fileName || "无" }); onClick={() => {
}} downloadFile({ url: record.files?.[0]?.filePath, name: record.files?.[0]?.fileName || "无" });
> }}
下载 >
</Button> 下载
</Button>
)
) )
) }, },
{ title: "检查人签字", dataIndex: "checkSign", render: (_, record) => (record.checkSign && <Image src={getFileUrl() + record.checkSign} width={100} height={100} />) }, { title: "检查人签字", dataIndex: "checkSign", render: (_, record) => (record.checkSign && <Image src={getFileUrl() + record.checkSign} width={100} height={100} />) },
{ title: "检查人意见", dataIndex: "checkRemarks" }, { title: "检查人意见", dataIndex: "checkRemarks" },
{ title: "审批时间", dataIndex: "checkSignTime", width: 200 }, { title: "审批时间", dataIndex: "checkSignTime", width: 200 },

View File

@ -25,8 +25,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], { const { tableProps, getData } = useTable(props["inspectionList"], {
form, form,
transform: formData => ({ transform: formData => ({
checkStartTime: formData.checkTime?.[0], checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1], checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}), }),
params: { status: "300" }, params: { status: "300" },
}); });
@ -60,7 +60,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" }, { title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 }, { title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ title: "检查类型", dataIndex: "typeName" }, { title: "检查类型", dataIndex: "typeName" },
{ title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) }, { title: "检查时间", width: 200, render: (_, record) => (record.timeStart ? `${record.timeStart}${record.timeEnd}` : "") },
{ title: "检查状态", dataIndex: "status", render: () => "待确认" }, { title: "检查状态", dataIndex: "status", render: () => "待确认" },
{ title: "发现隐患数", dataIndex: "hiddenNumber" }, { title: "发现隐患数", dataIndex: "hiddenNumber" },
{ {
@ -158,7 +158,7 @@ function ConfirmModalComponent(props) {
label: "是否申辩", label: "是否申辩",
render: FORM_ITEM_RENDER_ENUM.RADIO, render: FORM_ITEM_RENDER_ENUM.RADIO,
items: [{ bianma: "2", name: "是" }, { bianma: "1", name: "否" }], items: [{ bianma: "2", name: "是" }, { bianma: "1", name: "否" }],
componentProps:{ componentProps: {
disabled: props.hiddenNumber === 0, disabled: props.hiddenNumber === 0,
} }
}, },

View File

@ -320,6 +320,8 @@ function Add(props) {
values={{ values={{
planType: query.planId ? 1 : 0, planType: query.planId ? 1 : 0,
planId: query.planId, planId: query.planId,
type:query.type,
typeName:query.typeName,
situationList: [{ content: undefined }], situationList: [{ content: undefined }],
}} }}
loading={deleteFileLoading || getFileLoading || uploadFileLoading || props.inspection.inspectionLoading} loading={deleteFileLoading || getFileLoading || uploadFileLoading || props.inspection.inspectionLoading}
@ -399,6 +401,7 @@ function Add(props) {
dictValue="inspectionType" dictValue="inspectionType"
onlyLastLevel onlyLastLevel
onGetLabel={label => form.setFieldValue("typeName", label)} onGetLabel={label => form.setFieldValue("typeName", label)}
disabled={!!query.planId}
/> />
), ),
formItemProps: { labelCol: { span: 6 } }, formItemProps: { labelCol: { span: 6 } },
@ -433,6 +436,7 @@ function Add(props) {
label: "检查人员部门", label: "检查人员部门",
render: ( render: (
<DepartmentSelectTree <DepartmentSelectTree
searchType={props.searchType}
onChange={() => { onChange={() => {
form.setFieldValue(["inspectorList", field.name, "userId"], ""); form.setFieldValue(["inspectorList", field.name, "userId"], "");
form.setFieldValue(["inspectorList", field.name, "userName"], ""); form.setFieldValue(["inspectorList", field.name, "userName"], "");

View File

@ -28,8 +28,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], { const { tableProps, getData } = useTable(props["inspectionList"], {
form, form,
transform: formData => ({ transform: formData => ({
checkStartTime: formData.checkTime?.[0], checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1], checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}), }),
params: { status: "", planId: query.planId, entrance: query.planId ? "2" : "1", planType: query.planId ? 1 : 0 }, params: { status: "", planId: query.planId, entrance: query.planId ? "2" : "1", planType: query.planId ? 1 : 0 },
}); });
@ -63,7 +63,7 @@ function List(props) {
type="primary" type="primary"
icon={<AddIcon />} icon={<AddIcon />}
onClick={() => { onClick={() => {
props.history.push(`./add?planId=${query.planId || ""}`); props.history.push(`./add?planId=${query.planId || ""}&type=${query.type || ""}&typeName=${query.typeName || ""}`);
}} }}
> >
新增 新增

View File

@ -23,8 +23,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], { const { tableProps, getData } = useTable(props["inspectionList"], {
form, form,
transform: formData => ({ transform: formData => ({
checkStartTime: formData.checkTime?.[0], checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1], checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}), }),
params: { status: "200" }, params: { status: "200" },
}); });
@ -58,7 +58,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" }, { title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 }, { title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ title: "检查类型", dataIndex: "typeName" }, { title: "检查类型", dataIndex: "typeName" },
{ title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) }, { title: "检查时间", width: 200, render: (_, record) => (record.timeStart ? `${record.timeStart}${record.timeEnd}` : "") },
{ title: "检查状态", dataIndex: "status", render: () => "待核实" }, { title: "检查状态", dataIndex: "status", render: () => "待核实" },
{ title: "发现隐患数", dataIndex: "hiddenNumber" }, { title: "发现隐患数", dataIndex: "hiddenNumber" },
{ {

View File

@ -39,8 +39,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], { const { tableProps, getData } = useTable(props["inspectionList"], {
form, form,
transform: formData => ({ transform: formData => ({
checkStartTime: formData.checkTime?.[0], checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1], checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}), }),
params: { params: {
status: "", status: "",
@ -169,7 +169,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" }, { title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 }, { title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ title: "检查类型", dataIndex: "typeName" }, { title: "检查类型", dataIndex: "typeName" },
{ title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) }, { title: "检查时间", width: 200, render: (_, record) => (record.timeStart ? `${record.timeStart}${record.timeEnd}` : "") },
{ {
title: "检查状态", title: "检查状态",
dataIndex: "status", dataIndex: "status",

View File

@ -61,7 +61,7 @@ function InspectionView(props) {
} }
} }
data.inspectorVerificationList.forEach((item) => { data.inspectorVerificationList.forEach((item) => {
setCurrentInspectorUserName(prev => [...prev, item.userName || ""]); setCurrentInspectorUserName(prev => [...prev, `${item.userName}(${item.phone})` || ""]);
}); });
setInfo(data); setInfo(data);
const { data: hiddenList } = await props["hiddenList"]({ foreignKey: query.inspectionId, pageIndex: 1, pageSize: 999 }); const { data: hiddenList } = await props["hiddenList"]({ foreignKey: query.inspectionId, pageIndex: 1, pageSize: 999 });
@ -72,7 +72,7 @@ function InspectionView(props) {
}, []); }, []);
return ( return (
<Page headerTitle="查看" extraActionButtons={<Button type="primary" onClick={handlePrint}>打印</Button>}> <Page headerTitle="查看">
<Spin spinning={props.inspection.inspectionLoading || getFileLoading}> <Spin spinning={props.inspection.inspectionLoading || getFileLoading}>
<div ref={contentRef}> <div ref={contentRef}>
<Divider orientation="left"> <Divider orientation="left">

View File

@ -99,7 +99,7 @@ function List(props) {
<Button <Button
type="link" type="link"
onClick={() => { onClick={() => {
props.history.push(`./inspection/list?planId=${record.id}`); props.history.push(`./inspection/list?planId=${record.id}&type=${record.planType}&typeName=${record.planTypeName}`);
}} }}
> >
发起检查 发起检查

View File

@ -1,8 +1,8 @@
import { Permission } from "@cqsjjb/jjb-common-decorator/permission"; import {Permission} from "@cqsjjb/jjb-common-decorator/permission";
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import {Connect} from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, message, Modal, Space } from "antd"; import {Button, Form, message, Modal, Space} from "antd";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { useEffect, useState } from "react"; import {useEffect, useState} from "react";
import FormBuilder from "zy-react-library/components/FormBuilder"; import FormBuilder from "zy-react-library/components/FormBuilder";
import AddIcon from "zy-react-library/components/Icon/AddIcon"; import AddIcon from "zy-react-library/components/Icon/AddIcon";
import Page from "zy-react-library/components/Page"; import Page from "zy-react-library/components/Page";
@ -10,25 +10,25 @@ import Search from "zy-react-library/components/Search";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj"; import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary"; import DictionarySelectTree from "zy-react-library/components/SelectTree/Dictionary";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender"; import {FORM_ITEM_RENDER_ENUM} from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useGetUserInfo from "zy-react-library/hooks/useGetUserInfo"; import useGetUserInfo from "zy-react-library/hooks/useGetUserInfo";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
import { getLabelName, validatorEndTime } from "zy-react-library/utils"; import {getLabelName, validatorEndTime} from "zy-react-library/utils";
import { NS_PLAN } from "~/enumerate/namespace"; import {NS_PLAN} from "~/enumerate/namespace";
import ViewInfo from "~/pages/Container/BranchCompany/Plan/ViewInfo"; import ViewInfo from "~/pages/Container/BranchCompany/Plan/ViewInfo";
function List(props) { function List(props) {
const query = useGetUrlQuery(); const query = useGetUrlQuery();
const [form] = Form.useForm(); const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["planList"], { const defaultParams = {};
if (query.corpId) defaultParams.corpId = query.corpId;
if (query.startTime) defaultParams.startTime = query.startTime;
if (query.endTime) defaultParams.endTime = query.endTime;
if (query.completedOnly) defaultParams.completedOnly = query.completedOnly;
const {tableProps, getData} = useTable(props["planList"], {
form, form,
params: { params: {...defaultParams},
corpId: query.corpId,
startTime: query.startTime,
endTime: query.endTime,
completedOnly: query.completedOnly,
},
}); });
const [addModalOpen, setAddModalOpen] = useState(false); const [addModalOpen, setAddModalOpen] = useState(false);
@ -40,7 +40,7 @@ function List(props) {
title: "删除确认", title: "删除确认",
content: "确定要删除吗?", content: "确定要删除吗?",
onOk: async () => { onOk: async () => {
const { success } = await props["planDelete"]({ id }); const {success} = await props["planDelete"]({id});
if (success) { if (success) {
message.success("删除成功"); message.success("删除成功");
getData(); getData();
@ -56,11 +56,11 @@ function List(props) {
{ {
name: "planType", name: "planType",
label: "计划类型", label: "计划类型",
render: (<DictionarySelectTree dictValue="inspectionType" onlyLastLevel />), render: (<DictionarySelectTree dictValue="inspectionType" onlyLastLevel/>),
}, },
{ name: "planName", label: "计划名称" }, {name: "planName", label: "计划名称"},
{ name: "startTime", label: "计划开始时间", render: FORM_ITEM_RENDER_ENUM.DATE }, {name: "startTime", label: "计划开始时间", render: FORM_ITEM_RENDER_ENUM.DATE},
{ name: "endTime", label: "计划结束时间", render: FORM_ITEM_RENDER_ENUM.DATE }, {name: "endTime", label: "计划结束时间", render: FORM_ITEM_RENDER_ENUM.DATE},
]} ]}
form={form} form={form}
onFinish={getData} onFinish={getData}
@ -71,7 +71,7 @@ function List(props) {
{(props.permission(props.addPermissionKey || "inspection-qy-plan-list-add") && query.entrance !== "statistics") && ( {(props.permission(props.addPermissionKey || "inspection-qy-plan-list-add") && query.entrance !== "statistics") && (
<Button <Button
type="primary" type="primary"
icon={<AddIcon />} icon={<AddIcon/>}
onClick={() => { onClick={() => {
setAddModalOpen(true); setAddModalOpen(true);
setCurrentId(""); setCurrentId("");
@ -83,10 +83,10 @@ function List(props) {
</> </>
)} )}
columns={[ columns={[
{ title: "计划名称", dataIndex: "planName" }, {title: "计划名称", dataIndex: "planName"},
{ title: "计划类型", dataIndex: "planTypeName" }, {title: "计划类型", dataIndex: "planTypeName"},
{ title: "计划开始时间", dataIndex: "planStartTime" }, {title: "计划开始时间", dataIndex: "planStartTime"},
{ title: "计划结束时间", dataIndex: "planEndTime" }, {title: "计划结束时间", dataIndex: "planEndTime"},
{ {
title: "计划执行总次数", title: "计划执行总次数",
dataIndex: "planExecuteTotal", dataIndex: "planExecuteTotal",
@ -108,7 +108,7 @@ function List(props) {
<Button <Button
type="link" type="link"
onClick={() => { onClick={() => {
props.history.push(`./personnelExecutionRecords?planId=${record.id}`); props.history.push(`./personnelExecutionRecords?planId=${record.id}&corpId=${record.corpId}`);
}} }}
> >
{`${record.userExecuteNum}/${record.userExecuteTotal}`} {`${record.userExecuteNum}/${record.userExecuteTotal}`}
@ -119,22 +119,19 @@ function List(props) {
title: "计划状态", title: "计划状态",
dataIndex: "status", dataIndex: "status",
render: (_, record) => { render: (_, record) => {
const { planExecuteTotal, userExecuteNum, planStartTime, planEndTime } = record; const {planExecuteTotal, userExecuteNum, planStartTime, planEndTime} = record;
const currentTime = dayjs(); const currentTime = dayjs();
let statusText = ""; let statusText = "";
if (planExecuteTotal === userExecuteNum && planExecuteTotal > 0) { if (planExecuteTotal === userExecuteNum && planExecuteTotal > 0) {
statusText = "已完成"; statusText = "已完成";
} } else if (currentTime.isBefore(planStartTime, "day")) {
else if (currentTime.isBefore(planStartTime, "day")) {
statusText = "未开始"; statusText = "未开始";
} } else if ((currentTime.isAfter(planStartTime, "day") || currentTime.isSame(planStartTime, "day"))
else if ((currentTime.isAfter(planStartTime, "day") || currentTime.isSame(planStartTime, "day"))
&& (currentTime.isBefore(planEndTime, "day") || currentTime.isSame(planEndTime, "day"))) { && (currentTime.isBefore(planEndTime, "day") || currentTime.isSame(planEndTime, "day"))) {
statusText = "执行中"; statusText = "执行中";
} } else if (currentTime.isAfter(planEndTime, "day")) {
else if (currentTime.isAfter(planEndTime, "day")) {
statusText = "已过期"; statusText = "已过期";
} }
@ -223,10 +220,10 @@ const AddModalComponent = (props) => {
const [form] = Form.useForm(); const [form] = Form.useForm();
const planStartTime = Form.useWatch("planStartTime", form); const planStartTime = Form.useWatch("planStartTime", form);
const corpId = Form.useWatch("corpId", form); const corpId = Form.useWatch("corpId", form);
const { getUserInfo } = useGetUserInfo(); const {getUserInfo} = useGetUserInfo();
const getCorpInfoList = async () => { const getCorpInfoList = async () => {
const { data } = await props["corpInfoList"]({ pageSize: 9999, pageIndex: 1, enterpriseType: 2 }); const {data} = await props["corpInfoList"]({pageSize: 9999, pageIndex: 1, enterpriseType: 2});
setCorpInfoList(data); setCorpInfoList(data);
}; };
@ -236,7 +233,7 @@ const AddModalComponent = (props) => {
setUserInfo(userInfo); setUserInfo(userInfo);
} }
if (props.id) { if (props.id) {
const { data } = await props["planView"]({ id: props.id }); const {data} = await props["planView"]({id: props.id});
form.setFieldsValue({ form.setFieldsValue({
...data, ...data,
userId: data.userId.split(","), userId: data.userId.split(","),
@ -255,7 +252,7 @@ const AddModalComponent = (props) => {
}, []); }, []);
const onSubmit = async (values) => { const onSubmit = async (values) => {
const { success } = await props[!props.id ? "planAdd" : "planUpdate"]({ const {success} = await props[!props.id ? "planAdd" : "planUpdate"]({
...values, ...values,
id: props.id, id: props.id,
userId: values.userId.join(","), userId: values.userId.join(","),
@ -286,11 +283,11 @@ const AddModalComponent = (props) => {
loading={props.plan.planLoading} loading={props.plan.planLoading}
form={form} form={form}
showActionButtons={false} showActionButtons={false}
labelCol={{ span: 10 }} labelCol={{span: 10}}
span={24} span={24}
onFinish={onSubmit} onFinish={onSubmit}
options={[ options={[
{ name: "planName", label: "计划名称" }, {name: "planName", label: "计划名称"},
{ {
name: "planType", name: "planType",
label: "计划类型", label: "计划类型",
@ -302,8 +299,8 @@ const AddModalComponent = (props) => {
/> />
), ),
}, },
{ name: "planTypeName", label: "计划类型", onlyForLabel: true }, {name: "planTypeName", label: "计划类型", onlyForLabel: true},
{ name: "planStartTime", label: "计划开始时间", render: FORM_ITEM_RENDER_ENUM.DATE }, {name: "planStartTime", label: "计划开始时间", render: FORM_ITEM_RENDER_ENUM.DATE},
{ {
name: "planEndTime", name: "planEndTime",
label: "计划结束时间", label: "计划结束时间",
@ -315,11 +312,16 @@ const AddModalComponent = (props) => {
label: "计划执行单位", label: "计划执行单位",
render: FORM_ITEM_RENDER_ENUM.SELECT, render: FORM_ITEM_RENDER_ENUM.SELECT,
items: corpInfoList, items: corpInfoList,
itemsField: { labelKey: "corpName", valueKey: "id" }, itemsField: {labelKey: "corpName", valueKey: "id"},
hidden: !(props.supervision === "1"), hidden: !(props.supervision === "1"),
componentProps: { componentProps: {
onChange: (event) => { onChange: (event) => {
form.setFieldValue("corpName", getLabelName({ list: corpInfoList, status: event, idKey: "id", nameKey: "corpName" })); form.setFieldValue("corpName", getLabelName({
list: corpInfoList,
status: event,
idKey: "id",
nameKey: "corpName"
}));
form.setFieldValue("userId", []); form.setFieldValue("userId", []);
form.setFieldValue("userName", []); form.setFieldValue("userName", []);
form.setFieldValue("departmentId", []); form.setFieldValue("departmentId", []);
@ -329,7 +331,7 @@ const AddModalComponent = (props) => {
}, },
}, },
}, },
{ name: "corpName", label: "计划执行单位名称", onlyForLabel: true }, {name: "corpName", label: "计划执行单位名称", onlyForLabel: true},
{ {
name: "userId", name: "userId",
label: "计划执行人员", label: "计划执行人员",
@ -359,30 +361,30 @@ const AddModalComponent = (props) => {
}; };
return props.supervision === "1" return props.supervision === "1"
? ( ? (
<PersonnelSelect <PersonnelSelect
params={{ corpinfoId: corpId }} params={{corpinfoId: corpId}}
isNeedCorpInfoId={true} isNeedCorpInfoId={true}
isNeedDepartmentId={false} isNeedDepartmentId={false}
extraParams={{ noMain: 1 }} extraParams={{noMain: 1}}
{...commonProps} {...commonProps}
/> />
) )
: ( : (
<PersonnelSelect <PersonnelSelect
params={{ departmentId: userInfo.departmentId }} params={{departmentId: userInfo.departmentId}}
extraParams={{ noMain: 1 }} extraParams={{noMain: 1}}
{...commonProps} {...commonProps}
/> />
); );
})(), })(),
}, },
{ name: "userName", label: "计划执行人员名称", onlyForLabel: true }, {name: "userName", label: "计划执行人员名称", onlyForLabel: true},
{ name: "departmentId", label: "计划执行人员部门", onlyForLabel: true }, {name: "departmentId", label: "计划执行人员部门", onlyForLabel: true},
{ name: "departmentName", label: "计划执行人员部门名称", onlyForLabel: true }, {name: "departmentName", label: "计划执行人员部门名称", onlyForLabel: true},
{ name: "postId", label: "计划执行人员岗位", onlyForLabel: true }, {name: "postId", label: "计划执行人员岗位", onlyForLabel: true},
{ name: "postName", label: "计划执行人员岗位名称", onlyForLabel: true }, {name: "postName", label: "计划执行人员岗位名称", onlyForLabel: true},
{ name: "planExecuteNum", label: "计划执行次数", render: FORM_ITEM_RENDER_ENUM.NUMBER }, {name: "planExecuteNum", label: "计划执行次数", render: FORM_ITEM_RENDER_ENUM.NUMBER},
{ name: "remarks", label: "备注", required: false, render: FORM_ITEM_RENDER_ENUM.TEXTAREA }, {name: "remarks", label: "备注", required: false, render: FORM_ITEM_RENDER_ENUM.TEXTAREA},
]} ]}
/> />
</Modal> </Modal>
@ -401,7 +403,7 @@ const ViewModal = (props) => {
<Button key="cancel" onClick={props.onCancel}>取消</Button>, <Button key="cancel" onClick={props.onCancel}>取消</Button>,
]} ]}
> >
<ViewInfo id={props.id} supervision={props.supervision} /> <ViewInfo id={props.id} supervision={props.supervision}/>
</Modal> </Modal>
); );
}; };

View File

@ -16,7 +16,7 @@ function PersonnelExecutionDetails(props) {
return ( return (
<Page headerTitle="计划执行总次数" contentPadding="0 20px 20px 20px"> <Page headerTitle="计划执行总次数" contentPadding="0 20px 20px 20px">
<Divider orientation="left">计划信息</Divider> <Divider orientation="left">计划信息</Divider>
<ViewInfo id={query.planId} /> <ViewInfo id={query.planId} supervision={props.supervision}/>
<Divider orientation="left">人员执行详情</Divider> <Divider orientation="left">人员执行详情</Divider>
<Table <Table
headerTitle={query.userName} headerTitle={query.userName}
@ -28,7 +28,7 @@ function PersonnelExecutionDetails(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" }, { title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 }, { title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ title: "检查类型", dataIndex: "typeName" }, { title: "检查类型", dataIndex: "typeName" },
{ title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) }, { title: "检查时间", width: 200, render: (_, record) => (record.timeStart ? `${record.timeStart}${record.timeEnd}` : "") },
{ {
title: "检查状态", title: "检查状态",
dataIndex: "status", dataIndex: "status",

View File

@ -1,37 +1,41 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime"; import {Connect} from "@cqsjjb/jjb-dva-runtime";
import { Button, Form } from "antd"; import {Button, Form} from "antd";
import Page from "zy-react-library/components/Page"; import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search"; import Search from "zy-react-library/components/Search";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj"; import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table"; import Table from "zy-react-library/components/Table";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery"; import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useTable from "zy-react-library/hooks/useTable"; import useTable from "zy-react-library/hooks/useTable";
import { NS_PLAN } from "~/enumerate/namespace"; import {NS_PLAN} from "~/enumerate/namespace";
function PersonnelExecutionRecords(props) { function PersonnelExecutionRecords(props) {
const query = useGetUrlQuery(); const query = useGetUrlQuery();
const [form] = Form.useForm(); const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["planUserList"], { const {tableProps, getData} = useTable(props["planUserList"], {
form, form,
params: { planId: query.planId }, params: {planId: query.planId},
}); });
return ( return (
<Page headerTitle="人员执行情况" contentPadding="0 20px 20px 20px"> <Page headerTitle="人员执行情况">
<Search <Search
labelCol={{ span: 4 }} labelCol={{span: 4}}
options={[ options={[
{ name: "departmentId", label: "部门", render: <DepartmentSelectTree /> }, {
{ name: "userName", label: "人员" }, name: "departmentId",
label: "部门",
render: <DepartmentSelectTree isNeedCorpInfoId={true} params={{eqCorpinfoId: query.corpId}}/>
},
{name: "userName", label: "人员"},
]} ]}
form={form} form={form}
onFinish={getData} onFinish={getData}
/> />
<Table <Table
columns={[ columns={[
{ title: "部门", dataIndex: "departmentName" }, {title: "部门", dataIndex: "departmentName"},
{ title: "岗位", dataIndex: "postName" }, {title: "岗位", dataIndex: "postName"},
{ title: "姓名", dataIndex: "userName" }, {title: "姓名", dataIndex: "userName"},
{ {
title: "计划执行情况", title: "计划执行情况",
dataIndex: "planExecuteNum", dataIndex: "planExecuteNum",

View File

@ -29,7 +29,7 @@ function PlanExecutionDetails(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" }, { title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 }, { title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ title: "检查类型", dataIndex: "typeName" }, { title: "检查类型", dataIndex: "typeName" },
{ title: "检查时间", width: 200, render: (_, record) => (`${record.timeStart}${record.timeEnd}`) }, { title: "检查时间", width: 200, render: (_, record) => (record.timeStart ? `${record.timeStart}${record.timeEnd}` : "") },
{ {
title: "检查状态", title: "检查状态",
dataIndex: "status", dataIndex: "status",

View File

@ -1,7 +1,7 @@
import PersonnelExecutionDetailsA from "~/pages/Container/BranchCompany/Plan/Management/PersonnelExecutionDetails"; import PersonnelExecutionDetailsA from "~/pages/Container/BranchCompany/Plan/Management/PersonnelExecutionDetails";
function PersonnelExecutionDetails(props) { function PersonnelExecutionDetails(props) {
return <PersonnelExecutionDetailsA {...props} />; return <PersonnelExecutionDetailsA {...props} supervision={"1"} />;
} }
export default PersonnelExecutionDetails; export default PersonnelExecutionDetails;