박정하 박정하 2023-11-28
231128 박정하 메인 수정
@6b90917da812c0c795bea1ad92405b54e071cc96
 
.vscode/settings.json (added)
+++ .vscode/settings.json
@@ -0,0 +1,3 @@
+{
+  "editor.fontFamily": "Consolas, 'Courier New', monospace"
+}(파일 끝에 줄바꿈 문자 없음)
client/views/component/Calendar_admin.jsx
--- client/views/component/Calendar_admin.jsx
+++ client/views/component/Calendar_admin.jsx
@@ -1,21 +1,13 @@
 import React, { useState } from "react";
-import { useNavigate, useLocation } from "react-router";
-import { useSelector } from "react-redux";
 
 import Calendar from "react-calendar";
 import "react-calendar/dist/Calendar.css";
-import Modal from "./Modal.jsx";
 import moment from "moment";
 
 import CommonUtil from "../../resources/js/CommonUtil.js";
 
 export default function CalendarComponent({ data }) {
-  const navigate = useNavigate();
-  const location = useLocation();
-
   //전역 변수 저장 객체
-  const state = useSelector((state) => { return state });
-
   const [value, setValue] = useState(new Date());
   const activeDate = moment(value).format('YYYY-MM-DD');
 
@@ -68,15 +60,11 @@
       temperatureData = '-'
     } else {
       if (todayTemperature.length > 0) {
-        var temperatures = "";
-
         if (moment(date['date']).format("MM") >= 11 || moment(date['date']).format("MM") <= 2) {
-          temperatures = Math.min.apply(null, todayTemperature);
+          temperatureData = Math.min.apply(null, todayTemperature) + '℃';
         } else {
-          temperatures = Math.max.apply(null, todayTemperature);
+          temperatureData = Math.max.apply(null, todayTemperature) + '℃';
         }
-        
-        temperatureData = temperatures + '℃'
       }
     }
 
client/views/pages/main/Main_agency.jsx
--- client/views/pages/main/Main_agency.jsx
+++ client/views/pages/main/Main_agency.jsx
@@ -30,26 +30,38 @@
   const location = useLocation();
 
   //전역 변수 저장 객체
-  const state = useSelector((state) => { return state });
+  const state = useSelector((state) => {
+    return state;
+  });
 
   const thead = ["No", "계약업체명", "구분", "담당자 연락처", "주소"];
-  const key = ["No", "agency", "division", "phone", "address",];
+  const key = ["No", "agency", "division", "phone", "address"];
   const content = [
     {
       No: (
-        <p><span>{thead[0]}</span>  1948.11.15</p>
+        <p>
+          <span>{thead[0]}</span> 1948.11.15
+        </p>
       ),
       agency: (
-        <p><span>{thead[1]}</span>  A복지관</p>
+        <p>
+          <span>{thead[1]}</span> A복지관
+        </p>
       ),
       division: (
-        <p><span>{thead[2]}</span>교환</p>
+        <p>
+          <span>{thead[2]}</span>교환
+        </p>
       ),
       phone: (
-        <p><span>{thead[3]}</span>010-1234-5678</p>
+        <p>
+          <span>{thead[3]}</span>010-1234-5678
+        </p>
       ),
       address: (
-        <p><span>{thead[4]}</span>경상북도 군위군 삼국유사면</p>
+        <p>
+          <span>{thead[4]}</span>경상북도 군위군 삼국유사면
+        </p>
       ),
     },
   ];
@@ -59,9 +71,9 @@
     seniorList: [],
     seniorListCount: 0,
     search: {
-      'agent_id': state.loginUser['user_id'],
-      'user_use': true,
-    }
+      agent_id: state.loginUser["user_id"],
+      user_use: true,
+    },
   });
   // 내 시니어 목록 조회
   const [seniorGenderData, setSeniorGenderData] = React.useState([]);
