From d37bf55e27b7edb61037bccde6cabeda1ddec6b7 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期二, 30 七月 2024 15:54:22 +0800 Subject: [PATCH] git ch --- server/service/src/main/java/com/doumee/core/utils/Constants.java | 292 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 273 insertions(+), 19 deletions(-) diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java index ccb4265..3f7b900 100644 --- a/server/service/src/main/java/com/doumee/core/utils/Constants.java +++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java @@ -1,13 +1,16 @@ package com.doumee.core.utils; +import cn.hutool.core.io.IoUtil; import cn.hutool.core.util.IdcardUtil; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.dao.business.dto.CountCyclePriceDTO; -import com.doumee.dao.business.model.Solutions; +import com.doumee.dao.business.model.*; +import com.doumee.dao.business.vo.ChangeDealTypeVO; import com.doumee.dao.business.vo.CountCyclePriceVO; import io.swagger.models.auth.In; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.compress.archivers.zip.Zip64Mode; import org.apache.commons.compress.archivers.zip.ZipArchiveEntry; import org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream; import org.apache.commons.lang3.StringUtils; @@ -94,7 +97,73 @@ public static final String DU_FILE ="DU_FILE" ; public static final String SIGN_DONE_NOTIFY_URL = "SIGN_DONE_NOTIFY_URL"; public static final int FOUR = 4; + public static final String COMPANY_PHONE_AUTH ="COMPANY_PHONE_AUTH" ; + + /** + * 鑾峰彇鐢宠鍗曟椂闂村垪鏍囬 + * @param type 0寮�濮嬫椂闂� 1鎴鏃堕棿 + * @param model + * @return + */ + public static String getApplyTimeTitle(int type, InsuranceApply model){ + if(type ==1){ + if(Constants.equalsInteger(model.getSolutionType(),Constants.ONE)){ + return Constants.equalsInteger(model.getUnionApplyTbdStatus(),Constants.THREE)?"淇濋櫓鐢熸晥璧锋湡":"鏈熸湜淇濋櫓鐢熸晥璧锋湡"; + }else{ + return Constants.equalsInteger(model.getStatus(), InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())?"淇濋櫓鐢熸晥璧锋湡":"鏈熸湜淇濋櫓鐢熸晥璧锋湡"; + } + }else{ + if(Constants.equalsInteger(model.getSolutionType(),Constants.ONE)){ + return Constants.equalsInteger(model.getUnionApplyTbdStatus(),Constants.THREE)?"淇濋櫓鐢熸晥姝㈡湡":"棰勮鐢熸晥姝㈡湡"; + }else{ + return Constants.equalsInteger(model.getStatus(), InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())?"淇濋櫓鐢熸晥姝㈡湡":"棰勮鐢熸晥姝㈡湡"; + } + } + + } + + /** + * 鑾峰彇鎵规敼鍗曟椂闂存爣棰樺垪 + * @param type 0鏇存崲娲鹃仯鍗曚綅 1鍔犱繚 0鍑忎繚 + * @param model + * @return + */ + public static String getChangeApplyTimeTitle(int type, ApplyChange model){ + if(type ==2){ + return Constants.equalsInteger(model.getStatus(), ApplyChangeStatus.APPROVE.getKey())?"鎵瑰崟鐢熸晥鏈�":"鏈熸湜鎵瑰崟鐢熸晥鏈�"; + }else if(type ==1){ + return Constants.equalsInteger(model.getStatus(), ApplyChangeStatus.APPROVE.getKey())?"鎵瑰鐢熸晥璧锋湡":"鏈熸湜鎵瑰鐢熸晥璧锋湡"; + }else{ + return Constants.equalsInteger(model.getStatus(), ApplyChangeStatus.APPROVE.getKey())?"鎵瑰噺鐢熸晥璧锋湡":"鏈熸湜鎵瑰噺鐢熸晥璧锋湡"; + } + } + + + public static String getApplyTimeTitle(int type, UnionApply model){ + if(type ==1){ + return Constants.equalsInteger(model.getStatus(), UnionApplyStatus.FINISH.getKey())?"淇濋櫓鐢熸晥璧锋湡":"鏈熸湜淇濋櫓鐢熸晥璧锋湡"; + }else{ + return Constants.equalsInteger(model.getStatus(), UnionApplyStatus.FINISH.getKey())?"淇濋櫓鐢熸晥姝㈡湡":"棰勮鐢熸晥姝㈡湡"; + } + + } + + /** + * 鑾峰彇鎵规敼鍗曟椂闂存爣棰樺垪 + * @param type 0鏇存崲娲鹃仯鍗曚綅 1鍔犱繚 0鍑忎繚 + * @param model + * @return + */ + public static String getChangeApplyTimeTitle(int type, UnionChange model){ + if(type ==2){ + return Constants.equalsInteger(model.getStatus(), UnionChangeStatus.FINISH.getKey())?"鎵瑰崟鐢熸晥鏈�":"鏈熸湜鎵瑰崟鐢熸晥鏈�"; + }else if(type ==1){ + return Constants.equalsInteger(model.getStatus(), UnionChangeStatus.FINISH.getKey())?"鎵瑰鐢熸晥璧锋湡":"鏈熸湜鎵瑰鐢熸晥璧锋湡"; + }else{ + return Constants.equalsInteger(model.getStatus(), UnionChangeStatus.FINISH.getKey())?"鎵瑰噺鐢熸晥璧锋湡":"鏈熸湜鎵瑰噺鐢熸晥璧锋湡"; + } + } /** * 浼佷笟鏁版嵁鏉ユ簮 0骞冲彴娉ㄥ唽 1鍚庡彴瀵煎叆 */ @@ -229,6 +298,131 @@ return countCyclePriceVO; } + //鏌ヨ姣忎釜鎵规敼鍛ㄦ湡璐圭敤 + public static BigDecimal calculateSingleCycleFee(Solutions solutions,Date startTime){ + if(Constants.equalsInteger(solutions.getTimeUnit(),solutions.getInsureCycleUnit())){ + return solutions.getPrice(); + } + CountCyclePriceVO countCyclePriceVO = Constants.countPriceVO(startTime,solutions); + //鍗曡璐瑰懆鏈熺殑璐圭敤 + BigDecimal singleFee = Constants.singleCycleFee(solutions,startTime,countCyclePriceVO.getEndDate()); + return singleFee; + } + + + /** + * 鍔犲噺淇濅笟鍔′娇鐢� + * 鍒ゆ柇鏄惁澶勪簬 鍛ㄦ湡鑺傜偣 + * 缁撴潫鏃ユ湡 鍏ョ殑鏃ユ湡涓烘壒鍗曟棩鏈� 鍓嶄竴澶� 23:59:59 + * @param solutions + * @param startTime + * @param endTime + * @return 0=鏃犲懆鏈熻垂鐢紱1=鏈夊懆鏈熻垂鐢紱2鏃犲懆鏈熻垂鐢� 涓� 鏁版嵁鏍囪鏃犳晥 + */ + public static ChangeDealTypeVO calculateRetreatCost(Solutions solutions , Date startTime , Date endTime){ + ChangeDealTypeVO changeDealTypeVO = new ChangeDealTypeVO(); + //鏌ヨ姣忎釜鍛ㄦ湡鐨勮垂鐢� + changeDealTypeVO.setSinglePrice(Constants.calculateSingleCycleFee(solutions,startTime)); + + //鎵瑰崟鏃ユ湡涓哄紑濮嬫棩鏈熺殑绗竴澶� 鍒欐爣璁版槑缁嗚褰曚负 鏃犳晥鏁版嵁 鎴栬�� 寮�濮嬫椂闂村ぇ浜庡綋鍓嶆椂闂� 鐩存帴杩斿洖 鏁版嵁鏍囪鏃犳晥 + if(startTime.getTime()>endTime.getTime() + || startTime.getTime() > System.currentTimeMillis()){ + changeDealTypeVO.setChangeStatus(Constants.TWO); + return changeDealTypeVO; + } + //鑾峰彇鏄ㄦ棩鏃ユ湡缁撴潫 涓哄疄闄呭噺淇濈粨鏉熸棩鏈熉� + Boolean isOver = true; + if(solutions.getInsureCycleUnit().equals(InsureCycleUnit.DAY.getValue())){ + //鏂规 璁¤垂鍛ㄦ湡鍜屾壒鏀瑰懆鏈� 鐩稿悓 鐩存帴杩斿洖 鏈夊懆鏈熻垂鐢� + changeDealTypeVO.setChangeStatus(Constants.ONE); + return changeDealTypeVO; + }else if(solutions.getInsureCycleUnit().equals(InsureCycleUnit.HALF_MONTH.getValue())){ + //鍗婃湀鍛ㄦ湡 浠�15.5璁$畻 鐢变簬15.5 鏃犳硶鏁撮櫎 鎵�浠ラ渶瑕佺壒娈婂鐞� + //濂囨暟/鍋舵暟 鐢ㄤ簬娣诲姞澶╂暟 濡傛灉鏄鏁� + BigDecimal cycleHalfMonth = new BigDecimal(15.5); + Integer cycle = 1; + while(isOver){ + //鑾峰彇鍛ㄦ湡鍚庣殑缁撴潫鏃堕棿 甯︽椂鍒嗙 23:59:59 + Date cycleEndTime = DateUtil.getMontageDate(DateUtil.afterDateByType(startTime,0, cycleHalfMonth.multiply(new BigDecimal(cycle)).setScale(2,RoundingMode.HALF_UP).intValue() + ),2); + if(cycleEndTime.getTime()>=endTime.getTime()){ + isOver = false; + //褰撹璐瑰懆鏈熺殑缁撴潫鏃ユ湡 鍒氬ソ 涓庢壒鍗曟棩鏈熺殑缁撴潫鏃ユ湡鐩哥瓑 鍒� 涓嶉渶瑕佹墸闄ゆ壒鍗曞懆鏈熻垂鐢� + if(cycleEndTime.getTime()==endTime.getTime()){ + changeDealTypeVO.setChangeStatus(Constants.ZERO); + }else{ + changeDealTypeVO.setChangeStatus(Constants.ONE); + } + return changeDealTypeVO; + } + cycle = cycle + 1; + } + }else if(solutions.getInsureCycleUnit().equals(InsureCycleUnit.MONTH.getValue())){ + //鎵h垂鍛ㄦ湡涓烘湀 + Integer cycle = 1; + while(isOver){ + //鑾峰彇鍛ㄦ湡鍚庣殑缁撴潫鏃堕棿 甯︽椂鍒嗙 23:59:59 + Date cycleEndTime = DateUtil.getMontageDate(DateUtil.afterDateByType(startTime,1,cycle),2); + //褰撳墠鍛ㄦ湡 澶т簬绛変簬 鎵瑰崟缁撴潫鏃ユ湡鏃� 锛� 鍒欑粨鏉熸祦绋� + if(cycleEndTime.getTime()>=endTime.getTime()){ + isOver = false; + //褰撹璐瑰懆鏈熺殑缁撴潫鏃ユ湡 鍒氬ソ 涓庢壒鍗曟棩鏈熺殑缁撴潫鏃ユ湡鐩哥瓑 鍒� 涓嶉渶瑕佹墸闄ゆ壒鍗曞懆鏈熻垂鐢� + if(cycleEndTime.getTime()==endTime.getTime()){ + changeDealTypeVO.setChangeStatus(Constants.ZERO); + }else{ + changeDealTypeVO.setChangeStatus(Constants.ONE); + } + return changeDealTypeVO; + } + cycle = cycle + 1; + } + }else if(solutions.getTimeUnit().equals(TimeUnit.QUARTER.getValue())){ + //鎵h垂鍛ㄦ湡涓哄搴� + Integer cycle = 3; + while(isOver){ + //鑾峰彇鍛ㄦ湡鍚庣殑缁撴潫鏃堕棿 甯︽椂鍒嗙 23:59:59 + Date cycleEndTime = DateUtil.getMontageDate(DateUtil.afterDateByType(startTime,1,cycle),2); + //褰撳墠鍛ㄦ湡 澶т簬绛変簬 鎵瑰崟缁撴潫鏃ユ湡鏃� 锛� 鍒欑粨鏉熸祦绋� + if(cycleEndTime.getTime()>=endTime.getTime()){ + isOver = false; + //褰撹璐瑰懆鏈熺殑缁撴潫鏃ユ湡 鍒氬ソ 涓庢壒鍗曟棩鏈熺殑缁撴潫鏃ユ湡鐩哥瓑 鍒� 涓嶉渶瑕佹墸闄ゆ壒鍗曞懆鏈熻垂鐢� + if(cycleEndTime.getTime()==endTime.getTime()){ + changeDealTypeVO.setChangeStatus(Constants.ZERO); + }else{ + changeDealTypeVO.setChangeStatus(Constants.ONE); + } + return changeDealTypeVO; + } + cycle = cycle + 3; + } + }else if(solutions.getTimeUnit().equals(TimeUnit.HALF_YEAR.getValue())){ + //鎵h垂鍛ㄦ湡涓哄崐骞� + Integer cycle = 3; + while(isOver){ + //鑾峰彇鍛ㄦ湡鍚庣殑缁撴潫鏃堕棿 甯︽椂鍒嗙 23:59:59 + Date cycleEndTime = DateUtil.getMontageDate(DateUtil.afterDateByType(startTime,1,cycle),2); + //褰撳墠鍛ㄦ湡 澶т簬绛変簬 鎵瑰崟缁撴潫鏃ユ湡鏃� 锛� 鍒欑粨鏉熸祦绋� + if(cycleEndTime.getTime()>=endTime.getTime()){ + isOver = false; + //褰撹璐瑰懆鏈熺殑缁撴潫鏃ユ湡 鍒氬ソ 涓庢壒鍗曟棩鏈熺殑缁撴潫鏃ユ湡鐩哥瓑 鍒� 涓嶉渶瑕佹墸闄ゆ壒鍗曞懆鏈熻垂鐢� + if(cycleEndTime.getTime()==endTime.getTime()){ + changeDealTypeVO.setChangeStatus(Constants.ZERO); + }else{ + changeDealTypeVO.setChangeStatus(Constants.ONE); + } + return changeDealTypeVO; + } + cycle = cycle + 3; + } + } + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"璁$畻鎵瑰崟鍛ㄦ湡淇℃伅寮傚父"); + + } + + + + + // public static CountCyclePriceVO countPriceVO(Date startDate, Solutions solutions){ // CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO(); @@ -259,7 +453,7 @@ if(StringUtils.isBlank(idCard)){ return 2; } - Pattern pattern = Pattern.compile("\\d{17}[\\d|x]"); // 瀹氫箟韬唤璇佸彿鐮佹牸寮忕殑姝e垯琛ㄨ揪寮� + Pattern pattern = Pattern.compile("\\d{17}[\\d|x|X]"); // 瀹氫箟韬唤璇佸彿鐮佹牸寮忕殑姝e垯琛ㄨ揪寮� Matcher matcher = pattern.matcher(idCard); Integer sex = 0; if (matcher.matches()) { @@ -274,6 +468,7 @@ } return sex; } + /** * 鐘舵�� 0宸蹭繚瀛樸��1寰呭鏍搞��2瀹℃牳閫氳繃銆�3閫�鍥炰慨鏀广��4瀹℃牳椹冲洖銆�5寰呮湇鍔℃満鏋勭‘璁ゃ��6鏈嶅姟鏈烘瀯鎷掔粷銆�7宸插垎閰嶆湇鍔℃満鏋勩��8璇婃柇涓� @@ -531,7 +726,7 @@ // 鏅�氭柟娉� public static String getName(int index) { - for (ProjectRecord c : ProjectRecord.values()) { + for (MultiFile c : MultiFile.values()) { if (c.getKey() == index) { return c.name; } @@ -541,7 +736,7 @@ // 鏅�氭柟娉� public static String getInfo(int index) { - for (ProjectRecord c : ProjectRecord.values()) { + for (MultiFile c : MultiFile.values()) { if (c.getKey() == index) { return c.noteinfo; } @@ -632,9 +827,12 @@ } public static void main(String[] args) { - - System.out.println(IdcardUtil.isValidCard("340621199310134818")); - System.out.println(IdcardUtil.isValidCard("341621199310134818")); + System.out.println(IdcardUtil.isValidCard("342623199201150101")); + System.out.println(IdcardUtil.isValidCard("342623199201150102")); + System.out.println(IdcardUtil.isValidCard("342623199201150103")); + System.out.println(IdcardUtil.isValidCard("342623199201150104")); +// System.out.println(IdcardUtil.isValidCard("340621199310134818")); +// System.out.println(IdcardUtil.isValidCard("341621199310134818")); // System.out.println("{\"companyName\":\"搴斿疂绉戞妧\",\"endtime\":\"2024-03-01 17:19:00\",\"erpId\":\"4D40185D5BC74A13821BE46EAF8B4179\",\"erpWithVisitDTOList\":[],\"faceImg\":\"20240304/1709518170325_742.jpg\",\"idcardNo\":\"342501199609300535\",\"idcardType\":0,\"name\":\"榛勬檵\",\"phone\":\"17756328697\",\"reason\":\"鎺㈤櫓\",\"receptMemberId\":\"E7E514BD7DE3F27CE0530B630A0AEAE0\",\"starttime\":\"2024-03-01 13:18:00\"}"); } @@ -783,7 +981,8 @@ WTBYTH(24, "宸查��鍥�"), WTBYGB(25, "宸插叧闂�"), //2024骞�4鏈�25鏃�15:17:13 淇敼 鎶曚繚涓� = 銆� 鎵规敼鐢宠涓� - WTBTBZ(26, "鎵规敼鐢宠涓�"), + //2024-5-21 14:04:10 淇敼 鎵规敼鐢宠涓�= 銆嬫姇淇濅腑 + WTBTBZ(26, "鎶曚繚涓�"), WTBBZZ(27, "淇濋殰涓�"), ; // 鎴愬憳鍙橀噺 @@ -1567,7 +1766,7 @@ CLOSE(6, "宸插叧闂�"), CHECHED_PASSED(7, "瀹℃牳閫氳繃"), PALTFORM_CHECK_PASS_NO(8, "瀹℃牳涓嶉�氳繃"), - WTB_TOUBAOING(9, "鎶曚繚涓�"), + WTB_TOUBAOING(9, "鎵规敼鐢宠涓�"), ; // 鎴愬憳鍙橀噺 private String name; @@ -2005,7 +2204,13 @@ InputStream inStream = null; OutputStream os = null; try { - String tempDir = System.getProperty("java.io.tmpdir")+fileName; + String tempDir = "C:\\hj\\jars\\temp\\"; + File f = new File(tempDir); + if(!f.exists() ){ + f.mkdirs(); + } + tempDir += fileName; + System.out.println(url+"================="+tempDir); file = new File(tempDir); //涓嬭浇 urlfile = new URL(url); @@ -2031,25 +2236,44 @@ } } }catch (Exception e){ - + e.printStackTrace(); } return file; } - public static void packFilesToZip(List<File> files, ServletOutputStream os) throws IOException { - try (ZipArchiveOutputStream zipOutputStream = new ZipArchiveOutputStream(os)) { + public static void packFilesToZip(List<File> files, OutputStream os) throws IOException { + try { + ZipArchiveOutputStream zipOutputStream = new ZipArchiveOutputStream(os); + zipOutputStream.setUseZip64(Zip64Mode.AsNeeded); for (File file : files) { + if(!file.exists()){ + System.out.println("===鏂囦欢涓嶅瓨鍦�======="+file.getPath()); + continue; + }else{ + System.out.println("===鏂囦欢瀛樺湪======="+file.getPath()); + } ZipArchiveEntry entry = new ZipArchiveEntry(file.getName()); zipOutputStream.putArchiveEntry(entry); - try (FileInputStream fileInputStream = new FileInputStream(file)) { - byte[] buffer = new byte[1024]; - int length; - while ((length = fileInputStream.read(buffer)) > 0) { - zipOutputStream.write(buffer, 0, length); - } + FileInputStream fileInputStream = new FileInputStream(file); + byte[] buffer = new byte[1024]; + int length; + while ((length = fileInputStream.read(buffer)) > 0) { + zipOutputStream.write(buffer, 0, length); } zipOutputStream.closeArchiveEntry(); + zipOutputStream.flush(); + IoUtil.close(fileInputStream); file.delete(); + } + }catch (Exception e){ + throw new BusinessException(ResponseStatus.EXPORT_EXCEL_ERROR.getCode(),"瀵逛笉璧凤紝涓嬭浇鍘嬬缉鏂囦欢澶辫触"); + }finally { + if (os != null) { + try { + os.close(); + } catch (IOException e) { + e.printStackTrace(); + } } } } @@ -2220,6 +2444,36 @@ } } + public static BigDecimal singleCycleFee(Solutions solutions,Date startTime ,Date endTime){ + Integer countDays = DateUtil.daysBetweenDates(endTime, startTime) + 1; + Constants.TimeUnit timeUnit = Constants.TimeUnit.getTimeUnit(solutions.getTimeUnit()); + BigDecimal fee = solutions.getPrice(); + if(solutions.getTimeUnit().equals(solutions.getInsureCycleUnit())){ + return fee; + }else{ + if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.DAY.getValue())){ + //澶╀负鎵规敼鍗曚綅 + return fee.divide(new BigDecimal(countDays),2, RoundingMode.HALF_UP); + }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_MONTH.getValue())) { + //鏍规嵁鎶曚繚鍛ㄦ湡 瀹氫箟鐨� 姣忎釜鍛ㄦ湡 = X涓� 鍗婃湀鍛ㄦ湡 杩涜璁$畻 + // 鎬婚噾棰� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� + return fee.divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP); + }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.MONTH.getValue())) { + // 鎬婚噾棰� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 2 + return fee.multiply(new BigDecimal(2)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP); + }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.QUARTER.getValue())) { + //瀛e害涓烘壒鏀瑰崟浣� + // 鎬婚噾棰� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 6 + return fee.multiply(new BigDecimal(6)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP); + }else if(solutions.getInsureCycleUnit().equals(Constants.InsureCycleUnit.HALF_YEAR.getValue())) { + //鍗婂勾涓烘壒鏀瑰崟浣� + // 鎬婚噾棰� * 浜х敓璐圭敤鐨勫懆鏈� / 鎶曚繚鍛ㄦ湡瀹氫箟鐨� 鍗婃湀鍛ㄦ湡鏁� * 6 + return fee.multiply(new BigDecimal(12)).divide(new BigDecimal(timeUnit.getCoefficient()),2, RoundingMode.HALF_UP); + }else { + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏂规閰嶇疆閿欒"); + } + } + } } -- Gitblit v1.9.3