his-uncles-father лет назад: 5
Родитель
Сommit
5fecf7a5b3

+ 39 - 4
service-store/src/main/java/com/java110/store/api/ContractApi.java

@@ -46,10 +46,7 @@ import com.java110.store.bmo.contractTypeSpec.IDeleteContractTypeSpecBMO;
 import com.java110.store.bmo.contractTypeSpec.IGetContractTypeSpecBMO;
 import com.java110.store.bmo.contractTypeSpec.ISaveContractTypeSpecBMO;
 import com.java110.store.bmo.contractTypeSpec.IUpdateContractTypeSpecBMO;
-import com.java110.store.bmo.contractTypeTemplate.IDeleteContractTypeTemplateBMO;
-import com.java110.store.bmo.contractTypeTemplate.IGetContractTypeTemplateBMO;
-import com.java110.store.bmo.contractTypeTemplate.ISaveContractTypeTemplateBMO;
-import com.java110.store.bmo.contractTypeTemplate.IUpdateContractTypeTemplateBMO;
+import com.java110.store.bmo.contractTypeTemplate.*;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
@@ -144,6 +141,8 @@ public class ContractApi {
     @Autowired
     private IGetContractChangePlanDetailAttrBMO getContractChangePlanDetailAttrBMOImpl;
 
+    @Autowired
+    private IPrintContractTemplateBMO printContractTemplateBMO;
     /**
      * 微信保存消息模板
      *
@@ -969,4 +968,40 @@ public class ContractApi {
         return getContractChangePlanDetailAttrBMOImpl.get(contractChangePlanDetailAttrDto);
     }
 
+    /**
+     * 合同打印
+     *
+     * @param storeId 商户ID
+     * @return
+     * @serviceCode /contract/printContractTemplate
+     * @path /app/contract/printContractTemplate
+     */
+    @RequestMapping(value = "/printContractTemplate", method = RequestMethod.GET)
+    public ResponseEntity<String> printContractTemplate(@RequestHeader(value = "store-id") String storeId,
+                                                        @RequestParam(value = "contractTypeId", required = false) String contractTypeId,
+                                                        @RequestParam(value = "contractId", required = false) String contractId,
+                                                        @RequestParam(value = "page") int page,
+                                                        @RequestParam(value = "row") int row) {
+        ContractTypeTemplateDto contractTypeTemplateDto = new ContractTypeTemplateDto();
+        contractTypeTemplateDto.setPage(page);
+        contractTypeTemplateDto.setRow(row);
+        contractTypeTemplateDto.setStoreId(storeId);
+        contractTypeTemplateDto.setContractTypeId(contractTypeId);
+
+        ContractDto contractDto = new ContractDto();
+        contractDto.setPage(page);
+        contractDto.setRow(row);
+        contractDto.setStoreId(storeId);
+        contractDto.setContractId(contractId);
+
+        ContractTypeSpecDto contractTypeSpecDto = new ContractTypeSpecDto();
+        contractTypeSpecDto.setPage(page);
+        contractTypeSpecDto.setRow(100);
+        contractTypeSpecDto.setStoreId(storeId);
+        contractTypeSpecDto.setContractTypeId(contractTypeId);
+
+        return printContractTemplateBMO.get(contractTypeTemplateDto,contractDto,contractTypeSpecDto);
+    }
+
+
 }

+ 21 - 0
service-store/src/main/java/com/java110/store/bmo/contractTypeTemplate/IPrintContractTemplateBMO.java

@@ -0,0 +1,21 @@
+package com.java110.store.bmo.contractTypeTemplate;
+
+import com.java110.dto.contract.ContractDto;
+import com.java110.dto.contractTypeSpec.ContractTypeSpecDto;
+import com.java110.dto.contractTypeTemplate.ContractTypeTemplateDto;
+import org.springframework.http.ResponseEntity;
+
+public interface IPrintContractTemplateBMO {
+
+
+    /**
+     * 查询合同属性及模板
+     * add by wuxw
+     *
+     * @param contractTypeTemplateDto
+     * @return
+     */
+    ResponseEntity<String> get(ContractTypeTemplateDto contractTypeTemplateDto, ContractDto contractDto, ContractTypeSpecDto contractTypeSpecDto);
+
+
+}

+ 113 - 0
service-store/src/main/java/com/java110/store/bmo/contractTypeTemplate/impl/PrintContractTemplateBMOImpl.java