@@ -69,113 +81,167 @@
     fetch("/user/seniorSelectList.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
       body: JSON.stringify(mySenior.search),
-    }).then((response) => response.json()).then((data) => {
-      data.search = mySenior.search;
-      console.log("내 시니어 목록 조회 : ", data);
-      setMySenior(data);
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        data.search = mySenior.search;
+        console.log("내 시니어 목록 조회 : ", data);
+        setMySenior(data);
 
-      let seniorGenderArr = [];
-      const today = new Date();
-      data['seniorList'].map((item, idx) => {
-        const birth = new Date(item['user_birth']);
-        let age = today.getFullYear() - birth.getFullYear() + 1;
-        seniorGenderArr.push({ "gender": item['user_gender'], "age": age })
-      })
-      console.log("seniorGenderArr: ", seniorGenderArr)
+        let seniorGenderArr = [];
+        const today = new Date();
+        data["seniorList"].map((item, idx) => {
+          const birth = new Date(item["user_birth"]);
+          let age = today.getFullYear() - birth.getFullYear() + 1;
+          seniorGenderArr.push({ gender: item["user_gender"], age: age });
+        });
+        console.log("seniorGenderArr: ", seniorGenderArr);
 
-      let genderData = [];
-      for (let i = 0; i < 18; i++) {
-        let age = i * 5;
-        let age1 = ((i + 1) * 5) - 1;
-        if (i == 17) {
-          genderData.push({ "age": age + '+', "male": 0, "female": 0 })
-        } else {
-          genderData.push({ "age": age + '-' + age1, "male": 0, "female": 0 })
-        }
-      }
-      console.log("genderData: ", genderData)
-
-      seniorGenderArr.map((item, idx) => {
+        let genderData = [];
         for (let i = 0; i < 18; i++) {
-          if (item['age'] >= i * 5 && item['age'] <= ((i + 1) * 5) - 1) {
-            if (item['gender'] == "남") {
-              genderData[i]['male']--
-            } else if (item['gender'] == "여") {
-              genderData[i]['female']++
-            }
+          let age = i * 5;
+          let age1 = (i + 1) * 5 - 1;
+          if (i == 17) {
+            genderData.push({ age: age + "+", male: 0, female: 0 });
+          } else {
+            genderData.push({ age: age + "-" + age1, male: 0, female: 0 });
           }
         }
-      })
+        console.log("genderData: ", genderData);
 
-      setSeniorGenderData(genderData)
-      console.log("genderData: ", genderData)
-    }).catch((error) => {
-      console.log('seniorSelectList() /user/seniorSelectList.json error : ', error);
-    });
-  }
+        seniorGenderArr.map((item, idx) => {
+          for (let i = 0; i < 18; i++) {
+            if (item["age"] >= i * 5 && item["age"] <= (i + 1) * 5 - 1) {
+              if (item["gender"] == "남") {
+                genderData[i]["male"]--;
+              } else if (item["gender"] == "여") {
+                genderData[i]["female"]++;
+              }
+            }
+          }
+        });
+
+        setSeniorGenderData(genderData);
+        console.log("genderData: ", genderData);
+      })
+      .catch((error) => {
+        console.log(
+          "seniorSelectList() /user/seniorSelectList.json error : ",
+          error
+        );
+      });
+  };
 
   //온도 위험 대상자(시니어) 수 조회
   const [temperatureCount, setTemperatureCount] = React.useState(0);
   const temperatureRiskCount = () => {
-    fetch("/stats/agentTemperatureRisk.json", {
+    fetch("/stats/temperatureRisk.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
       body: JSON.stringify({
-        'agent_id': state.loginUser['user_id'],
+        agent_id: state.loginUser["user_id"],
       }),
-    }).then((response) => response.json()).then((data) => {
-      console.log("온도 위험 대상자(시니어) 수 조회 : ", data);
-      setTemperatureCount(data);
-    }).catch((error) => {
-      console.log('temperatureRiskCount() /stats/agentTemperatureRisk.json error : ', error);
-    });
-  }
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("온도 위험 대상자(시니어) 수 조회 : ", data);
+        setTemperatureCount(data);
+      })
+      .catch((error) => {
+        console.log(
+          "temperatureRiskCount() /stats/temperatureRisk.json error : ",
+          error
+        );
+      });
+  };
 
   //배터리 부족 대상자(시니어) 수 조회
   const [batteryCount, setbatteryCount] = React.useState(0);
   const batteryRiskCount = () => {
-    fetch("/stats/agentBatteryRisk.json", {
+    fetch("/stats/batteryRisk.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
       body: JSON.stringify({
-        'agent_id': state.loginUser['user_id'],
+        agent_id: state.loginUser["user_id"],
       }),
-    }).then((response) => response.json()).then((data) => {
-      console.log("배터리 부족 대상자(시니어) 수 조회 : ", data);
-      setbatteryCount(data);
-    }).catch((error) => {
-      console.log('batteryRiskCount() /stats/agentBatteryRisk.json error : ', error);
-    });
-  }
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("배터리 부족 대상자(시니어) 수 조회 : ", data);
+        setbatteryCount(data);
+      })
+      .catch((error) => {
+        console.log(
+          "batteryRiskCount() /stats/batteryRisk.json error : ",
+          error
+        );
+      });
+  };
+
+  //데이터 미확인 대상자(시니어) 수 조회
+  const [receiveDataMissCount, setReceiveDataMissCount] = React.useState(0);
+  const receiveDataMissRiskCount = () => {
+    fetch("/stats/receiveDataMissCount.json", {
+      method: "POST",
+      headers: {
+        "Content-Type": "application/json; charset=UTF-8",
+      },
+      body: JSON.stringify({
+        agent_id: state.loginUser["user_id"],
+      }),
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("데이터 미확인 대상자(시니어) 수 조회 : ", data);
+        setReceiveDataMissCount(data);
+      })
+      .catch((error) => {
+        console.log(
+          "receiveDataMissRiskCount() /stats/receiveDataMissCount.json error : ",
+          error
+        );
+      });
+  };
 
   // 최근 복약률
-  const [medicationSelectListByNew, setMedicationSelectListByNew] = React.useState([]);
+  const [medicationSelectListByNew, setMedicationSelectListByNew] =
+    React.useState([]);
   // 최근 복약률 조회
   const seniorMedicationSelectListByNew = () => {
     fetch("/user/seniorMedicationSelectListByNew.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
-      body: JSON.stringify({ "agent_id": state.loginUser['user_id'] }),
-    }).then((response) => response.json()).then((data) => {
-      console.log("seniorMedicationSelectListByNew : ", data);
-      setMedicationSelectListByNew(data)
-    }).catch((error) => {
-      console.log('seniorMedicationSelectListByNew() /user/seniorMedicationSelectListByNew.json error : ', error);
-    });
+      body: JSON.stringify({
+        agent_id: state.loginUser["user_id"],
+      }),
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("seniorMedicationSelectListByNew : ", data);
+        setMedicationSelectListByNew(data);
+      })
+      .catch((error) => {
+        console.log(
+          "seniorMedicationSelectListByNew() /user/seniorMedicationSelectListByNew.json error : ",
+          error
+        );
+      });
   };
 
   // 복약률 목록
-  const [medicationSelectListByMonth, setMedicationSelectListByMonth] = React.useState([]);
-  const [medicationSelectListByYear, setMedicationSelectListByYear] = React.useState([]);
+  const [medicationSelectListByMonth, setMedicationSelectListByMonth] =
+    React.useState([]);
+  const [medicationSelectListByYear, setMedicationSelectListByYear] =
+    React.useState([]);
   // 복약률 목록 조회
   const seniorMedicationSelectListByMonth = () => {
     let totalYearArr = [];
@@ -184,53 +250,72 @@
     fetch("/user/seniorMedicationSelectListByMonth.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
-      body: JSON.stringify({ "agency_id": state.loginUser['agency_id'] }),
-    }).then((response) => response.json()).then((data) => {
-      data.map((item, idx) => {
-        item['year'] = item['medication_default_date'].substr(0, 4);
-        item['month'] = item['medication_default_date'].substr(5, 2);
-        totalYearArr.push(item['medication_default_date'].substr(0, 4));
-        item['date'] = new Date(item['medication_default_date']).getTime();
-      })
-
-      const setYearArr = [...new Set(totalYearArr)];
-      console.log("totalYearArr: ", setYearArr);
-
-      setYearArr.map((year, yearIdx) => {
-        let sum = 0;
-        let count = 0;
-        let avg = 0;
-
-        let monthArr = ['-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'];
-
+      body: JSON.stringify({ agency_id: state.loginUser["agency_id"] }),
+    })
+      .then((response) => response.json())
+      .then((data) => {
         data.map((item, idx) => {
-          if (item['year'] == year) {
-            sum += item['average'];
-            count++;
-            monthArr[Number(item['month']) - 1] = item['average'];
-          }
-        })
+          item["year"] = item["medication_default_date"].substr(0, 4);
+          item["month"] = item["medication_default_date"].substr(5, 2);
+          totalYearArr.push(item["medication_default_date"].substr(0, 4));
+          item["date"] = new Date(item["medication_default_date"]).getTime();
+        });
 
-        avg = parseInt(sum / count);
-        yearArr.push({ "year": [year], "average": avg, "data": monthArr });
+        const setYearArr = [...new Set(totalYearArr)];
+        console.log("totalYearArr: ", setYearArr);
+
+        setYearArr.map((year, yearIdx) => {
+          let sum = 0;
+          let count = 0;
+          let avg = 0;
+
+          let monthArr = [
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+          ];
+
+          data.map((item, idx) => {
+            if (item["year"] == year) {
+              sum += item["average"];
+              count++;
+              monthArr[Number(item["month"]) - 1] = item["average"];
+            }
+          });
+
+          avg = parseInt(sum / count);
+          yearArr.push({ year: [year], average: avg, data: monthArr });
+        });
+
+        console.log("yearArr : ", yearArr);
+        setMedicationSelectListByYear(yearArr);
+
+        console.log("seniorMedicationSelectListByMonth : ", data);
+        setMedicationSelectListByMonth(data);
       })
