대시보드 수정.

ajp 설정 변경
인사시스템 연동 수정.
master
강석 최 2022-12-28 15:30:07 +09:00
parent 0cff930690
commit e68c9e35da
19 changed files with 652 additions and 669 deletions

View File

@ -1,8 +1,14 @@
package com.dbnt.faisp.config; package com.dbnt.faisp.config;
import com.dbnt.faisp.main.codeMgt.model.CodeMgt; import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
import com.dbnt.faisp.main.faRpt.model.FaRptBoard;
import com.dbnt.faisp.main.faRpt.service.FaRptService;
import com.dbnt.faisp.main.fpiMgt.affair.model.AffairBoard;
import com.dbnt.faisp.main.fpiMgt.affair.service.AffairService;
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService; import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
import com.dbnt.faisp.main.organMgt.service.OrganConfigService; import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
import com.dbnt.faisp.main.publicBoard.model.PublicBoard;
import com.dbnt.faisp.main.publicBoard.service.PublicBoardService;
import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfo;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
@ -25,6 +31,9 @@ public class BaseController {
private final CodeMgtService codeMgtService; private final CodeMgtService codeMgtService;
private final OrganConfigService organConfigService; private final OrganConfigService organConfigService;
private final MenuMgtService menuMgtService; private final MenuMgtService menuMgtService;
private final PublicBoardService publicBoardService;
private final FaRptService faRptService;
private final AffairService affairService;
@GetMapping("/") @GetMapping("/")
public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser) { public ModelAndView loginCheck(@AuthenticationPrincipal UserInfo loginUser) {
@ -57,8 +66,27 @@ public class BaseController {
} }
@GetMapping("/dashboard") @GetMapping("/dashboard")
public ModelAndView dashboard() { public ModelAndView dashboard(@AuthenticationPrincipal UserInfo loginUser) {
ModelAndView mav = new ModelAndView("login/dashboard"); ModelAndView mav = new ModelAndView("login/dashboard");
PublicBoard noticeParams = new PublicBoard();
noticeParams.setPublicType("PLB001");
noticeParams.setRowCnt(5);
noticeParams.setDownOrganCdList(loginUser.getDownOrganCdList());
noticeParams.setUpOrganCdList(loginUser.getUpOrganCdList());
mav.addObject("noticeList", publicBoardService.selectContentList(noticeParams));
FaRptBoard faRpt = new FaRptBoard();
faRpt.setActiveTab("receive");
faRpt.setRowCnt(5);
faRpt.setStatus("DST007");
faRpt.setReceiveUserSeq(loginUser.getUserSeq());
mav.addObject("faRptList", faRptService.selectFaRptList(faRpt));
AffairBoard affair = new AffairBoard();
affair.setAffairCategory("CAT215");
affair.setRatingOrgan(loginUser.getOgCd());
affair.setRowCnt(5);
mav.addObject("affair1List", affairService.selectAffairBoardList(affair));
affair.setAffairCategory("CAT216");
mav.addObject("affair2List", affairService.selectAffairBoardList(affair));
return mav; return mav;
} }

View File

@ -15,45 +15,45 @@ import org.springframework.transaction.PlatformTransactionManager;
import javax.sql.DataSource; import javax.sql.DataSource;
import java.util.HashMap; import java.util.HashMap;
//@Configuration @Configuration
//@EnableJpaRepositories( @EnableJpaRepositories(
// basePackages = "com.dbnt.faisp.kwms.repository", basePackages = "com.dbnt.faisp.kwms.repository",
// entityManagerFactoryRef = "kwmsEntityManager", entityManagerFactoryRef = "kwmsEntityManager",
// transactionManagerRef = "kwmsTransactionManager" transactionManagerRef = "kwmsTransactionManager"
//) )
public class KwmsDatabaseConfig { public class KwmsDatabaseConfig {
// @Autowired @Autowired
// private Environment env; private Environment env;
//
// @Bean @Bean
// public LocalContainerEntityManagerFactoryBean kwmsEntityManager(){ public LocalContainerEntityManagerFactoryBean kwmsEntityManager(){
// LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
// em.setDataSource(kwmsDataSource()); em.setDataSource(kwmsDataSource());
//
// //Entity 패키지 경로 //Entity 패키지 경로
// em.setPackagesToScan(new String[] { "com.dbnt.faisp.kwms.model" }); em.setPackagesToScan(new String[] { "com.dbnt.faisp.kwms.model" });
//
// HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
// em.setJpaVendorAdapter(vendorAdapter); em.setJpaVendorAdapter(vendorAdapter);
//
// //Hibernate 설정 //Hibernate 설정
// HashMap<String, Object> properties = new HashMap<>(); HashMap<String, Object> properties = new HashMap<>();
// properties.put("hibernate.hbm2ddl.auto", "none"); properties.put("hibernate.hbm2ddl.auto", "none");
// properties.put("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect"); properties.put("hibernate.dialect", "org.hibernate.dialect.Oracle10gDialect");
// em.setJpaPropertyMap(properties); em.setJpaPropertyMap(properties);
// return em; return em;
// } }
//
// @Bean @Bean
// @ConfigurationProperties(prefix="spring.datasource-kwms") @ConfigurationProperties(prefix="spring.datasource-kwms")
// public DataSource kwmsDataSource() { public DataSource kwmsDataSource() {
// return DataSourceBuilder.create().build(); return DataSourceBuilder.create().build();
// } }
//
// @Bean @Bean
// public PlatformTransactionManager kwmsTransactionManager() { public PlatformTransactionManager kwmsTransactionManager() {
// JpaTransactionManager transactionManager = new JpaTransactionManager(); JpaTransactionManager transactionManager = new JpaTransactionManager();
// transactionManager.setEntityManagerFactory(kwmsEntityManager().getObject()); transactionManager.setEntityManagerFactory(kwmsEntityManager().getObject());
// return transactionManager; return transactionManager;
// } }
} }

View File

@ -1,13 +1,17 @@
package com.dbnt.faisp.config; package com.dbnt.faisp.config;
import org.apache.catalina.connector.Connector; import org.apache.catalina.connector.Connector;
import org.apache.coyote.ProtocolHandler;
import org.apache.coyote.ajp.AbstractAjpProtocol;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory; import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
//@Configuration import java.net.InetAddress;
@Configuration
public class TomcatConfiguration { public class TomcatConfiguration {
@Value("${tomcat.ajp.protocol}") @Value("${tomcat.ajp.protocol}")
@ -26,6 +30,12 @@ public class TomcatConfiguration {
ajpConnector.setSecure(false); ajpConnector.setSecure(false);
ajpConnector.setAllowTrace(false); ajpConnector.setAllowTrace(false);
ajpConnector.setScheme("http"); ajpConnector.setScheme("http");
ajpConnector.setProperty("address", "0.0.0.0");
ajpConnector.setProperty("allowedRequestAttributesPattern", ".*");
if(protocol.contains("AJP")){
((AbstractAjpProtocol)ajpConnector.getProtocolHandler()).setSecretRequired(false);
}
return ajpConnector; return ajpConnector;
} }
} }