@@ -0,0 +1,113 @@
+package com.java110.store.bmo.contractTypeTemplate.impl;
+
+import com.java110.dto.contract.ContractDto;
+import com.java110.dto.contractAttr.ContractAttrDto;
+import com.java110.dto.contractTypeSpec.ContractTypeSpecDto;
+import com.java110.dto.contractTypeTemplate.ContractTypeTemplateDto;
+import com.java110.entity.mapping.Mapping;
+import com.java110.intf.store.IContractAttrInnerServiceSMO;
+import com.java110.intf.store.IContractInnerServiceSMO;
+import com.java110.intf.store.IContractTypeSpecInnerServiceSMO;
+import com.java110.intf.store.IContractTypeTemplateInnerServiceSMO;
+import com.java110.store.bmo.contractTypeTemplate.IPrintContractTemplateBMO;
+import com.java110.utils.cache.MappingCache;
+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.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service("printContractTemplateBMOImpl")
+public class PrintContractTemplateBMOImpl implements IPrintContractTemplateBMO {
+    @Autowired
+    private IContractInnerServiceSMO contractInnerServiceSMOImpl;
+
+    @Autowired
+    private IContractAttrInnerServiceSMO contractAttrInnerServiceSMOImpl;
+
+    @Autowired
+    private IContractTypeTemplateInnerServiceSMO contractTypeTemplateInnerServiceSMOImpl;
+
+    @Autowired
+    private IContractTypeSpecInnerServiceSMO contractTypeSpecInnerServiceSMOImpl;
+    //域
+    public static final String STORE_CONTRACT = "STORE.CONTRACT";
+
+    /**
+     * @param contractTypeTemplateDto
+     * @return 订单服务能够接受的报文
+     */
+    public ResponseEntity<String> get(ContractTypeTemplateDto contractTypeTemplateDto, ContractDto contractDto, ContractTypeSpecDto contractTypeSpecDto ) {
+        int count = contractInnerServiceSMOImpl.queryContractsCount(contractDto);
+        Map<String, Object> result = new HashMap<String, Object>();
+        List<ContractDto> contractDtos = null;
+        if (count > 0) {
+            contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
+            refreshAttr(contractDtos);
+        } else {
+            contractDtos = new ArrayList<>();
+        }
+        result.put("contract",contractDtos);
+        int count2 = contractTypeTemplateInnerServiceSMOImpl.queryContractTypeTemplatesCount(contractTypeTemplateDto);
+        List<ContractTypeTemplateDto> contractTypeTemplateDtos = null;
+        if (count2 > 0) {
+            contractTypeTemplateDtos = contractTypeTemplateInnerServiceSMOImpl.queryContractTypeTemplates(contractTypeTemplateDto);
+        } else {
+            contractTypeTemplateDtos = new ArrayList<>();
+        }
+        result.put("contractTypeTemplate",contractTypeTemplateDtos);
+        int count3 = contractTypeSpecInnerServiceSMOImpl.queryContractTypeSpecsCount(contractTypeSpecDto);
+        List<ContractTypeSpecDto> contractTypeSpecDtos = null;
+        if (count3 > 0) {
+            contractTypeSpecDtos = contractTypeSpecInnerServiceSMOImpl.queryContractTypeSpecs(contractTypeSpecDto);
+        } else {
+            contractTypeSpecDtos = new ArrayList<>();
+        }
+        result.put("contractTypeSpec",contractTypeSpecDtos);
+        List<Mapping> baseRepalce = MappingCache.getValueByDomain(STORE_CONTRACT);
+        result.put("baseRepalce",baseRepalce);
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) contractTypeTemplateDto.getRow()), count, result);
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+        return responseEntity;
+    }
+
+
+    /**
+     * 属性属性
+     *
+     * @param contractDtos
+     */
+    private void refreshAttr(List<ContractDto> contractDtos) {
+        List<String> contractIds = new ArrayList<>();
+        for (ContractDto contractDto : contractDtos) {
+            contractIds.add(contractDto.getContractId());
+        }
+
+
+        if (contractIds.size() < 1) {
+            return;
+        }
+
+        ContractAttrDto contractAttrDto = new ContractAttrDto();
+        contractAttrDto.setContractIds(contractIds.toArray(new String[contractIds.size()]));
+        List<ContractAttrDto> contractAttrDtos = contractAttrInnerServiceSMOImpl.queryContractAttrs(contractAttrDto);
+
+        List<ContractAttrDto> attrs = null;
+        for (ContractDto contractDto : contractDtos) {
+            attrs = new ArrayList<>();
+            for (ContractAttrDto tmpContractAttrDto : contractAttrDtos) {
+                if (contractDto.getContractId().equals(tmpContractAttrDto.getContractId())) {
+                    attrs.add(tmpContractAttrDto);
+                }
+            }
+            contractDto.setAttrs(attrs);
+        }
+
+
+    }
+}