| @@ -5,9 +5,7 @@ import com.iformall.annotation.SystemControllerLog; | |||
| import com.iformall.common.ResultData; | |||
| import com.iformall.controller.base.BaseController; | |||
| import com.iformall.domain.po.*; | |||
| import com.iformall.enums.EnumBillTypeParam; | |||
| import com.iformall.service.*; | |||
| import com.iformall.utils.DateUtils; | |||
| import io.swagger.annotations.Api; | |||
| import io.swagger.annotations.ApiImplicitParam; | |||
| import io.swagger.annotations.ApiImplicitParams; | |||
| @@ -15,18 +13,11 @@ import io.swagger.annotations.ApiOperation; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.apache.commons.collections.CollectionUtils; | |||
| import org.springframework.web.bind.annotation.GetMapping; | |||
| import org.springframework.web.bind.annotation.ModelAttribute; | |||
| import org.springframework.web.bind.annotation.RequestMapping; | |||
| import org.springframework.web.bind.annotation.RestController; | |||
| import java.text.SimpleDateFormat; | |||
| import java.util.ArrayList; | |||
| import java.util.Calendar; | |||
| import java.util.Date; | |||
| import java.util.List; | |||
| /** | |||
| * @author gongbiao | |||
| */ | |||
| @@ -39,15 +30,8 @@ public class WxBillActionController extends BaseController { | |||
| @Autowired | |||
| private WxBillActionService wxBillActionService; | |||
| @Autowired | |||
| private WxRentContractService wxRentContractService; | |||
| @Autowired | |||
| private WxPropertyContractService wxPropertyContractService; | |||
| @Autowired | |||
| private WxBillRentService wxBillRentService; | |||
| @Autowired | |||
| private WxBillPropertyService wxBillPropertyService; | |||
| @ApiOperation("账单操作记录列表") | |||
| @GetMapping("list") | |||
| @ApiImplicitParams({ | |||
| @ApiImplicitParam(name = "pageNum", value = "页数", dataType = "int", paramType = "query", required = true), | |||
| @@ -63,61 +47,4 @@ public class WxBillActionController extends BaseController { | |||
| PageInfo<WxBillAction> result = wxBillActionService.listAsPage(wxBillAction, pageNum, pageSize); | |||
| return new ResultData(result); | |||
| } | |||
| public void addSysLatePayBillAction(WxBillAction wxBillAction){ | |||
| } | |||
| @ApiOperation("滞纳金变更列表") | |||
| @GetMapping("latePaylist") | |||
| @SystemControllerLog(description = "账单操作记录-滞纳金列表") | |||
| public ResultData latePaylist(@ModelAttribute WxBillAction wxBillAction, Integer pageNum, Integer pageSize) { | |||
| logger.debug("[" + getIpAddr() + "] WxBillActionController::latePaylist"); | |||
| SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); | |||
| if (null == wxBillAction) { | |||
| wxBillAction = new WxBillAction(); | |||
| } | |||
| Date frontDay = DateUtils.getDaySet(new Date(), Calendar.DATE,-1); | |||
| wxBillAction.setBillId(wxBillAction.getBillId()); | |||
| wxBillAction.setStartDate(sdf.format(frontDay)); | |||
| wxBillAction.setEndDate(sdf.format(frontDay)+" 23:59:59"); | |||
| List<WxBillAction> billActionList = wxBillActionService.find(wxBillAction); | |||
| if(CollectionUtils.isEmpty(billActionList)){ | |||
| } | |||
| wxBillAction.setTenantId(getTenantId()); | |||
| wxBillAction.setSortColumns(BaseEntity.SortField.Id_DESC); | |||
| PageInfo<WxBillAction> result = wxBillActionService.listAsPage(wxBillAction, pageNum, pageSize); | |||
| if(result != null && CollectionUtils.isNotEmpty(result.getList())){ | |||
| Date startDate; | |||
| Date endDate = DateUtils.getDaySet(new Date(), Calendar.DATE,-1);; | |||
| if (EnumBillTypeParam.RENT.getCode().equals(result.getList().get(0).getBillType())) { | |||
| WxBillRent billRent = new WxBillRent(); | |||
| billRent.setId(wxBillAction.getBillId()); | |||
| WxRentContract rentContract = wxRentContractService.getByBill(billRent); | |||
| WxBillRent wxBillRent = wxBillRentService.getById(wxBillAction.getBillId()); | |||
| startDate = DateUtils.getDaySet(wxBillRent.getReceiveDate(), Calendar.DATE,rentContract.getLatePayDay()); | |||
| }else if (EnumBillTypeParam.PROPERTY.getCode().equals(result.getList().get(0).getBillType())) { | |||
| WxBillProperty billRent = new WxBillProperty(); | |||
| billRent.setId(wxBillAction.getBillId()); | |||
| WxPropertyContract propertyContract = wxPropertyContractService.getByBill(billRent); | |||
| WxBillProperty wxBillProperty = wxBillPropertyService.getById(wxBillAction.getBillId()); | |||
| startDate = DateUtils.getDaySet(wxBillProperty.getReceiveDate(), Calendar.DATE,propertyContract.getLatePayDay()); | |||
| } | |||
| Date curr = endDate; | |||
| for (WxBillAction action:result.getList()) { | |||
| if(sdf.format(curr).equals(action.getCreatetime())){ | |||
| continue; | |||
| } | |||
| } | |||
| } | |||
| return new ResultData(result); | |||
| } | |||
| } | |||
| @@ -1,2 +0,0 @@ | |||
| ALTER TABLE `wx_bill_action` | |||
| ADD COLUMN `bill_type` INT(2) NULL DEFAULT 0 COMMENT '账单类型'; | |||
| @@ -0,0 +1,48 @@ | |||
| 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 org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.scheduling.annotation.Scheduled; | |||
| import org.springframework.stereotype.Component; | |||
| import java.util.List; | |||
| /** | |||
| * @author luozukai | |||
| */ | |||
| @Component | |||
| public class LatePayBillActionSchedule { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| @Autowired | |||
| private WxBillAllService wxBillAllService; | |||
| @Autowired | |||
| private WxMallMapper wxMallMapper; | |||
| /** | |||
| * 每天1点执行 | |||
| */ | |||
| @Scheduled(cron = "0 0 1 * * ?") | |||
| 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("账单状态更新结束"); | |||
| } | |||
| } | |||
| @@ -23,7 +23,6 @@ public class WxBillAction extends BaseEntity { | |||
| @Transient | |||
| protected List<Long> ids; | |||
| @io.swagger.annotations.ApiModelProperty(value = "租户ID", name = "tenantId") | |||
| private String tenantId; | |||
| @@ -54,9 +53,6 @@ public class WxBillAction extends BaseEntity { | |||
| @io.swagger.annotations.ApiModelProperty(value = "付款时间", name = "payDate") | |||
| private Date payDate; | |||
| @io.swagger.annotations.ApiModelProperty(value = "账单类型", name = "billType") | |||
| private Integer billType; | |||
| @Transient | |||
| private Long oldPrice; | |||
| @@ -58,7 +58,7 @@ public interface WxBillAllService { | |||
| ResultData updateReceivePay(WxBillAll wxBillAll, MallUserInfo user); | |||
| void addBillAction(EnumBillAction billAction, Long billId, Long oldPrice, Long newPrice, MallUserInfo mallUserInfo,Integer billType); | |||
| void addBillAction(EnumBillAction billAction, Long billId, Long oldPrice, Long newPrice, MallUserInfo mallUserInfo); | |||
| void exportTemplate(WxBillExcelTemplate wxBillExcelTemplate, HttpServletRequest request, HttpServletResponse response); | |||
| @@ -63,7 +63,6 @@ public class WxBillActionServiceImpl implements WxBillActionService { | |||
| Date date = new Date(); | |||
| wxBillAction.setCreatetime(date); | |||
| wxBillAction.setUpdatetime(date); | |||
| wxBillAction.setBillType(action.getBillType()); | |||
| return wxBillActionMapper.insertSelective(wxBillAction); | |||
| } | |||
| @@ -784,7 +784,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| if(oldLatePrice != null){ | |||
| wxBillRent.setLatePayPrice(newLatePrice); | |||
| wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent); | |||
| addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY,id, oldPrice, newPrice, user); | |||
| }else{ | |||
| //租赁账单更新 | |||
| wxBillRent.setReceivePay(newPrice); | |||
| @@ -794,7 +794,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| } | |||
| wxBillRentMapper.updateByPrimaryKeySelective(wxBillRent); | |||
| //账单日志 | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user); | |||
| } | |||
| } else if (billType.equals(EnumBillTypeParam.RENT_DEPOSIT.getCode())) { | |||
| WxBillDeposit dbBill = wxBillDepositMapper.selectByPrimaryKey(id); | |||
| @@ -809,7 +809,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| wxBillDeposit.setUpdatetime(updateDate); | |||
| wxBillDepositMapper.updateByPrimaryKeySelective(wxBillDeposit); | |||
| //账单日志 | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user); | |||
| } else if (billType.equals(EnumBillTypeParam.PROPERTY.getCode())) { | |||
| WxBillProperty dbBill = wxBillPropertyMapper.selectByPrimaryKey(id); | |||
| //物业账单更新 | |||
| @@ -819,7 +819,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| if(oldLatePrice != null){ | |||
| wxBillProperty.setLatePayPrice(newLatePrice); | |||
| wxBillPropertyMapper.updateByPrimaryKeySelective(wxBillProperty); | |||
| addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY,id, oldPrice, newPrice, user); | |||
| }else{ | |||
| wxBillProperty.setReceivePay(newPrice); | |||
| wxBillProperty.setOwe(newPrice - dbBill.getPay()); | |||
| @@ -828,7 +828,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| } | |||
| wxBillPropertyMapper.updateByPrimaryKeySelective(wxBillProperty); | |||
| //账单日志 | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user); | |||
| } | |||
| } else if (billType.equals(EnumBillTypeParam.PROPERTY_DEPOSIT.getCode())) { | |||
| WxBillPropertyDeposit dbBill = wxBillPropertyDepositMapper.selectByPrimaryKey(id); | |||
| @@ -843,22 +843,22 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| wxBillPropertyDeposit.setUpdatetime(updateDate); | |||
| wxBillPropertyDepositMapper.updateByPrimaryKeySelective(wxBillPropertyDeposit); | |||
| //账单日志 | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user); | |||
| } else if (billType.equals(EnumBillTypeParam.WATER.getCode())) { | |||
| //水费账单更新 | |||
| updateDailyBill(id, newPrice, updateDate); | |||
| //账单日志 | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user); | |||
| } else if (billType.equals(EnumBillTypeParam.POWER.getCode())) { | |||
| //电费账单更新 | |||
| updateDailyBill(id, newPrice, updateDate); | |||
| //账单日志 | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user); | |||
| } else if (billType.equals(EnumBillTypeParam.AIR_CONDITIONING.getCode())) { | |||
| //空调费账单更新 | |||
| updateDailyBill(id, newPrice, updateDate); | |||
| //账单日志 | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user); | |||
| } else if (billType.equals(EnumBillTypeParam.ROUTINE.getCode())) { | |||
| WxBillOther dbBill = wxBillOtherMapper.selectByPrimaryKey(id); | |||
| //其他费用账单更新 | |||
| @@ -872,7 +872,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| wxBillOther.setUpdatetime(updateDate); | |||
| wxBillOtherMapper.updateByPrimaryKeySelective(wxBillOther); | |||
| //账单日志 | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user); | |||
| } else if (billType.equals(EnumBillTypeParam.ATHER_DEPOSIT.getCode())) { | |||
| WxBillOtherDeposit dbBill = wxBillOtherDepositMapper.selectByPrimaryKey(id); | |||
| //其他押金账单更新 | |||
| @@ -886,7 +886,7 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| wxBillOtherDeposit.setUpdatetime(updateDate); | |||
| wxBillOtherDepositMapper.updateByPrimaryKeySelective(wxBillOtherDeposit); | |||
| //账单日志 | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user,billType); | |||
| addBillAction(EnumBillAction.UPDATE_BILL,id, oldPrice, newPrice, user); | |||
| } else { | |||
| logger.info("未找到账单类型"); | |||
| } | |||
| @@ -894,14 +894,13 @@ public class WxBillAllServiceImpl implements WxBillAllService { | |||
| } | |||
| @Override | |||
| public void addBillAction(EnumBillAction billAction,Long billId, Long oldPrice, Long newPrice, MallUserInfo mallUserInfo,Integer billType) { | |||
| public void addBillAction(EnumBillAction billAction,Long billId, Long oldPrice, Long newPrice, MallUserInfo mallUserInfo) { | |||
| WxBillAction wxBillAction = new WxBillAction(); | |||
| wxBillAction.setBillId(billId); | |||
| String oldPriceStr = new BigDecimal(oldPrice).divide(new BigDecimal(100)).toPlainString(); | |||
| String newPriceStr = new BigDecimal(newPrice).divide(new BigDecimal(100)).toPlainString(); | |||
| wxBillAction.setDetails(oldPriceStr + "元变更成" + newPriceStr + "元"); | |||
| wxBillAction.setAction(billAction.getCode()); | |||
| wxBillAction.setBillType(billType); | |||
| wxBillActionService.modifyBill(wxBillAction, mallUserInfo); | |||
| } | |||
| @@ -13,11 +13,10 @@ | |||
| <result column="createtime" jdbcType="TIMESTAMP" property="createtime"/> | |||
| <result column="updatetime" jdbcType="TIMESTAMP" property="updatetime"/> | |||
| <result column="pay_date" jdbcType="TIMESTAMP" property="payDate"/> | |||
| <result column="bill_type" property="billType"/> | |||
| </resultMap> | |||
| <sql id="allColumns"> | |||
| `id`,`tenant_id`,`bill_id`,`user_id`,`user_name`,`phone`,`action`,`details`,`createtime`,`updatetime`,`pay_date`,bill_type | |||
| `id`,`tenant_id`,`bill_id`,`user_id`,`user_name`,`phone`,`action`,`details`,`createtime`,`updatetime`,`pay_date` | |||
| </sql> | |||