503 lines
22 KiB
Plaintext
503 lines
22 KiB
Plaintext
package com.nationalelectric.greenH5;
|
||
|
||
import org.springframework.web.bind.annotation.RequestMethod;
|
||
import org.springframework.web.bind.annotation.ResponseBody;
|
||
|
||
import com.nationalelectirc.Constant.ApplyRoleConstant;
|
||
import com.nationalelectirc.Constant.Constant;
|
||
import com.nationalelectirc.utils.RestResult;
|
||
import com.nationalelectric.greenH5.DTO.GreenMealTicketApplyDTO;
|
||
|
||
import com.nationalelectric.greenH5.bizc.IGreenMealTicketNumBizc;
|
||
import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc;
|
||
import com.sgcc.uap.persistence.IHibernateDao;
|
||
import com.sgcc.uap.service.validator.ServiceValidatorBaseException;
|
||
import com.sgcc.uap.service.validator.ServiceValidatorUtil;
|
||
|
||
import java.text.ParseException;
|
||
import java.text.SimpleDateFormat;
|
||
|
||
|
||
import org.springframework.web.bind.annotation.RequestMapping;
|
||
|
||
import java.util.*;
|
||
import java.util.concurrent.locks.ReentrantLock;
|
||
|
||
import javax.annotation.Resource;
|
||
|
||
import com.nationalelectric.greenH5.po.GreenApplyList;
|
||
import com.nationalelectric.greenH5.po.GreenDepartment;
|
||
import com.nationalelectric.greenH5.po.GreenMealTicket;
|
||
import com.nationalelectric.greenH5.po.GreenMealTicketApply;
|
||
import com.nationalelectric.greenH5.po.GreenMealTicketIssue;
|
||
import com.nationalelectric.greenH5.po.GreenUserInfo;
|
||
import com.nationalelectric.greenH5.po.GreenUserRoleRel;
|
||
import com.nationalelectric.greenH5.utils.DateUtil;
|
||
|
||
import org.codehaus.jackson.map.ObjectMapper;
|
||
import org.codehaus.jackson.type.TypeReference;
|
||
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
||
import org.springframework.stereotype.Controller;
|
||
import org.springframework.transaction.annotation.Transactional;
|
||
import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
||
import org.springframework.web.bind.annotation.RequestBody;
|
||
|
||
|
||
|
||
|
||
|
||
/**
|
||
* <b>概述</b>:<br>
|
||
* <p>
|
||
* <b>功能</b>:<br>
|
||
*
|
||
* @author bowei
|
||
*/
|
||
@Controller
|
||
@RequestMapping("/greenMealTicketApply")
|
||
public class GreenMealTicketApplyController extends GreenBaseController{
|
||
|
||
|
||
@Resource
|
||
private IHibernateDao hibernateDao;
|
||
@Resource
|
||
private IGreenMealTicketNumBizc greenMealTicketNumBizc;
|
||
@Resource
|
||
private IGreenOperateLogBizc greenOperateLogBizc;
|
||
|
||
|
||
private ReentrantLock lock = new ReentrantLock();
|
||
/**员工-部门申请*/
|
||
@SuppressWarnings("deprecation")
|
||
@RequestMapping(value = "/apply" , method = RequestMethod.POST)
|
||
@ResponseBody
|
||
@Transactional(rollbackFor=Exception.class)
|
||
public RestResult apply(@RequestBody Object requestBody){
|
||
String flag = "";
|
||
GreenMealTicketApplyDTO greenMealTicketApplyDTO = new ObjectMapper().convertValue(requestBody, new TypeReference<GreenMealTicketApplyDTO>() {});
|
||
try {
|
||
|
||
String userId = greenMealTicketApplyDTO.getUserId();
|
||
GreenUserInfo info = getUserInfo(userId);
|
||
if(info==null){
|
||
return new RestResult(Constant.FAILED, "非法用户");
|
||
}
|
||
flag = greenMealTicketApplyDTO.getFlag();
|
||
|
||
String ticketVariety = Constant.AUTO_ISSUE ;
|
||
ServiceValidatorUtil.validatorJavaBean(greenMealTicketApplyDTO);
|
||
/** 根据是 员工 还是 部门 来判断 */
|
||
/** 如果是员工 即领取 则查询ticket是否 够 */
|
||
/** 如果是部门申请则 置为 待审批 插入餐券申请表 还要插入我的申请表 ,审批过了才能插入 ticket num 表 */
|
||
if (flag == null && "".equals(flag)) {
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}
|
||
//实体转换
|
||
GreenMealTicketApply greenMealTicketApply = new GreenMealTicketApply();
|
||
greenMealTicketApply.setApplyReason(greenMealTicketApplyDTO.getApplyReason());
|
||
greenMealTicketApply.setEndDate(greenMealTicketApplyDTO.getEndDate());
|
||
greenMealTicketApply.setStartDate(greenMealTicketApplyDTO.getStartDate());
|
||
greenMealTicketApply.setMealTicketNum(greenMealTicketApplyDTO.getMealTicketNum());
|
||
greenMealTicketApply.setMealTicketVariety(greenMealTicketApplyDTO.getMealTicketVariety());
|
||
//greenMealTicketApply.setUserId(greenMealTicketApplyDTO.getId());
|
||
greenMealTicketApply.setUserId(greenMealTicketApplyDTO.getUserId());
|
||
GreenUserInfo userInfo = getUserInfo(String.valueOf(greenMealTicketApplyDTO.getUserId()));
|
||
String title = userInfo.getTitle();
|
||
Long departmentId = userInfo.getDepartmentId();
|
||
|
||
greenMealTicketApply.setApplicantName(userInfo.getRealName());
|
||
if (title == null && "".equals(title)) {
|
||
return new RestResult(Constant.FAILED, "不是本公司职员不能使用餐券功能!");
|
||
}
|
||
|
||
//判断申请-领取的时间是否在自然月
|
||
String startDate2 = greenMealTicketApplyDTO.getStartDate();
|
||
String[] split = startDate2.split("-");
|
||
String endDate2 = greenMealTicketApplyDTO.getEndDate();
|
||
String[] split3 = endDate2.split("-");
|
||
if (!(split[0] + split[1]).equals(split3[0] + split3[1])) {
|
||
return new RestResult(Constant.FAILED, "请不要跨月领取餐券!");
|
||
}
|
||
|
||
|
||
String format = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
|
||
String[] split2 = format.split("-");
|
||
if (Integer.valueOf((split[0] + split[1] + split[2])) < Integer.valueOf((split2[0] + split2[1] + split2[2])) || Integer.valueOf((split3[0] + split3[1] + split3[2])) < Integer.valueOf((split2[0] + split2[1] + split2[2]))) {
|
||
return new RestResult(Constant.FAILED, "时间范围请填写将来时间!");
|
||
}
|
||
|
||
//判断 小于20号 则只能领取本月餐券
|
||
|
||
List<GreenMealTicketIssue> list = hibernateDao.queryForListWithSql("SELECT ISSUE_DAY FROM GREEN_MEAL_TICKET_ISSUE WHERE is_deleted = 'N' order by id desc limit 1",new BeanPropertyRowMapper(GreenMealTicketIssue.class));
|
||
if (list.size() == 0) {
|
||
return new RestResult(Constant.FAILED, "每月下发日期未设置,不能判断领取(申请)餐券日期范围!");
|
||
}
|
||
Integer issueDay = Integer.valueOf(list.get(0).getIssueDay());
|
||
if (Integer.valueOf(split2[2]) < issueDay && Integer.valueOf(split[1]) > Integer.valueOf(split2[1]) ) {
|
||
return new RestResult(Constant.FAILED, "当前时间未到" + issueDay + "号,只能领取本月餐券!");
|
||
}
|
||
|
||
//判断 下一个月时间
|
||
Calendar cal = Calendar.getInstance();
|
||
cal.add(cal.MONTH, 1);
|
||
SimpleDateFormat dft = new SimpleDateFormat("yyyyMM");
|
||
String preMonth = dft.format(cal.getTime());
|
||
|
||
if (Integer.valueOf(split2[2]) >= issueDay && Integer.valueOf(split[0] + split[1]) > Integer.valueOf(preMonth) ) {
|
||
return new RestResult(Constant.FAILED, "当前时间超过" + issueDay + "号,只能领取本月及下月餐券!");
|
||
}
|
||
|
||
|
||
// GreenDepartment department = getDepartment(departmentId);
|
||
// //拿到员工的所属部门的父级部门
|
||
// Long parentId = department.getParentId();
|
||
// //若父级为总部或银座 则为当前部门id
|
||
// if (parentId == 1 || parentId == 2 || parentId == 0) {
|
||
// parentId = department.getId();
|
||
// }
|
||
|
||
//申请 员工不能申请
|
||
if ("申请".equals(flag)) {
|
||
|
||
// //根据角色名称查询'餐券申请审批'的用户
|
||
// String ticketAppSql = "SELECT user_name userName FROM GREEN_USER_ROLE_REL WHERE role_name='餐券申请审批'";
|
||
//
|
||
// List<GreenUserRoleRel> ticketAppList = hibernateDao.queryForListWithSql(ticketAppSql, new Object[] {},
|
||
// new BeanPropertyRowMapper(GreenUserRoleRel.class));
|
||
|
||
|
||
|
||
List queryForListWithSql = hibernateDao.queryForListWithSql(
|
||
"Select * from GREEN_MEAL_TICKET_NUM where department_id = ? and is_deleted = 'N' and date_format(t.effective_date, '%Y-%m') =DATE_FORMAT(?, '%Y-%m') limit 1",
|
||
new Object[] { departmentId });
|
||
if (queryForListWithSql.isEmpty()) {
|
||
return new RestResult(Constant.FAILED, "当前部门未设置餐券下发,请联系下发餐券管理员对您的部门下发餐券!");
|
||
|
||
}
|
||
//title-1 部门 2员工
|
||
|
||
// //判断时间段是否在同一天 申请数叠在一起?
|
||
// SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
|
||
// long startDate = Long.valueOf(greenMealTicketApplyDTO.getStartDate().replaceAll("[-\\s:]",""));
|
||
// long endDate = Long.valueOf(greenMealTicketApplyDTO.getEndDate().replaceAll("[-\\s:]",""));
|
||
// Long c = sf.parse(String.valueOf(endDate)).getTime()-sf.parse(String.valueOf(startDate)).getTime();
|
||
// long d = c/1000/60/60/24;
|
||
//
|
||
// if ( d > 0 ) {
|
||
// greenMealTicketApply.setMealTicketNum(String.valueOf(Long.valueOf(greenMealTicketApplyDTO.getMealTicketNum()) * d));
|
||
// }
|
||
|
||
greenMealTicketApply.setApplyStatus("1");
|
||
greenMealTicketApply.setApplicantDepartmentId(departmentId);
|
||
greenMealTicketApply.setApplyDate(DateUtil.now());
|
||
// greenMealTicketApply.setApprovalStatus(Constant.APPROVAL_DOING);
|
||
hibernateDao.saveObject(greenMealTicketApply);
|
||
/**插入我的申请表*/
|
||
GreenApplyList applyList = new GreenApplyList();
|
||
applyList.setDetailId(greenMealTicketApply.getId());
|
||
applyList.setUserId(greenMealTicketApply.getUserId());
|
||
applyList.setApplyType("01");
|
||
applyList.setApplyTypeName("餐券申请");
|
||
applyList.setApplyInfo1(greenMealTicketApply.getStartDate() +"-"+greenMealTicketApply.getEndDate());
|
||
applyList.setApplyInfo2(greenMealTicketApply.getApplyReason());
|
||
applyList.setApplyTime(DateUtil.now());
|
||
applyList.setFirstApproval(ApplyRoleConstant.MEAL_TICKET_APPROVE);
|
||
// applyList.setFirstStatus(Constant.APPROVAL_DOING);
|
||
//一级审时间
|
||
applyList.setFirstApproveTime(new SimpleDateFormat(DateUtil.Y_M_DH_MI_S).format(new Date()));
|
||
//创建者
|
||
applyList.setCreator("admin");
|
||
//修改者
|
||
applyList.setModifier("admin");
|
||
//创建时间
|
||
applyList.setGmtCreated(new Date());
|
||
//修改时间
|
||
applyList.setGmtModified(new Date());
|
||
//删除标识
|
||
applyList.setIsDeleted("N");
|
||
hibernateDao.saveObject(applyList);
|
||
//addLog(Constant.MEAL_TICKET_A, Constant.T_APPLY, Constant.OPERATE_SUCCESS, "申请餐券", Constant.LOG_OPERATE, greenMealTicketApplyDTO.getUserId());
|
||
/*
|
||
//推送消息给餐券申请审批的用户
|
||
String msgname ="审批通知";
|
||
String tm = "您有一个【餐券申请】审批";
|
||
|
||
|
||
for (int i = 0; i < ticketAppList.size(); i++) {
|
||
|
||
String userName = ticketAppList.get(i).getUserName();
|
||
//System.out.println(userName);
|
||
PushMessageUtil.pushMessage(msgname,tm, userName);
|
||
}
|
||
*/
|
||
|
||
}
|
||
|
||
|
||
/** 员工领取 */
|
||
if ("领取".equals(flag)) {
|
||
lock.lock();
|
||
// List<Map<String, Object>> list1 = hibernateDao.queryForListWithSql(
|
||
// "Select * from GREEN_MEAL_TICKET_NUM where department_id = ? and issue_date >= ? and issue_date <= ?",
|
||
// new Object[] { departmentId,
|
||
// greenMealTicketApply.getStartDate(), greenMealTicketApply.getEndDate() });
|
||
// if (list1.isEmpty()) {
|
||
// return new RestResult(Constant.FAILED, "领取日期未发放餐券,请重新输入", null);
|
||
// }
|
||
//下发的餐券是一个月的
|
||
Integer ticketNum =Integer.valueOf(greenMealTicketApply.getMealTicketNum()) ;
|
||
|
||
List<Map<String, Object>> list1 = hibernateDao.queryForListWithSql(
|
||
"Select * from GREEN_MEAL_TICKET_NUM where department_id = ? and is_deleted = 'N' order by issue_date desc limit 1 ",
|
||
new Object[] { departmentId });
|
||
if (list1.isEmpty()) {
|
||
return new RestResult(Constant.FAILED, "相关部门未发放餐券!", null);
|
||
}
|
||
|
||
|
||
List<String> betweenDays = getBetweenDays(greenMealTicketApplyDTO.getStartDate(),greenMealTicketApplyDTO.getEndDate());
|
||
StringBuffer stringBuffer = new StringBuffer();
|
||
|
||
for (String string : betweenDays) {
|
||
stringBuffer.append("'"+string + "',");
|
||
}
|
||
String substring = stringBuffer.substring(0, stringBuffer.length() - 1);
|
||
|
||
|
||
//加锁 防止扣负
|
||
|
||
String sql = " SELECT ANY_value (n.id) AS id,n.department_id,d. NAME AS departmentName, DATE_FORMAT(n.issue_date, '%Y-%m') AS time, if(t.currentNum=NULL,0,t.currentNum) currentNum,"
|
||
+ " sum(n.issue_num) AS 'mealNum' FROM GREEN_MEAL_TICKET_NUM n "
|
||
+ " LEFT JOIN GREEN_DEPARTMENT d ON n.department_id = d.id LEFT JOIN ( SELECT b.applicant_department_id AS id, "
|
||
+ " count(IF(a.use_status <> '2', TRUE, NULL)) currentNum FROM GREEN_MEAL_TICKET a "
|
||
+ " LEFT JOIN GREEN_MEAL_TICKET_APPLY b ON a.ticket_apply_id = b.id WHERE "
|
||
+ " a.is_deleted = 'N' AND DATE_FORMAT(a.use_date, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') GROUP BY "
|
||
+ " b.applicant_department_id, DATE_FORMAT(a.use_date, '%Y-%m') DESC ) t on t.id = n.department_id "
|
||
+ " where n.is_deleted = 'N' AND DATE_FORMAT(n.issue_date, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m')"
|
||
+ " and d.id= ? GROUP BY n.department_id,d. NAME,DATE_FORMAT(n.issue_date, '%Y-%m') ";
|
||
List<Map<String, Object>> list3 = hibernateDao.queryForListWithSql(sql, new Object[] { departmentId});
|
||
if(list3.size()<=0){
|
||
return new RestResult(Constant.FAILED, "该部门无餐券可领取!");
|
||
}
|
||
Integer c = 0;
|
||
Integer mealNum = 0;
|
||
if(list3.get(0).get("mealNum")!=null && !"".equals(list3.get(0).get("mealNum"))){
|
||
mealNum = Integer.valueOf(list3.get(0).get("mealNum")+"");
|
||
if(list3.get(0).get("currentNum")!=null && !"".equals(list3.get(0).get("currentNum"))){
|
||
c = Integer.parseInt(list3.get(0).get("currentNum").toString());
|
||
}
|
||
}
|
||
int daynum = DateUtil.getDayPass(greenMealTicketApply.getEndDate(), greenMealTicketApply.getStartDate(), new SimpleDateFormat("yyyy-MM-dd"));
|
||
if((mealNum-c) == 0){
|
||
return new RestResult(Constant.FAILED, "餐券已用完", null);
|
||
}
|
||
if((mealNum-c)<ticketNum*(daynum+1)){
|
||
return new RestResult(Constant.FAILED, "餐券余量不足", null);
|
||
}
|
||
// String sqlString = "Select * from GREEN_MEAL_TICKET_NUM where department_id = ? and is_deleted = 'N' AND DATE_FORMAT(NOW(),'%Y-%m-%d') <= ? and (issue_unused_num + extra_unused_num) >=? and issue_date in (" + substring + ") ";
|
||
// List<Map<String, Object>> list2 = hibernateDao.queryForListWithSql(
|
||
// sqlString,
|
||
// new Object[] { departmentId,greenMealTicketApply.getStartDate(), ticketNum});
|
||
//
|
||
// if (list2.isEmpty() || betweenDays.size() > list2.size()) {
|
||
// return new RestResult(Constant.FAILED, "餐券已用完", null);
|
||
// }
|
||
|
||
// greenMealTicketApply.setUserId(669L);
|
||
// greenMealTicketApply.setApplicantDepartmentId(332L);
|
||
//title-1 部门 2员工
|
||
greenMealTicketApply.setApplyStatus("2");
|
||
greenMealTicketApply.setApplicantDepartmentId(departmentId);
|
||
greenMealTicketApply.setApplyDate(DateUtil.now());
|
||
// greenMealTicketApply.setApprovalStatus(Constant.APPROVAL_YES);
|
||
|
||
hibernateDao.saveObject(greenMealTicketApply);
|
||
|
||
/** 减去 领取的餐券 */
|
||
// if (!list2.isEmpty()) {
|
||
// int num = 0;
|
||
//
|
||
// for (Map<String, Object> map : list2) {
|
||
//
|
||
// int issue_unused_num = Integer.parseInt(map.get("issue_unused_num").toString());
|
||
// int extra_unused_num = Integer.parseInt(map.get("extra_unused_num").toString());
|
||
//
|
||
// if (ticketNum <= issue_unused_num) {
|
||
// num = issue_unused_num - ticketNum;
|
||
// hibernateDao.updateWithSql("update GREEN_MEAL_TICKET_NUM set issue_unused_num = ? where id = ? and is_deleted = 'N'",
|
||
// new Object[] { num,map.get("id") });
|
||
// ticketVariety = Constant.AUTO_ISSUE;
|
||
// }else {
|
||
// //Integer ticketNum2 =Integer.valueOf(greenMealTicketApply.getMealTicketNum()) ;
|
||
// if (ticketNum > issue_unused_num) {
|
||
// num =extra_unused_num - (ticketNum - issue_unused_num);
|
||
// hibernateDao.updateWithSql("update GREEN_MEAL_TICKET_NUM set issue_unused_num = 0,extra_unused_num = ? where id = ? and is_deleted = 'N'",
|
||
// new Object[] { num,map.get("id") });
|
||
// ticketVariety = Constant.EXTRA_APPLY;
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
|
||
|
||
|
||
/**扣券成功,将员工领取的餐券插入餐券表*/
|
||
// String ticketNo ="";
|
||
Integer mealTicketNum = Integer.parseInt(greenMealTicketApply.getMealTicketNum());
|
||
// List<Map<String, Object>> queryForListWithSql = hibernateDao.queryForListWithSql("SELECT * FROM GREEN_SEQ WHERE table_name = 'GREEN_MEAL_TICKET'");
|
||
// if (queryForListWithSql.isEmpty()) {
|
||
// throw new Exception("返回异常");
|
||
// }
|
||
// int seqId = Integer.parseInt(String.valueOf(queryForListWithSql.get(0).get("max_id")));
|
||
Long id = greenMealTicketApply.getId();
|
||
String insertsql = "INSERT INTO GREEN_MEAL_TICKET(ticket_apply_id,use_id,ticket_no,use_date,use_status,ticket_variety,creator,modifier,gmt_created,gmt_modified,is_deleted) VALUES ";
|
||
StringBuilder builder = new StringBuilder();
|
||
builder.append(insertsql);
|
||
//LinkedList<GreenMealTicket> list = new LinkedList<GreenMealTicket>();
|
||
//List<String> betweenDays = getBetweenDays(greenMealTicketApply.getStartDate(),greenMealTicketApply.getEndDate());
|
||
for (String day : betweenDays) {
|
||
|
||
String ticketUseId = "CQ" + greenMealTicketApply.getUserId() + day.replace("-", "");
|
||
|
||
for (int i = 0; i < mealTicketNum.intValue(); i++) {
|
||
// ticketNo = GUID.getTicketNo() + String.valueOf(i);
|
||
// ticket.setTicketNo(ticketNo);
|
||
|
||
// GreenMealTicket ticket = new GreenMealTicket();
|
||
// ticket.setTicketApplyId(greenMealTicketApply.getId());
|
||
// ticket.setTicketVariety(String.valueOf(ticketVariety));
|
||
// ticket.setUseStatus(Constant.TICKET_UNUSE);
|
||
// ticket.setUseId(ticketUseId);
|
||
// ticket.setTicketNo(ticketUseId);
|
||
// ticket.setUseDate(day);
|
||
|
||
builder.append("("+id+ ",'"+ticketUseId+"','"+ticketUseId+"','"+day+"','"+Constant.TICKET_UNUSE+"','"+ticketVariety+"','"+departmentId+"','"+departmentId+"','"+DateUtil.now()+"','"+DateUtil.now()+"','"+"N"+"'" +"),");
|
||
// seqId ++;
|
||
//hibernateDao.saveObject(ticket);
|
||
//list.add(ticket);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
String substring2 = builder.substring(0, builder.length()-1);
|
||
//System.out.println(substring2.length());
|
||
|
||
|
||
hibernateDao.updateWithSql(substring2);
|
||
//hibernateDao.updateWithSql("update GREEN_SEQ set max_id = ? WHERE table_name = 'GREEN_MEAL_TICKET'",new Object[]{ seqId});
|
||
|
||
/**插入我的申请表*/
|
||
GreenApplyList applyList = new GreenApplyList();
|
||
applyList.setDetailId(greenMealTicketApply.getId());
|
||
applyList.setUserId(greenMealTicketApply.getUserId());
|
||
applyList.setApplyType("07");
|
||
applyList.setApplyTypeName("餐券领取");
|
||
applyList.setApplyInfo1(greenMealTicketApply.getStartDate() +"-"+greenMealTicketApply.getEndDate());
|
||
applyList.setApplyInfo2(greenMealTicketApply.getApplyReason());
|
||
applyList.setApplyTime(DateUtil.now());
|
||
applyList.setFirstApproval(greenMealTicketApply.getId().toString());
|
||
// applyList.setFirstStatus(Constant.RECEIVE_SUCCESS);
|
||
//一级审时间
|
||
applyList.setFirstApproveTime(new SimpleDateFormat(DateUtil.Y_M_DH_MI_S).format(new Date()));
|
||
//创建者
|
||
applyList.setCreator("admin");
|
||
//修改者
|
||
applyList.setModifier("admin");
|
||
//创建时间
|
||
applyList.setGmtCreated(new Date());
|
||
//修改时间
|
||
applyList.setGmtModified(new Date());
|
||
//删除标识
|
||
applyList.setIsDeleted("N");
|
||
hibernateDao.saveObject(applyList);
|
||
|
||
|
||
}
|
||
//greenOperateLogBizc.addLog(Constant.MEAL_TICKET_B, Constant.T_TAKE, Constant.OPERATE_SUCCESS, "领取餐券", Constant.LOG_OPERATE, greenMealTicketApplyDTO.getUserId());
|
||
return new RestResult(Constant.SUCCESS, "成功",flag+"成功");
|
||
}catch (ServiceValidatorBaseException e) {
|
||
e.printStackTrace();
|
||
/*if ("领取".equals(flag)) {
|
||
greenOperateLogBizc.addLog(Constant.MEAL_TICKET_B, Constant.T_TAKE, Constant.OPERATE_FAIL, "领取餐券", Constant.LOG_ERROR, greenMealTicketApplyDTO.getUserId());
|
||
}else {
|
||
greenOperateLogBizc.addLog(Constant.MEAL_TICKET_A, Constant.T_APPLY, Constant.OPERATE_FAIL, "申请餐券", Constant.LOG_ERROR, greenMealTicketApplyDTO.getUserId());
|
||
}*/
|
||
|
||
return new RestResult(Constant.FAILED,e.getMessage());
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
/* if ("领取".equals(flag)) {
|
||
greenOperateLogBizc.addLog(Constant.MEAL_TICKET_B, Constant.T_TAKE, Constant.OPERATE_FAIL, "领取餐券", Constant.LOG_ERROR, greenMealTicketApplyDTO.getUserId());
|
||
}else {
|
||
greenOperateLogBizc.addLog(Constant.MEAL_TICKET_A, Constant.T_APPLY, Constant.OPERATE_FAIL, "申请餐券", Constant.LOG_ERROR, greenMealTicketApplyDTO.getUserId());
|
||
}*/
|
||
//设置手动回滚
|
||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||
return new RestResult(Constant.FAILED, "返回异常");
|
||
}finally {
|
||
if (lock.isLocked()) {
|
||
lock.unlock();
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
|
||
/**
|
||
* 根据id查询餐券申请和餐券领取详情
|
||
* @param id
|
||
* @param applyType
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("unchecked")
|
||
public List<Object> getMealTicketApplyInfo(String id,String applyType) {
|
||
//返回结果定义
|
||
List<Object> resultList = new ArrayList<Object>();
|
||
//查询sql
|
||
String applyInfoByIdSql = " SELECT mta.*,"
|
||
+ " al.detail_id,"
|
||
+ " al.apply_type,"
|
||
+ " al.apply_type_name,"
|
||
+ " al.first_approval,"
|
||
+ " al.first_status,"
|
||
+ " al.first_approve_time,"
|
||
+ " CASE first_status"
|
||
+ " WHEN '0' THEN '待审批'"
|
||
+ " WHEN '1' THEN '已同意'"
|
||
+ " WHEN '2' THEN '已拒绝'"
|
||
+ " WHEN '3' THEN '已取消'"
|
||
+ " WHEN '12' THEN '领取成功'"
|
||
+ " END AS first_status_value"
|
||
+ " FROM GREEN_APPLY_LIST al"
|
||
+ " INNER JOIN GREEN_MEAL_TICKET_APPLY mta"
|
||
+ " ON al.detail_id = mta.id"
|
||
+ " WHERE 1=1 AND mta.id = ?"
|
||
+ " AND al.apply_type = ?";
|
||
//sql执行
|
||
resultList = hibernateDao.queryForListWithSql(applyInfoByIdSql,new Object[]{id,applyType});
|
||
//返回结果
|
||
return resultList;
|
||
}
|
||
|
||
|
||
public static List<String> getBetweenDays(String stime,String etime) throws ParseException{
|
||
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
|
||
Date sdate=df.parse(stime);
|
||
Date eDate=df.parse(etime);
|
||
|
||
//long betweendays=(long) ((eDate.getTime()-sdate.getTime())/(1000 * 60 * 60 *24)+0.5);//天数间隔
|
||
Calendar c = Calendar.getInstance();
|
||
List<String> list=new ArrayList<String>();
|
||
while (sdate.getTime()<=eDate.getTime()) {
|
||
list.add(df.format(sdate));
|
||
//System.out.println(df.format(sdate));
|
||
c.setTime(sdate);
|
||
c.add(Calendar.DATE, 1); // 日期加1天
|
||
sdate = c.getTime();
|
||
}
|
||
return list;
|
||
}
|
||
|
||
}
|