View File

@ -23,63 +23,54 @@ public class KwmsController {
@GetMapping("/getEmpInfoToJoinForm") @GetMapping("/getEmpInfoToJoinForm")
public ModelAndView getEmpInfo(VEmployee empInfo){ public ModelAndView getEmpInfo(VEmployee empInfo){
ModelAndView mav = new ModelAndView("login/joinForm"); ModelAndView mav = new ModelAndView("login/joinForm");
// if(userInfoService.selectUserInfoToDicCode(empInfo.getDicCode()) == null){ if(userInfoService.selectUserInfoToDicCode(empInfo.getDic()) == null){
// UserInfo userInfo = kwmsService.selectEmpInfo(empInfo.getDicCode()); UserInfo userInfo = kwmsService.selectEmpInfo(empInfo.getDic());
// if(userInfo==null){ if(userInfo==null){
// mav.addObject("joinFlag", "F"); mav.addObject("joinFlag", "F");
// mav.addObject("userInfo", empInfo); mav.addObject("userInfo", empInfo);
// mav.addObject("msg", "검색 결과가 없습니다."); mav.addObject("msg", "검색 결과가 없습니다.");
// }else{ }else{
mav.addObject("joinFlag", "T"); mav.addObject("joinFlag", "T");
// mav.addObject("userInfo", userInfo); mav.addObject("userInfo", userInfo);
mav.addObject("userInfo", new UserInfo());
mav.addObject("ogList", codeMgtService.selectCodeMgtList("OG")); mav.addObject("ogList", codeMgtService.selectCodeMgtList("OG"));
mav.addObject("ofcList", codeMgtService.selectCodeMgtList("OFC")); mav.addObject("ofcList", codeMgtService.selectCodeMgtList("OFC"));
mav.addObject("titleList", codeMgtService.selectCodeMgtList("JT")); mav.addObject("titleList", codeMgtService.selectCodeMgtList("JT"));
mav.addObject("outturnList", codeMgtService.selectCodeMgtList("OTC")); mav.addObject("outturnList", codeMgtService.selectCodeMgtList("OTC"));
mav.addObject("seriesList", codeMgtService.selectCodeMgtList("SRC")); mav.addObject("seriesList", codeMgtService.selectCodeMgtList("SRC"));
mav.addObject("languageList", codeMgtService.selectCodeMgtList("LNG")); mav.addObject("languageList", codeMgtService.selectCodeMgtList("LNG"));
// } }
// }else{ }else{
// mav.addObject("joinFlag", "F"); mav.addObject("joinFlag", "F");
// mav.addObject("userInfo", empInfo); mav.addObject("userInfo", empInfo);
// mav.addObject("msg", "이미 가입된 식별번호입니다."); mav.addObject("msg", "이미 가입된 식별번호입니다.");
// } }
return mav; return mav;
} }
// @GetMapping("/updateUserInfoToKwms") @GetMapping("/updateUserInfoToKwms")
// public ModelAndView updateUserInfoToKwms(VEmployee empInfo){ public ModelAndView updateUserInfoToKwms(VEmployee empInfo){
// ModelAndView mav = new ModelAndView("login/joinForm"); ModelAndView mav = new ModelAndView("login/joinForm");
// if(userInfoService.selectUserInfoToDicCode(empInfo.getDicCode()) == null){ if(userInfoService.selectUserInfoToDicCode(empInfo.getDic()) == null){
// UserInfo userInfo = kwmsService.selectEmpInfo(empInfo.getDicCode()); UserInfo userInfo = kwmsService.selectEmpInfo(empInfo.getDic());
// if(userInfo==null){ if(userInfo==null){
// mav.addObject("joinFlag", "F"); mav.addObject("joinFlag", "F");
// mav.addObject("userInfo", empInfo); mav.addObject("userInfo", empInfo);
// mav.addObject("msg", "검색 결과가 없습니다."); mav.addObject("msg", "검색 결과가 없습니다.");
// }else{ }else{
// mav.addObject("joinFlag", "T"); mav.addObject("joinFlag", "T");
// mav.addObject("userInfo", userInfo); mav.addObject("userInfo", userInfo);
// mav.addObject("ogList", codeMgtService.selectCodeMgtList("OG")); mav.addObject("ogList", codeMgtService.selectCodeMgtList("OG"));
// mav.addObject("ofcList", codeMgtService.selectCodeMgtList("OFC")); mav.addObject("ofcList", codeMgtService.selectCodeMgtList("OFC"));
// mav.addObject("titleList", codeMgtService.selectCodeMgtList("JT")); mav.addObject("titleList", codeMgtService.selectCodeMgtList("JT"));
// mav.addObject("outturnList", codeMgtService.selectCodeMgtList("OTC")); mav.addObject("outturnList", codeMgtService.selectCodeMgtList("OTC"));
// mav.addObject("seriesList", codeMgtService.selectCodeMgtList("SRC")); mav.addObject("seriesList", codeMgtService.selectCodeMgtList("SRC"));
// mav.addObject("languageList", codeMgtService.selectCodeMgtList("LNG")); mav.addObject("languageList", codeMgtService.selectCodeMgtList("LNG"));
// } }
// }else{ }else{
// mav.addObject("joinFlag", "F"); mav.addObject("joinFlag", "F");
// mav.addObject("userInfo", empInfo); mav.addObject("userInfo", empInfo);
// mav.addObject("msg", "이미 가입된 식별번호입니다."); mav.addObject("msg", "이미 가입된 식별번호입니다.");
// } }
// return mav; return mav;
// } }
//
// @GetMapping("/kwmsCareerModal")
// public ModelAndView kwmsCareerModal(Integer userSeq, String dicCode){
// ModelAndView mav = new ModelAndView("faisp/career/kwmsCareerModal");
// mav.addObject("crcList", codeMgtService.selectCodeMgtList("CRC"));
// mav.addObject("careerList", kwmsService.selectUserCareerList(userSeq, dicCode));
// return mav;
// }
} }

View File

