박재우 2 years ago
parent
commit
38eca47603
  1. 2
      src/main/java/com/palnet/biz/api/acnt/cstmr/model/AcntCstmrRqModel.java
  2. 18
      src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java
  3. 2
      src/main/java/com/palnet/biz/api/acnt/jwt/model/JwtProfileRsModel.java
  4. 2
      src/main/java/com/palnet/biz/api/bas/group/model/BasGroupAprvModel.java
  5. 2
      src/main/java/com/palnet/biz/api/bas/group/model/BasGroupJoinModel.java
  6. 2
      src/main/java/com/palnet/biz/api/bas/group/model/BasGroupModel.java
  7. 4
      src/main/java/com/palnet/biz/api/bas/group/service/BasGroupAprvService.java
  8. 18
      src/main/java/com/palnet/biz/api/bas/group/service/BasGroupService.java
  9. 102
      src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java
  10. 13
      src/main/java/com/palnet/biz/api/ctr/cntrl/model/CtrCntrlWeatherModel.java
  11. 89
      src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java
  12. 3
      src/main/java/com/palnet/biz/jpa/entity/PtyCstmrBas.java
  13. 7
      src/main/java/com/palnet/biz/jpa/entity/PtyCstmrGroup.java
  14. 7
      src/main/java/com/palnet/biz/jpa/entity/PtyGroupBas.java
  15. 1
      src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java
  16. 1
      src/main/java/com/palnet/biz/jpa/repository/pty/PtyGroupQueryRepository.java

2
src/main/java/com/palnet/biz/api/acnt/cstmr/model/AcntCstmrRqModel.java

@ -41,6 +41,8 @@ public class AcntCstmrRqModel{
private AnctCstmrTermsModel[] terms;
private String trmnlId;
}

18
src/main/java/com/palnet/biz/api/acnt/cstmr/service/AcntCstmrService.java

