|
|
@@ -1,5 +1,6 @@
|
|
|
package org.jeecg.modules.hlwpayment.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
@@ -20,9 +21,13 @@ import org.jeecg.modules.hlworder.service.IHlwOrderService;
|
|
|
import org.jeecg.modules.hlworder.service.IHlwRequirementService;
|
|
|
import org.jeecg.modules.hlwpayment.entity.HlwPayment;
|
|
|
import org.jeecg.modules.hlwpayment.entity.HlwPaymentDetail;
|
|
|
+import org.jeecg.modules.hlwpayment.entity.HlwServiceCheck;
|
|
|
import org.jeecg.modules.hlwpayment.mapper.HlwPaymentDetailMapper;
|
|
|
import org.jeecg.modules.hlwpayment.service.IHlwPaymentDetailService;
|
|
|
import org.jeecg.modules.hlwpayment.service.IHlwPaymentService;
|
|
|
+import org.jeecg.modules.hlwpayment.service.IHlwServiceCheckService;
|
|
|
+import org.jeecg.modules.hlwsubcontractor.entity.HlwSubcontractor;
|
|
|
+import org.jeecg.modules.hlwsubcontractor.service.IHlwSubcontractorService;
|
|
|
import org.jeecg.modules.hlwuser.entity.HlwUser;
|
|
|
import org.jeecg.modules.hlwuser.service.IHlwUserService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
@@ -57,6 +62,10 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
|
|
|
private IHlwCompanyCpService hlwCompanyCpService;
|
|
|
@Autowired
|
|
|
private IHlwCompanySubcontractorService hlwCompanySubcontractorService;
|
|
|
+ @Autowired
|
|
|
+ private IHlwSubcontractorService hlwSubcontractorService;
|
|
|
+ @Autowired
|
|
|
+ private IHlwServiceCheckService hlwServiceCheckService;
|
|
|
|
|
|
@Override
|
|
|
public Page<HlwPaymentDetail> pageList(Page<HlwPaymentDetail> page, HlwPaymentDetail hlwPaymentDetail, QueryWrapper<HlwPaymentDetail> queryWrapper) {
|
|
|
@@ -282,7 +291,7 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
|
|
|
}
|
|
|
hlwPaymentDetail.setPaymentType(hlwCompany.getPaymentType());
|
|
|
//-1状态慧盈设置为null,其他应用还是默认1
|
|
|
- if(status==null){
|
|
|
+ if (status == null) {
|
|
|
hlwPaymentDetail.setStatus(1);
|
|
|
}
|
|
|
hlwPaymentDetail.setIsSupplementPayment(0);
|
|
|
@@ -366,18 +375,104 @@ public class HlwPaymentDetailServiceImpl extends ServiceImpl<HlwPaymentDetailMap
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Result<?> confirmPayment(JSONObject jsonObject) {
|
|
|
+ public Result<?> verifyPayment(JSONObject jsonObject) {
|
|
|
+ Integer paymentId = jsonObject.getInteger("paymentId");
|
|
|
+ // 付款单
|
|
|
+ HlwPayment hlwPayment = hlwPaymentService.getById(paymentId);
|
|
|
+ /**
|
|
|
+ * 1、付款单状态
|
|
|
+ */
|
|
|
+ if (hlwPayment.getStatus() != null) {
|
|
|
+ return Result.error("该付款单状态已变更,请刷新后重试!");
|
|
|
+ }
|
|
|
+ // 服务商
|
|
|
+ HlwSubcontractor hlwSubcontractor = hlwSubcontractorService.getById(hlwPayment.getSubcontractorId());
|
|
|
+ Double dailyLimit = hlwSubcontractor.getDailyLimit();
|
|
|
+ Double monthlyLimit = hlwSubcontractor.getMonthlyLimit();
|
|
|
+ BigDecimal bigDailyLimit = BigDecimal.valueOf(dailyLimit);
|
|
|
+ BigDecimal bigMonthlyLimit = BigDecimal.valueOf(monthlyLimit);
|
|
|
+ // 付款明细
|
|
|
+ QueryWrapper<HlwPaymentDetail> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("payment_id", paymentId);
|
|
|
+ List<HlwPaymentDetail> list = this.list(queryWrapper);
|
|
|
+ // 错误信息集合
|
|
|
+ List errorList = new ArrayList<>();
|
|
|
/**
|
|
|
- * 1、拦截日限额
|
|
|
+ * 2、拦截日限额
|
|
|
*/
|
|
|
+ for (HlwPaymentDetail hlwPaymentDetail : list) {
|
|
|
+ // 查询用户当日付款金额总和
|
|
|
+ Double currentUserDailyAmount = baseMapper.getCurrentUserDailyAmount(hlwPaymentDetail.getIdcardNumber());
|
|
|
+ // 比较double大小
|
|
|
+ BigDecimal data = BigDecimal.valueOf(currentUserDailyAmount);
|
|
|
+ if (bigDailyLimit.compareTo(data) == -1) {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("userName", hlwPaymentDetail.getUserName());
|
|
|
+ map.put("idcardNumber", hlwPaymentDetail.getIdcardNumber());
|
|
|
+ map.put("reason", "超出日限额上限");
|
|
|
+ errorList.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
/**
|
|
|
- * 2、拦截月限额
|
|
|
+ * 3、拦截月限额
|
|
|
*/
|
|
|
- return null;
|
|
|
+ for (HlwPaymentDetail hlwPaymentDetail : list) {
|
|
|
+ // 查询用户当月付款金额总和
|
|
|
+ Double currentUserMonthlyAmount = baseMapper.getCurrentUserMonthlyAmount(hlwPaymentDetail.getIdcardNumber());
|
|
|
+ // 比较double大小
|
|
|
+ BigDecimal data = BigDecimal.valueOf(currentUserMonthlyAmount);
|
|
|
+ if (bigMonthlyLimit.compareTo(data) == -1) {
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("userName", hlwPaymentDetail.getUserName());
|
|
|
+ map.put("idcardNumber", hlwPaymentDetail.getIdcardNumber());
|
|
|
+ map.put("reason", "超出月限额上限");
|
|
|
+ errorList.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (errorList != null && errorList.size() > 0) {
|
|
|
+ JSONArray jsonArray = new JSONArray(errorList);
|
|
|
+ return Result.error(jsonArray.toString());
|
|
|
+ }
|
|
|
+ return Result.ok("验证通过");
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public Result<?> confirmPayment(JSONObject jsonObject) {
|
|
|
+ Integer paymentId = jsonObject.getInteger("paymentId");
|
|
|
+ // 付款单
|
|
|
+ HlwPayment hlwPayment = hlwPaymentService.getById(paymentId);
|
|
|
+ hlwPayment.setStatus(1);
|
|
|
+ hlwPaymentService.updateById(hlwPayment);
|
|
|
+ // 付款明细
|
|
|
+ QueryWrapper<HlwPaymentDetail> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("payment_id", paymentId);
|
|
|
+ List<HlwPaymentDetail> list = this.list(queryWrapper);
|
|
|
+ for (HlwPaymentDetail hlwPaymentDetail : list) {
|
|
|
+ hlwPaymentDetail.setStatus(1);
|
|
|
+ }
|
|
|
+ this.updateBatch(list);
|
|
|
+ return Result.ok("确认付款成功");
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public Result<?> serviceCheck(JSONObject jsonObject) {
|
|
|
- return null;
|
|
|
+ Integer paymentId = jsonObject.getInteger("paymentId");
|
|
|
+ String checkFile = jsonObject.getString("checkFile");
|
|
|
+ // 付款单
|
|
|
+ HlwPayment hlwPayment = hlwPaymentService.getById(paymentId);
|
|
|
+ if (hlwPayment.getServiceCheckId() != null) {
|
|
|
+ HlwServiceCheck hlwServiceCheck = hlwServiceCheckService.getById(hlwPayment.getServiceCheckId());
|
|
|
+ hlwServiceCheck.setCheckFile(checkFile);
|
|
|
+ hlwServiceCheckService.updateById(hlwServiceCheck);
|
|
|
+ } else {
|
|
|
+ HlwServiceCheck hlwServiceCheck = new HlwServiceCheck();
|
|
|
+ hlwServiceCheck.setCheckFile(checkFile);
|
|
|
+ hlwServiceCheckService.save(hlwServiceCheck);
|
|
|
+ hlwPayment.setServiceCheckId(hlwServiceCheck.getId());
|
|
|
+ hlwPaymentService.updateById(hlwPayment);
|
|
|
+ }
|
|
|
+ return Result.ok("验收成功");
|
|
|
}
|
|
|
}
|