| | |
| | | import com.java110.utils.util.Assert; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl; |
| | | |
| | | private static final Date EXCEL_EPOCH; |
| | | |
| | | static { |
| | | // 初始化Excel起始日期(1899-12-30,对应Excel的0天) |
| | | Calendar cal = Calendar.getInstance(); |
| | | cal.set(1899, Calendar.DECEMBER, 30, 0, 0, 0); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | EXCEL_EPOCH = cal.getTime(); |
| | | } |
| | | |
| | | /** |
| | | * 将Excel日期数值(如45734.0)转换为Date对象 |
| | | * @param excelDate Excel日期数值 |
| | | * @return 对应的Date对象 |
| | | */ |
| | | public static Date doubleToDate(double excelDate) { |
| | | // 处理Excel 1900年闰年错误(Excel错误地将1900年视为闰年) |
| | | long days = (long) Math.floor(excelDate); |
| | | if (days >= 60) { // 1900-03-01及之后的日期需要减1天 |
| | | days--; |
| | | } |
| | | |
| | | // 计算总毫秒数(天数部分 + 时间部分) |
| | | long totalMillis = (long)(days * 86400000L) // 1天 = 86400000毫秒 |
| | | + (long)((excelDate - days) * 86400000L); |
| | | |
| | | // 从基准日期开始累加毫秒数 |
| | | return new Date(EXCEL_EPOCH.getTime() + totalMillis); |
| | | } |
| | | |
| | | /** |
| | | * 处理Excel日期字符串(如"45734.0"),转换为"yyyy-MM-dd"格式 |
| | | * @param strDate Excel日期数值字符串 |
| | | * @return 格式化后的日期字符串 |
| | | * @throws ParseException 转换失败时抛出 |
| | | */ |
| | | public String handleExcelDateString(String strDate){ |
| | | // 1. 将字符串转换为double(如"45734.0" -> 45734.0) |
| | | double excelDateValue = Double.parseDouble(strDate); |
| | | |
| | | // 2. 将Excel数值转换为Date对象 |
| | | Date tDate = doubleToDate(excelDateValue); |
| | | |
| | | // 3. 格式化为"yyyy-MM-dd" |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | return sdf.format(tDate); |
| | | } |
| | | |
| | | |
| | | @Autowired |
| | | private IUserInnerServiceSMO userInnerServiceSMOImpl; |
| | |
| | | * |
| | | * @param reqJson |
| | | */ |
| | | protected void generatorBatch(JSONObject reqJson) { |
| | | public void generatorBatch(JSONObject reqJson) { |
| | | PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo(); |
| | | payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12")); |
| | | payFeeBatchPo.setCommunityId(reqJson.getString("communityId")); |