winter пре 1 година
родитељ
комит
45d778567a
8 измењених фајлова са 123 додато и 54 уклоњено
  1. +2
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java
  2. +0
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/sys/WxUserDataRuleController.java
  3. +1
    -1
      mallinkService/src/main/java/com/iformall/domain/dto/WxBillPayDTO.java
  4. +3
    -3
      mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java
  5. +23
    -13
      mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java
  6. +6
    -10
      mallinkService/src/main/java/com/iformall/service/impl/WxBillBaseService.java
  7. +86
    -23
      mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java
  8. +2
    -1
      mallinkService/src/main/java/com/iformall/service/payBill/impl/PayBillBaseService.java

+ 2
- 1
mallinkAdmin/src/main/java/com/iformall/controller/rent/WxAllBillController.java Прегледај датотеку

@@ -521,7 +521,8 @@ public class WxAllBillController extends BillBaseController {
if (null == payWay) { if (null == payWay) {
return new ResultData(Result.ERROR,"支付方式未查询到"); return new ResultData(Result.ERROR,"支付方式未查询到");
} }
dto.setPayWayObject(payWay);
dto.setPayWay(payWay.getId());
dto.setPayWayName(payWay.getName());
billAllHelper.updatePay(dto, getUser()); billAllHelper.updatePay(dto, getUser());
return new ResultData(); return new ResultData();
//return wxBillAllService.updateReceivePay(wxBillAll, getUser(),false); //return wxBillAllService.updateReceivePay(wxBillAll, getUser(),false);


+ 0
- 2
mallinkAdmin/src/main/java/com/iformall/controller/sys/WxUserDataRuleController.java Прегледај датотеку

@@ -39,7 +39,6 @@ public class WxUserDataRuleController extends BaseController {


@ApiOperation("编辑") @ApiOperation("编辑")
@PostMapping("/modify") @PostMapping("/modify")
@SystemControllerLog(description = "用户数据权限-新增")
public ResultData modify(@RequestBody WxUserDataRule wxUserDataRule) { public ResultData modify(@RequestBody WxUserDataRule wxUserDataRule) {
logger.debug("[" + getIpAddr() + "] wxDataRuleTarget::modify"); logger.debug("[" + getIpAddr() + "] wxDataRuleTarget::modify");
MallUserInfo currentUser = getUser(); MallUserInfo currentUser = getUser();
@@ -55,7 +54,6 @@ public class WxUserDataRuleController extends BaseController {
@ApiOperation("根据用户ID查看") @ApiOperation("根据用户ID查看")
@GetMapping("/findByUserId") @GetMapping("/findByUserId")
@ApiImplicitParam(name = "userId", value = "userId", dataType = "Long", paramType = "query", required = true) @ApiImplicitParam(name = "userId", value = "userId", dataType = "Long", paramType = "query", required = true)
@SystemControllerLog(description = "用户数据权限-根据用户ID查看")
public ResultData findByUserId(Long userId) { public ResultData findByUserId(Long userId) {
logger.debug("[" + getIpAddr() + "] wxDataRuleTarget::modify"); logger.debug("[" + getIpAddr() + "] wxDataRuleTarget::modify");
WxUserDataRule wxUserDataRule = wxUserDataRuleService.findByUserId(userId); WxUserDataRule wxUserDataRule = wxUserDataRuleService.findByUserId(userId);


+ 1
- 1
mallinkService/src/main/java/com/iformall/domain/dto/WxBillPayDTO.java Прегледај датотеку

@@ -17,8 +17,8 @@ public class WxBillPayDTO extends TenantEntity{
private String addpay;//支付金额 private String addpay;//支付金额
private String payToMerchant;//支付给商户金额 private String payToMerchant;//支付给商户金额
private String setOff="0";//冲抵金额 private String setOff="0";//冲抵金额
private WxBillPayWay payWayObject;//支付方式
private Long payWay;//传值 private Long payWay;//传值
private String payWayName;//传值
private String remark; private String remark;
private String image; private String image;
} }

+ 3
- 3
mallinkService/src/main/java/com/iformall/enums/EnumBillAction.java Прегледај датотеку

@@ -46,18 +46,18 @@ public enum EnumBillAction {
return message; return message;
} }
public String getDescription(String oldMoney,String newMoney,String setoffMoney,WxBillPayWay payWay,EnumBillStatus oldStatus,EnumBillStatus newStatus) {
public String getDescription(String oldMoney,String newMoney,String setoffMoney,String payWay,EnumBillStatus oldStatus,EnumBillStatus newStatus) {
StringBuffer sb = new StringBuffer("[").append(this.message).append("]"); StringBuffer sb = new StringBuffer("[").append(this.message).append("]");
if (code.intValue() == SELF_SERVICE_PAY.code.intValue()) { if (code.intValue() == SELF_SERVICE_PAY.code.intValue()) {
if (null != payWay) { if (null != payWay) {
sb.append(payWay.getName()).append("支付");
sb.append(payWay).append("支付");
} }
sb.append(newMoney).append("元"); sb.append(newMoney).append("元");
}else if (code.intValue() == UPDATE_BILL.code.intValue()) { }else if (code.intValue() == UPDATE_BILL.code.intValue()) {
sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元"); sb.append("应付金额").append(oldMoney).append("元变更成").append(newMoney).append("元");
}else if (code.intValue() == OFFLINE_PAY.code.intValue()) { }else if (code.intValue() == OFFLINE_PAY.code.intValue()) {
if (null != payWay) { if (null != payWay) {
sb.append(payWay.getName()).append("支付");
sb.append(payWay).append("支付");
} }
sb.append(newMoney).append("元"); sb.append(newMoney).append("元");
if (StringUtils.isNotBlank(setoffMoney) && new BigDecimal(setoffMoney).compareTo(new BigDecimal(0)) > 0 ) { if (StringUtils.isNotBlank(setoffMoney) && new BigDecimal(setoffMoney).compareTo(new BigDecimal(0)) > 0 ) {


+ 23
- 13
mallinkService/src/main/java/com/iformall/service/impl/WxAllBillServiceImpl.java Прегледај датотеку

@@ -236,7 +236,7 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
wxBillRent.setLastOweCallUser(user.getName()+"(账号:"+user.getUsername()+")"); wxBillRent.setLastOweCallUser(user.getName()+"(账号:"+user.getUsername()+")");
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
this.addBillAction(EnumBillAction.NOTIFY, dto.getBillTypeValue(),dto.getId(), this.addBillAction(EnumBillAction.NOTIFY, dto.getBillTypeValue(),dto.getId(),
null, null,null,null,null,dto.getRemark(),null,null, user);
null, null,null,null,null,null,dto.getRemark(),null,null, user);
} }
@Override @Override
@@ -253,23 +253,25 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); wxBillRent.setStatus(EnumBillStatus.PAID.getCode());
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
String remark = StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单被强制为支付完成,自动归结为结清。"; String remark = StringUtils.trimToEmpty(dto.getRemark())+ ";【系统】账单被强制为支付完成,自动归结为结清。";
this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), dbBill.getPay(), dbBill.getPay(),null,null,null,remark,null,null, user);
this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), dbBill.getPay(), dbBill.getPay(),null,null,null,null,remark,null,null, user);
}else { }else {
if (StringUtils.isNotBlank(dto.getOldLatePrice()) && StringUtils.isNotBlank(dto.getNewLatePrice())) { if (StringUtils.isNotBlank(dto.getOldLatePrice()) && StringUtils.isNotBlank(dto.getNewLatePrice())) {
wxBillRent.setBillLatePay(dto.getNewLatePrice()); wxBillRent.setBillLatePay(dto.getNewLatePrice());
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
this.addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY, dto.getBillTypeValue(), dto.getId(), this.addBillAction(EnumBillAction.UPDATE_LATE_PAY_MONEY, dto.getBillTypeValue(), dto.getId(),
dto.getOldLatePrice(), dto.getNewLatePrice(),null,null,null,dto.getRemark(),null,null, user);
dto.getOldLatePrice(), dto.getNewLatePrice(),null,null,null,null,dto.getRemark(),null,null, user);
}else if (StringUtils.isNotBlank(dto.getServiceChargePayBefore()) && StringUtils.isNotBlank(dto.getServiceChargePayUpdate())) { }else if (StringUtils.isNotBlank(dto.getServiceChargePayBefore()) && StringUtils.isNotBlank(dto.getServiceChargePayUpdate())) {
wxBillRent.setServiceChargePay(dto.getServiceChargePayUpdate()); wxBillRent.setServiceChargePay(dto.getServiceChargePayUpdate());
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
this.addBillAction(EnumBillAction.UPDATE_SERVICE_MONEY, dto.getBillTypeValue(), dto.getId(), this.addBillAction(EnumBillAction.UPDATE_SERVICE_MONEY, dto.getBillTypeValue(), dto.getId(),
dto.getServiceChargePayBefore(), dto.getServiceChargePayUpdate(),null,null,null,dto.getRemark(),null,null, user);
dto.getServiceChargePayBefore(), dto.getServiceChargePayUpdate(),null,null,null,null,dto.getRemark(),null,null, user);
}else { }else {
//租赁账单更新 //租赁账单更新
wxBillRent.setReceivePay(dto.getNewPrice()); wxBillRent.setReceivePay(dto.getNewPrice());
Date payDate = null; Date payDate = null;
WxBillPayWay payWay = null; WxBillPayWay payWay = null;
Long paywayId = null;
String paywayname = null;
String remark = StringUtils.trimToEmpty(dto.getRemark()); String remark = StringUtils.trimToEmpty(dto.getRemark());
if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) <= 0) { if (new BigDecimal(dto.getNewPrice()).compareTo(new BigDecimal(dbBill.getPay())) <= 0) {
wxBillRent.setStatus(EnumBillStatus.PAID.getCode()); wxBillRent.setStatus(EnumBillStatus.PAID.getCode());
@@ -279,8 +281,12 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
} }
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
//账单日志 //账单日志
if (null != payWay) {
paywayId = payWay.getId();
paywayname = payWay.getName();
}
this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(), this.addBillAction(EnumBillAction.UPDATE_BILL, dto.getBillTypeValue(),dto.getId(),
dto.getOldPrice(), dto.getNewPrice(),null,payDate,payWay,remark,null,null, user);
dto.getOldPrice(), dto.getNewPrice(),null,payDate,paywayId,paywayname,remark,null,null, user);
} }
} }
} }
@@ -289,8 +295,9 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
public void updatePay(WxBillPayDTO dto, MallUserInfo user) { public void updatePay(WxBillPayDTO dto, MallUserInfo user) {
WxAllBill wxBillRent = updateBillPay(dto); WxAllBill wxBillRent = updateBillPay(dto);
EnumBillAction action = EnumBillAction.OFFLINE_PAY; EnumBillAction action = EnumBillAction.OFFLINE_PAY;
this.addBillAction(action, dto.getBillTypeValue(),dto.getId(),
dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user);
this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), dto.getAddpay(), dto.getAddpay(),
dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWay(),dto.getPayWayName(),
dto.getRemark(),null,null, user);
} }
private WxAllBill updateBillPay(WxBillPayDTO dto) { private WxAllBill updateBillPay(WxBillPayDTO dto) {
@@ -369,7 +376,7 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
} }
wxBillRent.setSetOff(new BigDecimal(oldSetOff).add(remainSetoff).toPlainString()); wxBillRent.setSetOff(new BigDecimal(oldSetOff).add(remainSetoff).toPlainString());
wxBillRent.setPayDate(new Date()); wxBillRent.setPayDate(new Date());
wxBillRent.setPayWay(dto.getPayWayObject().getId());
wxBillRent.setPayWay(dto.getPayWay());
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
dto.setRemark(sb.toString()); dto.setRemark(sb.toString());
return wxBillRent; return wxBillRent;
@@ -385,7 +392,8 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
action = EnumBillAction.OFFLINE_PAY; action = EnumBillAction.OFFLINE_PAY;
} }
this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), this.addBillAction(action, dto.getBillTypeValue(),dto.getId(),
dto.getAddpay(), dto.getAddpay(),null,wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user);
dto.getAddpay(), dto.getAddpay(),null,wxBillRent.getPayDate(),dto.getPayWay(),dto.getPayWayName(),
dto.getRemark(),null,null, user);
} }
@Override @Override
@@ -425,7 +433,8 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
this.addBillAction(EnumBillAction.RETURN, dto.getBillTypeValue(),dto.getId(), this.addBillAction(EnumBillAction.RETURN, dto.getBillTypeValue(),dto.getId(),
dto.getAddpay(), dto.getAddpay(),null,wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user);
dto.getAddpay(), dto.getAddpay(),null,wxBillRent.getPayDate(),dto.getPayWay(),dto.getPayWayName(),
dto.getRemark(),null,null, user);
} }
@Override @Override
@@ -441,7 +450,7 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
String badMoney = dbBill.getOwe(); String badMoney = dbBill.getOwe();
this.addBillAction(EnumBillAction.BAD, dto.getBillTypeValue(),dto.getId(), this.addBillAction(EnumBillAction.BAD, dto.getBillTypeValue(),dto.getId(),
badMoney, badMoney,null,null,null,dto.getRemark(),null,null, user);
badMoney, badMoney,null,null,null,null,dto.getRemark(),null,null, user);
} }
@Override @Override
@@ -518,7 +527,8 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
EnumBillAction action = EnumBillAction.RETURN; EnumBillAction action = EnumBillAction.RETURN;
this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), this.addBillAction(action, dto.getBillTypeValue(),dto.getId(),
dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWayObject(),dto.getRemark(),null,null, user);
dto.getAddpay(), dto.getAddpay(),dto.getSetOff(),wxBillRent.getPayDate(),dto.getPayWay(),dto.getPayWayName(),
dto.getRemark(),null,null, user);
} }
@Override @Override
@@ -536,7 +546,7 @@ public class WxAllBillServiceImpl extends WxBillBaseService implements WxAllBill
wxAllBillMapper.updateById(wxBillRent); wxAllBillMapper.updateById(wxBillRent);
EnumBillAction action = EnumBillAction.RETURN; EnumBillAction action = EnumBillAction.RETURN;
this.addBillAction(action, dto.getBillTypeValue(),dto.getId(), this.addBillAction(action, dto.getBillTypeValue(),dto.getId(),
oldreturnPay.toPlainString(), dto.getPayToMerchant(),null,null,null,dto.getRemark(),null,null, user);
oldreturnPay.toPlainString(), dto.getPayToMerchant(),null,null,null,null,dto.getRemark(),null,null, user);
} }
@Override @Override


