From 02bc3bfe47e3d5311a0bb041c94e70a34b1ca73c Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期二, 09 四月 2024 09:03:01 +0800 Subject: [PATCH] git ch --- server/service/src/main/java/com/doumee/core/utils/DateUtil.java | 85 ++++++++++++++------ server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 10 ++ server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java | 11 ++ server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 14 +++ server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java | 72 +++++++++++------- server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java | 4 server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java | 5 + server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java | 11 ++ 8 files changed, 152 insertions(+), 60 deletions(-) diff --git a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java index a56ff98..893375e 100644 --- a/server/service/src/main/java/com/doumee/core/utils/DateUtil.java +++ b/server/service/src/main/java/com/doumee/core/utils/DateUtil.java @@ -2995,6 +2995,21 @@ return calendar.getTime(); } + /** + * 鑾峰彇鎸囧畾鏃ユ湡鐨勪笅涓湀绗竴澶� + * @param date + * @return + */ + public static Date getNextMonthFirst(Date date){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.MONTH, 1); // 灏嗘棩鍘嗙殑鏈堜唤澧炲姞1 + calendar.set(Calendar.DAY_OF_MONTH, 1); // 璁剧疆涓轰笅涓湀鐨勭涓�澶� + return calendar.getTime(); + } + + + public static String afterDateToStr(Integer days){ Date date = new Date(); @@ -3142,38 +3157,56 @@ // System.out.println(DateUtil.calculateBetween(DateUtil.StringToDate("2024-02-29 23:59:59"),DateUtil.StringToDate("2024-02-01 00:00:00"),0)); - System.out.println( - DateUtil.DateToStr( +// System.out.println( +// DateUtil.DateToStr( +// +// DateUtil.getMontageDate(DateUtil.StringToDate("2024-02-29 21:59:59"),1) ,"yyyy-MM-dd HH:mm:ss" +// ) +// ); +// +// +// +// System.out.println( +// +// DateUtil.DateToStr( +// +// DateUtil.getMontageDate(DateUtil.StringToDate("2024-02-29 21:59:59"),2) ,"yyyy-MM-dd HH:mm:ss" +// ) +// +// ); +// +// System.out.println( +// +// DateUtil.DateToStr( +// +// DateUtil.getMontageDate(DateUtil.StringToDate("2024-02-29 21:59:59"),3) ,"yyyy-MM-dd HH:mm:ss" +// ) - DateUtil.getMontageDate(DateUtil.StringToDate("2024-02-29 21:59:59"),1) ,"yyyy-MM-dd HH:mm:ss" - ) - ); - - - - System.out.println( - - DateUtil.DateToStr( - - DateUtil.getMontageDate(DateUtil.StringToDate("2024-02-29 21:59:59"),2) ,"yyyy-MM-dd HH:mm:ss" - ) - - ); - - System.out.println( - - DateUtil.DateToStr( - - DateUtil.getMontageDate(DateUtil.StringToDate("2024-02-29 21:59:59"),3) ,"yyyy-MM-dd HH:mm:ss" - ) - - ); - +// ); +// // Calendar calo = Calendar.getInstance(); // Calendar caln = Calendar.getInstance(); // ,"yyyy-MM-dd HH:mm:ss" // caln.setTime(DateUtil.StringToDate("2024-02-29 23:59:59")); // calo.setTime(DateUtil.StringToDate("2024-02-01 00:00:00")); // System.out.println( DateUtil.calculateDaysBetweenDates(calo,caln)); + + System.out.println( + DateUtil.DateToStr( + DateUtil.getNextMonthFirst(new Date()) + ,"yyyy-MM-dd HH:mm:ss") + + ); + System.out.println( + DateUtil.DateToStr( + DateUtil.getNextMonthFirst( + DateUtil.StringToDate("2024-12-29 21:59:59") + ) + ,"yyyy-MM-dd HH:mm:ss") + + ); + + + } diff --git a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java index 0e89d62..4113d79 100644 --- a/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java +++ b/server/service/src/main/java/com/doumee/dao/business/model/ApplyChagneDetail.java @@ -99,6 +99,11 @@ @ExcelColumn(name="鍘熷伐绉嶇紪鐮�") private Integer oldWorktypeId; + + @ApiModelProperty(value = "鍗曚环(姣忔棩)", example = "1") + private BigDecimal price; + + @ApiModelProperty(value = "鍛樺伐鍚嶇О") @TableField(exist = false) private String memberName; diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java index 296b47c..75cef66 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java @@ -1096,6 +1096,8 @@ if (applyChange.getValidTime().compareTo(applyDetail.getEndTime()) > 0) { throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍑忎繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚繚闅滄棩鏈熻嚦锛氥��" + applyDetail.getEndTime() + "銆戞棤娉曢�氳繃鏈鐢宠"); } + + applyChagneDetail.setPrice(applyDetail.getPrice()); applyChagneDetail.setCreateDate(new Date()); applyChagneDetail.setCreator(loginUserInfo.getId()); applyChagneDetail.setIsdeleted(Constants.ZERO); @@ -1149,6 +1151,13 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄦ棩鏈熷啿绐佺殑鏁版嵁"); } + ApplyDetail applyDetail = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>() + .lambda() + .eq(ApplyDetail::getApplyId,applyChange.getApplyId()).last("limit 1")); + if(Objects.isNull(applyDetail)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "淇濆崟涓湭瀛樺湪鏄庣粏璁板綍"); + } + applyChagneDetail.setPrice(applyDetail.getPrice()); applyChagneDetail.setCreateDate(new Date()); applyChagneDetail.setCreator(loginUserInfo.getId()); applyChagneDetail.setIsdeleted(Constants.ZERO); @@ -1318,6 +1327,7 @@ && applyChagneDetail.getOldWorktypeId().equals(applyChagneDetail.getWorktypeId())){ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞崲鍘傛暟鎹浉鍚岋紒"); } + applyChagneDetail.setPrice(applyDetail.getPrice()); applyChagneDetail.setCreateDate(new Date()); applyChagneDetail.setCreator(loginUserInfo.getId()); applyChagneDetail.setIsdeleted(Constants.ZERO); diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java index 78bbd14..e6f06b9 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/DuWorktypeServiceImpl.java @@ -7,9 +7,11 @@ import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.DispatchUnitMapper; +import com.doumee.dao.business.DuSolutionMapper; import com.doumee.dao.business.DuWorktypeMapper; import com.doumee.dao.business.WorktypeMapper; import com.doumee.dao.business.model.DispatchUnit; +import com.doumee.dao.business.model.DuSolution; import com.doumee.dao.business.model.DuWorktype; import com.doumee.dao.business.model.Worktype; import com.doumee.service.business.DuWorktypeService; @@ -41,6 +43,9 @@ @Autowired private DispatchUnitMapper dispatchUnitMapper; + @Autowired + private DuSolutionMapper duSolutionMapper; + @Override public Integer create(DuWorktype duWorktype) { duWorktypeMapper.insert(duWorktype); @@ -61,7 +66,11 @@ throw new BusinessException(ResponseStatus.DATA_EMPTY); } duWorktypeMapper.deleteById(id); - + if(duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda() + .eq(DuWorktype::getDispatchUnitId,dispatchUnit.getId()) + .eq(DuWorktype::getDuSolutionId,dbDuWorkType.getDuSolutionId()))<=0){ + duSolutionMapper.deleteById(dbDuWorkType.getDuSolutionId()); + } if(duWorktypeMapper.selectCount(new QueryWrapper<DuWorktype>().lambda() .eq(DuWorktype::getDispatchUnitId,dispatchUnit.getId()) .eq(DuWorktype::getStatus,Constants.ZERO) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java index 7c6daa2..bd27772 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java @@ -1532,6 +1532,17 @@ if(!(solutions.getIsdeleted().equals(Constants.ZERO)||solutions.getStatus().equals(Constants.ZERO))){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏂规淇℃伅宸茶绂佺敤"); } + if(solutions.getValidType().equals(Constants.ZERO)){ + if(DateUtil.getMontageDate( + DateUtil.addDaysToDate(new Date(),solutions.getValidType()),0).getTime()>insuranceApply.getApplyStartTime().getTime()){ + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"淇濆崟鐢熸晥璧锋湡閿欒"); + } + }else{ + if(DateUtil.getNextMonthFirst(new Date()).getTime()>insuranceApply.getApplyStartTime().getTime()){ + throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"淇濆崟鐢熸晥璧锋湡閿欒"); + } + } + List<ApplyDetail> applyDetailList = insuranceApply.getApplyDetailList(); //鍒ゆ柇鏄惁瀛樺湪閲嶅淇℃伅 List<String> idCardList = applyDetailList.stream().map(i->i.getIdcardNo()).collect(Collectors.toList()); @@ -2452,7 +2463,8 @@ MPJLambdaWrapper<ApplyDetail> lambdaWrapper = new MPJLambdaWrapper<ApplyDetail>(); lambdaWrapper.select(ApplyDetail::getId) .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) - .and(i->i.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()).or().eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey())) + .and(i->i.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()) + .or().eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey())) .eq(InsuranceApply::getCompanyId,loginUserInfo.getCompanyId()) .apply(" now() between t.START_TIME and t.END_TIME "); diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java index 4228f5b..99e04df 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/SolutionsServiceImpl.java @@ -234,8 +234,9 @@ .lambda() .eq(SolutionWorktype::getSolutionId,solutions.getId()) ); - if(Constants.equalsObject(solutions.getType(),Constants.ONE) ){ + if(Constants.equalsObject(model.getType(),Constants.ONE) ){ if (solutions.getFanganFile()!=null && StringUtils.isNotBlank(solutions.getFanganFile().getFileurl())){ + multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda() .set(Multifile::getIsdeleted,Constants.ONE) .set(Multifile::getEditDate,solutions.getEditDate()) @@ -243,6 +244,7 @@ .eq(Multifile::getObjId,solutions.getId()) .eq(Multifile::getIsdeleted,Constants.ZERO) .eq(Multifile::getObjType,Constants.MultiFile.SOLUTIONS_CONFIRMATION_LATTER.getKey())); + Multifile file = solutions.getFanganFile(); file.setIsdeleted(Constants.ZERO); file.setCreateDate(solutions.getEditDate()); diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java index c1db020..a2e652a 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java @@ -32,6 +32,7 @@ import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @@ -737,6 +738,7 @@ List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda() .select(ApplyDetail::getId,ApplyDetail::getApplyId,ApplyDetail::getPrice) .in(ApplyDetail::getUnionApplyId,unionApply.getId())); + unionApplyBXDDTO.setEndTime(DateUtil.getMontageDate(unionApplyBXDDTO.getEndTime(),2)); //鎬诲ぉ鏁� Integer maxDays = DateUtil.calculateBetween(unionApplyBXDDTO.getStartTime(),unionApplyBXDDTO.getEndTime(),0); //瀹為檯宸茬粡浜х敓璐圭敤鐨勫ぉ鏁� @@ -760,12 +762,14 @@ } BigDecimal price = Constants.formatBigdecimal(applyDetails.get(Constants.ZERO).getPrice()); - Optional<UnionApplyBXDDetailDTO> unionApplyBXDDDetailTO= unionApplyBXDDetailDTOList.stream().filter( m->m.getApplyId().equals(insuranceApply.getId())).findFirst(); if(unionApplyBXDDDetailTO.isPresent()){ UnionApplyBXDDetailDTO unionApplyBXDDetailDTO = unionApplyBXDDDetailTO.get(); - price = Constants.formatBigdecimal(price).add(Constants.formatBigdecimal(unionApplyBXDDetailDTO.getServerMoney())); + + BigDecimal dayServerMoney = unionApplyBXDDetailDTO.getServerMoney().divide(new BigDecimal(maxDays),2, RoundingMode.HALF_UP); + + price = Constants.formatBigdecimal(price).add(Constants.formatBigdecimal(dayServerMoney)); //涓婁紶淇濆崟淇℃伅 if(StringUtils.isNotBlank(unionApplyBXDDetailDTO.getFileUrl())){ Multifile multifile = new Multifile(); @@ -793,7 +797,8 @@ //鐢熸垚鎶曚繚璁板綍 if(CollectionUtils.isNotEmpty(applyDetailList)){ List<MemberInsurance> memberInsuranceList = new ArrayList<>(); - for (ApplyDetail applyDetail:applyDetailList) { + for (ApplyDetail applyDetail:applyDetailList.stream() + .filter(m->Constants.equalsInteger(m.getApplyId(),(insuranceApply.getId()))).collect(Collectors.toList())) { applyDetail.setPrice(price); applyDetail.setFee(price.multiply(new BigDecimal(maxDays))); MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId()); diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java index d491222..1d2852d 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionChangeServiceImpl.java @@ -1,6 +1,7 @@ package com.doumee.service.business.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.api.R; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.annotation.excel.ExcelExporter; import com.doumee.core.constants.ResponseStatus; @@ -154,7 +155,7 @@ .selectAs(Company::getName,UnionChange::getShopName) .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 0 )",UnionChange::getAddNum) .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 1 )",UnionChange::getDelNum) - .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 2 )",UnionChange::getChangeNum).select("( select ifnull(sum(ac.FEE),0) from apply_change ac where t.id = ac.UNION_CHANGE_ID )",UnionChange::getFee) + .select("( select count(1) from apply_chagne_detail ad where t.id = ad.UNION_CHANGE_ID and ad.TYPE = 2 )",UnionChange::getChangeNum) .leftJoin(UnionApply.class,UnionApply::getId,UnionChange::getUnionApplyId) .leftJoin(Solutions.class,Solutions::getId,UnionApply::getSolutionId) .leftJoin(Company.class,Company::getId,UnionChange::getShopId) @@ -163,6 +164,23 @@ ); if(!Objects.isNull(unionChange)){ + //鏌ヨ鍔犲噺淇濇槑缁嗘暟鎹� + List<ApplyChagneDetail> applyChangeList = applyChagneDetailJoinMapper + .selectList(new QueryWrapper<ApplyChagneDetail>() + .lambda() + .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) + .ne(ApplyChagneDetail::getType,Constants.TWO) + .eq(ApplyChagneDetail::getUnionChangeId,unionChange.getId())); + BigDecimal fee = BigDecimal.ZERO; + for (ApplyChagneDetail applyChagneDetail:applyChangeList) { + Integer maxDays = DateUtil.calculateBetween(unionChange.getApplyStartTime(),applyChagneDetail.getEndTime(),0); + if(applyChagneDetail.getType().equals(Constants.ZERO)){ + fee = fee.add(new BigDecimal(maxDays).multiply(applyChagneDetail.getPrice())); + }else{ + fee = fee.subtract(new BigDecimal(maxDays).multiply(applyChagneDetail.getPrice())); + } + } + unionChange.setFee(fee); //鏌ヨ鎿嶄綔璁板綍 List<ApplyLog> applyLogList = applyLogJoinMapper.selectJoinList(ApplyLog.class, new MPJLambdaWrapper<ApplyLog>() @@ -355,7 +373,7 @@ unionChange.setShopId(user.getCompanyId()); unionChange.setIsdeleted(Constants.ZERO); unionChange.setUnionApplyId(saveUnionChangeDTO.getUnionApplyId()); - unionChange.setApplyStartTime(saveUnionChangeDTO.getApplyDate()); + unionChange.setApplyStartTime(DateUtil.getMontageDate(saveUnionChangeDTO.getApplyDate(),1)); unionChange.setType(saveUnionChangeDTO.getBusinessType()); unionChange.setStatus(Constants.UnionChangeStatus.MERGE.getKey()); unionChangeMapper.insert(unionChange); @@ -673,6 +691,9 @@ .set(UnionChange::getStatus,Constants.UnionChangeStatus.FINISH.getKey()) .set(UnionChange::getEditDate,new Date()) .set(UnionChange::getEditor,user.getId()) + .set(UnionChange::getValidTime,unionChangeBXDDTO.getApplyDate()) + .set(UnionChange::getApplyStartTime,unionChangeBXDDTO.getApplyDate()) + .set(UnionChange::getCode,unionChangeBXDDTO.getCode()) .eq(UnionChange::getId,unionChangeBXDDTO.getId()) ); @@ -681,6 +702,10 @@ ApplyLog log = new ApplyLog(unionChange,applyLogType.getName(), null ,unionChange.getId(),applyLogType.getKey(),null, JSONObject.toJSONString(unionChange)); applyLogMapper.insert(log); + + if(true){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } } @@ -690,24 +715,17 @@ BigDecimal totalFee = BigDecimal.ZERO; BigDecimal currentFee = BigDecimal.ZERO; - //鏌ヨ鏈�鍚庤褰� 鑾峰彇瀵瑰簲鍗曚环 - ApplyDetail applyDetail = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,applyChange.getApplyId()).last(" limit 1 ")); - if(Objects.isNull(applyDetail)){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌淇濆崟鏄庣粏鏁版嵁"); - } - //鑾峰彇鍗曚环 - BigDecimal price = applyDetail.getPrice(); for (ApplyChagneDetail detail:applyChagneDetailList) { Member member = memberMapper.selectById(detail.getMemberId()); if(Objects.isNull(member)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈠埌鍛樺伐鏁版嵁"); } if (Constants.equalsInteger(detail.getType(), Constants.ZERO)) { - this.addChangeDetailData(applyChange,detail,price,currentFee,totalFee); + this.addChangeDetailData(applyChange,detail,detail.getPrice(),currentFee,totalFee); }else if(Constants.equalsInteger(detail.getType(),Constants.ONE)){ - this.reduceChangeDetailData(applyChange,detail,applyDetail,price,currentFee,totalFee); + this.reduceChangeDetailData(applyChange,detail,currentFee,totalFee); }else{ - this.otherChangeDetailData(applyChange,detail,applyDetail,price); + this.otherChangeDetailData(applyChange,detail); } } @@ -752,11 +770,12 @@ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍔犱繚浜哄憳銆�" + detail.getMemberName() + "銆戝瓨鍦ㄦ棩鏈熷啿绐佺殑鏁版嵁"); } //鎬诲ぉ鏁� - Integer countDays = DateUtil.daysBetweenDates(DateUtil.getMontageDate(detail.getEndTime(), 2), applyChange.getApplyStartTime()); + Integer countDays = DateUtil.calculateBetween(applyChange.getApplyStartTime(),DateUtil.getMontageDate(detail.getEndTime(), 2),0); + //鍔犱繚 ApplyDetail add = new ApplyDetail(); if(new Date().compareTo(DateUtil.getMontageDate(applyChange.getApplyStartTime(), 2))>=0){ - Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(new Date(), 2), applyChange.getApplyStartTime()) + 1; + Integer days = DateUtil.calculateBetween(applyChange.getApplyStartTime(),DateUtil.getMontageDate(new Date(), 2),0); //濡傛灉宸插凡浜х敓璐圭敤锛岃绠楀凡宸蹭骇鐢熻垂鐢� add.setCurrentFee(new BigDecimal(days).multiply(price)); }else{ @@ -776,7 +795,6 @@ add.setSex(Constants.getSexByIdCard(detail.getIdcardNo())); add.setMemberName(detail.getMemberName()); add.setDuId(detail.getDuId()); - add.setStartTime(applyChange.getApplyStartTime()); add.setStartTime(DateUtil.getMontageDate(applyChange.getApplyStartTime(), 1)); add.setEndTime(DateUtil.getMontageDate(detail.getEndTime(), 2)); add.setFee(new BigDecimal(countDays).multiply(price)); @@ -803,13 +821,10 @@ * 鍑忎繚鏁版嵁澶勭悊 * @param applyChange * @param detail - * @param applyDetail - * @param price * @param currentFee * @param totalFee */ - public void reduceChangeDetailData(ApplyChange applyChange,ApplyChagneDetail detail,ApplyDetail applyDetail - ,BigDecimal price,BigDecimal currentFee,BigDecimal totalFee){ + public void reduceChangeDetailData(ApplyChange applyChange,ApplyChagneDetail detail,BigDecimal currentFee,BigDecimal totalFee){ //鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁 ApplyDetail oldModel = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda() .eq(ApplyDetail::getApplyId, applyChange.getApplyId()) @@ -824,15 +839,16 @@ BigDecimal pullFee = BigDecimal.ZERO; //鍑忎繚鍑忓皯鐨勯噾棰� BigDecimal reduceFee = BigDecimal.ZERO; - if (DateUtil.daysBetweenDates(DateUtil.getMontageDate(new Date(), 2),applyChange.getApplyStartTime()) > 0) { + if (DateUtil.calculateBetween(applyChange.getApplyStartTime(),DateUtil.getMontageDate(new Date(), 2),0) > 0) { //璁$畻澶氭墸閲戦 - Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(new Date(), 2), applyChange.getApplyStartTime()) + 1; - pullFee = new BigDecimal(days).multiply(price).multiply(new BigDecimal(-1)); + + Integer days = DateUtil.calculateBetween(applyChange.getApplyStartTime(),DateUtil.getMontageDate(new Date(), 2),0); + pullFee = new BigDecimal(days).multiply(detail.getPrice()).multiply(new BigDecimal(-1)); } //璁$畻鎶曚繚鏄庣粏搴斿噺灏戠殑澶╂暟 - Integer reduceDays = DateUtil.daysBetweenDates(DateUtil.getMontageDate(applyDetail.getEndTime(), 2), applyChange.getApplyStartTime()) + 1; + Integer reduceDays = DateUtil.calculateBetween(applyChange.getApplyStartTime(),DateUtil.getMontageDate(oldModel.getEndTime(), 2),0); if(reduceDays>0){ - reduceFee = new BigDecimal(reduceDays).multiply(price).multiply(new BigDecimal(-1)); + reduceFee = new BigDecimal(reduceDays).multiply(detail.getPrice()).multiply(new BigDecimal(-1)); } applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda() .setSql(" fee = ifnull(fee,0)+" + reduceFee) @@ -862,7 +878,7 @@ ); } - public void otherChangeDetailData(ApplyChange applyChange,ApplyChagneDetail detail,ApplyDetail applyDetail,BigDecimal price){ + public void otherChangeDetailData(ApplyChange applyChange,ApplyChagneDetail detail){ //瀹為檯鎵瑰崟鐢熸晥鏃ユ湡 Date applyStartTime = DateUtil.getMontageDate(applyChange.getApplyStartTime(),1); @@ -894,8 +910,8 @@ //褰撳墠鏃ユ湡澶т簬鎵瑰崟鏃ユ湡 闇�瑕佸洖婊氭暟鎹疄闄呮暟鎹� Boolean flag = DateUtil.getMontageDate(new Date(),2).compareTo(DateUtil.getMontageDate(applyStartTime,2))>0; //鎹㈠巶鍚庡巻鍙茶褰曠殑璐圭敤 fee - Integer days = DateUtil.daysBetweenDates(DateUtil.getMontageDate(applyStartTime,3),DateUtil.getMontageDate(oldModel.getStartTime(),1))+1; - BigDecimal oldFee = new BigDecimal(days).multiply(price); + Integer days = DateUtil.calculateBetween(DateUtil.getMontageDate(applyStartTime,3),DateUtil.getMontageDate(oldModel.getStartTime(),1),0); + BigDecimal oldFee = new BigDecimal(days).multiply(detail.getPrice()); BigDecimal fee = oldModel.getFee(); BigDecimal oldCurrentFee = oldModel.getCurrentFee(); @@ -940,7 +956,7 @@ add.setFromId(detail.getId()); applyDetailJoinMapper.insert(add); - MemberInsurance memberInsurance = new MemberInsurance(applyDetail,applyChange.getId()); + MemberInsurance memberInsurance = new MemberInsurance(oldModel,applyChange.getId()); memberInsurance.setSolutionId(detail.getSolutionId()); memberInsurance.setWorktypeName(detail.getWorkTypeName()); memberInsurance.setDuName(detail.getDuName()); -- Gitblit v1.9.3