package com.nationalelectric.greenH5;
import java.io.IOException;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.type.TypeReference;
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.alibaba.fastjson.JSON;
import com.jysoft.weChat.service.WechatService;
import com.jysoft.weChat.vo.ContentVo;
import com.nationalelectirc.Constant.ApplyRoleConstant;
import com.nationalelectirc.Constant.Constant;
import com.nationalelectirc.utils.PushMessageUtil;
import com.nationalelectirc.utils.RestResult;
import com.nationalelectric.greenH5.bizc.BaseServiceImpl;
import com.nationalelectric.greenH5.bizc.IGreenApplyListBizc;
import com.nationalelectric.greenH5.bizc.IGreenHaircutInfoBizc;
import com.nationalelectric.greenH5.bizc.IGreenHaircutRemainBizc;
import com.nationalelectric.greenH5.bizc.IGreenOperateLogBizc;
import com.nationalelectric.greenH5.bizc.IGreenRetinueInfoBizc;
import com.nationalelectric.greenH5.bizc.IGreenUserInfoBizc;
import com.nationalelectric.greenH5.bizc.IGreenVisitorInfoBizc;
import com.nationalelectric.greenH5.identityAuth.service.IdentityAuthService;
import com.nationalelectric.greenH5.identityAuth.util.PhotoUtil;
import com.nationalelectric.greenH5.po.GreenApplyList;
import com.nationalelectric.greenH5.po.GreenGrantAuth;
import com.nationalelectric.greenH5.po.GreenHaircutInfo;
import com.nationalelectric.greenH5.po.GreenHaircutRemain;
import com.nationalelectric.greenH5.po.GreenMealTicketNum;
import com.nationalelectric.greenH5.po.GreenRetinueInfo;
import com.nationalelectric.greenH5.po.GreenUserInfo;
import com.nationalelectric.greenH5.po.GreenVisitorInfo;
import com.nationalelectric.greenH5.po.GreenVisitorRetinueInfo;
import com.nationalelectric.greenH5.po.Result;
import com.nationalelectric.greenH5.utils.AesEncryptUtil;
import com.nationalelectric.greenH5.utils.Base64Utils;
import com.nationalelectric.greenH5.utils.DateTime;
import com.nationalelectric.greenH5.utils.DateUtil;
import com.nationalelectric.greenH5.utils.JSONUtil;
import com.sgcc.uap.persistence.IHibernateDao;
import com.sgcc.uap.service.validator.ServiceValidatorBaseException;
import com.sgcc.uap.service.validator.ServiceValidatorUtil;
import net.sf.json.JSONObject;
import okhttp3.Call;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
/**
* 概述:
*
* 功能:
*
* @author chenweikang
*/
@Controller
@RequestMapping("/greenVisitorInfo")
public class GreenVisitorInfoController extends GreenBaseController {
@Autowired
private IdentityAuthService identityAuthService;
@Autowired
private BaseServiceImpl BaseService;
/**
* 访客预约service
*/
@Resource
private WechatService wService;
@Resource
private IGreenVisitorInfoBizc greenvisitorinfoBizc;
/**
* 我的申请service
*/
@Resource
private IGreenApplyListBizc greenApplyListBizc;
/**
* 员工卡controller
*/
@Resource
private GreenStaffCardInfoController greenStaffCardInfoController;
/**
* 临时停车controller
*/
@Resource
private GreenTempParkInfoController greenTempParkInfoController;
/**
* 故障报修controller
*/
@Resource
private GreenFaultRepairInfoController greenFaultRepairInfoController;
/**
* 理发预约controller
*/
@Resource
private GreenHaircutInfoController greenHaircutInfoController;
/**
* 随行人员service
*/
@Resource
private IGreenRetinueInfoBizc greenretinueinfoBizc;
/**
* 餐券申请controller
*/
@Resource
private GreenMealTicketApplyController greenMealTicketApplyController;
/**
* 用户controller
*/
@Resource
private GreenUserInfoController greenUserInfoController;
/**
* 施工申请controller
*/
@Resource
private GreenConstructInfoController greenConstructInfoController;
/**
* 用户service
*/
@Resource
private IGreenUserInfoBizc greenuserinfoBizc;
/**
* 理发预约service
*/
@Resource
private IGreenHaircutInfoBizc greenhaircutinfoBizc;
/**
* 理发师余额service
*/
@Resource
private IGreenHaircutRemainBizc greenhaircutremainBizc;
/**
* 保存图片controller
*/
@Resource
private GreenImageInfoController greenImageInfoController;
/**
* 字典表controller
*/
@Resource
private GreenDictionaryInfoController greenDictionaryInfoController;
@Resource
private IGreenOperateLogBizc greenOperateLogBizc;
/**
* HibernateDao逻辑构件
*/
@Autowired
IHibernateDao hibernateDao;
@Autowired
private BaseServiceImpl baseService;
/**
* 不可取消申请的状态集合
*/
private static final String[] IS_CANCEL_ARR = { "1", "2", "3", "9", "11" };
/**
* 保存访客预约
*
* @param greenVisitorInfo
* @param request
* @return
*/
@SuppressWarnings("unchecked")
@Transactional(rollbackFor = Exception.class)
@RequestMapping(value = "/saveVistorInfo", method = RequestMethod.POST)
public @ResponseBody RestResult saveVistorInfo(@RequestBody Object requestBody, HttpServletRequest request) {
GreenVisitorRetinueInfo greenVisitorRetinueInfo = new ObjectMapper().convertValue(requestBody,
new TypeReference() {
});
try {
/*
* 根据判断被访人姓名和手机号码是否与国网组织架构信息匹配
*/
String UserInfoByIdSql = "SELECT dp.name departmentName,ui.* from GREEN_USER_INFO ui LEFT JOIN green_department dp ON "
+ " ui.department_id = dp.id and dp.is_deleted = 'N' WHERE ui.is_deleted = 'N' AND ui.mobile = ? and ui.is_inner=1 and ui.user_status=2 ";
//+ " ui.department_id = dp.id and dp.is_deleted = 'N' WHERE ui.is_deleted = 'N' and ui.real_name = ? AND ui.mobile = ? and dp.name = ? AND ui.ORG_name ='省公司' ";
// 被访问人姓名
String visitedPersonName = greenVisitorRetinueInfo.getVisitedPersonName();
// 被访问人电话
String visitedPersonTel = greenVisitorRetinueInfo.getVisitedPersonTel();
// 被访问人电话
String visitedDeptName = greenVisitorRetinueInfo.getVisitedDeptName();
// // 执行sql
List