Compare commits

...

24 Commits

Author SHA1 Message Date
141e46f150 신규 판매점 등록시 2차이상인경우 정가 가격 등록 2026-01-23 15:15:18 +09:00
6c9286626e [1417] 폰트통일 2026-01-23 09:34:15 +09:00
2c51f508f6 [1375]인증용량 계산수정 2026-01-22 14:45:51 +09:00
4db0654e73 pdf null 오류 2026-01-22 13:42:10 +09:00
65a0fd430e [1375]인증용량 계산수정 2026-01-22 13:41:41 +09:00
a9adaf4d23 [1414]출력에서 기울기(촌) 소수점 2자리 2026-01-22 13:41:14 +09:00
51624587fa [1375]인증용량 계산수정 2026-01-21 11:30:56 +09:00
0e42065940 [1375]인증용량 계산수정 2026-01-21 11:21:14 +09:00
daff44d1b2 [1375]인증용량 계산수정 2026-01-21 11:13:07 +09:00
7ad357e623 Merge remote-tracking branch 'origin/dev' into feature/ysCha 2026-01-20 13:51:29 +09:00
cb59653c6c [1375]인증용량 2026-01-20 13:49:32 +09:00
e3f4bc3fb3 Merge pull request '[1394]시뮬레이션 목록 오류' (#328) from dev_cha into dev
Reviewed-on: #328
2026-01-19 11:10:00 +09:00
3156052526 [1394]시뮬레이션 목록 오류 2026-01-19 11:08:57 +09:00
8ef500eb7d Merge pull request '[이정표] 견적서 PDF 2차점 가격 숨김 처리' (#325) from feature/dev-jp-001 into dev
Reviewed-on: #325
2026-01-14 16:10:20 +09:00
6d711bfc5c [이정표] 견적서 PDF 2차점 가격 숨김 처리 2026-01-14 16:09:33 +09:00
ffe341153b Merge pull request '[이정표] 견적서 PDF 2차점 가격 숨김 처리' (#323) from feature/dev-jp-001 into dev
Reviewed-on: #323
2026-01-14 14:27:14 +09:00
e90cbc5d70 [이정표] 견적서 PDF 2차점 가격 숨김 처리 2026-01-14 14:26:39 +09:00
fd968a997e Merge pull request '[이정표] 견적서 PDF 2차점 가격 숨김 처리' (#322) from feature/dev-jp-001 into dev
Reviewed-on: #322
2026-01-14 14:23:35 +09:00
171f37de8c [이정표] 견적서 PDF 2차점 가격 숨김 처리 2026-01-14 14:21:56 +09:00
586fcb7ae0 Merge pull request '[이정표] 견적서 PDF 2차점 가격 숨김 처리' (#320) from feature/dev-jp-001 into dev
Reviewed-on: #320
2026-01-14 14:03:09 +09:00
293a1a3a82 [이정표] 견적서 PDF 2차점 가격 숨김 처리 2026-01-14 14:02:13 +09:00
efed783c6a Merge pull request '[이정표] 견적서 2차점 가격 보이도록 처리 (2차가 작성한 경우)' (#317) from feature/dev-jp-001 into dev
Reviewed-on: #317
2026-01-14 13:13:10 +09:00
54471f06f9 [이정표] 견적서 2차점 가격 보이도록 처리 (2차가 작성한 경우) 2026-01-14 13:11:58 +09:00
6682663381 Merge pull request '비밀번호 10자리로 자릿수 변경' (#314) from feature/rjy-0113 into dev
Reviewed-on: #314
2026-01-13 17:35:36 +09:00
15 changed files with 198 additions and 98 deletions

View File

@ -1335,8 +1335,18 @@ public class EstimateService {
}
try {
// 견적서 상세 조회
estimateResponse = estimateMapper.selectEstimatePdfDetail(estimateRequest);
// 1차점이 2차점 견적서를 만들어 경우 - 2차점 사용자가 다운받을 무조건 정가로만 표시
String userId = estimateRequest.getUserId();
String storeLvl = estimateRequest.getStoreLvl();
if (storeLvl != null && !storeLvl.equals("1")) {
if (!Objects.equals(estimateResponse.getCreateSaleStoreId(), userId)) {
estimateRequest.setSchUnitPriceFlg("1");
}
}
// file Name 명이 없는경우
if (estimateRequest.getFileName() == null || "".equals(estimateRequest.getFileName())) {
@ -1662,15 +1672,8 @@ public class EstimateService {
String[] arrSection = new String[6];
int iSection = 0;
String templateFilePath = "pdf_download_quotation_detail_template.html";
String userId = estimateRequest.getUserId();
String storeLvl = estimateRequest.getStoreLvl();
String createStoreId = estimateRequest.getCreateStoreId();
if(storeLvl != null && storeLvl.equals("2")){
if(!Objects.equals(createStoreId, userId))
templateFilePath = "pdf_download_quotation_detail_template2.html";
}
String templateFilePath = "pdf_download_quotation_detail_template.html";
// 템플릿 html 조회
Document doc = PdfUtil.getPdfDoc(request, templateFilePath);
@ -1718,16 +1721,6 @@ public class EstimateService {
String excelTemplateNam = "excel_download_quotation_detail_template.xlsx";
String userId = estimateRequest.getUserId();
String storeLvl = estimateRequest.getStoreLvl();
String createStoreId = estimateRequest.getCreateStoreId();
if(storeLvl != null && storeLvl.equals("2")){
if(!Objects.equals(createStoreId, userId))
excelTemplateNam = "excel_download_quotation_detail_template2.xlsx";
}
// itemGroup이 "STAND_" 아닌 항목들만 필터링하여 새로운 리스트 생성
List<ItemResponse> estimateItemList15 = estimateItemList.stream()
.filter(item -> !"STAND_".equals(item.getItemGroup()))
@ -2124,7 +2117,7 @@ public class EstimateService {
elm.text(StringUtils.defaultString(data.getTotVolKw()));
elm = doc.getElementById("totPrice");
elm.text(StringUtils.defaultString(data.getTotPrice()));
elm.text(StringUtils.defaultString(data.getTotPrice()));
StringBuilder sb = new StringBuilder();
for (ItemResponse itemResponse : list) {
@ -2163,7 +2156,7 @@ public class EstimateService {
}
elm = doc.getElementById("itemList_detail");
elm.before(sb.toString());
elm = doc.getElementById("supplyPrice");
elm.text(StringUtils.defaultString(data.getSupplyPrice()));
@ -2171,7 +2164,7 @@ public class EstimateService {
elm.text(StringUtils.defaultString(data.getVatPrice()));
elm = doc.getElementById("totPrice1");
elm.text(StringUtils.defaultString(data.getTotPrice()));
elm.text(StringUtils.defaultString(data.getTotPrice()));
if (!StringUtils.isEmpty(data.getRemarks())) {
elm = doc.getElementById("remarks");

View File

@ -307,5 +307,8 @@ public class EstimateResponse {
@Schema(description = "영업점 Fax번호")
private String salesOfficeFax;
@Schema(description = "작성자 판매점 ID")
private String createSaleStoreId;
}

View File

@ -2288,31 +2288,42 @@ public class PwrGnrSimService {
// 상단 요약정보
elm = doc.getElementById("objectNo");
elm.text(
StringUtils.defaultString(data.getObjectNo() + " (Plan No : " + data.getPlanNo() + ")"));
if (elm != null) {
elm.text(
StringUtils.defaultString(data.getObjectNo() + " (Plan No : " + data.getPlanNo() + ")"));
}
elm = doc.getElementById("drawingEstimateCreateDate");
elm.text(StringUtils.defaultString(data.getDrawingEstimateCreateDate()));
if (elm != null) {
elm.text(StringUtils.defaultString(data.getDrawingEstimateCreateDate()));
}
elm = doc.getElementById("prefName");
elm.text(StringUtils.defaultString(data.getPrefName()));
if (elm != null) {
elm.text(StringUtils.defaultString(data.getPrefName()));
}
elm = doc.getElementById("areaName");
elm.text(StringUtils.defaultString(data.getAreaName()));
if (elm != null) {
elm.text(StringUtils.defaultString(data.getAreaName()));
}
elm = doc.getElementById("capacity");
elm.text(StringUtils.defaultString(data.getCapacity()) + " kW");
if (elm != null) {
elm.text(StringUtils.defaultString(data.getCapacity()) + " kW");
}
elm = doc.getElementById("anlFrcsGnrt");
elm.text(StringUtils.defaultString(String.valueOf(pwrGnrSimList[12])));
if (elm != null) {
elm.text(StringUtils.defaultString(String.valueOf(pwrGnrSimList[12])));
}
elm = doc.getElementById("snowfall");
elm.text(StringUtils.defaultString(data.getSnowfall()) + " cm");
if (elm != null) {
elm.text(StringUtils.defaultString(data.getSnowfall()) + " cm");
}
elm = doc.getElementById("standardWindSpeedId");
elm.text(StringUtils.defaultString(data.getStandardWindSpeedId()));
if (elm != null) {
elm.text(StringUtils.defaultString(data.getStandardWindSpeedId()));
}
elm = doc.getElementById("pwrGnrSimTypeName");
if (elm != null) {
elm.text(StringUtils.defaultString(data.getPwrGnrSimTypeName()));
}
boolean isUnchanged = Arrays.stream(pwrGnrSimList).allMatch(value -> value == "00");
if (!isUnchanged) { // 변경된값 확인
@ -2502,8 +2513,10 @@ public class PwrGnrSimService {
pwrGnrSimResponse.setFrcPwrGnrList(pwrGnrSimResponse.getHatsudenryouAllSnow());
} else if ("B".equals(estimateRequest.getPwrGnrSimType())) {
pwrGnrSimResponse.setFrcPwrGnrList(pwrGnrSimResponse.getHatsudenryouPeakcutAll());
pwrGnrSimResponse.setPwrGnrSimTypeName(message.getMessage("common.message.simulation.pwrGnrSimType.B"));
} else if ("D".equals(estimateRequest.getPwrGnrSimType())) {
pwrGnrSimResponse.setFrcPwrGnrList(pwrGnrSimResponse.getHatsudenryouPeakcutAllSnow());
pwrGnrSimResponse.setPwrGnrSimTypeName(message.getMessage("common.message.simulation.pwrGnrSimType.D"));
}
pwrGnrSimResponse.setIntFrcPwrGnrList(

View File

@ -30,6 +30,9 @@ public class PwrGnrSimResponse {
@Schema(description = "list 종류")
private String pwrGnrSimType;
@Schema(description = "list 종류명")
private String pwrGnrSimTypeName;
@Schema(description = "물건번호")
private String objectNo;

View File

@ -54,6 +54,24 @@ public interface UserMapper {
*/
int setUserSave(UserRequest userReqList) throws Exception;
/**
* 판매점의 정가가격 등록 여부 체크(2차점이상인 판매점만 해당)
*
* @param storeReq
* @return
* @throws Exception
*/
int getStoreUnitPriceChk(StoreRequest storeReq) throws Exception;
/**
* 판매점의 정가가격 등록
*
* @param storeReq
* @return
* @throws Exception
*/
int setStoreUnitPrice(StoreRequest storeReq) throws Exception;
/**
* 영업사원 삭제
*

View File

@ -74,6 +74,14 @@ public class UserService {
userMapper.setStoreInfoSave(storeRequest);
userMapper.setStoreSapCdSave(storeRequest);
userMapper.setStoreNorthModuleSave(storeRequest);
// 2차점 이상인 판매점 신규 등록시 판매점에 정가 가격 추가
if ("1".equals(storeRequest.getSecondAgentFlg())) {
if (userMapper.getStoreUnitPriceChk(storeRequest) == 0) {
// 등록된 가격이 없는경우 정가 가격 등록
userMapper.setStoreUnitPrice(storeRequest);
}
}
} catch (Exception e) {
log.error(e.getMessage());
}

View File

@ -366,53 +366,64 @@
<select id="selectEstimateRoofCertVolKw" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="String">
/* sqlid : com.interplug.qcast.biz.estimate.selectEstimateRoofCertVolKw */
SELECT
/* FORMAT(ISNULL(SUM(CASE WHEN T.MODULE_VOL_KW <![CDATA[ <= ]]> T.PC_VOL_KW THEN T.MODULE_VOL_KW ELSE T.PC_VOL_KW END), 0), '#,##0.000') AS CERT_VOL_KW */
REPLACE(CONVERT(VARCHAR, SUM(CAST(ISNULL(
CASE
WHEN T.MODULE_VOL_KW <![CDATA[ <= ]]> T.PC_VOL_KW THEN T.MODULE_VOL_KW
ELSE T.PC_VOL_KW
END, 0) AS NUMERIC(18, 3))), 1), ',', '') AS CERT_VOL_KW
FROM
(
SELECT
P.OBJECT_NO
, P.PLAN_NO
, PE.ITEM_ID
, PE.AMOUNT
, PE.SPECIFICATION
, I.ITEM_NAME
, ROUND((PE.AMOUNT * CAST(ISNULL(PE.SPECIFICATION, 0) AS FLOAT) / 1000), 4) AS PC_VOL_KW
, ISNULL((
SELECT
SUM((AMOUNT * CAST(ISNULL(SPECIFICATION, 0) AS FLOAT) / 1000))
FROM T_PART_ROOF_ITEM_ESTIMATE (NOLOCK)
WHERE OBJECT_NO = PE.OBJECT_NO
AND PLAN_NO = PE.PLAN_NO
/*AND ISNULL(NULLIF(QCAST_CUST_PRD_ID, ''), PC_ITEM_ID) = PE.ITEM_ID*/
AND (
(QCAST_CUST_PRD_ID IS NOT NULL AND QCAST_CUST_PRD_ID = PC_ITEM_ID AND ISNULL(QCAST_CUST_PRD_ID, '') = PE.ITEM_ID)
OR
(QCAST_CUST_PRD_ID IS NULL AND PC_ITEM_ID = PE.ITEM_ID)
OR
(QCAST_CUST_PRD_ID IS NOT NULL AND QCAST_CUST_PRD_ID != PC_ITEM_ID AND QCAST_CUST_PRD_ID = PE.ITEM_ID))), 0) AS MODULE_VOL_KW
FROM T_PLAN P WITH (NOLOCK)
INNER JOIN T_PART_ESTIMATE PE WITH (NOLOCK)
ON P.OBJECT_NO = PE.OBJECT_NO
AND P.PLAN_NO = PE.PLAN_NO
INNER JOIN M_ITEM I WITH (NOLOCK)
ON PE.ITEM_ID = I.ITEM_ID
WHERE P.OBJECT_NO = #{objectNo}
AND P.PLAN_NO = #{planNo}
-- AND I.POWER_COM_FLG = '1' /* PCS 아이템만 */
AND (
CASE
WHEN I.POWER_COM_FLG = '1' THEN 1
WHEN I.POWER_COM_FLG != '1' AND I.ITEM_GROUP = 'STORAGE_BATTERY' AND ISNULL(I.PNOW_W, 0) > 0 THEN 1
ELSE 0
END
) = 1
) T
<![CDATA[
SELECT SUM (
CAST (ISNULL(
CASE WHEN ISNULL(B.PQ_VOL, 0) = 0
THEN (CASE WHEN B.P_VOL < B.M_VOL THEN B.P_VOL ELSE B.M_VOL END)
ELSE (CASE WHEN B.PQ_VOL < B.M_VOL THEN B.PQ_VOL ELSE B.M_VOL END)
END, 0) AS NUMERIC(18, 3))) AS CERT_VOL_KW
FROM (
SELECT DISTINCT
A.P_ITEM_ID
, (SELECT ROUND((TE.AMOUNT * CAST(ISNULL(TE.SPECIFICATION,0) AS FLOAT) / 1000), 4)
FROM T_PART_ESTIMATE TE (NOLOCK)
WHERE TE.OBJECT_NO = A.OBJECT_NO AND TE.PLAN_NO = A.PLAN_NO AND TE.ITEM_ID = A.P_ITEM_ID) AS P_VOL
, TRI.QCAST_CUST_PRD_ID
, (SELECT ROUND((TE.AMOUNT * CAST(ISNULL(TE.SPECIFICATION,0) AS FLOAT) / 1000), 4)
FROM T_PART_ESTIMATE TE (NOLOCK)
WHERE TE.OBJECT_NO = A.OBJECT_NO AND TE.PLAN_NO = A.PLAN_NO AND TE.ITEM_ID = TRI.QCAST_CUST_PRD_ID) AS PQ_VOL
, TRI.ITEM_ID AS M_ITEM_ID
, (SELECT ROUND((A.M_AMT * CAST(ISNULL(TE.SPECIFICATION,0) AS FLOAT) / 1000), 4)
FROM T_PART_ESTIMATE TE (NOLOCK)
WHERE TE.OBJECT_NO = A.OBJECT_NO AND TE.PLAN_NO = A.PLAN_NO AND TE.ITEM_ID = TRI.ITEM_ID) AS M_VOL
, A.M_AMT
FROM (
SELECT
TPC.OBJECT_NO
, TPC.PLAN_NO
, TPC.ITEM_ID AS P_ITEM_ID
, TPC.CIRCUIT_CFG
,(
SELECT SUM(CAST(T.Item AS INT))
FROM (
SELECT CAST('<X>' + REPLACE(TPC.CIRCUIT_CFG, ',', '</X><X>') + '</X>' AS XML) AS XMLDATA
) AS Sub
CROSS APPLY (
SELECT f.x.value('.', 'VARCHAR(MAX)') AS Item
FROM Sub.XMLDATA.nodes('/X') AS f(x)
) AS T
WHERE T.Item <> ''
) AS M_AMT
FROM T_PART_CIRCUIT_ITEM_ESTIMATE TPC (NOLOCK)
WHERE
TPC.OBJECT_NO = #{objectNo}
AND
TPC.PLAN_NO = #{planNo}
)A
LEFT OUTER JOIN (
SELECT TRI2.*, TRE.ROOF_SURFACE -- 필요한 컬럼들
FROM T_PART_ROOF_ITEM_ESTIMATE TRI2 (NOLOCK)
INNER JOIN T_PART_ROOF_ESTIMATE TRE (NOLOCK)
ON TRI2.OBJECT_NO = TRE.OBJECT_NO
AND TRI2.PLAN_NO = TRE.PLAN_NO
AND TRI2.ROOF_SURFACE_ID = TRE.ROOF_SURFACE_ID
) TRI
ON A.OBJECT_NO = TRI.OBJECT_NO
AND A.PLAN_NO = TRI.PLAN_NO
)B
]]>
</select>
<select id="selectEstimateRoofList" parameterType="com.interplug.qcast.biz.estimate.dto.EstimateRequest" resultType="com.interplug.qcast.biz.estimate.dto.RoofResponse">

View File

@ -104,8 +104,10 @@
WHEN A.CLASS_TYPE = 0 THEN A.SLOPE
ELSE A.ANGLE END) AS SLOPE_ANGLE
, (CASE
WHEN A.CLASS_TYPE = 0 THEN CAST(CAST(A.SLOPE AS INT)AS VARCHAR) + '寸'
ELSE CAST(CAST(A.ANGLE AS INT)AS VARCHAR) + N'º' END) AS SLOPE_ANGLE_TXT
WHEN A.CLASS_TYPE = 0
THEN CAST(CAST(A.SLOPE AS FLOAT) AS VARCHAR) + '寸'
ELSE CAST(CAST(A.ANGLE AS FLOAT) AS VARCHAR) + N'º'
END) AS SLOPE_ANGLE_TXT
FROM T_PART_ROOF_ESTIMATE A WITH (NOLOCK)
INNER JOIN T_PART_ROOF_ITEM_ESTIMATE B WITH (NOLOCK)
ON A.OBJECT_NO = B.OBJECT_NO

View File

@ -87,8 +87,9 @@
, DISP_FAX = #{dispFax}
, DISP_MAIL = #{dispMail}
, SALE_STORE_LEVEL = #{saleStoreLevel}
, PRICE_PATTERN = (CASE WHEN ISNULL(PRICE_PATTERN, '') = '' AND #{secondAgentFlg} = '1' THEN '510' ELSE PRICE_PATTERN END)
, DEL_FLG = #{delFlg}
, LAST_EDIT_DATETIME = #{lastEditDatetime}
, LAST_EDIT_DATETIME = GETDATE()
, LAST_EDIT_USER = #{lastEditUser}
WHEN NOT MATCHED THEN
INSERT (
@ -107,6 +108,7 @@
, SECOND_AGENT_FLG
, FIRST_AGENT_ID
, PARENT_SALE_AGENT_ID
, PRICE_PATTERN
, OUTPUT_COMP_CLASS -- 출력 대비표 분류
, INDUSTRIAL_OUTPUT_COMP_CLASS -- 산업출력 대비표 출력
, FIXED_PRICE_FLG -- 정가 표시
@ -143,6 +145,7 @@
, #{secondAgentFlg}
, #{firstAgentId}
, #{parentSaleAgentId}
, (CASE WHEN #{secondAgentFlg} = '1' THEN '510' ELSE NULL END)
, 0 -- 출력 대비표 분류
, 0 -- 산업출력 대비표 출력
, 0 -- 정가 표시
@ -161,7 +164,7 @@
, #{registDatetime}
, 0
, 0 -- 적설
, #{lastEditDatetime}
, GETDATE()
, #{lastEditUser}
);
</insert>
@ -175,7 +178,7 @@
WHEN MATCHED THEN
UPDATE SET
BIZ_NO = #{bizNo}
, LAST_EDIT_DATETIME = (CASE WHEN #{lastEditDatetime} != '' THEN #{lastEditDatetime} ELSE #{registDatetime} END)
, LAST_EDIT_DATETIME = GETDATE()
WHEN NOT MATCHED THEN
INSERT (
SALE_STORE_ID
@ -184,7 +187,7 @@
) VALUES (
#{saleStoreId}
, #{bizNo}
, (CASE WHEN #{lastEditDatetime} != '' THEN #{lastEditDatetime} ELSE #{registDatetime} END)
, GETDATE()
);
</insert>
@ -207,7 +210,7 @@
, TEL = #{tel}
, FAX = #{fax}
, MAIL = #{mail}
, LAST_EDIT_DATETIME = #{lastEditDatetime}
, LAST_EDIT_DATETIME = GETDATE()
, LAST_EDIT_USER = #{lastEditUser}
-- , GROUP_ID -- '70000' , '60000'
-- , MODULE_SELECT_GROUP_ID -- 모듈 선택 그룹 ('G1','GA' ,'G2')
@ -226,6 +229,8 @@
, FAX
, MAIL
, GROUP_ID
, MODULE_SELECT_GROUP_ID
, VERSION_MANAGEMENT_ID
, DISP_COST_PRICE
, DISP_SELLING_PRICE
, REGIST_DATETIME
@ -242,14 +247,47 @@
, #{fax}
, #{mail}
, #{groupId}
, 'G1' /* 일반 공개용 */
, 'hanbaiten' /* 일반 판매점 */
, 0
, 0
, #{registDatetime}
, #{lastEditDatetime}
, GETDATE()
, GETDATE()
, #{lastEditUser}
);
</insert>
<select id="getStoreUnitPriceChk" parameterType="com.interplug.qcast.biz.user.dto.StoreRequest" resultType="Integer">
/* sqlid : com.interplug.qcast.user.getStoreUnitPriceChk */
SELECT
COUNT(1)
FROM M_SALE_STORE_PRICE
WHERE
SALE_STORE_ID = #{saleStoreId}
</select>
<insert id="setStoreUnitPrice" parameterType="com.interplug.qcast.biz.user.dto.StoreRequest" >
/* sqlid : com.interplug.qcast.user.setStoreUnitPrice */
INSERT INTO M_SALE_STORE_PRICE(
SALE_STORE_ID
, ITEM_ID
, COST_PRICE
, SALE_PRICE
, DISP_FLG
, LAST_EDIT_DATETIME
, LAST_EDIT_USER
)
SELECT #{saleStoreId}
, ITEM_ID
, COST_PRICE
, SALE_PRICE
, '1'
, GETDATE()
, #{lastEditUser}
FROM M_PRICE_PATTERN_MONEY
WHERE PRICE_PATTERN = '510'
</insert>
<insert id="setStoreNorthModuleSave" parameterType="com.interplug.qcast.biz.user.dto.StoreRequest" >
/* sqlid : com.interplug.qcast.user.setStoreNorthModuleSave */
MERGE INTO M_SALES_STORE_NORTH_MODULE AS A

View File

@ -88,4 +88,8 @@ common.message.writeToConfirm:\u4F5C\u6210\u89E3\u9664\u3092\u5B9F\u884C\u3057\u
common.message.password.init.success:\u30D1\u30B9\u30EF\u30FC\u30C9 [{0}] \u306B\u521D\u671F\u5316\u3055\u308C\u307E\u3057\u305F\u3002
common.message.no.edit.save:\u3053\u306E\u6587\u66F8\u306F\u5909\u66F4\u3067\u304D\u307E\u305B\u3093\u3002
common.message.plan.save.limit:\u8A08\u753B\u60C5\u5831\u306F\u6700\u592710\u307E\u3067\u4FDD\u5B58\u3067\u304D\u307E\u3059\u3002
common.message.plan.delete.limit:\u8A08\u753B\u60C5\u5831\u306F\u5C11\u306A\u304F\u3068\u30821\u3064\u5B58\u5728\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
common.message.plan.delete.limit:\u8A08\u753B\u60C5\u5831\u306F\u5C11\u306A\u304F\u3068\u30821\u3064\u5B58\u5728\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
common.message.simulation.pwrGnrSimType.A:\u7A4D\u96EA\u8003\u616E\u306A\u3057(\u30D4\u30FC\u30AF\u30AB\u30C3\u30C8\u306A\u3057\u767A\u96FB\u91CF)
common.message.simulation.pwrGnrSimType.B:\u7A4D\u96EA\u8003\u616E\u306A\u3057(\u30D4\u30FC\u30AF\u30AB\u30C3\u30C8\u3042\u308A\u767A\u96FB\u91CF)
common.message.simulation.pwrGnrSimType.C:\u7A4D\u96EA\u8003\u616E\u3042\u308A(\u30D4\u30FC\u30AF\u30AB\u30C3\u30C8\u306A\u3057\u767A\u96FB\u91CF)
common.message.simulation.pwrGnrSimType.D:\u7A4D\u96EA\u8003\u616E\u3042\u308A(\u30D4\u30FC\u30AF\u30AB\u30C3\u30C8\u3042\u308A\u767A\u96FB\u91CF)

View File

@ -88,4 +88,8 @@ common.message.writeToConfirm:\uC791\uC131 \uD574\uC81C\uB97C \uC2E4\uD589\uD558
common.message.password.init.success:\uBE44\uBC00\uBC88\uD638 [{0}]\uB85C \uCD08\uAE30\uD654 \uB418\uC5C8\uC2B5\uB2C8\uB2E4.
common.message.no.edit.save:This document cannot be changed.
common.message.plan.save.limit:You can only add up to 10 plan information.
common.message.plan.delete.limit:There must be at least one plan information.
common.message.plan.delete.limit:There must be at least one plan information.
common.message.simulation.pwrGnrSimType.A:\uC801\uC124 \uACE0\uB824 \uC5C6\uC74C(\uD53C\uD06C\uCEF7 \uC5C6\uB294 \uBC1C\uC804\uB7C9)
common.message.simulation.pwrGnrSimType.B:\uC801\uC124 \uACE0\uB824 \uC5C6\uC74C(\uD53C\uD06C\uCEF7 \uC788\uB294 \uBC1C\uC804\uB7C9)
common.message.simulation.pwrGnrSimType.C:\uC801\uC124 \uACE0\uB824 \uC788\uC74C(\uD53C\uD06C\uCEF7 \uC5C6\uB294 \uBC1C\uC804\uB7C9)
common.message.simulation.pwrGnrSimType.D:\uC801\uC124 \uACE0\uB824 \uC788\uC74C(\uD53C\uD06C\uCEF7 \uC788\uB294 \uBC1C\uC804\uB7C9)

View File

@ -536,6 +536,9 @@
</tr>
</tbody>
</table>
<div >
<span id="pwrGnrSimTypeName"></span>
</div>
<div id="pwrGnrChartImg">
<table class="chart-wrapper">
<tbody>