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

[合同管理][添加][相关业务]

release_toaliyun_real
gongbiao 7 лет назад
Родитель
Сommit
63776c6f52
5 измененных файлов: 90 добавлений и 23 удалений
  1. +11
    -9
      mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java
  2. +8
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java
  3. +4
    -3
      mallinkService/src/main/java/com/iformall/service/WxRentContractService.java
  4. +45
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java
  5. +22
    -7
      mallinkService/src/main/resources/mapper/WxRentContractMapper.xml

+ 11
- 9
mallinkAdmin/src/main/java/com/iformall/controller/WxRentContractController.java Просмотреть файл

@@ -1,6 +1,5 @@
package com.iformall.controller;

import com.github.pagehelper.PageInfo;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxRentContract;
@@ -10,7 +9,6 @@ import io.swagger.annotations.ApiImplicitParams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
@@ -36,23 +34,21 @@ public class WxRentContractController extends BaseController {
if (null == wxRentContract) {
wxRentContract = new WxRentContract();
}
final PageInfo<Map<String, Object>> page = wxRentContractService.listAsPage(wxRentContract, pageNum, pageSize);
return new ResultData(page);
wxRentContract.setTenantId(Integer.valueOf(getTenantId()));
Map<String, Object> result = wxRentContractService.listAsPage(wxRentContract, pageNum, pageSize);
return new ResultData(result);
}

@Transactional(rollbackFor = {Exception.class})
@PostMapping("add")
public ResultData add(@RequestBody WxRentContract wxRentContract) {
return wxRentContractService.saveOrUpdate(wxRentContract);
}

@Transactional(rollbackFor = {Exception.class})
@PostMapping("update")
public ResultData update(@RequestBody WxRentContract wxRentContract) {
return wxRentContractService.saveOrUpdate(wxRentContract);
}

@Transactional(rollbackFor = {Exception.class})
@GetMapping("/del")
@ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true)
public ResultData delete(String id) {
@@ -60,8 +56,8 @@ public class WxRentContractController extends BaseController {
}

@GetMapping("/findById")
@ApiImplicitParam(name = "id", value = "id", dataType = "String", paramType = "query", required = true)
public ResultData findById(String id) {
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
public ResultData findById(Long id) {
return new ResultData(Result.SUCCESS, "查询成功", wxRentContractService.getById(id));
}

@@ -75,4 +71,10 @@ public class WxRentContractController extends BaseController {
return new ResultData(Result.SUCCESS, "查询成功", wxRentContractService.getRentContractStatusInfo(getTenantId()));
}

@GetMapping("/endRentContract")
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
public ResultData endRentContract(Long id) {
return wxRentContractService.endRentContract(id);
}

}

+ 8
- 0
mallinkService/src/main/java/com/iformall/mapper/WxRentContractMapper.java Просмотреть файл

@@ -21,4 +21,12 @@ public interface WxRentContractMapper extends CommonMapper<WxRentContract, Strin

int queryRentContractPaidStatus(WxRentContract wxRentContract);

int queryRentContractEndStatus(WxRentContract wxRentContract);

int updateRentContractEndSoonStatus(WxRentContract wxRentContract);

int updateRentContractPaidStatus(WxRentContract wxRentContract);

int updateRentContractEndStatus(WxRentContract wxRentContract);

}

+ 4
- 3
mallinkService/src/main/java/com/iformall/service/WxRentContractService.java Просмотреть файл

@@ -1,6 +1,5 @@
package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxRentContract;