-
-      console.log("yearArr : ", yearArr);
-      setMedicationSelectListByYear(yearArr);
-
-      console.log("seniorMedicationSelectListByMonth : ", data);
-      setMedicationSelectListByMonth(data);
-    }).catch((error) => {
-      console.log('seniorMedicationSelectListByMonth() /user/seniorMedicationSelectListByMonth.json error : ', error);
-    });
+      .catch((error) => {
+        console.log(
+          "seniorMedicationSelectListByMonth() /user/seniorMedicationSelectListByMonth.json error : ",
+          error
+        );
+      });
   };
-
 
   React.useEffect(() => {
     temperatureRiskCount();
     batteryRiskCount();
+    receiveDataMissRiskCount();
     seniorMedicationSelectListByNew();
     seniorMedicationSelectListByMonth();
     mySeniorSelectList();
@@ -238,10 +323,26 @@
 
   return (
     <main>
-      <div className="flex-start margin-bottom2"><img src={medicinebox} alt="" /><TitleSmall title={"대상자 현황"} explanation={new Date(new Date().setDate(new Date().getDate() - 1)).toLocaleDateString().replace(/\./g, '').replace(/\s/g, '-') + " 기준"} /></div>
+      <div className="flex-start margin-bottom2">
+        <img src={medicinebox} alt="" />
+        <TitleSmall
+          title={"대상자 현황"}
+          explanation={
+            new Date(new Date().setDate(new Date().getDate() - 1))
+              .toLocaleDateString()
+              .replace(/\./g, "")
+              .replace(/\s/g, "-") + " 기준"
+          }
+        />
+      </div>
       <div className="main-grid-agency margin-bottom2">
         <ul className="content-box statistics-agency" background="#8ef3d1">
-          <li className="flex-start" onClick={() => { navigate("/Healthcare") }}>
+          <li
+            className="flex-start"
+            onClick={() => {
+              navigate("/Healthcare");
+            }}
+          >
             <img src={medicineAgency} alt="" />
             <div className="text">
               <p>미복약 위험 대상자</p>
@@ -249,8 +350,13 @@
             </div>
           </li>
         </ul>
-        <ul className="content-box statistics-agency" background="#ebe7b9" >
-          <li className="flex-start" onClick={() => { navigate("/Healthcare") }}>
+        <ul className="content-box statistics-agency" background="#ebe7b9">
+          <li
+            className="flex-start"
+            onClick={() => {
+              navigate("/Healthcare");
+            }}
+          >
             <img src={temperatureAgency} alt="" />
             <div className="text">
               <p>댁내 온도 위험 대상자</p>
@@ -259,7 +365,12 @@
           </li>
         </ul>
         <ul className="content-box statistics-agency" background="#5f9af3">
-          <li className="flex-start" onClick={() => { navigate("/Healthcare") }}>
+          <li
+            className="flex-start"
+            onClick={() => {
+              navigate("/Healthcare");
+            }}
+          >
             <img src={batteryAgency} alt="" />
             <div className="text">
               <p>배터리 부족 대상자</p>
@@ -268,24 +379,34 @@
           </li>
         </ul>
         <ul className="content-box statistics-agency" background="#8080FF">
-          <li className="flex-start" onClick={() => { navigate("/Healthcare") }}>
+          <li
+            className="flex-start"
+            onClick={() => {
+              navigate("/Healthcare");
+            }}
+          >
             <img src={wifioff} alt="" />
             <div className="text">
               <p>데이터 미확인 대상자</p>
-              <p className="peoplecount">{batteryCount}</p>
+              <p className="peoplecount">{receiveDataMissCount}</p>
             </div>
           </li>
         </ul>
       </div>
-      <div className="flex-start margin-bottom2"><img src={medicinebox} alt="" /><TitleSmall title={"대상자 복약률 평균"} /></div>
+      <div className="flex-start margin-bottom2">
+        <img src={medicinebox} alt="" />
+        <TitleSmall title={"대상자 복약률 평균"} />
+      </div>
       <div className="main-grid-agency margin-bottom2">
         <div className="content-box combine-left-government4">
           <div className="height-50">
-            {
-              medicationSelectListByNew.length > 0 ?
-                <Chart10 data={medicationSelectListByMonth} />
-                : <div className="no-data"><p>데이터가 없습니다.</p></div>
-            }
+            {medicationSelectListByNew.length > 0 ? (
+              <Chart10 data={medicationSelectListByMonth} />
+            ) : (
+              <div className="no-data">
+                <p>데이터가 없습니다.</p>
+              </div>
+            )}
           </div>
           <div>
             <table className="visit-data-table">
@@ -312,25 +433,27 @@
                   medicationSelectListByYear.map((item, idx) => {
                     return (
                       <tr>
-                        <td>{item['year']}</td>
-                        <td>{item['average'] == '-' ? '-' : item['average'] + '%'}</td>
-                        {CommonUtil.isEmpty(item['data']) == false ? (
-                          item['data'].map((item1, idx1) => {
-                            return (
-                              <>
-                                <td>{item1 == '-' ? '-' : item1 + '%'}</td>
-                              </>
-                            )
-                          })
-                        ) : null}
+                        <td>{item["year"]}</td>
+                        <td>
+                          {item["average"] == "-" ? "-" : item["average"] + "%"}
+                        </td>
+                        {CommonUtil.isEmpty(item["data"]) == false
+                          ? item["data"].map((item1, idx1) => {
+                              return (
+                                <>
+                                  <td>{item1 == "-" ? "-" : item1 + "%"}</td>
+                                </>
+                              );
+                            })
+                          : null}
                       </tr>
-                    )
+                    );
                   })
-                ) :
+                ) : (
                   <tr>
                     <td colSpan={14}>데이터가 없습니다.</td>
                   </tr>
-                }
+                )}
               </tbody>
             </table>
           </div>
