From 8527f5df4edffd94230a8c7f8016beecfb011585 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期三, 24 一月 2024 14:53:31 +0800 Subject: [PATCH] 开发业务接口 --- server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java | 154 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 149 insertions(+), 5 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java index 3b4aaf7..321678a 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java @@ -158,9 +158,13 @@ multifileMapper.insert(param.getPidanFile()); update.setApplyId(model.getApplyId()); - long times = param.getApplyStartTime().getTime() - model.getValidTime().getTime(); - //澶勭悊鍔犲噺淇濇槑缁嗘暟鎹� - dealDetailsValidTime(update,times); + if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ + //濡傛灉鏄姞鍑忎繚鐢宠 澶勭悊鍔犲噺淇濇槑缁嗘暟鎹� + dealDetailsValidTime(update); + }else{ + //濡傛灉鏄崲鍘傜敵璇� 澶勭悊鏄庣粏鏁版嵁 + dealDetailsDUdata(update); + } Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_PLATFORM_APPROVE; @@ -234,9 +238,45 @@ /** * 澶勭悊鍔犲噺淇濇槑缁嗘暟鎹� * @param update - * @param times */ - private void dealDetailsValidTime(ApplyChange update,long times) { + private void dealDetailsDUdata(ApplyChange update ) { + List<ApplyChagneDetail> detailList = applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class, + new MPJLambdaWrapper<ApplyChagneDetail>() + .selectAll(ApplyChagneDetail.class) + .selectAs(Solutions::getTimeUnit,ApplyChagneDetail::getSolutionTimeUnit) + .selectAs(Solutions::getPrice,ApplyChagneDetail::getSolutionPrice) + .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId) + .leftJoin(Solutions.class, Solutions::getId, ApplyChange::getSolutionsId) + .eq(ApplyChagneDetail::getApplyChangeId,update.getId()) + .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) ); + if(detailList ==null || detailList.size()==0){ + return; + } + for(ApplyChagneDetail detail : detailList){ + //鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁 + ApplyDetail oldModel = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda() + .eq(ApplyDetail::getApplyId, update.getApplyId()) + .eq(ApplyDetail::getMemberId, detail.getMemberId()) + .orderByDesc(ApplyDetail::getCreateDate) + .last("limit 1")); + if(oldModel == null ){ + throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鐢ㄦ埛銆�"+detail.getMemberName()+"銆戝師淇濆崟淇℃伅鏈夎锛屽綋鍓嶇敵璇蜂笉鏀寔鍑忎繚澶勭悊锛�"); + } + applyDetailJoinMapper.update(null, new UpdateWrapper<ApplyDetail>().lambda() + .set(ApplyDetail::getEditor,update.getEditor()) + .set(ApplyDetail::getWorktypeId,detail.getWorktypeId()) + .set(ApplyDetail::getDuId,detail.getDuId()) + .set(ApplyDetail::getEditDate,update.getEditDate()) + .eq(ApplyDetail::getId,oldModel.getApplyId()) + ); + + } + } + /** + * 澶勭悊鍔犲噺淇濇槑缁嗘暟鎹� + * @param update + */ + private void dealDetailsValidTime(ApplyChange update ) { List<ApplyChagneDetail> detailList = applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class, new MPJLambdaWrapper<ApplyChagneDetail>() .selectAll(ApplyChagneDetail.class) @@ -870,8 +910,112 @@ ApplyChange applyChange = applyChangeJoinMapper.selectOne(queryWrapper); return applyChange; } + /** + * 瀵煎嚭鎹㈠巶鐢宠琛� + * @param param + * @return + */ + @Override + public ApplyChange exportChangeUnitExcel(ApplyChange param){ + ApplyChange model = findJoinDetail(param); + if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getType())){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + + //鏌ヨ鏄庣粏 + List<ApplyChagneDetail> detailList =findJoinChangeDetailList(model); + model.setChangeDetailList(detailList!=null?detailList:new ArrayList<>()); + model.setChangeNum(model.getChangeDetailList().size()); + return model; + } + /** + * 瀵煎嚭鍔犲噺淇濈敵璇疯〃 + * @param param + * @return + */ + @Override + public ApplyChange exportJiajianBaoExcel(ApplyChange param){ + + ApplyChange model = findJoinDetail(param); + if(Objects.isNull(model) ||! Constants.equalsInteger(Constants.ZERO,model.getType())){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + + //鏌ヨ鏄庣粏 + List<ApplyChagneDetail> detailList =findJoinDetailList(model); + model.setAddDetailList(new ArrayList<>()); + model.setDelDetailList(new ArrayList<>()); + if(detailList!=null){ + for(ApplyChagneDetail ad :detailList){ + if(Constants.equalsInteger(ad.getType(),Constants.ZERO)){ + model.getAddDetailList().add(ad); + }else{ + model.getDelDetailList().add(ad); + } + } + } + model.setDelNum(model.getDelDetailList().size()); + model.setAddNum(model.getAddDetailList().size()); + return model; + } + private ApplyChange findJoinDetail(ApplyChange param) { + MPJLambdaWrapper wrapper= new MPJLambdaWrapper<ApplyChange>() + .selectAll(ApplyChange.class) + .selectAs(Solutions::getName,ApplyChange::getSolutionsName) + .selectAs(Company::getName,ApplyChange::getCompanyName) + .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode) + .selectAs(InsuranceApply::getStartTime,ApplyChange::getStartTime) + .selectAs(InsuranceApply::getStartTime,ApplyChange::getEndTime) + .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,ApplyChange::getCompanyId) + .eq(ApplyChange::getId,param.getId()) + .last("limit 1"); + + ApplyChange model = applyChangeJoinMapper.selectJoinOne(ApplyChange.class,wrapper); + return model; + } + private List<ApplyChagneDetail> findJoinDetailList(ApplyChange model) { + MPJLambdaWrapper wrapper1= new MPJLambdaWrapper<ApplyChagneDetail>() + .selectAll(ApplyChagneDetail.class) + .selectAs(Member::getName,ApplyChagneDetail::getMemberName) + .selectAs(Member::getSex,ApplyChagneDetail::getSex) + .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo) + .selectAs(Worktype::getName,ApplyChagneDetail::getWorkTypeName) + .selectAs(DispatchUnit::getName,ApplyChagneDetail::getDuName) + .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId) + .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId) + .leftJoin(Member.class,Member::getId,ApplyChagneDetail::getMemberId) + .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) + .eq(ApplyChagneDetail::getApplyChangeId,model.getId()); + //鏌ヨ鏄庣粏 + List<ApplyChagneDetail> detailList =applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,wrapper1); + return detailList; + } + private List<ApplyChagneDetail> findJoinChangeDetailList(ApplyChange model) { + MPJLambdaWrapper wrapper1= new MPJLambdaWrapper<ApplyChagneDetail>() + .selectAll(ApplyChagneDetail.class) + .selectAs(Member::getName,ApplyChagneDetail::getMemberName) + .selectAs(Member::getSex,ApplyChagneDetail::getSex) + .select("t1.name as worktypeName") + .select("t2.name as duName") + .select("t3.name as oldWorktypeName") + .select("t4.name as oldDuName") + .selectAs(Member::getSex,ApplyChagneDetail::getSex) + .selectAs(Member::getIdcardNo,ApplyChagneDetail::getIdcardNo) + .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId) + .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId) + .leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getOldWorktypeId) + .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getOldDuId) + .leftJoin(Member.class,Member::getId,ApplyChagneDetail::getMemberId) + .eq(ApplyChagneDetail::getIsdeleted,Constants.ZERO) + .eq(ApplyChagneDetail::getApplyChangeId,model.getId()); + //鏌ヨ鏄庣粏 + List<ApplyChagneDetail> detailList =applyChagneDetailJoinMapper.selectJoinList(ApplyChagneDetail.class,wrapper1); + return detailList; + } } -- Gitblit v1.9.3