package com.nationalelectric.greenH5;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.locks.ReentrantLock;
import javax.annotation.Resource;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.jysoft.unipush.AliasManage;
import com.jysoft.weChat.service.WechatService;
import com.jysoft.weChat.vo.ContentVo;
import com.nationalelectirc.Constant.Constant;
import com.nationalelectirc.utils.RestResult;
import com.nationalelectric.greenH5.DTO.GreenFoodOrderDetailDTO;
import com.nationalelectric.greenH5.DTO.GreenFoodOrderListDTO;
import com.nationalelectric.greenH5.bizc.BaseServiceImpl;
import com.nationalelectric.greenH5.bizc.IGreenDrugsApplyBizc;
import com.nationalelectric.greenH5.bizc.IGreenDrugsDetailBizc;
import com.nationalelectric.greenH5.bizc.IGreenFoodOrderDetailBizc;
import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc;
import com.nationalelectric.greenH5.enums.OrderStatus;
import com.nationalelectric.greenH5.enums.PayStatus;
import com.nationalelectric.greenH5.enums.TakeStatus;
import com.nationalelectric.greenH5.po.GreenDiningRoom;
import com.nationalelectric.greenH5.po.GreenDrugsApply;
import com.nationalelectric.greenH5.po.GreenDrugsDetail;
import com.nationalelectric.greenH5.po.GreenFoodOrderDetail;
import com.nationalelectric.greenH5.po.GreenFoodOrderList;
import com.nationalelectric.greenH5.po.GreenUsecarApply;
import com.nationalelectric.greenH5.po.GreenUserInfo;
import com.nationalelectric.greenH5.po.GreenWashCarInfo;
import com.nationalelectric.greenH5.utils.DateTime;
import com.nationalelectric.greenH5.utils.DateUtil;
import com.sgcc.uap.persistence.IHibernateDao;
import com.sgcc.uap.service.validator.ServiceValidatorBaseException;
import net.sf.json.JSONObject;
import net.sf.json.JSONArray;
/**
* 概述:
*
* 功能:
*
* @author chenweikang
*/
@Controller
@RequestMapping("/greenUsecarApply")
public class GreenUseCarApplyController extends GreenBaseController {
@Resource
private IHibernateDao hibernateDao;
@Autowired
private BaseServiceImpl baseService;
@Resource
private WechatService wService;
/**
* greenfoodorderdetail GreenFoodOrderDetail逻辑构件
*/
@Resource
private IGreenDrugsApplyBizc greenDrugsApplyBizc;
@Resource
private IGreenDrugsDetailBizc greenDrugsDetailBizc;
@Resource
private IGreenOperateLogBizc greenOperateLogBizc;
@Resource
private AliasManageController aliasManageController;
private ReentrantLock lock = new ReentrantLock();
/**提交订单*/
@SuppressWarnings("deprecation")
@RequestMapping(value="/submitUseCarApply", method = RequestMethod.POST)
@Transactional(rollbackFor=Exception.class)
@ResponseBody
public RestResult submitUseCarApply(@RequestBody GreenUsecarApply greenUsecarApply){
try {
String userId = greenUsecarApply.getUserid();
GreenUserInfo info = getUserInfo(userId);
if(info==null){
return new RestResult(Constant.FAILED, "非法用户");
}
greenUsecarApply.setCreatetime(new Date());
greenUsecarApply.setCreateby(userId);
hibernateDao.saveObject(greenUsecarApply);
String title="用车申请";
String text = "您好,您已成功发起用车申请,请等待部门领导审核。";
String url = "/pages/cars-management/cars-management?currentTabIndex=1";
aliasManageController.pushToSingle(userId, title, text, url);
String role = "12011";
Long deptId = info.getDepartmentId();
//查询所有有这个权限的人员
String getUserSql = "SELECT u.id,u.ISC_ID FROM green_user_info u "
+ " LEFT JOIN green_user_role_rel r ON u.id = r.user_id "
+ " LEFT JOIN green_role_permission p ON p.role_id = r.role_id "
+ " WHERE p.permission_id = ? and u.department_id = ?";
List