@@ -349,29 +472,37 @@
       </div> */}
       <div className="main-grid-agency2">
         <div>
-          <div className="flex-start margin-bottom2"><img src={medicinebox} alt="" /><TitleSmall title={"시니어 복약수 순위"} /></div>
+          <div className="flex-start margin-bottom2">
+            <img src={medicinebox} alt="" />
+            <TitleSmall title={"시니어 복약수 순위"} />
+          </div>
           <div className="content-box combine-left-government3 visitlist margin-bottom2">
-            {
-              medicationSelectListByNew.length > 0 ?
-                <Chart8 data={medicationSelectListByNew} />
-                : <div className="no-data"><p>데이터가 없습니다.</p></div>
-            }
+            {medicationSelectListByNew.length > 0 ? (
+              <Chart8 data={medicationSelectListByNew} />
+            ) : (
+              <div className="no-data">
+                <p>데이터가 없습니다.</p>
+              </div>
+            )}
           </div>
         </div>
         <div>
-          <div className="flex-start margin-bottom2"><img src={medicinebox} alt="" /><TitleSmall title={"연령대별 통계"} /></div>
+          <div className="flex-start margin-bottom2">
+            <img src={medicinebox} alt="" />
+            <TitleSmall title={"연령대별 통계"} />
+          </div>
           <div className="content-box combine-left-government3 visitlist margin-bottom2">
-            {
-              seniorGenderData.length > 0 ?
-                <Chart7 data={seniorGenderData} />
-                : <div className="no-data"><p>데이터가 없습니다.</p></div>
-            }
+            {seniorGenderData.length > 0 ? (
+              <Chart7 data={seniorGenderData} />
+            ) : (
+              <div className="no-data">
+                <p>데이터가 없습니다.</p>
+              </div>
+            )}
           </div>
         </div>
       </div>
-      <div>
-
-      </div>
+      <div></div>
     </main>
   );
 }
