639 lines
27 KiB
Plaintext
639 lines
27 KiB
Plaintext
|
|
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.DateTimeHelper;
|
|||
|
|
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;
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* <b>概述</b>:<br>
|
|||
|
|
* <p>
|
|||
|
|
* <b>功能</b>:<br>
|
|||
|
|
*
|
|||
|
|
* @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(DateTimeHelper.getNowDate());
|
|||
|
|
greenDrugsApply.setCreateBy(userId);
|
|||
|
|
hibernateDao.saveObject(greenDrugsApply);
|
|||
|
|
for(GreenDrugsDetail gd:greenDrugsApply.getDetailList()){
|
|||
|
|
gd.setCreateBy(userId);
|
|||
|
|
gd.setCreateTime(DateTimeHelper.getNowDate());
|
|||
|
|
gd.setApplyId(greenDrugsApply.getId());
|
|||
|
|
List<String> imgs = gd.getImgs();
|
|||
|
|
String picture="";
|
|||
|
|
String pictureData="";
|
|||
|
|
for(int i=0;i<imgs.size();i++){
|
|||
|
|
// SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
|
|||
|
|
// String date = sdf1.format(new Date()) + "/";
|
|||
|
|
// String uuid = date + UUID.randomUUID().toString().replaceAll("-","");
|
|||
|
|
// baseService.saveImgToIO(uuid+Constant.IMG_SUFFIX, imgs.get(i));
|
|||
|
|
// picture = uuid+Constant.IMG_SUFFIX;
|
|||
|
|
// pictureData = uuid;
|
|||
|
|
if(i==0){
|
|||
|
|
gd.setDrugsPic1(imgs.get(i));
|
|||
|
|
gd.setDrugsPic1Data(imgs.get(i));
|
|||
|
|
}else if(i==1){
|
|||
|
|
gd.setDrugsPic2(imgs.get(i));
|
|||
|
|
gd.setDrugsPic2Data(imgs.get(i));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
hibernateDao.saveObject(gd);
|
|||
|
|
}
|
|||
|
|
String title = "药品预订";
|
|||
|
|
String text = "您好,您的药品已成功预订,请等待审核。";
|
|||
|
|
String url = "/pages/medical/drugreserve?currentTabIndex=1";
|
|||
|
|
aliasManageController.pushToSingle(userId, title, text, url);
|
|||
|
|
//查询所有有这个权限的人员
|
|||
|
|
String role = "14004";//药品审核权限
|
|||
|
|
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 = ? ";
|
|||
|
|
List<Map<String,Object>> 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\","
|
|||
|
|
+ "to_char(a.modify_time,'YYYY-MM-DD HH24:MI:SS') 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<Map<String,Object>> applyList = hibernateDao.queryForListWithSql(sb.toString()
|
|||
|
|
,new Object[]{ userId, limit, pageSize});
|
|||
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|||
|
|
|
|||
|
|
String stringId = null;
|
|||
|
|
|
|||
|
|
if (!applyList.isEmpty()) {
|
|||
|
|
stringBuilder.append("(");
|
|||
|
|
for (int i = 0;i<applyList.size();i++) {
|
|||
|
|
stringId = String.valueOf(applyList.get(i).get("id"));
|
|||
|
|
stringBuilder.append(stringId + ",");
|
|||
|
|
}
|
|||
|
|
String substring = null;
|
|||
|
|
if (stringBuilder != null) {
|
|||
|
|
substring = stringBuilder.substring(0, stringBuilder.length()-1) +")";
|
|||
|
|
}
|
|||
|
|
//查询订单详情
|
|||
|
|
String sql = "select t.id as \"id\",t.apply_id as \"apply_id\",t.drugs_name as \"drugs_name\","
|
|||
|
|
+ "t.drugs_factory as \"drugs_factory\",t.drugs_type as \"drugs_type\",t.drugs_num as \"drugs_num\","
|
|||
|
|
+ "t.drugs_pic1 as \"drugs_pic1\",t.drugs_pic1_data as \"drugs_pic1_data\",t.drugs_pic2 as \"drugs_pic2\","
|
|||
|
|
+ "t.drugs_pic2_data as \"drugs_pic2_data\",t.is_deleted as \"is_deleted\",to_char(t.create_time,'yyyy-mm-dd hh24:mi:ss') as \"create_time\","
|
|||
|
|
+ "t.create_by as \"create_by\",to_char(t.modify_time,'yyyy-mm-dd hh24:mi:ss') as \"modify_time\",t.modify_by \"modify_by\","
|
|||
|
|
+ "t.drugs_dose \"drugs_dose\",t.drugs_unit \"drugs_unit\" "
|
|||
|
|
+ "from green_drugs_detail t where t.is_deleted='N' and t.apply_id in " + substring;
|
|||
|
|
List<Map<String,Object>> detailList =hibernateDao.queryForListWithSql( sql);
|
|||
|
|
for (Map<String, Object> map : detailList) {
|
|||
|
|
String picString=(String)map.get("drugs_pic1");
|
|||
|
|
if(picString!=null&&!picString.isEmpty()){
|
|||
|
|
map.put("drugs_pic1", baseService.getImageBase64(picString));
|
|||
|
|
}
|
|||
|
|
String picString2=(String)map.get("drugs_pic2");
|
|||
|
|
if(picString2!=null&&!picString2.isEmpty()){
|
|||
|
|
map.put("drugs_pic2", baseService.getImageBase64(picString2));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//初始化图片缓存
|
|||
|
|
baseService.initImage();
|
|||
|
|
|
|||
|
|
String stringId2 = null;
|
|||
|
|
String stringId3 = null;
|
|||
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|||
|
|
for (int i = 0; i < applyList.size(); i++) {
|
|||
|
|
ArrayList<Object> arrayList = new ArrayList<Object>();
|
|||
|
|
applyList.get(i).put("detailList",null);
|
|||
|
|
stringId2 = String.valueOf(applyList.get(i).get("id"));
|
|||
|
|
//Date date = (Date) applyList.get(i).get("createTime");
|
|||
|
|
Date date = sdf.parse(String.valueOf(applyList.get(i).get("createTime")));
|
|||
|
|
DateTime dt = new DateTime(date);
|
|||
|
|
String pickDate = "";
|
|||
|
|
if(dt.getDay()>=7){
|
|||
|
|
dt = dt.addMonths(1);
|
|||
|
|
}
|
|||
|
|
pickDate = dt.toString("yyyy年MM")+"月下旬";
|
|||
|
|
applyList.get(i).put("pickDate", pickDate);
|
|||
|
|
for (int j = 0; j < detailList.size(); j++) {
|
|||
|
|
stringId3 = String.valueOf(detailList.get(j).get("apply_id"));
|
|||
|
|
if (stringId2.equals(stringId3)) {
|
|||
|
|
|
|||
|
|
arrayList.add(detailList.get(j));
|
|||
|
|
applyList.get(i).put("detailList",arrayList);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return new RestResult(Constant.SUCCESS,"成功",applyList);
|
|||
|
|
}catch (ServiceValidatorBaseException e) {
|
|||
|
|
throw e;
|
|||
|
|
}catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
return new RestResult(Constant.FAILED,"返回异常");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/**用户订单列表*/
|
|||
|
|
@RequestMapping(value="/getDrugsApplyList", method = RequestMethod.POST)
|
|||
|
|
@ResponseBody
|
|||
|
|
public RestResult getDrugsApplyList(@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\","
|
|||
|
|
+ "to_char(a.modify_time,'yyyy-mm-dd hh24:mi:ss') 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\" "
|
|||
|
|
+ " from green_drugs_apply a"
|
|||
|
|
+ " where is_deleted='N' ");
|
|||
|
|
Integer status = greenDrugsApply.getStatus();
|
|||
|
|
if(status==3){
|
|||
|
|
sb.append(" and status <> 0 ");
|
|||
|
|
}else{
|
|||
|
|
sb.append(" and status = "+status+" ");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
sb.append(" order by create_time desc "
|
|||
|
|
+ " )rn ) WHERE rw > ? AND rw <= ? ");
|
|||
|
|
List<Map<String,Object>> applyList = hibernateDao.queryForListWithSql(sb.toString()
|
|||
|
|
,new Object[]{ limit, pageSize});
|
|||
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|||
|
|
|
|||
|
|
String stringId = null;
|
|||
|
|
|
|||
|
|
if (!applyList.isEmpty()) {
|
|||
|
|
stringBuilder.append("(");
|
|||
|
|
for (int i = 0;i<applyList.size();i++) {
|
|||
|
|
stringId = String.valueOf(applyList.get(i).get("id"));
|
|||
|
|
stringBuilder.append(stringId + ",");
|
|||
|
|
}
|
|||
|
|
String substring = null;
|
|||
|
|
if (stringBuilder != null) {
|
|||
|
|
substring = stringBuilder.substring(0, stringBuilder.length()-1) +")";
|
|||
|
|
}
|
|||
|
|
//查询订单详情
|
|||
|
|
String sql = "select t.id as \"id\",t.apply_id as \"apply_id\",t.drugs_name as \"drugs_name\","
|
|||
|
|
+ "t.drugs_factory as \"drugs_factory\",t.drugs_type as \"drugs_type\",t.drugs_num as \"drugs_num\","
|
|||
|
|
+ "t.drugs_pic1 as \"drugs_pic1\",t.drugs_pic1_data as \"drugs_pic1_data\",t.drugs_pic2 as \"drugs_pic2\","
|
|||
|
|
+ "t.drugs_pic2_data as \"drugs_pic2_data\",t.is_deleted as \"is_deleted\",to_char(t.create_time,'yyyy-mm-dd hh24:mi:ss') as \"create_time\","
|
|||
|
|
+ "t.create_by as \"create_by\",to_char(t.modify_time,'yyyy-mm-dd hh24:mi:ss') as \"modify_time\",t.modify_by \"modify_by\","
|
|||
|
|
+ "t.drugs_dose \"drugs_dose\",t.drugs_unit \"drugs_unit\" "
|
|||
|
|
+ "from green_drugs_detail t where t.is_deleted='N' and t.apply_id in " + substring;
|
|||
|
|
List<Map<String,Object>> detailList =hibernateDao.queryForListWithSql( sql);
|
|||
|
|
for (Map<String, Object> map : detailList) {
|
|||
|
|
String picString=(String)map.get("drugs_pic1");
|
|||
|
|
if(picString!=null&&!picString.isEmpty()){
|
|||
|
|
map.put("drugs_pic1", baseService.getImageBase64(picString));
|
|||
|
|
}
|
|||
|
|
String picString2=(String)map.get("drugs_pic2");
|
|||
|
|
if(picString2!=null&&!picString2.isEmpty()){
|
|||
|
|
map.put("drugs_pic2", baseService.getImageBase64(picString2));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//初始化图片缓存
|
|||
|
|
baseService.initImage();
|
|||
|
|
|
|||
|
|
String stringId2 = null;
|
|||
|
|
String stringId3 = null;
|
|||
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|||
|
|
for (int i = 0; i < applyList.size(); i++) {
|
|||
|
|
ArrayList<Object> arrayList = new ArrayList<Object>();
|
|||
|
|
applyList.get(i).put("detailList",null);
|
|||
|
|
stringId2 = String.valueOf(applyList.get(i).get("id"));
|
|||
|
|
//Date date = (Date) applyList.get(i).get("create_time");
|
|||
|
|
Date date = sdf.parse(String.valueOf(applyList.get(i).get("createTime")));
|
|||
|
|
DateTime dt = new DateTime(date);
|
|||
|
|
String pickDate = "";
|
|||
|
|
if(dt.getDay()>=7){
|
|||
|
|
dt = dt.addMonths(1);
|
|||
|
|
}
|
|||
|
|
pickDate = dt.toString("yyyy年MM")+"月下旬";
|
|||
|
|
applyList.get(i).put("pickDate", pickDate);
|
|||
|
|
for (int j = 0; j < detailList.size(); j++) {
|
|||
|
|
stringId3 = String.valueOf(detailList.get(j).get("apply_id"));
|
|||
|
|
if (stringId2.equals(stringId3)) {
|
|||
|
|
|
|||
|
|
arrayList.add(detailList.get(j));
|
|||
|
|
applyList.get(i).put("detailList",arrayList);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return new RestResult(Constant.SUCCESS,"成功",applyList);
|
|||
|
|
}
|
|||
|
|
return new RestResult(Constant.SUCCESS,"成功",null);
|
|||
|
|
}catch (ServiceValidatorBaseException e) {
|
|||
|
|
throw e;
|
|||
|
|
}catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
return new RestResult(Constant.FAILED,"返回异常");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@RequestMapping(value="/getDrugsApplyDetail", method = RequestMethod.POST)
|
|||
|
|
@ResponseBody
|
|||
|
|
public RestResult getDrugsApplyDetail(@RequestBody GreenDrugsApply greenDrugsApply){
|
|||
|
|
|
|||
|
|
// String userId = greenDrugsApply.getUserId();
|
|||
|
|
// GreenUserInfo info = getUserInfo(userId);
|
|||
|
|
// if(info==null){
|
|||
|
|
// return new RestResult(Constant.FAILED, "非法用户");
|
|||
|
|
// }
|
|||
|
|
Long id = greenDrugsApply.getId();
|
|||
|
|
try {
|
|||
|
|
|
|||
|
|
StringBuffer sb = new StringBuffer();
|
|||
|
|
//分页信息
|
|||
|
|
int pageSize = greenDrugsApply.getPageSize();
|
|||
|
|
int page = greenDrugsApply.getPage();
|
|||
|
|
page = (page-1) * pageSize;
|
|||
|
|
//查询订单
|
|||
|
|
sb.append(" 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\","
|
|||
|
|
+ "to_char(a.modify_time,'yyyy-mm-dd hh24:mi:ss') 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.id=? ");
|
|||
|
|
List<Map<String,Object>> applyList = hibernateDao.queryForListWithSql(sb.toString(),new Object[]{ id});
|
|||
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|||
|
|
|
|||
|
|
String stringId = null;
|
|||
|
|
|
|||
|
|
if (!applyList.isEmpty()) {
|
|||
|
|
stringBuilder.append("(");
|
|||
|
|
for (int i = 0;i<applyList.size();i++) {
|
|||
|
|
stringId = String.valueOf(applyList.get(i).get("id"));
|
|||
|
|
stringBuilder.append(stringId + ",");
|
|||
|
|
}
|
|||
|
|
String substring = null;
|
|||
|
|
if (stringBuilder != null) {
|
|||
|
|
substring = stringBuilder.substring(0, stringBuilder.length()-1) +")";
|
|||
|
|
}
|
|||
|
|
//查询订单详情
|
|||
|
|
String sql = "select t.id as \"id\",t.apply_id as \"apply_id\",t.drugs_name as \"drugs_name\","
|
|||
|
|
+ "t.drugs_factory as \"drugs_factory\",t.drugs_type as \"drugs_type\",t.drugs_num as \"drugs_num\","
|
|||
|
|
+ "t.drugs_pic1 as \"drugs_pic1\",t.drugs_pic1_data as \"drugs_pic1_data\",t.drugs_pic2 as \"drugs_pic2\","
|
|||
|
|
+ "t.drugs_pic2_data as \"drugs_pic2_data\",t.is_deleted as \"is_deleted\",to_char(t.create_time,'yyyy-mm-dd hh24:mi:ss') as \"create_time\","
|
|||
|
|
+ "t.create_by as \"create_by\",to_char(t.modify_time,'yyyy-mm-dd hh24:mi:ss') as \"modify_time\",t.modify_by \"modify_by\","
|
|||
|
|
+ "t.drugs_dose \"drugs_dose\",t.drugs_unit \"drugs_unit\" "
|
|||
|
|
+ "from green_drugs_detail t where t.is_deleted='N' and t.apply_id in " + substring;
|
|||
|
|
List<Map<String,Object>> detailList =hibernateDao.queryForListWithSql( sql);
|
|||
|
|
for (Map<String, Object> map : detailList) {
|
|||
|
|
String picString=(String)map.get("drugs_pic1");
|
|||
|
|
if(picString!=null&&!picString.isEmpty()){
|
|||
|
|
map.put("drugs_pic1", baseService.getImageBase64(picString));
|
|||
|
|
}
|
|||
|
|
String picString2=(String)map.get("drugs_pic2");
|
|||
|
|
if(picString2!=null&&!picString2.isEmpty()){
|
|||
|
|
map.put("drugs_pic2", baseService.getImageBase64(picString2));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
//初始化图片缓存
|
|||
|
|
baseService.initImage();
|
|||
|
|
|
|||
|
|
String stringId2 = null;
|
|||
|
|
String stringId3 = null;
|
|||
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|||
|
|
for (int i = 0; i < applyList.size(); i++) {
|
|||
|
|
ArrayList<Object> arrayList = new ArrayList<Object>();
|
|||
|
|
applyList.get(i).put("detailList",null);
|
|||
|
|
stringId2 = String.valueOf(applyList.get(i).get("id"));
|
|||
|
|
//Date date = (Date) applyList.get(i).get("create_time");
|
|||
|
|
Date date = sdf.parse(String.valueOf(applyList.get(i).get("createTime")));
|
|||
|
|
DateTime dt = new DateTime(date);
|
|||
|
|
String pickDate = "";
|
|||
|
|
if(dt.getDay()>=7){
|
|||
|
|
dt = dt.addMonths(1);
|
|||
|
|
}
|
|||
|
|
pickDate = dt.toString("yyyy年MM")+"月下旬";
|
|||
|
|
applyList.get(i).put("pickDate", pickDate);
|
|||
|
|
for (int j = 0; j < detailList.size(); j++) {
|
|||
|
|
stringId3 = String.valueOf(detailList.get(j).get("apply_id"));
|
|||
|
|
if (stringId2.equals(stringId3)) {
|
|||
|
|
|
|||
|
|
arrayList.add(detailList.get(j));
|
|||
|
|
applyList.get(i).put("detailList",arrayList);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
return new RestResult(Constant.SUCCESS,"成功",applyList);
|
|||
|
|
}
|
|||
|
|
return new RestResult(Constant.SUCCESS,"成功",null);
|
|||
|
|
}catch (ServiceValidatorBaseException e) {
|
|||
|
|
throw e;
|
|||
|
|
}catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
return new RestResult(Constant.FAILED,"返回异常");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/**用户订单列表*/
|
|||
|
|
@RequestMapping(value="/updateDrugs", method = RequestMethod.POST)
|
|||
|
|
@ResponseBody
|
|||
|
|
public RestResult updateDrugs(JSONObject data){
|
|||
|
|
|
|||
|
|
String userId = data.getString("userId");
|
|||
|
|
GreenUserInfo info = getUserInfo(userId);
|
|||
|
|
if(info==null){
|
|||
|
|
return new RestResult(Constant.FAILED, "非法用户");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
JSONArray ja = data.getJSONArray("detailList");
|
|||
|
|
for(int i=0;i<ja.size();i++){
|
|||
|
|
Map<String, Object> map = (Map<String, Object>) JSONObject.toBean(ja.getJSONObject(i), Map.class);
|
|||
|
|
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyyMMdd");
|
|||
|
|
GreenDrugsDetail gd = greenDrugsDetailBizc.get(Long.parseLong((Integer)map.get("id")+""));
|
|||
|
|
//gd.setId((Long)obj.get("id"));
|
|||
|
|
|
|||
|
|
//gd.setApplyId((Long)obj.get("apply_id"));
|
|||
|
|
gd.setDrugsName((String)map.get("drugsName"));
|
|||
|
|
gd.setDrugsFactory((String)map.get("drugsFactory"));
|
|||
|
|
gd.setDrugsType((String)map.get("drugsType"));
|
|||
|
|
gd.setDrugsNum(Integer.parseInt(map.get("drugsNum").toString()));
|
|||
|
|
gd.setIsDeleted(((String)map.get("isDeleted")).equals("Y")?'Y':'N');
|
|||
|
|
// String picString1=(String)obj.get("drugs_pic1");
|
|||
|
|
// String picture="";
|
|||
|
|
// String pictureData="";
|
|||
|
|
// String date = sdf1.format(new Date()) + "/";
|
|||
|
|
// String uuid = date + UUID.randomUUID().toString().replaceAll("-","");
|
|||
|
|
// baseService.saveImgToIO(uuid+Constant.IMG_SUFFIX, picString1);
|
|||
|
|
// picture = uuid+Constant.IMG_SUFFIX;
|
|||
|
|
// pictureData = uuid;
|
|||
|
|
// gd.setDrugsPic1(picture);
|
|||
|
|
// gd.setDrugsPic1Data(pictureData);
|
|||
|
|
//
|
|||
|
|
// String picString2=(String)obj.get("drugs_pic2");
|
|||
|
|
// date = sdf1.format(new Date()) + "/";
|
|||
|
|
// uuid = date + UUID.randomUUID().toString().replaceAll("-","");
|
|||
|
|
// baseService.saveImgToIO(uuid+Constant.IMG_SUFFIX, picString2);
|
|||
|
|
// picture = uuid+Constant.IMG_SUFFIX;
|
|||
|
|
// pictureData = uuid;
|
|||
|
|
// gd.setDrugsPic2(picture);
|
|||
|
|
// gd.setDrugsPic2Data(pictureData);
|
|||
|
|
// gd.setIsDeleted((Character)obj.get("is_deleted"));
|
|||
|
|
|
|||
|
|
//greenDrugsDetailBizc.update(gd, gd.getId());
|
|||
|
|
hibernateDao.updateObject(gd,gd.getId());
|
|||
|
|
}
|
|||
|
|
String title = "药品预定";
|
|||
|
|
String text = "您好,您的药品预定已被修改,请注意查看。";
|
|||
|
|
String url = "/pages/medical/drugreserve?currentTabIndex=1";
|
|||
|
|
aliasManageController.pushToSingle(userId, title, text, url);
|
|||
|
|
return new RestResult(Constant.SUCCESS,"修改成功");
|
|||
|
|
}catch (ServiceValidatorBaseException e) {
|
|||
|
|
throw e;
|
|||
|
|
}catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
return new RestResult(Constant.FAILED,"修改失败");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/**用户订单列表*/
|
|||
|
|
@RequestMapping(value="/drugsApplyApproval", method = RequestMethod.POST)
|
|||
|
|
@ResponseBody
|
|||
|
|
public RestResult drugsApplyApproval(@RequestBody GreenDrugsApply greenDrugsApply){
|
|||
|
|
try {
|
|||
|
|
Long id = greenDrugsApply.getId();
|
|||
|
|
Integer status = greenDrugsApply.getStatus();
|
|||
|
|
String reason = greenDrugsApply.getReason()==null?"":greenDrugsApply.getReason();
|
|||
|
|
String modifyBy = greenDrugsApply.getModifyBy()==null?"":greenDrugsApply.getModifyBy();
|
|||
|
|
String sql = "update green_drugs_apply set status=? ,reason=?,modify_by =?,modify_time=? where id=?" ;
|
|||
|
|
hibernateDao.updateWithSql(sql, new Object[]{status,reason,modifyBy,new Date(),id});
|
|||
|
|
|
|||
|
|
greenDrugsApply = greenDrugsApplyBizc.get(id);
|
|||
|
|
if(status == 1){
|
|||
|
|
String title = "药品预定";
|
|||
|
|
String text = "您好,您的药品预定已通过审核,请注意查看。";
|
|||
|
|
String url = "/pages/medical/drugreserve?currentTabIndex=1";
|
|||
|
|
aliasManageController.pushToSingle(greenDrugsApply.getUserId(), title, text, url);
|
|||
|
|
//查询所有有这个权限的人员
|
|||
|
|
String role = "14005";//药品受理权限
|
|||
|
|
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 = ? ";
|
|||
|
|
List<Map<String,Object>> userList2 = hibernateDao.queryForListWithSql(getUserSql, new Object[]{role});
|
|||
|
|
title = "药品受理";
|
|||
|
|
text = "您好,您有新的药品预定需要受理,请注意查看。";
|
|||
|
|
url = "/pages/medical/drug-reserve-sl";
|
|||
|
|
aliasManageController.pushToSingleBatch(userList2, title, text, url);
|
|||
|
|
}else{
|
|||
|
|
String title = "药品预定";
|
|||
|
|
String text = "您好,您的药品预定被拒绝,请注意查看。";
|
|||
|
|
String url = "/pages/medical/drugreserve?currentTabIndex=1";
|
|||
|
|
aliasManageController.pushToSingle(greenDrugsApply.getUserId(), title, text, url);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
return new RestResult(Constant.SUCCESS,"审核成功");
|
|||
|
|
}catch (ServiceValidatorBaseException e) {
|
|||
|
|
throw e;
|
|||
|
|
}catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
return new RestResult(Constant.FAILED,"审核失败");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
/**
|
|||
|
|
* 提醒
|
|||
|
|
*
|
|||
|
|
* @param greenHaircutRemainDTO
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
@RequestMapping(value = "/remindPickUpDrugs", method = RequestMethod.POST)
|
|||
|
|
public @ResponseBody RestResult remindPickUpDrugs(@RequestBody GreenDrugsApply greenDrugsApply) {
|
|||
|
|
try {
|
|||
|
|
String sql = "select endremind as \"endremind\" from green_drugs_apply where id ="+greenDrugsApply.getId()+"";
|
|||
|
|
List<Map<String, Object>> list = hibernateDao.queryForListWithSql(sql);
|
|||
|
|
|
|||
|
|
String title = "药品预定";
|
|||
|
|
String text = "您好,您预定的药品已到货,请及时取货。";
|
|||
|
|
String url = "/pages/medical/drugreserve?currentTabIndex=1";
|
|||
|
|
aliasManageController.pushToSingle(greenDrugsApply.getUserId(), title, text, url);
|
|||
|
|
// String sqlDetail = "select * from green_drugs_detail where apply_id ="+greenDrugsApply.getId()+"";
|
|||
|
|
// List<Map<String, Object>> listDetail = hibernateDao.queryForListWithSql(sqlDetail);
|
|||
|
|
// String detail ="";
|
|||
|
|
// for(int i=0;i<listDetail.size();i++){
|
|||
|
|
// Map<String, Object> m = listDetail.get(i);
|
|||
|
|
// if(i!=0){
|
|||
|
|
// detail+="、"+m.get("drugs_name")+"x"+m.get("drugs_num");
|
|||
|
|
// }else{
|
|||
|
|
// detail+=m.get("drugs_name")+"x"+m.get("drugs_num");
|
|||
|
|
// }
|
|||
|
|
//
|
|||
|
|
// }
|
|||
|
|
// String userId = greenDrugsApply.getUserId();
|
|||
|
|
// GreenUserInfo userInfo = getUserInfo(userId);
|
|||
|
|
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|||
|
|
// String openIdString = userInfo.getWxOpenId();
|
|||
|
|
// Map<String, ContentVo> dataMap = new HashMap<String, ContentVo>();
|
|||
|
|
// dataMap.put("first", new ContentVo("您好!您订购的药品已到,请及时取走!", "#173177"));
|
|||
|
|
// dataMap.put("keyword1", new ContentVo(detail, "#black"));
|
|||
|
|
// dataMap.put("keyword2", new ContentVo(sdf.format(new Date()), "#black"));
|
|||
|
|
// dataMap.put("keyword3", new ContentVo("药房", "#black"));
|
|||
|
|
// dataMap.put("remark", new ContentVo("感谢您的参于与支持", "#173177"));
|
|||
|
|
// wService.publishMsg(dataMap, openIdString, 7);
|
|||
|
|
|
|||
|
|
Integer endRemind = list.get(0).get("endremind")==null?0:Integer.parseInt(String.valueOf(list.get(0).get("endremind")));
|
|||
|
|
String upSql = "update green_drugs_apply set endremind="+(endRemind+1)+" where id="+greenDrugsApply.getId();
|
|||
|
|
hibernateDao.executeSqlUpdate(upSql);
|
|||
|
|
|
|||
|
|
// 返回结果
|
|||
|
|
return new RestResult(Constant.SUCCESS, "");
|
|||
|
|
} catch (Exception e) {
|
|||
|
|
e.printStackTrace();
|
|||
|
|
return new RestResult(Constant.FAILED, "查询失败");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|