From 4f452ff9e3a403636ed9c551fc6e67578ddf511d Mon Sep 17 00:00:00 2001 From: wgd <862422848@qq.com> Date: Wed, 1 Jun 2022 09:17:57 +0800 Subject: [PATCH] 8小时后台-- 异常输出记录到日志 --- sql/insure_policy.sql | 1 + src/main/java/cn/timer/api/bean/kqgl/AttendanceAssistant.java | 16 ++++++++-------- src/main/java/cn/timer/api/controller/insure/CallBackContorll.java | 10 +++++----- src/main/java/cn/timer/api/controller/insure/InsureApplicantController.java | 7 ++++--- src/main/java/cn/timer/api/controller/insure/InsureContorll.java | 68 +++++++++++++++++++++++++++++++++++++++----------------------------- src/main/java/cn/timer/api/utils/ExcelUtils.java | 2 +- src/main/java/cn/timer/api/utils/aliyun/OSSUtil.java | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- src/main/java/cn/timer/api/utils/schedule/RemindUtil.java | 2 +- src/main/resources/application.yml | 4 ++-- 9 files changed, 136 insertions(+), 51 deletions(-) diff --git a/sql/insure_policy.sql b/sql/insure_policy.sql index 02ed260..30ef363 100644 --- a/sql/insure_policy.sql +++ b/sql/insure_policy.sql @@ -197,3 +197,4 @@ ALTER TABLE `insure_product` ALTER TABLE `insure_policy` ADD COLUMN `policy_pay_type` int(11) NOT NULL DEFAULT 1 COMMENT '1在线支付 2预付款 3线下支付' AFTER `create_time`, ADD COLUMN `pay_id` int(11) NULL DEFAULT NULL COMMENT 'insure_pay表的id' AFTER `policy_pay_type`; + diff --git a/src/main/java/cn/timer/api/bean/kqgl/AttendanceAssistant.java b/src/main/java/cn/timer/api/bean/kqgl/AttendanceAssistant.java index 1382d51..786448e 100644 --- a/src/main/java/cn/timer/api/bean/kqgl/AttendanceAssistant.java +++ b/src/main/java/cn/timer/api/bean/kqgl/AttendanceAssistant.java @@ -11,9 +11,9 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class AttendanceAssistant implements Serializable{ - + private static final long serialVersionUID = -3561517817976805144L; - + String name;// 考勤组名称 * String remarks;// 备注 * String[] attmachines;// 考勤机 @@ -28,7 +28,7 @@ public class AttendanceAssistant implements Serializable{ String[] attWeekdaysShifts;// 周工作日班次【固定排班】 String[] attMustPunchData;// 必须打卡的日期【固定排班】 String[] attMustPunchShifid;// 必须打卡的班次id【固定排班】 - + // String[] attNonPunchData;// 不用打卡的日期【固定排班】 ResttryfixdayDto[] attNonPunchData; @@ -51,12 +51,12 @@ public class AttendanceAssistant implements Serializable{ String maxOvertimeTime;// 加班最大时长【自由工时】 String attgroupid; - + int overtimeRulesId;//加班id - + int fieldpersonnel;//外勤 - + int restdayclock;//休息日打卡 - - String PagetransferDate;//页面传输修改日期 + + String transferDate;//页面传输修改日期 } diff --git a/src/main/java/cn/timer/api/controller/insure/CallBackContorll.java b/src/main/java/cn/timer/api/controller/insure/CallBackContorll.java index 153903b..00a7efa 100644 --- a/src/main/java/cn/timer/api/controller/insure/CallBackContorll.java +++ b/src/main/java/cn/timer/api/controller/insure/CallBackContorll.java @@ -160,7 +160,7 @@ public class CallBackContorll { } } } catch (Exception e) { - e.printStackTrace(); + log.error("增员核保回调异常:",e); throw new CustomException("增员核保回调异常"); } finally { Map trueMap = Maps.newHashMap(); @@ -256,7 +256,7 @@ public class CallBackContorll { insurePolicy.updateById(); } catch (Exception e) { - e.printStackTrace(); + log.error("保全增员申请回调异常:",e); throw new CustomException("保全增员申请回调异常"); } finally { Map trueMap = Maps.newHashMap(); @@ -328,7 +328,7 @@ public class CallBackContorll { .returnCode(dataMap.get("errcode").toString()).policyId(insurePay.getPolicyId()).returnMsg(dataMap.get("errmsg").toString()).build().insert(); } } catch (Exception e) { - e.printStackTrace(); + log.error("投保支付收银台回调异常:",e); throw new CustomException("投保支付收银台回调异常"); } finally { Map map = Maps.newHashMap(); @@ -383,7 +383,7 @@ public class CallBackContorll { InsureLog.builder().type(7).createTime(new Date()).requestType(1).returnBody(sb.toString()).requestPath(getPolicyUrl) .returnCode(callBack.getStatus()).policyId(insurePay.getPolicyId()).returnMsg(callBack.getErr_msg()).build().insert(); } catch (Exception e) { - e.printStackTrace(); + log.error("保单出单回调:",e); throw new CustomException("保单出单回调"); } finally { Map map = Maps.newHashMap(); @@ -415,7 +415,7 @@ public class CallBackContorll { InsureLog.builder().type(7).createTime(new Date()).requestType(1).returnBody(sb.toString()).requestPath(base_api_url + "/callBack/policy/batchPayCallback") .returnCode(callBack.getPay_status()).policyId(insurePay.getPolicyId()).returnMsg("确认支付成功,支付方式:" + insurePay.getPayType() + ",支付金额:" + insurePay.getAmount()).build().insert(); } catch (Exception e) { - e.printStackTrace(); + log.error("增员支付回调异常:",e); throw new CustomException("增员支付回调异常"); } finally { Map map = Maps.newHashMap(); diff --git a/src/main/java/cn/timer/api/controller/insure/InsureApplicantController.java b/src/main/java/cn/timer/api/controller/insure/InsureApplicantController.java index fdaa89d..09296b6 100644 --- a/src/main/java/cn/timer/api/controller/insure/InsureApplicantController.java +++ b/src/main/java/cn/timer/api/controller/insure/InsureApplicantController.java @@ -46,6 +46,7 @@ import org.springframework.web.multipart.MultipartFile; @Transactional @RequestMapping(value = "/insureApplicant", produces = {"application/json"}) public class InsureApplicantController { + private static final Logger log = LoggerFactory.getLogger(InsureApplicantController.class); @PostMapping("/insureApplicationSetting") @ApiOperation(value = "设置投保人", httpMethod = "POST", notes = "投保申请") @@ -56,7 +57,7 @@ public class InsureApplicantController { params.updateById(); return ResultUtil.data(params); } catch (Exception e) { - e.printStackTrace(); + log.error("设置投保人异常:",e); throw new CustomException("设置投保人异常"); } } @@ -75,7 +76,7 @@ public class InsureApplicantController { } return ResultUtil.data(insureApplicant); } catch (Exception e) { - e.printStackTrace(); + log.error("获取投保人异常:",e); throw new CustomException("获取投保人异常"); } } @@ -107,7 +108,7 @@ public class InsureApplicantController { } return ResultUtil.data(insureApplicant); } catch (Exception e) { - e.printStackTrace(); + log.error("获取投保人异常:",e); throw new CustomException("获取投保人异常"); } } diff --git a/src/main/java/cn/timer/api/controller/insure/InsureContorll.java b/src/main/java/cn/timer/api/controller/insure/InsureContorll.java index aff53b9..075297a 100644 --- a/src/main/java/cn/timer/api/controller/insure/InsureContorll.java +++ b/src/main/java/cn/timer/api/controller/insure/InsureContorll.java @@ -399,7 +399,7 @@ public class InsureContorll { } return ResultUtil.error("投保错误"); }catch (Exception e){ - e.printStackTrace(); + log.error("投保异常:",e); throw new CustomException("投保异常"); } } @@ -468,7 +468,6 @@ public class InsureContorll { .createTime(new Date()) .insureStatus(3).policyId(insurePolicy.getId()).build().insert(); } catch (ParseException e) { - e.printStackTrace(); log.info("增员异常:policyDateStart:"+insureDto.getPolicyDateStart()+"policyDateEnd:"+insureDto.getPolicyDateEnd()); throw new CustomException("增员异常"); } @@ -486,7 +485,7 @@ public class InsureContorll { .returnCode(dataMap.get("errcode").toString()).returnMsg(dataMap.get("errmsg").toString()).policyId(insurePolicy.getId()).build().insert(); return ResultUtil.error(dataMap.get("errmsg").toString()); }catch (Exception e){ - e.printStackTrace(); + log.error("增员异常:",e); throw new CustomException("增员异常"); } } @@ -501,7 +500,7 @@ public class InsureContorll { map.put("total", insurePolicyMapper.totalPolicy(policyDto)); return ResultUtil.data(map); }catch (Exception e){ - e.printStackTrace(); + log.error("获取保单列表异常:",e); throw new CustomException("获取保单列表异常"); } } @@ -524,7 +523,7 @@ public class InsureContorll { // map.put("category",categoryList.stream().map(InsureUser::getBenefitOccupationCategory).toArray()); return ResultUtil.data(policyDto); }catch (Exception e){ - e.printStackTrace(); + log.error("获取保单信息异常:",e); throw new CustomException("获取保单信息异常"); } } @@ -615,7 +614,7 @@ public class InsureContorll { .createTime(new Date()) .status("1").insureStatus(3).policyId(insurePolicy.getId()).build().insert(); } catch (ParseException e) { - e.printStackTrace(); + log.error("获取保单信息异常:",e); } y.setIsInsure(1); y.insertOrUpdate(); @@ -630,7 +629,7 @@ public class InsureContorll { } return ResultUtil.data("成功"); }catch (Exception e){ - e.printStackTrace(); + log.error("保全替换异常:",e); throw new CustomException("保全替换异常"); } } @@ -661,20 +660,20 @@ public class InsureContorll { sos.write(b); } } catch (MalformedURLException e) { - e.printStackTrace(); + log.error("下载电子保单:",e); } catch (IOException e) { - e.printStackTrace(); + log.error("下载电子保单:",e); } finally { try { sos.close(); } catch (IOException e) { - e.printStackTrace(); + log.error("下载电子保单:",e); } try { bis.close(); } catch (IOException e) { - e.printStackTrace(); + log.error("下载电子保单:",e); } } } @@ -740,7 +739,7 @@ public class InsureContorll { return ResultUtil.success(); }catch (Exception e){ - e.printStackTrace(); + log.error("一键校验异常:",e); throw new CustomException("一键校验异常"); } } @@ -814,7 +813,8 @@ public class InsureContorll { try { y.setBirthday(dtf.parse(idNo.substring(6, 14))); } catch (ParseException e) { - e.printStackTrace(); + log.error("一键校验异常:",e); + throw new CustomException("一键校验异常"); } y.setZjNum(idNo); break; @@ -849,7 +849,8 @@ public class InsureContorll { List<KqglAssoLeaveRules> rul = KqglAssoLeaveRules.builder().build().selectList(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getOrgCode, orgCode)); } catch (IOException e) { - e.printStackTrace(); + log.error("一键校验异常:",e); + throw new CustomException("一键校验异常"); } List<String> message = allList.stream().filter(s -> s.getIsInsure() == 1).map(YgglMainEmp::getName).collect(Collectors.toList()); if (message.size() > 0) { @@ -916,7 +917,8 @@ public class InsureContorll { try { y.setBirthday(dtf.parse(idNo.substring(6, 14))); } catch (ParseException e) { - e.printStackTrace(); + log.error("导入用户:",e); + throw new CustomException("导入用户"); } y.setZjNum(idNo); break; @@ -951,7 +953,8 @@ public class InsureContorll { List<KqglAssoLeaveRules> rul = KqglAssoLeaveRules.builder().build().selectList(new QueryWrapper<KqglAssoLeaveRules>().lambda().eq(KqglAssoLeaveRules::getOrgCode, userBean.getOrgCode())); } catch (IOException e) { - e.printStackTrace(); + log.error("导入用户:",e); + throw new CustomException("导入用户"); } List<String> message = allList.stream().filter(s -> s.getIsInsure() == 1).map(YgglMainEmp::getName).collect(Collectors.toList()); if (message.size() > 0) { @@ -1145,7 +1148,8 @@ public class InsureContorll { InsureLog.builder().requestParam(JSONObject.toJSONString(map)).type(9).createTime(new Date()).requestType(2).returnBody(data).requestPath(policyDetailUrl) .returnCode(returnMap.get("errcode").toString()).returnMsg(returnMap.get("errmsg").toString()).policyId(policy.getId()).build().insert(); } catch (IOException e) { - e.printStackTrace(); + log.error("导入保单:",e); + throw new CustomException("导入保单"); } return ResultUtil.data("成功导入"); } @@ -1251,11 +1255,11 @@ public class InsureContorll { } return ResultUtil.data(userList); } catch (IOException e) { - e.printStackTrace(); + log.error("导入被保人异常:",e); } return ResultUtil.error("导入失败"); }catch (Exception e) { - e.printStackTrace(); + log.error("导入被保人异常:",e); throw new CustomException("导入被保人异常"); } } @@ -1294,7 +1298,7 @@ public class InsureContorll { .returnMsg("请求投保支付").policyId(insurePolicy.getId()).build().insert(); return ResultUtil.data(builder.build()); } catch (URISyntaxException e) { - e.printStackTrace(); + log.error("请求错误:",e); return ResultUtil.error("请求错误"); } } else { @@ -1313,7 +1317,7 @@ public class InsureContorll { return ResultUtil.data(importPayInfo.get("pay_url").toString() + "&jump_url=" + base_api_url + "/callBack/policy/payStatus?policyId=" + insurePolicy.getId() + "¬ify_url=" + base_api_url + "/callBack/policy/batchPayCallback"); } }catch (Exception e){ - e.printStackTrace(); + log.error("重新发起支付异常:",e); throw new CustomException("重新发起支付异常"); } @@ -1371,8 +1375,8 @@ public class InsureContorll { /*生成一个支付链接返回到前台*/ return ResultUtil.error("取消失败,请重新再来"); }catch (Exception e){ - e.printStackTrace(); - throw new CustomException("重新发起支付异常"); + log.error("取消支付异常:",e); + throw new CustomException("取消支付异常"); } } @@ -1425,13 +1429,15 @@ public class InsureContorll { .returnCode(dataMap.get("errcode").toString()).returnMsg(dataMap.get("errmsg").toString()).fileUrl(url).build().insert(); /*文件流base64*/ } catch (IOException e) { - e.printStackTrace(); + log.error("生成投保文件异常:",e); + throw new CustomException("生成投保文件异常"); } finally { try { xssfWorkbook.close(); byteArrayOutputStream.close(); } catch (IOException e) { - e.printStackTrace(); + log.error("生成投保文件异常:",e); + throw new CustomException("生成投保文件异常"); } } @@ -1483,13 +1489,15 @@ public class InsureContorll { .returnCode(dataMap.get("errcode").toString()).returnMsg(dataMap.get("errmsg").toString()).fileUrl(url).build().insert(); /*文件流base64*/ } catch (IOException e) { - e.printStackTrace(); + log.error("生成保全增员文件异常:",e); + throw new CustomException("生成保全增员文件异常"); } finally { try { xssfWorkbook.close(); byteArrayOutputStream.close(); } catch (IOException e) { - e.printStackTrace(); + log.error("生成保全增员文件异常:",e); + throw new CustomException("生成保全增员文件异常"); } } return url; @@ -1554,13 +1562,15 @@ public class InsureContorll { .returnCode(dataMap.get("errcode").toString()).returnMsg(dataMap.get("errmsg").toString()).fileUrl(url).build().insert(); /*文件流base64*/ } catch (IOException e) { - e.printStackTrace(); + log.error("生成保全替换文件异常:",e); + throw new CustomException("生成保全替换文件异常"); } finally { try { xssfWorkbook.close(); byteArrayOutputStream.close(); } catch (IOException e) { - e.printStackTrace(); + log.error("生成保全替换文件异常:",e); + throw new CustomException("生成保全替换文件异常"); } } return url; diff --git a/src/main/java/cn/timer/api/utils/ExcelUtils.java b/src/main/java/cn/timer/api/utils/ExcelUtils.java index 272ee3e..c152628 100644 --- a/src/main/java/cn/timer/api/utils/ExcelUtils.java +++ b/src/main/java/cn/timer/api/utils/ExcelUtils.java @@ -504,7 +504,7 @@ public class ExcelUtils { } else if (xssfCell.getCellTypeEnum() == CellType.BOOLEAN) { return String.valueOf(xssfCell.getBooleanCellValue()); } else { - return xssfCell.getStringCellValue(); + return xssfCell.getStringCellValue().trim(); } } } diff --git a/src/main/java/cn/timer/api/utils/aliyun/OSSUtil.java b/src/main/java/cn/timer/api/utils/aliyun/OSSUtil.java index f9f0f9c..182ce8a 100644 --- a/src/main/java/cn/timer/api/utils/aliyun/OSSUtil.java +++ b/src/main/java/cn/timer/api/utils/aliyun/OSSUtil.java @@ -8,11 +8,15 @@ import java.util.*; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; +import cn.timer.api.config.sftp.SftpConfiguration; import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.jcraft.jsch.ChannelSftp; +import io.swagger.models.auth.In; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.bouncycastle.jce.exception.ExtIOException; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; @@ -77,6 +81,11 @@ public class OSSUtil { @Value("${zip.path}") private String zipPath; + + @Autowired + private SftpConfiguration config; + + /** * 1.创建储存空间 sout控制台輸出 储存空间名 * @@ -594,10 +603,10 @@ public class OSSUtil { String Suffix; try { File folder = new File(zipPath); - if(!folder.exists()&& !folder .isDirectory()){ + if (!folder.exists() && !folder.isDirectory()) { folder.mkdirs(); } - fos = new FileOutputStream(zipPath+fileName); + fos = new FileOutputStream(zipPath + fileName); zos = new ZipOutputStream(fos); OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); for (String m : urlMap.keySet()) { @@ -641,4 +650,68 @@ public class OSSUtil { } return fileName; } + + /** + * @Author wgd + * @Description 获取OSS文件字符流 + * @Date 2021/12/2 18:06 + **/ + private Map getOssFileList(Map<String, String> urlMap) throws IOException { + Map<String, InputStream> map = Maps.newHashMap(); + BufferedInputStream inputStream; + OSSObject ossObject; + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); + for (String m : urlMap.keySet()) { + ossObject = ossClient.getObject(bucketName, urlMap.get(m)); + inputStream = new BufferedInputStream(ossObject.getObjectContent()); + String suffix = urlMap.get(m).substring(urlMap.get(m).lastIndexOf(".")); + map.put(m + urlMap.get(m), inputStream); + } + ossClient.shutdown(); + return map; + } + + private Map getFtpFileList(Map<String, String> urlMap) throws IOException { + Map<String, InputStream> map = Maps.newHashMap(); + InputStream inputStream; + for (String m : urlMap.keySet()) { + File file = new File(urlMap.get(m)); + inputStream = new FileInputStream(file); + map.put(m, inputStream); + } + return map; + } + + public String newZip(Map<String, String> ossMap, Map<String, String> ftpMap) throws IOException { + Map<String, InputStream> ossNewMap = getOssFileList(ossMap); + Map<String, InputStream> ftpNewMap = getFtpFileList(ftpMap); + ossNewMap.putAll(ftpNewMap); + DateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String fileName = dateFormat.format(new Date()) + ".zip"; + FileOutputStream fos = null; + ZipOutputStream zos = null; + InputStream inputStream = null; + for (String m : ossNewMap.keySet()) { + + ZipEntry entry = new ZipEntry(m); + try { + zos.putNextEntry(entry); + int nNumber; + byte[] buffer = new byte[4096]; + while ((nNumber = ossNewMap.get(m).read(buffer)) > 0) { + zos.write(buffer, 0, nNumber); + } + } catch (IOException e) { + throw new IOException("写入失败");//TODO 应作为自定义异常 + } finally { + try { + inputStream.close(); + } catch (IOException e) { + throw new IOException("关闭失败");//TODO 应作为自定义异常 + } + } + } + return fileName; + } + } diff --git a/src/main/java/cn/timer/api/utils/schedule/RemindUtil.java b/src/main/java/cn/timer/api/utils/schedule/RemindUtil.java index aac3f69..a832792 100644 --- a/src/main/java/cn/timer/api/utils/schedule/RemindUtil.java +++ b/src/main/java/cn/timer/api/utils/schedule/RemindUtil.java @@ -107,4 +107,4 @@ public class RemindUtil implements SchedulingConfigurer { return new Exception().getStackTrace()[0].getMethodName(); } -} \ No newline at end of file +} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 0389e6b..c4a7097 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,4 +1,4 @@ spring: profiles: - active: test - #active: '@environment@' \ No newline at end of file + active: dev + #active: '@environment@' -- libgit2 0.26.0