client/views/pages/main/Main_agencyAdmin.jsx
--- client/views/pages/main/Main_agencyAdmin.jsx
+++ client/views/pages/main/Main_agencyAdmin.jsx
@@ -63,7 +63,7 @@
   //온도 위험 대상자(시니어) 수 조회
   const [temperatureCount, setTemperatureCount] = React.useState(0);
   const temperatureRiskCount = () => {
-    fetch("/stats/agencyTemperatureRisk.json", {
+    fetch("/stats/temperatureRisk.json", {
       method: "POST",
       headers: {
         'Content-Type': 'application/json; charset=UTF-8'
@@ -75,14 +75,14 @@
       console.log("온도 위험 대상자(시니어) 수 조회 : ", data);
       setTemperatureCount(data);
     }).catch((error) => {
-      console.log('temperatureRiskCount() /stats/agencyTemperatureRisk.json error : ', error);
+      console.log('temperatureRiskCount() /stats/temperatureRisk.json error : ', error);
     });
   }
 
   //배터리 부족 대상자(시니어) 수 조회
   const [batteryCount, setbatteryCount] = React.useState(0);
   const batteryRiskCount = () => {
-    fetch("/stats/agencyBatteryRisk.json", {
+    fetch("/stats/batteryRisk.json", {
       method: "POST",
       headers: {
         'Content-Type': 'application/json; charset=UTF-8'
@@ -94,7 +94,26 @@
       console.log("배터리 부족 대상자(시니어) 수 조회 : ", data);
       setbatteryCount(data);
     }).catch((error) => {
-      console.log('batteryRiskCount() /stats/agencyBatteryRisk.json error : ', error);
+      console.log('batteryRiskCount() /stats/batteryRisk.json error : ', error);
+    });
+  }
+
+  //데이터 미확인 대상자(시니어) 수 조회
+  const [receiveDataMissCount, setReceiveDataMissCount] = React.useState(0);
+  const receiveDataMissRiskCount = () => {
+    fetch("/stats/receiveDataMissCount.json", {
+      method: "POST",
+      headers: {
+        'Content-Type': 'application/json; charset=UTF-8'
+      },
+      body: JSON.stringify({
+        'agency_id': state.loginUser['agency_id'],
+      }),
+    }).then((response) => response.json()).then((data) => {
+      console.log("데이터 미확인 대상자(시니어) 수 조회 : ", data);
+      setReceiveDataMissCount(data);
+    }).catch((error) => {
+      console.log('receiveDataMissRiskCount() /stats/receiveDataMissCount.json error : ', error);
     });
   }
 
@@ -224,6 +243,7 @@
     seniorSelectList();
     temperatureRiskCount();
     batteryRiskCount();
+    receiveDataMissRiskCount();
     visitByMonthList();
     seniorByAgent();
     seniorMedicationSelectListByNew();
@@ -259,7 +279,7 @@
             <li onClick={() => { navigate("/HealthcareAdmin") }}>
               <p><WifiOffIcon sx={{ width: "50px", height: "50px", padding: "5px", color: "#ffffff", background: "#8080FF", borderRadius: "50px", boxSizing: "border-box" }} /></p>
               <p>{cityName} 데이터 미확인 대상자 </p>
-              <p>{batteryCount}</p>
+              <p>{receiveDataMissCount}</p>
             </li>
           </ul>
         </div>
client/views/pages/main/Main_government.jsx
--- client/views/pages/main/Main_government.jsx
+++ client/views/pages/main/Main_government.jsx
@@ -2,11 +2,18 @@
 import { useNavigate, useLocation } from "react-router";
 import { useSelector } from "react-redux";
 
-
-
-import { MapContainer, TileLayer, LayerGroup, Marker, Circle, CircleMarker, Tooltip, Popup, useMap } from 'react-leaflet';
-import L, { CRS, latLng, bounds } from 'leaflet';
-
+import {
+  MapContainer,
+  TileLayer,
+  LayerGroup,
+  Marker,
+  Circle,
+  CircleMarker,
+  Tooltip,
+  Popup,
+  useMap,
+} from "react-leaflet";
+import L, { CRS, latLng, bounds } from "leaflet";
 
 import Title from "../../component/Title.jsx";
 /* import Map from "../../component/chart/Map.jsx"; */
@@ -16,11 +23,11 @@
 import Chart8 from "../../component/chart/Chart8.jsx";
 import RowChart_govern from "../../component/chart/RowChart_govern.jsx";
 import AddCircleIcon from "@mui/icons-material/AddCircle";
-import BatteryCharging20Icon from '@mui/icons-material/BatteryCharging20';
-import DeviceThermostatIcon from '@mui/icons-material/DeviceThermostat';
-import MedicationIcon from '@mui/icons-material/Medication';
-import ElderlyIcon from '@mui/icons-material/Elderly';
-import WifiOffIcon from '@mui/icons-material/WifiOff';
+import BatteryCharging20Icon from "@mui/icons-material/BatteryCharging20";
+import DeviceThermostatIcon from "@mui/icons-material/DeviceThermostat";
+import MedicationIcon from "@mui/icons-material/Medication";
+import ElderlyIcon from "@mui/icons-material/Elderly";
+import WifiOffIcon from "@mui/icons-material/WifiOff";
 
 import CommonUtil from "../../../resources/js/CommonUtil.js";
 
@@ -31,68 +38,116 @@
   const location = useLocation();
 
   //전역 변수 저장 객체
-  const state = useSelector((state) => { return state });
+  const state = useSelector((state) => {
+    return state;
+  });
 
-  const [cityName, setCityName] = useState(state.loginUser['government_name']);
+  const [cityName, setCityName] = useState(state.loginUser["government_name"]);
 
   //대상자(시니어) 목록 조회
-  const [senior, setSenior] = React.useState({ userList: [], userListCount: 0 });
+  const [senior, setSenior] = React.useState({
+    userList: [],
+    userListCount: 0,
+  });
   const seniorSelectList = () => {
     fetch("/user/userSelectList.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
       body: JSON.stringify({
-        'government_id': state.loginUser['government_id'],
-        'agency_id': state.loginUser['agency_id'],
-        'authority': 'ROLE_SENIOR',
+        government_id: state.loginUser["government_id"],
+        agency_id: state.loginUser["agency_id"],
+        authority: "ROLE_SENIOR",
       }),
-    }).then((response) => response.json()).then((data) => {
-      console.log("대상자(시니어) 목록 조회 : ", data);
-      setSenior(data);
-    }).catch((error) => {
-      console.log('seniorSelectList() /user/userSelectList.json error : ', error);
-    });
-  }
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("대상자(시니어) 목록 조회 : ", data);
+        setSenior(data);
+      })
+      .catch((error) => {
+        console.log(
+          "seniorSelectList() /user/userSelectList.json error : ",
+          error
+        );
+      });
+  };
 
   //온도 위험 대상자(시니어) 수 조회
   const [temperatureCount, setTemperatureCount] = React.useState(0);
   const temperatureRiskCount = () => {
-    fetch("/stats/governmentTemperatureRisk.json", {
+    fetch("/stats/temperatureRisk.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
       body: JSON.stringify({
-        'government_id': state.loginUser['government_id'],
+        government_id: state.loginUser["government_id"],
       }),
-    }).then((response) => response.json()).then((data) => {
-      console.log("온도 위험 대상자(시니어) 수 조회 : ", data);
-      setTemperatureCount(data);
-    }).catch((error) => {
-      console.log('temperatureRiskCount() /stats/governmentTemperatureRisk.json error : ', error);
-    });
-  }
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("온도 위험 대상자(시니어) 수 조회 : ", data);
+        setTemperatureCount(data);
+      })
+      .catch((error) => {
+        console.log(
+          "temperatureRiskCount() /stats/temperatureRisk.json error : ",
+          error
+        );
+      });
+  };
 
   //배터리 부족 대상자(시니어) 수 조회
   const [batteryCount, setbatteryCount] = React.useState(0);
   const batteryRiskCount = () => {
-    fetch("/stats/governmentBatteryRisk.json", {
+    fetch("/stats/batteryRisk.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
       body: JSON.stringify({
-        'government_id': state.loginUser['government_id'],
+        government_id: state.loginUser["government_id"],
       }),
-    }).then((response) => response.json()).then((data) => {
-      console.log("배터리 부족 대상자(시니어) 수 조회 : ", data);
-      setbatteryCount(data);
-    }).catch((error) => {
-      console.log('batteryRiskCount() /stats/governmentBatteryRisk.json error : ', error);
-    });
-  }
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("배터리 부족 대상자(시니어) 수 조회 : ", data);
+        setbatteryCount(data);
+      })
+      .catch((error) => {
+        console.log(
+          "batteryRiskCount() /stats/batteryRisk.json error : ",
+          error
+        );
+      });
+  };
+
+  //데이터 미확인 대상자(시니어) 수 조회
+  const [receiveDataMissCount, setReceiveDataMissCount] = React.useState(0);
+  const receiveDataMissRiskCount = () => {
+    fetch("/stats/receiveDataMissCount.json", {
+      method: "POST",
+      headers: {
+        "Content-Type": "application/json; charset=UTF-8",
+      },
+      body: JSON.stringify({
+        government_id: state.loginUser["government_id"],
+      }),
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("데이터 미확인 대상자(시니어) 수 조회 : ", data);
+        setReceiveDataMissCount(data);
+      })
+      .catch((error) => {
+        console.log(
+          "receiveDataMissRiskCount() /stats/receiveDataMissCount.json error : ",
+          error
+        );
+      });
+  };
 
   //월별 방문 횟수 조회
   const [visit, setVisit] = React.useState([]);
