Просмотр исходного кода

Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

java110 лет назад: 5
Родитель
Сommit
c083b87a26
21 измененных файлов с 721 добавлено и 12 удалено
  1. 12 1
      java110-bean/src/main/java/com/java110/po/contract/ContractPo.java
  2. 2 0
      java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java
  3. 1 1
      java110-generator/src/main/java/com/java110/code/newBack/BackCoderGeneratorStart.java
  4. 11 1
      service-front/src/main/java/com/java110/front/components/assetImport/ImportRoomFeeComponent.java
  5. 2 0
      service-front/src/main/java/com/java110/front/smo/assetImport/IImportRoomFeeSMO.java
  6. 48 2
      service-front/src/main/java/com/java110/front/smo/assetImport/impl/ImportRoomFeeSMOImpl.java
  7. 40 0
      service-store/src/main/java/com/java110/store/api/ContractApi.java
  8. 103 0
      service-store/src/main/java/com/java110/store/api/ContractFileApi.java
  9. 14 3
      service-store/src/main/java/com/java110/store/bmo/contract/impl/SaveContractBMOImpl.java
  10. 24 4
      service-store/src/main/java/com/java110/store/bmo/contract/impl/UpdateContractBMOImpl.java
  11. 17 0
      service-store/src/main/java/com/java110/store/bmo/contractFile/IDeleteContractFileBMO.java
  12. 16 0
      service-store/src/main/java/com/java110/store/bmo/contractFile/IGetContractFileBMO.java
  13. 17 0
      service-store/src/main/java/com/java110/store/bmo/contractFile/ISaveContractFileBMO.java
  14. 17 0
      service-store/src/main/java/com/java110/store/bmo/contractFile/IUpdateContractFileBMO.java
  15. 34 0
      service-store/src/main/java/com/java110/store/bmo/contractFile/impl/DeleteContractFileBMOImpl.java
  16. 46 0
      service-store/src/main/java/com/java110/store/bmo/contractFile/impl/GetContractFileBMOImpl.java
  17. 38 0
      service-store/src/main/java/com/java110/store/bmo/contractFile/impl/SaveContractFileBMOImpl.java
  18. 36 0
      service-store/src/main/java/com/java110/store/bmo/contractFile/impl/UpdateContractFileBMOImpl.java
  19. 61 0
      service-store/src/main/java/com/java110/store/dao/IContractFileServiceDao.java
  20. 98 0
      service-store/src/main/java/com/java110/store/dao/impl/ContractFileServiceDaoImpl.java
  21. 84 0
      service-store/src/main/java/com/java110/store/smo/impl/ContractFileInnerServiceSMOImpl.java

+ 12 - 1
java110-bean/src/main/java/com/java110/po/contract/ContractPo.java

@@ -1,6 +1,9 @@
 package com.java110.po.contract;
 
+import com.java110.po.contractFile.ContractFilePo;
+
 import java.io.Serializable;
