Bladeren bron

优化代码

java110 5 jaren geleden
bovenliggende
commit
24d48213fc

+ 9 - 0
java110-bean/src/main/java/com/java110/dto/contract/ContractDto.java

@@ -47,6 +47,7 @@ public class ContractDto extends PageDto implements Serializable {
     private String contractCode;
     private String objType;
     private String operatorLink;
+    private String contractParentId;
 
 
     private Date createTime;
@@ -272,4 +273,12 @@ public class ContractDto extends PageDto implements Serializable {
     public void setNoStates(String[] noStates) {
         this.noStates = noStates;
     }
+
+    public String getContractParentId() {
+        return contractParentId;
+    }
+
+    public void setContractParentId(String contractParentId) {
+        this.contractParentId = contractParentId;
+    }
 }

+ 10 - 0
java110-bean/src/main/java/com/java110/po/contract/ContractPo.java

@@ -26,6 +26,8 @@ public class ContractPo implements Serializable {
     private String contractCode;
     private String objType;
     private String operatorLink;
+    private String contractParentId;
+
 
     public String getaLink() {
         return aLink;
@@ -202,4 +204,12 @@ public class ContractPo implements Serializable {
     public void setStateDesc(String stateDesc) {
         this.stateDesc = stateDesc;
     }
+
+    public String getContractParentId() {
+        return contractParentId;
+    }
+
+    public void setContractParentId(String contractParentId) {
+        this.contractParentId = contractParentId;
+    }
 }

+ 11 - 3
java110-db/src/main/resources/mapper/store/ContractServiceDaoImplMapper.xml

@@ -8,9 +8,11 @@
     <!-- 保存合同管理信息 add by wuxw 2018-07-03 -->
     <insert id="saveContractInfo" parameterType="Map">
         insert into contract(
-        a_link,a_contacts,amount,contract_type,store_id,operator,signing_time,b_contacts,party_a,b_link,party_b,contract_id,obj_id,contract_name,start_time,end_time,state,contract_code,obj_type,operator_link
+        a_link,a_contacts,amount,contract_type,store_id,operator,signing_time,b_contacts,party_a,b_link,party_b,
+        contract_id,obj_id,contract_name,start_time,end_time,state,contract_code,obj_type,operator_link,contract_parent_id
         ) values (
-        #{aLink},#{aContacts},#{amount},#{contractType},#{storeId},#{operator},#{signingTime},#{bContacts},#{partyA},#{bLink},#{partyB},#{contractId},#{objId},#{contractName},#{startTime},#{endTime},#{state},#{contractCode},#{objType},#{operatorLink}
+        #{aLink},#{aContacts},#{amount},#{contractType},#{storeId},#{operator},#{signingTime},#{bContacts},#{partyA},#{bLink},#{partyB},
+        #{contractId},#{objId},#{contractName},#{startTime},#{endTime},#{state},#{contractCode},#{objType},#{operatorLink},#{contractParentId}
         )
     </insert>
 
@@ -25,7 +27,7 @@
         contractName,t.start_time,t.start_time startTime,t.end_time,t.end_time
         endTime,t.state,t.contract_code,t.contract_code contractCode,t.obj_type,t.obj_type
         objType,t.operator_link,t.operator_link operatorLink,ct.type_name contractTypeName,td.`name`
-        stateName,t.state_desc stateDesc
+        stateName,t.state_desc stateDesc,t.contract_parent_id contractParentId
         from contract t
         LEFT JOIN contract_type ct on t.contract_type = ct.contract_type_id and ct.status_cd = '0' and ct.store_id =
         t.store_id
@@ -100,6 +102,9 @@
         <if test="operatorLink !=null and operatorLink != ''">
             and t.operator_link= #{operatorLink}
         </if>
+        <if test="contractParentId !=null and contractParentId != ''">
+            and t.contract_parent_id= #{contractParentId}
+        </if>
         order by t.create_time desc
         <if test="page != -1 and page != null ">
             limit #{page}, #{row}
@@ -255,6 +260,9 @@
         <if test="operatorLink !=null and operatorLink != ''">
             and t.operator_link= #{operatorLink}
         </if>
+        <if test="contractParentId !=null and contractParentId != ''">
+            and t.contract_parent_id= #{contractParentId}
+        </if>
 
 
     </select>

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

@@ -171,6 +171,9 @@ public class ContractApi {
 
         ContractPo contractPo = BeanConvertUtil.covertBean(reqJson, ContractPo.class);
         contractPo.setStoreId(storeId);
+        if (reqJson.containsKey("contractParentId") || "-1".equals(reqJson.getString("contractParentId"))) {
+            contractPo.setContractParentId("-1");
+        }
         return saveContractBMOImpl.save(contractPo, reqJson);
     }
 

+ 12 - 2
service-store/src/main/java/com/java110/store/bmo/contract/impl/SaveContractBMOImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Transactional;
 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.rentingPool.RentingPoolDto;
@@ -64,6 +65,15 @@ public class SaveContractBMOImpl implements ISaveContractBMO {
         } else {
             contractPo.setState("11");
         }
+        //校验合同编号是否重复
+        ContractDto contractDto = new ContractDto();
+        contractDto.setStoreId(contractPo.getStoreId());
+        contractDto.setContractCode(contractPo.getContractCode());
+        List<ContractDto> contractDtos = contractInnerServiceSMOImpl.queryContracts(contractDto);
+
+        if (contractDtos != null && contractDtos.size() > 0) {
+            throw new IllegalArgumentException("合同" + "[" + contractPo.getContractCode() + "]已存在");
+        }
 
         contractPo.setContractId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_contractId));
         int flag = contractInnerServiceSMOImpl.saveContract(contractPo);
@@ -74,7 +84,7 @@ public class SaveContractBMOImpl implements ISaveContractBMO {
         }
 
         if (StoreDto.STORE_ADMIN.equals(contractPo.getStoreId())) {
-            noticeRentUpdateState(contractPo,audit);
+            noticeRentUpdateState(contractPo, audit);
         }
 
 
@@ -102,7 +112,7 @@ public class SaveContractBMOImpl implements ISaveContractBMO {
      *
      * @param contractPo
      */
-    private void noticeRentUpdateState(ContractPo contractPo,String audit) {
+    private void noticeRentUpdateState(ContractPo contractPo, String audit) {
 
         if (!contractPo.getObjType().equals(FeeDto.PAYER_OBJ_TYPE_ROOM)
                 || StringUtil.isEmpty(contractPo.getObjId())