@@ -100,18 +155,24 @@
     fetch("/stats/visitByMonthList.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
       body: JSON.stringify({
-        'government_id': state.loginUser['government_id'],
+        government_id: state.loginUser["government_id"],
       }),
-    }).then((response) => response.json()).then((data) => {
-      console.log("월별 방문 횟수 조회 : ", data);
-      setVisit(data);
-    }).catch((error) => {
-      console.log('visitByMonthList() /stats/visitByMonthList.json error : ', error);
-    });
-  }
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("월별 방문 횟수 조회 : ", data);
+        setVisit(data);
+      })
+      .catch((error) => {
+        console.log(
+          "visitByMonthList() /stats/visitByMonthList.json error : ",
+          error
+        );
+      });
+  };
 
   //시행 기관별 약상자 사용 현황
   const [equipmentUsage, setEquipmentUsage] = React.useState([]);
@@ -119,20 +180,29 @@
     fetch("/stats/equipmentByAgency.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
       body: JSON.stringify({
-        'government_id': state.loginUser['government_id'],
+        government_id: state.loginUser["government_id"],
       }),
-    }).then((response) => response.json()).then((data) => {
-      console.log("시행기관별 약상자 사용 현황 : ", data);
-      let newEquipmentList = updateList(data['agencyList'], data['equipmentList']);
-      console.log("new equipment list", newEquipmentList);
-      setEquipmentUsage(newEquipmentList);
-    }).catch((error) => {
-      console.log('equipmentByAgency() /stats/equipmentByAgency.json error : ', error);
-    });
-  }
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("시행기관별 약상자 사용 현황 : ", data);
+        let newEquipmentList = updateList(
+          data["agencyList"],
+          data["equipmentList"]
+        );
+        console.log("new equipment list", newEquipmentList);
+        setEquipmentUsage(newEquipmentList);
+      })
+      .catch((error) => {
+        console.log(
+          "equipmentByAgency() /stats/equipmentByAgency.json error : ",
+          error
+        );
+      });
+  };
 
   //시행 기관별 대상자(시니어) 등록 현황
   const [seniorEnroll, setSeniorEnroll] = React.useState([]);
@@ -140,42 +210,57 @@
     fetch("/stats/seniorByAgency.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
       body: JSON.stringify({
-        'government_id': state.loginUser['government_id'],
+        government_id: state.loginUser["government_id"],
       }),
-    }).then((response) => response.json()).then((data) => {
-      console.log("시행기관별 시니어 등록 현황 : ", data);
-      let newSeniorList = updateList(data['agencyList'], data['seniorList']);
-      console.log("new senior list", newSeniorList);
-      setSeniorEnroll(newSeniorList);
-    }).catch((error) => {
-      console.log('seniorByAgency() /stats/seniorByAgency.json error : ', error);
-    });
-  }
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("시행기관별 시니어 등록 현황 : ", data);
+        let newSeniorList = updateList(data["agencyList"], data["seniorList"]);
+        console.log("new senior list", newSeniorList);
+        setSeniorEnroll(newSeniorList);
+      })
+      .catch((error) => {
+        console.log(
+          "seniorByAgency() /stats/seniorByAgency.json error : ",
+          error
+        );
+      });
+  };
 
   // 최근 복약률
-  const [medicationSelectListByNew, setMedicationSelectListByNew] = React.useState([]);
+  const [medicationSelectListByNew, setMedicationSelectListByNew] =
+    React.useState([]);
   // 최근 복약률 조회
   const seniorMedicationSelectListByNew = () => {
     fetch("/user/seniorMedicationSelectListByNew.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
-      body: JSON.stringify({ "government_id": state.loginUser['government_id'] }),
-    }).then((response) => response.json()).then((data) => {
-      console.log("seniorMedicationSelectListByNew : ", data);
-      setMedicationSelectListByNew(data)
-    }).catch((error) => {
-      console.log('seniorMedicationSelectListByNew() /user/seniorMedicationSelectListByNew.json error : ', error);
-    });
+      body: JSON.stringify({ government_id: state.loginUser["government_id"] }),
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log("seniorMedicationSelectListByNew : ", data);
+        setMedicationSelectListByNew(data);
+      })
+      .catch((error) => {
+        console.log(
+          "seniorMedicationSelectListByNew() /user/seniorMedicationSelectListByNew.json error : ",
+          error
+        );
+      });
   };
 
   // 복약률 목록