+import java.util.List;
 
 public class ContractPo implements Serializable {
 
@@ -31,7 +34,7 @@ public class ContractPo implements Serializable {
     private String objPersonName;
     private String objPersonId;
     private String startUserId;
-
+    private List<ContractFilePo> contractFilePo;
 
     public String getaLink() {
         return aLink;
@@ -248,4 +251,12 @@ public class ContractPo implements Serializable {
     public void setStartUserId(String startUserId) {
         this.startUserId = startUserId;
     }
+    public List<ContractFilePo> getContractFilePo() {
+        return contractFilePo;
+    }
+
+    public void setContractFilePo(List<ContractFilePo> contractFilePo) {
+        this.contractFilePo = contractFilePo;
+    }
+
 }

+ 2 - 0
java110-core/src/main/java/com/java110/core/factory/GenerateCodeFactory.java

@@ -146,6 +146,8 @@ public class GenerateCodeFactory {
     public static final String CODE_PREFIX_appointmentId = "80";
     public static final String CODE_PREFIX_contractId = "81";
     public static final String CODE_PREFIX_contractTypeId = "81";
+    public static final String CODE_PREFIX_contractFileId = "89";
+
     public static final String CODE_PREFIX_specCd = "82";
     public static final String CODE_PREFIX_loginId = "82";
     public static final String CODE_PREFIX_templateId = "82";

+ 1 - 1
java110-generator/src/main/java/com/java110/code/newBack/BackCoderGeneratorStart.java

@@ -29,7 +29,7 @@ public class BackCoderGeneratorStart extends BaseGenerator {
     public static void main(String[] args) throws Exception {
 
         //加载配置
-        StringBuffer sb = readFile(GeneratorStart.class.getResource("/newBack/template_1.json").getFile());
+        StringBuffer sb = readFile(GeneratorStart.class.getResource("/newBack/template_contractFile.json").getFile());
 
         JSONObject dataJson = JSONObject.parseObject(sb.toString());
 

+ 11 - 1
service-front/src/main/java/com/java110/front/components/assetImport/ImportRoomFeeComponent.java

@@ -2,7 +2,6 @@ package com.java110.front.components.assetImport;
 
 import com.java110.core.context.IPageData;
 import com.java110.front.controller.CallComponentController;
-import com.java110.front.smo.assetExport.IAssetExportSMO;
 import com.java110.front.smo.assetExport.IExportRoomSMO;
 import com.java110.front.smo.assetImport.IImportRoomFeeSMO;
 import org.slf4j.Logger;
@@ -38,6 +37,17 @@ public class ImportRoomFeeComponent {
         return importRoomFeeSMOImpl.importExcelData(pd, uploadFile);
     }
 
+    /**
+     * 上传附件
+     *
+     * @param uploadFile 附件数据
+     * @return ResponseEntity 对象
+     */
+    public ResponseEntity<String> uploadContactFile(IPageData pd, MultipartFile uploadFile) throws Exception {
+        return importRoomFeeSMOImpl.importFile(uploadFile);
+    }
+
+
     /**
      * 添加应用数据
      *

+ 2 - 0
service-front/src/main/java/com/java110/front/smo/assetImport/IImportRoomFeeSMO.java

@@ -22,5 +22,7 @@ public interface IImportRoomFeeSMO {
      */
     public ResponseEntity<String> importExcelData(IPageData pd,  MultipartFile uploadFile) throws Exception;
 
+    public ResponseEntity<String> importFile(MultipartFile uploadFile) throws Exception;
+
     ResponseEntity<String> importTempData(IPageData pd);
 }

+ 48 - 2
service-front/src/main/java/com/java110/front/smo/assetImport/impl/ImportRoomFeeSMOImpl.java

@@ -2,6 +2,11 @@ package com.java110.front.smo.assetImport.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+
+import com.java110.config.properties.code.Java110Properties;
+import com.java110.core.client.FtpUploadTemplate;
+import com.java110.core.client.OssUploadTemplate;
+
 import com.java110.core.component.BaseComponentSMO;
 import com.java110.core.context.IPageData;
 import com.java110.core.factory.GenerateCodeFactory;
@@ -10,12 +15,18 @@ import com.java110.dto.fee.FeeDto;
 import com.java110.entity.assetImport.ImportRoomFee;
 import com.java110.entity.component.ComponentValidateResult;
 import com.java110.front.smo.assetImport.IImportRoomFeeSMO;
+
+import com.java110.utils.cache.MappingCache;
+import com.java110.utils.constant.ServiceConstant;
+import com.java110.utils.util.*;
+
 import com.java110.utils.constant.ServiceConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.ImportExcelUtils;
 import com.java110.utils.util.StringUtil;
+
 import com.java110.vo.ResultVo;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -51,6 +62,16 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
     @Autowired
     private RestTemplate restTemplate;
 
+    @Autowired
+    private FtpUploadTemplate ftpUploadTemplate;
+
+    @Autowired
+    private Java110Properties java110Properties;
+
+    @Autowired
+    private OssUploadTemplate ossUploadTemplate;
+
+
     @Override
     public ResponseEntity<String> importExcelData(IPageData pd, MultipartFile uploadFile) throws Exception {
 
@@ -85,6 +106,31 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
     }
 
     @Override
+    public ResponseEntity<String> importFile(MultipartFile uploadFile) throws Exception {
+        try {
+            String fileName = "";
+            String ossSwitch = MappingCache.getValue(OSSUtil.DOMAIN, OSSUtil.OSS_SWITCH);
+            if (StringUtil.isEmpty(ossSwitch) || !OSSUtil.OSS_SWITCH_OSS.equals(ossSwitch)) {
+                fileName = ftpUploadTemplate.upload(uploadFile, java110Properties.getFtpServer(),
+                        java110Properties.getFtpPort(), java110Properties.getFtpUserName(),
+                        java110Properties.getFtpUserPassword(), java110Properties.getFtpPath());
+            } else {
+                fileName = ossUploadTemplate.upload(uploadFile, java110Properties.getFtpServer(),
+                        java110Properties.getFtpPort(), java110Properties.getFtpUserName(),
+                        java110Properties.getFtpUserPassword(), java110Properties.getFtpPath());
+            }
+            ResponseEntity<String> responseEntity = new ResponseEntity<String>(fileName, HttpStatus.OK);
+            return responseEntity;
+        } catch (Exception e) {
+            logger.error("上传合同附件失败 ", e);
+            return new ResponseEntity<String>("非常抱歉,上传合同附件失败:" + e.getMessage(), HttpStatus.BAD_REQUEST);
+        }
+    }
+
+
+
+    @Override
+
     public ResponseEntity<String> importTempData(IPageData pd) {
         ComponentValidateResult result = this.validateStoreStaffCommunityRelationship(pd, restTemplate);
         JSONObject paramIn = JSONObject.parseObject(pd.getReqData());
@@ -120,9 +166,9 @@ public class ImportRoomFeeSMOImpl extends BaseComponentSMO implements IImportRoo
      * @param roomFees 房屋费用
      */
     private ResponseEntity<String> dealExcelCarData(IPageData pd,
-                                                 List<ImportRoomFee> roomFees,
+                                                    List<ImportRoomFee> roomFees,
 
-                                                 ComponentValidateResult result) {
+                                                    ComponentValidateResult result) {
         ResponseEntity<String> responseEntity = null;
         //保存单元信息 和 楼栋信息
         responseEntity = savedCarFees(pd, roomFees, result);

+ 40 - 0
service-store/src/main/java/com/java110/store/api/ContractApi.java

@@ -1,6 +1,12 @@
 package com.java110.store.api;
 
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.factory.GenerateCodeFactory;
+
 import com.alibaba.fastjson.JSONObject;
+
 import com.java110.dto.contract.ContractDto;
 import com.java110.dto.contractAttr.ContractAttrDto;
 import com.java110.dto.contractChangePlan.ContractChangePlanDto;
@@ -17,9 +23,17 @@ import com.java110.po.contractChangePlan.ContractChangePlanPo;
 import com.java110.po.contractChangePlanDetail.ContractChangePlanDetailPo;
 import com.java110.po.contractChangePlanDetailAttr.ContractChangePlanDetailAttrPo;
 import com.java110.po.contractCollectionPlan.ContractCollectionPlanPo;
+
+import com.java110.po.contractFile.ContractFilePo;
+import com.java110.po.contractType.ContractTypePo;
+import com.java110.po.contractTypeSpec.ContractTypeSpecPo;
+import com.java110.po.contractTypeTemplate.ContractTypeTemplatePo;
+import com.java110.po.purchase.PurchaseApplyDetailPo;
+
 import com.java110.po.contractType.ContractTypePo;
 import com.java110.po.contractTypeSpec.ContractTypeSpecPo;
 import com.java110.po.contractTypeTemplate.ContractTypeTemplatePo;
+
 import com.java110.store.bmo.contract.IDeleteContractBMO;
 import com.java110.store.bmo.contract.IGetContractBMO;
 import com.java110.store.bmo.contract.ISaveContractBMO;
@@ -60,6 +74,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
+import java.util.List;
+
+
 
 @RestController
 @RequestMapping(value = "/contract")
@@ -196,6 +214,18 @@ public class ContractApi {
             contractPo.setContractParentId("-1");
         }
         reqJson.put("userId", userId);
+
+
+        JSONArray contractFiles = reqJson.getJSONArray("contractFilePo");
+        List<ContractFilePo> contractFilePos = new ArrayList<>();
+        for (int conFileIndex = 0; conFileIndex < contractFiles.size(); conFileIndex++) {
+            JSONObject resourceStore = contractFiles.getJSONObject(conFileIndex);
+            ContractFilePo contractFilePo = BeanConvertUtil.covertBean(resourceStore, ContractFilePo.class);
+            contractFilePo.setContractFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractFileId));
+            contractFilePos.add(contractFilePo);
+        }
+        contractPo.setContractFilePo(contractFilePos);
+
         return saveContractBMOImpl.save(contractPo, reqJson);
     }
 
@@ -228,6 +258,16 @@ public class ContractApi {
 
 
         ContractPo contractPo = BeanConvertUtil.covertBean(reqJson, ContractPo.class);
+
+        JSONArray contractFiles = reqJson.getJSONArray("contractFilePo");
+        List<ContractFilePo> contractFilePos = new ArrayList<>();
+        for (int conFileIndex = 0; conFileIndex < contractFiles.size(); conFileIndex++) {
+            JSONObject resourceStore = contractFiles.getJSONObject(conFileIndex);
+            ContractFilePo contractFilePo = BeanConvertUtil.covertBean(resourceStore, ContractFilePo.class);
+            contractFilePo.setContractFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractFileId));
+            contractFilePos.add(contractFilePo);
+        }
+        contractPo.setContractFilePo(contractFilePos);
         return updateContractBMOImpl.update(contractPo, reqJson);
     }
 

+ 103 - 0
service-store/src/main/java/com/java110/store/api/ContractFileApi.java

@@ -0,0 +1,103 @@
+package com.java110.store.api;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.contractFile.ContractFileDto;
+import com.java110.po.contractFile.ContractFilePo;
+import com.java110.store.bmo.contractFile.IDeleteContractFileBMO;
+import com.java110.store.bmo.contractFile.IGetContractFileBMO;
+import com.java110.store.bmo.contractFile.ISaveContractFileBMO;
+import com.java110.store.bmo.contractFile.IUpdateContractFileBMO;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+@RequestMapping(value = "/contractFile")
+public class ContractFileApi {
+
+    @Autowired
+    private ISaveContractFileBMO saveContractFileBMOImpl;
+    @Autowired
+    private IUpdateContractFileBMO updateContractFileBMOImpl;
+    @Autowired
+    private IDeleteContractFileBMO deleteContractFileBMOImpl;
+
+    @Autowired
+    private IGetContractFileBMO getContractFileBMOImpl;
+
+    /**
+     * 微信保存消息模板
+     * @serviceCode /contractFile/saveContractFile
+     * @path /app/contractFile/saveContractFile
+     * @param reqJson
+     * @return
+     */
+    @RequestMapping(value = "/saveContractFile", method = RequestMethod.POST)
+    public ResponseEntity<String> saveContractFile(@RequestBody JSONObject reqJson) {
+
+        Assert.hasKeyAndValue(reqJson, "contractId", "请求报文中未包含contractId");
+        Assert.hasKeyAndValue(reqJson, "fileRealName", "请求报文中未包含fileRealName");
+        Assert.hasKeyAndValue(reqJson, "fileSaveName", "请求报文中未包含fileSaveName");
+
+
+        ContractFilePo contractFilePo = BeanConvertUtil.covertBean(reqJson, ContractFilePo.class);
+        return saveContractFileBMOImpl.save(contractFilePo);
+    }
+
+    /**
+     * 微信修改消息模板
+     * @serviceCode /contractFile/updateContractFile
+     * @path /app/contractFile/updateContractFile
+     * @param reqJson
+     * @return
+     */
+    @RequestMapping(value = "/updateContractFile", method = RequestMethod.POST)
+    public ResponseEntity<String> updateContractFile(@RequestBody JSONObject reqJson) {
+
+        Assert.hasKeyAndValue(reqJson, "contractId", "请求报文中未包含contractId");
+        Assert.hasKeyAndValue(reqJson, "fileRealName", "请求报文中未包含fileRealName");
+        Assert.hasKeyAndValue(reqJson, "fileSaveName", "请求报文中未包含fileSaveName");
+        Assert.hasKeyAndValue(reqJson, "contractFileId", "contractFileId不能为空");
+
+
+        ContractFilePo contractFilePo = BeanConvertUtil.covertBean(reqJson, ContractFilePo.class);
+        return updateContractFileBMOImpl.update(contractFilePo);
+    }
+
+    /**
+     * 微信删除消息模板
+     * @serviceCode /contractFile/deleteContractFile
+     * @path /app/contractFile/deleteContractFile
+     * @param reqJson
+     * @return
+     */
+    @RequestMapping(value = "/deleteContractFile", method = RequestMethod.POST)
+    public ResponseEntity<String> deleteContractFile(@RequestBody JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "communityId", "小区ID不能为空");
+        Assert.hasKeyAndValue(reqJson, "contractFileId", "contractFileId不能为空");
+
+        ContractFilePo contractFilePo = BeanConvertUtil.covertBean(reqJson, ContractFilePo.class);
+        return deleteContractFileBMOImpl.delete(contractFilePo);
+    }
+
+    /**
+     * 微信删除消息模板
+     * @serviceCode /contractFile/queryContractFile
+     * @path /app/contractFile/queryContractFile
+     * @param storeId 商户ID
+     * @return
+     */
+    @RequestMapping(value = "/queryContractFile", method = RequestMethod.GET)
+    public ResponseEntity<String> queryContractFile(@RequestHeader(value = "store-id") String storeId,
+                                                    @RequestParam(value = "contractId", required = false) String contractId,
+                                                    @RequestParam(value = "page") int page,
+                                                    @RequestParam(value = "row") int row) {
+        ContractFileDto contractFileDto = new ContractFileDto();
+        contractFileDto.setPage(page);
+        contractFileDto.setRow(row);
+        contractFileDto.setContractId(contractId);
+        return getContractFileBMOImpl.get(contractFileDto);
+    }
+}

+ 14 - 3
service-store/src/main/java/com/java110/store/bmo/contract/impl/SaveContractBMOImpl.java

@@ -7,16 +7,17 @@ import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.dto.contract.ContractDto;
 import com.java110.dto.contractType.ContractTypeDto;
 import com.java110.dto.fee.FeeDto;
-import com.java110.dto.purchaseApply.PurchaseApplyDto;
 import com.java110.dto.rentingPool.RentingPoolDto;
 import com.java110.dto.store.StoreDto;
 import com.java110.intf.common.IContractApplyUserInnerServiceSMO;
 import com.java110.intf.store.IContractAttrInnerServiceSMO;
+import com.java110.intf.store.IContractFileInnerServiceSMO;
 import com.java110.intf.store.IContractInnerServiceSMO;
 import com.java110.intf.store.IContractTypeInnerServiceSMO;
 import com.java110.intf.user.IRentingPoolInnerServiceSMO;
 import com.java110.po.contract.ContractPo;
 import com.java110.po.contractAttr.ContractAttrPo;
+import com.java110.po.contractFile.ContractFilePo;
 import com.java110.po.rentingPool.RentingPoolPo;
 import com.java110.store.bmo.contract.ISaveContractBMO;
 import com.java110.utils.util.Assert;
@@ -47,6 +48,9 @@ public class SaveContractBMOImpl implements ISaveContractBMO {
     @Autowired
     private IContractApplyUserInnerServiceSMO contractApplyUserInnerServiceSMOImpl;
 
+    @Autowired
+    private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl;
+
     /**
      * 添加小区信息
      *
@@ -81,11 +85,18 @@ public class SaveContractBMOImpl implements ISaveContractBMO {
             throw new IllegalArgumentException("合同" + "[" + contractPo.getContractCode() + "]已存在");
         }
 
-
-
         contractPo.setContractId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractId));
+        //附件保存
+        List<ContractFilePo> filePos = contractPo.getContractFilePo();
         int flag = contractInnerServiceSMOImpl.saveContract(contractPo);
+        for (ContractFilePo file: filePos) {
+             if (file.getFileRealName().length() > 0 && file.getFileSaveName().length() > 0){
+                 file.setContractId(contractPo.getContractId());
+                 contractFileInnerServiceSMOImpl.saveContractFile(file);
+             }
+        }
 
+        contractPo.setContractId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractId));
         if (flag < 0) {
             return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
         }

+ 24 - 4
service-store/src/main/java/com/java110/store/bmo/contract/impl/UpdateContractBMOImpl.java

@@ -12,16 +12,15 @@ import com.java110.dto.rentingPool.RentingPoolDto;
 import com.java110.dto.store.StoreDto;
 import com.java110.intf.common.IContractApplyUserInnerServiceSMO;
 import com.java110.intf.common.IContractChangeUserInnerServiceSMO;
-import com.java110.intf.store.IContractAttrInnerServiceSMO;
-import com.java110.intf.store.IContractChangePlanDetailInnerServiceSMO;
-import com.java110.intf.store.IContractChangePlanInnerServiceSMO;
-import com.java110.intf.store.IContractInnerServiceSMO;
+import com.java110.intf.store.*;
 import com.java110.intf.user.IRentingPoolInnerServiceSMO;
 import com.java110.po.contract.ContractPo;
 import com.java110.po.contractAttr.ContractAttrPo;
 import com.java110.po.contractChangePlan.ContractChangePlanPo;
+import com.java110.po.contractFile.ContractFilePo;
 import com.java110.po.rentingPool.RentingPoolPo;
 import com.java110.store.bmo.contract.IUpdateContractBMO;
+import com.java110.store.bmo.contractFile.IDeleteContractFileBMO;
 import com.java110.utils.constant.StatusConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
@@ -57,6 +56,13 @@ public class UpdateContractBMOImpl implements IUpdateContractBMO {
     @Autowired
     private IContractChangePlanDetailInnerServiceSMO contractChangePlanDetailInnerServiceSMOImpl;
 
+
+    @Autowired
+    private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl;
+
+    @Autowired
+    private IDeleteContractFileBMO deleteContractFileBMOImpl;
+
     /**
      * @param contractPo
      * @return 订单服务能够接受的报文
@@ -71,6 +77,20 @@ public class UpdateContractBMOImpl implements IUpdateContractBMO {
 
         }
 
+        //附件保存--先删除原来所有的附件再进行保存
+        ContractFilePo contractFilePo = new ContractFilePo();
+        contractFilePo.setContractId(contractPo.getContractId());
+        deleteContractFileBMOImpl.delete(contractFilePo);
+
+        List<ContractFilePo> filePos = contractPo.getContractFilePo();
+        for (ContractFilePo file: filePos) {
+            if (file.getFileRealName().length() > 0 && file.getFileSaveName().length() > 0){
+                file.setContractId(contractPo.getContractId());
+                contractFileInnerServiceSMOImpl.saveContractFile(file);
+            }
+        }
+
+
         noticeRentUpdateState(contractPo);
 
         if (!reqJson.containsKey("contractTypeSpecs")) {

+ 17 - 0
service-store/src/main/java/com/java110/store/bmo/contractFile/IDeleteContractFileBMO.java

@@ -0,0 +1,17 @@
+package com.java110.store.bmo.contractFile;
+import com.java110.po.contractFile.ContractFilePo;
+import org.springframework.http.ResponseEntity;
+
+public interface IDeleteContractFileBMO {
+
+
+    /**
+     * 修改合同附件
+     * add by wuxw
+     * @param contractFilePo
+     * @return
+     */
+    ResponseEntity<String> delete(ContractFilePo contractFilePo);
+
+
+}

+ 16 - 0
service-store/src/main/java/com/java110/store/bmo/contractFile/IGetContractFileBMO.java

@@ -0,0 +1,16 @@
+package com.java110.store.bmo.contractFile;
+import com.java110.dto.contractFile.ContractFileDto;
+import org.springframework.http.ResponseEntity;
+public interface IGetContractFileBMO {
+
+
+    /**
+     * 查询合同附件
+     * add by wuxw
+     * @param  contractFileDto
+     * @return
+     */
+    ResponseEntity<String> get(ContractFileDto contractFileDto);
+
+
+}

+ 17 - 0
service-store/src/main/java/com/java110/store/bmo/contractFile/ISaveContractFileBMO.java

@@ -0,0 +1,17 @@
+package com.java110.store.bmo.contractFile;
+
+import com.java110.po.contractFile.ContractFilePo;
+import org.springframework.http.ResponseEntity;
+public interface ISaveContractFileBMO {
+
+
+    /**
+     * 添加合同附件
+     * add by wuxw
+     * @param contractFilePo
+     * @return
+     */
+    ResponseEntity<String> save(ContractFilePo contractFilePo);
+
+
+}

+ 17 - 0
service-store/src/main/java/com/java110/store/bmo/contractFile/IUpdateContractFileBMO.java

@@ -0,0 +1,17 @@
+package com.java110.store.bmo.contractFile;
+import com.java110.po.contractFile.ContractFilePo;
+import org.springframework.http.ResponseEntity;
+
+public interface IUpdateContractFileBMO {
+
+
+    /**
+     * 修改合同附件
+     * add by wuxw
+     * @param contractFilePo
+     * @return
+     */
+    ResponseEntity<String> update(ContractFilePo contractFilePo);
+
+
+}

+ 34 - 0
service-store/src/main/java/com/java110/store/bmo/contractFile/impl/DeleteContractFileBMOImpl.java

@@ -0,0 +1,34 @@
+package com.java110.store.bmo.contractFile.impl;
+
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.intf.store.IContractFileInnerServiceSMO;
+import com.java110.po.contractFile.ContractFilePo;
+import com.java110.store.bmo.contractFile.IDeleteContractFileBMO;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+@Service("deleteContractFileBMOImpl")
+public class DeleteContractFileBMOImpl implements IDeleteContractFileBMO {
+
+    @Autowired
+    private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl;
+
+    /**
+     * @param contractFilePo 数据
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> delete(ContractFilePo contractFilePo) {
+
+        int flag = contractFileInnerServiceSMOImpl.deleteContractFile(contractFilePo);
+
+        if (flag > 0) {
+        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 46 - 0
service-store/src/main/java/com/java110/store/bmo/contractFile/impl/GetContractFileBMOImpl.java

@@ -0,0 +1,46 @@
+package com.java110.store.bmo.contractFile.impl;
+
+import com.java110.dto.contractFile.ContractFileDto;
+import com.java110.intf.store.IContractFileInnerServiceSMO;
+import com.java110.store.bmo.contractFile.IGetContractFileBMO;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service("getContractFileBMOImpl")
+public class GetContractFileBMOImpl implements IGetContractFileBMO {
+
+    @Autowired
+    private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl;
+
+    /**
+     *
+     *
+     * @param  contractFileDto
+     * @return 订单服务能够接受的报文
+     */
+    public ResponseEntity<String> get(ContractFileDto contractFileDto) {
+
+
+        int count = contractFileInnerServiceSMOImpl.queryContractFilesCount(contractFileDto);
+
+        List<ContractFileDto> contractFileDtos = null;
+        if (count > 0) {
+            contractFileDtos = contractFileInnerServiceSMOImpl.queryContractFiles(contractFileDto);
+        } else {
+            contractFileDtos = new ArrayList<>();
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) contractFileDto.getRow()), count, contractFileDtos);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+}

