| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274 |
- package com.ydtech.modules.fnc.service.impl;
- import cn.afterturn.easypoi.excel.entity.ExportParams;
- import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alipay.api.domain.VehicleIovData;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.github.pagehelper.PageHelper;
- import com.github.pagehelper.PageInfo;
- import com.ydtech.constants.InsuranceEnum;
- import com.ydtech.constants.enums.dict.agreement.ProductsType;
- import com.ydtech.core.page.HttpResult;
- import com.ydtech.exception.SystemException;
- import com.ydtech.modules.admin.model.SysDept;
- import com.ydtech.modules.admin.model.SysUser;
- import com.ydtech.modules.admin.model.report.financialReceivables.*;
- import com.ydtech.modules.admin.service.SysUserService;
- import com.ydtech.modules.admin.utils.SliceUpDateUtil;
- import com.ydtech.modules.base.controller.BaseController;
- import com.ydtech.modules.esm.model.EsmInsCompany;
- import com.ydtech.modules.esm.model.EsmInsPackage;
- import com.ydtech.modules.esm.service.EsmInsCompanyService;
- import com.ydtech.modules.fnc.dao.FncInsAreaCompanyMapper;
- import com.ydtech.modules.fnc.dao.InsPlyIncomeMapper;
- import com.ydtech.modules.fnc.dto.InsPlyIncomePTCompanyDto;
- import com.ydtech.modules.fnc.dto.InsPlyIncomePTDto;
- import com.ydtech.modules.fnc.dto.InsuranceHandlingSettlementMonthDto;
- import com.ydtech.modules.fnc.dto.PlatformSettlementRecordDto;
- import com.ydtech.modules.fnc.entity.*;
- import com.ydtech.modules.fnc.service.*;
- import com.ydtech.modules.fnc.vo.*;
- import com.ydtech.modules.ins.model.vo.res.*;
- import com.ydtech.modules.inv.model.dto.*;
- import com.ydtech.modules.inv.model.excel.*;
- import com.ydtech.modules.inv.utils.CheckInsPlyComeUtils;
- import com.ydtech.modules.inv.utils.EasyExcelUtils;
- import com.ydtech.modules.inv.utils.ImportObjectUtils;
- import com.ydtech.modules.order.entity.BasePageResult;
- import com.ydtech.modules.order.entity.InsOrders;
- import com.ydtech.modules.order.entity.api.dajia.response.NVHLODR1001Response;
- import com.ydtech.modules.order.entity.api.zhongmei.response.SubmitResponse;
- import com.ydtech.modules.order.entity.crawler.response.CrawlerVerifyPaymentResponse;
- import com.ydtech.modules.order.entity.dto.DrivingInsuranceDto;
- import com.ydtech.modules.order.service.InsAreaCompanyService;
- import com.ydtech.modules.order.service.InsOrdersService;
- import com.ydtech.modules.protocol.entity.constants.PtlApiType;
- import com.ydtech.modules.protocol.entity.po.PtlAgreement;
- import com.ydtech.modules.protocol.entity.vo.PtlAgreementQueryVo;
- import com.ydtech.modules.protocol.service.PtlAgreementService;
- import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
- import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
- import com.ydtech.utils.BigDecimalUtils;
- import com.ydtech.utils.SnowFlakeUtil;
- import com.ydtech.utils.StringOperations;
- import com.ydtech.utils.excel.ExcelEasypoiUtils;
- import com.ydtech.utils.excel.ExcelStyleUtil;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.ObjectUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.ibatis.annotations.Param;
- import org.springframework.beans.BeanUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.context.annotation.Lazy;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.util.CollectionUtils;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.math.BigDecimal;
- import java.math.MathContext;
- import java.math.RoundingMode;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.time.*;
- import java.time.format.DateTimeFormatter;
- import java.util.*;
- import java.util.function.BinaryOperator;
- import java.util.function.Function;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 保司结算手续费 服务实现类
- * </p>
- *
- * @author gws
- * @since 2024-01-05
- */
- @Slf4j
- @Service
- public class InsPlyIncomeServiceImpl extends ServiceImpl<InsPlyIncomeMapper, InsPlyIncome> implements InsPlyIncomeService {
- @Autowired
- @Lazy
- private InsOrdersService insOrdersService;
- @Autowired
- private SysUserService sysUserService;
- @Autowired
- private InsFeeOrderNewService insFeeOrderNewService;
- @Autowired
- private SettlementDocumentaryFeesService settlementDocumentaryFeesService;
- @Autowired
- private SettlementDocumentaryLogService settlementDocumentaryLogService;
- @Autowired
- private PtlAgreementService ptlAgreementService;
- @Autowired
- private EsmInsCompanyService EsmInsCompanyService;
- @Autowired
- private ImportAsyncService importAsyncService;
- @Autowired
- private IncomeTaskRelationshipService incomeTaskRelationshipService;
- @Autowired
- private SettlementDocumentaryFeesSumService settlementDocumentaryFeesSumService;
- @Autowired
- private InsPlyIncomeLogService insPlyIncomeLogService;
- @Value("${upload.file.path}")
- private String uploadPath;
- @Value("${upload.file.url}")
- private String uploadUrl;
- @Autowired
- private FncInsAreaCompanyMapper fncInsAreaCompanyMapper;
- @Autowired
- private InsuranceHandlingSettlementMonthService insuranceHandlingSettlementMonthService;
- public HttpResult<BasePageResult<InsPlyIncome>> queryplyIncome(InsPlyIncomeVo insPlyIncomeVo) {
- try {
- Page<InsOrders> page = new Page<>(insPlyIncomeVo.getPageNum(), insPlyIncomeVo.getPageSize());
- PageInfo<List<InsPlyIncome>> pageHelper = null;
- PageHelper.startPage(insPlyIncomeVo.getPageNum(), insPlyIncomeVo.getPageSize());
- List<InsPlyIncome> list = this.baseMapper.selectByCondition(insPlyIncomeVo);
- pageHelper = new PageInfo(list);
- BasePageResult<InsPlyIncome> pageResult = new BasePageResult<InsPlyIncome>(insPlyIncomeVo.getPageNum(),
- insPlyIncomeVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);
- return HttpResult.ok(pageResult);
- } catch (Exception e) {
- e.printStackTrace();
- return HttpResult.error("查询异常");
- }
- }
- @Override
- public void saveBalanceNew(InsOrders order, InsFeeOrderNew insFeeOrderNew, InsAreaCompany insAreaCompany, String leaderId, String leaderName) {
- if (ObjectUtils.isEmpty(order) || ObjectUtils.isEmpty(insFeeOrderNew) || ObjectUtils.isEmpty(insAreaCompany)) {
- return;
- }
- String agreeType = this.judgeAgreeType(insAreaCompany.getAgreementId());
- if (StringUtils.isNotEmpty(agreeType)) {
- // 判断协议类型 平台 保险
- if ("1".equals(agreeType)) {
- this.savePinTai(order, insFeeOrderNew, insAreaCompany, leaderId, leaderName); //手续费不分非车不非车 跟单也不分
- } else { // 保险 逻辑: 手续费生成一条 跟单费生成一条 非车手续费一条 非车跟单费一条
- if (((insFeeOrderNew.getJqSuperviseCostsPremiums() != null && insFeeOrderNew.getJqSuperviseCostsPremiums().compareTo(BigDecimal.ZERO) != 0)) || (insFeeOrderNew.getSySuperviseCostsPremiums() != null && insFeeOrderNew.getSySuperviseCostsPremiums().compareTo(BigDecimal.ZERO) != 0)) { //手续费
- this.saveInsuranceProcedures(order, insFeeOrderNew, insAreaCompany, leaderId, leaderName);
- }
- if (insFeeOrderNew.getJqOtherCostsPremiums() != null && insFeeOrderNew.getJqOtherCostsPremiums().compareTo(BigDecimal.ZERO) != 0) { //跟单费
- this.saveOtherAmount(order, insFeeOrderNew, insAreaCompany, leaderId, leaderName);
- }
- if (insFeeOrderNew.getNoSuperviseCostsPremiums() != null && insFeeOrderNew.getNoSuperviseCostsPremiums().compareTo(BigDecimal.ZERO) != 0) { // 非车手续费
- this.saveNoSupervise(order, insFeeOrderNew, insAreaCompany, leaderId, leaderName);
- }
- if (insFeeOrderNew.getNoOtherCostsPremiums() != null && insFeeOrderNew.getNoOtherCostsPremiums().compareTo(BigDecimal.ZERO) != 0) { // 非车跟单费
- this.saveNoOtherAmount(order, insFeeOrderNew, insAreaCompany, leaderId, leaderName);
- }
- }
- }
- }
- private void saveNoOtherAmount(InsOrders order, InsFeeOrderNew insFeeOrderNew, InsAreaCompany insAreaCompany, String leaderId, String leaderName) {
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- insPlyIncome.setOrderno(insFeeOrderNew.getInsOrderNo()); // 子订单号
- String noPolicyno = this.setNoPolicyno(insAreaCompany);
- if (StringUtils.isNotEmpty(noPolicyno)) {
- insPlyIncome.setNoPolicyno(noPolicyno); // 非车保单号
- }
- insPlyIncome.setOtherFeevalue(insFeeOrderNew.getNoOtherCostsPremiums()); //非车跟单费
- insPlyIncome.setOtherFeerate(insFeeOrderNew.getNoOtherCostsProportion()); //非车跟单费用比例
- //add by hxl 2024-07-31 修改插入结算表中险种信息错误的bug 将大订单中的险种信息改为小订单的险种信息
- this.saveRiskCode(insAreaCompany.getProductid(), insPlyIncome);
- //this.saveRiskCode(order.getProductid(), insPlyIncome);
- insPlyIncome.setPayDate(insAreaCompany.getPayDate());
- insPlyIncome.setSignDate(insAreaCompany.getSigningTime());
- insPlyIncome.setCompanyId(insAreaCompany.getCompanyId());
- insPlyIncome.setAgreementId(insFeeOrderNew.getAgreementId());
- insPlyIncome.setLicenseno(order.getLicenseno());
- insPlyIncome.setTaxamount(insAreaCompany.getTaxamount());
- insPlyIncome.setNoTaxPremium(insFeeOrderNew.getNoNoTaxPremium());
- insPlyIncome.setCreateTime(LocalDateTime.now());
- insPlyIncome.setDocumentaryFeesStatus("0");
- insPlyIncome.setInsuredName(order.getInsuredname());
- insPlyIncome.setHandlingFeesStatus("0");
- insPlyIncome.setNoNoTaxPremium(insFeeOrderNew.getNoNoTaxPremium());
- insPlyIncome.setNoPremium(insFeeOrderNew.getNoPremium());
- insPlyIncome.setIsNotCar("1");
- insPlyIncome.setIsNotDocumentary("1");
- insPlyIncome.setJqStartDate(StringOperations.emptyStringToNull(insAreaCompany.getJqStartDate()));
- insPlyIncome.setJqEndDate(StringOperations.emptyStringToNull(insAreaCompany.getJqEndDate()));
- insPlyIncome.setSyStartDate(StringOperations.emptyStringToNull(insAreaCompany.getSyStartDate()));
- insPlyIncome.setSyEndDate(StringOperations.emptyStringToNull(insAreaCompany.getSyEndDate()));
- insPlyIncome.setReceivableAmount(insFeeOrderNew.getNoOtherCostsPremiums());
- insPlyIncome.setAllFeeValue(insFeeOrderNew.getNoOtherCostsPremiums());
- insPlyIncome.setNoOtherCostsPremium(insFeeOrderNew.getNoOtherCostsPremiums());
- insPlyIncome.setNoOtherCostsProportion(insFeeOrderNew.getNoOtherCostsProportion());
- insPlyIncome.setLeaderId(leaderId);
- insPlyIncome.setLeaderName(leaderName);
- this.saveByCompanyId(insFeeOrderNew, insAreaCompany.getCompanyId(), insPlyIncome);
- this.getDeptId(insPlyIncome);
- baseMapper.insert(insPlyIncome);
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(insPlyIncome.getId());
- BeanUtils.copyProperties(insPlyIncome,insPlyIncomeLog);
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setOperationStatus("1");
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- }
- private void saveNoSupervise(InsOrders order, InsFeeOrderNew insFeeOrderNew, InsAreaCompany insAreaCompany, String leaderId, String leaderName) {
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- insPlyIncome.setOrderno(insFeeOrderNew.getInsOrderNo()); // 子订单号
- insPlyIncome.setCommissionFeevalue(insFeeOrderNew.getNoSuperviseCostsPremiums());// 非车手续费
- insPlyIncome.setCommissionFeerate(insFeeOrderNew.getNoSuperviseCostsProportion());// 非车手续费比例
- String noPolicyno = this.setNoPolicyno(insAreaCompany);
- if (StringUtils.isNotEmpty(noPolicyno)) {
- insPlyIncome.setNoPolicyno(noPolicyno); // 非车保单号
- }
- // insPlyIncome.setDeptId(insFeeOrderNew.getDeptId());
- //add by hxl 2024-07-31 修改插入结算表中险种信息错误的bug 将大订单中的险种信息改为小订单的险种信息
- this.saveRiskCode(insAreaCompany.getProductid(), insPlyIncome);
- //this.saveRiskCode(order.getProductid(), insPlyIncome);
- insPlyIncome.setPayDate(insAreaCompany.getPayDate());
- insPlyIncome.setSignDate(insAreaCompany.getSigningTime());
- insPlyIncome.setCompanyId(insAreaCompany.getCompanyId());
- insPlyIncome.setAgreementId(insFeeOrderNew.getAgreementId());
- insPlyIncome.setLicenseno(order.getLicenseno());
- insPlyIncome.setTaxamount(insAreaCompany.getTaxamount());
- insPlyIncome.setCreateTime(LocalDateTime.now());
- insPlyIncome.setDocumentaryFeesStatus("0");
- insPlyIncome.setHandlingFeesStatus("0");
- insPlyIncome.setIsNotCar("1");
- insPlyIncome.setIsNotDocumentary("0");
- insPlyIncome.setAllFeeValue(insFeeOrderNew.getNoSuperviseCostsPremiums());
- insPlyIncome.setUserId(insFeeOrderNew.getUserId());
- insPlyIncome.setInsuredName(order.getInsuredname());
- insPlyIncome.setNoPremium(insFeeOrderNew.getNoPremium()); //非车保费
- insPlyIncome.setNoNoTaxPremium(insFeeOrderNew.getNoNoTaxPremium()); //非车不含税保费
- insPlyIncome.setJqStartDate(StringOperations.emptyStringToNull(insAreaCompany.getJqStartDate()));
- insPlyIncome.setJqEndDate(StringOperations.emptyStringToNull(insAreaCompany.getJqEndDate()));
- insPlyIncome.setSyStartDate(StringOperations.emptyStringToNull(insAreaCompany.getSyStartDate()));
- insPlyIncome.setSyEndDate(StringOperations.emptyStringToNull(insAreaCompany.getSyEndDate()));
- insPlyIncome.setNoSuperviseCostsPremiums(insFeeOrderNew.getNoSuperviseCostsPremiums());
- insPlyIncome.setNoSuperviseCostsProportion(insFeeOrderNew.getNoSuperviseCostsProportion());
- insPlyIncome.setLeaderId(leaderId);
- insPlyIncome.setLeaderName(leaderName);
- this.getDeptId(insPlyIncome);
- this.saveByCompanyId(insFeeOrderNew, insAreaCompany.getCompanyId(), insPlyIncome);
- insPlyIncome.setReceivableAmount(insFeeOrderNew.getNoSuperviseCostsPremiums());
- baseMapper.insert(insPlyIncome);
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(insPlyIncome.getId());
- BeanUtils.copyProperties(insPlyIncome,insPlyIncomeLog);
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setOperationStatus("1");
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- }
- private void saveRiskCode(String productid, InsPlyIncome insPlyIncome) {
- if (ProductsType.PT_0330.getCode().equals(productid)) {
- insPlyIncome.setRiskcode(ProductsType.PT_0330.getDesc());
- }
- if (ProductsType.PT_034001.getCode().equals(productid)) {
- insPlyIncome.setRiskcode(ProductsType.PT_034001.getDesc());
- }
- if (ProductsType.PT_034002.getCode().equals(productid)) {
- insPlyIncome.setRiskcode(ProductsType.PT_034002.getDesc());
- }
- if (ProductsType.PT_0330034002.getCode().equals(productid)) {
- insPlyIncome.setRiskcode(ProductsType.PT_0330034002.getDesc());
- }
- if (ProductsType.PT_0330034001.getCode().equals(productid)) {
- insPlyIncome.setRiskcode(ProductsType.PT_0330034001.getDesc());
- }
- }
- private void saveOtherAmount(InsOrders order, InsFeeOrderNew insFeeOrderNew, InsAreaCompany insAreaCompany, String leaderId, String leaderName) {
- BigDecimal otherAmount = this.calculateTotal(insFeeOrderNew.getJqOtherCostsPremiums(), insFeeOrderNew.getSyOtherCostsPremiums(),
- null);
- BigDecimal otherProportion = this.calculateTotal(insFeeOrderNew.getSyOtherCostsProportion(),
- insFeeOrderNew.getJqOtherCostsProportion(), null);
- BigDecimal allNoTaxPremium = this.calculateTotal(insFeeOrderNew.getJqNoTaxPremium(), insFeeOrderNew.getSyNoTaxPremium(), null);
- //交强不含税保费
- BigDecimal allPremium = this.calculateTotal(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), null);// 总保费
- InsPlyIncome insPlyIncome = new InsPlyIncome(insFeeOrderNew.getInsOrderNo(), insAreaCompany.getJqpolicyno(),
- insAreaCompany.getSypolicyno(), null, null, null, null, order.getProductid(), insAreaCompany.getPayDate(),
- insAreaCompany.getSigningTime(), insAreaCompany.getCompanyId(), null, insFeeOrderNew.getAgreementId(), order.getLicenseno(),
- insAreaCompany.getTaxamount(),
- allNoTaxPremium, null, otherProportion, null, otherAmount, otherAmount, null, null, LocalDateTime.now(), null, null, null, "0"
- , "0", "0", "1");
- //add by hxl 2024-07-31 修改插入结算表中险种信息错误的bug 将大订单中的险种信息改为小订单的险种信息
- this.saveRiskCode(insAreaCompany.getProductid(), insPlyIncome);
- //this.saveRiskCode(order.getProductid(), insPlyIncome);
- insPlyIncome.setTaxPremium(allPremium);
- insPlyIncome.setJqPremium(insFeeOrderNew.getJqPremium());
- insPlyIncome.setSyPremium(insFeeOrderNew.getSyPremium());
- insPlyIncome.setJqNoTaxPremium(insFeeOrderNew.getJqNoTaxPremium());
- insPlyIncome.setSyNoTaxPremium(insFeeOrderNew.getSyNoTaxPremium());
- insPlyIncome.setJqOtherCostsProportion(insFeeOrderNew.getJqOtherCostsProportion()); //交强跟单费比例
- insPlyIncome.setSyOtherCostsProportion(insFeeOrderNew.getSyOtherCostsProportion()); //商业跟单费比例
- insPlyIncome.setSyOtherCostsPremium(insFeeOrderNew.getSyOtherCostsPremiums());
- insPlyIncome.setJqOtherCostsPremium(insFeeOrderNew.getJqOtherCostsPremiums());
- insPlyIncome.setJqStartDate(StringOperations.emptyStringToNull(insAreaCompany.getJqStartDate()));
- insPlyIncome.setJqEndDate(StringOperations.emptyStringToNull(insAreaCompany.getJqEndDate()));
- insPlyIncome.setSyStartDate(StringOperations.emptyStringToNull(insAreaCompany.getSyStartDate()));
- insPlyIncome.setSyEndDate(StringOperations.emptyStringToNull(insAreaCompany.getSyEndDate()));
- insPlyIncome.setLeaderId(leaderId);
- insPlyIncome.setLeaderName(leaderName);
- insPlyIncome.setUserId(insFeeOrderNew.getUserId());
- insPlyIncome.setInsuredName(order.getInsuredname());
- insPlyIncome.setReceivableAmount(otherAmount);
- this.getDeptId(insPlyIncome);
- this.saveByCompanyId(insFeeOrderNew, insAreaCompany.getCompanyId(), insPlyIncome);
- baseMapper.insert(insPlyIncome);
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(insPlyIncome.getId());
- BeanUtils.copyProperties(insPlyIncome,insPlyIncomeLog);
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setOperationStatus("1");
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- }
- private void saveInsuranceProcedures(InsOrders order, InsFeeOrderNew insFeeOrderNew, InsAreaCompany insAreaCompany, String leaderId, String leaderName) {
- // 保险手续费
- BigDecimal handlingAmount = this.calculateTotal(insFeeOrderNew.getJqSuperviseCostsPremiums(),
- insFeeOrderNew.getSySuperviseCostsPremiums(), null);
- BigDecimal handlingProportion = this.calculateTotal(insFeeOrderNew.getJqSuperviseCostsProportion(),
- insFeeOrderNew.getSySuperviseCostsProportion(), null);
- BigDecimal allNoTaxPremium = this.calculateTotal(insFeeOrderNew.getJqNoTaxPremium(), insFeeOrderNew.getSyNoTaxPremium(), null);
- //不含税保费
- InsPlyIncome insPlyIncome = new InsPlyIncome(insFeeOrderNew.getInsOrderNo(), insAreaCompany.getJqpolicyno(),
- insAreaCompany.getSypolicyno(), null, null, null, null, order.getProductid(), insAreaCompany.getPayDate(),
- insAreaCompany.getSigningTime(), insAreaCompany.getCompanyId(), null, insFeeOrderNew.getAgreementId(), order.getLicenseno(),
- insAreaCompany.getTaxamount()
- , allNoTaxPremium, handlingProportion, null, handlingAmount, null, handlingAmount, null, null, LocalDateTime.now(), null,
- null, null, "0", "0", "0", "0");
- BigDecimal allTaxPremium = this.calculateTotal(insFeeOrderNew.getJqPremium(), insFeeOrderNew.getSyPremium(), null);
- insPlyIncome.setJqPremium(insFeeOrderNew.getJqPremium());
- insPlyIncome.setSyPremium(insFeeOrderNew.getSyPremium());
- insPlyIncome.setJqNoTaxPremium(insFeeOrderNew.getJqNoTaxPremium());
- insPlyIncome.setSyNoTaxPremium(insFeeOrderNew.getSyNoTaxPremium());
- insPlyIncome.setJqSuperviseCostsProportion(insFeeOrderNew.getJqSuperviseCostsProportion());
- insPlyIncome.setJqSuperviseCostsPremiums(insFeeOrderNew.getJqSuperviseCostsPremiums());
- insPlyIncome.setSySuperviseCostsProportion(insFeeOrderNew.getSySuperviseCostsProportion());
- insPlyIncome.setSySuperviseCostsPremiums(insFeeOrderNew.getSySuperviseCostsPremiums());
- //add by hxl 2024-07-31 修改插入结算表中险种信息错误的bug 将大订单中的险种信息改为小订单的险种信息
- this.saveRiskCode(insAreaCompany.getProductid(), insPlyIncome);
- //this.saveRiskCode(order.getProductid(), insPlyIncome);
- insPlyIncome.setTaxPremium(allTaxPremium);
- insPlyIncome.setUserId(insFeeOrderNew.getUserId());
- insPlyIncome.setInsuredName(order.getInsuredname());
- insPlyIncome.setJqStartDate(StringOperations.emptyStringToNull(insAreaCompany.getJqStartDate()));
- if(!Objects.isNull(StringOperations.emptyStringToNull(insAreaCompany.getJqEndDate()))) {
- String jqEndDate = StringOperations.emptyStringToNull(insAreaCompany.getJqEndDate());
- if(!Objects.isNull(jqEndDate)) {
- String timePart = jqEndDate.substring(11);
- // 检查是否为 24:00:00
- if (timePart.equals("24:00:00")) {
- // 截取日期部分
- String datePart = jqEndDate.substring(0, 10);
- // 拼接成新的时间字符串
- insAreaCompany.setJqEndDate(datePart + " 23:59:59");
- }
- }
- }
- insPlyIncome.setJqEndDate(StringOperations.emptyStringToNull(insAreaCompany.getJqEndDate()));
- insPlyIncome.setSyStartDate(StringOperations.emptyStringToNull(insAreaCompany.getSyStartDate()));
- if(!Objects.isNull(StringOperations.emptyStringToNull(insAreaCompany.getJqEndDate()))) {
- String syEndDate = StringOperations.emptyStringToNull(insAreaCompany.getSyEndDate());
- if(!Objects.isNull(syEndDate)) {
- String timePart = syEndDate.substring(11);
- // 检查是否为 24:00:00
- if (timePart.equals("24:00:00")) {
- // 截取日期部分
- String datePart = syEndDate.substring(0, 10);
- // 拼接成新的时间字符串
- insAreaCompany.setSyEndDate(datePart + " 23:59:59");
- }
- }
- }
- insPlyIncome.setSyEndDate(StringOperations.emptyStringToNull(insAreaCompany.getSyEndDate()));
- insPlyIncome.setReceivableAmount(handlingAmount);
- insPlyIncome.setLeaderId(leaderId);
- insPlyIncome.setLeaderName(leaderName);
- this.saveByCompanyId(insFeeOrderNew, insAreaCompany.getCompanyId(), insPlyIncome);
- this.getDeptId(insPlyIncome);
- baseMapper.insert(insPlyIncome);
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(insPlyIncome.getId());
- BeanUtils.copyProperties(insPlyIncome,insPlyIncomeLog);
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setOperationStatus("1");
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- }
- private String setNoPolicyno(InsAreaCompany insAreaCompany) {
- if (insAreaCompany.getJypremium() == null || insAreaCompany.getJypremium().compareTo(BigDecimal.ZERO) == 0) { // 非车跟单费
- return null;
- }
- String crossInsurance = insAreaCompany.getCrossInsurance();
- if (StringUtils.isEmpty(crossInsurance)) {
- return null;
- }
- JSONArray objects = JSON.parseArray(crossInsurance);
- if (objects.isEmpty()) {
- return null;
- }
- if (ObjectUtils.isEmpty(insAreaCompany.getApiType()) || PtlApiType.PTL_API_2.getCode() == insAreaCompany.getApiType()) {
- List<CrawlerVerifyPaymentResponse.DrivingInsurancesDTO> drivingInsurancesDTOS = objects.toJavaList(CrawlerVerifyPaymentResponse.DrivingInsurancesDTO.class);
- return drivingInsurancesDTOS.get(0).getApplication();
- }
- // 永诚
- if(insAreaCompany.getCompanyId().contains(InsuranceEnum.AICS.getCode())){
- List<DrivingInsuranceDto> javaList = objects.toJavaList(DrivingInsuranceDto.class);
- return javaList.get(0).getPolicyNumber();
- }
- // 大家
- if(insAreaCompany.getCompanyId().contains(InsuranceEnum.DJPC.getCode())){
- List<NVHLODR1001Response.policyInfosDTO> javaList = objects.toJavaList(NVHLODR1001Response.policyInfosDTO.class);
- return javaList.get(0).getPlyNo();
- }
- // 国任
- if(insAreaCompany.getCompanyId().contains(InsuranceEnum.XDCX.getCode())){
- List<DrivingInsuranceDto> javaList = objects.toJavaList(DrivingInsuranceDto.class);
- return javaList.get(0).getPolicyNumber();
- }
- // 中煤
- if(insAreaCompany.getCompanyId().contains(InsuranceEnum.ZMBX.getCode())){
- List<SubmitResponse.AccidentNo> javaList = objects.toJavaList(SubmitResponse.AccidentNo.class);
- return javaList.get(0).getRideProposalNo();
- }
- // 紫金
- if(insAreaCompany.getCompanyId().contains(InsuranceEnum.ZKIC.getCode())){
- List<DrivingInsuranceDto> javaList = objects.toJavaList(DrivingInsuranceDto.class);
- return javaList.get(0).getPolicyNumber();
- }
- return null;
- }
- private void savePinTai(InsOrders order, InsFeeOrderNew insFeeOrderNew, InsAreaCompany insAreaCompany,String leaderId,String leaderName) {
- BigDecimal handlingAmount = this.calculateTotal(insFeeOrderNew.getJqSuperviseCostsPremiums(),
- insFeeOrderNew.getSySuperviseCostsPremiums(), insFeeOrderNew.getNoSuperviseCostsPremiums()); //手续费
- BigDecimal handlingProportion = this.calculateTotal(insFeeOrderNew.getJqSuperviseCostsProportion(),
- insFeeOrderNew.getSySuperviseCostsProportion(), insFeeOrderNew.getNoSuperviseCostsProportion());//手续费比例
- BigDecimal otherAmount = this.calculateTotal(insFeeOrderNew.getJqOtherCostsPremiums(), insFeeOrderNew.getSyOtherCostsPremiums(),
- insFeeOrderNew.getNoOtherCostsPremiums());//跟单费
- BigDecimal otherProportion = this.calculateTotal(insFeeOrderNew.getSyOtherCostsProportion(),
- insFeeOrderNew.getJqOtherCostsProportion(), insFeeOrderNew.getNoOtherCostsProportion()); //跟单费比例
- // 不含税保费
- BigDecimal allNoTaxPremium = this.calculateTotal(insFeeOrderNew.getJqNoTaxPremium(), insFeeOrderNew.getSyNoTaxPremium(),
- insFeeOrderNew.getNoNoTaxPremium());
- BigDecimal allAmount = this.calculateTotal(otherAmount, handlingAmount, null);
- BigDecimal jqReceivableProportion = this.calculateTotal(insFeeOrderNew.getJqSuperviseCostsProportion(),
- insFeeOrderNew.getJqOtherCostsProportion(), null);// 交强应收 比例
- BigDecimal syReceivableProportion = this.calculateTotal(insFeeOrderNew.getSySuperviseCostsProportion(),
- insFeeOrderNew.getSyOtherCostsProportion(), null);//商业应收比例
- BigDecimal noReceivableProportion = this.calculateTotal(insFeeOrderNew.getNoSuperviseCostsProportion(),
- insFeeOrderNew.getNoOtherCostsProportion(), null);
- String noPolicyno = this.setNoPolicyno(insAreaCompany);
- InsPlyIncome insPlyIncome = new InsPlyIncome(insFeeOrderNew.getInsOrderNo(), insAreaCompany.getJqpolicyno(),
- insAreaCompany.getSypolicyno(),
- noPolicyno, null, null, null, order.getProductid(), insAreaCompany.getPayDate(), insAreaCompany.getSigningTime(),
- insAreaCompany.getCompanyId(),
- null, insFeeOrderNew.getAgreementId(), order.getLicenseno(), insAreaCompany.getTaxamount(), allNoTaxPremium,
- handlingProportion,
- otherProportion, handlingAmount, otherAmount, allAmount, null, null, LocalDateTime.now(), null, null, null, "0", "0", "0", "0");
- insPlyIncome.setJqReceivableProportion(jqReceivableProportion);
- insPlyIncome.setSyReceivableProportion(syReceivableProportion);
- insPlyIncome.setNoReceivableProportion(noReceivableProportion);
- // 应收金额 = 商业手续费+商业跟单 + 交强手续费 +交强跟单费 + 非车手续费 + 非车跟单费 = allAmount
- insPlyIncome.setJqSuperviseCostsPremiums(insFeeOrderNew.getJqSuperviseCostsPremiums()); // 交强手续费
- insPlyIncome.setSySuperviseCostsPremiums(insFeeOrderNew.getSySuperviseCostsPremiums()); // 商业手续费
- insPlyIncome.setNoSuperviseCostsPremiums(insFeeOrderNew.getNoSuperviseCostsPremiums()); // 非车手续费
- insPlyIncome.setJqSuperviseCostsProportion(insFeeOrderNew.getJqSuperviseCostsProportion()); //交强手续费 比例
- insPlyIncome.setSySuperviseCostsProportion(insFeeOrderNew.getSySuperviseCostsProportion()); // 商业手续费 比例
- insPlyIncome.setNoSuperviseCostsProportion(insFeeOrderNew.getNoSuperviseCostsProportion());// 非车手续费 比例
- insPlyIncome.setJqOtherCostsProportion(insFeeOrderNew.getJqOtherCostsProportion()); //交强跟单费比例
- insPlyIncome.setSyOtherCostsProportion(insFeeOrderNew.getSyOtherCostsProportion()); //商业跟单费比例
- insPlyIncome.setNoOtherCostsProportion(insFeeOrderNew.getNoOtherCostsProportion()); //非车跟单费比例
- insPlyIncome.setJqOtherCostsPremium(insFeeOrderNew.getJqOtherCostsPremiums());
- insPlyIncome.setSyOtherCostsPremium(insFeeOrderNew.getSyOtherCostsPremiums());
- insPlyIncome.setNoOtherCostsPremium(insFeeOrderNew.getNoOtherCostsPremiums());
- insPlyIncome.setJqPremium(insFeeOrderNew.getJqPremium());
- insPlyIncome.setSyPremium(insFeeOrderNew.getSyPremium());
- insPlyIncome.setNoPremium(insFeeOrderNew.getNoPremium());
- insPlyIncome.setReceivableAmount(allAmount);
- insPlyIncome.setJqNoTaxPremium(insFeeOrderNew.getJqNoTaxPremium());
- insPlyIncome.setSyNoTaxPremium(insFeeOrderNew.getSyNoTaxPremium());
- insPlyIncome.setNoNoTaxPremium(insFeeOrderNew.getNoNoTaxPremium());
- insPlyIncome.setUserId(insFeeOrderNew.getUserId());
- insPlyIncome.setJqStartDate(StringOperations.emptyStringToNull(insAreaCompany.getJqStartDate()));
- insPlyIncome.setJqEndDate(
- StringOperations.emptyStringToNull(
- fixDateTime(insAreaCompany.getJqEndDate())
- )
- );
- insPlyIncome.setSyStartDate(StringOperations.emptyStringToNull(insAreaCompany.getSyStartDate()));
- insPlyIncome.setSyEndDate(
- StringOperations.emptyStringToNull(
- fixDateTime(insAreaCompany.getSyEndDate())
- )
- );
- insPlyIncome.setLeaderId(leaderId);
- insPlyIncome.setLeaderName(leaderName);
- this.getDeptId(insPlyIncome);
- //add by hxl 2024-07-31 修改插入结算表中险种信息错误的bug 将大订单中的险种信息改为小订单的险种信息
- this.saveRiskCode(insAreaCompany.getProductid(), insPlyIncome);
- //this.saveRiskCode(order.getProductid(), insPlyIncome);
- insPlyIncome.setInsuredName(order.getInsuredname());
- this.saveByCompanyId(insFeeOrderNew, insAreaCompany.getCompanyId(), insPlyIncome);
- baseMapper.insert(insPlyIncome);
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(insPlyIncome.getId());
- BeanUtils.copyProperties(insPlyIncome,insPlyIncomeLog);
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setOperationStatus("1");
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- }
- public static String fixDateTime(String dateTimeStr) {
- if (dateTimeStr == null || !dateTimeStr.endsWith("24:00:00")) {
- return dateTimeStr;
- }
- try {
- String[] parts = dateTimeStr.split(" ");
- LocalDate date = LocalDate.parse(parts[0]);
- return date.plusDays(1).toString() + " 00:00:00";
- } catch (Exception e) {
- return dateTimeStr; // 异常就原样返回
- }
- }
- private void getDeptId(InsPlyIncome insPlyIncome) {
- PtlAgreement ptlAgreement = ptlAgreementService.getById(insPlyIncome.getAgreementId());
- String deptId = ptlAgreement.getDeptId();
- insPlyIncome.setDeptId(deptId);
- }
- private void saveByCompanyId(InsFeeOrderNew insFeeOrderNew, String companyId, InsPlyIncome insPlyIncome) {
- PtlAgreement ptlAgreementQueryVo = this.ptlAgreementService.getByAgreementIdNew(insFeeOrderNew.getAgreementId());
- if (ObjectUtils.isNotEmpty(ptlAgreementQueryVo)) {
- if (StringUtils.isNotEmpty(ptlAgreementQueryVo.getPartnerCompaniesId())) {
- // 合作公司id
- String partnerCompaniesId = ptlAgreementQueryVo.getPartnerCompaniesId();
- insPlyIncome.setPartnerCompaniesId(partnerCompaniesId);
- EsmInsCompany esmInsCompany = EsmInsCompanyService.getById(partnerCompaniesId);
- String name = esmInsCompany.getNamesimple(); //合作名称
- insPlyIncome.setPartnerCompaniesName(name);
- insPlyIncome.setPartnerCompaniesId(ptlAgreementQueryVo.getPartnerCompaniesId());
- }
- if (StringUtils.isNotEmpty(ptlAgreementQueryVo.getInsuranceCompanyId())) {
- String insuranceCompanyId = ptlAgreementQueryVo.getInsuranceCompanyId();
- EsmInsCompany esmInsCompany = EsmInsCompanyService.getById(insuranceCompanyId);
- String name = esmInsCompany.getNamesimple(); //保险公司名称 简称
- insPlyIncome.setCompanyName(name);
- }
- }
- }
- private BigDecimal calculateTotal(BigDecimal value1, BigDecimal value2, BigDecimal value3) {
- BigDecimal total = BigDecimal.ZERO;
- if (value1 != null) {
- total = total.add(value1);
- }
- if (value2 != null) {
- total = total.add(value2);
- }
- if (value3 != null) {
- total = total.add(value3);
- }
- return total;
- }
- private String judgeAgreeType(Long agreementId) {
- if (agreementId == null) {
- return null;
- }
- HttpResult<PtlAgreementQueryVo> byAgreementId = ptlAgreementService.getByAgreementId(agreementId.toString());
- if (byAgreementId != null && ObjectUtils.isNotEmpty(byAgreementId.getData())) {
- PtlAgreement agreement = byAgreementId.getData().getAgreement();
- String agreementType = agreement.getAgreementType();
- if (StringUtils.isNotEmpty(agreementType)) {
- return agreementType;
- }
- }
- return null;
- }
- public HttpResult<BasePageResult<InsPlyIncome>> queryNew(InsPlyIncomeVo insPlyIncomeVo) {
- try {
- HashMap<String, Object> params = new HashMap<>();
- PageInfo<List<InsPlyIncome>> pageHelper = null;
- PageHelper.startPage(insPlyIncomeVo.getPageNum(), insPlyIncomeVo.getPageSize());
- params.put("pageNum", insPlyIncomeVo.getPageNum());
- params.put("pageSize", insPlyIncomeVo.getPageSize());
- params = this.saveParams(insPlyIncomeVo, params);
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getIds())) {
- params.put("ids", insPlyIncomeVo.getIds().split(","));
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getId())) {
- SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity =
- settlementDocumentaryFeesService.getById(insPlyIncomeVo.getId());
- // 通过任务id查询 明细
- String taskId = settlementDocumentaryFeesEntity.getTaskId();
- List<String> incomeIds = incomeTaskRelationshipService.getByTaskId(taskId);
- if (!CollectionUtils.isEmpty(incomeIds)) {
- params.put("incomeIds", incomeIds);
- params.remove("handlingFeesStatus");
- params.remove("id");
- }
- }
- List<InsPlyIncome> list = this.baseMapper.queryNew(params);
- pageHelper = new PageInfo(list);
- BasePageResult<InsPlyIncome> pageResult = new BasePageResult<InsPlyIncome>(insPlyIncomeVo.getPageNum(),
- insPlyIncomeVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);
- return HttpResult.ok(pageResult);
- } catch (Exception e) {
- e.printStackTrace();
- return HttpResult.error("查询异常");
- }
- }
- @Override
- public HashMap<String, Object> totalAmount(List<String> selectIds) {
- HashMap<String, Object> params = new HashMap<>();
- params.put("selectIds", selectIds);
- HashMap<String, Object> resultMap = baseMapper.totalAmount(params);
- return resultMap;
- }
- @Override
- @Transactional
- public HttpResult<Object> batchPinBalance(InsPlyIncomeVo insPlyIncomeVo) {
- LocalDateTime now = LocalDateTime.now();
- if (!CollectionUtils.isEmpty(insPlyIncomeVo.getSelectIds())) {
- List<String> selectIds = insPlyIncomeVo.getSelectIds();
- for (String id : selectIds) {
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- insPlyIncome.setHandlingFeesStatus("1");
- insPlyIncome.setSettlementTime(now);
- insPlyIncome.setSettlementUserId(BaseController.getUser().getId());
- insPlyIncome.setId(id);
- baseMapper.updateById(insPlyIncome);
- }
- }
- SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
- settlementDocumentaryLogEntity.setIds(insPlyIncomeVo.getIds());
- // settlementDocumentaryLogEntity.setCompanyId(insPlyIncomeVo.getCompanyId());
- settlementDocumentaryLogEntity.setAmount(insPlyIncomeVo.getOtherFeevalue()); //跟单费金额
- settlementDocumentaryLogEntity.setHandingAmount(insPlyIncomeVo.getCommissionFeevalue()); //手续费金额
- settlementDocumentaryLogEntity.setCreateTime(new Date());
- settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
- return HttpResult.ok();
- }
- @Override
- public List<InsPlyIncome> totalPinAmount(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- List<InsPlyIncome> result = baseMapper.totalPinAmount(params);
- return result;
- }
- private HashMap<String, Object> saveParams(InsPlyIncomeVo insPlyIncomeVo, HashMap<String, Object> params) {
- if (ObjectUtils.isNotEmpty(insPlyIncomeVo.getId())) {
- params.put("id", insPlyIncomeVo.getId());
- }
- if (ObjectUtils.isNotEmpty(insPlyIncomeVo.getStartDate())) {
- params.put("startDate", insPlyIncomeVo.getStartDate().toString());
- }
- if (ObjectUtils.isNotEmpty(insPlyIncomeVo.getEndDate())) {
- params.put("endDate", insPlyIncomeVo.getEndDate().toString());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getOrderno())) {
- params.put("orderno", insPlyIncomeVo.getOrderno());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getIsNotDocumentary())) {
- params.put("isOther", insPlyIncomeVo.getIsNotDocumentary());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getIsNotCar())) {
- params.put("isNotCar", insPlyIncomeVo.getIsNotCar());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getAgreementType())) {
- params.put("agreementType", insPlyIncomeVo.getAgreementType());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getLicenseno())) {
- params.put("licenseno", insPlyIncomeVo.getLicenseno());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getUserId())) {
- params.put("userId", insPlyIncomeVo.getUserId());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getCompanyId())) {
- params.put("companyId", insPlyIncomeVo.getCompanyId());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getRiskcode())) {
- params.put("riskcode", insPlyIncomeVo.getRiskcode());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getPolicyno())) {
- params.put("policyno", insPlyIncomeVo.getPolicyno());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getSyPolicyno())) {
- params.put("syPolicyno", insPlyIncomeVo.getSyPolicyno());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getNoPolicyno())) {
- params.put("noPolicyno", insPlyIncomeVo.getNoPolicyno());
- }
- if (insPlyIncomeVo.getCreateTime() != null) {
- params.put("createTime", insPlyIncomeVo.getCreateTime().toString());
- }
- if (insPlyIncomeVo.getSettlementTime() != null) {
- params.put("settlementTime", insPlyIncomeVo.getSettlementTime().toString());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getHandlingFeesStatus())) {
- params.put("handlingFeesStatus", insPlyIncomeVo.getHandlingFeesStatus());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getPartnerCompaniesId())) {
- params.put("partnerCompaniesId", insPlyIncomeVo.getPartnerCompaniesId());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getYear())) {
- params.put("year", insPlyIncomeVo.getYear());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getMonth())) {
- params.put("month", insPlyIncomeVo.getMonth());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getDay())) {
- params.put("day", insPlyIncomeVo.getDay());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getSignDateEnd())) {
- params.put("signDateEnd", insPlyIncomeVo.getSignDateEnd());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getSignDateStart())) {
- params.put("signDateStart", insPlyIncomeVo.getSignDateStart());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getCompanyName())) {
- params.put("companyName", insPlyIncomeVo.getCompanyName());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getInsuredName())) {
- params.put("insuredName", insPlyIncomeVo.getInsuredName());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getPartnerCompaniesName())) {
- params.put("partnerCompaniesName", insPlyIncomeVo.getPartnerCompaniesName());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getDockingPerson())) {
- params.put("dockingPerson", insPlyIncomeVo.getDockingPerson());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getYeartsStart()) && StringUtils.isNotEmpty(insPlyIncomeVo.getYeartsEnd())) {
- params.put("yeartsStart", insPlyIncomeVo.getYeartsStart());
- params.put("yeartsEnd", insPlyIncomeVo.getYeartsEnd());
- }
- if (insPlyIncomeVo.getJqStartDate() != null) {
- params.put("jqStartDate", insPlyIncomeVo.getJqStartDate());
- }
- if (insPlyIncomeVo.getJqStartDate() != null) {
- params.put("jqEndDate", insPlyIncomeVo.getJqEndDate());
- }
- if (insPlyIncomeVo.getSyStartDate() != null) {
- params.put("syStartDate", insPlyIncomeVo.getSyStartDate());
- }
- if (insPlyIncomeVo.getSyEndDate() != null) {
- params.put("syEndDate", insPlyIncomeVo.getSyEndDate());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getProvinceId())) {
- params.put("provinceId", insPlyIncomeVo.getProvinceId());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getCityId())) {
- params.put("cityId", insPlyIncomeVo.getCityId());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getCountyId())) {
- params.put("countyId", insPlyIncomeVo.getCountyId());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getDeptId())) {
- params.put("deptId", insPlyIncomeVo.getDeptId());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getAllPartnerCompaniesId())) {
- params.put("allPartnerCompaniesId", insPlyIncomeVo.getAllPartnerCompaniesId().substring(0, 5));
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getProvincePartnerCompaniesId())) {
- params.put("provincePartnerCompaniesId", insPlyIncomeVo.getProvincePartnerCompaniesId());
- }
- if (!CollectionUtils.isEmpty(insPlyIncomeVo.getSelectIds())) {
- params.put("selectIds", insPlyIncomeVo.getSelectIds());
- }
- if (!CollectionUtils.isEmpty(insPlyIncomeVo.getPartnerCompaniesIdList())) {
- params.put("partnerCompaniesIdList", insPlyIncomeVo.getPartnerCompaniesIdList());
- }
- if(StringUtils.isNotEmpty(insPlyIncomeVo.getCreateTimeQuery())){
- params.put("createTimeQuery", insPlyIncomeVo.getCreateTimeQuery());
- }
- if(StringUtils.isNotEmpty(insPlyIncomeVo.getSettlementDate())){
- params.put("settlementDate", insPlyIncomeVo.getSettlementDate());
- }
- if(StringUtils.isNotEmpty(insPlyIncomeVo.getIsExternal())){
- params.put("isExternal", insPlyIncomeVo.getIsExternal());
- }
- if(StringUtils.isNotEmpty(insPlyIncomeVo.getCreateTimeEnd())){
- params.put("createTimeEnd", insPlyIncomeVo.getCreateTimeEnd());
- }
- if(StringUtils.isNotEmpty(insPlyIncomeVo.getCreateTimeStart())){
- params.put("createTimeStart", insPlyIncomeVo.getCreateTimeStart());
- }
- if(StringUtils.isNotEmpty(insPlyIncomeVo.getStatus())){
- params.put("status", insPlyIncomeVo.getStatus());
- }
- if(StringUtils.isNotBlank(insPlyIncomeVo.getAddType())){
- params.put("addType", insPlyIncomeVo.getAddType());
- }
- return params;
- }
- @Override
- public HttpResult<BasePageResult<InsPlyIncome>> nonSettlementQuery(InsPlyIncomeVo insPlyIncomeVo) {
- try {
- HashMap<String, Object> params = new HashMap<>();
- PageInfo<List<InsPlyIncome>> pageHelper = null;
- PageHelper.startPage(insPlyIncomeVo.getPageNum(), insPlyIncomeVo.getPageSize());
- params.put("pageNum", insPlyIncomeVo.getPageNum());
- params.put("pageSize", insPlyIncomeVo.getPageSize());
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getIsNotCar())) {
- params.put("isNotCar", insPlyIncomeVo.getIsNotCar());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getIsNotDocumentary())) {
- params.put("isOther", insPlyIncomeVo.getIsNotDocumentary());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getYear())) {
- params.put("year", insPlyIncomeVo.getYear());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getMonth())) {
- params.put("month", insPlyIncomeVo.getMonth());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getDocumentaryFeesStatus())) {
- params.put("documentaryFeesStatus", insPlyIncomeVo.getDocumentaryFeesStatus());
- }
- List<InsPlyIncome> list = this.baseMapper.NonSettlementQuery(params);
- pageHelper = new PageInfo(list);
- BasePageResult<InsPlyIncome> pageResult = new BasePageResult<InsPlyIncome>(insPlyIncomeVo.getPageNum(),
- insPlyIncomeVo.getPageSize(), pageHelper.getTotal(), pageHelper.getPages(), list);
- return HttpResult.ok(pageResult);
- } catch (Exception e) {
- e.printStackTrace();
- return HttpResult.error("查询异常");
- }
- }
- @Override
- public HttpResult<List<InsPlyIncome>> nonSettldetail(InsPlyIncomeVo insPlyIncomeVo) {
- try {
- String ids = insPlyIncomeVo.getIds();
- ArrayList<InsPlyIncome> resultList = new ArrayList<>();
- if (ObjectUtils.isNotEmpty(ids)) {
- String[] split = ids.split(",");
- for (int i = 0; i < split.length; i++) {
- String id = split[i];
- resultList.add(this.baseMapper.getById(id));
- }
- }
- return HttpResult.ok(resultList);
- } catch (Exception e) {
- e.printStackTrace();
- return HttpResult.error("查询异常");
- }
- }
- /**
- * @param multipartFile
- * @return totalAmount 总金额
- * totalHandingAmount 总手续费金额
- * totalOtherAmount 总跟单费金额
- * resultHashMap 返回 ids 已经上面的金额
- * resultNoSelect 未匹配的车牌号
- */
- @Override
- public HashMap<String, Object> importData(MultipartFile multipartFile) {
- BigDecimal totalAmount = BigDecimal.ZERO;
- BigDecimal totalHandingAmount = BigDecimal.ZERO;
- BigDecimal totalOtherAmount = BigDecimal.ZERO;
- HashMap<String, Object> resultHashMap = new HashMap<>();
- HashSet<String> partnerCompaniesIdSet = new HashSet<>();
- List<String> ids = new ArrayList<>();
- LocalDateTime now = LocalDateTime.now();
- ArrayList<HashMap<String, Object>> resultNoSelect = new ArrayList<>();
- try {
- List<InsPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsPlyIncomeExcelDto.class, 0, 1, 1);
- for (InsPlyIncomeExcelDto excelItem : dtoList) {
- String reason ="";
- HashMap<String, Object> objectObjectHashMap = new HashMap<>();
- if (StringUtils.isNotEmpty(excelItem.getLicenseno())) {
- objectObjectHashMap.put("licenseno", excelItem.getLicenseno());//车牌号
- }
- if (StringUtils.isNotEmpty(excelItem.getPolicyno())) {
- objectObjectHashMap.put("policyno", excelItem.getPolicyno()); //交强保单号
- }
- if (StringUtils.isNotEmpty(excelItem.getSyPolicyno())) {
- objectObjectHashMap.put("syPolicyno", excelItem.getSyPolicyno());//商业保单号
- }
- if (StringUtils.isNotEmpty(excelItem.getNoPolicyno())) {
- objectObjectHashMap.put("noPolicyno", excelItem.getNoPolicyno()); //非车保单号
- }
- objectObjectHashMap.put("agreementType","1");
- InsPlyIncome insPlyIncome = baseMapper.findByLicenseno(objectObjectHashMap);
- if (ObjectUtils.isNotEmpty(insPlyIncome)) {
- // 如果能查询出来则 修改结算 变成已结算
- if(excelItem.getJqReceivableProportion()!=null && excelItem.getJqReceivableProportion().compareTo(BigDecimal.ZERO) !=0 ){
- objectObjectHashMap.put("jqReceivableProportion", excelItem.getJqReceivableProportion()); //非车保单号
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(objectObjectHashMap);
- if(insPlyIncomes.isEmpty()){
- reason="交强应收比例错误!";
- }
- }
- if(excelItem.getSyReceivableProportion()!=null && excelItem.getSyReceivableProportion().compareTo(BigDecimal.ZERO) !=0 ){
- objectObjectHashMap.put("syReceivableProportion", excelItem.getSyReceivableProportion()); //非车保单号
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(objectObjectHashMap);
- if(insPlyIncomes.isEmpty() && StringUtils.isEmpty(reason)){
- reason="商业应收比例错误!";
- }
- }
- if(excelItem.getNoReceivableProportion()!=null && excelItem.getNoReceivableProportion().compareTo(BigDecimal.ZERO) !=0 ){
- objectObjectHashMap.put("noReceivableProportion", excelItem.getNoReceivableProportion()); //非车保单号
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(objectObjectHashMap);
- if(insPlyIncomes.isEmpty() && StringUtils.isEmpty(reason)){
- reason="非车应收比例错误!";
- }
- }
- //判断是否是相同保司机构
- partnerCompaniesIdSet.add(insPlyIncome.getPartnerCompaniesId());
- if(StringUtils.isNotEmpty(reason)){
- objectObjectHashMap.put("reason",reason);
- resultNoSelect.add(objectObjectHashMap); // 添加未匹配的车牌号
- }else {
- ids.add(insPlyIncome.getId());
- if (insPlyIncome.getAllFeeValue() != null && insPlyIncome.getAllFeeValue().compareTo(BigDecimal.ZERO) != 0) {
- totalAmount = totalAmount.add(insPlyIncome.getAllFeeValue()); //总金额
- }
- if (insPlyIncome.getCommissionFeevalue() != null && insPlyIncome.getCommissionFeevalue().compareTo(BigDecimal.ZERO) != 0) {
- totalHandingAmount = totalHandingAmount.add(insPlyIncome.getCommissionFeevalue()); //总手续费
- }
- if (insPlyIncome.getOtherFeevalue() != null && insPlyIncome.getOtherFeevalue().compareTo(BigDecimal.ZERO) != 0) {
- totalOtherAmount = totalOtherAmount.add(insPlyIncome.getOtherFeevalue()); //总跟单费
- }
- }
- } else {
- objectObjectHashMap.put("reason","未查询车辆");
- resultNoSelect.add(objectObjectHashMap); // 添加未匹配的车牌号
- }
- }
- // if(partnerCompaniesIdSet.size()>1){
- // throw new SystemException("表里有不同保司机构");
- // }
- resultHashMap.put("totalAmount", totalAmount);
- resultHashMap.put("totalHandingAmount", totalHandingAmount);
- resultHashMap.put("totalOtherAmount", totalOtherAmount);
- resultHashMap.put("resultList", resultNoSelect);
- resultHashMap.put("settIdList",ids);
- return resultHashMap;
- } catch (IOException e) {
- throw new SystemException("导入失败!");
- }
- }
- /**
- * @param multipartFile
- * @return resultList 包含总金额 还有 未匹配表中的数据
- */
- @Override
- public HashMap<String, Object> bxImportData(MultipartFile multipartFile, String isNotCar) {
- BigDecimal totalAmount = BigDecimal.ZERO;
- HashMap<String, Object> params = new HashMap<>();
- ArrayList<HashMap<String, Object>> resultList = new ArrayList<>();
- HashMap<String, Object> resultMap = new HashMap<>();
- StringBuffer strBuilder = new StringBuffer();
- boolean open = true;
- String ids = "";
- try {
- List<InsBxPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxPlyIncomeExcelDto.class, 0, 1, 1);
- Integer i = 0;
- if (!CollectionUtils.isEmpty(dtoList)) {
- for (InsBxPlyIncomeExcelDto excelItem : dtoList) {
- String reason = "";
- i = i + 1;
- params.clear();
- if (StringUtils.isNotEmpty(excelItem.getLicenseno())) {
- String licenseno = excelItem.getLicenseno();//车牌号
- params.put("licenseno", licenseno);
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (ObjectUtils.isEmpty(byBxLicenseno)) {
- reason = "该数据车牌号有问题";
- }
- }
- if (StringUtils.isNotEmpty(excelItem.getPolicyno())) {
- String policyno = excelItem.getPolicyno(); //交强保单号
- params.put("policyno", policyno);
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (ObjectUtils.isEmpty(byBxLicenseno)) {
- reason = "该数据交强保单号有问题";
- }
- }
- if (StringUtils.isNotEmpty(excelItem.getSyPolicyno())) {
- String syPolicyno = excelItem.getSyPolicyno(); //商业保单号
- params.put("syPolicyno", syPolicyno);
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (ObjectUtils.isEmpty(byBxLicenseno)) {
- reason = "该数据商业保单号有问题";
- }
- }
- if (excelItem.getJqSuperviseCostsProportion() != null && excelItem.getJqSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- params.put("jqSuperviseCostsProportion", excelItem.getJqSuperviseCostsProportion());
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (ObjectUtils.isEmpty(byBxLicenseno)) {
- reason = "该数据交强手续费比例有问题";
- }
- }
- if (excelItem.getSySuperviseCostsProportion() != null && excelItem.getSySuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- params.put("sySuperviseCostsProportion", excelItem.getSySuperviseCostsProportion());
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (ObjectUtils.isEmpty(byBxLicenseno)) {
- reason = "该数据商业手续费比例有问题";
- }
- }
- // 只查手续费
- params.put("isOther", "0");
- params.put("isNotCar", isNotCar);
- InsPlyIncome insPlyIncome = baseMapper.findByBxLicenseno(params);
- if (ObjectUtils.isNotEmpty(insPlyIncome) && open) {
- open = false;
- resultMap.put("companyId", insPlyIncome.getCompanyId()); // 保险公司id
- resultMap.put("partnerCompaniesId", insPlyIncome.getPartnerCompaniesId()); //合作公司id
- resultMap.put("agreementId", insPlyIncome.getAgreementId()); //协议id
- }
- if (ObjectUtils.isNotEmpty(insPlyIncome)) { // 比配上汇总金额 未匹配则返回到数据当中
- strBuilder.append(insPlyIncome.getId()).append(",");
- if (insPlyIncome.getCommissionFeevalue() != null && insPlyIncome.getCommissionFeevalue().compareTo(BigDecimal.ZERO) != 0) {
- totalAmount = totalAmount.add(insPlyIncome.getCommissionFeevalue()); //添加总手续费
- }
- } else {
- HashMap<String, Object> noMatching = new HashMap<>();
- if (StringUtils.isNotEmpty(excelItem.getLicenseno())) {
- noMatching.put("licenseno", excelItem.getLicenseno());
- }
- if (StringUtils.isNotEmpty(excelItem.getPolicyno())) {
- noMatching.put("policyno", excelItem.getPolicyno());
- }
- if (StringUtils.isNotEmpty(excelItem.getSyPolicyno())) {
- noMatching.put("syPolicyno", excelItem.getSyPolicyno());
- }
- resultList.add(noMatching);
- }
- resultMap.put("reason", reason);
- }
- }
- if (strBuilder.length() > 0) {
- ids = strBuilder.deleteCharAt(strBuilder.length() - 1).toString();
- }
- resultMap.put("ids", ids);
- resultMap.put("totalAmount", totalAmount);
- resultMap.put("resultList", resultList);
- return resultMap;
- } catch (IOException e) {
- throw new SystemException("导入失败!");
- }
- }
- @Override
- public HashMap<String, Object> bxImportNoData(MultipartFile multipartFile, String isNotCar) {
- BigDecimal totalAmount = BigDecimal.ZERO;
- HashMap<String, Object> params = new HashMap<>();
- HashMap<String, Object> resultMap = new HashMap<>();
- ArrayList<HashMap<String, Object>> resultList = new ArrayList<>();
- StringBuffer strBuilder = new StringBuffer();
- String ids = "";
- try {
- Integer i = 0;
- List<InsBxNoPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxNoPlyIncomeExcelDto.class, 0, 1, 1);
- if (!CollectionUtils.isEmpty(dtoList)) {
- for (InsBxNoPlyIncomeExcelDto excelItem : dtoList) {
- String reason = "";
- i = i + 1;
- params.clear();
- if (StringUtils.isNotEmpty(excelItem.getLicenseno())) {
- String licenseno = excelItem.getLicenseno();//车牌号
- params.put("licenseno", licenseno);
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (ObjectUtils.isEmpty(byBxLicenseno)) {
- reason = "该数据车牌号有问题";
- }
- }
- if (StringUtils.isNotEmpty(excelItem.getNoPolicyno())) {
- String policyno = excelItem.getNoPolicyno(); //非车保单号
- params.put("NoPolicyno", policyno);
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (ObjectUtils.isEmpty(byBxLicenseno)) {
- reason = "该数据非车保单号有问题";
- }
- }
- if (excelItem.getNoSuperviseCostsProportion() != null && excelItem.getNoSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- params.put("noSuperviseCostsProportion", excelItem.getNoSuperviseCostsProportion());
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (ObjectUtils.isEmpty(byBxLicenseno)) {
- reason = "该数据非车手续费比例有问题";
- }
- }
- // 只查手续费
- params.put("isOther", "0");
- params.put("isNotCar", isNotCar);
- InsPlyIncome insPlyIncome = baseMapper.findByBxLicenseno(params);
- if (i == dtoList.size() && ObjectUtils.isNotEmpty(insPlyIncome)) {
- resultMap.put("companyId", insPlyIncome.getCompanyId()); // 保险公司id
- resultMap.put("partnerCompaniesId", insPlyIncome.getPartnerCompaniesId()); //合作公司id
- resultMap.put("agreementId", insPlyIncome.getAgreementId()); //协议id
- }
- if (ObjectUtils.isNotEmpty(insPlyIncome)) { // 比配上汇总金额 未匹配则返回到数据当中
- strBuilder.append(insPlyIncome.getId()).append(",");
- if (insPlyIncome.getCommissionFeevalue() != null && insPlyIncome.getCommissionFeevalue().compareTo(BigDecimal.ZERO) != 0) {
- totalAmount = totalAmount.add(insPlyIncome.getCommissionFeevalue()); //添加总手续费
- }
- } else {
- HashMap<String, Object> noMatching = new HashMap<>();
- if (StringUtils.isNotEmpty(excelItem.getLicenseno())) {
- noMatching.put("licenseno", excelItem.getLicenseno());
- }
- if (StringUtils.isNotEmpty(excelItem.getNoPolicyno())) {
- noMatching.put("NoPolicyno", excelItem.getNoPolicyno());
- }
- resultList.add(noMatching);
- }
- resultMap.put("reason", reason);
- }
- if (strBuilder.length() > 0) {
- ids = strBuilder.deleteCharAt(strBuilder.length() - 1).toString();
- }
- resultMap.put("ids", ids);
- resultMap.put("totalAmount", totalAmount);
- resultMap.put("resultList", resultList);
- }
- return resultMap;
- } catch (IOException e) {
- throw new SystemException("导入失败!");
- }
- }
- @Override
- public HttpResult bxOtherDetailsExcel(InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params);
- String filePathName = "";
- List<BxOtherDetailsNorExcel> resultNoList = new ArrayList<>();
- List<BxOtherDetailsExcel> resultList = new ArrayList<>();
- //判断是否是非车 1 是非车
- if ("1".equals(insPlyIncomeVo.getIsNotCar())) {
- filePathName = "非车跟单明细导出";
- ExportParams exportParams = new ExportParams("非车跟单明细", null, ExcelType.HSSF);
- exportParams.setStyle(ExcelStyleUtil.class);
- for (InsPlyIncome item : insPlyIncomes) {
- BxOtherDetailsNorExcel bxOtherDetailsNorExcel = new BxOtherDetailsNorExcel();
- LocalDateTime signDate = item.getSignDate();
- BeanUtils.copyProperties(item, bxOtherDetailsNorExcel);
- bxOtherDetailsNorExcel.setSigndate(signDate);
- resultNoList.add(bxOtherDetailsNorExcel);
- }
- } else {
- filePathName = "车险跟单明细导出";
- ExportParams exportParams = new ExportParams("车险跟单明细", null, ExcelType.HSSF);
- exportParams.setStyle(ExcelStyleUtil.class);
- for (InsPlyIncome item : insPlyIncomes) {
- BxOtherDetailsExcel bxOtherDetailsExcel = new BxOtherDetailsExcel();
- LocalDateTime signDate = item.getSignDate();
- BeanUtils.copyProperties(item, bxOtherDetailsExcel);
- bxOtherDetailsExcel.setSigndate(signDate);
- resultList.add(bxOtherDetailsExcel);
- }
- }
- String uploadPath = this.uploadPath + "/excel/";
- Path path = Paths.get(uploadPath);
- if (!Files.exists(path)) {
- try {
- Files.createDirectories(path);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- String fileName = "";
- if ("1".equals(insPlyIncomeVo.getIsNotCar())) {
- fileName = EasyExcelUtils.downExcel(uploadPath, filePathName, BxOtherDetailsNorExcel.class, resultNoList);
- } else {
- fileName = EasyExcelUtils.downExcel(uploadPath, filePathName, BxOtherDetailsExcel.class, resultList);
- }
- return HttpResult.ok("", uploadUrl + "excel/" + fileName);
- }
- /**
- * @param insPlyIncomeVo 传参字段
- * ids 通过ids中的id进行开票分组
- * @return
- */
- @Override
- public HttpResult<List<SettlementDocumentaryFeesEntity>> invicdetail(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- if (StringUtils.isEmpty(insPlyIncomeVo.getIsSettlement())) {
- params.put("isSettlement", "1");
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getSettlementStatus())) {
- params.put("settlementStatus", insPlyIncomeVo.getSettlementStatus());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getCompletionStatus())) {
- params.put("completionStatus", insPlyIncomeVo.getCompletionStatus());
- }
- List<SettlementDocumentaryFeesEntity> resultList = settlementDocumentaryFeesService.querySettleNew(params);
- if (resultList.size() > 0) {
- return HttpResult.ok(resultList);
- }
- return HttpResult.ok();
- }
- /***
- *
- * @param insPlyIncomeVo
- * @param request
- * @param response
- * @return 保险非车跟单明细导出
- */
- @Override
- public HttpResult bxNoOtherDetailsExcel(InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params);
- ExportParams exportParams = new ExportParams("保险非车跟单明细导出", null, ExcelType.HSSF);
- exportParams.setStyle(ExcelStyleUtil.class);
- List<BxNoOtherDetailsExcel> resultList = new ArrayList<>();
- for (InsPlyIncome item : insPlyIncomes) {
- BxNoOtherDetailsExcel bxNoOtherDetailsExcel = new BxNoOtherDetailsExcel();
- BeanUtils.copyProperties(item, bxNoOtherDetailsExcel);
- resultList.add(bxNoOtherDetailsExcel);
- }
- String uploadPath = this.uploadPath + "/excel/";
- Path path = Paths.get(uploadPath);
- if (!Files.exists(path)) {
- try {
- Files.createDirectories(path);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- String fileName = EasyExcelUtils.downExcel(uploadPath, "保险非车跟单明细导出", BxNoOtherDetailsExcel.class, resultList);
- return HttpResult.ok("", uploadUrl + "excel/" + fileName);
- }
- /**
- * @param insPlyIncomeVo 开票ids
- * @return 返回开票号 开票金额 开票时间
- */
- @Override
- public HttpResult<List<HashMap<String, Object>>> otherSettldetail(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- List<HashMap<String, Object>> resultList = settlementDocumentaryFeesService.getOtherSettldetail(params);
- if (resultList.size() > 0) {
- return HttpResult.ok(resultList);
- }
- return HttpResult.ok();
- }
- @Override
- public InsPlyIncome getEntityById(String id) {
- return baseMapper.getEntityById(id);
- }
- @Override
- @Transactional
- public void updateByEntity(InsPlyIncomeVo insPlyIncomeVo) {
- // 根据协议 如果是含增值税结算 用保费 * 如果是 不含税保费
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- BeanUtils.copyProperties(insPlyIncomeVo, insPlyIncome);
- if(StringUtils.isNotEmpty(insPlyIncomeVo.getSignDate())){
- String signDate = insPlyIncomeVo.getSignDate();
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- LocalDate date = LocalDate.parse(signDate, formatter);
- LocalDateTime dateTime = date.atStartOfDay();
- insPlyIncome.setSignDate(dateTime);
- }
- InsPlyIncome byId = baseMapper.getById(insPlyIncomeVo.getId());
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(insPlyIncome.getId());
- BeanUtils.copyProperties(byId,insPlyIncomeLog);
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setOperationStatus("2");
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- this.amountCalculate(insPlyIncomeVo, insPlyIncome);
- String agreementId = insPlyIncomeVo.getAgreementId();
- if(StringUtils.isNotEmpty(agreementId)){
- PtlAgreement byId1 = ptlAgreementService.getById(agreementId);
- if(ObjectUtils.isNotEmpty(byId1)){
- String partnerCompaniesId = byId1.getPartnerCompaniesId();
- String insuranceCompanyId = byId1.getInsuranceCompanyId();
- String insuranceCompany = byId1.getInsuranceCompany();
- if(StringUtils.isNotEmpty(partnerCompaniesId)){
- insPlyIncome.setPartnerCompaniesId(partnerCompaniesId);
- EsmInsCompany esmInsCompany = EsmInsCompanyService.getById(partnerCompaniesId);
- String name = esmInsCompany.getNamesimple(); //合作名称
- insPlyIncome.setPartnerCompaniesName(name);
- }
- insPlyIncome.setCompanyId(insuranceCompanyId);
- insPlyIncome.setCompanyName(insuranceCompany);
- }
- }
- insPlyIncome.setUpdateUserId(BaseController.getUser().getId());
- baseMapper.updateById(insPlyIncome);
- }
- @Override
- public void updateNoHand(InsPlyIncomeVo insPlyIncomeVo) {
- // 根据协议 如果是含增值税结算 用保费 * 如果是 不含税保费
- InsPlyIncome insPlyIncome = baseMapper.getById(insPlyIncomeVo.getId());
- String agreementId = insPlyIncomeVo.getAgreementId();
- BigDecimal bigDecimal = this.getBigDecimal(insPlyIncome.getNoPremium(), insPlyIncomeVo.getNoSuperviseCostsProportion());
- insPlyIncome.setCommissionFeevalue(bigDecimal);
- insPlyIncome.setCommissionFeerate(insPlyIncomeVo.getNoSuperviseCostsProportion());
- insPlyIncome.setNoSuperviseCostsPremiums(bigDecimal);
- insPlyIncome.setAllFeeValue(bigDecimal);
- insPlyIncome.setUpdateUserId(BaseController.getUser().getId());
- insPlyIncome.setNoSuperviseCostsProportion(insPlyIncomeVo.getNoSuperviseCostsProportion());
- insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
- insPlyIncome.setAddType(insPlyIncomeVo.getAddType());
- if(StringUtils.isNotEmpty(agreementId)){
- PtlAgreement byId1 = ptlAgreementService.getById(agreementId);
- if(ObjectUtils.isNotEmpty(byId1)){
- String partnerCompaniesId = byId1.getPartnerCompaniesId();
- String insuranceCompanyId = byId1.getInsuranceCompanyId();
- String insuranceCompany = byId1.getInsuranceCompany();
- if(StringUtils.isNotEmpty(partnerCompaniesId)){
- insPlyIncome.setPartnerCompaniesId(partnerCompaniesId);
- EsmInsCompany esmInsCompany = EsmInsCompanyService.getById(partnerCompaniesId);
- String name = esmInsCompany.getNamesimple(); //合作名称
- insPlyIncome.setPartnerCompaniesName(name);
- }
- insPlyIncome.setCompanyId(insuranceCompanyId);
- insPlyIncome.setCompanyName(insuranceCompany);
- }
- }
- baseMapper.updateById(insPlyIncome);
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(insPlyIncome.getId());
- BeanUtils.copyProperties(insPlyIncome,insPlyIncomeLog);
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setOperationStatus("2");
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- insPlyIncomeVo.setOtherFeevalue(insPlyIncomeVo.getNoSuperviseCostsPremiums());
- insPlyIncomeVo.setCrudStatus("2");
- this.saveLog(insPlyIncomeVo);
- }
- @Override
- public HttpResult<Object> batchPinBalanceNew(InsPlyIncomeVo insPlyIncomeVo) {
- LocalDateTime now = LocalDateTime.now();
- if(!CollectionUtils.isEmpty(insPlyIncomeVo.getSettIdList())){
- for (String id : insPlyIncomeVo.getSettIdList()){
- InsPlyIncome insPlyIncome = baseMapper.getById(id);
- if("1".equals(insPlyIncome.getHandlingFeesStatus())){
- throw new SystemException("有已结算数据");
- }
- insPlyIncome.setSettlementImageId(insPlyIncomeVo.getSettlementImageId());
- insPlyIncome.setSettlementUserId(BaseController.getUser().getId());
- insPlyIncome.setSettlementTime(now);
- insPlyIncome.setId(id);
- insPlyIncome.setHandlingFeesStatus("1");
- baseMapper.updateById(insPlyIncome);
- }
- }
- return HttpResult.ok();
- }
- /**
- * @param insPlyIncomeVo
- * @param insPlyIncome 重新计算金额 通过比例
- * 计算逻辑 交强不含税保费* 交强跟单比例 = 交强跟单金额
- */
- private void amountCalculate(InsPlyIncomeVo insPlyIncomeVo, InsPlyIncome insPlyIncome) {
- if ("1".equals(insPlyIncomeVo.getAgreementType())) { //平台
- // 平台 手续费 +跟单费 = 应收 手续费 = 手续费比例*保费 应收比例=手续费比例 + 跟单比例
- BigDecimal jqSuperviseCostsProportion = initializationBigdecimal(insPlyIncomeVo.getJqSuperviseCostsProportion());//交强手续费比例
- BigDecimal sySuperviseCostsProportion = initializationBigdecimal(insPlyIncomeVo.getSySuperviseCostsProportion()); //商业手续费比例
- BigDecimal noSuperviseCostsProportion = initializationBigdecimal(insPlyIncomeVo.getNoSuperviseCostsProportion()); //非车手续费比例
- BigDecimal jqOtherCostsProportion = initializationBigdecimal(insPlyIncomeVo.getJqOtherCostsProportion()); //交强跟单比例
- BigDecimal syOtherCostsProportion = initializationBigdecimal(insPlyIncomeVo.getSyOtherCostsProportion()); //商业跟单比例
- BigDecimal noOtherCostsProportion = initializationBigdecimal(insPlyIncomeVo.getNoOtherCostsProportion()); //非车跟单比例
- BigDecimal jqPremium = initializationBigdecimal(insPlyIncomeVo.getJqPremium()); //交强保费
- BigDecimal syPremium = initializationBigdecimal(insPlyIncomeVo.getSyPremium()); //商业保费
- BigDecimal noPremium = initializationBigdecimal(insPlyIncomeVo.getNoPremium()); //非车保费
- //手续费比例
- insPlyIncome.setCommissionFeerate(this.calculateTotal(jqSuperviseCostsProportion, sySuperviseCostsProportion,
- noSuperviseCostsProportion)); //手续费比例 = 商业手续费比例 + 交强手续费比例 + 非车手续费比例
- if (jqSuperviseCostsProportion != null && jqPremium != null) {
- insPlyIncome.setJqSuperviseCostsPremiums(algorithmAmount(jqPremium, jqSuperviseCostsProportion)); //交强手续费
- insPlyIncome.setJqSuperviseCostsProportion(jqSuperviseCostsProportion);
- }
- if (sySuperviseCostsProportion != null && syPremium != null) {
- insPlyIncome.setSySuperviseCostsPremiums(algorithmAmount(syPremium, sySuperviseCostsProportion)); //商业手续费
- insPlyIncome.setSySuperviseCostsProportion(sySuperviseCostsProportion);
- }
- if (noSuperviseCostsProportion != null && noPremium != null) {
- insPlyIncome.setNoSuperviseCostsPremiums(algorithmAmount(noPremium, noSuperviseCostsProportion)); //非车手续费
- insPlyIncome.setNoSuperviseCostsProportion(noSuperviseCostsProportion);
- }
- if (jqOtherCostsProportion != null && jqPremium != null) {
- insPlyIncome.setJqOtherCostsPremium(algorithmAmount(jqPremium, jqOtherCostsProportion)); //交强跟单费
- insPlyIncome.setJqOtherCostsProportion(jqOtherCostsProportion);
- }
- if (syOtherCostsProportion != null && syPremium != null) {
- insPlyIncome.setSyOtherCostsPremium(algorithmAmount(syPremium, syOtherCostsProportion)); //商业跟单费
- insPlyIncome.setSyOtherCostsProportion(syOtherCostsProportion);
- }
- if (noOtherCostsProportion != null && noPremium != null) {
- insPlyIncome.setNoOtherCostsPremium(algorithmAmount(noPremium, noOtherCostsProportion)); //非车跟单费
- insPlyIncome.setNoOtherCostsProportion(noOtherCostsProportion);
- }
- insPlyIncome.setCommissionFeevalue(this.calculateTotal(insPlyIncome.getJqSuperviseCostsPremiums(), insPlyIncome.getSySuperviseCostsPremiums(), insPlyIncome.getNoSuperviseCostsPremiums())); //手续费
- insPlyIncome.setCommissionFeerate(this.calculateTotal(jqSuperviseCostsProportion, sySuperviseCostsProportion,
- noSuperviseCostsProportion)); //手续费比例
- insPlyIncome.setOtherFeevalue(this.calculateTotal(insPlyIncome.getJqOtherCostsPremium(), insPlyIncome.getSyOtherCostsPremium(), insPlyIncome.getNoOtherCostsPremium())); //跟单费金额
- insPlyIncome.setOtherFeerate(this.calculateTotal(jqOtherCostsProportion, syOtherCostsProportion, noOtherCostsProportion));
- //跟单费比例
- //应收比例 交强应收比例=交强手续费比例+交强非跟单比例
- insPlyIncome.setJqReceivableProportion(this.calculateTotal(jqSuperviseCostsProportion, jqOtherCostsProportion, null)); //交强应收
- insPlyIncome.setSyReceivableProportion(this.calculateTotal(sySuperviseCostsProportion, syOtherCostsProportion, null)); //商业应收
- insPlyIncome.setNoReceivableProportion(this.calculateTotal(noSuperviseCostsProportion, noOtherCostsProportion, null)); //非车应收
- if(insPlyIncomeVo.getPtCommissionFeevalue()!=null && insPlyIncomeVo.getPtCommissionFeevalue().compareTo(BigDecimal.ZERO) >0){
- insPlyIncome.setCommissionFeevalue(insPlyIncomeVo.getPtCommissionFeevalue());
- }
- if(insPlyIncomeVo.getPtOtherFeevalue()!=null && insPlyIncomeVo.getPtOtherFeevalue().compareTo(BigDecimal.ZERO) >0){
- insPlyIncome.setOtherFeevalue(insPlyIncomeVo.getPtOtherFeevalue());
- }
- insPlyIncome.setAllFeeValue(this.calculateTotal(insPlyIncome.getCommissionFeevalue(), insPlyIncome.getOtherFeevalue(), null)); // 总费用 = 手续费+跟单费
- insPlyIncome.setReceivableAmount(this.calculateTotal(insPlyIncome.getCommissionFeevalue(), insPlyIncome.getOtherFeevalue(), null));
- } else {
- String agreementId = insPlyIncomeVo.getAgreementId();
- BigDecimal jqNoTaxPremium = insPlyIncomeVo.getJqPremium();// 交强手续费 按照思路 交强不含税保费* 交强手续费比例 =交强手续费
- BigDecimal syNoTaxPremium = insPlyIncomeVo.getSyPremium();// 商业手续费 按照思路 商业不含税保费* 商业手续费比例 =商业手续费
- BigDecimal noNoTaxPremium = insPlyIncomeVo.getNoPremium();// 非车手续费 按照思路 非车不含税保费* 非车手续费比例 =非车手续费
- if(StringUtils.isNotEmpty(agreementId)){
- PtlAgreement ptlAgreement = ptlAgreementService.getById(agreementId);
- if(StringUtils.isNotEmpty(ptlAgreement.getWithTax()) && "是".equals(ptlAgreement.getWithTax())){
- if (jqNoTaxPremium != null && insPlyIncomeVo.getJqSuperviseCostsProportion() != null && insPlyIncomeVo.getJqSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setJqSuperviseCostsPremiums(algorithmAmount(jqNoTaxPremium, insPlyIncomeVo.getJqSuperviseCostsProportion()));
- insPlyIncome.setJqSuperviseCostsProportion(insPlyIncomeVo.getJqSuperviseCostsProportion());
- }
- if (syNoTaxPremium != null && insPlyIncomeVo.getSySuperviseCostsProportion() != null && insPlyIncomeVo.getSySuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setSySuperviseCostsPremiums(algorithmAmount(syNoTaxPremium, insPlyIncomeVo.getSySuperviseCostsProportion()));
- insPlyIncome.setSySuperviseCostsProportion(insPlyIncomeVo.getSySuperviseCostsProportion());
- }
- if (noNoTaxPremium != null && insPlyIncomeVo.getNoSuperviseCostsProportion() != null && insPlyIncomeVo.getNoSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setNoSuperviseCostsProportion(insPlyIncome.getNoSuperviseCostsProportion());
- insPlyIncome.setNoSuperviseCostsPremiums(algorithmAmount(noNoTaxPremium, insPlyIncomeVo.getNoSuperviseCostsProportion()));
- }
- if (jqNoTaxPremium != null && insPlyIncomeVo.getJqOtherCostsProportion() != null && insPlyIncomeVo.getJqOtherCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setJqOtherCostsPremium(algorithmAmount(jqNoTaxPremium, insPlyIncomeVo.getJqOtherCostsProportion()));
- insPlyIncome.setJqOtherCostsProportion(insPlyIncomeVo.getJqOtherCostsProportion());
- }
- if (syNoTaxPremium != null && insPlyIncomeVo.getSyOtherCostsProportion() != null && insPlyIncomeVo.getSyOtherCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setSyOtherCostsProportion(insPlyIncome.getSyOtherCostsProportion());
- insPlyIncome.setSyOtherCostsPremium(algorithmAmount(syNoTaxPremium, insPlyIncomeVo.getSyOtherCostsProportion()));
- }
- if (noNoTaxPremium != null && insPlyIncomeVo.getOtherFeerate() != null && insPlyIncomeVo.getOtherFeerate().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setNoOtherCostsProportion(insPlyIncome.getOtherFeerate());
- insPlyIncome.setNoOtherCostsPremium(algorithmAmount(noNoTaxPremium, insPlyIncomeVo.getOtherFeerate()));
- }
- }else {
- if (jqNoTaxPremium != null && insPlyIncomeVo.getJqSuperviseCostsProportion() != null && insPlyIncomeVo.getJqSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setJqSuperviseCostsPremiums(getBigDecimal(jqNoTaxPremium, insPlyIncomeVo.getJqSuperviseCostsProportion()));
- insPlyIncome.setJqSuperviseCostsProportion(insPlyIncomeVo.getJqSuperviseCostsProportion());
- }
- if (syNoTaxPremium != null && insPlyIncomeVo.getSySuperviseCostsProportion() != null && insPlyIncomeVo.getSySuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setSySuperviseCostsPremiums(getBigDecimal(syNoTaxPremium, insPlyIncomeVo.getSySuperviseCostsProportion()));
- insPlyIncome.setSySuperviseCostsProportion(insPlyIncomeVo.getSySuperviseCostsProportion());
- }
- if (noNoTaxPremium != null && insPlyIncomeVo.getNoSuperviseCostsProportion() != null && insPlyIncomeVo.getNoSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setNoSuperviseCostsProportion(insPlyIncome.getNoSuperviseCostsProportion());
- insPlyIncome.setNoSuperviseCostsPremiums(getBigDecimal(noNoTaxPremium, insPlyIncomeVo.getNoSuperviseCostsProportion()));
- }
- if (jqNoTaxPremium != null && insPlyIncomeVo.getJqOtherCostsProportion() != null && insPlyIncomeVo.getJqOtherCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setJqOtherCostsPremium(getBigDecimal(jqNoTaxPremium, insPlyIncomeVo.getJqOtherCostsProportion()));
- insPlyIncome.setJqOtherCostsProportion(insPlyIncomeVo.getJqOtherCostsProportion());
- }
- if (syNoTaxPremium != null && insPlyIncomeVo.getSyOtherCostsProportion() != null ) {
- insPlyIncome.setSyOtherCostsProportion(insPlyIncome.getSyOtherCostsProportion());
- insPlyIncome.setSyOtherCostsPremium(getBigDecimal(syNoTaxPremium, insPlyIncomeVo.getSyOtherCostsProportion()));
- }
- if (noNoTaxPremium != null && insPlyIncomeVo.getOtherFeerate() != null && insPlyIncomeVo.getOtherFeerate().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setNoOtherCostsProportion(insPlyIncome.getOtherFeerate());
- insPlyIncome.setNoOtherCostsPremium(getBigDecimal(noNoTaxPremium, insPlyIncomeVo.getOtherFeerate()));
- }
- }
- }
- BigDecimal dividedAmount = jqNoTaxPremium.divide(new BigDecimal("1.06"), 5, BigDecimal.ROUND_DOWN);
- insPlyIncome.setJqNoTaxPremium(dividedAmount);
- BigDecimal taxPremium = insPlyIncome.getTaxPremium();
- BigDecimal noTaxPremium = taxPremium.divide(new BigDecimal("1.06"), 5, BigDecimal.ROUND_DOWN);
- insPlyIncome.setNoTaxPremium(noTaxPremium);
- if ("0".equals(insPlyIncomeVo.getIsNotDocumentary()) && "0".equals(insPlyIncomeVo.getIsNotCar())) { //保险 手续费 =不含税保费* 手续费比例
- insPlyIncome.setCommissionFeevalue(this.calculateTotal(insPlyIncome.getJqSuperviseCostsPremiums(), insPlyIncome.getSySuperviseCostsPremiums(), null)); // 手续费
- insPlyIncome.setCommissionFeerate(this.calculateTotal(insPlyIncome.getJqSuperviseCostsProportion(), insPlyIncome.getSySuperviseCostsProportion(), null));//手续费比例
- insPlyIncome.setAllFeeValue(this.calculateTotal(insPlyIncome.getCommissionFeevalue(), null, null));//总金额
- } else if ("1".equals(insPlyIncomeVo.getIsNotDocumentary()) && "0".equals(insPlyIncomeVo.getIsNotCar())) { //保险跟单费 交强跟单+商业跟单
- insPlyIncome.setOtherFeevalue(this.calculateTotal(insPlyIncome.getJqOtherCostsPremium(), insPlyIncome.getSyOtherCostsPremium(), null));
- insPlyIncome.setOtherFeerate(this.calculateTotal(insPlyIncome.getJqOtherCostsProportion(), insPlyIncome.getSyOtherCostsProportion(), null));
- insPlyIncome.setAllFeeValue(this.calculateTotal(insPlyIncome.getOtherFeevalue(), null, null));//总金额
- }
- if ("0".equals(insPlyIncomeVo.getIsNotDocumentary()) && "1".equals(insPlyIncomeVo.getIsNotCar())) {// 非车
- insPlyIncome.setCommissionFeevalue(this.calculateTotal(insPlyIncome.getNoSuperviseCostsPremiums(), null, null)); // 非车手续费
- insPlyIncome.setCommissionFeerate(this.calculateTotal(insPlyIncome.getNoSuperviseCostsProportion(), null, null)); //非车比例
- insPlyIncome.setAllFeeValue(this.calculateTotal(insPlyIncome.getCommissionFeevalue(), null, null));//总金额
- } else if ("1".equals(insPlyIncomeVo.getIsNotDocumentary()) && "1".equals(insPlyIncomeVo.getIsNotCar())) { //非车跟单
- insPlyIncome.setOtherFeevalue(this.calculateTotal(insPlyIncome.getNoOtherCostsPremium(), null, null)); //非车跟单金额
- insPlyIncome.setOtherFeerate(this.calculateTotal(insPlyIncome.getNoOtherCostsProportion(), null, null)); // 非车跟单比例
- insPlyIncome.setAllFeeValue(this.calculateTotal(insPlyIncome.getOtherFeevalue(), null, null));//总金额
- }
- }
- }
- /**
- * 计算 金额
- *
- * @param taxPremium
- * @param proportion
- * @return
- */
- private static BigDecimal getBigDecimal(BigDecimal taxPremium, BigDecimal proportion) {
- BigDecimal divisor = new BigDecimal("1.06"); // 示例除数
- // 先进行除法,保留5位小数,不进行四舍五入(使用RoundingMode.DOWN)
- BigDecimal dividedAmount = taxPremium.divide(divisor, 5, BigDecimal.ROUND_DOWN);
- // 将比例除以100,假设proportion是一个百分比值
- // 然后进行乘法,并进行舍入到5位小数
- BigDecimal result = dividedAmount.multiply( proportion.divide(new BigDecimal(100))).setScale(5, BigDecimal.ROUND_DOWN);
- return result;
- }
- /**
- * @param value1 保费
- * @param value2 比例
- * @return 费用
- */
- private BigDecimal algorithmAmount(BigDecimal value1, BigDecimal value2) {
- BigDecimal divide = value2.divide(new BigDecimal(100));
- return value1.multiply(divide).setScale(5,BigDecimal.ROUND_DOWN);
- }
- private BigDecimal initializationBigdecimal(BigDecimal value) {
- return value != null ? value : BigDecimal.ZERO;
- }
- private void saveLog(InsPlyIncomeVo insPlyIncomeVo) {
- // 添加记录
- SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
- settlementDocumentaryLogEntity.setCrudStatus(insPlyIncomeVo.getCrudStatus());
- settlementDocumentaryLogEntity.setAmount(insPlyIncomeVo.getOtherFeevalue());
- settlementDocumentaryLogEntity.setSettlementDocumentaryId(insPlyIncomeVo.getId());
- settlementDocumentaryLogEntity.setAmountType("2");
- settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
- }
- @Override
- @Transactional
- public HttpResult<InsPlyIncome> insertByEntity(InsPlyIncomeVo insPlyIncomeVo) {
- Long id = new SnowFlakeUtil().nextId();
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- insPlyIncomeVo.setOrderno(id.toString());
- String signdateStr = insPlyIncomeVo.getSignDate();
- LocalDateTime localDateTime = this.LocalDatePareLocalDateTime(signdateStr);
- insPlyIncomeVo.setSignDate(null);
- BeanUtils.copyProperties(insPlyIncomeVo, insPlyIncome);
- insPlyIncome.setUserId(BaseController.getUser().getId());
- insPlyIncome.setDocumentaryFeesStatus("0");
- insPlyIncome.setHandlingFeesStatus("0");
- insPlyIncome.setIsNotCar(insPlyIncomeVo.getIsNotCar()); // 是否是非车
- insPlyIncome.setIsNotDocumentary(insPlyIncomeVo.getIsNotDocumentary()); //是否是跟单
- insPlyIncome.setSignDate(localDateTime);
- insPlyIncome.setDeptId(BaseController.getUser().getDeptId());
- insPlyIncome.setCreateTime(LocalDateTime.now());
- insPlyIncome.setOtherFeerate(this.calculateTotal(insPlyIncomeVo.getJqOtherCostsProportion(),insPlyIncomeVo.getSyOtherCostsProportion(),insPlyIncomeVo.getNoOtherCostsProportion()));
- insPlyIncome.setCommissionFeerate(this.calculateTotal(insPlyIncomeVo.getJqSuperviseCostsProportion(),insPlyIncomeVo.getSySuperviseCostsProportion(),insPlyIncomeVo.getNoSuperviseCostsProportion()));
- if (insPlyIncome.getJqPremium() != null && insPlyIncome.getJqPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getJqSuperviseCostsProportion() != null && insPlyIncome.getJqSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setJqSuperviseCostsPremiums(getBigDecimal(insPlyIncome.getJqPremium(), insPlyIncomeVo.getJqSuperviseCostsProportion()));
- }
- if (insPlyIncome.getSyPremium() != null && insPlyIncome.getSyPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getSySuperviseCostsProportion() != null && insPlyIncome.getSySuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setSySuperviseCostsPremiums(getBigDecimal(insPlyIncome.getSyPremium(), insPlyIncomeVo.getSySuperviseCostsProportion()));
- }
- if (insPlyIncome.getNoPremium() != null && insPlyIncome.getNoPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getNoSuperviseCostsProportion() != null && insPlyIncome.getNoSuperviseCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setNoSuperviseCostsPremiums(getBigDecimal(insPlyIncome.getNoPremium(), insPlyIncomeVo.getNoSuperviseCostsProportion()));
- }
- if (insPlyIncome.getJqPremium() != null && insPlyIncome.getJqPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getJqOtherCostsProportion() != null && insPlyIncome.getJqOtherCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setJqOtherCostsPremium(getBigDecimal(insPlyIncome.getJqPremium(), insPlyIncomeVo.getJqOtherCostsProportion()));
- }
- if (insPlyIncome.getSyPremium() != null && insPlyIncome.getSyPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getSyOtherCostsProportion() != null && insPlyIncome.getSyOtherCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setSyOtherCostsPremium(getBigDecimal(insPlyIncome.getSyPremium(), insPlyIncomeVo.getSyOtherCostsProportion()));
- }
- if (insPlyIncome.getNoPremium() != null && insPlyIncome.getNoPremium().compareTo(BigDecimal.ZERO) != 0 && insPlyIncome.getNoOtherCostsProportion() != null && insPlyIncome.getNoOtherCostsProportion().compareTo(BigDecimal.ZERO) != 0) {
- insPlyIncome.setNoOtherCostsPremium(getBigDecimal(insPlyIncome.getNoPremium(), insPlyIncomeVo.getNoOtherCostsProportion()));
- }
- insPlyIncome.setAllFeeValue(this.calculateTotal(insPlyIncome.getCommissionFeevalue(),insPlyIncome.getOtherFeevalue(),null));
- String partnerCompaniesId = insPlyIncome.getPartnerCompaniesId();
- insPlyIncome.setPartnerCompaniesId(partnerCompaniesId);
- EsmInsCompany esmInsCompany = EsmInsCompanyService.getById(partnerCompaniesId);
- String name = esmInsCompany.getNamesimple(); //合作名称
- insPlyIncome.setPartnerCompaniesName(name);
- HashMap<String, Object> params = new HashMap<>();
- params.put("agreeId",insPlyIncomeVo.getAgreeId());
- PtlAgreement ptlAgreement = ptlAgreementService.selectAgreeId(params);
- if (ObjectUtils.isEmpty(ptlAgreement)) {
- return HttpResult.error("协议匹配不上");
- }
- insPlyIncome.setAgreementId(ptlAgreement.getId());
- baseMapper.insert(insPlyIncome);
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(insPlyIncome.getId());
- BeanUtils.copyProperties(insPlyIncome,insPlyIncomeLog);
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setOperationStatus("1");
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- return HttpResult.ok();
- }
- private LocalDateTime LocalDatePareLocalDateTime(String signdateStr) {
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- // 将字符串解析为LocalDate
- LocalDate signdate = LocalDate.parse(signdateStr, formatter);
- // 创建一个 LocalTime 对象表示中午12点
- LocalTime noon = LocalTime.of(12, 0);
- // 使用 LocalDate 和 LocalTime 来创建 LocalDateTime
- return LocalDateTime.of(signdate, noon);
- }
- /**
- * 删除id 已开票或者已结算都不可以进行 删除
- * 因为跟单没有关联表 也无法关联到开票表所以只能按照 条件去查询判断 保司机构 id
- * @param insPlyIncomeVo
- * @return
- */
- @Override
- @Transactional
- public HttpResult<InsPlyIncome> deleteById(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params.put("id",insPlyIncomeVo.getId());
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params);
- InsPlyIncome insPlyIncome = insPlyIncomes.get(0);
- if (StringUtils.isNotEmpty(insPlyIncome.getAgreementType()) && "1".equals(insPlyIncome.getAgreementType())) {
- if ("1".equals(insPlyIncome.getHandlingFeesStatus())) {
- throw new SystemException("已结算不可以进行删除");
- }
- } else if (StringUtils.isNotEmpty(insPlyIncome.getAgreementType()) && "2".equals(insPlyIncome.getAgreementType())) {
- if ("0".equals(insPlyIncome.getIsNotDocumentary())) {
- String taskId = insPlyIncome.getTaskId();
- if (StringUtils.isNotEmpty(taskId)) {
- throw new SystemException("已开票不能进行删除");
- }
- } else {
- // 因为跟单没有关联表 也无法关联到开票表所以只能按照 条件去进行判断
- if(StringUtils.isNotEmpty( insPlyIncome.getSettleOtherStatus()) && "1".equals( insPlyIncome.getSettleOtherStatus())){
- throw new SystemException("已经对账不能进行删除");
- }
- }
- }
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(insPlyIncome.getId());
- BeanUtils.copyProperties(insPlyIncome,insPlyIncomeLog);
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setOperationStatus("3");
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- baseMapper.deleteById(insPlyIncomeVo.getId()); //删除 结算 然后删除结算表
- return HttpResult.ok("删除成功");
- }
- @Override
- @Transactional
- public void uodateBalance(InsPlyIncomeVo insPlyIncomeVo) {
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- insPlyIncomeVo.setHandlingFeesStatus("1");
- BeanUtils.copyProperties(insPlyIncomeVo, insPlyIncome);
- insPlyIncome.setSettlementUserId(BaseController.getUser().getId());
- insPlyIncome.setSettlementTime(LocalDateTime.now());
- baseMapper.updateById(insPlyIncome);
- // 生成记录
- SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getAgreementType()) && "1".equals(insPlyIncomeVo.getAgreementType())) {
- // 只有平台协议 才会跟单费一笔结算
- settlementDocumentaryLogEntity.setAmount(insPlyIncomeVo.getOtherFeevalue()); // 跟单费金额
- }
- settlementDocumentaryLogEntity.setHandingAmount(insPlyIncomeVo.getCommissionFeevalue()); // 手续费金额
- settlementDocumentaryLogEntity.setSettlementDocumentaryId(insPlyIncomeVo.getId()); // 关联id
- settlementDocumentaryLogEntity.setAmountType("1"); //手续费结算
- settlementDocumentaryLogEntity.setCreateTime(new Date());
- settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
- }
- @Override
- @Transactional
- public HttpResult<BasePageResult<InsPlyIncome>> totalQuery(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- PageInfo<List<InsPlyIncome>> pageHelper = null;
- if (insPlyIncomeVo.getStartDate() != null) {
- params.put("startDate", insPlyIncomeVo.getStartDate().toString());
- }
- if (insPlyIncomeVo.getEndDate() != null) {
- params.put("endDate", insPlyIncomeVo.getEndDate().toString());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getYear())) {
- params.put("year", insPlyIncomeVo.getYear());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getIsNotCar())) {
- params.put("isNotCar", insPlyIncomeVo.getIsNotCar());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getIsNotDocumentary())) {
- params.put("isOther", insPlyIncomeVo.getIsNotDocumentary());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getDocumentaryFeesStatus())) {
- params.put("documentaryFeesStatus", insPlyIncomeVo.getDocumentaryFeesStatus());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getCompanyId())) {
- params.put("companyId", insPlyIncomeVo.getCompanyId());
- }
- params.put("pageNum", insPlyIncomeVo.getPageNum());
- params.put("pageSize", insPlyIncomeVo.getPageSize());
- List<InsPlyIncome> list = this.baseMapper.totalQuery(params);
- pageHelper = new PageInfo(list);
- return HttpResult.ok(new BasePageResult<>(insPlyIncomeVo.getPageNum(), insPlyIncomeVo.getPageSize(), pageHelper.getTotal(),
- pageHelper.getPages(), list));
- }
- /**
- *
- * @param insPlyIncomeVo ids ins_ply_income 这个表的ids incomeIds settlement_documentary_fees 这个表的ids
- * @return
- */
- /**
- * 跟单费结算 有分批结算的情况
- *
- * @param insPlyIncomeVo
- * @return
- */
- @Override
- @Transactional
- public HttpResult batchBalance(InsPlyIncomeVo insPlyIncomeVo) {
- // 分批结算
- SettlementDocumentaryFeesVo settlementDocumentaryFeesVo = new SettlementDocumentaryFeesVo();
- String id = insPlyIncomeVo.getId(); // 开票id
- SettlementDocumentaryFeesEntity settlementDocumentaryFeesServiceById = settlementDocumentaryFeesService.getById(id); //
- BigDecimal allAmount = settlementDocumentaryFeesServiceById.getSettlementAmount();
- HashMap<String, Object> params = new HashMap<>();
- params.put("id", insPlyIncomeVo.getId());
- params.put("handlingFeesStatus", "1");
- SettlementDocumentaryFeesEntity parentSettlementDocumentaryFeesEntity =
- settlementDocumentaryFeesService.getByParentSettlementAmount(params);
- if (ObjectUtils.isNotEmpty(parentSettlementDocumentaryFeesEntity)) { // 多次结算
- BigDecimal totalAmount = parentSettlementDocumentaryFeesEntity.getTotalAmount();
- totalAmount = totalAmount.add(insPlyIncomeVo.getSettlementAmount());
- if (allAmount.compareTo(totalAmount) < 0) {
- return HttpResult.error("结算金额超出开票金额");
- }
- } else {
- if (allAmount.compareTo(insPlyIncomeVo.getSettlementAmount()) < 0) {
- return HttpResult.error("结算金额超出开票金额");
- }
- }
- settlementDocumentaryFeesVo.setInvoiceId(insPlyIncomeVo.getInvoicId()); //开票号
- settlementDocumentaryFeesVo.setSettlementTime(insPlyIncomeVo.getSettlementTime()); //结算时间
- settlementDocumentaryFeesVo.setSettlementStatus("2"); //2为结算状态
- settlementDocumentaryFeesVo.setCompanyId(insPlyIncomeVo.getCompanyId()); // 保险公司id
- settlementDocumentaryFeesVo.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId()); //合作公司id
- settlementDocumentaryFeesVo.setUnsettledAmount(insPlyIncomeVo.getInvoicCommissionFeevalue().subtract(insPlyIncomeVo.getSettlementAmount())); //未结算金额
- settlementDocumentaryFeesVo.setIsNotCar(insPlyIncomeVo.getIsNotCar()); // 是否是非车
- settlementDocumentaryFeesVo.setInvoicingMethod(insPlyIncomeVo.getInvoicingMethod()); //开票方式
- settlementDocumentaryFeesVo.setTaxPoints(insPlyIncomeVo.getTaxPoints()); //税点
- settlementDocumentaryFeesVo.setSettlementImageId(insPlyIncomeVo.getSettlementImageId());
- if ("0".equals(insPlyIncomeVo.getInvoicingMethod())) {
- settlementDocumentaryFeesVo.setExpendAmount(insPlyIncomeVo.getSettlementAmount().multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
- } else {
- settlementDocumentaryFeesVo.setExpendAmount(insPlyIncomeVo.getSettlementAmount()); //进账金额
- }
- settlementDocumentaryFeesVo.setSettlementAmount(insPlyIncomeVo.getSettlementAmount()); //进账金额
- settlementDocumentaryFeesVo.setHandlingFeesStatus(insPlyIncomeVo.getHandlingFeesStatus());
- settlementDocumentaryFeesVo.setTotalAmount(insPlyIncomeVo.getInvoicCommissionFeevalue());
- settlementDocumentaryFeesVo.setCreateTime(LocalDateTime.now());
- settlementDocumentaryFeesVo.setParentId(insPlyIncomeVo.getId());
- settlementDocumentaryFeesVo.setAgreementType("2"); //1平台 2 保险
- settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
- return HttpResult.ok();
- }
- @Override
- @Transactional
- public HttpResult<Object> batchSumBalance(InsPlyIncomeVo insPlyIncomeVo) {
- List<InsPlyIncomeVo> multipleSelection = insPlyIncomeVo.getMultipleSelection();
- HashMap<String, Object> params = new HashMap<>();
- Date date = new Date();
- BigDecimal settleMentAmount = BigDecimal.ZERO;
- BigDecimal settleNotMentAmount = BigDecimal.ZERO;
- for (InsPlyIncomeVo item : multipleSelection){
- SettlementDocumentaryFeesEntity settlementDocumentaryFeesVo = new SettlementDocumentaryFeesEntity();
- if(item.getInvoicCommissionFeevalue() ==null || item .getInvoicCommissionFeevalue().compareTo(BigDecimal.ZERO) <=0){
- throw new SystemException("请输入正确金额");
- }
- String id = item.getId();
- SettlementDocumentaryFeesEntity settlementDocumentaryFeesEntity = settlementDocumentaryFeesService.getBaseMapper().selectById(id); // 开票
- BigDecimal invoicedNotSettledAmount = settlementDocumentaryFeesEntity.getInvoicedNotSettledAmount();//未结算金额
- if(item.getInvoicCommissionFeevalue().compareTo(invoicedNotSettledAmount) >0){
- throw new SystemException("结算金额大于未结算金额");
- }
- if(item.getInvoicCommissionFeevalue().compareTo(BigDecimal.ZERO) >0){
- settlementDocumentaryFeesVo.setInvoiceId(settlementDocumentaryFeesEntity.getInvoicId()); //开票号
- settlementDocumentaryFeesVo.setSettlementTime(insPlyIncomeVo.getSettlementTime()); //结算时间
- settlementDocumentaryFeesVo.setSettlementStatus("2"); //2为结算状态
- settlementDocumentaryFeesVo.setCompanyId(settlementDocumentaryFeesEntity.getCompanyId()); // 保险公司id
- settlementDocumentaryFeesVo.setPartnerCompaniesId(settlementDocumentaryFeesEntity.getPartnerCompaniesId()); //合作公司id
- // settlementDocumentaryFeesVo.setUnsettledAmount(insPlyIncomeVo.getInvoicCommissionFeevalue().subtract(insPlyIncomeVo.getSettlementAmount())); //未结算金额
- settlementDocumentaryFeesVo.setIsNotCar(settlementDocumentaryFeesEntity.getIsNotCar()); // 是否是非车
- settlementDocumentaryFeesVo.setInvoicingMethod(settlementDocumentaryFeesEntity.getInvoicingMethod()); //开票方式
- settlementDocumentaryFeesVo.setTaxPoints(settlementDocumentaryFeesEntity.getTaxPoints()); //税点
- settlementDocumentaryFeesVo.setSettlementImageId(insPlyIncomeVo.getSettlementImageId());
- if ("0".equals(insPlyIncomeVo.getInvoicingMethod())) {
- settlementDocumentaryFeesVo.setExpendAmount(item.getInvoicCommissionFeevalue().multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
- } else {
- settlementDocumentaryFeesVo.setExpendAmount(item.getInvoicCommissionFeevalue()); //进账金额
- }
- settlementDocumentaryFeesVo.setSettlementAmount(item.getInvoicCommissionFeevalue()); //进账金额
- settlementDocumentaryFeesVo.setHandlingFeesStatus(settlementDocumentaryFeesEntity.getHandlingFeesStatus());
- settlementDocumentaryFeesVo.setTotalAmount(settlementDocumentaryFeesEntity.getSettlementAmount());
- settlementDocumentaryFeesVo.setCreateTime(LocalDateTime.now());
- settlementDocumentaryFeesVo.setSettlementTime(LocalDate.now());
- settlementDocumentaryFeesVo.setParentId(insPlyIncomeVo.getId());
- settlementDocumentaryFeesVo.setAgreementType("2"); //1平台 2 保险
- settlementDocumentaryFeesVo.setInvoicedSettledAmount(item.getInvoicCommissionFeevalue());
- settlementDocumentaryFeesVo.setInvoicedNotSettledAmount(BigDecimal.ZERO);
- // 生成跟单费结算记录
- SettlementDocumentaryLogEntity settlementDocumentaryLogEntity = new SettlementDocumentaryLogEntity();
- settlementDocumentaryLogEntity.setAmount(item.getInvoicCommissionFeevalue()); // 结算金额
- settlementDocumentaryLogEntity.setSettlementDocumentaryId(settlementDocumentaryFeesEntity.getId()); // 关联id
- settlementDocumentaryLogEntity.setAmountType("2"); //跟单费结算
- settlementDocumentaryLogEntity.setCreateTime(date);
- settlementDocumentaryFeesVo.setSettlementSumId(insPlyIncomeVo.getSettlementSumId());
- settlementDocumentaryFeesService.getBaseMapper().insert(settlementDocumentaryFeesVo);
- settlementDocumentaryLogService.save(settlementDocumentaryLogEntity);
- //修改开票金额
- BigDecimal add = settlementDocumentaryFeesEntity.getInvoicedSettledAmount().add(item.getInvoicCommissionFeevalue());
- settlementDocumentaryFeesEntity.setInvoicedSettledAmount(add);
- BigDecimal subtract = settlementDocumentaryFeesEntity.getSettlementAmount().subtract(add);
- settlementDocumentaryFeesEntity.setInvoicedNotSettledAmount(subtract);
- if (subtract.compareTo(BigDecimal.ZERO) == 0) {
- settlementDocumentaryFeesEntity.setCompletionStatus("2");
- } else if (subtract.compareTo(BigDecimal.ZERO) != 0) {
- settlementDocumentaryFeesEntity.setCompletionStatus("1");
- }
- settlementDocumentaryFeesService.updateById(settlementDocumentaryFeesEntity);
- settleMentAmount = settleMentAmount.add(settlementDocumentaryFeesEntity.getInvoicedSettledAmount());
- settleNotMentAmount = settleNotMentAmount.add(settlementDocumentaryFeesEntity.getInvoicedNotSettledAmount());
- }
- // 更新金额
- SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = settlementDocumentaryFeesSumService.getById(insPlyIncomeVo.getSettlementSumId());
- settlementDocumentaryFeesSumEntity.setInvoicedSettledAmount(settleMentAmount);
- settlementDocumentaryFeesSumEntity.setInvoicedNotSettledAmount(settleNotMentAmount);
- if (settleNotMentAmount.compareTo(BigDecimal.ZERO) == 0) {
- settlementDocumentaryFeesSumEntity.setCompletionStatus("2");
- } else if (settleNotMentAmount.compareTo(BigDecimal.ZERO) != 0) {
- settlementDocumentaryFeesSumEntity.setCompletionStatus("1");
- }
- settlementDocumentaryFeesSumService.updateById(settlementDocumentaryFeesSumEntity);
- }
- return HttpResult.ok();
- }
- /**
- * @param insPlyIncomeVo
- * @return
- */
- @Override
- public List<InsPlyIncome> totalBxAmount(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- params.remove("handlingFeesStatus");
- List<InsPlyIncome> resultList = baseMapper.totalBxAmountNew(params);
- return resultList.stream()
- .sorted(Comparator.comparing(InsPlyIncome::getUnSettledAmount, Comparator.reverseOrder()))
- .collect(Collectors.toList());
- }
- /**
- * @param idList 要开票的数据集合
- * @param resultList 总返回数据
- */
- private void splicingIds(List<InsPlyIncome> idList, List<InsPlyIncome> resultList) {
- // 使用Map来存储agreementId到其id列表的映射
- Map<String, List<String>> idMap = new HashMap<>();
- for (InsPlyIncome idItem : idList) {
- String partnerCompaniesId = idItem.getPartnerCompaniesId();
- idMap.computeIfAbsent(partnerCompaniesId, k -> new ArrayList<>()).add(idItem.getId());
- }
- for (InsPlyIncome resultItem : resultList) {
- List<String> ids = idMap.getOrDefault(resultItem.getPartnerCompaniesId(), Collections.emptyList());
- String idsString = String.join(",", ids);
- resultItem.setIds(idsString);
- }
- }
- /**
- * @param insPlyIncomeVo
- * @return 保险手续费改成多次结算
- */
- @Override
- @Transactional
- public HttpResult<Object> batchInvoicing(InsPlyIncomeVo insPlyIncomeVo) {
- ImportResult importResult = importAsyncService.getById(insPlyIncomeVo.getSelectIds().get(0)); // 查询 任务
- List<String> byTaskId = incomeTaskRelationshipService.getByTaskId(importResult.getId());
- HashMap<String, Object> params = new HashMap<>();
- if (StringUtils.isNotEmpty(importResult.getId())) {
- params.put("companyId", importResult.getCompanyId());
- params.put("partnerCompaniesId", importResult.getPartnerCompaniesId());
- params.put("isOther", "0");
- if (StringUtils.isNotEmpty(importResult.getHandStatus())) {
- if ("0".equals(importResult.getHandStatus())) {
- params.put("isNotCar", "0");
- } else if ("1".equals(importResult.getHandStatus())) {
- params.put("isNotCar", "1");
- }
- }
- if (!CollectionUtils.isEmpty(byTaskId)) {
- params.put("incomeIds", byTaskId);
- }
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params);
- if (!CollectionUtils.isEmpty(insPlyIncomes)) {
- if (insPlyIncomeVo != null) { // 确保insPlyIncomeVo不是null
- for (InsPlyIncome item : insPlyIncomes) {
- item.setInvoicTime(LocalDate.now());
- item.setInvoicId(insPlyIncomeVo.getInvoicId());
- item.setHandlingFeesStatus("2");
- if (StringUtils.isNotEmpty(item.getTaskId())) {
- return HttpResult.error("该单据已经开票 ");
- }else {
- item.setTaskId(importResult.getId());
- item.setSettlementTime(LocalDateTime.now());
- }
- }
- this.saveOrUpdateBatch(insPlyIncomes);
- }
- }
- }
- insPlyIncomeVo.setNoInvoicCommissionFeevalue(importResult.getTotalAmount());
- insPlyIncomeVo.setOtherFeevalue(importResult.getTotalAmount());
- insPlyIncomeVo.setHandlingFeesStatus("0"); // 0手续费 1 跟单费
- insPlyIncomeVo.setIsNotCar(insPlyIncomeVo.getIsNotCar());
- insPlyIncomeVo.setAgreementId(importResult.getAgreementId());
- insPlyIncomeVo.setAgreementType(insPlyIncomeVo.getAgreementType());
- insPlyIncomeVo.setPartnerCompaniesId(importResult.getPartnerCompaniesId());
- insPlyIncomeVo.setSettlementAmount(importResult.getTotalAmount());
- insPlyIncomeVo.setContractId(insPlyIncomeVo.getInvoicId());
- insPlyIncomeVo.setCompanyId(importResult.getCompanyId());
- insPlyIncomeVo.setTaskId(importResult.getId());
- this.batchInvoic(insPlyIncomeVo);
- return HttpResult.ok();
- }
- @Override
- public HttpResult<InsPlyIncome> queryInvoicing(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- InsPlyIncome result = baseMapper.queryInvoicing(params); //总金额
- params.put("handlingFeesStatus", "0");
- InsPlyIncome noResult = baseMapper.queryInvoicing(params); //未结算金额
- result.setReadyCommissionFeevalue(noResult.getCommissionFeevalue());
- return HttpResult.ok(result);
- }
- @Override
- @Transactional
- public HttpResult<Object> batchBxBalance(InsPlyIncomeVo insPlyIncomeVo) {
- if( insPlyIncomeVo.getSettlementAmount() ==null || insPlyIncomeVo.getSettlementAmount().compareTo(BigDecimal.ZERO) <=0){
- throw new SystemException("金额未填写");
- }
- // 表内总金额
- SettlementDocumentaryFeesEntity byIdSettlementDocumentaryFeesEntity =
- settlementDocumentaryFeesService.getById(insPlyIncomeVo.getId());
- BigDecimal invoicAmount = byIdSettlementDocumentaryFeesEntity.getTotalAmount();
- String taskId = byIdSettlementDocumentaryFeesEntity.getTaskId();
- List<String> byTaskId = incomeTaskRelationshipService.getByTaskId(taskId);
- HashMap<String, Object> params = new HashMap<>();
- params.put("id", insPlyIncomeVo.getId());
- params.put("handlingFeesStatus", "0");
- SettlementDocumentaryFeesEntity parentSettlementDocumentaryFeesEntity =
- settlementDocumentaryFeesService.getByParentSettlementAmount(params);
- if (ObjectUtils.isNotEmpty(parentSettlementDocumentaryFeesEntity)) { // 多次结算
- BigDecimal totalAmount = parentSettlementDocumentaryFeesEntity.getTotalAmount();
- totalAmount = totalAmount.add(insPlyIncomeVo.getSettlementAmount());
- if (invoicAmount.compareTo(totalAmount) < 0) {
- return HttpResult.error("结算金额大于开票金额");
- }
- if(totalAmount.compareTo(invoicAmount) ==0){
- HashMap<String, Object> incomeParams = new HashMap<>();
- incomeParams.put("incomeIds", byTaskId);
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(incomeParams);
- for (InsPlyIncome item : insPlyIncomes) {
- item.setHandlingFeesStatus("1");
- item.setSettlementUserId(BaseController.getUser().getId());
- baseMapper.updateById(item);
- }
- }
- } else {
- if (invoicAmount.compareTo(insPlyIncomeVo.getSettlementAmount()) < 0) {
- return HttpResult.error("结算金额大于开票金额");
- } else if (invoicAmount.compareTo(insPlyIncomeVo.getSettlementAmount()) == 0) {
- HashMap<String, Object> incomeParams = new HashMap<>();
- incomeParams.put("incomeIds", byTaskId);
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(incomeParams);
- for (InsPlyIncome item : insPlyIncomes) {
- item.setHandlingFeesStatus("1");
- item.setSettlementUserId(BaseController.getUser().getId());
- baseMapper.updateById(item);
- }
- }
- }
- SettlementDocumentaryFeesVo settlementDocumentaryFeesVo = new SettlementDocumentaryFeesVo();
- settlementDocumentaryFeesVo.setInvoiceId(insPlyIncomeVo.getInvoicId()); //开票号
- settlementDocumentaryFeesVo.setSettlementTime(insPlyIncomeVo.getSettlementTime()); //结算时间
- settlementDocumentaryFeesVo.setSettlementStatus("2"); //2为结算状态
- settlementDocumentaryFeesVo.setCompanyId(insPlyIncomeVo.getCompanyId()); // 保险公司id
- settlementDocumentaryFeesVo.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId()); //合作公司id
- settlementDocumentaryFeesVo.setIsNotCar(insPlyIncomeVo.getIsNotCar()); // 是否是非车
- settlementDocumentaryFeesVo.setInvoicingMethod(insPlyIncomeVo.getInvoicingMethod()); //开票方式
- settlementDocumentaryFeesVo.setTaxPoints(insPlyIncomeVo.getTaxPoints()); //税点
- settlementDocumentaryFeesVo.setExpendAmount(insPlyIncomeVo.getInvoicCommissionFeevalue().multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
- settlementDocumentaryFeesVo.setTaskId(insPlyIncomeVo.getTaskId());
- settlementDocumentaryFeesVo.setSettlementAmount(insPlyIncomeVo.getSettlementAmount()); //进账金额
- settlementDocumentaryFeesVo.setTotalAmount(insPlyIncomeVo.getInvoicCommissionFeevalue());
- settlementDocumentaryFeesVo.setHandlingFeesStatus("0");
- settlementDocumentaryFeesVo.setParentId(insPlyIncomeVo.getId());
- settlementDocumentaryFeesVo.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId());
- settlementDocumentaryFeesVo.setSettlementImageId(insPlyIncomeVo.getSettlementImageId());
- settlementDocumentaryFeesVo.setCreateTime(LocalDateTime.now());
- settlementDocumentaryFeesVo.setAgreementType("2"); //1平台 2 保险
- BigDecimal add = byIdSettlementDocumentaryFeesEntity.getInvoicedSettledAmount().add(insPlyIncomeVo.getSettlementAmount());
- byIdSettlementDocumentaryFeesEntity.setInvoicedSettledAmount(add);
- BigDecimal subtract = byIdSettlementDocumentaryFeesEntity.getTotalAmount().subtract(add);
- byIdSettlementDocumentaryFeesEntity.setInvoicedNotSettledAmount(subtract);
- if (subtract.compareTo(BigDecimal.ZERO) == 0) {
- byIdSettlementDocumentaryFeesEntity.setCompletionStatus("2");
- } else if (subtract.compareTo(BigDecimal.ZERO) != 0) {
- byIdSettlementDocumentaryFeesEntity.setCompletionStatus("1");
- }
- settlementDocumentaryFeesService.updateById(byIdSettlementDocumentaryFeesEntity);
- settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
- List<InsuranceHandlingSettlementMonthEntity> insuranceHandlingList = insPlyIncomeVo.getInsuranceHandlingList();
- ArrayList<InsuranceHandlingSettlementMonthEntity> insuranceHandlingListNew = new ArrayList<>();
- // 判断是否是第一次结算
- InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo = new InsuranceHandlingSettlementMonthVo();
- insuranceHandlingSettlementMonthVo.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId());
- insuranceHandlingSettlementMonthVo.setTaskId(insPlyIncomeVo.getTaskId());
- List<InsuranceHandlingSettlementMonthDto> insuranceHandlingSettlementMonthDtos = insuranceHandlingSettlementMonthService.getQueryLists(insuranceHandlingSettlementMonthVo);
- // 分批结算
- BigDecimal allsettlementAmount = BigDecimal.ZERO;
- for(InsuranceHandlingSettlementMonthEntity item : insuranceHandlingList){
- String incomeSigningTime = item.getIncomeSigningTime();
- DateTimeFormatter yearMonthFormatter = DateTimeFormatter.ofPattern("yyyy-MM");
- // 尝试解析为LocalDate(这里实际上解析为YearMonth,但使用LocalDate的parse方法,因为它会接受只有年和月的TemporalQuery)
- // 注意:这里直接解析为LocalDate可能会引发异常,因为DateTimeFormatter应该与要解析的Temporal类型精确匹配。
- // 但由于Java的灵活性,以及默认行为(假设日为1),这通常可以工作。
- LocalDate date = YearMonth.parse(incomeSigningTime, yearMonthFormatter).atDay(1);
- // 将LocalDate转换为LocalDateTime,时间为00:00:00
- LocalDateTime localDateTime = date.atStartOfDay();
- item.setIsNotCar(insPlyIncomeVo.getIsNotCar());
- BigDecimal totalAmount = item.getRemainingAmount(); //开票未结算
- BigDecimal settlementAmount = item.getSettlementAmount(); //结算金额
- InsuranceHandlingSettlementMonthEntity byId = insuranceHandlingSettlementMonthService.getById(item.getId());
- if(ObjectUtils.isNotEmpty(byId)){
- allsettlementAmount = this.calculateTotal(byId.getSettlementAmount(),item.getSettlementAmount(),null);
- item.setSettlementAmount(allsettlementAmount);
- }else {
- item.setSettlementAmount(item.getSettlementAmount());
- }
- BigDecimal subtract1 = totalAmount.subtract(settlementAmount);
- item.setRemainingAmount(subtract1);
- item.setCreateTime(LocalDateTime.now());
- item.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId());
- item.setSigningTime(localDateTime);
- item.setSettlementDocumentaryFeesId(byIdSettlementDocumentaryFeesEntity.getId());
- insuranceHandlingListNew.add(item);
- }
- if(insuranceHandlingSettlementMonthDtos.size()>0){
- insuranceHandlingSettlementMonthService.updateBatchById(insuranceHandlingListNew);
- }else{
- insuranceHandlingSettlementMonthService.saveBatch(insuranceHandlingListNew);
- }
- return HttpResult.ok();
- }
- @Override
- public HttpResult<InsPlyIncome> querySettInvoicing(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- InsPlyIncome insPlyIncome = baseMapper.queryInvoicing(params); //已经开票
- return HttpResult.ok(insPlyIncome);
- }
- /**
- * @param insPlyIncomeVo
- * @return
- */
- @Override
- public HttpResult<List<InsPlyIncome>> allOtherAmount(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- List<InsPlyIncome> resultList = baseMapper.totalBxAmount(params);
- //总跟单费
- for (InsPlyIncome item : resultList) {
- BigDecimal otherFeevalue = BigDecimal.ZERO; //总跟单金额
- BigDecimal invoicCommissionFeevalue = BigDecimal.ZERO; //已开票跟单费
- BigDecimal readyCommissionFeevalue = BigDecimal.ZERO; // 已开票已结算 跟单费
- BigDecimal noInvoicCommissionFeevalue = BigDecimal.ZERO; //未开票跟单金额
- BigDecimal unSettledAmount = BigDecimal.ZERO; //未结算跟单金额
- BigDecimal expendAmount = BigDecimal.ZERO; //实收金额
- BigDecimal taxesFees = BigDecimal.ZERO; //税费
- BigDecimal taxPoints = BigDecimal.ZERO; //税点
- params.put("partnerCompaniesId", item.getPartnerCompaniesId());
- params.remove("handlingFeesStatus");
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params); // 总跟单费
- for (InsPlyIncome all : insPlyIncomes) {
- otherFeevalue = otherFeevalue.add(all.getOtherFeevalue());
- }
- //已开票金额 = 开票未结算+ 开票已结算
- params.put("handlingFeesStatus", "1"); // 开票
- params.put("settlementStatus", "1"); // 开票
- List<SettlementDocumentaryFeesEntity> invoicInsPlyIncomes = settlementDocumentaryFeesService.queryNew(params); //金额总数
- for (SettlementDocumentaryFeesEntity invoicInsPlyIncome : invoicInsPlyIncomes) {
- BigDecimal invoicIcommissionFeevalue = invoicInsPlyIncome.getSettlementAmount();// 已经开票金额
- invoicCommissionFeevalue = invoicCommissionFeevalue.add(invoicIcommissionFeevalue); //开票金额
- }
- List<SettlementDocumentaryFeesEntity> settleInsPlyIncomes = settlementDocumentaryFeesService.queryAmount(params); //金额总数
- for (SettlementDocumentaryFeesEntity settleInsPlyIncome : settleInsPlyIncomes) {
- if(ObjectUtils.isNotEmpty(settleInsPlyIncome)){
- BigDecimal settleIcommissionFeevalue = settleInsPlyIncome.getSettlementAmount().compareTo(BigDecimal.ZERO) > 0 ? settleInsPlyIncome.getSettlementAmount() : BigDecimal.ZERO;// 已结算金额
- readyCommissionFeevalue = readyCommissionFeevalue.add(settleIcommissionFeevalue); //已结算总
- BigDecimal divide = new BigDecimal(100).subtract(settleInsPlyIncome.getTaxPoints()).divide(new BigDecimal(100));
- expendAmount = expendAmount.add(settleInsPlyIncome.getSettlementAmount().multiply(divide));
- }
- }
- params.put("settlementStatus", 0); //未开票金额
- List<SettlementDocumentaryFeesEntity> noInvoicInsPlyIncomes = settlementDocumentaryFeesService.queryNew(params); //金额总数
- for (SettlementDocumentaryFeesEntity noInvoicInsPlyIncome : noInvoicInsPlyIncomes) {
- BigDecimal noInvoicIcommissionFeevalue = noInvoicInsPlyIncome.getSettlementAmount();// 未开票金额
- noInvoicCommissionFeevalue = noInvoicCommissionFeevalue.add(noInvoicIcommissionFeevalue); //未开票总金额
- }
- noInvoicCommissionFeevalue = otherFeevalue.subtract(invoicCommissionFeevalue);// 未开票
- unSettledAmount = otherFeevalue.subtract(readyCommissionFeevalue); //未结算
- //已开票金额
- item.setOtherFeevalue(otherFeevalue); //总手续费
- item.setAllInvoicCommissionFeevalue(invoicCommissionFeevalue); //总开票金额
- // 开票未结算 = 开票金额 - 已开票已结算
- invoicCommissionFeevalue = invoicCommissionFeevalue.subtract(readyCommissionFeevalue);
- item.setInvoicCommissionFeevalue(invoicCommissionFeevalue); //开票未结算
- item.setReadyCommissionFeevalue(readyCommissionFeevalue); //已开票已结算
- item.setNoInvoicCommissionFeevalue(noInvoicCommissionFeevalue); //未开票金额
- item.setUnSettledAmount(unSettledAmount); // 未结算金额
- // 实收金额 = 结算金额 *1-税点
- taxesFees = readyCommissionFeevalue.subtract(expendAmount);
- item.setExpendAmount(expendAmount);
- item.setTaxesFees(taxesFees);
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getStatus())) {
- if ("0".equals(insPlyIncomeVo.getStatus())) {
- return HttpResult.ok(resultList.stream().filter(insPlyIncome -> insPlyIncome.getAllInvoicCommissionFeevalue().compareTo(insPlyIncome.getReadyCommissionFeevalue()) > 0).sorted(Comparator.comparing(InsPlyIncome::getUnSettledAmount, Comparator.reverseOrder())).collect(Collectors.toList()));
- }else if ("1".equals(insPlyIncomeVo.getStatus())){
- return HttpResult.ok(resultList.stream().filter(insPlyIncome -> insPlyIncome.getAllInvoicCommissionFeevalue().compareTo(insPlyIncome.getReadyCommissionFeevalue()) == 0).sorted(Comparator.comparing(InsPlyIncome::getUnSettledAmount, Comparator.reverseOrder())).collect(Collectors.toList())) ;
- }
- }
- return HttpResult.ok(resultList);
- }
- @Override
- @Transactional
- public HttpResult<Object> batchInvoic(InsPlyIncomeVo insPlyIncomeVo) {
- SettlementDocumentaryFeesVo settlementDocumentaryFeesVo = new SettlementDocumentaryFeesVo(); // 生成跟单费结算表
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getYear())) {
- settlementDocumentaryFeesVo.setTimeFrame(insPlyIncomeVo.getYear());//年度
- }
- if (!CollectionUtils.isEmpty(insPlyIncomeVo.getMultipleSelection())) {
- InsPlyIncomeVo insPlyIncomeVo1 = insPlyIncomeVo.getMultipleSelection().get(0);
- insPlyIncomeVo.setSettlementAmount(insPlyIncomeVo1.getSettlementAmount());
- insPlyIncomeVo.setOtherFeevalue(insPlyIncomeVo1.getAllTotalOtherFeevalue());
- YearMonth yearMonth = YearMonth.parse(insPlyIncomeVo1.getMonthYear());
- LocalDate signingTime = yearMonth.atDay(1);
- settlementDocumentaryFeesVo.setSigningTime(signingTime);
- }
- if (insPlyIncomeVo.getOtherFeevalue().compareTo(BigDecimal.ZERO) == 0) {
- throw new SystemException("总金额为0不允许开票");
- }
- if (insPlyIncomeVo.getNoInvoicCommissionFeevalue().compareTo(BigDecimal.ZERO) == 0) {
- throw new SystemException("未开票金额为0不允许开票");
- }
- if (insPlyIncomeVo.getSettlementAmount() == null || insPlyIncomeVo.getSettlementAmount().compareTo(BigDecimal.ZERO) <= 0) {
- throw new SystemException("开票金额错误不允许开票");
- }
- if (insPlyIncomeVo.getNoInvoicCommissionFeevalue().compareTo(insPlyIncomeVo.getSettlementAmount()) < 0) {
- throw new SystemException("开票金额必须小于未开票金额 不允许开票");
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getYear())) {
- settlementDocumentaryFeesVo.setYear(insPlyIncomeVo.getYear());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getMonth())) {
- settlementDocumentaryFeesVo.setMonth(insPlyIncomeVo.getMonth());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getDay())) {
- settlementDocumentaryFeesVo.setDay(insPlyIncomeVo.getDay());
- }
- settlementDocumentaryFeesVo.setCompanyId(insPlyIncomeVo.getCompanyId());// 保险公司id
- settlementDocumentaryFeesVo.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId()); //合作公司id
- settlementDocumentaryFeesVo.setAgreementId(insPlyIncomeVo.getAgreementId());
- settlementDocumentaryFeesVo.setTotalAmount(insPlyIncomeVo.getOtherFeevalue()); //其他费用金额
- settlementDocumentaryFeesVo.setUnsettledAmount(insPlyIncomeVo.getNoInvoicCommissionFeevalue().subtract(insPlyIncomeVo.getSettlementAmount())); //未结算
- settlementDocumentaryFeesVo.setSettlementAmount(insPlyIncomeVo.getSettlementAmount());//已经开票
- settlementDocumentaryFeesVo.setCreateTime(LocalDateTime.now());
- settlementDocumentaryFeesVo.setSettlementStatus("1");
- settlementDocumentaryFeesVo.setIsNotCar(insPlyIncomeVo.getIsNotCar());
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getContractId())) {
- settlementDocumentaryFeesVo.setInvoiceId(insPlyIncomeVo.getContractId()); //开票号
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getTaskId())) {
- settlementDocumentaryFeesVo.setTaskId(insPlyIncomeVo.getTaskId());
- }
- settlementDocumentaryFeesVo.setAgreementType("2");
- settlementDocumentaryFeesVo.setHandlingFeesStatus(insPlyIncomeVo.getHandlingFeesStatus());
- settlementDocumentaryFeesVo.setCompletionStatus("0");
- settlementDocumentaryFeesVo.setInvoicedSettledAmount(BigDecimal.ZERO);
- settlementDocumentaryFeesVo.setInvoicedNotSettledAmount(insPlyIncomeVo.getSettlementAmount());
- settlementDocumentaryFeesVo.setInvoicingMethod(insPlyIncomeVo.getInvoicingMethod()); //开票方式
- settlementDocumentaryFeesVo.setTaxPoints(insPlyIncomeVo.getTaxPoints()); //税点
- settlementDocumentaryFeesVo.setIds(insPlyIncomeVo.getIds());
- // 税点支出
- if ("0".equals(insPlyIncomeVo.getInvoicingMethod()) && BigDecimalUtils.nullToZero(insPlyIncomeVo.getTaxPoints()) != null && insPlyIncomeVo.getTaxPoints().compareTo(BigDecimal.ZERO) != 0 && BigDecimalUtils.nullToZero(insPlyIncomeVo.getSettlementAmount()) != null) {
- BigDecimal settlementAmount = insPlyIncomeVo.getSettlementAmount();
- settlementDocumentaryFeesVo.setExpendAmount(settlementAmount.multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
- } else {
- settlementDocumentaryFeesVo.setExpendAmount(insPlyIncomeVo.getSettlementAmount());
- }
- // 跟单生成批次表
- SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = this.saveSumSettlement(insPlyIncomeVo);
- if(ObjectUtils.isNotEmpty(settlementDocumentaryFeesSumEntity)){
- settlementDocumentaryFeesVo.setSettlementSumId(settlementDocumentaryFeesSumEntity.getId());
- }
- return settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
- }
- private SettlementDocumentaryFeesSumEntity saveSumSettlement(InsPlyIncomeVo insPlyIncomeVo) {
- String handlingFeesStatus = insPlyIncomeVo.getHandlingFeesStatus();
- SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = new SettlementDocumentaryFeesSumEntity();
- BigDecimal totalAmount = BigDecimal.ZERO;
- if("1".equals(handlingFeesStatus)){
- List<InsPlyIncomeVo> nowInsPlyIncomeVo = insPlyIncomeVo.getMultipleSelection();
- for (InsPlyIncomeVo item: nowInsPlyIncomeVo ){
- totalAmount = totalAmount.add(item.getSettlementAmount()) ;
- }
- settlementDocumentaryFeesSumEntity.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId());
- settlementDocumentaryFeesSumEntity.setCompanyId(insPlyIncomeVo.getCompanyId());
- settlementDocumentaryFeesSumEntity.setCreateTime(new Date());
- settlementDocumentaryFeesSumEntity.setInvoicId(insPlyIncomeVo.getContractId());
- settlementDocumentaryFeesSumEntity.setInvoicingMethod(insPlyIncomeVo.getInvoicingMethod());
- settlementDocumentaryFeesSumEntity.setIsNotCar(insPlyIncomeVo.getIsNotCar());
- settlementDocumentaryFeesSumEntity.setSettlementStatus("1");
- settlementDocumentaryFeesSumEntity.setUserId(BaseController.getUser().getId());
- settlementDocumentaryFeesSumEntity.setInvoicedSettledAmount(BigDecimal.ZERO);
- settlementDocumentaryFeesSumEntity.setCompletionStatus("0");
- settlementDocumentaryFeesSumEntity.setTotalAmount(totalAmount);// 开票总额
- settlementDocumentaryFeesSumEntity.setInvoicedNotSettledAmount(totalAmount);
- settlementDocumentaryFeesSumService.getBaseMapper().insert(settlementDocumentaryFeesSumEntity);
- return settlementDocumentaryFeesSumEntity;
- }
- return settlementDocumentaryFeesSumEntity;
- }
- @Override
- public HttpResult pinHandlingexcel(InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params);
- ExportParams exportParams = new ExportParams("平台手续费", null, ExcelType.HSSF);
- exportParams.setStyle(ExcelStyleUtil.class);
- List<SettlementFeesExcel> resultList = new ArrayList<>();
- for (InsPlyIncome item : insPlyIncomes) {
- SettlementFeesExcel bxSettlementFeesExcel = new SettlementFeesExcel();
- BeanUtils.copyProperties(item, bxSettlementFeesExcel);
- if ("1".equals(item.getHandlingFeesStatus())) {
- bxSettlementFeesExcel.setHandlingFeesStatus("已结算");
- } else {
- bxSettlementFeesExcel.setHandlingFeesStatus("未结算");
- }
- resultList.add(bxSettlementFeesExcel);
- }
- String uploadPath = this.uploadPath + "/excel/";
- Path path = Paths.get(uploadPath);
- if (!Files.exists(path)) {
- try {
- Files.createDirectories(path);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- String fileName = EasyExcelUtils.downExcel(uploadPath, "平台手续费导出", SettlementFeesExcel.class, resultList);
- return HttpResult.ok("", uploadUrl + "excel/" + fileName);
- }
- @Override
- public HttpResult bxHandlingexcel(InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params);
- String filePathName = "";
- List<BxSettlementFeesNorExcel> resultNoList = new ArrayList<>();
- List<BxSettlementFeesExcel> resultList = new ArrayList<>();
- //判断是否是非车 1 是非车
- if ("1".equals(insPlyIncomeVo.getIsNotCar())) {
- filePathName = "非车手续费导出";
- ExportParams exportParams = new ExportParams("非车手续费", null, ExcelType.HSSF);
- exportParams.setStyle(ExcelStyleUtil.class);
- for (InsPlyIncome item : insPlyIncomes) {
- BxSettlementFeesNorExcel bxSettlementFeesNorExcel = new BxSettlementFeesNorExcel();
- LocalDateTime signDate = item.getSignDate();
- BeanUtils.copyProperties(item, bxSettlementFeesNorExcel);
- bxSettlementFeesNorExcel.setSigndate(signDate);
- if (item.getHandlingFeesStatus().equals("0")) {
- bxSettlementFeesNorExcel.setHandlingFeesStatus("未开票");
- }
- if (item.getHandlingFeesStatus().equals("1")) {
- bxSettlementFeesNorExcel.setHandlingFeesStatus("已开票");
- }
- if (item.getHandlingFeesStatus().equals("2")) {
- bxSettlementFeesNorExcel.setHandlingFeesStatus("已开票未结算");
- }
- resultNoList.add(bxSettlementFeesNorExcel);
- }
- } else {
- filePathName = "车险手续费导出";
- ExportParams exportParams = new ExportParams("车险手续费", null, ExcelType.HSSF);
- exportParams.setStyle(ExcelStyleUtil.class);
- for (InsPlyIncome item : insPlyIncomes) {
- BxSettlementFeesExcel bxSettlementFeesExcel = new BxSettlementFeesExcel();
- LocalDateTime signDate = item.getSignDate();
- BeanUtils.copyProperties(item, bxSettlementFeesExcel);
- bxSettlementFeesExcel.setSigndate(signDate);
- if (item.getHandlingFeesStatus().equals("0")) {
- bxSettlementFeesExcel.setHandlingFeesStatus("未开票");
- }
- if (item.getHandlingFeesStatus().equals("1")) {
- bxSettlementFeesExcel.setHandlingFeesStatus("已开票");
- }
- if (item.getHandlingFeesStatus().equals("2")) {
- bxSettlementFeesExcel.setHandlingFeesStatus("已开票未结算");
- }
- resultList.add(bxSettlementFeesExcel);
- }
- }
- String uploadPath = this.uploadPath + "/excel/";
- Path path = Paths.get(uploadPath);
- if (!Files.exists(path)) {
- try {
- Files.createDirectories(path);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- String fileName = "";
- if ("1".equals(insPlyIncomeVo.getIsNotCar())) {
- fileName = EasyExcelUtils.downExcel(uploadPath, filePathName, BxSettlementFeesNorExcel.class, resultNoList);
- } else {
- fileName = EasyExcelUtils.downExcel(uploadPath, filePathName, BxSettlementFeesExcel.class, resultList);
- }
- return HttpResult.ok("", uploadUrl + "excel/" + fileName);
- }
- @Override
- public HttpResult bxOtherExcel(InsPlyIncomeVo insPlyIncomeVo, HttpServletRequest request, HttpServletResponse response) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- params.put("agreementType", "2");
- params.put("isOther", "1");
- params.put("isNotCar", "0");
- List<InsPlyIncome> insPlyIncomes = baseMapper.allOtherAmount(params);
- ExportParams exportParams = new ExportParams("跟单费导出", null, ExcelType.HSSF);
- exportParams.setStyle(ExcelStyleUtil.class);
- List<BxOtherExcel> resultList = new ArrayList<>();
- for (InsPlyIncome item : insPlyIncomes) {
- BxOtherExcel bxSettlementFeesExcel = new BxOtherExcel();
- BeanUtils.copyProperties(item, bxSettlementFeesExcel);
- resultList.add(bxSettlementFeesExcel);
- }
- String uploadPath = this.uploadPath + "/excel/";
- Path path = Paths.get(uploadPath);
- if (!Files.exists(path)) {
- try {
- Files.createDirectories(path);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- String fileName = EasyExcelUtils.downExcel(uploadPath, "跟单费导出", BxOtherExcel.class, resultList);
- return HttpResult.ok("", uploadUrl + "excel/" + fileName);
- }
- @Override
- public InsPlyIncome bxTotalAmount(InsPlyIncomeVo insPlyIncomeVo) {
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- BigDecimal sumCommissionFeevalue = BigDecimal.ZERO; //总金额
- BigDecimal sumInvoicCommissionFeevalue = BigDecimal.ZERO; //开票未结算
- BigDecimal sumReadyCommissionFeevalue = BigDecimal.ZERO; // 已开票已结算
- BigDecimal sumNoInvoicCommissionFeevalue = BigDecimal.ZERO; //未开票金额
- BigDecimal sumUnSettledAmount = BigDecimal.ZERO; //未结算金额
- BigDecimal sumAllInvoicCommissionFeevalue = BigDecimal.ZERO; //总开票
- List<InsPlyIncome> resultList = baseMapper.totalBxAmount(params);
- for (InsPlyIncome item : resultList) {
- BigDecimal commissionFeevalue = BigDecimal.ZERO; //总金额
- BigDecimal invoicCommissionFeevalue = BigDecimal.ZERO; //开票未结算
- BigDecimal readyCommissionFeevalue = BigDecimal.ZERO; // 已开票已结算
- BigDecimal noInvoicCommissionFeevalue = BigDecimal.ZERO; //未开票金额
- BigDecimal unSettledAmount; //未结算金额
- params.put("partnerCompaniesId", item.getPartnerCompaniesId());
- params.remove("handlingFeesStatus");
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params); //金额总数
- for (InsPlyIncome all : insPlyIncomes) {
- if(ObjectUtils.isNotEmpty(all)){
- commissionFeevalue = commissionFeevalue.add(all.getCommissionFeevalue());
- }
- }
- //已开票金额 = 开票未结算+ 开票已结算
- params.put("handlingFeesStatus", "0"); // 开票
- params.put("settlementStatus", "1"); // 开票
- List<SettlementDocumentaryFeesEntity> invoicInsPlyIncomes = settlementDocumentaryFeesService.queryNew(params); //金额总数
- for (SettlementDocumentaryFeesEntity invoicInsPlyIncome : invoicInsPlyIncomes) {
- BigDecimal invoicIcommissionFeevalue = invoicInsPlyIncome.getSettlementAmount();// 已经开票金额
- invoicCommissionFeevalue = invoicCommissionFeevalue.add(invoicIcommissionFeevalue); //开票金额
- }
- params.put("settlementStatus", "2"); // 结算
- List<SettlementDocumentaryFeesEntity> settleInsPlyIncomes = settlementDocumentaryFeesService.queryNew(params); //金额总数
- for (SettlementDocumentaryFeesEntity settleInsPlyIncome : settleInsPlyIncomes) {
- BigDecimal settleIcommissionFeevalue = settleInsPlyIncome.getSettlementAmount();// 已结算金额
- readyCommissionFeevalue = readyCommissionFeevalue.add(settleIcommissionFeevalue); //已结算总
- }
- params.put("settlementStatus", 0); //未开票金额
- List<SettlementDocumentaryFeesEntity> noInvoicInsPlyIncomes = settlementDocumentaryFeesService.queryNew(params); //金额总数
- for (SettlementDocumentaryFeesEntity noInvoicInsPlyIncome : noInvoicInsPlyIncomes) {
- BigDecimal noInvoicIcommissionFeevalue = noInvoicInsPlyIncome.getSettlementAmount();// 未开票金额
- noInvoicCommissionFeevalue = noInvoicCommissionFeevalue.add(noInvoicIcommissionFeevalue); //未开票总金额
- }
- noInvoicCommissionFeevalue = commissionFeevalue.subtract(invoicCommissionFeevalue);// 未开票
- unSettledAmount = commissionFeevalue.subtract(readyCommissionFeevalue); //未结算
- //已开票金额
- item.setCommissionFeevalue(commissionFeevalue); //总手续费
- item.setAllInvoicCommissionFeevalue(invoicCommissionFeevalue); //总开票金额
- // 开票未结算 = 开票金额 - 已开票已结算
- invoicCommissionFeevalue = invoicCommissionFeevalue.subtract(readyCommissionFeevalue);
- item.setInvoicCommissionFeevalue(invoicCommissionFeevalue); //开票未结算
- item.setReadyCommissionFeevalue(readyCommissionFeevalue); //已开票已结算
- item.setNoInvoicCommissionFeevalue(noInvoicCommissionFeevalue); //未开票金额
- item.setUnSettledAmount(unSettledAmount); // 未结算金额
- sumCommissionFeevalue = sumCommissionFeevalue.add(item.getCommissionFeevalue());
- sumInvoicCommissionFeevalue = sumInvoicCommissionFeevalue.add(item.getInvoicCommissionFeevalue());
- sumReadyCommissionFeevalue = sumReadyCommissionFeevalue.add(item.getReadyCommissionFeevalue());
- sumNoInvoicCommissionFeevalue = sumNoInvoicCommissionFeevalue.add(item.getNoInvoicCommissionFeevalue());
- sumUnSettledAmount = sumUnSettledAmount.add(item.getUnSettledAmount());
- sumAllInvoicCommissionFeevalue = sumAllInvoicCommissionFeevalue.add(item.getAllInvoicCommissionFeevalue());
- }
- if(sumCommissionFeevalue.compareTo(sumReadyCommissionFeevalue) <0){
- sumAllInvoicCommissionFeevalue=sumCommissionFeevalue;
- sumReadyCommissionFeevalue=sumCommissionFeevalue;
- sumNoInvoicCommissionFeevalue =sumCommissionFeevalue.subtract(sumAllInvoicCommissionFeevalue);
- sumUnSettledAmount=sumAllInvoicCommissionFeevalue.subtract(sumReadyCommissionFeevalue);
- }
- insPlyIncome.setCommissionFeevalue(sumCommissionFeevalue);
- insPlyIncome.setInvoicCommissionFeevalue(sumInvoicCommissionFeevalue);
- insPlyIncome.setReadyCommissionFeevalue(sumReadyCommissionFeevalue);
- insPlyIncome.setNoInvoicCommissionFeevalue(sumNoInvoicCommissionFeevalue);
- insPlyIncome.setAllInvoicCommissionFeevalue(sumAllInvoicCommissionFeevalue);
- insPlyIncome.setUnSettledAmount(sumUnSettledAmount);
- return insPlyIncome;
- }
- @Override
- public InsPlyIncome ptTotalAmount(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- InsPlyIncome totalledAmount = baseMapper.ptTotalAmount(params); //总金额
- return totalledAmount;
- }
- // -> 2024
- @Override
- public HttpResult<List<HashMap<String, Object>>> otherTimeDetail(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- if(StringUtils.isNotEmpty(insPlyIncomeVo.getYeartsStart())){
- params.put("year", insPlyIncomeVo.getYeartsStart());
- params.put("yearAdd", String.valueOf((Integer.valueOf(insPlyIncomeVo.getYeartsStart())+1)));
- }
- this.saveParams(insPlyIncomeVo, params);
- List<HashMap<String, Object>> resultMap = baseMapper.otherTimeDetail(params);
- Set<String> uniqueYears = new HashSet<>();
- for (Map<String, Object> map : resultMap) {
- // 假设年份是以 "year" 为键的,并且它的值是 String 类型
- String year = String.valueOf(map.get("year"));
- if (year != null) { // 确保年份不是 null
- uniqueYears.add(year);
- }
- }
- this.addMonthYear(uniqueYears, resultMap);
- return HttpResult.ok(resultMap);
- }
- /**
- * uniqueYears 年份间隔 resultMap 返回结果
- *
- * @param uniqueYears
- * @param resultMap 返回一到十二月数据
- */
- private void addMonthYear(Set<String> uniqueYears, List<HashMap<String, Object>> resultMap) {
- // 存储已存在的年份-月份组合,以便快速查找
- Set<String> existingYearMonths = new HashSet<>();
- for (Map<String, Object> entry : resultMap) {
- String monthYear = String.valueOf(entry.get("monthYear"));
- existingYearMonths.add(monthYear);
- }
- // 遍历所有年份和月份,并添加缺失的条目
- for (String year : uniqueYears) {
- for (int month = 1; month <= 12; month++) {
- String strNumber = String.valueOf(month);
- if (strNumber.length() < 2) {
- strNumber = String.format("%02d", Integer.parseInt(strNumber));
- }
- String yearMonth = year + "-" + strNumber;
- if (!existingYearMonths.contains(yearMonth)) {
- // 创建一个新的条目并添加到resultMap中
- HashMap<String, Object> newEntry = new HashMap<>();
- newEntry.put("year", year);
- newEntry.put("monthNumber", strNumber);
- newEntry.put("allTotalOtherFeevalue", 0);
- newEntry.put("invoicCommissionFeevalue", 0);
- newEntry.put("monthYear", yearMonth);
- newEntry.put("noInvoicCommissionFeevalue", 0);
- resultMap.add(newEntry);
- }
- }
- }
- // 使用自定义Comparator对resultMap进行排序
- Collections.sort(resultMap, new Comparator<HashMap<String, Object>>() {
- @Override
- public int compare(HashMap<String, Object> o1, HashMap<String, Object> o2) {
- // 比较 year
- String year1 = String.valueOf(o1.get("year"));
- String year2 = String.valueOf(o2.get("year"));
- int yearComparison = year1.compareTo(year2);
- if (yearComparison != 0) {
- return yearComparison;
- }
- // 如果 year 相同,则比较 monthNumber
- Integer monthNum1 = Integer.parseInt(String.format("%2s", o1.get("monthNumber")).replaceAll(" ", "0"));
- Integer monthNum2 = Integer.parseInt(String.format("%2s", o2.get("monthNumber")).replaceAll(" ", "0"));
- return monthNum1.compareTo(monthNum2);
- }
- });
- }
- @Override
- @Transactional
- public HttpResult<Object> singleInvoic(InsPlyIncomeVo insPlyIncomeVo) {
- // 通过ids 查出跟单非结算单
- SettlementDocumentaryFeesVo settlementDocumentaryFeesVo = new SettlementDocumentaryFeesVo(); // 生成跟单费结算表
- if (!CollectionUtils.isEmpty(insPlyIncomeVo.getMultipleSelection())) {
- SettlementDocumentaryFeesSumEntity settlementDocumentaryFeesSumEntity = this.saveSumSettlement(insPlyIncomeVo);
- for (InsPlyIncomeVo insPlyIncomeVo1 : insPlyIncomeVo.getMultipleSelection()) {
- insPlyIncomeVo.setSettlementAmount(insPlyIncomeVo1.getSettlementAmount());
- insPlyIncomeVo.setOtherFeevalue(insPlyIncomeVo1.getAllTotalOtherFeevalue());
- YearMonth yearMonth = YearMonth.parse(insPlyIncomeVo1.getMonthYear());
- LocalDate signingTime = yearMonth.atDay(1);
- settlementDocumentaryFeesVo.setSigningTime(signingTime);
- if (insPlyIncomeVo.getOtherFeevalue().compareTo(BigDecimal.ZERO) == 0) {
- throw new SystemException("总金额为0不允许开票");
- }
- if (insPlyIncomeVo.getNoInvoicCommissionFeevalue().compareTo(BigDecimal.ZERO) == 0) {
- throw new SystemException("未开票金额为0不允许开票");
- }
- if (insPlyIncomeVo.getSettlementAmount() == null || insPlyIncomeVo.getSettlementAmount().compareTo(BigDecimal.ZERO) <= 0) {
- throw new SystemException("开票金额错误不允许开票");
- }
- if (insPlyIncomeVo.getNoInvoicCommissionFeevalue().compareTo(insPlyIncomeVo.getSettlementAmount()) < 0) {
- throw new SystemException("开票金额必须小于未开票金额 不允许开票");
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getYear())) {
- settlementDocumentaryFeesVo.setTimeFrame(insPlyIncomeVo.getYear());//年度
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getYear())) {
- settlementDocumentaryFeesVo.setYear(insPlyIncomeVo.getYear());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getMonth())) {
- settlementDocumentaryFeesVo.setMonth(insPlyIncomeVo.getMonth());
- }
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getDay())) {
- settlementDocumentaryFeesVo.setDay(insPlyIncomeVo.getDay());
- }
- settlementDocumentaryFeesVo.setCompletionStatus("0");
- settlementDocumentaryFeesVo.setInvoicedSettledAmount(BigDecimal.ZERO);
- settlementDocumentaryFeesVo.setInvoicedNotSettledAmount(insPlyIncomeVo.getSettlementAmount());
- settlementDocumentaryFeesVo.setCompanyId(insPlyIncomeVo.getCompanyId());// 保险公司id
- settlementDocumentaryFeesVo.setPartnerCompaniesId(insPlyIncomeVo.getPartnerCompaniesId()); //合作公司id
- settlementDocumentaryFeesVo.setTotalAmount(insPlyIncomeVo.getOtherFeevalue()); //其他费用金额
- settlementDocumentaryFeesVo.setUnsettledAmount(insPlyIncomeVo.getNoInvoicCommissionFeevalue().subtract(insPlyIncomeVo.getSettlementAmount())); //未结算
- settlementDocumentaryFeesVo.setSettlementAmount(insPlyIncomeVo.getSettlementAmount());//已经开票
- settlementDocumentaryFeesVo.setCreateTime(LocalDateTime.now());
- settlementDocumentaryFeesVo.setAgreementType("2");
- settlementDocumentaryFeesVo.setIds(insPlyIncomeVo.getIncomeIds());
- settlementDocumentaryFeesVo.setSettlementStatus("1");
- settlementDocumentaryFeesVo.setIsNotCar(insPlyIncomeVo.getIsNotCar());
- if (StringUtils.isNotEmpty(insPlyIncomeVo.getContractId())) {
- settlementDocumentaryFeesVo.setInvoiceId(insPlyIncomeVo.getContractId()); //开票号
- }
- settlementDocumentaryFeesVo.setHandlingFeesStatus(insPlyIncomeVo.getHandlingFeesStatus());
- settlementDocumentaryFeesVo.setInvoicingMethod(insPlyIncomeVo.getInvoicingMethod()); //开票方式
- settlementDocumentaryFeesVo.setTaxPoints(insPlyIncomeVo.getTaxPoints()); //税点
- settlementDocumentaryFeesVo.setIds(insPlyIncomeVo.getIds());
- // settlementDocumentaryFeesVo.setSigningTime(insPlyIncomeVo.getSettlementTime()); //签单日期
- // 税点支出
- if (BigDecimalUtils.nullToZero(insPlyIncomeVo.getTaxPoints()) != null && BigDecimalUtils.nullToZero(insPlyIncomeVo.getSettlementAmount()) != null) {
- BigDecimal settlementAmount = insPlyIncomeVo.getSettlementAmount();
- settlementDocumentaryFeesVo.setExpendAmount(settlementAmount.multiply(BigDecimal.ONE.subtract(insPlyIncomeVo.getTaxPoints().divide(new BigDecimal(100)))));
- }
- if(ObjectUtils.isNotEmpty(settlementDocumentaryFeesSumEntity)){
- settlementDocumentaryFeesVo.setSettlementSumId(settlementDocumentaryFeesSumEntity.getId());
- }
- settlementDocumentaryFeesService.inertSettle(settlementDocumentaryFeesVo);
- }
- }
- return HttpResult.ok();
- }
- @Override
- public void batchUpdate(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params = this.saveParams(insPlyIncomeVo, params);
- List<InsPlyIncome> list = this.baseMapper.queryNew(params);
- for (InsPlyIncome item : list) {
- item.setContractFileId(insPlyIncomeVo.getContractFileId());
- item.setSettleOtherStatus("1");
- baseMapper.updateById(item);
- }
- }
- @Override
- @Transactional
- public HashMap<String, Object> bxImportOther(MultipartFile multipartFile, String isNotCar) {
- HashMap<String, Object> resultMap = new HashMap<>();
- List<HashMap<String, Object>> resultList = new ArrayList<>();
- HashMap<String, Object> params = new HashMap<>();
- BigDecimal allAmount = BigDecimal.ZERO;
- params.put("isNotCar", isNotCar);
- try {
- List<InsBxOtherExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxOtherExcelDto.class, 0, 1, 1);
- for (InsBxOtherExcelDto item : dtoList) {
- if (StringUtils.isNotEmpty(item.getLicenseno())) {
- params.put("licenseno", item.getLicenseno());
- }
- if (StringUtils.isNotEmpty(item.getPolicyno())) {
- params.put("policyno", item.getPolicyno());
- }
- if (StringUtils.isNotEmpty(item.getSyPolicyno())) {
- params.put("syPolicyno", item.getSyPolicyno());
- }
- params.put("handlingFeesStatus", "0");
- // isOther
- params.put("isOther", "1");
- params.put("isNotCar", "0");
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (item.getJqOtherCostsProportion() == null) {
- item.setJqOtherCostsProportion(BigDecimal.ZERO);
- }
- if (item.getSyOtherCostsProportion() == null) {
- item.setSyOtherCostsProportion(BigDecimal.ZERO);
- }
- if (ObjectUtils.isNotEmpty(byBxLicenseno) && (byBxLicenseno.getJqOtherCostsProportion().compareTo(item.getJqOtherCostsProportion()) != 0 || byBxLicenseno.getSyOtherCostsProportion().compareTo(item.getSyOtherCostsProportion()) != 0)) {
- // InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- // BeanUtils.copyProperties(byBxLicenseno,insPlyIncomeLog);
- // insPlyIncomeLog.setOperationStatus("2");
- // insPlyIncomeLog.setId(null);
- // insPlyIncomeLog.setIncomeId(byBxLicenseno.getId());
- // insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- // 如果比例不相等
- BigDecimal jqOtherCostsProportion = item.getJqOtherCostsProportion();
- BigDecimal syOtherCostsProportion = item.getSyOtherCostsProportion();
- BigDecimal jqOtherAmount = getBigDecimal( byBxLicenseno.getJqPremium(),item.getJqOtherCostsProportion());
- BigDecimal syOtherAmount = getBigDecimal( byBxLicenseno.getSyPremium(),item.getSyOtherCostsProportion());
- // byBxLicenseno.setJqOtherCostsPremium(jqOtherAmount);
- // byBxLicenseno.setSyOtherCostsPremium(syOtherAmount);
- // byBxLicenseno.setJqOtherCostsProportion(jqOtherCostsProportion);
- // byBxLicenseno.setSyOtherCostsProportion(syOtherCostsProportion);
- // byBxLicenseno.setOtherFeevalue(this.calculateTotal(jqOtherAmount, syOtherAmount, null));
- // byBxLicenseno.setOtherFeerate(this.calculateTotal(jqOtherCostsProportion, syOtherCostsProportion, null));
- // byBxLicenseno.setAllFeeValue(this.calculateTotal(jqOtherAmount, syOtherAmount, null));
- // byBxLicenseno.setUpdateUserId(BaseController.getUser().getId());
- // byBxLicenseno.setUpdateUserName(BaseController.getUser().getName());
- // baseMapper.updateById(byBxLicenseno);
- HashMap<String, Object> map = new HashMap<>();
- map.put("licenseno", item.getLicenseno());
- map.put("policyno", item.getPolicyno());
- map.put("syPolicyno", item.getSyPolicyno());
- map.put("jqOtherCostsPremium", jqOtherAmount);
- map.put("syOtherCostsPremium", syOtherAmount);
- map.put("jqOtherCostsProportion", jqOtherCostsProportion);
- map.put("syOtherCostsProportion", syOtherCostsProportion);
- map.put("otherFeevalue", byBxLicenseno.getOtherFeevalue());
- map.put("otherFeerate", byBxLicenseno.getOtherFeerate());
- map.put("id", byBxLicenseno.getId());
- resultList.add(map);
- allAmount = allAmount.add(jqOtherAmount).add(syOtherAmount);
- }
- }
- resultMap.put("allAmount", allAmount);
- resultMap.put("resultList", resultList);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- return resultMap;
- }
- @Override
- @Transactional
- public void bxImportOtherConfirm(InsPlyIncomeVo insPlyIncomeVo) {
- if (ObjectUtils.isEmpty(insPlyIncomeVo)) {
- throw new SystemException("请导入文件");
- }
- if (!CollectionUtils.isEmpty(insPlyIncomeVo.getResultList())) {
- for (InsPlyIncome item : insPlyIncomeVo.getResultList()) {
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- BeanUtils.copyProperties(item,insPlyIncomeLog);
- insPlyIncomeLog.setOperationStatus("2");
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setIncomeId(item.getId());
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- item.setOtherFeevalue(this.calculateTotal(item.getJqOtherCostsPremium(), item.getSyOtherCostsPremium(), null));
- item.setOtherFeerate(this.calculateTotal(item.getJqOtherCostsProportion(), item.getSyOtherCostsProportion(), null));
- item.setAllFeeValue(this.calculateTotal(item.getJqOtherCostsPremium(), item.getSyOtherCostsPremium(), null));
- item.setUpdateUserId(BaseController.getUser().getId());
- item.setUpdateUserName(BaseController.getUser().getName());
- baseMapper.updateById(item);
- }
- }
- }
- @Override
- public HashMap<String, Object> ptImportOther(MultipartFile multipartFile) {
- HashMap<String, Object> resultMap = new HashMap<>();
- List<HashMap<String, Object>> resultList = new ArrayList<>();
- BigDecimal allAmount = BigDecimal.ZERO;
- try {
- List<InsPtHandExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsPtHandExcelDto.class, 0, 1, 1);
- for (InsPtHandExcelDto item : dtoList) {
- HashMap<String, Object> params = new HashMap<>();
- if (StringUtils.isNotEmpty(item.getLicenseno())) {
- params.put("licenseno", item.getLicenseno());
- }
- if (StringUtils.isNotEmpty(item.getPolicyno())) {
- params.put("policyno", item.getPolicyno());
- }
- if (StringUtils.isNotEmpty(item.getSyPolicyno())) {
- params.put("syPolicyno", item.getSyPolicyno());
- }
- if (StringUtils.isNotEmpty(item.getNoPolicyno())) {
- params.put("noPolicyno", item.getNoPolicyno());
- }
- params.put("handlingFeesStatus", "0");
- // isOther
- params.put("isOther", "0");
- params.put("isNotCar", "0");
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (item.getNoOtherCostsProportion() == null) {
- item.setNoOtherCostsProportion(BigDecimal.ZERO);
- }
- if (item.getJqOtherCostsProportion() == null) {
- item.setJqOtherCostsProportion(BigDecimal.ZERO);
- }
- if (item.getSyOtherCostsProportion() == null) {
- item.setSyOtherCostsProportion(BigDecimal.ZERO);
- }
- if (item.getJqSuperviseCostsProportion() == null) {
- item.setJqSuperviseCostsProportion(BigDecimal.ZERO);
- }
- if (item.getSySuperviseCostsProportion() == null) {
- item.setSySuperviseCostsProportion(BigDecimal.ZERO);
- }
- if (item.getNoSuperviseCostsProportion() == null) {
- item.setNoSuperviseCostsProportion(BigDecimal.ZERO);
- }
- if (ObjectUtils.isNotEmpty(byBxLicenseno) && (byBxLicenseno.getJqOtherCostsProportion().compareTo(item.getJqOtherCostsProportion()) != 0 || byBxLicenseno.getSyOtherCostsProportion().compareTo(item.getSyOtherCostsProportion()) != 0|| byBxLicenseno.getNoSuperviseCostsProportion().compareTo(item.getNoSuperviseCostsProportion()) != 0 || byBxLicenseno.getSySuperviseCostsProportion().compareTo(item.getSySuperviseCostsProportion()) != 0
- || byBxLicenseno.getNoOtherCostsProportion().compareTo(item.getNoOtherCostsProportion()) != 0|| byBxLicenseno.getJqSuperviseCostsProportion().compareTo(item.getJqSuperviseCostsProportion()) != 0
- )) {
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- BeanUtils.copyProperties(byBxLicenseno,insPlyIncomeLog);
- insPlyIncomeLog.setOperationStatus("2");
- insPlyIncomeLog.setId(null);
- insPlyIncomeLog.setIncomeId(byBxLicenseno.getId());
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- // 如果比例不相等
- BigDecimal jqOtherCostsProportion = item.getJqOtherCostsProportion();
- BigDecimal syOtherCostsProportion = item.getSyOtherCostsProportion();
- BigDecimal noOtherCostsProportion = item.getNoOtherCostsProportion();
- BigDecimal jqSuperviseCostsProportion = item.getJqSuperviseCostsProportion();
- BigDecimal sySuperviseCostsProportion = item.getSySuperviseCostsProportion();
- BigDecimal noSuperviseCostsProportion = item.getNoSuperviseCostsProportion();
- BigDecimal jqOtherAmount = algorithmAmount( byBxLicenseno.getJqPremium(),jqOtherCostsProportion);
- BigDecimal syOtherAmount = algorithmAmount( byBxLicenseno.getSyPremium(),syOtherCostsProportion);
- BigDecimal noOtherAmount = algorithmAmount( byBxLicenseno.getNoPremium(),noOtherCostsProportion);
- BigDecimal jqSuperviseCostsAmount = algorithmAmount( byBxLicenseno.getJqPremium(),jqSuperviseCostsProportion);
- BigDecimal sySuperviseCostsAmount = algorithmAmount( byBxLicenseno.getSyPremium(),sySuperviseCostsProportion);
- BigDecimal noSuperviseCostsAmount = algorithmAmount( byBxLicenseno.getNoPremium(),noSuperviseCostsProportion);
- byBxLicenseno.setJqOtherCostsPremium(jqOtherAmount);
- byBxLicenseno.setSyOtherCostsPremium(syOtherAmount);
- byBxLicenseno.setNoOtherCostsPremium(noOtherAmount);
- byBxLicenseno.setJqSuperviseCostsPremiums(jqSuperviseCostsAmount);
- byBxLicenseno.setSySuperviseCostsPremiums(sySuperviseCostsAmount);
- byBxLicenseno.setNoSuperviseCostsPremiums(noSuperviseCostsAmount);
- byBxLicenseno.setJqOtherCostsProportion(jqOtherCostsProportion);
- byBxLicenseno.setSyOtherCostsProportion(syOtherCostsProportion);
- byBxLicenseno.setNoOtherCostsProportion(noOtherCostsProportion);
- byBxLicenseno.setJqSuperviseCostsProportion(jqSuperviseCostsProportion);
- byBxLicenseno.setSySuperviseCostsProportion(sySuperviseCostsProportion);
- byBxLicenseno.setNoSuperviseCostsProportion(noSuperviseCostsProportion);
- byBxLicenseno.setOtherFeevalue(this.calculateTotal(jqOtherAmount, syOtherAmount, noOtherAmount));
- byBxLicenseno.setOtherFeerate(this.calculateTotal(jqOtherCostsProportion, syOtherCostsProportion, noOtherCostsProportion));
- byBxLicenseno.setCommissionFeevalue(this.calculateTotal(jqSuperviseCostsAmount, sySuperviseCostsAmount, noSuperviseCostsAmount));
- byBxLicenseno.setCommissionFeerate(this.calculateTotal(jqSuperviseCostsProportion,sySuperviseCostsProportion,noSuperviseCostsProportion));
- byBxLicenseno.setAllFeeValue(this.calculateTotal(byBxLicenseno.getOtherFeevalue(),byBxLicenseno.getCommissionFeevalue(),null));
- byBxLicenseno.setReceivableAmount(this.calculateTotal(byBxLicenseno.getOtherFeevalue(),byBxLicenseno.getCommissionFeevalue(),null));
- byBxLicenseno.setJqReceivableProportion(this.calculateTotal(jqSuperviseCostsProportion,jqOtherCostsProportion,null));
- byBxLicenseno.setSyReceivableProportion(this.calculateTotal(sySuperviseCostsProportion,syOtherCostsProportion,null));
- byBxLicenseno.setNoReceivableProportion(this.calculateTotal(noSuperviseCostsProportion,noOtherCostsProportion,null));
- byBxLicenseno.setUpdateUserId(BaseController.getUser().getId());
- byBxLicenseno.setUpdateUserName(BaseController.getUser().getName());
- baseMapper.updateById(byBxLicenseno);
- HashMap<String, Object> map = new HashMap<>();
- map.put("licenseno", item.getLicenseno());
- map.put("policyno", item.getPolicyno());
- map.put("syPolicyno", item.getSyPolicyno());
- map.put("noPolicyno", item.getNoPolicyno());
- map.put("jqOtherCostsPremium", jqOtherAmount);
- map.put("syOtherCostsPremium", syOtherAmount);
- map.put("noOtherCostsPremium", noOtherAmount);
- map.put("jqSuperviseCostsPremiums", jqSuperviseCostsAmount);
- map.put("sySuperviseCostsPremiums", sySuperviseCostsAmount);
- map.put("noSuperviseCostsPremiums", noSuperviseCostsAmount);
- map.put("jqOtherCostsProportion", jqOtherCostsProportion);
- map.put("syOtherCostsProportion", syOtherCostsProportion);
- map.put("noOtherCostsProportion", noOtherCostsProportion);
- map.put("jqSuperviseCostsProportion", jqSuperviseCostsProportion);
- map.put("sySuperviseCostsProportion", sySuperviseCostsProportion);
- map.put("noSuperviseCostsProportion", noSuperviseCostsProportion);
- map.put("otherFeevalue", byBxLicenseno.getOtherFeevalue());
- map.put("otherFeerate", byBxLicenseno.getOtherFeerate());
- resultList.add(map);
- allAmount = allAmount.add(jqOtherAmount).add(syOtherAmount).add(noOtherAmount);
- }
- }
- resultMap.put("allAmount", allAmount);
- resultMap.put("resultList", resultList);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- return resultMap;
- }
- @Override
- @Transactional
- public HashMap<String, Object> noBxImportOther(MultipartFile multipartFile, String isNotCar) {
- HashMap<String, Object> resultMap = new HashMap<>();
- List<HashMap<String, Object>> resultList = new ArrayList<>();
- HashMap<String, Object> params = new HashMap<>();
- BigDecimal allAmount = BigDecimal.ZERO;
- params.put("isNotCar", isNotCar);
- try {
- List<InsNoBxOtherExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsNoBxOtherExcelDto.class, 0, 1, 1);
- for (InsNoBxOtherExcelDto item : dtoList) {
- if (StringUtils.isNotEmpty(item.getLicenseno())) {
- params.put("licenseno", item.getLicenseno());
- }
- if (StringUtils.isNotEmpty(item.getNoPolicyno())) {
- params.put("noPolicyno", item.getNoPolicyno());
- }
- params.put("handlingFeesStatus", "0");
- params.put("isNotCar", "1");
- params.put("isOther", "1");
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (ObjectUtils.isNotEmpty(byBxLicenseno) && byBxLicenseno.getNoOtherCostsProportion().compareTo(item.getNoOtherCostsProportion()) != 0) {
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(byBxLicenseno.getId());
- BeanUtils.copyProperties(byBxLicenseno,insPlyIncomeLog);
- insPlyIncomeLog.setOperationStatus("2");
- insPlyIncomeLog.setId(null);
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- HashMap<String, Object> newMap = new HashMap<>();
- // 如果比例不相等
- BigDecimal noOtherCostsProportion = item.getNoOtherCostsProportion();
- BigDecimal noNoTaxPremium = byBxLicenseno.getNoPremium();
- BigDecimal divisor = new BigDecimal("1.06"); // 最好是使用字符串来避免精度损失
- BigDecimal noOtherAmount = getBigDecimal( noNoTaxPremium,item.getNoOtherCostsProportion());
- // byBxLicenseno.setNoOtherCostsPremium(noOtherAmount);
- // byBxLicenseno.setNoOtherCostsProportion(item.getNoOtherCostsProportion());
- // byBxLicenseno.setAllFeeValue(this.calculateTotal(noOtherAmount, null, null));
- //
- // byBxLicenseno.setOtherFeevalue(this.calculateTotal(noOtherAmount, null, null));
- // byBxLicenseno.setOtherFeerate(this.calculateTotal(noOtherCostsProportion, null, null));
- // baseMapper.updateById(byBxLicenseno);
- newMap.put("licenseno", item.getLicenseno());
- newMap.put("noPolicyno", item.getNoPolicyno());
- newMap.put("noOtherCostsPremium", noOtherAmount);
- newMap.put("noOtherCostsProportion", item.getNoOtherCostsProportion());
- newMap.put("otherFeevalue", byBxLicenseno.getOtherFeevalue());
- newMap.put("otherFeerate", byBxLicenseno.getOtherFeerate());
- newMap.put("id", byBxLicenseno.getId());
- resultList.add(newMap);
- allAmount = allAmount.add(noOtherAmount);
- }
- }
- resultMap.put("allAmount", allAmount);
- resultMap.put("resultList", resultList);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- return resultMap;
- }
- @Override
- @Transactional
- public void noBxImportOtherConfirm(InsPlyIncomeVo insPlyIncomeVo) {
- if (ObjectUtils.isEmpty(insPlyIncomeVo)) {
- throw new SystemException("请导入文件");
- }
- if (!CollectionUtils.isEmpty(insPlyIncomeVo.getResultList())) {
- for (InsPlyIncome item : insPlyIncomeVo.getResultList()) {
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(item.getId());
- BeanUtils.copyProperties(item,insPlyIncomeLog);
- insPlyIncomeLog.setOperationStatus("2");
- insPlyIncomeLog.setId(null);
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- item.setAllFeeValue(this.calculateTotal(item.getNoOtherCostsPremium(), null, null));
- item.setOtherFeevalue(this.calculateTotal(item.getNoOtherCostsPremium(), null, null));
- item.setOtherFeerate(this.calculateTotal(item.getNoOtherCostsProportion(), null, null));
- baseMapper.updateById(item);
- }
- }
- }
- @Override
- public void batchUpdateVoucher(InsPlyIncomeVo insPlyIncomeVo) {
- String s = insPlyIncomeVo.getSelectIds().get(0);
- ImportResult importResult = importAsyncService.getById(s);
- String[] split = importResult.getIds().split(",");
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- for (String id : split) {
- insPlyIncome.setId(id);
- insPlyIncome.setSettlementImageId(insPlyIncomeVo.getSettlementImageId());
- insPlyIncome.setSettleOtherStatus("1");
- baseMapper.updateById(insPlyIncome);
- }
- }
- /**
- * 通过任务id 去查询关联表
- *
- * @param insPlyIncomeVo
- * @return
- */
- @Override
- public HttpResult<Object> reconciliation(InsPlyIncomeVo insPlyIncomeVo) {
- String taskId = insPlyIncomeVo.getTaskId();
- List<String> incomeIdList = incomeTaskRelationshipService.getByTaskId(taskId);
- for (String incomeId : incomeIdList) {
- InsPlyIncome insPlyIncome = baseMapper.getById(incomeId);
- insPlyIncome.setSettleOtherStatus("1");
- insPlyIncome.setSettlementImageId(insPlyIncomeVo.getSettlementImageId());
- baseMapper.updateById(insPlyIncome);
- }
- return HttpResult.ok();
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/6/18 10:14
- * @Description: 通过保险公司id和状态查询平台的记录
- */
- @Override
- public List<PlatformSettlementRecordDto> platformSettlementRecord(InsPlyIncomeVo insPlyIncomeVo) {
- // if(insPlyIncomeVo.getPartnerCompaniesId()==null || "".equals(insPlyIncomeVo.getPartnerCompaniesId())){
- // throw new SystemException("合作公司编码(partnerCompaniesId)不能为空");
- // }
- if(insPlyIncomeVo.getHandlingFeesStatus()==null || "".equals(insPlyIncomeVo.getHandlingFeesStatus())){
- throw new SystemException("结算状态 0 未结算 1已结算(handlingFeesStatus)不能为空");
- }
- return baseMapper.platformSettlementRecord(insPlyIncomeVo.getPartnerCompaniesId(),insPlyIncomeVo.getHandlingFeesStatus(),insPlyIncomeVo.getDockingPerson());
- }
- /**
- * @param insPlyIncomeVo
- * @Description: 平台新增
- * @return InsPlyIncome
- */
- @Override
- public HttpResult<InsPlyIncome> ptInsert(InsPlyIncomeVo insPlyIncomeVo) {
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
- String agreementId = insPlyIncomeVo.getAgreementId();
- if(StringUtils.isNotEmpty(agreementId)){
- HttpResult<PtlAgreementQueryVo> byAgreementId = ptlAgreementService.getByAgreementId(agreementId);
- if(byAgreementId!=null && ObjectUtils.isNotEmpty(byAgreementId.getData())){
- PtlAgreementQueryVo data = byAgreementId.getData();
- PtlAgreement agreement = data.getAgreement();
- if(ObjectUtils.isNotEmpty(agreement)){
- insPlyIncomeVo.setPartnerCompaniesId(agreement.getPartnerCompaniesId());
- insPlyIncomeVo.setCompanyId(agreement.getInsuranceCompanyId());
- }
- }
- }
- BeanUtils.copyProperties(insPlyIncomeVo, insPlyIncome);
- if (StringUtils.isNotEmpty(insPlyIncome.getPartnerCompaniesId())) {
- // 合作公司id
- String partnerCompaniesId = insPlyIncome.getPartnerCompaniesId();
- insPlyIncome.setPartnerCompaniesId(partnerCompaniesId);
- EsmInsCompany esmInsCompany = EsmInsCompanyService.getById(partnerCompaniesId);
- String name = esmInsCompany.getNamesimple(); //合作名称
- insPlyIncome.setPartnerCompaniesName(name);
- insPlyIncome.setPartnerCompaniesId(insPlyIncome.getPartnerCompaniesId());
- }
- if (StringUtils.isNotEmpty(insPlyIncome.getCompanyId())) {
- String insuranceCompanyId = insPlyIncome.getCompanyId();
- EsmInsCompany esmInsCompany = EsmInsCompanyService.getById(insuranceCompanyId);
- String name = esmInsCompany.getNamesimple(); //保险公司名称 简称
- insPlyIncome.setCompanyName(name);
- }
- // if (insPlyIncome.getJqPremium() != null && insPlyIncome.getJqPremium().compareTo(BigDecimal.ZERO) > 0 && insPlyIncome.getJqSuperviseCostsProportion() != null && insPlyIncome.getJqSuperviseCostsProportion().compareTo(BigDecimal.ZERO) > 0) {
- // insPlyIncome.setJqSuperviseCostsPremiums(this.getBigDecimal(insPlyIncome.getJqPremium(),insPlyIncome.getJqSuperviseCostsProportion()));
- // }
- // if (insPlyIncome.getSyPremium() != null && insPlyIncome.getSyPremium().compareTo(BigDecimal.ZERO) > 0 && insPlyIncome.getSySuperviseCostsProportion() != null && insPlyIncome.getSySuperviseCostsProportion().compareTo(BigDecimal.ZERO) > 0) {
- // insPlyIncome.setSySuperviseCostsPremiums(this.getBigDecimal(insPlyIncome.getSyPremium(),insPlyIncome.getSySuperviseCostsProportion()));
- // }
- // if (insPlyIncome.getNoPremium() != null && insPlyIncome.getNoPremium().compareTo(BigDecimal.ZERO) > 0 && insPlyIncome.getNoSuperviseCostsProportion() != null && insPlyIncome.getNoSuperviseCostsProportion().compareTo(BigDecimal.ZERO) > 0) {
- // insPlyIncome.setNoSuperviseCostsPremiums(this.getBigDecimal(insPlyIncome.getNoPremium(),insPlyIncome.getNoSuperviseCostsProportion()));
- // }
- // if (insPlyIncome.getJqPremium() != null && insPlyIncome.getJqPremium().compareTo(BigDecimal.ZERO) > 0 && insPlyIncome.getJqOtherCostsProportion() != null && insPlyIncome.getJqOtherCostsProportion().compareTo(BigDecimal.ZERO) > 0) {
- // insPlyIncome.setJqOtherCostsPremium(this.getBigDecimal(insPlyIncome.getJqPremium(),insPlyIncome.getJqOtherCostsProportion()));
- // }
- // if (insPlyIncome.getSyPremium() != null && insPlyIncome.getSyPremium().compareTo(BigDecimal.ZERO) > 0 && insPlyIncome.getSyOtherCostsProportion() != null && insPlyIncome.getSyOtherCostsProportion().compareTo(BigDecimal.ZERO) > 0) {
- // insPlyIncome.setSyOtherCostsPremium(this.getBigDecimal(insPlyIncome.getSyPremium(),insPlyIncome.getSyOtherCostsProportion()));
- // }
- // if (insPlyIncome.getNoPremium() != null && insPlyIncome.getNoPremium().compareTo(BigDecimal.ZERO) > 0 && insPlyIncome.getNoOtherCostsProportion() != null && insPlyIncome.getNoOtherCostsProportion().compareTo(BigDecimal.ZERO) > 0) {
- // insPlyIncome.setNoOtherCostsPremium(this.getBigDecimal(insPlyIncome.getNoPremium(),insPlyIncome.getNoOtherCostsProportion()));
- // }
- HashMap<String, Object> params = new HashMap<>();
- params.put("agreeId",insPlyIncomeVo.getAgreeId());
- PtlAgreement ptlAgreement = ptlAgreementService.selectAgreeId(params);
- if (ObjectUtils.isEmpty(ptlAgreement)) {
- return HttpResult.error("协议匹配不上");
- }
- insPlyIncome.setAgreementId(ptlAgreement.getId());
- insPlyIncome.setJqReceivableProportion(this.calculateTotal(insPlyIncome.getJqSuperviseCostsProportion(),insPlyIncome.getNoOtherCostsProportion(),null));
- insPlyIncome.setSyReceivableProportion(this.calculateTotal(insPlyIncome.getSySuperviseCostsProportion(),insPlyIncome.getNoOtherCostsProportion(),null));
- insPlyIncome.setNoReceivableProportion(this.calculateTotal(insPlyIncome.getNoSuperviseCostsProportion(),insPlyIncome.getNoOtherCostsProportion(),null));
- insPlyIncome.setCreateTime(LocalDateTime.now());
- insPlyIncome.setCommissionFeerate(this.calculateTotal(insPlyIncome.getJqSuperviseCostsProportion(),insPlyIncome.getSySuperviseCostsProportion(),insPlyIncome.getNoSuperviseCostsPremiums()));
- insPlyIncome.setCommissionFeevalue(this.calculateTotal(insPlyIncome.getJqSuperviseCostsPremiums(),insPlyIncome.getSySuperviseCostsPremiums(),insPlyIncome.getNoSuperviseCostsPremiums()));
- insPlyIncome.setOtherFeerate(this.calculateTotal(insPlyIncome.getJqOtherCostsProportion(),insPlyIncome.getSyOtherCostsProportion(),insPlyIncome.getNoOtherCostsProportion()));
- insPlyIncome.setOtherFeevalue(this.calculateTotal(insPlyIncome.getJqOtherCostsPremium(),insPlyIncome.getSyOtherCostsPremium(),insPlyIncome.getNoOtherCostsPremium()));
- insPlyIncome.setAllFeeValue(this.calculateTotal(insPlyIncome.getCommissionFeevalue(),insPlyIncome.getOtherFeevalue(),null));
- insPlyIncome.setAgreementType("1");
- insPlyIncome.setHandlingFeesStatus("0");
- insPlyIncome.setCommissionFeevalue(insPlyIncomeVo.getCommissionFeevalue());
- insPlyIncome.setOtherFeevalue(insPlyIncomeVo.getOtherFeevalue());
- insPlyIncome.setIsNotCar("0");
- insPlyIncome.setIsNotDocumentary("0");
- insPlyIncome.setDocumentaryFeesStatus("0");
- insPlyIncome.setAllFeeValue(insPlyIncome.getReceivableAmount());
- if(StringUtils.isNotEmpty(insPlyIncomeVo.getSignDate())){
- LocalDate signDate = LocalDate.parse(insPlyIncomeVo.getSignDate(), formatter);
- insPlyIncome.setSignDate(signDate.atStartOfDay());
- }
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(insPlyIncome.getId());
- insPlyIncome.setId(null);
- BeanUtils.copyProperties(insPlyIncome,insPlyIncomeLog);
- insPlyIncomeLog.setOperationStatus("1");
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- baseMapper.insert(insPlyIncome);
- return HttpResult.ok();
- }
- /***
- *
- * @param insPlyIncomeVo
- * @return 返回私有 平台 应收 已收 未收
- */
- @Override
- public HttpResult<ArrayList<Map<String,Object>>> totalReceivables(InsPlyIncomeVo insPlyIncomeVo) {
- ArrayList<Map<String,Object>> resultList = new ArrayList<>();
- BigDecimal bxhandAmount = BigDecimal.ZERO; //保险手续费应收
- BigDecimal receivedAmount = BigDecimal.ZERO; //保险手续费应收
- HashMap<String, Object> ptParams = new HashMap<>();
- ptParams.put("agreementType","1");
- InsPlyIncome totalledAmount = baseMapper.ptTotalAmount(ptParams); //应收 未收 已收
- ptParams.clear();
- ptParams.put("commissionFeevalue",totalledAmount.getCommissionFeevalue());
- ptParams.put("noInvoicCommissionFeevalue",totalledAmount.getNoInvoicCommissionFeevalue());
- ptParams.put("readyCommissionFeevalue",totalledAmount.getReadyCommissionFeevalue());
- resultList.add(ptParams);
- //手续费应收
- HashMap<String, Object> privateParams= new HashMap<>();
- privateParams.put("agreementType","2");
- List<InsPlyIncome> bxHandList = baseMapper.queryNew(privateParams);
- for (InsPlyIncome bxhandItem : bxHandList){
- bxhandAmount=bxhandAmount.add(bxhandItem.getAllFeeValue());
- }
- privateParams.clear();
- //已开票金额 = 开票未结算+ 开票已结算
- privateParams.put("settlementStatus", "2"); // 结算
- List<SettlementDocumentaryFeesEntity> invoicInsPlyIncomes = settlementDocumentaryFeesService.queryNew(privateParams); //金额总数
- for (SettlementDocumentaryFeesEntity invoicInsPlyIncome : invoicInsPlyIncomes) {
- receivedAmount =receivedAmount.add(invoicInsPlyIncome.getSettlementAmount());
- }
- if(receivedAmount.compareTo(BigDecimal.ZERO)== 0){
- receivedAmount=bxhandAmount;
- }
- BigDecimal subtract = bxhandAmount.subtract(receivedAmount);
- privateParams.clear();
- privateParams.put("commissionFeevalue",bxhandAmount);
- privateParams.put("noInvoicCommissionFeevalue",receivedAmount);
- privateParams.put("readyCommissionFeevalue",subtract);
- resultList.add(privateParams);
- return HttpResult.ok(resultList);
- }
- /**
- * 根据签单日期月份分组
- * @param insPlyIncomeVo
- * @return 平台 私有 应收 已收
- */
- @Override
- public HttpResult<List<HashMap<String, Object>>> monthTotalReceivables(InsPlyIncomeVo insPlyIncomeVo) {
- HashMap<String, Object> params = new HashMap<>();
- params.put("agreementType", insPlyIncomeVo.getAgreementType());
- if ("1".equals(insPlyIncomeVo.getAgreementType())) { //平台
- params.put("year", insPlyIncomeVo.getYear());
- List<HashMap<String, Object>> ptResultList = baseMapper.ptSumGroupByMonth(params);
- params.put("handlingFeesStatus", "1");
- List<HashMap<String, Object>> ptSettleResultList = baseMapper.ptSumGroupByMonth(params);
- Map<String, BigDecimal> ptMap = new HashMap<>(); // 假设commissionFeevalue是BigDecimal类型
- for (HashMap<String, Object> ptSettleResultListItem : ptSettleResultList) {
- String month = (String) ptSettleResultListItem.get("month");
- if (month == null) {
- // 处理month为null的情况
- continue;
- }
- BigDecimal commissionFeevalue = (BigDecimal) ptSettleResultListItem.get("commissionFeevalue");
- if (commissionFeevalue == null) {
- // 处理commissionFeevalue为null的情况
- continue;
- }
- ptMap.put(month, commissionFeevalue);
- }
- for (HashMap<String, Object> ptResultListItem : ptResultList) {
- BigDecimal bigDecimal1 = ptMap.get(ptResultListItem.get("month"));
- ptResultListItem.put("readyCommissionFeevalue", bigDecimal1);
- BigDecimal commissionFeevalue = new BigDecimal(ptResultListItem.get("commissionFeevalue").toString());
- if (bigDecimal1 !=null && bigDecimal1.compareTo(BigDecimal.ZERO) > 0) {
- BigDecimal subtract = commissionFeevalue.subtract(bigDecimal1);
- ptResultListItem.put("noInvoicCommissionFeevalue", subtract);
- } else {
- ptResultListItem.put("noInvoicCommissionFeevalue", ptResultListItem.get("commissionFeevalue"));
- }
- }
- return HttpResult.ok(ptResultList);
- } else if ("2".equals(insPlyIncomeVo.getAgreementType())) {
- params.put("year", insPlyIncomeVo.getYear());
- List<HashMap<String, Object>> bxResultList = baseMapper.ptSumGroupByMonth(params);
- params.clear();
- params.put("settlementStatus", "2");
- List<HashMap<String, Object>> bxReadyCommissionFeevalue = settlementDocumentaryFeesService.bxSumGroupByMonth(params);
- Map<String, BigDecimal> bxMap = new HashMap<>(); // 假设commissionFeevalue是BigDecimal类型
- for (HashMap<String, Object> bxSettleResultListItem : bxReadyCommissionFeevalue) {
- String month = (String) bxSettleResultListItem.get("month");
- if (month == null) {
- // 处理month为null的情况
- continue;
- }
- BigDecimal commissionFeevalue = (BigDecimal) bxSettleResultListItem.get("commissionFeevalue");
- if (commissionFeevalue == null) {
- // 处理commissionFeevalue为null的情况
- continue;
- }
- bxMap.put(month, commissionFeevalue);
- }
- for (HashMap<String, Object> bxResultListItem : bxResultList) {
- BigDecimal bigDecimal1 = bxMap.get(bxResultListItem.get("month"));
- bxResultListItem.put("readyCommissionFeevalue", bigDecimal1);
- BigDecimal commissionFeevalue = new BigDecimal(bxResultListItem.get("commissionFeevalue").toString());
- if (bigDecimal1 !=null && bigDecimal1.compareTo(BigDecimal.ZERO) > 0) {
- BigDecimal subtract = commissionFeevalue.subtract(bigDecimal1);
- bxResultListItem.put("noInvoicCommissionFeevalue", subtract);
- } else {
- bxResultListItem.put("noInvoicCommissionFeevalue", bxResultListItem.get("commissionFeevalue"));
- }
- }
- return HttpResult.ok(bxResultList);
- }
- return HttpResult.ok();
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/8/1 9:28
- * @Description: 查询平台、私有数据
- */
- @Override
- public FinancialReceivablesAllVo queryDateByType(FinancialReceivablesQueryVo financialReceivablesQueryVo) {
- //检查参数
- if(StringUtils.isBlank(financialReceivablesQueryVo.getType())){
- throw new SystemException("应收类型不能为空,1为平台2为私有,默认传1");
- }
- int year =0;
- if(StringUtils.isBlank(financialReceivablesQueryVo.getYear())){
- Calendar cale = Calendar.getInstance();
- year = cale.get(Calendar.YEAR);
- }else{
- year = Integer.parseInt(financialReceivablesQueryVo.getYear());
- }
- List<FinancialReceivablesVo> list = new ArrayList<>();
- if("2".equals(financialReceivablesQueryVo.getType())){
- list.addAll(baseMapper.queryDateByType(financialReceivablesQueryVo)) ;
- }else {
- list.addAll(baseMapper.queryDateByTypePt(financialReceivablesQueryVo)) ;
- }
- financialReceivablesQueryVo.setBeginDate(SliceUpDateUtil.getYearBeginDateStr(year)+" 00:00:00");
- financialReceivablesQueryVo.setEndDate(SliceUpDateUtil.getYearEndDateStr(year)+" 23:59:59");
- //总应收
- financialReceivablesQueryVo.setType("1");
- BigDecimal ptSumAmount = baseMapper.queryDateByTypeNotSumAmount(financialReceivablesQueryVo);
- financialReceivablesQueryVo.setType("2");
- //总应收
- BigDecimal sySumAmount = baseMapper.queryDateByNotTypeSumAmount(financialReceivablesQueryVo);
- return new FinancialReceivablesAllVo(ptSumAmount !=null? ptSumAmount.toString(): "0",sySumAmount !=null ? sySumAmount.toString() : "0",year+"",list);
- }
- /**
- * @version
- * @author: whp
- * @Date: 2024/8/7
- * @Description: 私有 车险
- */
- @Override
- public FinancialReceivablesAllVo queryPrivateCar(FinancialReceivablesQueryVo financialReceivablesQueryVo) {
- int year =0;
- if(StringUtils.isBlank(financialReceivablesQueryVo.getYear())){
- Calendar cale = Calendar.getInstance();
- year = cale.get(Calendar.YEAR);
- }else{
- year = Integer.parseInt(financialReceivablesQueryVo.getYear());
- }
- FinancialReceivablesAllVo resultVo = new FinancialReceivablesAllVo();
- // 私有总金额
- financialReceivablesQueryVo.setBeginDate(SliceUpDateUtil.getYearBeginDateStr(year)+" 00:00:00");
- financialReceivablesQueryVo.setEndDate(SliceUpDateUtil.getYearEndDateStr(year)+" 23:59:59");
- // 私有应收
- BigDecimal syAmount = baseMapper.queryDateByTypeSumAmount(financialReceivablesQueryVo);
- if(syAmount!=null){
- resultVo.setSySumAmount(syAmount.toString());
- }
- resultVo.setYear(year+"");
- List<FinancialReceivablesVo> result= baseMapper.queryPrivateCar(financialReceivablesQueryVo);
- resultVo.setList(result);
- return resultVo;
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/8/5 9:56
- * @Description: 应收月份统计接口
- */
- @Override
- public FinancialReceivablesAllMonthVo queryDateByTypeByMonth(FinancialReceivablesQueryMonthVo financialReceivablesQueryVo) {
- //检查参数
- if (StringUtils.isBlank(financialReceivablesQueryVo.getType())) {
- throw new SystemException("应收类型不能为空,1为平台2为私有,默认传1");
- }
- //检查参数
- if (StringUtils.isBlank(financialReceivablesQueryVo.getYearAndMonth())) {
- throw new SystemException("月份不能为空");
- }
- String yearAndMonth = financialReceivablesQueryVo.getYearAndMonth();
- // int year = Integer.parseInt(yearAndMonth.split("-")[0]);
- // int month = Integer.parseInt(yearAndMonth.split("-")[1]);
- // financialReceivablesQueryVo.setBeginDate(SliceUpDateUtil.getStartOfMonth(year, month));
- // financialReceivablesQueryVo.setEndDate(SliceUpDateUtil.getEndOfMonth(year, month));
- //查询总数
- FinancialReceivablesAllMonthVo vo = baseMapper.queryDateByTypeByMonth(financialReceivablesQueryVo);
- if(vo!= null){
- // 第二层数据
- List<FinancialReceivablesMonthSignleVo> resultData = vo.getList();
- vo.setYearAndMonth(yearAndMonth);
- HashMap<String, BigDecimal> amountMap;
- if ("2".equals(financialReceivablesQueryVo.getType())) {
- amountMap = this.privateSett(resultData, financialReceivablesQueryVo);
- } else {
- amountMap = this.platformSett(resultData, financialReceivablesQueryVo);
- }
- vo.setYisSumAmount(amountMap.get("yishouAmount").toString());
- vo.setYsSumAmount(amountMap.get("yinshouAmount").toString());
- vo.setWsSumAmount(amountMap.get("weishouAmount").toString());
- }
- return vo;
- }
- private HashMap<String, BigDecimal> platformSett(List<FinancialReceivablesMonthSignleVo> resultData, FinancialReceivablesQueryMonthVo financialReceivablesQueryVo) {
- List<BigDecimal> yinShouAmountList = new ArrayList<>();
- List<BigDecimal> yishouAmountList = new ArrayList<>();
- List<BigDecimal> weishouAmountList = new ArrayList<>();
- BigDecimal yinshouAmount = new BigDecimal("0.00");
- BigDecimal yishouAmount = new BigDecimal("0.00");
- BigDecimal weishouAmount = new BigDecimal("0.00");
- HashMap<String, BigDecimal> resultMap = new HashMap<>();
- //平台手续费
- List<FinancialReceivablesMonthVo> handList = baseMapper.queryPlatHanding(financialReceivablesQueryVo);
- List<FinancialReceivablesMonthVo> patherIdList = baseMapper.getPatherId(financialReceivablesQueryVo);
- Map<String, List<FinancialReceivablesMonthVo>> groupedByPartnerCompaniesId = handList.stream()
- .collect(Collectors.groupingBy(FinancialReceivablesMonthVo::getPartnerCompaniesId));
- patherIdList.stream().filter(item -> groupedByPartnerCompaniesId.containsKey(item.getPartnerCompaniesId()))
- .forEach(item ->{
- List<FinancialReceivablesMonthVo> financialReceivablesMonthVosList = groupedByPartnerCompaniesId.get(item.getPartnerCompaniesId());
- FinancialReceivablesMonthSignleVo financialReceivablesMonthSignleVo = new FinancialReceivablesMonthSignleVo();
- List<FinancialReceivablesMonthVo> financialReceivablesMonthVos = financialReceivablesMonthSignleVo.getList();
- financialReceivablesMonthSignleVo.setCompanyName(item.getCompanyName());
- financialReceivablesMonthSignleVo.setAreaName(item.getAreaName());
- financialReceivablesMonthVos.addAll(financialReceivablesMonthVosList);
- resultData.add(financialReceivablesMonthSignleVo);
- financialReceivablesMonthVosList.forEach(financialReceivablesMonthVo ->{
- if("合计".equals(financialReceivablesMonthVo.getIsHand())){
- yinShouAmountList.add(this.stringToBigdecimal(financialReceivablesMonthVo.getCommissionFeevalue()));
- yishouAmountList.add(this.stringToBigdecimal(financialReceivablesMonthVo.getReadyCommissionFeevalue()));
- weishouAmountList.add(this.stringToBigdecimal(financialReceivablesMonthVo.getNoInvoicCommissionFeevalue()));
- }
- });
- });
- yinshouAmount = yinshouAmount.add(yinShouAmountList.stream().reduce(BigDecimal.ZERO, BigDecimal::add));
- yishouAmount = yishouAmount.add(yishouAmountList.stream().reduce(BigDecimal.ZERO, BigDecimal::add));
- weishouAmount = weishouAmount.add(weishouAmountList.stream().reduce(BigDecimal.ZERO, BigDecimal::add));
- resultMap.put("yinshouAmount",yinshouAmount);
- resultMap.put("yishouAmount",yishouAmount);
- resultMap.put("weishouAmount",weishouAmount);
- return resultMap;
- }
- private HashMap<String, BigDecimal> privateSett(List<FinancialReceivablesMonthSignleVo> resultData, FinancialReceivablesQueryMonthVo financialReceivablesQueryVo) {
- List<BigDecimal> yinShouAmountList = new ArrayList<>();
- List<BigDecimal> yishouAmountList = new ArrayList<>();
- List<BigDecimal> weishouAmountList = new ArrayList<>();
- BigDecimal yinshouAmount = new BigDecimal("0.00");
- BigDecimal yishouAmount = new BigDecimal("0.00");
- BigDecimal weishouAmount = new BigDecimal("0.00");
- HashMap<String, BigDecimal> resultMap = new HashMap<>();
- //手续费未接应收
- List<FinancialReceivablesMonthVo> list = baseMapper.queryDateByTypeByMonthList(financialReceivablesQueryVo);
- //跟单统计
- List<FinancialReceivablesMonthVo> otherList = baseMapper.queryDateByTypeByMonthOtherList(financialReceivablesQueryVo);
- Map<String, FinancialReceivablesMonthVo> otherCollect = otherList.stream().collect(Collectors.toMap(FinancialReceivablesMonthVo::getPartnerCompaniesId, Function.identity()));
- // Map<String, FinancialReceivablesMonthVo> commCollect= list.stream().collect(Collectors.toMap(FinancialReceivablesMonthVo::getPartnerCompaniesId, Function.identity()));
- list.forEach(item -> {
- if(otherCollect.containsKey(item.getPartnerCompaniesId())){
- FinancialReceivablesMonthVo otherItem = otherCollect.get(item.getPartnerCompaniesId());
- FinancialReceivablesMonthSignleVo financialReceivablesMonthSignleVo = new FinancialReceivablesMonthSignleVo();
- List<FinancialReceivablesMonthVo> financialReceivablesMonthVos = financialReceivablesMonthSignleVo.getList();
- financialReceivablesMonthSignleVo.setCompanyName(item.getCompanyName());
- financialReceivablesMonthSignleVo.setAreaName(item.getAreaName());
- // 合计信息
- FinancialReceivablesMonthVo financialReceivablesMonthVo = new FinancialReceivablesMonthVo();
- financialReceivablesMonthVo.setCommissionFeevalue(this.calculateTotal(this.stringToBigdecimal(item.getCommissionFeevalue()), new BigDecimal(otherItem.getCommissionFeevalue()), null).toString());
- financialReceivablesMonthVo.setNoInvoicCommissionFeevalue(this.calculateTotal(this.stringToBigdecimal(item.getNoInvoicCommissionFeevalue()), new BigDecimal(otherItem.getNoInvoicCommissionFeevalue()), null).toString());
- financialReceivablesMonthVo.setReadyCommissionFeevalue(this.calculateTotal(this.stringToBigdecimal(item.getReadyCommissionFeevalue()), new BigDecimal(otherItem.getReadyCommissionFeevalue()), null).toString());
- financialReceivablesMonthVo.setSettlementAmount(this.calculateTotal(this.stringToBigdecimal(item.getSettlementAmount()), new BigDecimal(otherItem.getSettlementAmount()), null).toString());
- financialReceivablesMonthVo.setNoSettlementAmount(this.calculateTotal(this.stringToBigdecimal(item.getNoSettlementAmount()), new BigDecimal(otherItem.getNoSettlementAmount()), null).toString());
- financialReceivablesMonthVo.setIsHand("合计");
- financialReceivablesMonthVos.add(otherItem);
- financialReceivablesMonthVos.add(item);
- financialReceivablesMonthVos.add(financialReceivablesMonthVo);
- yishouAmountList.add(this.stringToBigdecimal(financialReceivablesMonthVo.getReadyCommissionFeevalue()));
- yinShouAmountList.add(this.stringToBigdecimal(financialReceivablesMonthVo.getCommissionFeevalue()));
- weishouAmountList.add(this.stringToBigdecimal(financialReceivablesMonthVo.getNoInvoicCommissionFeevalue()));
- resultData.add(financialReceivablesMonthSignleVo);
- }else {
- FinancialReceivablesMonthVo otherItem = new FinancialReceivablesMonthVo() ;
- otherItem.setIsHand("跟单费");
- otherItem.setCommissionFeevalue(BigDecimal.ZERO.toString());
- otherItem.setNoInvoicCommissionFeevalue(BigDecimal.ZERO.toString());
- otherItem.setReadyCommissionFeevalue(BigDecimal.ZERO.toString());
- otherItem.setSettlementAmount(BigDecimal.ZERO.toString());
- otherItem.setNoSettlementAmount(BigDecimal.ZERO.toString());
- FinancialReceivablesMonthSignleVo financialReceivablesMonthSignleVo = new FinancialReceivablesMonthSignleVo();
- List<FinancialReceivablesMonthVo> financialReceivablesMonthVos = financialReceivablesMonthSignleVo.getList();
- financialReceivablesMonthSignleVo.setCompanyName(item.getCompanyName());
- financialReceivablesMonthSignleVo.setAreaName(item.getAreaName());
- // 合计信息
- FinancialReceivablesMonthVo financialReceivablesMonthVo = new FinancialReceivablesMonthVo();
- financialReceivablesMonthVo.setCommissionFeevalue(this.calculateTotal(this.stringToBigdecimal(item.getCommissionFeevalue()), BigDecimal.ZERO, null).toString());
- financialReceivablesMonthVo.setNoInvoicCommissionFeevalue(this.calculateTotal(this.stringToBigdecimal(item.getNoInvoicCommissionFeevalue()), BigDecimal.ZERO, null).toString());
- financialReceivablesMonthVo.setReadyCommissionFeevalue(this.calculateTotal(this.stringToBigdecimal(item.getReadyCommissionFeevalue()), BigDecimal.ZERO, null).toString());
- financialReceivablesMonthVo.setSettlementAmount(this.calculateTotal(this.stringToBigdecimal(item.getSettlementAmount()), BigDecimal.ZERO, null).toString());
- financialReceivablesMonthVo.setNoSettlementAmount(this.calculateTotal(this.stringToBigdecimal(item.getNoSettlementAmount()), BigDecimal.ZERO, null).toString());
- financialReceivablesMonthVo.setIsHand("合计");
- financialReceivablesMonthVos.add(otherItem);
- financialReceivablesMonthVos.add(item);
- financialReceivablesMonthVos.add(financialReceivablesMonthVo);
- yishouAmountList.add(this.stringToBigdecimal(financialReceivablesMonthVo.getReadyCommissionFeevalue()));
- yinShouAmountList.add(this.stringToBigdecimal(financialReceivablesMonthVo.getCommissionFeevalue()));
- weishouAmountList.add(this.stringToBigdecimal(financialReceivablesMonthVo.getNoInvoicCommissionFeevalue()));
- resultData.add(financialReceivablesMonthSignleVo);
- }
- }
- );
- yinshouAmount = yinshouAmount.add(yinShouAmountList.stream().reduce(BigDecimal.ZERO, BigDecimal::add));
- yishouAmount = yishouAmount.add(yishouAmountList.stream().reduce(BigDecimal.ZERO, BigDecimal::add));
- weishouAmount = weishouAmount.add(weishouAmountList.stream().reduce(BigDecimal.ZERO, BigDecimal::add));
- resultMap.put("yinshouAmount",yinshouAmount);
- resultMap.put("yishouAmount",yishouAmount);
- resultMap.put("weishouAmount",weishouAmount);
- return resultMap;
- }
- private BigDecimal stringToBigdecimal(String value) {
- return new BigDecimal(value).setScale(5, RoundingMode.DOWN);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/8/7 11:20
- * @Description: 修正协议变动重新生成数据逻辑
- */
- @Override
- public HttpResult<List<InsPlyIncome>> createData(InsPlyIncomeIdsVo insPlyIncomeIdsVo) {
- if(insPlyIncomeIdsVo.getIds()==null || insPlyIncomeIdsVo.getIds().size()==0){
- throw new SystemException("子订单id不能为空!!");
- }
- List<String> ids = insPlyIncomeIdsVo.getIds();
- List<InsPlyIncome> newList=new ArrayList<>();
- for(String subOrderId:ids){
- //查询子订单对象 com.ydtech.modules.order.entity
- InsAreaCompany insAreaCompany = fncInsAreaCompanyMapper.selectById(subOrderId);
- //大订单对象
- InsOrders order = insOrdersService.existOrder(insAreaCompany.getOrderno());
- SysUser sysUser = sysUserService.getById(order.getUserid());
- //获取该订单的费用
- InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getOne(new LambdaQueryWrapper<InsFeeOrderNew>()
- .eq(InsFeeOrderNew::getInsOrderNo, insAreaCompany.getId()));
- saveBalanceNew(order, insFeeOrderNew,insAreaCompany, sysUser.getLeaderId(), sysUser.getLeaderName()) ;
- }
- return HttpResult.ok(newList);
- }
- @Override
- public List<InsuranceHandlingSettlementMonthDto> getInvociAmount(InsuranceHandlingSettlementMonthVo insuranceHandlingSettlementMonthVo) {
- return baseMapper.getInvociAmount(insuranceHandlingSettlementMonthVo);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/9/20 9:58
- * @Description: 平台结算情况统计
- */
- @Override
- public List<InsPlyIncomePTDto> totalPTAmount(InsPlyIncomePTVo insPlyIncomeVo) {
- return baseMapper.totalPTAmount(insPlyIncomeVo);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/9/20 11:01
- * @Description: 通过结算人查询保险公司结算数据
- */
- @Override
- public List<InsPlyIncomePTCompanyDto> findListByDockingPerson(InsPlyIncomeQueryPTVo insPlyIncomeVo) {
- return baseMapper.findListByDockingPerson(insPlyIncomeVo);
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/9/21 14:14
- * @Description: 批量导入
- */
- @Override
- public void importDataAddType(MultipartFile file, String type) throws Exception {
- List<InsPlyIncome> list =new ArrayList<InsPlyIncome>();
- //导入验证
- if("1".equals(type)){
- //车险手续费
- List<AddTypeCXSXFExcel> dtoList = ExcelEasypoiUtils.importExcel(file, AddTypeCXSXFExcel.class, 0, 1, 1);
- try{
- list=checkData(type,dtoList,null,null,null,null);
- }catch(SystemException e){
- throw new SystemException(e.getMessage());
- }
- }else if("2".equals(type)){
- //车险跟单
- List<AddTypeCXGDExcel> dtoList = ExcelEasypoiUtils.importExcel(file, AddTypeCXGDExcel.class, 0, 1, 1);
- try{
- list=checkData(type,null,dtoList,null,null,null);
- }catch(SystemException e){
- throw new SystemException(e.getMessage());
- }
- }else if("3".equals(type)){
- //非车手续费
- List<AddTypeFCSXFExcel> dtoList = ExcelEasypoiUtils.importExcel(file, AddTypeFCSXFExcel.class, 0, 1, 1);
- try{
- list=checkData(type,null,null,dtoList,null,null);
- }catch(SystemException e){
- throw new SystemException(e.getMessage());
- }
- }else if("4".equals(type)){
- //非车跟单
- List<AddTypeFCGDExcel> dtoList = ExcelEasypoiUtils.importExcel(file, AddTypeFCGDExcel.class, 0, 1, 1);
- try{
- list=checkData(type,null,null,null,dtoList,null);
- }catch(SystemException e){
- throw new SystemException(e.getMessage());
- }
- }
- else if("5".equals(type)){
- //平台结算
- List<AddTypePTJSExcel> dtoList = ExcelEasypoiUtils.importExcel(file, AddTypePTJSExcel.class, 0, 1, 1);
- try{
- list=checkData(type,null,null,null,null,dtoList);
- }catch(SystemException e){
- throw new SystemException(e.getMessage());
- }
- }
- //批量插入
- if(list!=null && list.size()>0){
- this.saveBatch(list);
- }
- }
- /** 批量修改 手续费金额
- *
- * @param multipartFile
- * @param isNotCar 是否是非车
- * @return
- */
- @Override
- public HashMap<String, Object> insuranceHandlingFeeBathUpdate(MultipartFile multipartFile, String isNotCar) {
- HashMap<String, Object> resultMap = new HashMap<>();
- List<HashMap<String, Object>> resultList = new ArrayList<>();
- HashMap<String, Object> params = new HashMap<>();
- BigDecimal allAmount = BigDecimal.ZERO;
- params.put("isNotCar", isNotCar);
- try {
- List<InsBxPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxPlyIncomeExcelDto.class, 0, 1, 1);
- for (InsBxPlyIncomeExcelDto item : dtoList) {
- if (StringUtils.isNotEmpty(item.getLicenseno())) {
- params.put("licenseno", item.getLicenseno());
- }
- if (StringUtils.isNotEmpty(item.getPolicyno())) {
- params.put("policyno", item.getPolicyno());
- }
- if (StringUtils.isNotEmpty(item.getSyPolicyno())) {
- params.put("syPolicyno", item.getSyPolicyno());
- }
- params.put("handlingFeesStatus", "0");
- params.put("isOther", "0");
- params.put("isNotCar", "0");
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (item.getJqSuperviseCostsProportion() == null) {
- item.setJqSuperviseCostsProportion(BigDecimal.ZERO);
- }
- if (item.getSySuperviseCostsProportion() == null) {
- item.setSySuperviseCostsProportion(BigDecimal.ZERO);
- }
- if (ObjectUtils.isNotEmpty(byBxLicenseno) && (byBxLicenseno.getJqOtherCostsProportion().compareTo(item.getJqSuperviseCostsProportion()) != 0 || byBxLicenseno.getSySuperviseCostsProportion().compareTo(item.getSySuperviseCostsProportion()) != 0)) {
- // 如果比例不相等
- BigDecimal jqSuperviseCostsProportion = item.getJqSuperviseCostsProportion();
- BigDecimal sySuperviseCostsProportion = item.getSySuperviseCostsProportion();
- BigDecimal jqSupervisePremium = getBigDecimal( byBxLicenseno.getJqPremium(),jqSuperviseCostsProportion);
- BigDecimal sySupervisePremium = getBigDecimal( byBxLicenseno.getSyPremium(),sySuperviseCostsProportion);
- HashMap<String, Object> map = new HashMap<>();
- map.put("licenseno", item.getLicenseno());
- map.put("policyno", item.getPolicyno());
- map.put("syPolicyno", item.getSyPolicyno());
- map.put("jqSuperviseCostsPremiums", jqSupervisePremium);
- map.put("sySuperviseCostsPremiums", sySupervisePremium);
- map.put("jqSuperviseCostsProportion", jqSuperviseCostsProportion);
- map.put("sySuperviseCostsProportion", sySuperviseCostsProportion);
- map.put("id", byBxLicenseno.getId());
- resultList.add(map);
- allAmount = allAmount.add(jqSupervisePremium).add(sySupervisePremium);
- }
- }
- resultMap.put("allAmount", allAmount);
- resultMap.put("resultList", resultList);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- return resultMap;
- }
- /**
- * 保险手续费批量修改
- * @param insPlyIncomeVo
- */
- @Override
- @Transactional
- public void insuranceHandlingFeeBathConfirm(InsPlyIncomeVo insPlyIncomeVo) {
- if (ObjectUtils.isEmpty(insPlyIncomeVo)) {
- throw new SystemException("请导入文件");
- }
- if(CollectionUtils.isEmpty(insPlyIncomeVo.getResultList())){
- throw new SystemException("请导入文件");
- }
- ArrayList<InsPlyIncome> batchUpdateItem = new ArrayList<>();
- for (InsPlyIncome item : insPlyIncomeVo.getResultList()) {
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(item.getId());
- BeanUtils.copyProperties(item, insPlyIncomeLog);
- insPlyIncomeLog.setOperationStatus("2");
- insPlyIncomeLog.setId(null);
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- item.setAllFeeValue(this.calculateTotal(item.getJqSuperviseCostsPremiums(), item.getSySuperviseCostsPremiums(), null));
- item.setCommissionFeevalue(this.calculateTotal(item.getJqSuperviseCostsPremiums(), item.getSySuperviseCostsPremiums(), null));
- item.setCommissionFeerate(this.calculateTotal(item.getJqSuperviseCostsProportion(), item.getSySuperviseCostsProportion(), null));
- batchUpdateItem.add(item);
- // baseMapper.updateById(item);
- }
- this.saveOrUpdateBatch(batchUpdateItem);
- }
- @Override
- public HashMap<String, Object> insuranceHandlingFeeBathNotCarImport(MultipartFile multipartFile, String isNotCar) {
- HashMap<String, Object> resultMap = new HashMap<>();
- List<HashMap<String, Object>> resultList = new ArrayList<>();
- HashMap<String, Object> params = new HashMap<>();
- BigDecimal allAmount = BigDecimal.ZERO;
- params.put("isNotCar", isNotCar);
- try {
- List<InsBxNoPlyIncomeExcelDto> dtoList = ExcelEasypoiUtils.importExcel(multipartFile, InsBxNoPlyIncomeExcelDto.class, 0, 1, 1);
- for (InsBxNoPlyIncomeExcelDto item : dtoList) {
- if (StringUtils.isNotEmpty(item.getLicenseno())) {
- params.put("licenseno", item.getLicenseno());
- }
- if (StringUtils.isNotEmpty(item.getNoPolicyno())) {
- params.put("noPolicyno", item.getNoPolicyno());
- }
- params.put("handlingFeesStatus", "0");
- params.put("isOther", "0");
- params.put("isNotCar", "1");
- InsPlyIncome byBxLicenseno = baseMapper.findByBxLicenseno(params);
- if (item.getNoSuperviseCostsProportion() == null) {
- item.setNoSuperviseCostsProportion(BigDecimal.ZERO);
- }
- if (ObjectUtils.isNotEmpty(byBxLicenseno) && (byBxLicenseno.getNoSuperviseCostsProportion().compareTo(item.getNoSuperviseCostsProportion()) != 0 )) {
- // 如果比例不相等
- BigDecimal noSuperviseCostsProportion = item.getNoSuperviseCostsProportion();
- BigDecimal noSuperviseCostsPremiums = getBigDecimal(byBxLicenseno.getNoPremium(),noSuperviseCostsProportion);
- HashMap<String, Object> map = new HashMap<>();
- map.put("licenseno", item.getLicenseno());
- map.put("noPolicyno", item.getNoPolicyno());
- map.put("noSuperviseCostsPremiums", noSuperviseCostsPremiums);
- map.put("noSuperviseCostsProportion", noSuperviseCostsProportion);
- map.put("id", byBxLicenseno.getId());
- resultList.add(map);
- allAmount = allAmount.add(noSuperviseCostsPremiums);
- }
- }
- resultMap.put("allAmount", allAmount);
- resultMap.put("resultList", resultList);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- return resultMap;
- }
- /**
- * 保险手续费批量修改
- * @param insPlyIncomeVo
- */
- @Override
- @Transactional
- public void insuranceHandlingNotCarFeeBathConfirm(InsPlyIncomeVo insPlyIncomeVo) {
- if (ObjectUtils.isEmpty(insPlyIncomeVo)) {
- throw new SystemException("请导入文件");
- }
- if(CollectionUtils.isEmpty(insPlyIncomeVo.getResultList())){
- throw new SystemException("请导入文件");
- }
- ArrayList<InsPlyIncome> batchUpdateItem = new ArrayList<>();
- for (InsPlyIncome item : insPlyIncomeVo.getResultList()) {
- InsPlyIncomeLog insPlyIncomeLog = new InsPlyIncomeLog();
- insPlyIncomeLog.setIncomeId(item.getId());
- BeanUtils.copyProperties(item, insPlyIncomeLog);
- insPlyIncomeLog.setOperationStatus("2");
- insPlyIncomeLog.setId(null);
- insPlyIncomeLogService.saveLog(insPlyIncomeLog); //添加日志
- item.setAllFeeValue(this.calculateTotal(item.getNoSuperviseCostsPremiums(), null, null));
- item.setCommissionFeevalue(this.calculateTotal(item.getNoSuperviseCostsPremiums(), null, null));
- item.setCommissionFeerate(this.calculateTotal(item.getNoSuperviseCostsProportion(), null, null));
- batchUpdateItem.add(item);
- // baseMapper.updateById(item);
- }
- this.saveOrUpdateBatch(batchUpdateItem);
- }
- public List<InsPlyIncome> checkData(String type,List<AddTypeCXSXFExcel> cxsxfList,List<AddTypeCXGDExcel> cxgdList, List<AddTypeFCSXFExcel> fcsxfList, List<AddTypeFCGDExcel> fcgdList,List<AddTypePTJSExcel> ptjsList) throws SystemException{
- List<InsPlyIncome> list =new ArrayList<InsPlyIncome>();
- if("1".equals(type)){
- int index=1;
- //车险手续费
- if(cxsxfList!=null && cxsxfList.size()>0){
- for(AddTypeCXSXFExcel dto : cxsxfList){
- if(!ImportObjectUtils.allNull(dto)){
- index++;
- Map<String, Object> map = CheckInsPlyComeUtils.checkDataDto1(dto);
- if(!"".equals(map.get("msg"))){
- throw new SystemException("第" + index + "行数据" + map.get("msg").toString());
- }else{
- InsPlyIncome insPlyIncome = (InsPlyIncome)map.get("dto");
- list.add(insPlyIncome);
- }
- }
- }
- }
- }else if("2".equals(type)){
- int index=1;
- //车险跟单
- if(cxgdList!=null && cxgdList.size()>0){
- for(AddTypeCXGDExcel dto : cxgdList){
- if(!ImportObjectUtils.allNull(dto)) {
- index++;
- Map<String, Object> map = CheckInsPlyComeUtils.checkDataDto2(dto);
- if (!"".equals(map.get("msg"))) {
- throw new SystemException("第" + index + "行数据" + map.get("msg").toString());
- } else {
- InsPlyIncome insPlyIncome = (InsPlyIncome) map.get("dto");
- list.add(insPlyIncome);
- }
- }
- }
- }
- }else if("3".equals(type)){
- int index=1;
- if(fcsxfList!=null && fcsxfList.size()>0){
- for(AddTypeFCSXFExcel dto : fcsxfList){
- if(!ImportObjectUtils.allNull(dto)) {
- index++;
- Map<String, Object> map = CheckInsPlyComeUtils.checkDataDto3(dto);
- if (!"".equals(map.get("msg"))) {
- throw new SystemException("第" + index + "行数据" + map.get("msg").toString());
- } else {
- InsPlyIncome insPlyIncome = (InsPlyIncome) map.get("dto");
- list.add(insPlyIncome);
- }
- }
- }
- }
- }else if("4".equals(type)){
- int index=1;
- if(fcgdList!=null && fcgdList.size()>0){
- for(AddTypeFCGDExcel dto : fcgdList){
- if(!ImportObjectUtils.allNull(dto)) {
- index++;
- Map<String, Object> map = CheckInsPlyComeUtils.checkDataDto4(dto);
- if (!"".equals(map.get("msg"))) {
- throw new SystemException("第" + index + "行数据" + map.get("msg").toString());
- } else {
- InsPlyIncome insPlyIncome = (InsPlyIncome) map.get("dto");
- list.add(insPlyIncome);
- }
- }
- }
- }
- }
- else if("5".equals(type)){
- int index=1;
- if(ptjsList!=null && ptjsList.size()>0){
- for(AddTypePTJSExcel dto : ptjsList) {
- if (!ImportObjectUtils.allNull(dto)) {
- index++;
- Map<String, Object> map = CheckInsPlyComeUtils.checkDataDto5(dto);
- if (!"".equals(map.get("msg"))) {
- throw new SystemException("第" + index + "行数据" + map.get("msg").toString());
- } else {
- InsPlyIncome insPlyIncome = (InsPlyIncome) map.get("dto");
- list.add(insPlyIncome);
- }
- }
- }
- }
- }
- return list;
- }
- /**
- * 修改数据
- * @param insPlyIncomeVo
- */
- @Override
- @Transactional
- public void correctData(InsPlyIncomeVo insPlyIncomeVo) {
- List<String> licensenoList = insPlyIncomeVo.getLicensenoList();
- for (String s : licensenoList) {
- HashMap<String, Object> params = new HashMap<>();
- params.put("licenseno", s);
- List<InsPlyIncome> insPlyIncomes = baseMapper.queryNew(params);
- if (insPlyIncomes.isEmpty()) {
- throw new SystemException("该车牌号不存在");
- }
- // 如果 该数据是平台 则转为私有 如果是私有则转为 平台
- InsPlyIncome insPlyIncome1 = insPlyIncomes.get(0);
- if ("1".equals(insPlyIncome1.getAgreementType())) { //平台转私有
- BigDecimal jqPremium = insPlyIncome1.getJqPremium(); //交强保费
- BigDecimal syPremium = insPlyIncome1.getSyPremium(); //商业保费
- BigDecimal noPremium = insPlyIncome1.getNoPremium(); //非车保费
- BigDecimal jqSuperviseCostsProportion = insPlyIncome1.getJqSuperviseCostsProportion();//交强手续费比例
- BigDecimal sySuperviseCostsProportion = insPlyIncome1.getSySuperviseCostsProportion(); //商业手续费比例
- BigDecimal noSuperviseCostsProportion = insPlyIncome1.getNoSuperviseCostsProportion(); //非车手续费比例
- BigDecimal jqOtherCostsProportion = insPlyIncome1.getJqOtherCostsProportion(); //交强跟单比例
- BigDecimal syOtherCostsProportion = insPlyIncome1.getSyOtherCostsProportion(); // 商业跟单比例
- BigDecimal noOtherCostsProportion = insPlyIncome1.getNoOtherCostsProportion(); // 非车跟单比例
- if ((jqSuperviseCostsProportion.compareTo(BigDecimal.ZERO) > 0 || sySuperviseCostsProportion.compareTo(BigDecimal.ZERO) > 0) && jqPremium.compareTo(BigDecimal.ZERO)>0 || syPremium.compareTo(BigDecimal.ZERO)>0) { //私有手续费
- BigDecimal commissionFeerate = this.calculateTotal(insPlyIncome1.getJqSuperviseCostsProportion(), insPlyIncome1.getSySuperviseCostsProportion(), null);
- BigDecimal commissionFeevalue = this.calculateTotal(insPlyIncome1.getJqSuperviseCostsPremiums(), insPlyIncome1.getSySuperviseCostsPremiums(), null);
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
- insPlyIncome.setJqOtherCostsProportion(null);
- insPlyIncome.setJqOtherCostsPremium(null);
- insPlyIncome.setSyOtherCostsProportion(null);
- insPlyIncome.setSyOtherCostsPremium(null);
- insPlyIncome.setNoOtherCostsProportion(null);
- insPlyIncome.setNoOtherCostsPremium(null);
- insPlyIncome.setNoSuperviseCostsPremiums(null);
- insPlyIncome.setNoSuperviseCostsProportion(null);
- insPlyIncome.setOtherFeerate(null);
- insPlyIncome.setOtherFeevalue(null);
- insPlyIncome.setCommissionFeerate(commissionFeerate);
- insPlyIncome.setCommissionFeevalue(commissionFeevalue);
- insPlyIncome.setAllFeeValue(commissionFeevalue);
- insPlyIncome.setReceivableAmount(commissionFeevalue);
- insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
- insPlyIncome.setId(null);
- baseMapper.insert(insPlyIncome);
- }
- if ((jqOtherCostsProportion.compareTo(BigDecimal.ZERO) > 0 || syOtherCostsProportion.compareTo(BigDecimal.ZERO) > 0) && jqPremium.compareTo(BigDecimal.ZERO)>0 || syPremium.compareTo(BigDecimal.ZERO)>0) {
- BigDecimal syOtherAmount = algorithmAmount(insPlyIncome1.getSyPremium(), insPlyIncome1.getSyOtherCostsProportion());
- BigDecimal jqOtherAmount = algorithmAmount(insPlyIncome1.getJqPremium(), insPlyIncome1.getJqOtherCostsProportion());
- BigDecimal otherFvalue = this.calculateTotal(syOtherAmount, jqOtherAmount, null);
- BigDecimal otherFeet = this.calculateTotal(insPlyIncome1.getJqOtherCostsProportion(), insPlyIncome1.getSyOtherCostsProportion(), null);
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
- insPlyIncome.setNoOtherCostsProportion(null);
- insPlyIncome.setNoOtherCostsPremium(null);
- insPlyIncome.setNoSuperviseCostsPremiums(null);
- insPlyIncome.setNoSuperviseCostsProportion(null);
- insPlyIncome.setJqSuperviseCostsProportion(null);
- insPlyIncome.setJqSuperviseCostsPremiums(null);
- insPlyIncome.setSySuperviseCostsPremiums(null);
- insPlyIncome.setSySuperviseCostsProportion(null);
- insPlyIncome.setCommissionFeevalue(null);
- insPlyIncome.setCommissionFeerate(null);
- insPlyIncome.setJqOtherCostsPremium(jqOtherAmount);
- insPlyIncome.setSyOtherCostsPremium(syOtherAmount);
- insPlyIncome.setOtherFeevalue(otherFvalue);
- insPlyIncome.setOtherFeerate(otherFeet);
- insPlyIncome.setAllFeeValue(otherFvalue);
- insPlyIncome.setReceivableAmount(otherFvalue);
- insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
- insPlyIncome.setIsNotDocumentary("1");
- insPlyIncome.setId(null);
- baseMapper.insert(insPlyIncome);
- }
- if (noSuperviseCostsProportion.compareTo(BigDecimal.ZERO)>0 && noPremium.compareTo(BigDecimal.ZERO)>0) { //非车手续费
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
- insPlyIncome.setJqSuperviseCostsPremiums(null);
- insPlyIncome.setJqSuperviseCostsProportion(null);
- insPlyIncome.setSySuperviseCostsPremiums(null);
- insPlyIncome.setSySuperviseCostsProportion(null);
- insPlyIncome.setJqOtherCostsPremium(null);
- insPlyIncome.setJqOtherCostsProportion(null);
- insPlyIncome.setSyOtherCostsProportion(null);
- insPlyIncome.setSyOtherCostsPremium(null);
- insPlyIncome.setNoOtherCostsProportion(null);
- insPlyIncome.setNoOtherCostsPremium(null);
- insPlyIncome.setOtherFeevalue(null);
- insPlyIncome.setOtherFeerate(null);
- insPlyIncome.setCommissionFeevalue(insPlyIncome1.getNoSuperviseCostsPremiums());
- insPlyIncome.setCommissionFeerate(insPlyIncome1.getNoSuperviseCostsProportion());
- insPlyIncome.setAllFeeValue(insPlyIncome1.getNoSuperviseCostsPremiums());
- insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
- insPlyIncome.setId(null);
- insPlyIncome.setIsNotCar("1");
- insPlyIncome.setReceivableAmount(insPlyIncome1.getNoSuperviseCostsPremiums());
- baseMapper.insert(insPlyIncome);
- }
- if (noOtherCostsProportion .compareTo(BigDecimal.ZERO) >0 && noPremium.compareTo(BigDecimal.ZERO)>0) {
- // algorithmAmount(syPremium, syOtherCostsProportion)
- BigDecimal noOtherAmount = algorithmAmount(insPlyIncome1.getNoPremium(), insPlyIncome1.getNoOtherCostsProportion());
- InsPlyIncome insPlyIncome = new InsPlyIncome();
- BeanUtils.copyProperties(insPlyIncome1, insPlyIncome);
- insPlyIncome.setJqSuperviseCostsPremiums(null);
- insPlyIncome.setJqSuperviseCostsProportion(null);
- insPlyIncome.setSySuperviseCostsPremiums(null);
- insPlyIncome.setSySuperviseCostsProportion(null);
- insPlyIncome.setJqOtherCostsPremium(null);
- insPlyIncome.setJqOtherCostsProportion(null);
- insPlyIncome.setSyOtherCostsProportion(null);
- insPlyIncome.setSyOtherCostsPremium(null);
- insPlyIncome.setNoSuperviseCostsPremiums(null);
- insPlyIncome.setNoSuperviseCostsProportion(null);
- insPlyIncome.setCommissionFeerate(null);
- insPlyIncome.setCommissionFeevalue(null);
- insPlyIncome.setOtherFeevalue(noOtherAmount);
- insPlyIncome.setOtherFeerate(insPlyIncome1.getNoOtherCostsProportion());
- insPlyIncome.setNoOtherCostsPremium(noOtherAmount);
- insPlyIncome.setAgreementId(insPlyIncomeVo.getAgreementId());
- insPlyIncome.setAllFeeValue(insPlyIncome1.getNoOtherCostsPremium());
- insPlyIncome.setId(null);
- insPlyIncome.setIsNotCar("1");
- insPlyIncome.setIsNotDocumentary("1");
- baseMapper.insert(insPlyIncome);
- }
- }
- }
- }
- /**
- * @version
- * @author: hxl
- * @Date: 2024/12/30 10:36
- * @Description: 查询签单日期为空的数据
- */
- @Override
- public List<InsPlyIncome> findListByDate(String benginDate, String endDate) {
- return baseMapper.findListByDate(benginDate,endDate);
- }
- }
|