-  const [medicationSelectListByMonth, setMedicationSelectListByMonth] = React.useState([]);
-  const [medicationSelectListByYear, setMedicationSelectListByYear] = React.useState([]);
+  const [medicationSelectListByMonth, setMedicationSelectListByMonth] =
+    React.useState([]);
+  const [medicationSelectListByYear, setMedicationSelectListByYear] =
+    React.useState([]);
   // 복약률 목록 조회
   const seniorMedicationSelectListByMonth = () => {
     let totalYearArr = [];
@@ -184,49 +269,67 @@
     fetch("/user/seniorMedicationSelectListByMonth.json", {
       method: "POST",
       headers: {
-        'Content-Type': 'application/json; charset=UTF-8'
+        "Content-Type": "application/json; charset=UTF-8",
       },
-      body: JSON.stringify({ "government_id": state.loginUser['government_id'] }),
-    }).then((response) => response.json()).then((data) => {
-      data.map((item, idx) => {
-        item['year'] = item['medication_default_date'].substr(0, 4);
-        item['month'] = item['medication_default_date'].substr(5, 2);
-        totalYearArr.push(item['medication_default_date'].substr(0, 4));
-        item['date'] = new Date(item['medication_default_date']).getTime();
-      })
-
-      const setYearArr = [...new Set(totalYearArr)];
-      console.log("totalYearArr: ", setYearArr);
-
-      setYearArr.map((year, yearIdx) => {
-        let sum = 0;
-        let count = 0;
-        let avg = 0;
-
-        let monthArr = ['-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-', '-'];
-
+      body: JSON.stringify({ government_id: state.loginUser["government_id"] }),
+    })
+      .then((response) => response.json())
+      .then((data) => {
         data.map((item, idx) => {
-          if (item['year'] == year) {
-            sum += item['average'];
-            count++;
-            monthArr[Number(item['month']) - 1] = item['average'];
-          }
-        })
+          item["year"] = item["medication_default_date"].substr(0, 4);
+          item["month"] = item["medication_default_date"].substr(5, 2);
+          totalYearArr.push(item["medication_default_date"].substr(0, 4));
+          item["date"] = new Date(item["medication_default_date"]).getTime();
+        });
 
-        avg = parseInt(sum / count);
-        yearArr.push({ "year": [year], "average": avg, "data": monthArr });
+        const setYearArr = [...new Set(totalYearArr)];
+        console.log("totalYearArr: ", setYearArr);
+
+        setYearArr.map((year, yearIdx) => {
+          let sum = 0;
+          let count = 0;
+          let avg = 0;
+
+          let monthArr = [
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+            "-",
+          ];
+
+          data.map((item, idx) => {
+            if (item["year"] == year) {
+              sum += item["average"];
+              count++;
+              monthArr[Number(item["month"]) - 1] = item["average"];
+            }
+          });
+
+          avg = parseInt(sum / count);
+          yearArr.push({ year: [year], average: avg, data: monthArr });
+        });
+
+        console.log("yearArr : ", yearArr);
+        setMedicationSelectListByYear(yearArr);
+
+        console.log("seniorMedicationSelectListByMonth : ", data);
+        setMedicationSelectListByMonth(data);
       })
-
-      console.log("yearArr : ", yearArr);
-      setMedicationSelectListByYear(yearArr);
-
-      console.log("seniorMedicationSelectListByMonth : ", data);
-      setMedicationSelectListByMonth(data);
-    }).catch((error) => {
-      console.log('seniorMedicationSelectListByMonth() /user/seniorMedicationSelectListByMonth.json error : ', error);
-    });
+      .catch((error) => {
+        console.log(
+          "seniorMedicationSelectListByMonth() /user/seniorMedicationSelectListByMonth.json error : ",
+          error
+        );
+      });
   };
-
 
   function updateList(agencyList, countList) {
     const result = [];
@@ -239,24 +342,27 @@
           break;
         }
       }
-      result.push({ agency_id: agency.agency_id, agency_name: agency.agency_name, count: count });
+      result.push({
+        agency_id: agency.agency_id,
+        agency_name: agency.agency_name,
+        count: count,
+      });
     }
     return result;
   }
 