@@ -21,7 +20,7 @@ public interface WxRentContractService {
* @param record
* @return
*/
PageInfo<Map<String, Object>> listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize);
Map<String, Object> listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize);
/**
* 根据Id获得实体
@@ -29,7 +28,7 @@ public interface WxRentContractService {
* @param id
* @return
*/
WxRentContract getById(String id);
WxRentContract getById(Long id);
/**
* 保存或更新实体
@@ -50,4 +49,6 @@ public interface WxRentContractService {

Object getRentContractStatusInfo(String tenantId);

ResultData endRentContract(Long id);

}

+ 45
- 4
mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java Просмотреть файл

@@ -17,6 +17,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -41,19 +42,24 @@ public class WxRentContractServiceImpl implements WxRentContractService {
WxShopMapper wxShopMapper;

@Override
public PageInfo<Map<String, Object>> listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize) {
public Map<String, Object> listAsPage(WxRentContract record, Integer pageIndex, Integer pageSize) {
Object rentContractStatusInfo = getRentContractStatusInfo(record.getTenantId().toString());
PageHelper.startPage(pageIndex, pageSize);
List<Map<String, Object>> rentContractData = wxRentContractMapper.queryRentContractData(record);
PageInfo<Map<String, Object>> pageInfo = new PageInfo<>(rentContractData);
return pageInfo;
Map<String,Object> result =new HashMap<>();
result.put("rentContractStatusInfo",rentContractStatusInfo);
result.put("pageInfo",pageInfo);
return result;
//return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxRentContractMapper.findList(record));
}

@Override
public WxRentContract getById(String id) {
public WxRentContract getById(Long id) {
return wxRentContractMapper.selectByPrimaryKey(id);
}

@Transactional(rollbackFor = {Exception.class})
@Override
public ResultData saveOrUpdate(WxRentContract record) {
//保存租赁合同信息
@@ -83,6 +89,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {

}

@Transactional(rollbackFor = {Exception.class})
@Override
public ResultData deleteById(String id) {
wxRentContractMapper.deleteByPrimaryKey(id);
@@ -98,6 +105,7 @@ public class WxRentContractServiceImpl implements WxRentContractService {

}

@Transactional(rollbackFor = {Exception.class})
@Override
public Object getRentContractStatusInfo(String tenantId) {

@@ -114,12 +122,45 @@ public class WxRentContractServiceImpl implements WxRentContractService {
wxRentContract.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode());
int waitSignCount=wxRentContractMapper.queryRentContractWaitSignStatus(wxRentContract);
resultData.put("waitSignCount",waitSignCount);
//需要更新的状态
resultData.putAll(updateStatus(tenantId));
return resultData;
}

@Transactional(rollbackFor = {Exception.class})
@Override
public ResultData endRentContract(Long id) {

WxRentContract wxRentContract = wxRentContractMapper.selectByPrimaryKey(id);
wxRentContract.setStatus(EnumRentContractStatus.SIGNED_RENT_UNPAID.getCode());
try {
wxRentContractMapper.updateByPrimaryKeySelective(wxRentContract);
}catch (MallinkException e){
logger.info("终止合同失败:"+e.getMessage());
throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage());
}
return new ResultData(Result.SUCCESS, "操作成功");
}

public Map<String,Object> updateStatus(String tenantId){
Map<String,Object> resultData=new HashMap();
WxRentContract wxRentContract = new WxRentContract();
wxRentContract.setTenantId(Integer.valueOf(tenantId));
//将到期
wxRentContract.setStatus(EnumRentContractStatus.CONTRACT_END_SOON.getCode());
int endSoonCount=wxRentContractMapper.queryRentContractEndSoonStatus(wxRentContract);
wxRentContractMapper.updateRentContractEndSoonStatus(wxRentContract);
resultData.put("endSoonCount",endSoonCount);
//计租中
int rendPaidCount=wxRentContractMapper.queryRentContractPaidStatus(wxRentContract);
wxRentContract.setStatus(EnumRentContractStatus.RENT_PAID.getCode());
int rendPaidCount =wxRentContractMapper.queryRentContractPaidStatus(wxRentContract);
wxRentContractMapper.updateRentContractPaidStatus(wxRentContract);
resultData.put("rendPaidCount",rendPaidCount);
//到期
wxRentContract.setStatus(EnumRentContractStatus.CONTRACT_END.getCode());
int endCount=wxRentContractMapper.queryRentContractEndStatus(wxRentContract);
wxRentContractMapper.updateRentContractEndStatus(wxRentContract);
resultData.put("endCount",endCount);

return resultData;
}


+ 22
- 7
mallinkService/src/main/resources/mapper/WxRentContractMapper.xml Просмотреть файл

@@ -72,7 +72,7 @@
</select>
<select id="queryRentContractData" resultType="hashmap" parameterType="com.iformall.domain.po.WxRentContract">
select rc.merchant_name,rc.rental_start_date,rc.rental_end_date,rc.`status`,
select rc.id,rc.merchant_name,rc.rental_start_date,rc.rental_end_date,rc.`status`,
rc.price,rc.contract_number,s.shop_number,f.floor_name,b.building_name
from wx_rent_contract rc
left join wx_shop s on rc.shop_id=s.id
@@ -83,20 +83,35 @@
<if test=" null != shopNumber ">and s.`shop_number` like concat('%',#{shopNumber},'%')</if>
<if test=" null != status ">and rc.`status` = #{status}</if>
</where>
order by id desc
order by rc.id desc
</select>
<select id="queryRentContractWaitSignStatus" resultType="int" parameterType="com.iformall.domain.po.WxRentContract">
select count(id) from wx_rent_contract where tenant_id=#{tenantId} and status=#{status}
</select>
<select id="queryRentContractEndSoonStatus" resultType="int">
<select id="queryRentContractEndSoonStatus" resultType="int" parameterType="com.iformall.domain.po.WxRentContract">
select count(id) from wx_rent_contract where tenant_id=#{tenantId} and DATEDIFF(rental_end_date,now()) &lt;= 30
</select>
<select id="queryRentContractPaidStatus" resultType="int">
select count(id) from wx_rent_contract where rental_start_date &lt;= now() and rental_end_date >= now()
<select id="queryRentContractPaidStatus" resultType="int" parameterType="com.iformall.domain.po.WxRentContract">
select count(id) from wx_rent_contract where tenant_id=#{tenantId} and rental_start_date &lt;= now() and rental_end_date >= now()
</select>


<select id="queryRentContractEndStatus" resultType="int" parameterType="com.iformall.domain.po.WxRentContract">
select count(id) from wx_rent_contract where tenant_id=#{tenantId} and rental_end_date &lt;now()
</select>
<update id="updateRentContractEndSoonStatus" parameterType="com.iformall.domain.po.WxRentContract">
update wx_rent_contract set status=#{status} where tenant_id=#{tenantId} and status!=#{status} and status!=1 and DATEDIFF(rental_end_date,now()) &lt;= 30
</update>
<update id="updateRentContractPaidStatus" parameterType="com.iformall.domain.po.WxRentContract">
update wx_rent_contract set status=#{status} where tenant_id=#{tenantId} and status!=#{status} and status!=1 and rental_start_date &lt;= now() and rental_end_date >= now()
</update>
<update id="updateRentContractEndStatus" parameterType="com.iformall.domain.po.WxRentContract">
update wx_rent_contract set status=#{status} where tenant_id=#{tenantId} and status!=#{status} and status!=1 and rental_end_date &lt;now()
</update>
</mapper>

Загрузка…
Отмена
Сохранить