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