+ 38 - 0
service-store/src/main/java/com/java110/store/bmo/contractFile/impl/SaveContractFileBMOImpl.java

@@ -0,0 +1,38 @@
+package com.java110.store.bmo.contractFile.impl;
+
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.intf.store.IContractFileInnerServiceSMO;
+import com.java110.po.contractFile.ContractFilePo;
+import com.java110.store.bmo.contractFile.ISaveContractFileBMO;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+@Service("saveContractFileBMOImpl")
+public class SaveContractFileBMOImpl implements ISaveContractFileBMO {
+
+    @Autowired
+    private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl;
+
+    /**
+     * 添加小区信息
+     *
+     * @param contractFilePo
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> save(ContractFilePo contractFilePo) {
+
+        contractFilePo.setContractFileId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractFileId));
+        int flag = contractFileInnerServiceSMOImpl.saveContractFile(contractFilePo);
+
+        if (flag > 0) {
+        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 36 - 0
service-store/src/main/java/com/java110/store/bmo/contractFile/impl/UpdateContractFileBMOImpl.java

@@ -0,0 +1,36 @@
+package com.java110.store.bmo.contractFile.impl;
+
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.intf.store.IContractFileInnerServiceSMO;
+import com.java110.po.contractFile.ContractFilePo;
+import com.java110.store.bmo.contractFile.IUpdateContractFileBMO;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+@Service("updateContractFileBMOImpl")
+public class UpdateContractFileBMOImpl implements IUpdateContractFileBMO {
+
+    @Autowired
+    private IContractFileInnerServiceSMO contractFileInnerServiceSMOImpl;
+
+    /**
+     *
+     *
+     * @param contractFilePo
+     * @return 订单服务能够接受的报文
+     */
+    @Java110Transactional
+    public ResponseEntity<String> update(ContractFilePo contractFilePo) {
+
+        int flag = contractFileInnerServiceSMOImpl.updateContractFile(contractFilePo);
+
+        if (flag > 0) {
+        return ResultVo.createResponseEntity(ResultVo.CODE_OK, "保存成功");
+        }
+
+        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "保存失败");
+    }
+
+}

