From 5db66ef6fb108de06df182189d822f3f5ebdd557 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 23 一月 2024 16:52:53 +0800
Subject: [PATCH] 开发业务接口

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java |   50 +++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 45 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..0203ee3 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)

--
Gitblit v1.9.3