123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- package com.lemon.lifecenter.controller;
- import java.util.ArrayList;
- import java.util.List;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import org.json.JSONObject;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.transaction.annotation.Propagation;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.web.bind.annotation.ModelAttribute;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.servlet.ModelAndView;
- import com.lemon.lifecenter.common.LifeCenterConfigVO;
- import com.lemon.lifecenter.common.LifeCenterController;
- import com.lemon.lifecenter.common.LifeCenterFunction;
- import com.lemon.lifecenter.common.LifeCenterPaging;
- import com.lemon.lifecenter.common.LifeCenterSessionController;
- import com.lemon.lifecenter.dto.PatientDTO;
- import com.lemon.lifecenter.dto.PushDTO;
- import com.lemon.lifecenter.service.PatientService;
- import com.lemon.lifecenter.service.PushService;
- @Controller
- @RequestMapping( "/push" )
- public class PushController extends LifeCenterController {
- @Autowired
- private PushService pushService;
-
- @Autowired
- private PatientService patientService;
-
- @Autowired
- private LifeCenterConfigVO config;
-
- private LifeCenterPaging paging;
-
- @RequestMapping( "/list" )
- public ModelAndView list( @ModelAttribute("dto") final PushDTO dto,
- @RequestParam(value="page", required=false, defaultValue="1") int page,
- @RequestParam(value="y", required=false, defaultValue="") String y,
- @RequestParam(value="m", required=false, defaultValue="") String m,
- HttpServletRequest request,HttpServletResponse response ) {
-
- String nowYear = LifeCenterFunction.getNow( "yyyy" );
- String nowMonth = LifeCenterFunction.getNow( "MM" );
-
- if( y.equals( "" ) ) {
- y = nowYear;
- }
-
- if( m.equals( "" ) ) {
- m = nowMonth;
- }
-
- System.err.println( "sendType : " + dto.getSendType() );
- dto.setLimit( ( Integer.valueOf( page ) - 1 ) * config.pageDataSize );
- dto.setLimitMax( config.pageDataSize );
- dto.setYm( y + "" + m );
-
- int total = pushService.selectPushResultTableCount(dto);
-
- if( total > 0 ) {
- total = pushService.selectPushListTotal(dto);
- }
-
- List<PushDTO> pushList = new ArrayList<PushDTO>();
-
- if( total > 0 ) {
- pushList = pushService.selectPushListData(dto);
- }
-
-
- ModelAndView mv = setMV("push/list");
-
- String param = "y=" + y + "&m=" + m + "&sendType=" + dto.getSendType() + "&targetType=" + dto.getTargetType() + "&startDate=" + dto.getStartDate() + "&endDate=" + dto.getEndDate() + "&q=" + dto.getQ() + "&searchType=" + dto.getSearchType();
- paging = LifeCenterPaging.getInstance();
- paging.paging(config, total, page, param);
-
- mv.addObject( "paging", paging );
-
- mv.addObject( "total", total );
- mv.addObject( "pushList", pushList );
- mv.addObject( "q", dto.getQ() );
- mv.addObject( "searchType", dto.getSearchType() );
- mv.addObject( "targetType", dto.getTargetType() );
- mv.addObject( "sendType", dto.getSendType() );
- mv.addObject( "startDate", dto.getStartDate() );
- mv.addObject( "endDate", dto.getEndDate() );
-
- mv.addObject( "nowYear", nowYear );
- mv.addObject( "nowMonth", nowMonth );
- mv.addObject( "y", y );
- mv.addObject( "m", m );
- mv.addObject( "ym", y+""+m );
-
- return mv;
- }
-
- @RequestMapping( "/send" )
- public ModelAndView send( HttpServletRequest request,HttpServletResponse response ) {
- String sesCenterCode = LifeCenterSessionController.getSession( request, "sesCenterCode" );
- String sesGroupIdx = LifeCenterSessionController.getSession( request, "sesGroupIdx" );
-
- PatientDTO dto = new PatientDTO();
-
- dto.setCenterCode( Integer.parseInt( sesCenterCode ) );
- dto.setGroupIdx( Integer.valueOf( sesGroupIdx ) );
- dto.setState( "H" );
-
- int total = patientService.selectPatientCount(dto);
- List<PatientDTO> result = new ArrayList<PatientDTO>();
- if (total > 0) {
- dto.setLimit( 0 );
- dto.setLimitMax( total );
- result = patientService.selectPatientList(dto);
- }
-
- ModelAndView mv = setMV("push/send");
-
- mv.addObject( "total", total );
- mv.addObject( "patientList", result );
-
- return mv;
- }
-
- @RequestMapping( value="/getPushResultList", method = RequestMethod.POST )
- @ResponseBody
- public String getPushResultList(
- @RequestParam(value="resultType", required=true ) String resultType,
- @RequestParam(value="logIdx", required=true ) int logIdx,
- @RequestParam(value="pushIdx", required=true ) int pushIdx,
- @RequestParam(value="ym", required=true ) String ym ) {
-
- PushDTO dto = new PushDTO();
-
- dto.setPushIdx( pushIdx );
- dto.setLogIdx( logIdx );
- dto.setYm( ym );
-
- int total = pushService.selectPushResultTableCount(dto);
-
- JSONObject object = new JSONObject();
-
- if( resultType.toLowerCase().equals( "success" ) ) {
- dto.setState( "C" );
- dto.setSuccessYn( "Y" );
- } else if( resultType.toLowerCase().equals( "fail" ) ) {
- dto.setState( "C" );
- dto.setSuccessYn( "N" );
- } else if( resultType.toLowerCase().equals( "wait" ) ) {
- dto.setState( "W" );
- dto.setSuccessYn( "" );
- }
-
- if( total != 0 ) {
- total = pushService.selectPushResultTotal(dto);
- }
-
- List<PushDTO> result = new ArrayList<PushDTO>();
-
- if( total > 0 ) {
- result = pushService.selectPushResultList(dto);
- }
-
- object.put( "total" , total );
- object.put( "result" , result );
-
- return object.toString();
- }
-
- @RequestMapping( value="/send/insert", method=RequestMethod.POST )
- @Transactional(propagation=Propagation.REQUIRED)
- public String insertPushData(
- @ModelAttribute("dto") final PushDTO dto,
- @RequestParam(value="patientIdx", required=false, defaultValue="") String[] patientIdx,
- HttpServletRequest request,HttpServletResponse response ) {
- int sesCenterCode = Integer.valueOf( LifeCenterSessionController.getSession( request, "sesCenterCode" ) ) ;
- String sesId = LifeCenterSessionController.getSession( request, "sesId" );
- String remoteIp = LifeCenterFunction.getRemoteAddr( request );
-
- dto.setCenterCode( sesCenterCode );
- dto.setSender( sesId );
- dto.setSenderIp( remoteIp );
- dto.setSendState( "W" );
-
- pushService.insertPushData(dto);
-
- if( dto.getSelectType().equals( "PATIENT" ) && dto.getTargetType().equals( "P" ) ) {
- for( int i = 0; i < patientIdx.length; i ++ ) {
-
- dto.setPatientIdx( Integer.valueOf( patientIdx[i] ) );
-
- pushService.insertPushTargetTemp(dto);
- }
- }
-
- if( dto.getSendType().equals( "D" ) ) {
- return "redirect:/push/list";
- } else {
- return "redirect:/push/schedule/list";
- }
- }
-
-
- @RequestMapping( value="/schedule/update", method=RequestMethod.POST )
- @Transactional(propagation=Propagation.REQUIRED)
- public String updatePushData(
- @ModelAttribute("dto") final PushDTO dto,
- @RequestParam(value="patientIdx", required=false, defaultValue="") String[] patientIdx,
- HttpServletRequest request,HttpServletResponse response ) {
- String sesId = LifeCenterSessionController.getSession( request, "sesId" );
-
- dto.setUpdateBy( sesId );
-
- pushService.updatePushData(dto);
-
- if( dto.getSelectType().equals( "PATIENT" ) && dto.getTargetType().equals( "P" ) ) {
- pushService.deletePushTargeTemp(dto);
-
- for( int i = 0; i < patientIdx.length; i ++ ) {
-
- dto.setPatientIdx( Integer.valueOf( patientIdx[i] ) );
-
- pushService.insertPushTargetTemp(dto);
- }
- }
-
- if( dto.getSendType().equals( "D" ) ) {
- return "redirect:/push/list";
- } else {
- return "redirect:/push/schedule/list";
- }
- }
-
-
- @RequestMapping( value="/schedule/delete", method=RequestMethod.POST )
- @Transactional(propagation=Propagation.REQUIRED)
- public String deletePushData(
- @ModelAttribute("dto") final PushDTO dto,
- HttpServletRequest request,HttpServletResponse response ) {
-
- pushService.deletePushTargeTemp(dto);
- pushService.deletePushData(dto);
-
- return "redirect:/push/schedule/list";
- }
-
-
- @RequestMapping( "schedule/info" )
- public ModelAndView info( @RequestParam( value="pushIdx", required=true ) int pushIdx,
- HttpServletRequest request,HttpServletResponse response ) {
-
- PushDTO dto = new PushDTO();
- dto.setPushIdx( pushIdx );
-
- int total = pushService.selectPushScheduleOneCount(dto);
- int patientTotal = 0;
- List<PushDTO> patientList = new ArrayList<PushDTO>();
-
- if( total > 0 ) {
- dto = pushService.selectPushScheduleOneData(dto);
-
- if( dto.getTargetType().equals( "P" ) ) {
- patientTotal = pushService.selectPushTargetTempCount(dto);
-
- if( patientTotal > 0 ) {
- patientList = pushService.selectPushTargetTempList(dto);
- }
- }
- }
-
- ModelAndView mv = setMV("push/info");
-
- mv.addObject( "total", total );
- mv.addObject( "result", dto );
- mv.addObject( "patientTotal", patientTotal );
- mv.addObject( "patientList", patientList );
-
- return mv;
- }
-
- @RequestMapping( value="/schedule/edit", method=RequestMethod.POST )
- public ModelAndView edit( @RequestParam( value="pushIdx", required=true ) int pushIdx,
- HttpServletRequest request,HttpServletResponse respons ) {
-
- String sesCenterCode = LifeCenterSessionController.getSession( request, "sesCenterCode" );
- String sesGroupIdx = LifeCenterSessionController.getSession( request, "sesGroupIdx" );
-
- PatientDTO pdto = new PatientDTO();
-
- pdto.setCenterCode( Integer.parseInt( sesCenterCode ) );
- pdto.setGroupIdx( Integer.valueOf( sesGroupIdx ) );
- pdto.setState( "H" );
-
- int patientAllTotal = patientService.selectPatientCount(pdto);
- List<PatientDTO> patientAllList = new ArrayList<PatientDTO>();
- if (patientAllTotal > 0) {
- pdto.setLimit( 0 );
- pdto.setLimitMax( patientAllTotal );
- patientAllList = patientService.selectPatientList(pdto);
- }
-
- PushDTO dto = new PushDTO();
-
- dto.setPushIdx( pushIdx );
-
- int total = pushService.selectPushScheduleOneCount(dto);
- int patientTotal = 0;
- List<PushDTO> patientList = new ArrayList<PushDTO>();
- ArrayList<String> checkList = new ArrayList<String>();
-
- if( total > 0 ) {
- dto = pushService.selectPushScheduleOneData(dto);
-
- if( dto.getTargetType().equals( "P" ) ) {
- patientTotal = pushService.selectPushTargetTempCount(dto);
-
- if( patientTotal > 0 ) {
- patientList = pushService.selectPushTargetTempList(dto);
-
- for( PushDTO p : patientList ) {
- checkList.add( String.valueOf( p.getPatientIdx() ) );
- }
- }
- }
- }
-
- ModelAndView mv = setMV("push/edit");
-
- mv.addObject( "total", total );
- mv.addObject( "result", dto );
-
- mv.addObject( "patientTotal", patientTotal );
- mv.addObject( "patientList", patientList );
-
- mv.addObject( "checkList", checkList );
- mv.addObject( "patientAllTotal", patientAllTotal );
- mv.addObject( "patientAllList", patientAllList );
-
- return mv;
- }
-
- @RequestMapping( "/schedule/list" )
- public ModelAndView schedule( HttpServletRequest request,HttpServletResponse response ) {
- int sesCenterCode = Integer.valueOf( LifeCenterSessionController.getSession( request, "sesCenterCode" ) ) ;
- //String sesId = LifeCenterSessionController.getSession( request, "sesId" );
-
- PushDTO dto = new PushDTO();
- dto.setCenterCode( sesCenterCode );
-
- int total = pushService.selectPushScheduleCount(dto);
- List<PushDTO> scheduleList = new ArrayList<PushDTO>();
-
- if( total > 0 ) {
- scheduleList = pushService.selectPushScheduleList(dto);
- }
-
- ModelAndView mv = setMV("push/schedule");
-
- mv.addObject( "total", total );
- mv.addObject( "scheduleList", scheduleList );
-
- return mv;
- }
- }
|