+ 61 - 0
service-store/src/main/java/com/java110/store/dao/IContractFileServiceDao.java

@@ -0,0 +1,61 @@
+package com.java110.store.dao;
+
+
+import com.java110.utils.exception.DAOException;
+import com.java110.entity.merchant.BoMerchant;
+import com.java110.entity.merchant.BoMerchantAttr;
+import com.java110.entity.merchant.Merchant;
+import com.java110.entity.merchant.MerchantAttr;
+
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 合同附件组件内部之间使用,没有给外围系统提供服务能力
+ * 合同附件服务接口类,要求全部以字符串传输,方便微服务化
+ * 新建客户,修改客户,删除客户,查询客户等功能
+ *
+ * Created by wuxw on 2016/12/27.
+ */
+public interface IContractFileServiceDao {
+
+
+    /**
+     * 保存 合同附件信息
+     * @param info
+     * @throws DAOException DAO异常
+     */
+    void saveContractFileInfo(Map info) throws DAOException;
+
+
+
+
+    /**
+     * 查询合同附件信息(instance过程)
+     * 根据bId 查询合同附件信息
+     * @param info bId 信息
+     * @return 合同附件信息
+     * @throws DAOException DAO异常
+     */
+    List<Map> getContractFileInfo(Map info) throws DAOException;
+
+
+
+    /**
+     * 修改合同附件信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    void updateContractFileInfo(Map info) throws DAOException;
+
+
+    /**
+     * 查询合同附件总数
+     *
+     * @param info 合同附件信息
+     * @return 合同附件数量
+     */
+    int queryContractFilesCount(Map info);
+
+}

