DateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String businessTime = dateformat.format(registerCheck.getApproveTime());
Date officeTime= subcompanyParamService.getAppointOfficeBusinessTime(businessTime,subCompanyID).getRes();
addPerson.setOfficeTime(officeTime);
//wx端调用H5端时,使用feign,其中传递了参数DATE,报错org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert val........Failed to convert from type [java.lang.String] to type [java.util.Date]
//两种方式可以解决
/**2种解决办法:
1. 参数改为String类型,在方法体内处理String到Date的转换,而不是交给SpringMVC来解析(即放在controller层的方法的参数列表中)。
2 写转换类实现org.springframework.core.convert.converter.Converter,并在SpringMVC中注册。
该Converter接口较为简单,代码略
**/
//此时只需要换类型即可,将DATA转为String 然后,String在转换为Date.
//feign端
@FeignClient(contextId = "subcompanyParamService", value = ServiceNameConstant.PLATFORM_SYSTEM)
@GetMapping("/ParamValue/getAppointOfficeBusinessTime")
ResponseNew<Date> getAppointOfficeBusinessTime(@RequestParam("dateString") String dateString, @RequestParam("subcompanyID") Integer subcompanyID);
}
//MVC端()
@ApiOperation("获取指定入职时间时间营业参数")
@GetMapping("/getAppointOfficeBusinessTime")
public ResponseNew<Date> getAppointOfficeBusinessTime(String dateString,Integer subcompanyID) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
try {
date = sdf.parse(dateString);
} catch (ParseException e) {
// TODO: handle exception
e.printStackTrace();
}
return success(resourceParamHandler.getAppointOfficeBusinessTime(date,subcompanyID));
}
//handler层
public Date getAppointOfficeBusinessTime(Date date, Integer subcompanyID){
...............
}
ps:后面两段代码主要针对根据目前时间获取对应营业日的方案