@ -1,39 +1,24 @@
package com.palnet.biz.api.acnt.cstmr.service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrEmModel;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrGroupModel;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrPwModel;
import com.palnet.comn.code.RSErrorCode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import com.palnet.biz.api.acnt.crtfyhp.service.AcntCrtfyhpService;
import com.palnet.biz.api.acnt.cstmr.controller.AcntCstmrController;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrRqModel;
import com.palnet.biz.api.acnt.cstmr.model.AcntCstmrRsModel;
import com.palnet.biz.api.acnt.cstmr.model.AnctCstmerRlModel;
import com.palnet.biz.api.acnt.cstmr.model.AnctCstmrTermsModel;
import com.palnet.biz.api.acnt.jwt.model.JwtGroupModel;
import com.palnet.biz.api.acnt.jwt.model.JwtUserModel;
import com.palnet.biz.api.acnt.jwt.utils.JwtTokenUtil;
import com.palnet.biz.api.acnt.terms.model.AcntTermsRqModel;
import com.palnet.biz.api.acnt.terms.model.AcntTermsRsModel;
import com.palnet.biz.jpa.entity.PtyCrtfyhpBas;
import com.palnet.biz.jpa.entity.PtyCstmrBas;
import com.palnet.biz.jpa.entity.PtyCstmrDtl;
import com.palnet.biz.jpa.entity.PtyCstmrGroup;
@ -45,13 +30,11 @@ import com.palnet.biz.jpa.repository.pty.PtyCstmrGroupRepository;
import com.palnet.biz.jpa.repository.pty.PtyCstmrQueryRepository;
import com.palnet.biz.jpa.repository.pty.PtyGroupBasRepository;
import com.palnet.biz.jpa.repository.pty.PtyTermsAgreeTxnRepository;
import com.palnet.biz.jpa.repository.pty.PtyTermsQueryRepository;
import com.palnet.comn.code.ErrorCode;
import com.palnet.comn.exception.CustomException;
import com.palnet.comn.utils.DateUtils;
import com.palnet.comn.utils.EncryptUtils;
import com.palnet.comn.utils.HttpUtils;
import com.palnet.comn.utils.JsonUtils;
import lombok.extern.log4j.Log4j2;
@ -163,6 +146,7 @@ public class AcntCstmrService {
basEntity.setUserPswd(rq.getUserPswd());
basEntity.setJoinDt(DateUtils.nowDate());
basEntity.setJoinIp(HttpUtils.getRequestIp());
basEntity.setTrmnlId(rq.getTrmnlId());
return ptyCstmrBasRepository.save(basEntity);

2
src/main/java/com/palnet/biz/api/acnt/jwt/model/JwtProfileRsModel.java

@ -14,4 +14,6 @@ public class JwtProfileRsModel {
private String memberName;
private String trmnlId;
}

2
src/main/java/com/palnet/biz/api/bas/group/model/BasGroupAprvModel.java

@ -33,5 +33,7 @@ public class BasGroupAprvModel {
private String aprvlUserId;
private String trmnlId;
}

2
src/main/java/com/palnet/biz/api/bas/group/model/BasGroupJoinModel.java

@ -33,4 +33,6 @@ public class BasGroupJoinModel {
private String myGroupAuthCd;
private String trmnlId;
}

2
src/main/java/com/palnet/biz/api/bas/group/model/BasGroupModel.java

@ -19,4 +19,6 @@ public class BasGroupModel {
private Date updateDt;
private String trmnlId;
}

4
src/main/java/com/palnet/biz/api/bas/group/service/BasGroupAprvService.java

@ -1,7 +1,5 @@
package com.palnet.biz.api.bas.group.service;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import org.slf4j.Logger;
@ -82,8 +80,10 @@ public class BasGroupAprvService {
entity.setAprvlUserId(rq.getAprvlUserId());
entity.setGroupAuthCd(rq.getGroupAuthCd());
entity.setTrmnlId(rq.getTrmnlId());
} else {
entity.setGroupAuthCd("");
entity.setTrmnlId("");
}
entity.setAprvlYn(rq.getAprvlYn());

18
src/main/java/com/palnet/biz/api/bas/group/service/BasGroupService.java

@ -1,8 +1,6 @@
package com.palnet.biz.api.bas.group.service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
@ -61,7 +59,7 @@ public class BasGroupService {
/**
* 나의 그룹 목록
* @param rq
* @param cstmrSno
* @return
*/
public List<BasGroupModel> mylist(int cstmrSno){
@ -74,7 +72,7 @@ public class BasGroupService {
/**
* 그룹 목록
* @param rq
* @param cstmrSno
* @return
*/
public List<BasGroupJoinModel> groupList(int cstmrSno){
@ -92,7 +90,7 @@ public class BasGroupService {
/**
* 나의 그룹 - 참여 그룹 목록
* @param rq
* @param cstmrSno
* @return
*/
public List<BasGroupJoinModel> joinList(int cstmrSno){
@ -117,7 +115,7 @@ public class BasGroupService {
/**
* 그룹 상세 조회
* @param cntrlId
* @param groupId
* @return
* @throws Exception
*/
@ -142,7 +140,7 @@ public class BasGroupService {
/**
* 그룹 생성
* @param
* @param rq
* @return
* @throws Exception
*/
@ -164,6 +162,7 @@ public class BasGroupService {
entity.setUpdateDt(DateUtils.nowDate());
entity.setUseYn("Y");
entity.setCreateDt(DateUtils.nowDate());
entity.setTrmnlId(rq.getTrmnlId());
//참여 정보 입력 하기
PtyCstmrGroup entity2 = new PtyCstmrGroup();
@ -175,6 +174,7 @@ public class BasGroupService {
entity2.setCstmrSno(rq.getCstmrSno());
entity2.setJoinYn("Y");
entity2.setJoinDt(DateUtils.nowDate());
entity2.setTrmnlId(rq.getTrmnlId());
if( ptyGroupBasRepository.save(entity) == null)
throw new CustomException(ErrorCode.FAIL);
@ -188,7 +188,7 @@ public class BasGroupService {
/**
* 그룹 수정
* @param
* @param rq
* @return
* @throws Exception
*/
@ -222,7 +222,7 @@ public class BasGroupService {
/**
* 그룹 삭제
* @param
* @param groupId
* @return
* @throws Exception
*/

102
src/main/java/com/palnet/biz/api/ctr/cntrl/controller/CtrCntrlController.java

@ -6,9 +6,10 @@ import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.*;
import com.palnet.biz.api.ctr.cntrl.model.*;
import io.swagger.annotations.ApiImplicitParam;
@ -17,6 +18,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
import org.locationtech.jts.geom.Coordinate;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
@ -121,14 +123,94 @@ public class CtrCntrlController {
@Tag(name = "드론 관제 시스템", description = "드론 관제 관련 API")
public ResponseEntity<? extends BasicResponse> restApiGetWeather(CtrCntrlWeatherModel rs) throws IOException, ParseException {
StringBuilder urlBuilder = new StringBuilder("http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getVilageFcst");
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar c1 = Calendar.getInstance();
String strToday = sdf.format(c1.getTime());
// 현재 시간
LocalTime now = LocalTime.now();
// 현재시간 출력
// 시, 분, 초 구하기
int hour = now.getHour();
int minute = now.getMinute();
int length = (int)(Math.log10(minute)+1);
int hourlength = (int)(Math.log10(hour)+1);
String strminute = Integer.toString(minute);
String strhour = Integer.toString(hour);
String basetime = null;
if(length<=1){
strminute = 0+Integer.toString(minute);
}if(hourlength<=1){
strhour = 0+Integer.toString(hour);
}
// 시, 분, 초 출력
if ((Integer.parseInt(strhour) >= 2 && Integer.parseInt(strminute )> 9) && Integer.parseInt(strhour) <= 5) {
basetime = "0200";
}
else if ((Integer.parseInt(strhour) >= 5 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 8) {
basetime = "0500";
}
else if (Integer.parseInt(strhour) >= 8 && Integer.parseInt(strminute ) < 10) {
basetime = "0500";
}
else if ((Integer.parseInt(strhour) >= 8 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 11) {
basetime = "0800";
}
else if (Integer.parseInt(strhour) >= 11 && Integer.parseInt(strminute ) < 10) {
basetime = "0800";
}
else if (Integer.parseInt(strhour) >= 11 && Integer.parseInt(strhour) < 14) {
basetime = "1100";
}
else if (Integer.parseInt(strhour) >= 14 && Integer.parseInt(strminute ) < 10) {
basetime = "1100";
}
else if ((Integer.parseInt(strhour) >= 14 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 17) {
basetime = "1400";
}
else if (Integer.parseInt(strhour) >= 17 && Integer.parseInt(strminute ) < 10) {
basetime = "1400";
}
else if ((Integer.parseInt(strhour) >= 17 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 20) {
basetime = "1700";
}
else if (Integer.parseInt(strhour) >= 20 && Integer.parseInt(strminute ) < 10) {
basetime = "2000";
}
else if ((Integer.parseInt(strhour) >= 20 && Integer.parseInt(strminute ) > 9) && Integer.parseInt(strhour) < 23) {
basetime = "2000";
}
else if (Integer.parseInt(strhour) >= 23 && Integer.parseInt(strminute ) < 10) {
basetime = "2300";
}
else if (Integer.parseInt(strhour) >= 23 && Integer.parseInt(strminute ) > 9) {
basetime = "2300";
}
List<Coordinate> coordList = new ArrayList<>();
Coordinate coord = new Coordinate();
Coordinate returnCoord = new Coordinate();
coord.setX(rs.getNx());
coord.setY(rs.getNy());
returnCoord = service.wheather(coord);
double nx = returnCoord.getX();
double ny = returnCoord.getY();
String Snx = String.format("%.0f",nx);
String Sny = String.format("%.0f",ny);
urlBuilder.append("?" + URLEncoder.encode("serviceKey","UTF-8") + "=r6RMUsk3Vtama7D6uq7MiWV9dTC9MwfIIr4%2F45y0uVNw6BaYbgpKmL%2BLUDFVTfIYUmEe4K%2FaniEjdV9mg5t82Q%3D%3D");
urlBuilder.append("&" + URLEncoder.encode("pageNo","UTF-8") + "=" + URLEncoder.encode(rs.getPageNo(),"UTF-8"));
urlBuilder.append("&" + URLEncoder.encode("numOfRows","UTF-8") + "=" + URLEncoder.encode(rs.getNumOfRows(), "UTF-8")); /*한 페이지 결과 수*/
urlBuilder.append("&" + URLEncoder.encode("dataType","UTF-8") + "=" + URLEncoder.encode(rs.getDataType(), "UTF-8")); /*요청자료형식(XML/JSON) Default: XML*/
urlBuilder.append("&" + URLEncoder.encode("base_date","UTF-8") + "=" + URLEncoder.encode(rs.getBase_date(), "UTF-8")); /*'21년 6월 28일 발표*/
urlBuilder.append("&" + URLEncoder.encode("base_time","UTF-8") + "=" + URLEncoder.encode(rs.getBase_time(), "UTF-8")); /*06시 발표(정시단위) */
urlBuilder.append("&" + URLEncoder.encode("nx","UTF-8") + "=" + URLEncoder.encode(rs.getNx(), "UTF-8")); /*예보지점의 X 좌표값*/
urlBuilder.append("&" + URLEncoder.encode("ny","UTF-8") + "=" + URLEncoder.encode(rs.getNy(), "UTF-8")); /*예보지점의 Y 좌표값*/
urlBuilder.append("&" + URLEncoder.encode("pageNo","UTF-8") + "=" + URLEncoder.encode("1","UTF-8"));
urlBuilder.append("&" + URLEncoder.encode("numOfRows","UTF-8") + "=" + URLEncoder.encode("14", "UTF-8")); /*한 페이지 결과 수*/
urlBuilder.append("&" + URLEncoder.encode("dataType","UTF-8") + "=" + URLEncoder.encode("JSON", "UTF-8")); /*요청자료형식(XML/JSON) Default: XML*/
urlBuilder.append("&" + URLEncoder.encode("base_date","UTF-8") + "=" + URLEncoder.encode(strToday, "UTF-8")); /*'21년 6월 28일 발표*/
urlBuilder.append("&" + URLEncoder.encode("base_time","UTF-8") + "=" + URLEncoder.encode(basetime, "UTF-8")); /*06시 발표(정시단위) */
urlBuilder.append("&" + URLEncoder.encode("nx","UTF-8") + "=" + URLEncoder.encode(Snx, "UTF-8")); /*예보지점의 X 좌표값*/
urlBuilder.append("&" + URLEncoder.encode("ny","UTF-8") + "=" + URLEncoder.encode(Sny, "UTF-8")); /*예보지점의 Y 좌표값*/
URL url = new URL(urlBuilder.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");

13
src/main/java/com/palnet/biz/api/ctr/cntrl/model/CtrCntrlWeatherModel.java

@ -4,12 +4,9 @@ import lombok.Data;
@Data
public class CtrCntrlWeatherModel {
private String serviceKey;
private String numOfRows;
private String pageNo;
private String dataType;
private String base_date;
private String base_time ;
private String nx;
private String ny;
private double nx;
private double ny;
private String Snx;
private String Sny;
}

89
src/main/java/com/palnet/biz/api/ctr/cntrl/service/CtrCntrlService.java

@ -8,6 +8,7 @@ import java.util.List;
import java.util.Map;
import java.util.UUID;
import com.palnet.biz.api.ctr.cntrl.model.*;
import org.apache.commons.lang3.StringUtils;
import org.locationtech.jts.geom.Coordinate;
import org.springframework.beans.factory.annotation.Autowired;
@ -21,13 +22,6 @@ import com.palnet.biz.api.bas.flight.model.BasFlightPlanAreaModel;
import com.palnet.biz.api.bas.flight.model.BasFlightPlanModel;
import com.palnet.biz.api.bas.flight.service.BasFlightMapper;
import com.palnet.biz.api.comn.model.ControlGpsDataContext;
import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlArcrftWarnModel;
import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlDtlModel;
import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlGroupArcrftModel;
import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlGroupModel;
import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlPlanContainsRq;
import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlPlanContainsRs;
import com.palnet.biz.api.ctr.cntrl.model.CtrCntrlWarnLogModel;
import com.palnet.biz.jpa.entity.ComArcrftBas;
import com.palnet.biz.jpa.entity.ComIdntfBas;
import com.palnet.biz.jpa.entity.CtrCntrlBas;
@ -227,6 +221,7 @@ public class CtrCntrlService {
/**
* TODO 기체 최신 비정상 로그 비정상 로그 전체 개수
*
* @param id
* @return
*/
@ -521,4 +516,84 @@ public class CtrCntrlService {
return result;
}
public Coordinate wheather(Coordinate coord) {
double nx;
double ny;
nx = coord.getX();
ny = coord.getY();
double RE = 6371.00877; // 지구 반경(km)
double GRID = 5.0; // 격자 간격(km)
double SLAT1 = 30.0; // 투영 위도1(degree)
double SLAT2 = 60.0; // 투영 위도2(degree)
double OLON = 126.0; // 기준점 경도(degree)
double OLAT = 38.0; // 기준점 위도(degree)
double XO = 43; // 기준점 X좌표(GRID)
double YO = 136; // 기1준점 Y좌표(GRID)
//
// LCC DFS 좌표변환 ( code : "TO_GRID"(위경도->좌표, lat_X:위도, lng_Y:경도), "TO_GPS"(좌표->위경도, lat_X:x, lng_Y:y) )
//
double DEGRAD = Math.PI / 180.0;
double RADDEG = 180.0 / Math.PI;
double re = RE / GRID;
double slat1 = SLAT1 * DEGRAD;
double slat2 = SLAT2 * DEGRAD;
double olon = OLON * DEGRAD;
double olat = OLAT * DEGRAD;
double sn = Math.tan(Math.PI * 0.25 + slat2 * 0.5) / Math.tan(Math.PI * 0.25 + slat1 * 0.5);
sn = Math.log(Math.cos(slat1) / Math.cos(slat2)) / Math.log(sn);
double sf = Math.tan(Math.PI * 0.25 + slat1 * 0.5);
sf = Math.pow(sf, sn) * Math.cos(slat1) / sn;
double ro = Math.tan(Math.PI * 0.25 + olat * 0.5);
ro = re * sf / Math.pow(ro, sn);
double theta;
if (true) {
nx = nx;
ny = ny;
double ra = Math.tan(Math.PI * 0.25 + (nx) * DEGRAD * 0.5);
ra = re * sf / Math.pow(ra, sn);
theta = ny * DEGRAD - olon;
if (theta > Math.PI) theta -= 2.0 * Math.PI;
if (theta < -Math.PI) theta += 2.0 * Math.PI;
theta *= sn;
nx = Math.floor(ra * Math.sin(theta) + XO + 0.5);
ny = Math.floor(ro - ra * Math.cos(theta) + YO + 0.5);
} else {
nx = nx;
ny = ny;
double xn = nx - XO;
double yn = ro - ny + YO;
double ra = Math.sqrt(xn * xn + yn * yn);
if (sn < 0.0) {
ra = -ra;
}
double alat = Math.pow((re * sf / ra), (1.0 / sn));
alat = 2.0 * Math.atan(alat) - Math.PI * 0.5;
if (Math.abs(xn) <= 0.0) {
theta = 0.0;
} else {
if (Math.abs(yn) <= 0.0) {
theta = Math.PI * 0.5;
if (xn < 0.0) {
theta = -theta;
}
} else theta = Math.atan2(xn, yn);
}
double alon = theta / sn + olon;
nx = alat * RADDEG;
ny = alon * RADDEG;
}
Coordinate returnCoord = new Coordinate();
returnCoord.setX(nx);
returnCoord.setY(ny);
return returnCoord;
}
}

3
src/main/java/com/palnet/biz/jpa/entity/PtyCstmrBas.java

@ -63,5 +63,8 @@ public class PtyCstmrBas implements Serializable {
@Column(name="RFRSH_TOKEN")
private String rfrshToken;
@Column(name="TRMNL_ID")
private String trmnlId;
}

7
src/main/java/com/palnet/biz/jpa/entity/PtyCstmrGroup.java

@ -49,6 +49,9 @@ public class PtyCstmrGroup implements Serializable {
@Column(name="WTHDRW_DT")
private Date wthdrwDt;
@Column(name="TRMNL_ID")
private String trmnlId;
public PtyCstmrGroup() {
}
@ -132,4 +135,8 @@ public class PtyCstmrGroup implements Serializable {
this.wthdrwDt = wthdrwDt;
}
public String getTrmnlId() { return this.trmnlId; }
public void setTrmnlId(String trmnlId) { this.trmnlId = trmnlId; }
}

7
src/main/java/com/palnet/biz/jpa/entity/PtyGroupBas.java

@ -20,6 +20,7 @@ public class PtyGroupBas implements Serializable {
private String groupTypeCd;
private Date updateDt;
private String useYn;
private String trmnlId;
public PtyGroupBas() {
}
@ -87,4 +88,10 @@ public class PtyGroupBas implements Serializable {
this.useYn = useYn;
}
@Column(name="TRMNL_ID")
public String getTrmnlId() { return this.trmnlId;}
public void setTrmnlId(String trmnlId) { this.trmnlId = trmnlId; }
}

1
src/main/java/com/palnet/biz/jpa/repository/pty/PtyCstmrQueryRepository.java

@ -190,6 +190,7 @@ public class PtyCstmrQueryRepository{
basEntity.cstmrSno,
basEntity.userId,
basEntity.authId,
basEntity.trmnlId,
basEntity.siteCode,
dtlEntity.memberName
))

1
src/main/java/com/palnet/biz/jpa/repository/pty/PtyGroupQueryRepository.java

@ -220,6 +220,7 @@ public class PtyGroupQueryRepository{
bas.groupId,
bas.groupNm,
bas.groupTypeCd,
bas.trmnlId,
dtl.cstmrSno,
dtl.cstmrGroupSno,
bas.updateDt,

Loading…
Cancel
Save