+ 98 - 0
service-store/src/main/java/com/java110/store/dao/impl/ContractFileServiceDaoImpl.java

@@ -0,0 +1,98 @@
+package com.java110.store.dao.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.DAOException;
+import com.java110.utils.util.DateUtil;
+import com.java110.core.base.dao.BaseServiceDao;
+import com.java110.store.dao.IContractFileServiceDao;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 合同附件服务 与数据库交互
+ * Created by wuxw on 2017/4/5.
+ */
+@Service("contractFileServiceDaoImpl")
+//@Transactional
+public class ContractFileServiceDaoImpl extends BaseServiceDao implements IContractFileServiceDao {
+
+    private static Logger logger = LoggerFactory.getLogger(ContractFileServiceDaoImpl.class);
+
+
+
+
+
+    /**
+     * 保存合同附件信息 到 instance
+     * @param info   bId 信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public void saveContractFileInfo(Map info) throws DAOException {
+        logger.debug("保存合同附件信息Instance 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.insert("contractFileServiceDaoImpl.saveContractFileInfo",info);
+
+        if(saveFlag < 1){
+            throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"保存合同附件信息Instance数据失败:"+ JSONObject.toJSONString(info));
+        }
+    }
+
+
+    /**
+     * 查询合同附件信息(instance)
+     * @param info bId 信息
+     * @return List<Map>
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public List<Map> getContractFileInfo(Map info) throws DAOException {
+        logger.debug("查询合同附件信息 入参 info : {}",info);
+
+        List<Map> businessContractFileInfos = sqlSessionTemplate.selectList("contractFileServiceDaoImpl.getContractFileInfo",info);
+
+        return businessContractFileInfos;
+    }
+
+
+    /**
+     * 修改合同附件信息
+     * @param info 修改信息
+     * @throws DAOException DAO异常
+     */
+    @Override
+    public void updateContractFileInfo(Map info) throws DAOException {
+        logger.debug("修改合同附件信息Instance 入参 info : {}",info);
+
+        int saveFlag = sqlSessionTemplate.update("contractFileServiceDaoImpl.updateContractFileInfo",info);
+
+/*        if(saveFlag < 1){
+            throw new DAOException(ResponseConstant.RESULT_PARAM_ERROR,"修改合同附件信息Instance数据失败:"+ JSONObject.toJSONString(info));
+        }*/
+    }
+
+     /**
+     * 查询合同附件数量
+     * @param info 合同附件信息
+     * @return 合同附件数量
+     */
+    @Override
+    public int queryContractFilesCount(Map info) {
+        logger.debug("查询合同附件数据 入参 info : {}",info);
+
+        List<Map> businessContractFileInfos = sqlSessionTemplate.selectList("contractFileServiceDaoImpl.queryContractFilesCount", info);
+        if (businessContractFileInfos.size() < 1) {
+            return 0;
+        }
+
+        return Integer.parseInt(businessContractFileInfos.get(0).get("count").toString());
+    }
+
+
+}

