From 27f6edfba4c47caaa62750abe79f366be5076d95 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 25 十一月 2024 14:19:09 +0800
Subject: [PATCH] 开发更新

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java |  133 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 130 insertions(+), 3 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
index 15da9a9..bf37d57 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -1,5 +1,6 @@
 package com.doumee.service.business.impl;
 
+import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.constants.ResponseStatus;
 import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
@@ -50,6 +51,8 @@
     @Autowired
     private MultifileMapper multifileMapper;
     @Autowired
+    private YwWorkorderLogMapper  ywWorkorderLogMapper;
+    @Autowired
     private CompanyMapper companyMapper;
     @Autowired
     private YwProjectMapper projectMapper;
@@ -62,6 +65,8 @@
     @Autowired
     private MemberMapper memberMapper;
 
+    @Autowired
+    private SystemDictDataBiz systemDictDataBiz;
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public Integer create(YwContract model) {
@@ -77,6 +82,30 @@
         ywContractMapper.insert(model);
         dealDetailListBiz(model);//澶勭悊鏉℃淇℃伅
         dealMultifileBiz(model);//澶勭悊闄勪欢淇℃伅
+        dealLogBiz(model,Constants.YwLogType.CONTRACT_CREATE,null,null);//璁板綍鏂板缓鏃ュ織
+        return model.getId();
+    }
+    /**
+     * 閫�绉熸彁浜�
+     * @param model
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public  Integer backRent(YwContract model){
+        isParamValidCreated(model);
+
+        model.setCreator(model.getLoginUserInfo().getId());
+        model.setIsdeleted(Constants.ZERO);
+        model.setCreateDate(new Date());
+        model.setStatus(Constants.ZERO);
+        model.setEditDate(model.getCreateDate());
+        model.setEditor(model.getCreator());
+        model.setStatus(Constants.ZERO);//寰呮墽琛�
+        ywContractMapper.insert(model);
+        dealDetailListBiz(model);//澶勭悊鏉℃淇℃伅
+        dealMultifileBiz(model);//澶勭悊闄勪欢淇℃伅
+        dealLogBiz(model,Constants.YwLogType.CONTRACT_CREATE,null,null);//璁板綍鏂板缓鏃ュ織
         return model.getId();
     }
 
@@ -400,7 +429,28 @@
         return  data;
     }
 
+    private void initFiles(YwContract model) {
+        List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
+                .eq(Multifile::getObjId, model.getId() )
+                .in(Multifile::getObjType, Arrays.asList(new Integer[]{Constants.MultiFile.YW_CONTRACT_FILE.getKey()}))
+                .eq(Multifile::getIsdeleted,Constants.ZERO));
+        if(multifiles!=null){
+            String path = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode()
+                    +systemDictDataBiz.queryByCode(Constants.FTP,Constants.YW_CONTRACT_FILE).getCode();
+            for(Multifile f : multifiles){
+                if(StringUtils.isBlank(f.getFileurl())){
+                    continue;
+                }
+                f.setFileurlFull(path+f.getFileurl());
+                //鐜板満鎯呭喌
+                if(model.getFileList() == null){
+                    model.setFileList(new ArrayList<>());
+                }
+                model.getFileList().add(f);
 
+            }
+        }
+    }
 
 
     private void dealMultifileBiz(YwContract model) {
@@ -416,7 +466,7 @@
                 multifile.setIsdeleted(Constants.ZERO);
                 multifile.setObjId(model.getId());
                 multifile.setCreator(model.getCreator());
-                multifile.setObjType(Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey());
+                multifile.setObjType(Constants.MultiFile.YW_CONTRACT_FILE.getKey());
                 multifile.setSortnum(i+1);
                 fileList.add(multifile);
             }
@@ -594,10 +644,87 @@
             this.updateById(ywContract);
         }
     }
-
+    private void dealLogBiz(YwContract model,Constants.YwLogType type,String param1,String param2) {
+        YwWorkorderLog log = new YwWorkorderLog();
+        log.setCreateDate(model.getEditDate());
+        log.setCreator(model.getCreator());
+        log.setJobId(model.getId());
+        log.setIsdeleted(Constants.ZERO);
+        log.setObjId(model.getId()+"");
+        log.setObjType(type.getKey());
+        log.setParam1(param1);
+        log.setParam2(param2);
+        log.setTitle(type.getNoteinfo());
+        ywWorkorderLogMapper.insert(log);
+    }
     @Override
     public YwContract findById(Integer id) {
-        return ywContractMapper.selectById(id);
+        MPJLambdaWrapper<YwContract> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(YwContract.class )
+                .selectAs(Company::getName,YwContract::getCompanyName )
+                .selectAs(SystemUser::getRealname,YwContract::getUserName )
+                .selectAs(YwCustomer::getName,YwContract::getRenterName )
+                .selectAs(YwProject::getName,YwContract::getProjectName )
+                .select("t4.realname",YwContract::getCreatorName )
+                .leftJoin(Company.class,Company::getId,YwContract::getCompanyId)
+                .leftJoin(SystemUser.class,SystemUser::getId,YwContract::getUserId)
+                .leftJoin(SystemUser.class,SystemUser::getId,YwContract::getCreator)
+                .leftJoin(YwProject.class,YwProject::getId,YwContract::getProjectId)
+                .leftJoin(YwCustomer.class,YwCustomer::getId,YwContract::getRenterId);
+        YwContract model = ywContractMapper.selectJoinOne(YwContract.class,queryWrapper);
+        if(model != null){
+            //鍚堝悓闄勪欢
+            initFiles(model);
+            //鏌ヨ鎴挎簮淇℃伅鏁版嵁
+            MPJLambdaWrapper<YwRoom> rw = new MPJLambdaWrapper<>();
+            rw.selectAll(YwRoom.class )
+                    .selectAs(YwProject::getName,YwRoom::getProjectName)
+                    .selectAs(YwFloor::getName,YwRoom::getFloorName)
+                    .selectAs(YwBuilding::getName,YwRoom::getBuildingName)
+                    .leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
+                    .leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId)
+                    .leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor)
+                    .eq(YwRoom::getIsdeleted,Constants.ZERO)
+                    .exists("(select a.id from yw_contract_room a where a.isdeleted=1 and a.room_id=t.id and a.contract_id="+model.getId()+")");
+            model.setRoomList(roomMapper.selectJoinList(YwRoom.class,rw));
+
+            //鏌ヨ绉熻硟鏉℃淇℃伅
+            MPJLambdaWrapper<YwContractDetail> dw = new MPJLambdaWrapper<>();
+            dw.selectAll(YwContractDetail.class )
+                    .eq(YwContractDetail::getIsdeleted,Constants.ZERO)
+                    .eq(YwContractDetail::getContractId,model.getId())
+                    .in(YwContractDetail::getType,Constants.ZERO,Constants.TWO)
+                    .orderByAsc(YwContractDetail::getSortnum);
+            model.setZlDetailList(ywContractDetailMapper.selectJoinList(YwContractDetail.class,dw));
+            //鏌ヨ鐗╂キ鏉℃淇℃伅
+            dw = new MPJLambdaWrapper<>();
+            dw.selectAll(YwContractDetail.class )
+                    .eq(YwContractDetail::getIsdeleted,Constants.ZERO)
+                    .eq(YwContractDetail::getContractId,model.getId())
+                    .in(YwContractDetail::getType,Constants.ONE,Constants.THREE)
+                    .orderByAsc(YwContractDetail::getSortnum);
+            model.setWyDetailList(ywContractDetailMapper.selectJoinList(YwContractDetail.class,dw));
+
+            //鏌ヨ鎿嶄綔鏃ュ織璁板綍
+            YwWorkorderLog log = new YwWorkorderLog();
+            log.setJobId(model.getId());
+            log.setIsdeleted(Constants.ZERO);
+            model.setLogList(ywWorkorderLogMapper.selectList(new QueryWrapper<YwWorkorderLog>(log)
+                    .lambda()
+                    .in(YwWorkorderLog::getObjType,Constants.YwLogType.CONTRACT_BACK.getKey()
+                            ,Constants.YwLogType.CONTRACT_CREATE.getKey()
+                            ,Constants.YwLogType.CONTRACT_UPDATE.getKey())
+                    .orderByAsc(YwWorkorderLog::getCreateDate)));
+
+            //鏌ヨ璐﹀崟闆嗗悎
+            model.setBillList(ywContractBillMapper.selectJoinList(YwContractBill.class,new MPJLambdaWrapper<YwContractBill>()
+                            .selectAll(YwContractBill.class )
+                            .eq(  YwContractBill::getContractId,model.getId())
+                            .eq(YwContractBill::getIsdeleted,Constants.ZERO)
+                            .orderByAsc(YwContractBill::getSortnum,YwContractBill::getCreateDate)));
+        }
+
+        return model;
     }
 
     @Override

--
Gitblit v1.9.3