From 736b343b1f818adbf1cdf8db17c6e6fe37cee6b6 Mon Sep 17 00:00:00 2001 From: hylee Date: Mon, 26 Aug 2024 20:41:03 +0900 Subject: [PATCH] =?UTF-8?q?=EC=97=90=EC=9D=B4=EC=A0=BC=ED=8A=B8=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20(=EC=A0=84=EC=86=A1=EC=82=AC=20?= =?UTF-8?q?=EC=97=90=EC=9D=B4=EC=A0=BC=ED=8A=B8=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=ED=8E=98=EC=9D=B4=EC=A7=80)=20=EB=B0=8F=20=EA=B3=B5?= =?UTF-8?q?=ED=86=B5=EC=BD=94=EB=93=9C=20=EA=B8=B0=EB=8A=A5=20=EC=A7=84?= =?UTF-8?q?=ED=96=89=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmm/service/AbstractAgentService.java | 1 - .../client/cmm/service/AgentService.java | 1 - .../admin/cmn/config/MainDatabaseConfig.java | 7 +- .../itn/code/mapper/CodeDetailMapper.java | 14 + .../itn/admin/itn/code/mapper/CodeMapper.java | 15 + .../itn/code/mapper/domain/CodeDetailVO.java | 25 ++ .../admin/itn/code/mapper/domain/CodeVO.java | 17 + .../itn/code/server/CodeDetailService.java | 25 ++ .../admin/itn/code/server/CodeService.java | 20 + .../server/impl/CodeDetailServiceImpl.java | 44 ++ .../itn/code/server/impl/CodeServiceImpl.java | 39 ++ .../admin/itn/code/web/CodeController.java | 26 ++ .../code/web/CodeDetailRestController.java | 50 +++ .../itn/code/web/CodeRestController.java | 50 +++ .../itn/dict/web/DictionaryController.java | 2 +- .../admin/itn/user/web/UserController.java | 2 +- .../agent/client/one/AgentCOneMapper.xml | 6 +- .../agent/client/two/AgentCTwoMapper.xml | 7 +- .../mapper/itn/code/CodeDetailMapper.xml | 40 ++ .../resources/mapper/itn/code/CodeMapper.xml | 38 ++ src/main/resources/mybatis-config.xml | 3 + .../static/cmn/js/agent/timerForOneC.js | 18 +- .../static/cmn/js/agent/timerForTwoC.js | 35 +- src/main/resources/templates/agent/view.html | 333 ++------------- .../resources/templates/fragments/header.html | 31 ++ .../templates/fragments/mainsidebar.html | 8 + .../resources/templates/itn/code/list.html | 392 ++++++++++++++++++ .../templates/{ => itn}/dict/list.html | 6 - .../templates/{ => itn}/user/list.html | 0 src/main/resources/templates/login.html | 2 +- src/main/resources/templates/register.html | 4 +- 31 files changed, 915 insertions(+), 346 deletions(-) create mode 100644 src/main/java/com/itn/admin/itn/code/mapper/CodeDetailMapper.java create mode 100644 src/main/java/com/itn/admin/itn/code/mapper/CodeMapper.java create mode 100644 src/main/java/com/itn/admin/itn/code/mapper/domain/CodeDetailVO.java create mode 100644 src/main/java/com/itn/admin/itn/code/mapper/domain/CodeVO.java create mode 100644 src/main/java/com/itn/admin/itn/code/server/CodeDetailService.java create mode 100644 src/main/java/com/itn/admin/itn/code/server/CodeService.java create mode 100644 src/main/java/com/itn/admin/itn/code/server/impl/CodeDetailServiceImpl.java create mode 100644 src/main/java/com/itn/admin/itn/code/server/impl/CodeServiceImpl.java create mode 100644 src/main/java/com/itn/admin/itn/code/web/CodeController.java create mode 100644 src/main/java/com/itn/admin/itn/code/web/CodeDetailRestController.java create mode 100644 src/main/java/com/itn/admin/itn/code/web/CodeRestController.java create mode 100644 src/main/resources/mapper/itn/code/CodeDetailMapper.xml create mode 100644 src/main/resources/mapper/itn/code/CodeMapper.xml create mode 100644 src/main/resources/templates/itn/code/list.html rename src/main/resources/templates/{ => itn}/dict/list.html (97%) rename src/main/resources/templates/{ => itn}/user/list.html (100%) diff --git a/src/main/java/com/itn/admin/agent/client/cmm/service/AbstractAgentService.java b/src/main/java/com/itn/admin/agent/client/cmm/service/AbstractAgentService.java index 235a1e3..8740d46 100644 --- a/src/main/java/com/itn/admin/agent/client/cmm/service/AbstractAgentService.java +++ b/src/main/java/com/itn/admin/agent/client/cmm/service/AbstractAgentService.java @@ -42,7 +42,6 @@ public abstract class AbstractAgentService implements AgentService { return new RestResponse(HttpStatus.OK, "데이터를 정상적으로 입력했습니다.", totalTime + "초"); } - @Override public RestResponse findByInsertCnt(T agentVO) { int count = countByCondition(agentVO); return new RestResponse(HttpStatus.OK, "", count); diff --git a/src/main/java/com/itn/admin/agent/client/cmm/service/AgentService.java b/src/main/java/com/itn/admin/agent/client/cmm/service/AgentService.java index 6977fd7..146a796 100644 --- a/src/main/java/com/itn/admin/agent/client/cmm/service/AgentService.java +++ b/src/main/java/com/itn/admin/agent/client/cmm/service/AgentService.java @@ -4,7 +4,6 @@ import com.itn.admin.cmn.msg.RestResponse; public interface AgentService { RestResponse send(T agentVO); - RestResponse findByInsertCnt(T agentVO); RestResponse findByLogMoveCntWhereMessage(T agentVO); diff --git a/src/main/java/com/itn/admin/cmn/config/MainDatabaseConfig.java b/src/main/java/com/itn/admin/cmn/config/MainDatabaseConfig.java index 0ab664a..eb6808c 100644 --- a/src/main/java/com/itn/admin/cmn/config/MainDatabaseConfig.java +++ b/src/main/java/com/itn/admin/cmn/config/MainDatabaseConfig.java @@ -20,9 +20,10 @@ import javax.sql.DataSource; @Configuration @MapperScan(basePackages = { - "com.itn.admin.itn.dict.mapper", - "com.itn.admin.itn.mjon.spam.mapper", - "com.itn.admin.itn.user.mapper" + "com.itn.admin.itn.dict.mapper" + ,"com.itn.admin.itn.mjon.spam.mapper" + ,"com.itn.admin.itn.user.mapper" + ,"com.itn.admin.itn.code.mapper" } , sqlSessionFactoryRef = "factory") class MainDatabaseConfig { diff --git a/src/main/java/com/itn/admin/itn/code/mapper/CodeDetailMapper.java b/src/main/java/com/itn/admin/itn/code/mapper/CodeDetailMapper.java new file mode 100644 index 0000000..2f33aaa --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/mapper/CodeDetailMapper.java @@ -0,0 +1,14 @@ +package com.itn.admin.itn.code.mapper; +import java.util.List; + +import com.itn.admin.itn.code.mapper.domain.CodeDetailVO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CodeDetailMapper { + List findByGroupId(String codeGroupId); + CodeDetailVO findById(String codeId); + void insert(CodeDetailVO codeDetailVO); + void update(CodeDetailVO codeDetailVO); + void delete(String codeId); +} diff --git a/src/main/java/com/itn/admin/itn/code/mapper/CodeMapper.java b/src/main/java/com/itn/admin/itn/code/mapper/CodeMapper.java new file mode 100644 index 0000000..dcf1b84 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/mapper/CodeMapper.java @@ -0,0 +1,15 @@ +package com.itn.admin.itn.code.mapper; + +import java.util.List; + +import com.itn.admin.itn.code.mapper.domain.CodeVO; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface CodeMapper { + List findAll(); + CodeVO findById(String codeGroupId); + void insert(CodeVO codeVO); + void update(CodeVO codeVO); + void delete(String codeGroupId); +} diff --git a/src/main/java/com/itn/admin/itn/code/mapper/domain/CodeDetailVO.java b/src/main/java/com/itn/admin/itn/code/mapper/domain/CodeDetailVO.java new file mode 100644 index 0000000..e1cee12 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/mapper/domain/CodeDetailVO.java @@ -0,0 +1,25 @@ +package com.itn.admin.itn.code.mapper.domain; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class CodeDetailVO { + private String codeId; + private String codeGroupId; + private String codeName; + private String codeValue; + private Integer sortOrder; + private String useYn; + private String frstRegisterId; + private String frstRegistPnttm; + private String lastUpdusrId; + private String lastUpdtPnttm; + + // getters and setters +} diff --git a/src/main/java/com/itn/admin/itn/code/mapper/domain/CodeVO.java b/src/main/java/com/itn/admin/itn/code/mapper/domain/CodeVO.java new file mode 100644 index 0000000..0388446 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/mapper/domain/CodeVO.java @@ -0,0 +1,17 @@ +package com.itn.admin.itn.code.mapper.domain; + +import lombok.*; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class CodeVO { + private String codeGroupId; + private String codeGroupName; + private String description; + private String frstRegisterId; + private String frstRegistPnttm; + private String lastUpdusrId; + private String lastUpdtPnttm; +} diff --git a/src/main/java/com/itn/admin/itn/code/server/CodeDetailService.java b/src/main/java/com/itn/admin/itn/code/server/CodeDetailService.java new file mode 100644 index 0000000..3d1a51b --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/server/CodeDetailService.java @@ -0,0 +1,25 @@ +package com.itn.admin.itn.code.server; + +import com.itn.admin.cmn.msg.RestResponse; +import com.itn.admin.itn.code.mapper.domain.CodeDetailVO; + +import java.util.List; + +public interface CodeDetailService { + + + // 특정 코드 그룹의 모든 상세 코드를 가져오는 메서드 + List getDetailsByGroupId(String codeGroupId); + + // 특정 코드 상세를 ID로 가져오는 메서드 + CodeDetailVO getCodeDetailById(String codeId); + + // 코드 상세 추가 메서드 + RestResponse addCodeDetail(CodeDetailVO codeDetail); + + // 코드 상세 수정 메서드 + void updateCodeDetail(CodeDetailVO codeDetail); + + // 코드 상세 삭제 메서드 + void deleteCodeDetail(String codeId); +} diff --git a/src/main/java/com/itn/admin/itn/code/server/CodeService.java b/src/main/java/com/itn/admin/itn/code/server/CodeService.java new file mode 100644 index 0000000..5cb4951 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/server/CodeService.java @@ -0,0 +1,20 @@ +package com.itn.admin.itn.code.server; + +import com.itn.admin.cmn.msg.RestResponse; +import com.itn.admin.itn.code.mapper.domain.CodeVO; +import org.springframework.http.ResponseEntity; + +import java.util.List; + +public interface CodeService { + + List getAllCodeGroups(); + + CodeVO getCodeGroupById(String codeGroupId); + + RestResponse addCodeGroup(CodeVO codeGroup); + + void updateCodeGroup(CodeVO codeGroup); + + void deleteCodeGroup(String codeGroupId); +} diff --git a/src/main/java/com/itn/admin/itn/code/server/impl/CodeDetailServiceImpl.java b/src/main/java/com/itn/admin/itn/code/server/impl/CodeDetailServiceImpl.java new file mode 100644 index 0000000..2d684c3 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/server/impl/CodeDetailServiceImpl.java @@ -0,0 +1,44 @@ +package com.itn.admin.itn.code.server.impl; + +import java.util.List; + +import com.itn.admin.cmn.msg.RestResponse; +import com.itn.admin.itn.code.mapper.CodeDetailMapper; +import com.itn.admin.itn.code.mapper.domain.CodeDetailVO; +import com.itn.admin.itn.code.server.CodeDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.stereotype.Service; + +@Service +public class CodeDetailServiceImpl implements CodeDetailService { + + @Autowired + private CodeDetailMapper codeDetailMapper; + + @Override + public List getDetailsByGroupId(String codeGroupId) { + return codeDetailMapper.findByGroupId(codeGroupId); + } + + @Override + public CodeDetailVO getCodeDetailById(String codeId) { + return codeDetailMapper.findById(codeId); + } + + @Override + public RestResponse addCodeDetail(CodeDetailVO codeDetail) { + codeDetailMapper.insert(codeDetail); + return new RestResponse(HttpStatus.OK, "등록되었습니다", codeDetail.getCodeName()); + } + + @Override + public void updateCodeDetail(CodeDetailVO codeDetail) { + codeDetailMapper.update(codeDetail); + } + + @Override + public void deleteCodeDetail(String codeId) { + codeDetailMapper.delete(codeId); + } +} diff --git a/src/main/java/com/itn/admin/itn/code/server/impl/CodeServiceImpl.java b/src/main/java/com/itn/admin/itn/code/server/impl/CodeServiceImpl.java new file mode 100644 index 0000000..93d92e1 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/server/impl/CodeServiceImpl.java @@ -0,0 +1,39 @@ +package com.itn.admin.itn.code.server.impl; +import java.util.List; + +import com.itn.admin.cmn.msg.RestResponse; +import com.itn.admin.itn.code.mapper.CodeMapper; +import com.itn.admin.itn.code.mapper.domain.CodeVO; +import com.itn.admin.itn.code.server.CodeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +@Service +public class CodeServiceImpl implements CodeService { + + @Autowired + private CodeMapper codeMapper; + + public List getAllCodeGroups() { + return codeMapper.findAll(); + } + + public CodeVO getCodeGroupById(String codeGroupId) { + return codeMapper.findById(codeGroupId); + } + + public RestResponse addCodeGroup(CodeVO codeVO) { + codeMapper.insert(codeVO); + return new RestResponse(HttpStatus.OK, "등록되었습니다.", codeVO.getCodeGroupId()); + } + + public void updateCodeGroup(CodeVO codeVO) { + codeMapper.update(codeVO); + } + + public void deleteCodeGroup(String codeGroupId) { + codeMapper.delete(codeGroupId); + } +} diff --git a/src/main/java/com/itn/admin/itn/code/web/CodeController.java b/src/main/java/com/itn/admin/itn/code/web/CodeController.java new file mode 100644 index 0000000..b70282a --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/web/CodeController.java @@ -0,0 +1,26 @@ +package com.itn.admin.itn.code.web; + +import com.itn.admin.itn.dict.service.DictionaryService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +public class CodeController { + + private DictionaryService dictionaryService; + + @Autowired + public void setDictionaryService(DictionaryService dictionaryService) { + this.dictionaryService = dictionaryService; + } + + @GetMapping(value = "/code/list") + public String list() { + return "itn/code/list"; + } + + + + +} diff --git a/src/main/java/com/itn/admin/itn/code/web/CodeDetailRestController.java b/src/main/java/com/itn/admin/itn/code/web/CodeDetailRestController.java new file mode 100644 index 0000000..5505114 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/web/CodeDetailRestController.java @@ -0,0 +1,50 @@ +package com.itn.admin.itn.code.web; + +import com.itn.admin.cmn.msg.RestResponse; +import com.itn.admin.itn.code.mapper.domain.CodeDetailVO; +import com.itn.admin.itn.code.server.CodeDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping("/api/code-details") // URL 경로를 '/api/code-details'로 변경 +public class CodeDetailRestController { + + @Autowired + private CodeDetailService codeDetailService; + + // 특정 코드 그룹의 모든 상세 코드 목록을 가져오는 메서드 + @GetMapping("/{codeGroupId}") + public List getDetailsByGroupId(@PathVariable String codeGroupId) { + return codeDetailService.getDetailsByGroupId(codeGroupId); + } + + // 특정 코드 상세를 ID로 가져오는 메서드 + @GetMapping("/detail/{codeId}") + public CodeDetailVO getCodeDetailById(@PathVariable String codeId) { + return codeDetailService.getCodeDetailById(codeId); + } + + // 코드 상세 추가 메서드 + @PostMapping + public ResponseEntity addCodeDetail(@RequestBody CodeDetailVO codeDetail) { + return ResponseEntity.ok().body(codeDetailService.addCodeDetail(codeDetail)); + } + + // 코드 상세 수정 메서드 + @PutMapping("/detail/{codeId}") + public void updateCodeDetail(@PathVariable String codeId, @RequestBody CodeDetailVO codeDetail) { + codeDetail.setCodeId(codeId); + codeDetailService.updateCodeDetail(codeDetail); + } + + // 코드 상세 삭제 메서드 + @DeleteMapping("/detail/{codeId}") + public void deleteCodeDetail(@PathVariable String codeId) { + codeDetailService.deleteCodeDetail(codeId); + } +} diff --git a/src/main/java/com/itn/admin/itn/code/web/CodeRestController.java b/src/main/java/com/itn/admin/itn/code/web/CodeRestController.java new file mode 100644 index 0000000..371ecf6 --- /dev/null +++ b/src/main/java/com/itn/admin/itn/code/web/CodeRestController.java @@ -0,0 +1,50 @@ +package com.itn.admin.itn.code.web; + +import com.itn.admin.cmn.msg.RestResponse; +import com.itn.admin.itn.code.mapper.domain.CodeVO; +import com.itn.admin.itn.code.server.CodeService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + + +@RestController +@RequestMapping("/api/codes") // URL 경로를 '/api/codes'로 설정 +public class CodeRestController { + + @Autowired + private CodeService codeService; + + // 코드 그룹 목록을 가져오는 메서드 + @GetMapping + public List getAllCodeGroups() { + return codeService.getAllCodeGroups(); + } + + // 특정 코드 그룹을 ID로 가져오는 메서드 + @GetMapping("/{codeGroupId}") + public CodeVO getCodeGroupById(@PathVariable String codeGroupId) { + return codeService.getCodeGroupById(codeGroupId); + } + + // 코드 그룹 추가 메서드 + @PostMapping + public ResponseEntity addCodeGroup(@RequestBody CodeVO codeGroup) { + return ResponseEntity.ok().body(codeService.addCodeGroup(codeGroup)); + } + + // 코드 그룹 수정 메서드 + @PutMapping("/{codeGroupId}") + public void updateCodeGroup(@PathVariable String codeGroupId, @RequestBody CodeVO codeGroup) { + codeGroup.setCodeGroupId(codeGroupId); + codeService.updateCodeGroup(codeGroup); + } + + // 코드 그룹 삭제 메서드 + @DeleteMapping("/{codeGroupId}") + public void deleteCodeGroup(@PathVariable String codeGroupId) { + codeService.deleteCodeGroup(codeGroupId); + } +} \ No newline at end of file diff --git a/src/main/java/com/itn/admin/itn/dict/web/DictionaryController.java b/src/main/java/com/itn/admin/itn/dict/web/DictionaryController.java index 10d95f4..dd34015 100644 --- a/src/main/java/com/itn/admin/itn/dict/web/DictionaryController.java +++ b/src/main/java/com/itn/admin/itn/dict/web/DictionaryController.java @@ -24,7 +24,7 @@ public class DictionaryController { // // model.addAttribute("list", resultMap.get("resultList")); - return "dict/list"; + return "itn/dict/list"; } diff --git a/src/main/java/com/itn/admin/itn/user/web/UserController.java b/src/main/java/com/itn/admin/itn/user/web/UserController.java index 256f39c..fdbc0f1 100644 --- a/src/main/java/com/itn/admin/itn/user/web/UserController.java +++ b/src/main/java/com/itn/admin/itn/user/web/UserController.java @@ -35,7 +35,7 @@ public class UserController { model.addAttribute("list", resultMap.get("resultList")); model.addAttribute("roles", resultMap.get("roles")); - return "user/list"; + return "itn/user/list"; } } diff --git a/src/main/resources/mapper/agent/client/one/AgentCOneMapper.xml b/src/main/resources/mapper/agent/client/one/AgentCOneMapper.xml index 98aba7d..7ce3791 100644 --- a/src/main/resources/mapper/agent/client/one/AgentCOneMapper.xml +++ b/src/main/resources/mapper/agent/client/one/AgentCOneMapper.xml @@ -69,7 +69,8 @@ count(*) as cnt FROM MUNJAON_MSG_LOG - WHERE SEND_STATUS = 1000 + WHERE 1=1 +-- and SEND_STATUS = 1000 and MSG_TYPE = #{msgType} and MESSAGE LIKE CONCAT(#{message}, '%') @@ -81,8 +82,7 @@ count(*) as cnt FROM MUNJAON_MSG_LOG - WHERE SEND_STATUS = 1000 - and MSG_TYPE = #{msgType} + WHERE MESSAGE LIKE CONCAT(#{message}, '%') diff --git a/src/main/resources/mapper/agent/client/two/AgentCTwoMapper.xml b/src/main/resources/mapper/agent/client/two/AgentCTwoMapper.xml index 36c54da..2bf5419 100644 --- a/src/main/resources/mapper/agent/client/two/AgentCTwoMapper.xml +++ b/src/main/resources/mapper/agent/client/two/AgentCTwoMapper.xml @@ -65,19 +65,20 @@ + SELECT * FROM common_code_detail WHERE code_group_id = #{codeGroupId} + + + + + + + + INSERT INTO common_code_detail (code_id, code_group_id, code_name, code_value, sort_order, use_yn, frst_register_id, frst_regist_pnttm, last_updusr_id, last_updt_pnttm) + VALUES (#{codeId}, #{codeGroupId}, #{codeName}, #{codeValue}, #{sortOrder}, #{useYn}, #{frstRegisterId}, #{frstRegistPnttm}, #{lastUpdusrId}, #{lastUpdtPnttm}) + + + + + UPDATE common_code_detail + SET code_name = #{codeName}, + code_value = #{codeValue}, + sort_order = #{sortOrder}, + use_yn = #{useYn}, + last_updusr_id = #{lastUpdusrId}, + last_updt_pnttm = #{lastUpdtPnttm} + WHERE code_id = #{codeId} + + + + + DELETE FROM common_code_detail WHERE code_id = #{codeId} + + \ No newline at end of file diff --git a/src/main/resources/mapper/itn/code/CodeMapper.xml b/src/main/resources/mapper/itn/code/CodeMapper.xml new file mode 100644 index 0000000..1e9344c --- /dev/null +++ b/src/main/resources/mapper/itn/code/CodeMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + INSERT INTO common_code (code_group_id, code_group_name, description, frst_register_id, frst_regist_pnttm, last_updusr_id, last_updt_pnttm) + VALUES (#{codeGroupId}, #{codeGroupName}, #{description}, #{frstRegisterId}, #{frstRegistPnttm}, #{lastUpdusrId}, #{lastUpdtPnttm}) + + + + + UPDATE common_code + SET code_group_name = #{codeGroupName}, + description = #{description}, + last_updusr_id = #{lastUpdusrId}, + last_updt_pnttm = #{lastUpdtPnttm} + WHERE code_group_id = #{codeGroupId} + + + + + DELETE FROM common_code WHERE code_group_id = #{codeGroupId} + + \ No newline at end of file diff --git a/src/main/resources/mybatis-config.xml b/src/main/resources/mybatis-config.xml index 3dbb7aa..c011c05 100644 --- a/src/main/resources/mybatis-config.xml +++ b/src/main/resources/mybatis-config.xml @@ -22,6 +22,9 @@ + + + diff --git a/src/main/resources/static/cmn/js/agent/timerForOneC.js b/src/main/resources/static/cmn/js/agent/timerForOneC.js index 80070c8..eb90ffe 100644 --- a/src/main/resources/static/cmn/js/agent/timerForOneC.js +++ b/src/main/resources/static/cmn/js/agent/timerForOneC.js @@ -19,8 +19,9 @@ function fn_oneInsertScriptStart(){ } +// LOG 테이블에 function fn_oneReportScriptStart(){ - oneStartReportTimer($('#oneUserId').val()); // report 타임어택 시작 + oneStartReportTimer(); // report 타임어택 시작 } @@ -64,7 +65,9 @@ function fn_oneInsertCntAndTime(){ var jsonObject = {}; formData.forEach((value, key) => { - jsonObject[key] = value; + if (!(value instanceof File)) { + jsonObject[key] = value; + } }); console.log('url : /agent/one/findByInsertCnt'); $.ajax({ @@ -88,6 +91,7 @@ function fn_oneInsertCntAndTime(){ if(cnt >= numberOnly){ oneStopInsertTimer(); oneStartTransferTimer($('#oneUserId').val()); // 이관 카운트 + fn_oneReportScriptStart(); } } else { @@ -190,7 +194,7 @@ function fn_oneTranferCntAndTime(userId){ function oneStartReportTimer(userId) { console.log(' :: startReportTimer :: '); let startTime = Date.now(); - oneStartReporingCntTimer(userId); + oneStartReporingCntTimer(); oneIntervalId_reporingSeconds = setInterval(function() { let currentTime = Date.now(); let elapsedTime = (currentTime - startTime) / 1000; // 밀리초를 초 단위로 변환 @@ -198,10 +202,10 @@ function oneStartReportTimer(userId) { }, 1); } -function oneStartReporingCntTimer(userId) { +function oneStartReporingCntTimer() { // 1초마다 fn_twoReportCntAndTime 함수를 호출 oneReporingCntIntervalId = setInterval(function() { - fn_oneReportCntAndTime(userId); + fn_oneReportCntAndTime(); }, 1000); } @@ -212,7 +216,7 @@ function oneStopReporingTimer() { } -function fn_oneReportCntAndTime(userId){ +function fn_oneReportCntAndTime(){ // 폼 데이터를 수집 var formData = new FormData($("#divOneSms .sendForm")[0]); @@ -225,7 +229,7 @@ function fn_oneReportCntAndTime(userId){ $.ajax({ type: "POST", - url: "/agent/one/findByInsertCnt", + url: "/agent/one/findByLogMoveCntWhereMessage", data: JSON.stringify(jsonObject), // JSON 문자열로 변환된 데이터를 전송 dataType: 'json', contentType: 'application/json', diff --git a/src/main/resources/static/cmn/js/agent/timerForTwoC.js b/src/main/resources/static/cmn/js/agent/timerForTwoC.js index ce75783..212a6dd 100644 --- a/src/main/resources/static/cmn/js/agent/timerForTwoC.js +++ b/src/main/resources/static/cmn/js/agent/timerForTwoC.js @@ -19,8 +19,8 @@ function fn_twoInsertScriptStart(){ } -function fn_twoReportScriptStart(ajaxUrl){ - twoStartReportTimer($('#twoUserId').val(), ajaxUrl); // report 타임어택 시작 +function fn_twoReportScriptStart(){ + twoStartReportTimer(); // report 타임어택 시작 } @@ -89,6 +89,7 @@ function fn_twoInsertCntAndTime(){ if(cnt >= numberOnly){ twoStopInsertTimer(); twoStartTransferTimer($('#twoUserId').val()); // 이관 카운트 + fn_twoReportScriptStart(); } } else { @@ -142,13 +143,13 @@ function fn_twoTranferCntAndTime(userId){ // 폼 데이터를 수집 var formData = new FormData($("#divTwoSms .sendForm")[0]); - console.log('? :: ', formData); + // console.log('? :: ', formData); var jsonObject = {}; formData.forEach((value, key) => { jsonObject[key] = value; }); jsonObject['userId'] = userId; - console.log('jsonObject : ', jsonObject); + // console.log('jsonObject : ', jsonObject); $.ajax({ type: "POST", @@ -192,10 +193,10 @@ function fn_twoTranferCntAndTime(userId){ // 리포트 영역 // 리포트 영역 // 리포트 영역 -function twoStartReportTimer(userId, ajaxUrl) { - console.log(' :: startReportTimer :: '); +function twoStartReportTimer() { + // console.log(' :: startReportTimer :: '); let startTime = Date.now(); - twoStartReporingCntTimer(userId, ajaxUrl); + twoStartReporingCntTimer(); twoIntervalId_reporingSeconds = setInterval(function() { let currentTime = Date.now(); let elapsedTime = (currentTime - startTime) / 1000; // 밀리초를 초 단위로 변환 @@ -203,10 +204,10 @@ function twoStartReportTimer(userId, ajaxUrl) { }, 1); } -function twoStartReporingCntTimer(userId, ajaxUrl) { +function twoStartReporingCntTimer() { // 1초마다 fn_twoReportCntAndTime 함수를 호출 twoReporingCntIntervalId = setInterval(function() { - fn_twoReportCntAndTime(userId, ajaxUrl); + fn_twoReportCntAndTime(); }, 1000); } @@ -217,27 +218,29 @@ function twoStopReporingTimer() { } -function fn_twoReportCntAndTime(userId, ajaxUrl){ +function fn_twoReportCntAndTime(userId){ // 폼 데이터를 수집 var formData = new FormData($("#divTwoSms .sendForm")[0]); var jsonObject = {}; formData.forEach((value, key) => { - jsonObject[key] = value; + if (!(value instanceof File)) { + jsonObject[key] = value; + } }); jsonObject['userId'] = userId; $.ajax({ type: "POST", - url: ajaxUrl, + url: "/agent/two/findByLogMoveCntWhereMessage", data: JSON.stringify(jsonObject), // JSON 문자열로 변환된 데이터를 전송 dataType: 'json', contentType: 'application/json', // async: true, success: function (data) { - // console.log('tranfer data : ', data); + console.log('tranfer data : ', data); if (data.status == 'OK') { var cnt = data.data; @@ -245,12 +248,12 @@ function fn_twoReportCntAndTime(userId, ajaxUrl){ // 리포트 영역에 cnt 추가 $('#divTwoSmsCard .reportSndCnt').text(cnt); // server DB에 update한 건수와 cnt비교 - var reportStartCnt = $('#divTwoSmsCard .reportStartCnt').text(); + var transferCnt = $('#divTwoSmsCard .insertCnt').text(); console.log('cnt : ', cnt); - console.log('reportStartCnt : ', reportStartCnt); + console.log('reportStartCnt : ', transferCnt); console.log(''); - if(cnt >= Number(reportStartCnt)){ + if(cnt >= Number(transferCnt)){ twoStopReporingTimer(); } } diff --git a/src/main/resources/templates/agent/view.html b/src/main/resources/templates/agent/view.html index 9bd71df..e8fee2b 100644 --- a/src/main/resources/templates/agent/view.html +++ b/src/main/resources/templates/agent/view.html @@ -447,7 +447,7 @@
-
+
@@ -485,15 +485,15 @@
-
+
클라이언트 report (S -> C)
- 0 - - 0 + 0 + + 건수
@@ -509,18 +509,18 @@
-
+ -
- - -
+ + + + + + + + -
+
@@ -536,7 +536,7 @@
-
+
@@ -574,15 +574,15 @@
-
+
클라이언트 report (S -> C)
- 0 - - 0 + 0 + + 건수
@@ -598,18 +598,18 @@
-
-
- - - - -
-
+ + + + + + + + + + + +
@@ -741,135 +741,6 @@ - /* - * client_1 reporting 버튼 - * */ - $("#divOneSmsCard .rprtAllStrtBtn").on("click", function () { - - var ajaxUrl = '/agent/one/findByLogMoveCnt' - // 폼 데이터를 수집 - var formData = new FormData($("#divTwoSms .sendForm")[0]); - - var jsonObject = {}; - formData.forEach((value, key) => { - if (!(value instanceof File)) { - jsonObject[key] = value; - } - }); - - var usertagId = '#'+$(this).data('tagid'); - jsonObject['userId'] = $(usertagId).val(); - - console.log('jsonObject : ', jsonObject); - $.ajax({ - type: "POST", - url: "/agent/server/allReport", - data: JSON.stringify(jsonObject), // JSON 문자열로 변환된 데이터를 전송 - dataType: 'json', - contentType: 'application/json', - // async: true, - success: function (data) { - // console.log('data : ', data); - - if (data.status === 'OK') { - if(data.data < 1){ - alert('리포팅할 데이터가 없습니다.'); - oneStopInsertTimer(); - return false; - } - - $("#divTwoSmsCard .reportStartCnt").text(data.data); - fn_successAlert(data.data+'건', data.msg); - } - else { - alert("오류 알림 : :: "+data.msg); - } - }, - error: function (e) { - alert("저장에 실패하였습니다."); - console.log("ERROR : " + JSON.stringify(e)); - }, - beforeSend : function(xmlHttpRequest, data) { - if(data.data > 0){ - return false; - } - // 건수를 현황확인으로 이동 - fn_oneReportScriptStart(); - - }, - complete : function(xhr, textStatus) { - oneStopInsertTimer(); - } - }); - }); - - /* - * client_1 reporting 버튼 - * */ - $("#divOneSmsCard .rprtCrrntStrtBtn").on("click", function () { - - var ajaxUrl = '/agent/one/findByLogMoveCntWhereMessage' - - // 폼 데이터를 수집 - var formData = new FormData($("#divTwoSms .sendForm")[0]); - - var jsonObject = {}; - formData.forEach((value, key) => { - if (!(value instanceof File)) { - jsonObject[key] = value; - } - }); - var usertagId = '#'+$(this).data('tagid'); - jsonObject['userId'] = $(usertagId).val(); - - // console.log('two rprtCrrntStrtBtn jsonObject : ', jsonObject); - $.ajax({ - type: "POST", - url: "/agent/server/nowDataReport", - data: JSON.stringify(jsonObject), // JSON 문자열로 변환된 데이터를 전송 - dataType: 'json', - contentType: 'application/json', - // async: true, - success: function (data) { - // console.log('two rprtCrrntStrtBtn data : ', data); - - if (data.status === 'OK') { - if(data.data < 1){ - alert('리포팅할 데이터가 없습니다.'); - oneStopInsertTimer(); - return false; - } - var $oriTag = $("#divOneSmsCard .reportStartCnt"); - var oriText = $oriTag.text(); - var dataCnt = data.data; - var totalCnt = dataCnt; - if(Number(oriText) > 0){ - totalCnt = dataCnt + Number(oriText); - $("#divOneSmsCard .reportStartSubCnt").text(' (+'+dataCnt+')'); - } - $oriTag.text(totalCnt); - fn_successAlert(data.data+'건', data.msg); - } - else { - alert("오류 알림 : :: "+data.msg); - } - }, - error: function (e) { - alert("저장에 실패하였습니다."); - console.log("ERROR : " + JSON.stringify(e)); - }, - beforeSend : function(data) { - if(data.data > 0){ - return false; - } - fn_oneReportScriptStart(ajaxUrl); - - }, - complete : function(xhr, textStatus) { - oneStopInsertTimer(); - } - }); - }); // client_2 영역 // client_2 영역 @@ -970,148 +841,8 @@ }); - - /* - * client_2 reporting 버튼 - * */ - $("#divTwoSmsCard .rprtAllStrtBtn").on("click", function () { - - var ajaxUrl = '/agent/two/findByLogMoveCnt' - // 폼 데이터를 수집 - var formData = new FormData($("#divTwoSms .sendForm")[0]); - - var jsonObject = {}; - formData.forEach((value, key) => { - if (!(value instanceof File)) { - jsonObject[key] = value; - } - }); - var usertagId = '#'+$(this).data('tagid'); - jsonObject['userId'] = $(usertagId).val(); - - console.log('jsonObject : ', jsonObject); - $.ajax({ - type: "POST", - url: "/agent/server/allReport", - data: JSON.stringify(jsonObject), // JSON 문자열로 변환된 데이터를 전송 - dataType: 'json', - contentType: 'application/json', - // async: true, - success: function (data) { - // console.log('data : ', data); - - if (data.status === 'OK') { - if(data.data < 1){ - alert('리포팅할 데이터가 없습니다.'); - oneStopInsertTimer(); - return false; - } - - - $("#divTwoSmsCard .reportStartCnt").text(data.data); - fn_successAlert(data.data+'건', data.msg); - } - else { - alert("오류 알림 : :: "+data.msg); - } - }, - error: function (e) { - alert("저장에 실패하였습니다."); - console.log("ERROR : " + JSON.stringify(e)); - }, - beforeSend : function(xmlHttpRequest, data) { - if(data.data > 0){ - return false; - } - fn_twoReportScriptStart(ajaxUrl); - - }, - complete : function(xhr, textStatus) { - oneStopInsertTimer(); - } - }); - }); - - /* - * client_2 reporting 버튼 - * */ - $("#divTwoSmsCard .rprtCrrntStrtBtn").on("click", function () { - - var ajaxUrl = '/agent/two/findByLogMoveCntWhereMessage' - - // 폼 데이터를 수집 - var formData = new FormData($("#divTwoSms .sendForm")[0]); - - var jsonObject = {}; - formData.forEach((value, key) => { - if (!(value instanceof File)) { - jsonObject[key] = value; - } - }); - var usertagId = '#'+$(this).data('tagid'); - jsonObject['userId'] = $(usertagId).val(); - - // console.log('two rprtCrrntStrtBtn jsonObject : ', jsonObject); - $.ajax({ - type: "POST", - url: "/agent/server/nowDataReport", - data: JSON.stringify(jsonObject), // JSON 문자열로 변환된 데이터를 전송 - dataType: 'json', - contentType: 'application/json', - // async: true, - success: function (data) { - // console.log('two rprtCrrntStrtBtn data : ', data); - - if (data.status === 'OK') { - if(data.data < 1){ - alert('리포팅할 데이터가 없습니다.'); - twoStopInsertTimer(); - return false; - } - var $oriTag = $("#divTwoSmsCard .reportStartCnt"); - var oriText = $oriTag.text(); - var dataCnt = data.data; - var totalCnt = dataCnt; - if(Number(oriText) > 0){ - totalCnt = dataCnt + Number(oriText); - $("#divTwoSmsCard .reportStartSubCnt").text(' (+'+dataCnt+')'); - } - $oriTag.text(totalCnt); - fn_successAlert(data.data+'건', data.msg); - } - else { - alert("오류 알림 : :: "+data.msg); - } - }, - error: function (e) { - alert("저장에 실패하였습니다."); - console.log("ERROR : " + JSON.stringify(e)); - }, - beforeSend : function(data) { - if(data.data > 0){ - return false; - } - fn_twoReportScriptStart(ajaxUrl); - - }, - complete : function(xhr, textStatus) { - twoStopInsertTimer(); - } - }); - }); - }); - function fn_successAlert(title, msg){ - $(document).Toasts('create', { - class: 'bg-info', - title: title, - subtitle: '', - autohide : true, - delay: 6000, - body: msg - }) - } diff --git a/src/main/resources/templates/fragments/header.html b/src/main/resources/templates/fragments/header.html index 4749e8f..03b73c1 100644 --- a/src/main/resources/templates/fragments/header.html +++ b/src/main/resources/templates/fragments/header.html @@ -10,6 +10,9 @@ + + + @@ -32,6 +35,8 @@ + + @@ -71,6 +76,8 @@ + + \ No newline at end of file diff --git a/src/main/resources/templates/fragments/mainsidebar.html b/src/main/resources/templates/fragments/mainsidebar.html index b8dee68..2b179a4 100644 --- a/src/main/resources/templates/fragments/mainsidebar.html +++ b/src/main/resources/templates/fragments/mainsidebar.html @@ -65,6 +65,14 @@ +