From 47305dd209a3ce3889b088a2f2e2f05c923178c5 Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期一, 25 十一月 2024 18:38:01 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/funingyunwei

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java |  179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 173 insertions(+), 6 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..4d2465c 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,7 +82,70 @@
         ywContractMapper.insert(model);
         dealDetailListBiz(model);//澶勭悊鏉℃淇℃伅
         dealMultifileBiz(model);//澶勭悊闄勪欢淇℃伅
+        dealLogBiz(model,Constants.YwLogType.CONTRACT_CREATE,null,null);//璁板綍鏂板缓鏃ュ織
         return model.getId();
+    }
+    /**
+     * 閫�绉熸彁浜�
+     * @param param
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+    public  Integer backRent(YwContract param){
+        isParamValidBackRent(param);
+        //澶勭悊
+        dealBackRentBillBiz(param);
+        YwContract update = new YwContract();
+        update.setEditDate(new Date());
+        update.setEditor(param.getLoginUserInfo().getId());
+        update.setBtActDate(update.getEditDate());
+        update.setBtActUserId(update.getEditor());
+        update.setStatus(Constants.THREE);
+        update.setBtInfo(param.getBtInfo());
+        update.setBtDate(param.getBtDate());
+        update.setBtType(param.getBtType());
+        update.setBtUserId(param.getBtUserId());
+        update.setBtFee(param.getBtFee());
+        ywContractMapper.updateById(update);
+        dealLogBiz(param,Constants.YwLogType.CONTRACT_BACK,null,null);
+        return param.getId();
+    }
+
+    private void dealBackRentBillBiz(YwContract param) {
+    }
+
+    private void isParamValidBackRent(YwContract param) {
+        if(param.getId()==null
+                || param.getBtType() == null
+                || param.getBtDate() == null
+                || param.getBtUserId() == null
+                || param.getBtSignDate() == null
+                ||StringUtils.isBlank( param.getBtInfo())){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        YwContract model = ywContractMapper.selectById(param.getId());
+        if(model==null || Constants.equalsInteger(model.getIsdeleted(),Constants.ONE)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝鍚堝悓淇℃伅涓嶅瓨鍦紝璇疯繑鍥炲垪琛ㄥ埛鏂伴噸璇曪紒");
+        }
+
+        SystemUser user = systemUserMapper.selectById(param.getUserId());
+        if(user ==null ||  (user.getDeleted()!=null&& user.getDeleted() )){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝缁忓姙浜轰俊鎭笉瀛樺湪锛�");
+        }
+        if(param.getAddBillList()!=null && param.getAddBillList().size()>0){
+            for(YwContractBill bill: param.getAddBillList()){
+                if(bill.getCostType() == null
+                        ||bill.getFeeType() == null
+                        ||bill.getReceivableFee() == null
+                        ||bill.getCompanyId() == null
+                        ||bill.getPlanPayDate() == null
+                        ||(Constants.equalsInteger(bill.getFeeType(),Constants.ZERO)
+                        && (bill.getStartDate() ==null || bill.getEndDate() ==null) )){
+
+                }
+            }
+        }
     }
 
     private void dealDetailListBiz(YwContract model) {
@@ -182,10 +250,10 @@
         bill.setStatus(Constants.ZERO);
         bill.setStartDate(model.getStartDate());
         bill.setEndDate(model.getEndDate());
-        bill.setType(type);
+        bill.setType(Constants.ZERO);
+        bill.setCostType(type);
         bill.setTotleFee(type==Constants.THREE?model.getZlDeposit():model.getWyDeposit());//鎶奸噾璐圭敤
         bill.setSortnum(0);
-        bill.setTitle(type==Constants.THREE?"绉熻祦鎶奸噾":"鐗╀笟鎶奸噾" );
         return bill;
     }
 
@@ -387,7 +455,8 @@
         bill.setContractId(model.getId());
         bill.setStatus(Constants.ZERO);
         bill.setDetailId(d.getId());
-        bill.setType(d.getType());
+        bill.setCostType(d.getType());
+        bill.setType(Constants.ZERO);
         return bill;
     }
 
@@ -400,7 +469,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 +506,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 +684,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