| @@ -2,19 +2,19 @@ package com.iformall.controller.contract; | |||||
| import com.iformall.annotation.SystemControllerLog; | import com.iformall.annotation.SystemControllerLog; | ||||
| import com.iformall.common.ErrorCode; | import com.iformall.common.ErrorCode; | ||||
| import com.iformall.common.IdWorker; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.controller.base.BaseController; | import com.iformall.controller.base.BaseController; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| import com.iformall.enums.EnumBillAction; | |||||
| import com.iformall.enums.EnumFromType; | import com.iformall.enums.EnumFromType; | ||||
| import com.iformall.enums.EnumIsPreview; | import com.iformall.enums.EnumIsPreview; | ||||
| import com.iformall.enums.EnumRentStartType; | import com.iformall.enums.EnumRentStartType; | ||||
| import com.iformall.exception.MallinkException; | import com.iformall.exception.MallinkException; | ||||
| import com.iformall.mapper.WxBillActionMapper; | |||||
| import com.iformall.mapper.WxRentContractMapper; | import com.iformall.mapper.WxRentContractMapper; | ||||
| import com.iformall.service.WxBillRentService; | |||||
| import com.iformall.service.WxMerchantService; | |||||
| import com.iformall.service.WxPayAccountBillService; | |||||
| import com.iformall.service.WxRentContractService; | |||||
| import com.iformall.service.*; | |||||
| import com.iformall.utils.DateUtils; | import com.iformall.utils.DateUtils; | ||||
| import io.swagger.annotations.ApiImplicitParam; | import io.swagger.annotations.ApiImplicitParam; | ||||
| import io.swagger.annotations.ApiImplicitParams; | import io.swagger.annotations.ApiImplicitParams; | ||||
| @@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.*; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| import java.math.BigDecimal; | |||||
| import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||
| import java.util.*; | import java.util.*; | ||||
| @@ -48,6 +49,42 @@ public class WxRentContractController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| private WxRentContractMapper wxRentContractMapper; | private WxRentContractMapper wxRentContractMapper; | ||||
| @Autowired | |||||
| private WxBillActionMapper wxBillActionMapper; | |||||
| @Autowired | |||||
| private WxBillPropertyService wxBillPropertyService; | |||||
| @GetMapping("test") | |||||
| @SystemControllerLog(description = "获取两个时间相差,返回n月零n天") | |||||
| public ResultData test(String startDate, String endDate) throws Exception{ | |||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| List<WxBillRent> billRentList = wxBillRentService.findLatePayBill(); | |||||
| for (WxBillRent wxBillRent : billRentList) { | |||||
| WxBillAction billAction = new WxBillAction(); | |||||
| billAction.setId(idWorker.nextId()); | |||||
| billAction.setCreatetime(new Date()); | |||||
| billAction.setUserName("系统端"); | |||||
| billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode()); | |||||
| billAction.setBillId(wxBillRent.getId()); | |||||
| BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); | |||||
| billAction.setDetails("系统计入"+ divide.toString()+"元"); | |||||
| wxBillActionMapper.insertSelective(billAction); | |||||
| } | |||||
| List<WxBillProperty> billPropertyList = wxBillPropertyService.findLatePayBill(); | |||||
| for (WxBillProperty wxBillRent : billPropertyList) { | |||||
| WxBillAction billAction = new WxBillAction(); | |||||
| billAction.setId(idWorker.nextId()); | |||||
| billAction.setCreatetime(new Date()); | |||||
| billAction.setUserName("系统端"); | |||||
| billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode()); | |||||
| billAction.setBillId(wxBillRent.getId()); | |||||
| BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); | |||||
| billAction.setDetails("系统计入"+ divide.toString()+"元"); | |||||
| wxBillActionMapper.insertSelective(billAction); | |||||
| } | |||||
| return new ResultData(); | |||||
| } | |||||
| @GetMapping("getDateDiff") | @GetMapping("getDateDiff") | ||||
| @ApiImplicitParams({ | @ApiImplicitParams({ | ||||
| @ApiImplicitParam(name = "startDate", value = "开始时间", dataType = "string", paramType = "query", required = true), | @ApiImplicitParam(name = "startDate", value = "开始时间", dataType = "string", paramType = "query", required = true), | ||||
| @@ -110,6 +110,10 @@ public class TenantInfoImpl implements TenantInfo { | |||||
| return true; | return true; | ||||
| if ("com.iformall.mapper.WxBusinessMapper.devoteList".equals(ms.getId())) | if ("com.iformall.mapper.WxBusinessMapper.devoteList".equals(ms.getId())) | ||||
| return true; | return true; | ||||
| if ("com.iformall.mapper.WxBillRentMapper.findLatePayBill".equals(ms.getId())) | |||||
| return true; | |||||
| return false; | return false; | ||||
| } | } | ||||
| } | } | ||||
| @@ -0,0 +1,2 @@ | |||||
| alter table wx_bill_action modify `user_id` BIGINT(20) NULL DEFAULT NULL; | |||||
| alter table wx_bill_action modify `phone` VARCHAR(50) NULL DEFAULT NULL; | |||||
| @@ -1,15 +1,20 @@ | |||||
| package com.iformall.schedule; | package com.iformall.schedule; | ||||
| import com.iformall.domain.po.WxMall; | |||||
| import com.iformall.domain.vo.WxBillAll; | |||||
| import com.iformall.mapper.WxMallMapper; | |||||
| import com.iformall.service.WxBillAllService; | |||||
| import com.iformall.common.IdWorker; | |||||
| import com.iformall.domain.po.WxBillAction; | |||||
| import com.iformall.domain.po.WxBillProperty; | |||||
| import com.iformall.domain.po.WxBillRent; | |||||
| import com.iformall.enums.EnumBillAction; | |||||
| import com.iformall.mapper.WxBillActionMapper; | |||||
| import com.iformall.service.WxBillPropertyService; | |||||
| import com.iformall.service.WxBillRentService; | |||||
| import org.slf4j.Logger; | import org.slf4j.Logger; | ||||
| import org.slf4j.LoggerFactory; | import org.slf4j.LoggerFactory; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.scheduling.annotation.Scheduled; | import org.springframework.scheduling.annotation.Scheduled; | ||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||
| import java.math.BigDecimal; | |||||
| import java.util.Date; | |||||
| import java.util.List; | import java.util.List; | ||||
| /** | /** | ||||
| @@ -17,31 +22,50 @@ import java.util.List; | |||||
| */ | */ | ||||
| @Component | @Component | ||||
| public class LatePayBillActionSchedule { | public class LatePayBillActionSchedule { | ||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||||
| @Autowired | @Autowired | ||||
| private WxBillAllService wxBillAllService; | |||||
| private WxBillRentService wxBillRentService; | |||||
| @Autowired | @Autowired | ||||
| private WxMallMapper wxMallMapper; | |||||
| private WxBillPropertyService wxBillPropertyService; | |||||
| @Autowired | |||||
| private WxBillActionMapper wxBillActionMapper; | |||||
| /** | /** | ||||
| * 每天1点执行 | |||||
| * 每天凌晨1点执行 | |||||
| */ | */ | ||||
| @Scheduled(cron = "0 0 1 * * ?") | @Scheduled(cron = "0 0 1 * * ?") | ||||
| public void updateBillStatus() { | public void updateBillStatus() { | ||||
| logger.info("账单状态更新开始"); | |||||
| List<WxMall> wxMalls = wxMallMapper.findList(null); | |||||
| for (WxMall wxMall : wxMalls) { | |||||
| String tenantId = wxMall.getTenantId(); | |||||
| WxBillAll wxBillAll = new WxBillAll(); | |||||
| wxBillAll.setTenantId(tenantId); | |||||
| wxBillAllService.updateBillStatus(wxBillAll); | |||||
| logger.info("账单滞纳金更新开始"); | |||||
| final IdWorker idWorker = IdWorker.get(); | |||||
| List<WxBillRent> billRentList = wxBillRentService.findLatePayBill(); | |||||
| for (WxBillRent wxBillRent : billRentList) { | |||||
| WxBillAction billAction = new WxBillAction(); | |||||
| billAction.setId(idWorker.nextId()); | |||||
| billAction.setCreatetime(new Date()); | |||||
| billAction.setUserName("系统端"); | |||||
| billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode()); | |||||
| billAction.setBillId(wxBillRent.getId()); | |||||
| BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); | |||||
| billAction.setDetails("系统计入"+ divide.toString()+"元"); | |||||
| billAction.setUpdatetime(new Date()); | |||||
| wxBillActionMapper.insertSelective(billAction); | |||||
| } | } | ||||
| logger.info("账单状态更新结束"); | |||||
| List<WxBillProperty> billPropertyList = wxBillPropertyService.findLatePayBill(); | |||||
| for (WxBillProperty wxBillRent : billPropertyList) { | |||||
| WxBillAction billAction = new WxBillAction(); | |||||
| billAction.setId(idWorker.nextId()); | |||||
| billAction.setCreatetime(new Date()); | |||||
| billAction.setUserName("系统端"); | |||||
| billAction.setAction(EnumBillAction.UPDATE_LATE_PAY_MONEY.getCode()); | |||||
| billAction.setBillId(wxBillRent.getId()); | |||||
| BigDecimal divide = new BigDecimal(wxBillRent.getOwe()).multiply(new BigDecimal(wxBillRent.getLatePayRatio())).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP); | |||||
| billAction.setDetails("系统计入"+ divide.toString()+"元"); | |||||
| billAction.setUpdatetime(new Date()); | |||||
| wxBillActionMapper.insertSelective(billAction); | |||||
| } | |||||
| logger.info("账单滞纳金更新结束"); | |||||
| } | } | ||||
| @@ -44,4 +44,6 @@ public interface WxBillPropertyMapper extends CommonMapper<WxBillProperty, Long> | |||||
| void insertBills(List<WxBillProperty> resultList); | void insertBills(List<WxBillProperty> resultList); | ||||
| WxBillProperty selectBillOne(WxBillProperty propertyQuery); | WxBillProperty selectBillOne(WxBillProperty propertyQuery); | ||||
| List<WxBillProperty> findLatePayBill(); | |||||
| } | } | ||||
| @@ -43,4 +43,5 @@ public interface WxBillRentMapper extends CommonMapper<WxBillRent, Long> { | |||||
| WxBillRent selectBillOne(WxBillRent rentQuery); | WxBillRent selectBillOne(WxBillRent rentQuery); | ||||
| List<WxBillRent> findLatePayBill(); | |||||
| } | } | ||||
| @@ -8,6 +8,7 @@ import com.iformall.domain.po.WxBillRent; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| import java.util.List; | |||||
| import java.util.Map; | import java.util.Map; | ||||
| /** | /** | ||||
| @@ -62,4 +63,5 @@ public interface WxBillPropertyService { | |||||
| void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillProperty wxBillProperty); | void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillProperty wxBillProperty); | ||||
| List<WxBillProperty> findLatePayBill(); | |||||
| } | } | ||||
| @@ -63,4 +63,5 @@ public interface WxBillRentService { | |||||
| void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillRent wxBillRent); | void exportBill(HttpServletRequest request, HttpServletResponse response, WxBillRent wxBillRent); | ||||
| List<WxBillRent> findLatePayBill(); | |||||
| } | } | ||||
| @@ -2,6 +2,7 @@ package com.iformall.service; | |||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.WxBillProperty; | import com.iformall.domain.po.WxBillProperty; | ||||
| import com.iformall.domain.po.WxBillRent; | |||||
| import com.iformall.domain.po.WxMerchant; | import com.iformall.domain.po.WxMerchant; | ||||
| import com.iformall.domain.po.WxPropertyContract; | import com.iformall.domain.po.WxPropertyContract; | ||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| @@ -75,4 +76,6 @@ public interface WxPropertyContractService { | |||||
| List<WxBillProperty> buildProperty(WxMerchant wxMerchant, Long userId, WxPropertyContract propertyContract, Integer isPreview,boolean saveDb); | List<WxBillProperty> buildProperty(WxMerchant wxMerchant, Long userId, WxPropertyContract propertyContract, Integer isPreview,boolean saveDb); | ||||
| WxPropertyContract getByBill(WxBillProperty billRent); | WxPropertyContract getByBill(WxBillProperty billRent); | ||||
| } | } | ||||
| @@ -291,4 +291,8 @@ public class WxBillPropertyServiceImpl implements WxBillPropertyService { | |||||
| excelService.exportExcel(datalist, null, billName, WxBillProperty.class, billName + ".xlsx", response, false); | excelService.exportExcel(datalist, null, billName, WxBillProperty.class, billName + ".xlsx", response, false); | ||||
| } | } | ||||
| @Override | |||||
| public List<WxBillProperty> findLatePayBill() { | |||||
| return wxBillPropertyMapper.findLatePayBill(); | |||||
| } | |||||
| } | } | ||||
| @@ -326,4 +326,9 @@ public class WxBillRentServiceImpl implements WxBillRentService { | |||||
| } | } | ||||
| excelService.exportExcel(datalist, null, billName, WxBillRent.class, billName + ".xlsx", response, false); | excelService.exportExcel(datalist, null, billName, WxBillRent.class, billName + ".xlsx", response, false); | ||||
| } | } | ||||
| @Override | |||||
| public List<WxBillRent> findLatePayBill() { | |||||
| return wxBillRentMapper.findLatePayBill(); | |||||
| } | |||||
| } | } | ||||
| @@ -1099,6 +1099,7 @@ public class WxPropertyContractServiceImpl implements WxPropertyContractService | |||||
| public WxPropertyContract getByBill(WxBillProperty billRent) { | public WxPropertyContract getByBill(WxBillProperty billRent) { | ||||
| return wxPropertyContractMapper.getByBill(billRent); | return wxPropertyContractMapper.getByBill(billRent); | ||||
| } | } | ||||
| } | } | ||||
| @@ -224,5 +224,11 @@ | |||||
| AND date_format(starttime,'%Y-%m-%d 00:00:00.0') = #{starttime} AND date_format(endtime,'%Y-%m-%d 00:00:00.0') = #{endtime} | AND date_format(starttime,'%Y-%m-%d 00:00:00.0') = #{starttime} AND date_format(endtime,'%Y-%m-%d 00:00:00.0') = #{endtime} | ||||
| </select> | </select> | ||||
| <select id="findLatePayBill" resultMap="BaseResultMap"> | |||||
| select r.* from wx_bill_property r left join wx_property_contract c on(r.`property_contract_id`=c.id) | |||||
| where c.late_pay_ratio >0 and | |||||
| DATEDIFF(now(),receive_date) >= if(c.late_pay_day=0,1,c.late_pay_day) | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||
| @@ -226,5 +226,10 @@ | |||||
| AND date_format(starttime,'%Y-%m-%d 00:00:00.0') = #{starttime} AND date_format(endtime,'%Y-%m-%d 00:00:00.0') = #{endtime} | AND date_format(starttime,'%Y-%m-%d 00:00:00.0') = #{starttime} AND date_format(endtime,'%Y-%m-%d 00:00:00.0') = #{endtime} | ||||
| </select> | </select> | ||||
| <select id="findLatePayBill" resultMap="BaseResultMap"> | |||||
| select r.* from wx_bill_rent r left join wx_rent_contract c on(r.`rent_contract_id`=c.id) | |||||
| where c.late_pay_ratio >0 and | |||||
| DATEDIFF(now(),receive_date) >= if(c.late_pay_day=0,1,c.late_pay_day) | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||