@ -13,32 +13,34 @@ import javax.persistence.*;
@Setter @Setter
@Entity @Entity
@NoArgsConstructor @NoArgsConstructor
//@DynamicInsert @DynamicInsert
//@DynamicUpdate @DynamicUpdate
//@Table(name = "V_EMPLOYEE") @Table(name = "V_EMPLOYEE_EDU")
public class VEmployee { public class VEmployee {
// @Id @Id
// @Column(name = "DIC_CODE") @Column(name = "DIC")
// private String dicCode; private String dic;
// @Column(name = "EMP_NM") @Column(name = "USERID")
// private String empNm; private String userid;
// @Column(name = "BIRTH_DATE") @Column(name = "NAME")
// private String birthDate; private String name;
// @Column(name = "SEX") @Column(name = "SEXCD")
// private String sex; private String sexcd;
// @Column(name = "POLICE_BMNG_IL") @Column(name = "BIRTHDT")
// private String policeBmngIl; private String birthdt;
// @Column(name = "JIKGEUP") @Column(name = "LDEPTNM")
// private String jikgeup; private String ldeptnm;
// @Column(name = "HN_JIKGEUP_IMYNGIL") @Column(name = "JIKGUBNM")
// private String hnJikgeupImyngil; private String jikgubnm;
// @Column(name = "CALL_BUSEO_NM") @Column(name = "STATUSCD")
// private String callBuseoNm; private String statuscd;
// @Column(name = "SAYONG_YN") @Column(name = "BMNGDT")
// private String sayongYn; private String bmngdt;
// @Column(name = "GYUNGGWA") @Column(name = "JIKGUBDT")
// private String gyunggwa; private String jikgubdt;
// @Column(name = "JIKBYUL") @Column(name = "BUSEODT")
// private String jikbyul; private String buseodt;
@Column(name = "KYUNGGWA")
private String kyunggwa;
} }

View File

@ -6,7 +6,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
import java.util.Optional; import java.util.Optional;
//public interface VEmployeeRepository extends JpaRepository<VEmployee, String> { public interface VEmployeeRepository extends JpaRepository<VEmployee, String> {
public interface VEmployeeRepository { Optional<VEmployee> findByDic(String dicCode);
// Optional<VEmployee> findByDicCode(String dicCode);
} }

View File

@ -1,9 +1,7 @@
package com.dbnt.faisp.kwms.service; package com.dbnt.faisp.kwms.service;
import com.dbnt.faisp.kwms.model.VEmployee; import com.dbnt.faisp.kwms.model.VEmployee;
import com.dbnt.faisp.kwms.model.VHordYundongStat;
import com.dbnt.faisp.kwms.repository.VEmployeeRepository; import com.dbnt.faisp.kwms.repository.VEmployeeRepository;
import com.dbnt.faisp.kwms.repository.VHordYundongStatRepository;
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
import com.dbnt.faisp.main.userInfo.model.UserCareer; import com.dbnt.faisp.main.userInfo.model.UserCareer;
import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfo;
@ -20,68 +18,41 @@ import java.util.List;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
public class KwmsService { public class KwmsService {
// private final VEmployeeRepository vEmployeeRepository; private final VEmployeeRepository vEmployeeRepository;
// private final VHordYundongStatRepository vHordRepository; private final CodeMgtService codeMgtService;
// private final CodeMgtService codeMgtService; private final UserCareerRepository careerRepository;
// private final UserCareerRepository careerRepository;
// public UserInfo selectEmpInfo(String dicCode){
// public UserInfo selectEmpInfo(String dicCode){ VEmployee empInfo = vEmployeeRepository.findByDic(dicCode).orElse(null);
// VEmployee empInfo = vEmployeeRepository.findByDicCode(dicCode).orElse(null); if(empInfo==null){
// if(empInfo==null){ return null;
// return null; }else{
// }else{ return convertVEmployeeToUserInfo(empInfo);
// return convertVEmployeeToUserInfo(empInfo); }
// } }
// }
// private UserInfo convertVEmployeeToUserInfo(VEmployee empInfo){
// private UserInfo convertVEmployeeToUserInfo(VEmployee empInfo){ UserInfo userInfo = new UserInfo();
// UserInfo userInfo = new UserInfo(); userInfo.setDicCode(empInfo.getDic());
// userInfo.setDicCode(empInfo.getDicCode()); userInfo.setUserId(empInfo.getUserid());
// userInfo.setUserNm(empInfo.getEmpNm()); userInfo.setUserNm(empInfo.getName());
// userInfo.setSex(empInfo.getSex().strip().equals("F")?"SEX001":"SEX002"); userInfo.setSex(empInfo.getSexcd().strip().equals("F")?"SEX001":"SEX002");
// String[] positionAry = empInfo.getCallBuseoNm().split(" "); String[] positionAry = empInfo.getLdeptnm().split(" ");
// userInfo.setOgCd(codeMgtService.searchCodeToCategoryAndValue("OG", positionAry[0])); userInfo.setOgCd(codeMgtService.searchCodeToCategoryAndValue("OG", positionAry[0]));
// if (positionAry.length>1){ if (positionAry.length>1){
// userInfo.setOfcCd(codeMgtService.searchCodeToCategoryAndValue("OFC", positionAry[1])); userInfo.setOfcCd(codeMgtService.searchCodeToCategoryAndValue("OFC", positionAry[1]));
// } }
// userInfo.setTitleCd(codeMgtService.searchCodeToCategoryAndValue("JT", empInfo.getJikgeup())); userInfo.setTitleCd(codeMgtService.searchCodeToCategoryAndValue("JT", empInfo.getJikgubnm()));
// userInfo.setOutturnCd(codeMgtService.searchCodeToCategoryAndValue("OTC", empInfo.getGyunggwa())); userInfo.setOutturnCd(codeMgtService.searchCodeToCategoryAndValue("OTC", empInfo.getKyunggwa()));
// userInfo.setSeriesCd(codeMgtService.searchCodeToCategoryAndValue("SRC", empInfo.getJikbyul()));
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
// DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); empInfo.setBirthdt(
// empInfo.setBirthDate( (Integer.parseInt(empInfo.getBirthdt().substring(0,2))>60?"19":"20")+empInfo.getBirthdt());
// (Integer.parseInt(empInfo.getBirthDate().substring(0,2))>60?"19":"20")+empInfo.getBirthDate()); userInfo.setBirthDate(LocalDate.parse(empInfo.getBirthdt(), formatter));
// userInfo.setBirthDate(LocalDate.parse(empInfo.getBirthDate(), formatter)); userInfo.setPoliceInDate(LocalDate.parse(empInfo.getBmngdt(), formatter));
// userInfo.setPoliceInDate(LocalDate.parse(empInfo.getPoliceBmngIl(), formatter)); userInfo.setOfcInDate(LocalDate.parse(empInfo.getBuseodt(), formatter));
// userInfo.setTitleInDate(LocalDate.parse(empInfo.getHnJikgeupImyngil(), formatter)); userInfo.setTitleInDate(LocalDate.parse(empInfo.getJikgubdt(), formatter));
// return userInfo; return userInfo;
// } }
//
// public List<UserCareer> selectUserCareerList(Integer userSeq, String dicCode) {
// List<VHordYundongStat> statList = vHordRepository.findByDicCodeOrderByStartDateDesc(dicCode);
// List<UserCareer> savedList = careerRepository.findByUserSeqOrderByStartDateDesc(userSeq);
// List<UserCareer> careerList = new ArrayList<>();
// for(VHordYundongStat stat: statList){
// boolean savedFlag = false;
// for(UserCareer savedCareer: savedList){
// if (stat.getHordYundongCd().equals(savedCareer.getHordCd())) {
// savedFlag = true;
// break;
// }
// }
// if(!savedFlag){
// UserCareer career = new UserCareer();
// career.setDesignationCd(codeMgtService.searchCodeToCategoryAndValue("DSN", stat.getImyongGubunNm()));
// career.setWorkPositionStr(stat.getImyongbuseoChongching());
// career.setWorkTitle(codeMgtService.searchCodeToCategoryAndValue("JT", stat.getImyongJikgeupNm()));
// career.setStartDate(stat.getStartDate());
// career.setEndDate(stat.getEndDate());
// career.setWorkDay(stat.getWorkDay()==null?0:stat.getWorkDay());
// career.setWorkMonth(stat.getWorkMonth()==null?0:stat.getWorkMonth());
// career.setHordCd(stat.getHordYundongCd());
// careerList.add(career);
// }
// }
// return careerList;
// }
} }

