package com.ydtech.modules.ins.controller; import com.ydtech.aop.GlobalExceptionHandler; import com.ydtech.core.page.HttpResult; import com.ydtech.core.page.PageRequest; import com.ydtech.core.page.PageResult; import com.ydtech.modules.base.controller.BaseController; import com.ydtech.modules.ins.model.InsTaskDetail; import com.ydtech.modules.ins.model.InsTaskHistory; import com.ydtech.modules.ins.model.InsTaskList; import com.ydtech.modules.ins.model.vo.PiccPriceSearchVo; import com.ydtech.modules.ins.model.vo.TaskFlowVo; import com.ydtech.modules.ins.service.*; import com.ydtech.utils.StringUtils; import com.ydtech.utils.idgen.IdGenerate; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; @RestController @RequestMapping("/api/allins") public class InsAllController extends BaseController { @Autowired private GlobalExceptionHandler exceptionHandle; @Autowired InsTaskListService insTaskListService; @Autowired InsTaskDetailService insTaskDetailService; @Autowired InsTaskHistoryService insTaskHistoryService; @Autowired PiccService piccService; @Autowired TaipingService taipingService; @ApiOperation("任务流程") // @ApiImplicitParams({ // @ApiImplicitParam(name="userName",value="用户名",dataType="string", paramType = "query",example="1401010001"), // @ApiImplicitParam(name="nowTime",value="上传时间",dataType="string", paramType = "query",example="20200120 12:11:01"), // @ApiImplicitParam(name="taskid",value="任务号",dataType="string", paramType = "query",example="14010100010001"), // @ApiImplicitParam(name="company",value="保险公司名",dataType="string", paramType = "query",example="picc taiping"), // @ApiImplicitParam(name="status",value="状态",dataType="string", paramType = "query",example="报价成功 申请核保 核保通过 支付成功"), // @ApiImplicitParam(name="remark",value="摘要",dataType="string", paramType = "query",example=""), // }) @RequestMapping(value = "/taskflow", method = RequestMethod.POST) public HttpResult taskflow(@RequestBody TaskFlowVo taskFlowVo) { HttpResult result = HttpResult.ok("保存成功"); try { // if(company.equalsIgnoreCase("picc")){ DateTime currentDate = new DateTime(); String currentDateStr = currentDate.toString("yyyy-MM-dd HH:mm:ss"); InsTaskList insTaskList = new InsTaskList(); insTaskList.setTaskid(taskFlowVo.getTaskid()); insTaskList.setStatus(taskFlowVo.getStatus()); insTaskList.setChecktime(currentDate.toDate()); insTaskList.setRemark(taskFlowVo.getRemark()); insTaskListService.updateSelective(insTaskList); insTaskDetailService.update(taskFlowVo.getUserName(), currentDateStr, taskFlowVo.getTaskid(), taskFlowVo.getCompany(), taskFlowVo.getStatus()); InsTaskHistory insTaskHistory = new InsTaskHistory(); insTaskHistory.setId(IdGenerate.nextId()); insTaskHistory.setTaskid(taskFlowVo.getTaskid()); // insTaskHistory.setCreatetime(currentDate.toDate()); insTaskHistory.setOperator(taskFlowVo.getUserName()); insTaskHistory.setStatus(taskFlowVo.getStatus()); insTaskHistory.setRemark(taskFlowVo.getRemark()); insTaskHistory.setCompany(taskFlowVo.getCompany()); insTaskHistoryService.insertSelective(insTaskHistory); // } else if(company.equalsIgnoreCase("taiping")){ // // } } catch (Exception e) { result = exceptionHandle.exceptionGet(e); } return result; } @ApiOperation("报价(保费计算)成功后,返回结果给后台保存") // @ApiImplicitParams({ // @ApiImplicitParam(name="piccPriceSearchVo",value="报价的JSON对象",dataType="PiccPriceSearchVo", paramType = "query",example="{}"), // @ApiImplicitParam(name="taskid",value="任务号",dataType="string", paramType = "query",example="14010100010001"), // @ApiImplicitParam(name="company",value="保险公司名",dataType="string", paramType = "query",example="picc taiping"), // }) @RequestMapping(value = "/pricesuccessback", method = RequestMethod.POST) public HttpResult pricesuccessback(@RequestBody PiccPriceSearchVo piccPriceSearchVo, String taskId, String company) { HttpResult result = HttpResult.ok(); try { // String haha = getTestParamsStr(); //String haha = piccPriceSearchVo.getParam(); //TODO 需要判断一下piccPriceSearchVo有效性 String backFromPicc = piccService.successback(piccPriceSearchVo, taskId, company); result = HttpResult.ok(backFromPicc); } catch (Exception e) { result = exceptionHandle.exceptionGet(e); } return result; } @PostMapping(value = "/findPage") public HttpResult findPage(@RequestBody PageRequest pageRequest) { int pageNum = pageRequest.getPageNum(); int pageSize = pageRequest.getPageSize(); StringBuffer whereStr = new StringBuffer(" where 1=1 "); ArrayList params = new ArrayList(); //任务阶段(例如待继续,核保中等) String status = pageRequest.getColumnFilterValue(pageRequest, "status"); if (!StringUtils.isNullOrEmpty(status)) { whereStr.append(" and status like ?"); params.add("%" + status + "%"); } //车牌号 String licenseno = pageRequest.getColumnFilterValue(pageRequest, "licenseno"); if (!StringUtils.isNullOrEmpty(licenseno)) { whereStr.append(" and licenseno like ?"); params.add("%" + licenseno + "%"); } //2020-05 查询日期,都是查询月度订单(我传过去的字段值例如2020-04) String querymonth = pageRequest.getColumnFilterValue(pageRequest, "querymonth"); if (!StringUtils.isNullOrEmpty(querymonth)) { whereStr.append(" and createtime like ?"); params.add("%" + querymonth + "%"); } //insuredname 被保险人 String insuredname = pageRequest.getColumnFilterValue(pageRequest, "insuredname"); if (!StringUtils.isNullOrEmpty(insuredname)) { whereStr.append(" and insuredname like ?"); params.add("%" + insuredname + "%"); } whereStr.append(" order by createtime desc "); //传入查询条件 PageResult pageResult = insTaskListService.selectPaging(pageNum, pageSize, whereStr.toString(), params.toArray()); return HttpResult.ok(pageResult); } @ApiOperation("查询订单详情,根据任务号或公司(两个参数可以都传,也可以只传一个)来查询") @GetMapping(value = "/findTaskDetail") public HttpResult findTaskDetail(String taskid, String company) { //传入查询条件 StringBuffer whereStr = new StringBuffer(" where 1=1 "); ArrayList params = new ArrayList(); //任务号 if (!StringUtils.isNullOrEmpty(taskid)) { whereStr.append(" and taskid=?"); params.add(taskid); } //车牌号 if (!StringUtils.isNullOrEmpty(company)) { whereStr.append(" and company=?"); params.add(company); } whereStr.append(" and ( del_flag is null or del_flag<>'Y' ) "); List lst = insTaskDetailService.selectList(whereStr.toString(), params.toArray()); return HttpResult.ok(lst); } @ApiOperation("查询订单轨迹") @GetMapping(value = "/findTaskHistory") public HttpResult findTaskHistory(String taskid) { //传入查询条件 List lst = insTaskHistoryService.selectList(" where taskid=? ", new Object[]{taskid}); return HttpResult.ok(lst); } /** * 上传图片 * * @param userName 用户名 * @param nowTime 上传时间 * @param taskId 订单号 * @param file 文件 * @return */ @ApiOperation("上传图片") @ApiImplicitParams({ @ApiImplicitParam(name = "userName", value = "用户名", dataType = "string", paramType = "query", example = "1401010001"), @ApiImplicitParam(name = "nowTime", value = "上传时间", dataType = "string", paramType = "query", example = "20200120 12:11:01"), @ApiImplicitParam(name = "taskId", value = "任务号", dataType = "string", paramType = "query", example = "14010100010001"), @ApiImplicitParam(name = "licenseNo", value = "车牌号", dataType = "string", paramType = "query", example = "14010100010001"), }) @RequestMapping(value = "/file/upload", method = RequestMethod.POST) public HttpResult uoloadFile(String userName, String nowTime, String taskId, String licenseNo, @RequestParam("file") MultipartFile file, String newFileName) { try { piccService.uploadFile(userName, nowTime, taskId, licenseNo, file, newFileName); return HttpResult.ok("上传文件成功"); } catch (Exception e) { return HttpResult.error("上传文件失败"); } } // @RequestMapping("/") // public ModelAndView home(Map model) { // // ModelAndView mav = new ModelAndView("index"); // // return mav; // } // /** // * 返回体测试 // * @param name // * @param pwd // * @return // */ // @RequestMapping(value = "/getResult",method = RequestMethod.POST) // @ResponseBody // public Result getResult(@RequestParam("name") String name, @RequestParam("pwd") String pwd){ // Result result = ResultUtil.success(); // try { // if (name.equals("zzp")){ // result = ResultUtil.success(new User(name)); // }else if (name.equals("pzz")){ // result = ResultUtil.error(ExceptionEnum.USER_NOT_FIND); // }else{ // int i = 1/0; // } // }catch (Exception e){ // result = exceptionHandle.exceptionGet(e); // } // return result; // } }