RosterController.groovy
上传用户:steveyhw
上传日期:2019-05-13
资源大小:307k
文件大小:8k
源码类别:

PlugIns编程

开发平台:

Java

  1. import java.text.SimpleDateFormat
  2. class RosterController {
  3.     def index = { redirect(action: list, params: params) }
  4.     // the delete, save and update actions only accept POST requests
  5.     def allowedMethods = [list: ['GET', 'POST'], delete: 'POST', save: 'POST', update: 'POST']
  6.     def list = {
  7.         //从页面传来的查询参数: 1._rosRequestman(申请人) 2._rosState_id(执勤状态) 3._rosLastchangefrom(开始时间) 4. _rosLastchangeto(结束时间) 5._rosDel(是否查询全部)
  8.         def df = new SimpleDateFormat('yyyy-MM-dd')
  9.         if (!params.max) params.max = '10'
  10.         if (!params.sort) params.sort = 'id'
  11.         if (!params.offset) params.offset = '0'
  12.         if (!params.order) params.order = 'asc'
  13.         if (!params._rosRequestman) params._rosRequestman = ''
  14.         //涉及到种类查询不能用like,所以先做好sql段然后拼接到后面sql中去
  15.         String rosStateSql =  params._rosState_id?" and str(r.rosState) = '${params._rosState_id}' ":""
  16.         //查询时间:  如果开始时间不填就默认成1970年,如果结束时间不填就默认为当前系统时间
  17.         java.util.Date _rosLastchangefrom = params._rosLastchangefrom?df.parse(params._rosLastchangefrom) :df.parse('1970-01-01')
  18.         java.util.Date _rosLastchangeto = params._rosLastchangeto?df.parse(params._rosLastchangeto):new Date()
  19.         //由于我做了逻辑删除,表中rosDel这个字段标示是否被删除,当要全部查询的时候可以吧删除的数据也查出来,这里结合了grails中的checkBox标签
  20.         def _rosDelState = (params._rosDel == 'on')?'':'0'
  21.         //results是查询结果
  22.         def results = Roster.findAll("""from Roster r where str(r.rosRequestman.staName) like :_rosRequestman ${rosStateSql} and r.rosLastchange between :_rosLastchangefrom and :_rosLastchangeto and r.rosDel like :_rosDelState order by ${params.sort} ${params.order} """,
  23.                 [_rosRequestman: '%' + params._rosRequestman + '%', _rosLastchangefrom: _rosLastchangefrom, _rosLastchangeto: _rosLastchangeto, _rosDelState: '%' + _rosDelState + '%'],
  24.                 [max: Integer.parseInt(params.max), offset: Integer.parseInt(params.offset)])
  25.         //count是用来分页的参数
  26.         params.count = Roster.findAll("""from Roster r where str(r.rosRequestman.staName) like :_rosRequestman ${rosStateSql} and r.rosLastchange between :_rosLastchangefrom and :_rosLastchangeto and r.rosDel like :_rosDelState order by ${params.sort} ${params.order} """,
  27.                 [_rosRequestman: '%' + params._rosRequestman + '%', _rosLastchangefrom: _rosLastchangefrom, _rosLastchangeto: _rosLastchangeto, _rosDelState: '%' + _rosDelState + '%']).size()
  28.         render(view: 'list', model: [rosterList: results])
  29.     }
  30.     def show = {
  31.         def roster = Roster.get(params.id)
  32.         if (!roster) {
  33.             flash.message = "roster.not.found"
  34.             flash.args = [params.id]
  35.             flash.defaultMessage = "Roster not found with id ${params.id}"
  36.             redirect(action: list, params: [_rosRequestman: params._rosRequestman, _rosState_id: params._rosState_id, _rosLastchangefrom: params._rosLastchangefrom, _rosLastchangeto: params._rosLastchangeto, _rosDel: params._rosDel, max: params.max, sort: params.sort, offset: params.offset, order: params.order])
  37.         }
  38.         else { return [roster: roster] }
  39.     }
  40.     def delete = {
  41.         def roster = Roster.get(params.id)
  42.         if (roster) {
  43.             //设定删除状态  创建/更新时间 或人
  44.             roster.rosDel = '1'
  45.             roster.rosLastchange = new Date()
  46.             roster.rosLastchanger = 'session'
  47.             roster.save()
  48.             flash.message = "roster.deleted"
  49.             flash.args = [params.id]
  50.             flash.defaultMessage = "Roster ${params.id} deleted"
  51.             redirect(action: list, params: [_rosRequestman: params._rosRequestman, _rosState_id: params._rosState_id, _rosLastchangefrom: params._rosLastchangefrom, _rosLastchangeto: params._rosLastchangeto, _rosDel: params._rosDel, max: params.max, sort: params.sort, offset: params.offset, order: params.order])
  52.         }
  53.         else {
  54.             flash.message = "roster.not.found"
  55.             flash.args = [params.id]
  56.             flash.defaultMessage = "Roster not found with id ${params.id}"
  57.             redirect(action: list, params: [_rosRequestman: params._rosRequestman, _rosState_id: params._rosState_id, _rosLastchangefrom: params._rosLastchangefrom, _rosLastchangeto: params._rosLastchangeto, _rosDel: params._rosDel, max: params.max, sort: params.sort, offset: params.offset, order: params.order])
  58.         }
  59.     }
  60.     def edit = {
  61.         def roster = Roster.get(params.id)
  62.         if (!roster) {
  63.             flash.message = "roster.not.found"
  64.             flash.args = [params.id]
  65.             flash.defaultMessage = "Roster not found with id ${params.id}"
  66.             redirect(action: list, params: [_rosRequestman: params._rosRequestman, _rosState_id: params._rosState_id, _rosLastchangefrom: params._rosLastchangefrom, _rosLastchangeto: params._rosLastchangeto, _rosDel: params._rosDel, max: params.max, sort: params.sort, offset: params.offset, order: params.order])
  67.         }
  68.         else {
  69.             return [roster: roster]
  70.         }
  71.     }
  72.     def update = {
  73.         def roster = Roster.get(params.id)
  74.         if (roster) {
  75.             roster.properties = params
  76.             roster.rosRequestman = Staff.findById(params.rosRequestman.id)
  77.             //设定删除状态 创建人创建时间 更新人更新时间
  78.             roster.rosDel = '0'
  79.             roster.rosLastchanger = 'session'
  80.             roster.rosLastchange = new Date()
  81.             println 'rosRequestman:' + roster.rosRequestman
  82.             if (!roster.hasErrors() && roster.save()) {
  83.                 flash.message = "roster.updated"
  84.                 flash.args = [params.id]
  85.                 flash.defaultMessage = "Roster ${params.id} updated"
  86.                 redirect(action: show, id: roster.id, params: [_rosRequestman: params._rosRequestman, _rosState_id: params._rosState_id, _rosLastchangefrom: params._rosLastchangefrom, _rosLastchangeto: params._rosLastchangeto, _rosDel: params._rosDel, max: params.max, sort: params.sort, offset: params.offset, order: params.order])
  87.             }
  88.             else {
  89.                 render(view: 'edit', model: [roster: roster])
  90.             }
  91.         }
  92.         else {
  93.             flash.message = "roster.not.found"
  94.             flash.args = [params.id]
  95.             flash.defaultMessage = "Roster not found with id ${params.id}"
  96.             redirect(action: edit, id: params.id, params: [_rosRequestman: params._rosRequestman, _rosState_id: params._rosState_id, _rosLastchangefrom: params._rosLastchangefrom, _rosLastchangeto: params._rosLastchangeto, _rosDel: params._rosDel, max: params.max, sort: params.sort, offset: params.offset, order: params.order])
  97.         }
  98.     }
  99.     def create = {
  100.         def roster = new Roster()
  101.         roster.properties = params
  102.         return ['roster': roster]
  103.     }
  104.     def save = {
  105.         def roster = new Roster(params)
  106.         roster.rosRequestman = Staff.findById(params.rosRequestman.id)
  107.         roster.rosState = '0'
  108.         //设定删除状态 创建人创建时间 更新人更新时间
  109.         roster.rosDel = '0'
  110.         roster.rosCreater = 'session'
  111.         roster.rosCreatetime = new Date()
  112.         roster.rosLastchanger = 'session'
  113.         roster.rosLastchange = new Date()
  114.         if (!roster.hasErrors() && roster.save()) {
  115.             flash.message = "roster.created"
  116.             flash.args = ["${roster.id}"]
  117.             flash.defaultMessage = "Roster ${roster.id} created"
  118.             redirect(action: show, id: roster.id, params: [_rosRequestman: params._rosRequestman, _rosState_id: params._rosState_id, _rosLastchangefrom: params._rosLastchangefrom, _rosLastchangeto: params._rosLastchangeto, _rosDel: params._rosDel, max: params.max, sort: params.sort, offset: params.offset, order: params.order])
  119.         }
  120.         else {
  121.             render(view: 'create', model: [roster: roster])
  122.         }
  123.     }
  124. }