View File

@ -70,11 +70,11 @@ public class MyInfoController {
@PostMapping("/syncSelfToKwms") @PostMapping("/syncSelfToKwms")
public void syncSelfToKwms(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo) { public void syncSelfToKwms(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo) {
// UserInfo kwmsInfo = kwmsService.selectEmpInfo(userInfo.getDicCode()); UserInfo kwmsInfo = kwmsService.selectEmpInfo(userInfo.getDicCode());
// if(kwmsInfo!= null){ if(kwmsInfo!= null){
// kwmsInfo.setUserSeq(loginUser.getUserSeq()); kwmsInfo.setUserSeq(loginUser.getUserSeq());
// userInfoService.updateUserInfo(loginUser,kwmsInfo); userInfoService.updateUserInfo(loginUser,kwmsInfo);
// } }
} }
@GetMapping("/moveAlarmBoard") @GetMapping("/moveAlarmBoard")
public ModelAndView moveAlarmBoard(UserAlarm alarm){ public ModelAndView moveAlarmBoard(UserAlarm alarm){

View File

@ -133,13 +133,13 @@ public class PoliceController {
@PostMapping("/syncUserInfoToKwms") @PostMapping("/syncUserInfoToKwms")
@ResponseBody @ResponseBody
public String syncUserInfoToKwms(@AuthenticationPrincipal UserInfo loginUser,@RequestBody List<UserInfo> infoList){ public String syncUserInfoToKwms(@AuthenticationPrincipal UserInfo loginUser,@RequestBody List<UserInfo> infoList){
// for(UserInfo info: infoList){ for(UserInfo info: infoList){
// UserInfo kwmsInfo = kwmsService.selectEmpInfo(info.getDicCode()); UserInfo kwmsInfo = kwmsService.selectEmpInfo(info.getDicCode());
// if(kwmsInfo!=null){ if(kwmsInfo!=null){
// kwmsInfo.setUserSeq(info.getUserSeq()); kwmsInfo.setUserSeq(info.getUserSeq());
// userInfoService.updateUserInfo(loginUser,kwmsInfo); userInfoService.updateUserInfo(loginUser,kwmsInfo);
// } }
// } }
if(infoList.size()==1){ if(infoList.size()==1){
return infoList.get(0).getUserSeq().toString(); return infoList.get(0).getUserSeq().toString();
}else{ }else{

View File

@ -90,13 +90,13 @@ public class UserMgtController {
@PostMapping("/syncUserInfoToKwms") @PostMapping("/syncUserInfoToKwms")
@ResponseBody @ResponseBody
public String syncUserInfoToKwms(@AuthenticationPrincipal UserInfo loginUser,@RequestBody List<UserInfo> infoList){ public String syncUserInfoToKwms(@AuthenticationPrincipal UserInfo loginUser,@RequestBody List<UserInfo> infoList){
// for(UserInfo info: infoList){ for(UserInfo info: infoList){
// UserInfo kwmsInfo = kwmsService.selectEmpInfo(info.getDicCode()); UserInfo kwmsInfo = kwmsService.selectEmpInfo(info.getDicCode());
// if(kwmsInfo!=null){ if(kwmsInfo!=null){
// kwmsInfo.setUserSeq(info.getUserSeq()); kwmsInfo.setUserSeq(info.getUserSeq());
// userInfoService.updateUserInfo(loginUser,kwmsInfo); userInfoService.updateUserInfo(loginUser,kwmsInfo);
// } }
// } }
if(infoList.size()==1){ if(infoList.size()==1){
return infoList.get(0).getUserSeq().toString(); return infoList.get(0).getUserSeq().toString();
}else{ }else{

View File

@ -1,15 +1,15 @@
#tomcat.ajp.protocol=HTTP/1.1 tomcat.ajp.protocol=AJP/1.3
#server.port=80 #server.port=80
#file upload #file upload
spring.servlet.multipart.location=/home/jboss/faisp/uploadFiles spring.servlet.multipart.location=/backup/faisp/uploadFiles
spring.servlet.multipart.max-file-size=200MB spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=500MB spring.servlet.multipart.max-request-size=500MB
site.domain=10.187.58.46:8080 site.domain=10.187.58.46:8080
#file #file
file.dir=C:\\faispUploadFiles file.dir=/backup/faisp/uploadFiles
file.dir.vulnerable=/vulnerable file.dir.vulnerable=/vulnerable
file.dir.part=/part file.dir.part=/part
file.dir.equip=/equip file.dir.equip=/equip

View File

@ -102,7 +102,7 @@
<Version>1.0.0.23</Version> <Version>1.0.0.23</Version>
<Version_daemon>1.0.0.3</Version_daemon> <Version_daemon>1.0.0.3</Version_daemon>
<Version_com>1.0.0.19</Version_com> <Version_com>1.0.0.19</Version_com>
<SupportBrowser>1</SupportBrowser> <SupportBrowser>0</SupportBrowser>
<AutoInstall></AutoInstall> <AutoInstall></AutoInstall>
</Plugins> </Plugins>
<Mime> <Mime>

View File

@ -194,7 +194,7 @@ function setEditor(divId, editorHeight){
CrossEditor.params.NewToolbar = true; CrossEditor.params.NewToolbar = true;
CrossEditor.params.UploadFileExecutePath = "/Crosseditor/uploadImg"; CrossEditor.params.UploadFileExecutePath = "/Crosseditor/uploadImg";
CrossEditor.params.FullScreen = false; CrossEditor.params.FullScreen = false;
$("#editor").show(); $("#"+divId).show();
CrossEditor.EditorStart(); CrossEditor.EditorStart();
} }

View File

@ -1,9 +1,9 @@
$(document).on('click', '#dicCodeSearchBtn', function (){ $(document).on('click', '#dicCodeSearchBtn', function (){
const dicCode = $("#dicCode").val(); const dicCode = $("#dicCode").val();
//if(dicCode!==''){ if(dicCode!==''){
$.ajax({ $.ajax({
url: '/kwms/getEmpInfoToJoinForm', url: '/kwms/getEmpInfoToJoinForm',
data: {dicCode: dicCode}, data: {dic: dicCode},
type: 'GET', type: 'GET',
dataType:"html", dataType:"html",
success: function(html){ success: function(html){
@ -18,9 +18,9 @@ $(document).on('click', '#dicCodeSearchBtn', function (){
} }
}); });
//}else{ }else{
// alert("공무원식별번호를 입력해주세요.") alert("공무원식별번호를 입력해주세요.")
//} }
}) })
$(document).on('click', '#saveBtn', function (){ $(document).on('click', '#saveBtn', function (){

View File

@ -178,7 +178,7 @@ function getCareerModal(userSeq, careerCd){
}); });
} }
function getKwmsCareerModal(userSeq, dicCode){ function getKwmsCareerModal(userSeq, dicCode){
$.ajax({ /*$.ajax({
url: '/kwms/kwmsCareerModal', url: '/kwms/kwmsCareerModal',
data: {userSeq: userSeq, dicCode: dicCode}, data: {userSeq: userSeq, dicCode: dicCode},
type: 'GET', type: 'GET',
@ -190,7 +190,7 @@ function getKwmsCareerModal(userSeq, dicCode){
error:function(){ error:function(){
} }
}); });*/
} }
function checkValue(){ function checkValue(){
let flag = true; let flag = true;

View File

@ -4,75 +4,45 @@
<h5 class="modal-title text-white" id="planEditModalLabel">국제범죄검거 현황</h5> <h5 class="modal-title text-white" id="planEditModalLabel">국제범죄검거 현황</h5>
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<div class="modal-body" id="icaEditBody"> <div class="modal-body">
<form action="#" method="post" id="icaEditForm">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" name="icaKey" th:value="${internationalCrimeArrest.icaKey}"> <input type="hidden" name="icaKey" th:value="${internationalCrimeArrest.icaKey}">
<input type="hidden" name="wrtOrgan" th:value="${internationalCrimeArrest.wrtOrgan}">
<input type="hidden" name="wrtNm" th:value="${internationalCrimeArrest.wrtNm}">
<input type="hidden" name="wrtDt" th:value="${#temporals.format(internationalCrimeArrest.wrtDt, 'yyyy-MM-dd HH:mm')}">
<input type="hidden" id="contentStatus" name="contentStatus">
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">사건번호</label> <label class="col-sm-2 col-form-label col-form-label-sm text-center">사건번호</label>
<div class="col-sm-2"> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${internationalCrimeArrest.caseNum}"></label>
<input type="text" name="caseNum" class="form-control form-control-sm" th:value="${internationalCrimeArrest.caseNum}" readonly>
</div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">지방청</label> <label class="col-sm-2 col-form-label col-form-label-sm text-center">지방청</label>
<div class="col-sm-2"> <label class="col-sm-2 col-form-label col-form-label-sm text-start">
<select class="form-select form-select-sm bg-white" name="organ" disabled>
<option value=""></option>
<th:block th:each="organConfig:${organConfigList}"> <th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan eq 'OG001' && organConfig.organType ne 'OGC001'}"> <th:block th:if="${organConfig.organCd eq internationalCrimeArrest.organ}" th:text="${organConfig.organNm}"></th:block>
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq internationalCrimeArrest.organ}"></option>
</th:block> </th:block>
</th:block> </label>
</select>
</div>
<label class="col-sm-2 col-form-label col-form-label-sm text-center">관할서</label> <label class="col-sm-2 col-form-label col-form-label-sm text-center">관할서</label>
<div class="col-sm-2"> <label class="col-sm-2 col-form-label col-form-label-sm text-start">
<select class="form-select form-select-sm bg-white" name="department" disabled>
<option value="">선택</option>
<th:block th:each="organConfig:${organConfigList}"> <th:block th:each="organConfig:${organConfigList}">
<th:block th:if="${organConfig.parentOrgan ne null && organConfig.organType ne 'OGC002'}"> <th:block th:if="${organConfig.organCd eq internationalCrimeArrest.department}" th:text="${organConfig.organNm}"></th:block>
<option th:value="${organConfig.organCd}" th:text="${organConfig.organNm}" th:selected="${organConfig.organCd eq internationalCrimeArrest.department}"></option>
</th:block> </th:block>
</th:block> </label>
</select>
</div>
</div> </div>
<hr class="my-1"> <hr class="my-1">
<div class="row mb-1"> <div class="row mb-1">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">범죄테마</label> <label class="col-sm-2 col-form-label col-form-label-sm text-center">범죄테마</label>
<div class="col-sm-2"> <label class="col-sm-2 col-form-label col-form-label-sm text-start">
<select class="form-select form-select-sm bg-white" name="crimeType" id="crimeType" disabled> <th:block th:each="code:${session.commonCode.get('CTH')}">
<option value="">선택</option> <th:block th:if="${code.itemCd eq internationalCrimeArrest.crimeType}" th:text="${code.itemValue}"></th:block>
<th:block th:each="commonCode:${session.commonCode.get('CTH')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"
th:selected="${commonCode.itemCd eq internationalCrimeArrest.crimeType}"></option>
</th:block> </th:block>
</select> </label>
</div>
<label class="col-sm-2 col-form-label col-form-label-sm text-center">위반유형</label> <label class="col-sm-2 col-form-label col-form-label-sm text-center">위반유형</label>
<div class="col-sm-2"> <label class="col-sm-2 col-form-label col-form-label-sm text-start">
<select class="form-select form-select-sm bg-white" name="violationType" id="violationType" disabled> <th:block th:each="code:${session.commonCode.get(internationalCrimeArrest.crimeType)}">
<option value="">선택</option> <th:block th:if="${code.itemCd eq internationalCrimeArrest.violationType}" th:text="${code.itemValue}"></th:block>
<th:block th:each="num : ${#numbers.sequence(1,#lists.size(session.commonCode.get('CTH')))}">
<th:block th:if="${'CTH'+num == internationalCrimeArrest.crimeType}" th:each="commonCode:${session.commonCode.get('CTH'+num)}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}" th:selected="${internationalCrimeArrest.violationType eq commonCode.itemCd}"></option>
</th:block> </th:block>
</th:block> </label>
</select>
</div>
<th:block th:if="${internationalCrimeArrest.crimeType ne 'CTH002'}"> <th:block th:if="${internationalCrimeArrest.crimeType ne 'CTH002'}">
<div class="col-sm-4" id="crimeNameDiv"> <div class="col-sm-4" id="crimeNameDiv">
<div class="row"> <div class="row">
<label class="col-sm-6 col-form-label col-form-label-sm text-center">죄명</label> <label class="col-sm-6 col-form-label col-form-label-sm text-center">죄명</label>
<div class="col-sm-6"> <label class="col-sm-2 col-form-label col-form-label-sm text-start" th:text="${internationalCrimeArrest.crimeName}"></label>
<input type="text" class="form-control form-control-sm" name="crimeName" th:value="${internationalCrimeArrest.crimeName}" readonly>
</div>
</div> </div>
</div> </div>
</th:block> </th:block>
@ -80,6 +50,11 @@
<div class="row mb-1" id="smugglingAmountDiv"> <div class="row mb-1" id="smugglingAmountDiv">
<th:block th:if="${internationalCrimeArrest.crimeType eq 'CTH002'}"> <th:block th:if="${internationalCrimeArrest.crimeType eq 'CTH002'}">
<label class="col-sm-2 col-form-label col-form-label-sm text-center">밀수입출 품목</label> <label class="col-sm-2 col-form-label col-form-label-sm text-center">밀수입출 품목</label>
<label class="col-sm-2 col-form-label col-form-label-sm text-start">
<th:block th:each="commonCode:${session.commonCode.get('SG')}">
<option th:value="${commonCode.itemCd}" th:text="${commonCode.itemValue}"></option>
</th:block>
</label>
<div class="col-sm-2"> <div class="col-sm-2">
<select class="form-select form-select-sm bg-white" name="smuggledGoods" id="smugglingAmount" disabled> <select class="form-select form-select-sm bg-white" name="smuggledGoods" id="smugglingAmount" disabled>
<option>선택</option> <option>선택</option>
@ -333,7 +308,6 @@
<div class="border p-1" name='caseOverview' th:utext="${internationalCrimeArrest.caseOverview}"></div> <div class="border p-1" name='caseOverview' th:utext="${internationalCrimeArrest.caseOverview}"></div>
</div> </div>
</div> </div>
</form>
</div> </div>
<div class="modal-footer bg-light"> <div class="modal-footer bg-light">
<th:block th:if="${userSeq eq internationalCrimeArrest.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용--> <th:block th:if="${userSeq eq internationalCrimeArrest.wrtUserSeq or accessAuth eq 'ACC003'}"><!--작성자일 경우 수정 허용--><!--관리자일 경우 수정 허용-->

View File

@ -3,30 +3,174 @@
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
layout:decorate="~{layout/layout}"> layout:decorate="~{layout/layout}">
<th:block layout:fragment="script"> <th:block layout:fragment="script">
<script type="text/javascript" th:src="@{/js/dashboard.js}"></script> <!--<script type="text/javascript" th:src="@{/js/dashboard.js}"></script>-->
</th:block> </th:block>
<div layout:fragment="content"> <div layout:fragment="content">
<main> <main>
<div class="row justify-content-between mx-0"> <div class="row justify-content-between mx-0">
<div class="col-auto"><h4>대시보드</h4></div> <div class="col-auto"><h4>대시보드</h4></div>
<div class="col-auto mt-2"> <div class="col-auto mt-2">
<a class="link-dark align-bottom" href="/myInfo/myInfoPage?activeTab=dashboard">대시보드 편집</a> <!--<a class="link-dark align-bottom" href="/myInfo/myInfoPage?activeTab=dashboard">대시보드 편집</a>-->
</div> </div>
</div> </div>
<div class="row mx-0"> <div class="row mx-0">
<div class="col-12 card bg-light"> <div class="col-12 card bg-light">
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
<div class="col-4 py-1" id="subPage0"></div> <div class="col-6 py-1" id="subPage0">
<div class="col-4 py-1" id="subPage1"></div> <script type="text/javascript" th:src="@{/js/publicBoard/publicBoard.js}"></script>
<div class="col-4 py-1" id="subPage2"></div> <script type="text/javascript" th:src="@{/js/publicBoard/notice.js}"></script>
<div class="col-4 py-1" id="subPage3"></div> <div class="card">
<div class="col-4 py-1" id="subPage4"></div> <div class="card-header bg-white">
<div class="col-4 py-1" id="subPage5"></div> <div class="row justify-content-between">
<div class="col-auto">공지사항</div>
<div class="col-auto"><a href="/publicBoard/noticePage" class="link-dark"><i class="bi bi-list"></i></a></div>
</div>
</div>
<div class="card-body">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>제목</th>
<th>작성자</th>
<th>작성일시</th>
</tr>
</thead>
<tbody>
<tr class="noticeTr" th:each="notice:${noticeList}">
<input type="hidden" class="publicKey" th:value="${notice.publicKey}">
<td>
<th:block th:if="${#strings.length(notice.title)>35}" th:text="|${#strings.substring(notice.title, 0, 35)}...|"></th:block>
<th:block th:unless="${#strings.length(notice.title)>35}" th:text="${notice.title}"></th:block>
</td>
<td th:text="${notice.wrtUserNm}"></td>
<td th:text="${#temporals.format(notice.wrtDt, 'yyyy-MM-dd')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-6 py-1" id="subPage1">
<script type="text/javascript" th:src="@{/js/faRpt/faRpt.js}"></script>
<div class="card">
<div class="card-header bg-white">
<div class="row justify-content-between">
<div class="col-auto">외사정보보고 수신문서</div>
<div class="col-auto"><a href="/faRpt/faRptBoard?activeTab=receive" class="link-dark"><i class="bi bi-list"></i></a></div>
</div>
</div>
<div class="card-body">
<table class="table table-hover">
<thead>
<tr>
<th>제목</th>
<th>작성일시</th>
</tr>
</thead>
<tbody>
<tr class="faRptTr" th:each="faRpt:${faRptList}">
<input type="hidden" class="faRptKey" th:value="${faRpt.faRptKey}">
<td th:text="${faRpt.title}"></td>
<td th:text="${#temporals.format(faRpt.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-6 py-1" id="subPage2">
<script type="text/javascript" th:src="@{/js/igActivities/fpiMgt/affair/affairMgt.js}"></script>
<div class="card">
<div class="card-header bg-white">
<div class="row justify-content-between">
<div class="col-auto">외사경찰 견문관리</div>
<div class="col-auto"><a href="/affair/affairMgt?affairCategory=CAT215" class="link-dark"><i class="bi bi-list"></i></a></div>
</div>
</div>
<div class="card-body">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>제목</th>
<th>작성일시</th>
<th>상태</th>
</tr>
</thead>
<tbody>
<tr class="affairTr" th:each="affair:${affair1List}">
<input type="hidden" class="affairKey" th:value="${affair.affairKey}">
<td th:text="${affair.title}"></td>
<td th:text="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<td th:if="${affair.affairStatus eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="col-6 py-1" id="subPage3">
<div class="card">
<div class="card-header bg-white">
<div class="row justify-content-between">
<div class="col-auto">외사첩보망 견문관리</div>
<div class="col-auto"><a href="/affair/affairMgt?affairCategory=CAT216" class="link-dark"><i class="bi bi-list"></i></a></div>
</div>
</div>
<div class="card-body">
<table class="table table-sm table-hover">
<thead>
<tr>
<th>제목</th>
<th>작성일시</th>
<th>상태</th>
</tr>
</thead>
<tbody>
<tr class="affairTr" th:each="affair:${affair2List}">
<input type="hidden" class="affairKey" th:value="${affair.affairKey}">
<td th:text="${affair.title}"></td>
<td th:text="${#temporals.format(affair.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
<th:block th:each="commonCode:${session.commonCode.get('DST')}">
<td th:if="${affair.affairStatus eq commonCode.itemCd}" th:text="${commonCode.itemValue}"></td>
</th:block>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</main> </main>
<div class="modal fade" id="viewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="viewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="viewContent">
</div>
</div>
</div>
<div class="modal fade" id="affairViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="affairViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="affairViewBody">
</div>
</div>
</div>
<div class="modal fade" id="faRptViewModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="faRptViewModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl modal-dialog-scrollable">
<div class="modal-content" id="faRptViewBody">
</div>
</div>
</div>
</div> </div>
</html> </html>

View File

@ -5,7 +5,7 @@
<h5 class="modal-title text-white" id="userInsertModalLabel">사용자 신청</h5> <h5 class="modal-title text-white" id="userInsertModalLabel">사용자 신청</h5>
<button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close f-invert" data-bs-dismiss="modal" aria-label="Close"></button>
</div> </div>
<!-- <div class="modal-body">th:if="${joinFlag eq 'F'}" <div class="modal-body" th:if="${joinFlag eq 'F'}">
<div class="mb-3 mt-3 row"> <div class="mb-3 mt-3 row">
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label> <label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
<div class="col-sm-3"> <div class="col-sm-3">
@ -14,9 +14,9 @@
</div> </div>
<button type="button" class="btn btn-sm btn-outline-primary col-sm-1" id="dicCodeSearchBtn">검색</button> <button type="button" class="btn btn-sm btn-outline-primary col-sm-1" id="dicCodeSearchBtn">검색</button>
</div> </div>
</div>--> </div>
<div class="modal-body"><!-- th:if="${joinFlag eq 'T'}"--> <div class="modal-body" th:if="${joinFlag eq 'T'}">
<!--<form id="userInfoInsert" action="#" th:action="@{/admin/insertUserInfo}" method="post"> <form id="userInfoInsert" action="#" th:action="@{/admin/insertUserInfo}" method="post">
<div class="mb-3 mt-3 row"> <div class="mb-3 mt-3 row">
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label> <label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
<div class="col-sm-3"> <div class="col-sm-3">
@ -27,7 +27,7 @@
<div class="row mb-1"> <div class="row mb-1">
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">아이디</label> <label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">아이디</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="userId" name="userId" autocomplete="off"> <input type="text" class="form-control form-control-sm" id="userId" name="userId" autocomplete="new-password" th:value="${userInfo.userId}">
<label for="userId" style="font-size: 12px">6~20자 사이의 알파벳, 숫자를 입력하세요</label> <label for="userId" style="font-size: 12px">6~20자 사이의 알파벳, 숫자를 입력하세요</label>
</div> </div>
<label for="userNm" class="col-sm-2 col-form-label col-form-label-sm text-center">이름</label> <label for="userNm" class="col-sm-2 col-form-label col-form-label-sm text-center">이름</label>
@ -38,7 +38,7 @@
<div class="row mb-1"> <div class="row mb-1">
<label for="modalPassword" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호</label> <label for="modalPassword" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호</label>
<div class="col-sm-4"> <div class="col-sm-4">
<input type="password" class="form-control form-control-sm" id="modalPassword" name="password" > <input type="password" class="form-control form-control-sm" id="modalPassword" name="password" autocomplete="new-password">
<label for="userId" style="font-size: 12px">8~16자 사이의 알파벳, 숫자, 특수문자 조합</label> <label for="userId" style="font-size: 12px">8~16자 사이의 알파벳, 숫자, 특수문자 조합</label>
</div> </div>
<label for="passwordConfirm" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호 확인</label> <label for="passwordConfirm" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호 확인</label>
@ -79,7 +79,7 @@
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">관서</label> <label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">관서</label>
<div class="col-sm-4"> <div class="col-sm-4">
<select class="form-select form-select-sm" id="ogCd" name="ogCd"> <select class="form-select form-select-sm" id="ogCd" name="ogCd">
<option value="">&#45;&#45;선택&#45;&#45;</option> <option value="">--선택--</option>
<th:block th:each="code:${ogList}"> <th:block th:each="code:${ogList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ogCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ogCd}"></option>
</th:block> </th:block>
@ -94,7 +94,7 @@
<label for="ofcCd" class="col-sm-2 col-form-label col-form-label-sm text-center">부서</label> <label for="ofcCd" class="col-sm-2 col-form-label col-form-label-sm text-center">부서</label>
<div class="col-sm-4"> <div class="col-sm-4">
<select class="form-select form-select-sm" id="ofcCd" name="ofcCd"> <select class="form-select form-select-sm" id="ofcCd" name="ofcCd">
<option value="">&#45;&#45;선택&#45;&#45;</option> <option value="">--선택--</option>
<th:block th:each="code:${ofcList}"> <th:block th:each="code:${ofcList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ofcCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ofcCd}"></option>
</th:block> </th:block>
@ -109,7 +109,7 @@
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">계급</label> <label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">계급</label>
<div class="col-sm-4"> <div class="col-sm-4">
<select class="form-select form-select-sm" id="titleCd" name="titleCd"> <select class="form-select form-select-sm" id="titleCd" name="titleCd">
<option value="">&#45;&#45;선택&#45;&#45;</option> <option value="">--선택--</option>
<th:block th:each="code:${titleList}"> <th:block th:each="code:${titleList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.titleCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.titleCd}"></option>
</th:block> </th:block>
@ -124,7 +124,7 @@
<label for="outturnCd" class="col-sm-2 col-form-label col-form-label-sm text-center">경과</label> <label for="outturnCd" class="col-sm-2 col-form-label col-form-label-sm text-center">경과</label>
<div class="col-sm-4"> <div class="col-sm-4">
<select class="form-select form-select-sm" id="outturnCd" name="outturnCd"> <select class="form-select form-select-sm" id="outturnCd" name="outturnCd">
<option value="">&#45;&#45;선택&#45;&#45;</option> <option value="">--선택--</option>
<th:block th:each="code:${outturnList}"> <th:block th:each="code:${outturnList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.outturnCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.outturnCd}"></option>
</th:block> </th:block>
@ -133,7 +133,7 @@
<label for="seriesCd" class="col-sm-2 col-form-label col-form-label-sm text-center">직별</label> <label for="seriesCd" class="col-sm-2 col-form-label col-form-label-sm text-center">직별</label>
<div class="col-sm-4"> <div class="col-sm-4">
<select class="form-select form-select-sm" id="seriesCd" name="seriesCd"> <select class="form-select form-select-sm" id="seriesCd" name="seriesCd">
<option value="">&#45;&#45;선택&#45;&#45;</option> <option value="">--선택--</option>
<th:block th:each="code:${seriesList}"> <th:block th:each="code:${seriesList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.seriesCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.seriesCd}"></option>
</th:block> </th:block>
@ -144,152 +144,16 @@
<label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어특채</label> <label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어특채</label>
<div class="col-sm-4"> <div class="col-sm-4">
<select class="form-select form-select-sm" id="languageCd" name="languageCd"> <select class="form-select form-select-sm" id="languageCd" name="languageCd">
<option value="">&#45;&#45;선택&#45;&#45;</option> <option value="">--선택--</option>
<th:block th:each="code:${languageList}"> <th:block th:each="code:${languageList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.groupCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.groupCd}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
</div> </div>
</form>-->
<form id="userInfoInsert" action="#" th:action="@{/admin/insertUserInfo}" method="post">
<div class="mb-3 mt-3 row">
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
<div class="col-sm-3">
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off">
</div>
<button type="button" class="btn btn-sm btn-outline-primary col-sm-1" id="dicCodeSearchBtn">검색</button>
</div>
<div class="row mb-1">
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">아이디</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm" id="userId" name="userId" autocomplete="off">
<label for="userId" style="font-size: 12px">6~20자 사이의 알파벳, 숫자를 입력하세요</label>
</div>
<label for="userNm" class="col-sm-2 col-form-label col-form-label-sm text-center">이름</label>
<div class="col-sm-4">
<input type="text" class=" form-control form-control-sm" id="userNm" name="userNm" autocomplete="off">
</div>
</div>
<div class="row mb-1">
<label for="modalPassword" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호</label>
<div class="col-sm-4">
<input type="password" class="form-control form-control-sm" id="modalPassword" name="password" autocomplete="new-password">
<label for="userId" style="font-size: 12px">8~16자 사이의 알파벳, 숫자, 특수문자 조합</label>
</div>
<label for="passwordConfirm" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호 확인</label>
<div class="col-sm-4">
<input type="password" class="form-control form-control-sm" id="passwordConfirm">
</div>
</div>
<div class="row mb-1">
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">휴대전화</label>
<div class="col-sm-4">
<input type="tel" class="form-control form-control-sm" id="phoneNo" name="phoneNo">
</div>
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">이메일</label>
<div class="col-sm-4">
<input type="email" class="form-control form-control-sm" id="email" name="email">
</div>
</div>
<div class="row mb-1">
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
<div class="col-sm-4">
<select class="form-select form-select-sm" id="sex" name="sex">
<option value="SEX002"></option>
<option value="SEX001"></option>
</select>
</div>
</div>
<div class="row mb-1">
<label for="birthDate" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm dateSelector" id="birthDate" name="birthDate" readonly>
</div>
<label for="policeInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">해양경찰배명일</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm dateSelector" id="policeInDate" name="policeInDate" readonly>
</div>
</div>
<div class="row mb-1">
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">관서</label>
<div class="col-sm-4">
<select class="form-select form-select-sm" id="ogCd" name="ogCd">
<option value="">--선택--</option>
<th:block th:each="code:${ogList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select>
</div>
<label for="organInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현관서전입일</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm dateSelector" id="organInDate" name="organInDate" readonly>
</div>
</div>
<div class="row mb-1">
<label for="ofcCd" class="col-sm-2 col-form-label col-form-label-sm text-center">부서</label>
<div class="col-sm-4">
<select class="form-select form-select-sm" id="ofcCd" name="ofcCd">
<option value="">--선택--</option>
<th:block th:each="code:${ofcList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select>
</div>
<label for="ofcInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현부서임용일</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm dateSelector" id="ofcInDate" name="ofcInDate" readonly>
</div>
</div>
<div class="row mb-1">
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">계급</label>
<div class="col-sm-4">
<select class="form-select form-select-sm" id="titleCd" name="titleCd">
<option value="">--선택--</option>
<th:block th:each="code:${titleList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select>
</div>
<label for="titleInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현계급임용일</label>
<div class="col-sm-4">
<input type="text" class="form-control form-control-sm dateSelector" id="titleInDate" name="titleInDate" readonly>
</div>
</div>
<div class="row mb-1">
<label for="outturnCd" class="col-sm-2 col-form-label col-form-label-sm text-center">경과</label>
<div class="col-sm-4">
<select class="form-select form-select-sm" id="outturnCd" name="outturnCd">
<option value="">--선택--</option>
<th:block th:each="code:${outturnList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select>
</div>
<label for="seriesCd" class="col-sm-2 col-form-label col-form-label-sm text-center">직별</label>
<div class="col-sm-4">
<select class="form-select form-select-sm" id="seriesCd" name="seriesCd">
<option value="">--선택--</option>
<th:block th:each="code:${seriesList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select>
</div>
</div>
<div class="row mb-1">
<label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어특채</label>
<div class="col-sm-4">
<select class="form-select form-select-sm" id="languageCd" name="languageCd">
<option value="">--선택--</option>
<th:block th:each="code:${languageList}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}"></option>
</th:block>
</select>
</div>
</div>
</form> </form>
</div> </div>
<div class="modal-foote bg-light"><!-- th:if="${joinFlag eq 'T'}"--> <div class="modal-footer bg-light" th:if="${joinFlag eq 'T'}">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button>
<button type="button" class="btn btn-primary" id="saveBtn">신청</button> <button type="button" class="btn btn-primary" id="saveBtn">신청</button>
</div> </div>

View File

@ -25,7 +25,7 @@
<button class="nav-link" th:classappend="${activeTab ne 'dashboard'?'active':''}" id="infoTab" data-bs-toggle="tab" data-bs-target="#infoTabPanel" type="button" role="tab" aria-controls="infoTabPanel" th:aria-selected="${activeTab ne 'dashboard'?'true':'false'}">개인정보</button> <button class="nav-link" th:classappend="${activeTab ne 'dashboard'?'active':''}" id="infoTab" data-bs-toggle="tab" data-bs-target="#infoTabPanel" type="button" role="tab" aria-controls="infoTabPanel" th:aria-selected="${activeTab ne 'dashboard'?'true':'false'}">개인정보</button>
</li> </li>
<li class="nav-item" role="presentation"> <li class="nav-item" role="presentation">
<button class="nav-link" th:classappend="${activeTab eq 'dashboard'?'active':''}" id="dashboardTab" data-bs-toggle="tab" data-bs-target="#dashboardTabPanel" type="button" role="tab" aria-controls="dashboardTabPanel" th:aria-selected="${activeTab eq 'dashboard'?'true':'false'}">대시보드</button> <button class="nav-link disabled" th:classappend="${activeTab eq 'dashboard'?'active':''}" id="dashboardTab" data-bs-toggle="tab" data-bs-target="#dashboardTabPanel" type="button" role="tab" aria-controls="dashboardTabPanel" th:aria-selected="${activeTab eq 'dashboard'?'true':'false'}">대시보드</button>
</li> </li>
</ul> </ul>
<div class="tab-content bg-white border border-top-0 p-2"> <div class="tab-content bg-white border border-top-0 p-2">