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

View File

@ -16,8 +16,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], {
form,
transform: formData => ({
checkStartTime: formData.checkTime?.[0],
checkEndTime: formData.checkTime?.[1],
checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}),
params: { status: "400" },
});
@ -51,7 +51,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ 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: "hiddenNumber" },
{

View File

@ -16,8 +16,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], {
form,
transform: formData => ({
checkStartTime: formData.checkTime?.[0],
checkEndTime: formData.checkTime?.[1],
checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}),
params: { status: "301" },
});
@ -51,7 +51,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ 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: "hiddenNumber" },
{

View File

@ -28,8 +28,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], {
form,
transform: formData => ({
checkStartTime: formData.checkTime?.[0],
checkEndTime: formData.checkTime?.[1],
checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}),
params: { status: "700" },
});
@ -64,7 +64,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ 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: "hiddenNumber" },
{
@ -263,16 +263,19 @@ function DefenseRecordModalComponent(props) {
columns={[
{ title: "申辩时间", dataIndex: "createTime", width: 200 },
{ 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 === 2 && "未通过"}</div>
</>
) },
)
},
{ 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: "url", render: (_, record) => (
{
title: "申辩附件", dataIndex: "url", render: (_, record) => (
record.files?.[0]?.filePath && (
<Button
type="link"
@ -283,7 +286,8 @@ function DefenseRecordModalComponent(props) {
下载
</Button>
)
) },
)
},
{ title: "检查人签字", dataIndex: "checkSign", render: (_, record) => (record.checkSign && <Image src={getFileUrl() + record.checkSign} width={100} height={100} />) },
{ title: "检查人意见", dataIndex: "checkRemarks" },
{ title: "审批时间", dataIndex: "checkSignTime", width: 200 },

View File

@ -25,8 +25,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], {
form,
transform: formData => ({
checkStartTime: formData.checkTime?.[0],
checkEndTime: formData.checkTime?.[1],
checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}),
params: { status: "300" },
});
@ -60,7 +60,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ 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: "hiddenNumber" },
{

View File

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

View File

@ -28,8 +28,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], {
form,
transform: formData => ({
checkStartTime: formData.checkTime?.[0],
checkEndTime: formData.checkTime?.[1],
checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
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 },
});
@ -63,7 +63,7 @@ function List(props) {
type="primary"
icon={<AddIcon />}
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"], {
form,
transform: formData => ({
checkStartTime: formData.checkTime?.[0],
checkEndTime: formData.checkTime?.[1],
checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}),
params: { status: "200" },
});
@ -58,7 +58,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ 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: "hiddenNumber" },
{

View File

@ -39,8 +39,8 @@ function List(props) {
const { tableProps, getData } = useTable(props["inspectionList"], {
form,
transform: formData => ({
checkStartTime: formData.checkTime?.[0],
checkEndTime: formData.checkTime?.[1],
checkStartTime: formData.checkTime?.[0] ? (formData.checkTime[0] + " 00:00:00") : "",
checkEndTime: formData.checkTime?.[1] ? (formData.checkTime[1] + " 23:59:59") : "",
}),
params: {
status: "",
@ -169,7 +169,7 @@ function List(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ 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",

View File

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

View File

@ -99,7 +99,7 @@ function List(props) {
<Button
type="link"
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

@ -21,14 +21,14 @@ import ViewInfo from "~/pages/Container/BranchCompany/Plan/ViewInfo";
function List(props) {
const query = useGetUrlQuery();
const [form] = Form.useForm();
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,
params: {
corpId: query.corpId,
startTime: query.startTime,
endTime: query.endTime,
completedOnly: query.completedOnly,
},
params: {...defaultParams},
});
const [addModalOpen, setAddModalOpen] = useState(false);
@ -108,7 +108,7 @@ function List(props) {
<Button
type="link"
onClick={() => {
props.history.push(`./personnelExecutionRecords?planId=${record.id}`);
props.history.push(`./personnelExecutionRecords?planId=${record.id}&corpId=${record.corpId}`);
}}
>
{`${record.userExecuteNum}/${record.userExecuteTotal}`}
@ -126,15 +126,12 @@ function List(props) {
if (planExecuteTotal === userExecuteNum && planExecuteTotal > 0) {
statusText = "已完成";
}
else if (currentTime.isBefore(planStartTime, "day")) {
} else if (currentTime.isBefore(planStartTime, "day")) {
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"))) {
statusText = "执行中";
}
else if (currentTime.isAfter(planEndTime, "day")) {
} else if (currentTime.isAfter(planEndTime, "day")) {
statusText = "已过期";
}
@ -319,7 +316,12 @@ const AddModalComponent = (props) => {
hidden: !(props.supervision === "1"),
componentProps: {
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("userName", []);
form.setFieldValue("departmentId", []);

View File

@ -16,7 +16,7 @@ function PersonnelExecutionDetails(props) {
return (
<Page headerTitle="计划执行总次数" contentPadding="0 20px 20px 20px">
<Divider orientation="left">计划信息</Divider>
<ViewInfo id={query.planId} />
<ViewInfo id={query.planId} supervision={props.supervision}/>
<Divider orientation="left">人员执行详情</Divider>
<Table
headerTitle={query.userName}
@ -28,7 +28,7 @@ function PersonnelExecutionDetails(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ 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",

View File

@ -17,11 +17,15 @@ function PersonnelExecutionRecords(props) {
});
return (
<Page headerTitle="人员执行情况" contentPadding="0 20px 20px 20px">
<Page headerTitle="人员执行情况">
<Search
labelCol={{span: 4}}
options={[
{ name: "departmentId", label: "部门", render: <DepartmentSelectTree /> },
{
name: "departmentId",
label: "部门",
render: <DepartmentSelectTree isNeedCorpInfoId={true} params={{eqCorpinfoId: query.corpId}}/>
},
{name: "userName", label: "人员"},
]}
form={form}

View File

@ -29,7 +29,7 @@ function PlanExecutionDetails(props) {
{ title: "被检查单位", dataIndex: "inspectionSiteDepartmentName" },
{ title: "被检查单位现场负责人", dataIndex: "inspectedSiteManagerName", width: 200 },
{ 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",

View File

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