-
-
   const iconHouse = new L.Icon({
-    iconUrl: '/client/resources/files/images/house.png',
-    iconRetinaUrl: '/client/resources/files/images/house.png',
+    iconUrl: "/client/resources/files/images/house.png",
+    iconRetinaUrl: "/client/resources/files/images/house.png",
     iconSize: [20, 20],
-    className: 'leaflet-background-radius-icon'//leaflet-div-icon
+    className: "leaflet-background-radius-icon", //leaflet-div-icon
   });
 
   React.useEffect(() => {
     seniorSelectList();
     temperatureRiskCount();
     batteryRiskCount();
+    receiveDataMissRiskCount();
     visitByMonthList();
     equipmentByAgency();
     seniorByAgency();
@@ -270,39 +376,93 @@
         <div className="sub-grid-government">
           <ul className="content-box statistics-govern" background="#8ef3d1">
             <li>
-              <p><MedicationIcon sx={{ width: "50px", height: "50px", color: "#ffffff", background: "#076143", borderRadius: "50px" }} /></p>
+              <p>
+                <MedicationIcon
+                  sx={{
+                    width: "50px",
+                    height: "50px",
+                    color: "#ffffff",
+                    background: "#076143",
+                    borderRadius: "50px",
+                  }}
+                />
+              </p>
               <p>{cityName} 미복약 위험 대상자</p>
               <p>0</p>
             </li>
           </ul>
-          <ul className="content-box statistics-govern" background="#ebe7b9" >
+          <ul className="content-box statistics-govern" background="#ebe7b9">
             <li>
-              <p><DeviceThermostatIcon sx={{ width: "50px", height: "50px", color: "#ffffff", background: "#f1de05", borderRadius: "50px" }} /></p>
+              <p>
+                <DeviceThermostatIcon
+                  sx={{
+                    width: "50px",
+                    height: "50px",
+                    color: "#ffffff",
+                    background: "#f1de05",
+                    borderRadius: "50px",
+                  }}
+                />
+              </p>
               <p>{cityName} 댁내 온도 위험 대상자</p>
-              <p className={temperatureCount > 0 ? "red" : null}>{temperatureCount}</p>
+              <p className={temperatureCount > 0 ? "red" : null}>
+                {temperatureCount}
+              </p>
             </li>
           </ul>
           <ul className="content-box statistics-govern" background="#5f9af3">
             <li>
-              <p><BatteryCharging20Icon sx={{ width: "50px", height: "50px", color: "#ffffff", background: "#5f9af3", borderRadius: "50px" }} /></p>
+              <p>
+                <BatteryCharging20Icon
+                  sx={{
+                    width: "50px",
+                    height: "50px",
+                    color: "#ffffff",
+                    background: "#5f9af3",
+                    borderRadius: "50px",
+                  }}
+                />
+              </p>
               <p>{cityName} 배터리 부족 대상자 </p>
               <p>{batteryCount}</p>
             </li>
           </ul>
           <ul className="content-box statistics-govern" background="#8080FF">
             <li>
-              <p><WifiOffIcon sx={{ width: "50px", height: "50px", padding: "5px", color: "#ffffff", background: "#8080FF", borderRadius: "50px", boxSizing: "border-box" }} /></p>
+              <p>
+                <WifiOffIcon
+                  sx={{
+                    width: "50px",
+                    height: "50px",
+                    padding: "5px",
+                    color: "#ffffff",
+                    background: "#8080FF",
+                    borderRadius: "50px",
+                    boxSizing: "border-box",
+                  }}
+                />
+              </p>
               <p>{cityName} 데이터 미확인 대상자 </p>
-              <p>{batteryCount}</p>
+              <p>{receiveDataMissCount}</p>
             </li>
           </ul>
         </div>
         <div className="content-box combine-left-government combine-bottom-government2 main-main">
           <div className="flex">
-            <Title title={"지역별 케어 대상자 분포 현황"} explanation={"지역 선택 시 해당 지역의 대상자리스트가 보여집니다."} />
+            <Title
+              title={"지역별 케어 대상자 분포 현황"}
+              explanation={
+                "지역 선택 시 해당 지역의 대상자리스트가 보여집니다."
+              }
+            />
           </div>
-          <div style={{ height: 'calc(100% - 60px)' }}>
-            <MapContainer center={latLng(35.8713802646197, 128.601805491072)} zoom={13} scrollWheelZoom={true} style={{ height: '100%' }}>
+          <div style={{ height: "calc(100% - 60px)" }}>
+            <MapContainer
+              center={latLng(35.8713802646197, 128.601805491072)}
+              zoom={13}
+              scrollWheelZoom={true}
+              style={{ height: "100%" }}
+            >
               <TileLayer
                 attribution='&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
                 url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
@@ -315,15 +475,16 @@
 
               <LayerGroup>
                 {senior.userList.map((item, idx) => {
-                  return item['y'] != null && item['x'] != null ? (
-                    <Marker position={[item['y'], item['x']]} icon={iconHouse}>
+                  return item["y"] != null && item["x"] != null ? (
+                    <Marker position={[item["y"], item["x"]]} icon={iconHouse}>
                       <Popup>
                         <div>
-                          {item['user_name']}({item['user_birth']} - {item['user_gender']})
+                          {item["user_name"]}({item["user_birth"]} -{" "}
+                          {item["user_gender"]})
                         </div>
                       </Popup>
                     </Marker>
-                  ) : null
+                  ) : null;
                 })}
               </LayerGroup>
             </MapContainer>
@@ -340,48 +501,65 @@
           <div className="flex">
             <Title title={`${cityName}  복약수 순위`} />
           </div>
-          <div style={{ height: 'calc(100% - 60px)' }}>
-            {
-              medicationSelectListByNew.length > 0 ?
-                <Chart8 data={medicationSelectListByNew} />
-                : <div className="no-data"><p>데이터가 없습니다.</p></div>
-            }
+          <div style={{ height: "calc(100% - 60px)" }}>
+            {medicationSelectListByNew.length > 0 ? (
+              <Chart8 data={medicationSelectListByNew} />
+            ) : (
+              <div className="no-data">
+                <p>데이터가 없습니다.</p>
+              </div>
+            )}
           </div>
         </div>
-        <div className="content-box combine-left-government2" style={{ minHeight: '300px' }}>
+        <div
+          className="content-box combine-left-government2"
+          style={{ minHeight: "300px" }}
+        >
           <div className="flex">
-            <Title title={`${cityName} 복약률 평균`} explanation={"해당 지역의 대상자 복약률이 그래프로 보여집니다."} />
+            <Title
+              title={`${cityName} 복약률 평균`}
+              explanation={"해당 지역의 대상자 복약률이 그래프로 보여집니다."}
+            />
           </div>
-          <div style={{ height: 'calc(100% - 60px)' }}>
-            {
-              medicationSelectListByMonth.length > 0 ?
-                <Chart2_govern data={medicationSelectListByMonth} />
-                : <div className="no-data"><p>데이터가 없습니다.</p></div>
-            }
+          <div style={{ height: "calc(100% - 60px)" }}>
+            {medicationSelectListByMonth.length > 0 ? (
+              <Chart2_govern data={medicationSelectListByMonth} />
+            ) : (
+              <div className="no-data">
+                <p>데이터가 없습니다.</p>
+              </div>
+            )}
           </div>
         </div>
         <div className="content-box combine-right-government2">
           <div className="flex">
-            <Title title={`기관별 대상자 등록 현황`} explanation={"약상자 사용자의 데이터 차트가 보여집니다."} />
+            <Title
+              title={`기관별 대상자 등록 현황`}
+              explanation={"약상자 사용자의 데이터 차트가 보여집니다."}
+            />
           </div>
-          <div style={{ height: 'calc(100% - 60px)' }}>
-            {
-              seniorEnroll.length > 0 ?
-                <Chart5 data={seniorEnroll} />
-                : <div className="no-data"><p>데이터가 없습니다.</p></div>
-            }
+          <div style={{ height: "calc(100% - 60px)" }}>
+            {seniorEnroll.length > 0 ? (
+              <Chart5 data={seniorEnroll} />
+            ) : (
+              <div className="no-data">
+                <p>데이터가 없습니다.</p>
+              </div>
+            )}
           </div>
         </div>
         <div className="content-box combine-right-government">
           <div className="flex">
             <Title title={`기관별 약상자 사용 현황`} explanation={""} />
           </div>
-          <div style={{ height: 'calc(100% - 60px)' }}>
-            {
-              equipmentUsage.length > 0 ?
-                <Donut1_govern data={equipmentUsage} />
-                : <div className="no-data"><p>데이터가 없습니다.</p></div>
-            }
+          <div style={{ height: "calc(100% - 60px)" }}>
+            {equipmentUsage.length > 0 ? (
+              <Donut1_govern data={equipmentUsage} />
+            ) : (
+              <div className="no-data">
+                <p>데이터가 없습니다.</p>
+              </div>
+            )}
           </div>
         </div>
         <div className="content-box span4 table-size-fix">
@@ -408,19 +586,21 @@
               {medicationSelectListByYear.map((item, idx) => {
                 return (
                   <tr>
-                    <td>{item['year']}</td>
-                    <td>{item['average'] == '-' ? '-' : item['average'] + '%'}</td>
-                    {CommonUtil.isEmpty(item['data']) == false ? (
-                      item['data'].map((item1, idx1) => {
-                        return (
-                          <>
-                            <td>{item1 == '-' ? '-' : item1 + '%'}</td>
-                          </>
-                        )
-                      })
-                    ) : null}
+                    <td>{item["year"]}</td>
+                    <td>
+                      {item["average"] == "-" ? "-" : item["average"] + "%"}
+                    </td>
+                    {CommonUtil.isEmpty(item["data"]) == false
+                      ? item["data"].map((item1, idx1) => {
+                          return (
+                            <>
+                              <td>{item1 == "-" ? "-" : item1 + "%"}</td>
+                            </>
+                          );
+                        })
+                      : null}
                   </tr>
-                )
+                );
               })}
             </tbody>
           </table>
Add a comment
List