+ 6
- 10
mallinkService/src/main/java/com/iformall/service/impl/WxBillBaseService.java Прегледај датотеку

@@ -24,35 +24,31 @@ public class WxBillBaseService{
@Autowired @Autowired
private WxBillActionService wxBillActionService; private WxBillActionService wxBillActionService;


protected void addBillAction(EnumBillAction billAction, Integer billType,Long billId, String oldMoney, String newMoney,String setoff,Date payDate,WxBillPayWay payWay,String remark, EnumBillStatus oldStatus,EnumBillStatus newStatus,MallUserInfo mallUserInfo) {
protected void addBillAction(EnumBillAction billAction, Integer billType,Long billId, String oldMoney, String newMoney,String setoff,Date payDate,Long payWayId,String payWayName,String remark, EnumBillStatus oldStatus,EnumBillStatus newStatus,MallUserInfo mallUserInfo) {
WxBillAction wxBillAction = new WxBillAction(); WxBillAction wxBillAction = new WxBillAction();
wxBillAction.setBillId(billId); wxBillAction.setBillId(billId);
wxBillAction.setBillType(billType); wxBillAction.setBillType(billType);
wxBillAction.setOldMoney(oldMoney); wxBillAction.setOldMoney(oldMoney);
wxBillAction.setNewMoney(newMoney); wxBillAction.setNewMoney(newMoney);
wxBillAction.setDetails(billAction.getDescription(oldMoney, newMoney,setoff,payWay,oldStatus,newStatus));
wxBillAction.setDetails(billAction.getDescription(oldMoney, newMoney,setoff,payWayName,oldStatus,newStatus));
wxBillAction.setAction(billAction.getCode()); wxBillAction.setAction(billAction.getCode());
wxBillAction.setPayDate(payDate); wxBillAction.setPayDate(payDate);
if (null != payWay) {
wxBillAction.setPayWay(payWay.getId());
}
wxBillAction.setPayWay(payWayId);
wxBillAction.setRemark(remark); wxBillAction.setRemark(remark);
wxBillAction.setUserType(EnumSystemUserType.ADMIN.getCode()); wxBillAction.setUserType(EnumSystemUserType.ADMIN.getCode());
wxBillActionService.modifyBill(wxBillAction, mallUserInfo); wxBillActionService.modifyBill(wxBillAction, mallUserInfo);
} }
protected void addBillAction(EnumBillAction billAction, Integer billType,Long billId, String oldMoney, String newMoney,String setoff,Date payDate,WxBillPayWay payWay,String remark,EnumBillStatus oldStatus,EnumBillStatus newStatus, WxMerchantBUser bUser) {
protected void addBillAction(EnumBillAction billAction, Integer billType,Long billId, String oldMoney, String newMoney,String setoff,Date payDate,Long payWayId,String payWayName,String remark,EnumBillStatus oldStatus,EnumBillStatus newStatus, WxMerchantBUser bUser) {
WxBillAction wxBillAction = new WxBillAction(); WxBillAction wxBillAction = new WxBillAction();
wxBillAction.setBillId(billId); wxBillAction.setBillId(billId);
wxBillAction.setBillType(billType); wxBillAction.setBillType(billType);
wxBillAction.setOldMoney(oldMoney); wxBillAction.setOldMoney(oldMoney);
wxBillAction.setNewMoney(newMoney); wxBillAction.setNewMoney(newMoney);
wxBillAction.setDetails(billAction.getDescription(oldMoney, newMoney,setoff,payWay,oldStatus,newStatus));
wxBillAction.setDetails(billAction.getDescription(oldMoney, newMoney,setoff,payWayName,oldStatus,newStatus));
wxBillAction.setAction(billAction.getCode()); wxBillAction.setAction(billAction.getCode());
wxBillAction.setPayDate(payDate); wxBillAction.setPayDate(payDate);
if (null != payWay) {
wxBillAction.setPayWay(payWay.getId());
}
wxBillAction.setPayWay(payWayId);
wxBillAction.setRemark(remark); wxBillAction.setRemark(remark);
wxBillAction.setUserType(EnumSystemUserType.MERCHANT.getCode()); wxBillAction.setUserType(EnumSystemUserType.MERCHANT.getCode());
wxBillActionService.modifyBill(wxBillAction, bUser); wxBillActionService.modifyBill(wxBillAction, bUser);


+ 86
- 23
mallinkService/src/main/java/com/iformall/service/impl/WxFinanceServiceImpl.java Прегледај датотеку

@@ -554,7 +554,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
//单保存冲抵的时候,实收金额为0 //单保存冲抵的时候,实收金额为0
BigDecimal receiveTotal = new BigDecimal(0); BigDecimal receiveTotal = new BigDecimal(0);
WxBillPayWay payWay0 = null;
//WxBillPayWay payWay0 = null;
final IdWorker idWorker = IdWorker.get(); final IdWorker idWorker = IdWorker.get();
Long receiveId = idWorker.nextId(); Long receiveId = idWorker.nextId();
List<WxFinanceReceivePayway> receivePayWayList = new ArrayList<WxFinanceReceivePayway>(); List<WxFinanceReceivePayway> receivePayWayList = new ArrayList<WxFinanceReceivePayway>();
@@ -567,14 +567,12 @@ public class WxFinanceServiceImpl implements WxFinanceService {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"收款方式不能为空"); throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(),"收款方式不能为空");
} }
receiveTotal = receiveTotal.add(new BigDecimal(payWay.getMoney())); receiveTotal = receiveTotal.add(new BigDecimal(payWay.getMoney()));
if (null == payWay0) {
payWay0 = payWay;
}
WxFinanceReceivePayway rpw = new WxFinanceReceivePayway(); WxFinanceReceivePayway rpw = new WxFinanceReceivePayway();
rpw.updateTenantInfo(record); rpw.updateTenantInfo(record);
rpw.setReceiveId(receiveId); rpw.setReceiveId(receiveId);
rpw.setReceive(payWay.getMoney()); rpw.setReceive(payWay.getMoney());
rpw.setPayWay(payWay.getId()); rpw.setPayWay(payWay.getId());
rpw.setPayWayName(payWay.getName());
rpw.setCreateTime(new Date()); rpw.setCreateTime(new Date());
rpw.setUpdateTime(new Date()); rpw.setUpdateTime(new Date());
rpw.setIsDel(EnumYesOrNo.NO.getCode()); rpw.setIsDel(EnumYesOrNo.NO.getCode());
@@ -605,7 +603,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
for (int i = 0 ; i < record.getBills().size(); i++) { for (int i = 0 ; i < record.getBills().size(); i++) {
WxAllBill be = record.getBills().get(i); WxAllBill be = record.getBills().get(i);
//每个账单要创建一个收款关联单,如果有冲抵,要额外创建 //每个账单要创建一个收款关联单,如果有冲抵,要额外创建
boolean noNeedCreate = createBillReceive(calcuteDto,user,addreceive,be,merchant,payWay0);
boolean noNeedCreate = createBillReceive(calcuteDto,user,addreceive,be,merchant,receivePayWayList);
if (!noNeedCreate) { if (!noNeedCreate) {
isAllEmpity = false; isAllEmpity = false;
} }
@@ -627,7 +625,36 @@ public class WxFinanceServiceImpl implements WxFinanceService {
return retMap; return retMap;
} }
public boolean createBillReceive(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxAllBill be,WxMerchant merchant,WxBillPayWay payWay0) {
private void calcuteReceiveMoney(StringBuffer sb,WxFinanceReceive addreceive,WxAllBill bill,List<WxFinanceReceivePayway> receivePayWayList,BigDecimal moneyDecimal) {
if (moneyDecimal.compareTo(new BigDecimal(0)) <= 0 ) {
return ;
}
for (int i = 0 ; i < receivePayWayList.size(); i ++) {
WxFinanceReceivePayway payway = receivePayWayList.get(i);
//能够覆盖账单金额
if (moneyDecimal.compareTo(new BigDecimal(payway.getReceive())) <= 0 ) {
//创建一个实收款单关联
createFinanceReceiveBill(addreceive,bill,moneyDecimal.toPlainString(),null,payway.getId());
sb.append(payway.getPayWayName()).append("收款").append(moneyDecimal.toPlainString()).append(",");
BigDecimal remain = new BigDecimal(payway.getReceive()).subtract(moneyDecimal);
if (remain.compareTo(new BigDecimal(0))==0) {
receivePayWayList.remove(i);
}else {
payway.setReceive(remain.toPlainString());
}
break;
}else {
//创建一个实收款单关联
createFinanceReceiveBill(addreceive,bill,payway.getReceive(),null,payway.getId());
sb.append(payway.getPayWayName()).append("收款").append(payway.getReceive()).append(",");
receivePayWayList.remove(i);
BigDecimal needlat = moneyDecimal.subtract(new BigDecimal(payway.getReceive()));
calcuteReceiveMoney(sb,addreceive,bill,receivePayWayList,needlat);
}
}
}
public boolean createBillReceive(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxAllBill be,WxMerchant merchant,List<WxFinanceReceivePayway> receivePayWayList) {
//如果既没有收款,也没有冲抵,则不更新 //如果既没有收款,也没有冲抵,则不更新
boolean noNeedCreate = true; boolean noNeedCreate = true;
//计算账单收款费用,更新账单收款 //计算账单收款费用,更新账单收款
@@ -654,18 +681,23 @@ public class WxFinanceServiceImpl implements WxFinanceService {
money = calcuteDto.getTotalRemainReceive().toPlainString(); money = calcuteDto.getTotalRemainReceive().toPlainString();
calcuteDto.setTotalRemainReceive(new BigDecimal(0)); calcuteDto.setTotalRemainReceive(new BigDecimal(0));
} }
WxFinanceReceivePayway payway0 = receivePayWayList.get(0);
StringBuffer sb = new StringBuffer();
BigDecimal moneyDecimal = new BigDecimal(money);
//根据金额循环创建
calcuteReceiveMoney(sb,addreceive, bill, receivePayWayList, moneyDecimal);
WxBillPayDTO payDto = new WxBillPayDTO(); WxBillPayDTO payDto = new WxBillPayDTO();
payDto.updateTenantInfo(addreceive); payDto.updateTenantInfo(addreceive);
payDto.setId(be.getId()); payDto.setId(be.getId());
payDto.setBillTypeValue(be.getBillType()); payDto.setBillTypeValue(be.getBillType());
payDto.setAddpay(money); payDto.setAddpay(money);
payDto.setPayWay(payWay0.getId());
payDto.setPayWayObject(payWay0);
payDto.setRemark("收款单收款["+addreceive.getId()+"]"+addreceive.getRemark());
payDto.setPayWay(payway0.getId());
payDto.setPayWayName(payway0.getPayWayName());
payDto.setRemark("收款单收款["+addreceive.getId()+"]"+addreceive.getRemark()+"收款明细:"+sb.toString());
be.setCurrentReceive(money); be.setCurrentReceive(money);
//创建一个实收款单关联
createFinanceReceiveBill(addreceive,bill,money,null,payWay0.getId());
bill.setCurrentReceive(money); bill.setCurrentReceive(money);
//并且有抵扣 //并且有抵扣
if(StringUtils.isNotBlank(be.getCurrentSetOff())) { if(StringUtils.isNotBlank(be.getCurrentSetOff())) {
@@ -693,11 +725,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
payDto.setAddpay("0"); payDto.setAddpay("0");
payDto.setSetOff(be.getCurrentSetOff()); payDto.setSetOff(be.getCurrentSetOff());
payDto.setPayWay(Constant.bill_pay_way_setoff); payDto.setPayWay(Constant.bill_pay_way_setoff);
if (null == payWay0) {
payWay0 = new WxBillPayWay();
payWay0.setId(Constant.bill_pay_way_setoff);
}
payDto.setPayWayObject(payWay0);
payDto.setPayWayName("冲抵");
payDto.setRemark("收款单收款["+addreceive.getId()+"]冲抵"+addreceive.getRemark()); payDto.setRemark("收款单收款["+addreceive.getId()+"]冲抵"+addreceive.getRemark());
wxBillAllHelper.updatePay(payDto, user); wxBillAllHelper.updatePay(payDto, user);
} }
@@ -825,7 +853,7 @@ public class WxFinanceServiceImpl implements WxFinanceService {
for (int i = 0 ; i < record.getBills().size(); i++) { for (int i = 0 ; i < record.getBills().size(); i++) {
WxAllBill be = record.getBills().get(i); WxAllBill be = record.getBills().get(i);
//每个账单要创建一个收款关联单,如果有冲抵,要额外创建 //每个账单要创建一个收款关联单,如果有冲抵,要额外创建
boolean noNeedCreate = createBillPay(calcuteDto,user,addreceive,be,merchant,payWay0);
boolean noNeedCreate = createBillPay(calcuteDto,user,addreceive,be,merchant,receivePayWayList);
if (!noNeedCreate) { if (!noNeedCreate) {
isAllEmpity = false; isAllEmpity = false;
} }
@@ -843,7 +871,36 @@ public class WxFinanceServiceImpl implements WxFinanceService {
return retMap; return retMap;
} }
public boolean createBillPay(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxAllBill be,WxMerchant merchant,WxBillPayWay payWay0) {
private void calcutePayMoney(StringBuffer sb,WxFinanceReceive addreceive,WxAllBill bill,List<WxFinanceReceivePayway> receivePayWayList,BigDecimal moneyDecimal) {
if (moneyDecimal.compareTo(new BigDecimal(0)) <= 0 ) {
return ;
}
for (int i = 0 ; i < receivePayWayList.size(); i ++) {
WxFinanceReceivePayway payway = receivePayWayList.get(i);
//能够覆盖账单金额
if (moneyDecimal.compareTo(new BigDecimal(payway.getReceive())) <= 0 ) {
//创建一个实收款单关联
createFinanceReceiveBill(addreceive,bill,null,moneyDecimal.toPlainString(),payway.getId());
sb.append(payway.getPayWayName()).append("付款").append(moneyDecimal.toPlainString()).append(",");
BigDecimal remain = new BigDecimal(payway.getReceive()).subtract(moneyDecimal);
if (remain.compareTo(new BigDecimal(0))==0) {
receivePayWayList.remove(i);
}else {
payway.setReceive(remain.toPlainString());
}
break;
}else {
//创建一个实收款单关联
createFinanceReceiveBill(addreceive,bill,null,payway.getReceive(),payway.getId());
sb.append(payway.getPayWayName()).append("付款").append(payway.getReceive()).append(",");
receivePayWayList.remove(i);
BigDecimal needlat = moneyDecimal.subtract(new BigDecimal(payway.getReceive()));
calcutePayMoney(sb,addreceive,bill,receivePayWayList,needlat);
}
}
}
public boolean createBillPay(FinanceReceiveCalcuteDTO calcuteDto,MallUserInfo user,WxFinanceReceive addreceive,WxAllBill be,WxMerchant merchant,List<WxFinanceReceivePayway> receivePayWayList) {
//如果既没有收款,也没有冲抵,则不更新 //如果既没有收款,也没有冲抵,则不更新
boolean noNeedCreate = true; boolean noNeedCreate = true;
//计算账单收款费用,更新账单收款 //计算账单收款费用,更新账单收款
@@ -868,18 +925,24 @@ public class WxFinanceServiceImpl implements WxFinanceService {
money = calcuteDto.getTotalRemainPay().toPlainString(); money = calcuteDto.getTotalRemainPay().toPlainString();
calcuteDto.setTotalRemainPay(new BigDecimal(0)); calcuteDto.setTotalRemainPay(new BigDecimal(0));
} }
WxFinanceReceivePayway payway0 = receivePayWayList.get(0);
WxBillPayDTO payDto = new WxBillPayDTO(); WxBillPayDTO payDto = new WxBillPayDTO();
payDto.updateTenantInfo(addreceive); payDto.updateTenantInfo(addreceive);
payDto.setId(be.getId()); payDto.setId(be.getId());
payDto.setBillTypeValue(be.getBillType()); payDto.setBillTypeValue(be.getBillType());
payDto.setPayToMerchant(money); payDto.setPayToMerchant(money);
payDto.setPayWay(payWay0.getId());
payDto.setPayWayObject(payWay0);
payDto.setPayWay(payway0.getId());
payDto.setPayWayName(payway0.getPayWayName());
payDto.setRemark("付款单付款["+addreceive.getId()+"]"+addreceive.getRemark()); payDto.setRemark("付款单付款["+addreceive.getId()+"]"+addreceive.getRemark());
be.setCurrentReceive(money); be.setCurrentReceive(money);
//创建一个实收款单关联
createFinanceReceiveBill(addreceive,bill,null,money,payWay0.getId());
//根据金额循环创建
StringBuffer sb = new StringBuffer();
BigDecimal moneyDecimal = new BigDecimal(money);
calcutePayMoney(sb, addreceive, bill, receivePayWayList, moneyDecimal);
bill.setCurrentReceive(money); bill.setCurrentReceive(money);
wxBillAllHelper.updatePayToMerchant(payDto, user); wxBillAllHelper.updatePayToMerchant(payDto, user);


+ 2
- 1
mallinkService/src/main/java/com/iformall/service/payBill/impl/PayBillBaseService.java Прегледај датотеку

@@ -24,7 +24,8 @@ public class PayBillBaseService {
dto.setId(billId); dto.setId(billId);
dto.setBillTypeValue(billType.getCode()); dto.setBillTypeValue(billType.getCode());
dto.setAddpay(paid); dto.setAddpay(paid);
dto.setPayWayObject(payWay);
dto.setPayWay(payWay.getId());
dto.setPayWayName(payWay.getName());
dto.setRemark(remark); dto.setRemark(remark);
WxMerchantBUser buser = wxMerchantBUserService.getById(merchantBUserId); WxMerchantBUser buser = wxMerchantBUserService.getById(merchantBUserId);


Loading…
Откажи
Сачувај