+ 84 - 0
service-store/src/main/java/com/java110/store/smo/impl/ContractFileInnerServiceSMOImpl.java

@@ -0,0 +1,84 @@
+package com.java110.store.smo.impl;
+
+
+import com.java110.intf.store.IContractFileInnerServiceSMO;
+import com.java110.po.contractFile.ContractFilePo;
+import com.java110.store.dao.IContractFileServiceDao;
+import com.java110.dto.contractFile.ContractFileDto;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.user.UserDto;
+import com.java110.dto.PageDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName FloorInnerServiceSMOImpl
+ * @Description 合同附件内部服务实现类
+ * @Author wuxw
+ * @Date 2019/4/24 9:20
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+@RestController
+public class ContractFileInnerServiceSMOImpl extends BaseServiceSMO implements IContractFileInnerServiceSMO {
+
+    @Autowired
+    private IContractFileServiceDao contractFileServiceDaoImpl;
+
+
+    @Override
+    public int saveContractFile(@RequestBody ContractFilePo contractFilePo) {
+        int saveFlag = 1;
+        contractFileServiceDaoImpl.saveContractFileInfo(BeanConvertUtil.beanCovertMap(contractFilePo));
+        return saveFlag;
+    }
+
+     @Override
+    public int updateContractFile(@RequestBody  ContractFilePo contractFilePo) {
+        int saveFlag = 1;
+         contractFileServiceDaoImpl.updateContractFileInfo(BeanConvertUtil.beanCovertMap(contractFilePo));
+        return saveFlag;
+    }
+
+     @Override
+    public int deleteContractFile(@RequestBody  ContractFilePo contractFilePo) {
+        int saveFlag = 1;
+        contractFilePo.setStatusCd("1");
+        contractFileServiceDaoImpl.updateContractFileInfo(BeanConvertUtil.beanCovertMap(contractFilePo));
+        return saveFlag;
+    }
+
+    @Override
+    public List<ContractFileDto> queryContractFiles(@RequestBody  ContractFileDto contractFileDto) {
+
+        //校验是否传了 分页信息
+
+        int page = contractFileDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            contractFileDto.setPage((page - 1) * contractFileDto.getRow());
+        }
+
+        List<ContractFileDto> contractFiles = BeanConvertUtil.covertBeanList(contractFileServiceDaoImpl.getContractFileInfo(BeanConvertUtil.beanCovertMap(contractFileDto)), ContractFileDto.class);
+
+        return contractFiles;
+    }
+
+
+    @Override
+    public int queryContractFilesCount(@RequestBody ContractFileDto contractFileDto) {
+        return contractFileServiceDaoImpl.queryContractFilesCount(BeanConvertUtil.beanCovertMap(contractFileDto));    }
+
+    public IContractFileServiceDao getContractFileServiceDaoImpl() {
+        return contractFileServiceDaoImpl;
+    }
+
+    public void setContractFileServiceDaoImpl(IContractFileServiceDao contractFileServiceDaoImpl) {
+        this.contractFileServiceDaoImpl = contractFileServiceDaoImpl;
+    }
+}