Browse Source

[租赁合同][修改][作废合同优化]

release_toaliyun_real
gongbiao 7 years ago
parent
commit
c0efce13dd
3 changed files with 41 additions and 34 deletions
  1. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java
  2. +34
    -34
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  3. +5
    -0
      mallinkService/src/main/resources/mapper/WxRentContractMapper.xml

+ 2
- 0
mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java View File

@@ -52,4 +52,6 @@ public interface WxRentContractMapper extends CommonMapper<WxRentContract, Long>
void updateInvalidContract(WxRentContract record); void updateInvalidContract(WxRentContract record);


List<WxRentContract> selectRentContractByMerchantId(WxRentContract wxRentContract); List<WxRentContract> selectRentContractByMerchantId(WxRentContract wxRentContract);

List<WxRentContract> selectRentContractByShopId(WxRentContract record);
} }

+ 34
- 34
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java View File

@@ -622,6 +622,10 @@ public class WxRentContractServiceImpl implements WxRentContractService {
record.setTenantId(wxRentContract.getTenantId()); record.setTenantId(wxRentContract.getTenantId());
record.setStatus(EnumRentContractStatus.INVALID.getCode()); record.setStatus(EnumRentContractStatus.INVALID.getCode());
wxRentContractMapper.updateInvalidContract(record); wxRentContractMapper.updateInvalidContract(record);
List<WxRentContract> rentContractList = wxRentContractMapper.selectRentContractByShopId(record);
for (WxRentContract updateContract : rentContractList) {
updateInvalidStatus(updateContract);
}
} }
} else { } else {
WxRentContract record = new WxRentContract(); WxRentContract record = new WxRentContract();
@@ -629,8 +633,12 @@ public class WxRentContractServiceImpl implements WxRentContractService {
record.setRentShopType(wxRentContract.getRentShopType()); record.setRentShopType(wxRentContract.getRentShopType());
record.setStatus(EnumRentContractStatus.INVALID.getCode()); record.setStatus(EnumRentContractStatus.INVALID.getCode());
wxRentContractMapper.updateRentInvalidStatus(record); wxRentContractMapper.updateRentInvalidStatus(record);
List<WxRentContract> rentContractList = wxRentContractMapper.select(record);
for (WxRentContract updateContract : rentContractList) {
updateInvalidStatus(updateContract);
}
} }
updateInvalidStatus(wxRentContract);
} }


@Override @Override
@@ -660,42 +668,34 @@ public class WxRentContractServiceImpl implements WxRentContractService {
return new ResultData(Result.SUCCESS, "操作成功"); return new ResultData(Result.SUCCESS, "操作成功");
} }


public void updateInvalidStatus(WxRentContract wxRentContract) {
WxRentContract record = new WxRentContract();
record.setTenantId(wxRentContract.getTenantId());
record.setStatus(EnumRentContractStatus.INVALID.getCode());
public void updateInvalidStatus(WxRentContract record) {
Long id = record.getId();
//审核流程中止 //审核流程中止
List<Long> collect = wxRentContractMapper.select(record).stream()
.map(r -> r.getId()).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(collect)) {
for (Long id : collect) {
try {
logger.info("合同id:{},开始停止...", id);
//结束审批流 by luozukai
List<Task> tasks = taskService.createTaskQuery().processDefinitionKey(WxFlowServiceImpl.getFlowKeyByType(1))
.processVariableValueEquals("businessId", id).list();
if (!CollectionUtils.isEmpty(tasks)) {
for (Task task : tasks) {
logger.info("合同id:{},taskid:{}", id, task.getId());
runtimeService.deleteProcessInstance(task.getProcessInstanceId(), "合同作废");
}
}
// 修改合同审核状态
WxRentContract rentContract = record;
rentContract.setId(id);
rentContract.setApplyStatus(EnumRentContractAppStatus.CANCLE.getCode());
updateApplyStatus(rentContract);

// 保存审批历史入
WxFlowRecord updateRecord = new WxFlowRecord();
updateRecord.setBusinessId(id);
updateRecord.setStatus(EnumFlowRecordStatus.CANCLE.getCode());
updateRecord.setBusinessType(1);
wxFlowRecordService.saveOrUpdate(updateRecord);
} catch (Exception e) {
logger.error("deleteProcessInstance error", e);
try {
logger.info("合同id:{},开始停止...", id);
//结束审批流 by luozukai
List<Task> tasks = taskService.createTaskQuery().processDefinitionKey(WxFlowServiceImpl.getFlowKeyByType(1))
.processVariableValueEquals("businessId", id).list();
if (!CollectionUtils.isEmpty(tasks)) {
for (Task task : tasks) {
logger.info("合同id:{},taskid:{}", id, task.getId());
runtimeService.deleteProcessInstance(task.getProcessInstanceId(), "合同作废");
} }
} }
// 修改合同审核状态
WxRentContract rentContract = record;
rentContract.setId(id);
rentContract.setApplyStatus(EnumRentContractAppStatus.CANCLE.getCode());
updateApplyStatus(rentContract);

// 保存审批历史入
WxFlowRecord updateRecord = new WxFlowRecord();
updateRecord.setBusinessId(id);
updateRecord.setStatus(EnumFlowRecordStatus.CANCLE.getCode());
updateRecord.setBusinessType(1);
wxFlowRecordService.saveOrUpdate(updateRecord);
} catch (Exception e) {
logger.error("deleteProcessInstance error", e);
} }
} }




+ 5
- 0
mallinkService/src/main/resources/mapper/WxRentContractMapper.xml View File

@@ -235,6 +235,11 @@
select count(*) from wx_rent_contract where tenant_id=#{tenantId} and json_contains(json_extract(rent_info,'$[*].shopId'),concat('"',${shopId},'"')) and status in (2,3,4) select count(*) from wx_rent_contract where tenant_id=#{tenantId} and json_contains(json_extract(rent_info,'$[*].shopId'),concat('"',${shopId},'"')) and status in (2,3,4)
</select> </select>
<select id="selectRentContractByShopId" parameterType="com.iformall.domain.po.WxRentContract"
resultType="com.iformall.domain.po.WxRentContract">
select * from wx_rent_contract where tenant_id=#{tenantId} and json_contains(json_extract(rent_info,'$[*].shopId'),concat('"',${shopId},'"')) and status=#{status} and rent_shop_type =1
</select>
<update id="updateInvalidContract" parameterType="com.iformall.domain.po.WxRentContract"> <update id="updateInvalidContract" parameterType="com.iformall.domain.po.WxRentContract">
update wx_rent_contract set status=#{status} where tenant_id=#{tenantId} and id in(select r.id from ( update wx_rent_contract set status=#{status} where tenant_id=#{tenantId} and id in(select r.id from (
select id from wx_rent_contract where json_contains(json_extract(rent_info,'$[*].shopId'),concat('"',${shopId},'"')) select id from wx_rent_contract where json_contains(json_extract(rent_info,'$[*].shopId'),concat('"',${shopId},'"'))


Loading…
Cancel
Save