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.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("/greenDrugsApply")
public class GreenDrugsApplyController extends GreenBaseController {
@Resource
private AliasManageController aliasManageController;
@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;
private ReentrantLock lock = new ReentrantLock();
/**提交订单*/
@SuppressWarnings("deprecation")
@RequestMapping(value="/submitDrugsApply", method = RequestMethod.POST)
@Transactional(rollbackFor=Exception.class)
@ResponseBody
public RestResult submitDrugsApply(@RequestBody GreenDrugsApply greenDrugsApply){
try {
lock.lock();
String userId = greenDrugsApply.getUserId();
GreenUserInfo info = getUserInfo(userId);
if(info==null){
return new RestResult(Constant.FAILED, "非法用户");
}
greenDrugsApply.setCreateTime(new Date());
greenDrugsApply.setCreateBy(userId);
hibernateDao.saveObject(greenDrugsApply);
for(GreenDrugsDetail gd:greenDrugsApply.getDetailList()){
gd.setCreateBy(userId);
gd.setCreateTime(new Date());
gd.setApplyId(greenDrugsApply.getId());
List imgs = gd.getImgs();
String picture="";
String pictureData="";
for(int i=0;i> userList2 = hibernateDao.queryForListWithSql(getUserSql, new Object[]{role});
title = "药品审核";
text = "您好,您有新的药品预订需要审核,请注意查看。";
url = "/pages/medical/drugsApproval";
aliasManageController.pushToSingleBatch(userList2, title, text, url);
return new RestResult(Constant.SUCCESS,"成功");
}catch (ServiceValidatorBaseException e) {
throw e;
}catch (Exception e) {
e.printStackTrace();
//设置手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new RestResult(Constant.FAILED,"返回异常");
}finally {
if (lock.isLocked()) {
lock.unlock();
}
}
}
/**用户订单列表*/
@RequestMapping(value="/getMyDrugsApplyList", method = RequestMethod.POST)
@ResponseBody
public RestResult getMyDrugsApplyList(@RequestBody GreenDrugsApply greenDrugsApply){
String userId = greenDrugsApply.getUserId();
GreenUserInfo info = getUserInfo(userId);
if(info==null){
return new RestResult(Constant.FAILED, "非法用户");
}
try {
StringBuffer sb = new StringBuffer();
//分页信息
int pageSize = greenDrugsApply.getPageSize();
int page = greenDrugsApply.getPage();
int limit = ((page > 0 ? page : 1) -1) * pageSize;
//查询订单
sb.append(" SELECT * FROM(SELECT RN.*,ROWNUM rw FROM( "
+ "Select a.id as \"id\",a.user_id as \"user_id\",a.user_name as \"user_name\",a.tel_number as \"tel_number\","
+ "a.dept_id as \"dept_id\",a.dept_name as \"dept_name\",a.create_by as \"create_by\","
+ "a.modify_time as \"modify_time\",a.modify_by as \"modify_by\",a.status as \"status\",a.is_deleted as \"is_deleted\","
+ "a.reason as \"reason\",a.endremind as \"endremind\", "
+ "to_char(a.create_time,'YYYY-MM-DD HH24:MI:SS') as \"createTime\",u.real_name as \"real_name\",u.mobile as \"mobile\" "
+ "from green_drugs_apply a left join green_user_info u on a.modify_by = u.id "
+ " where a.is_deleted='N' and a.user_id = ? order by a.create_time desc "
+ " )rn ) WHERE rw > ? AND rw <= ? ");
List