应收账单明细修改
This commit is contained in:
+57
@@ -744,6 +744,63 @@ public class BillManageApplicationService {
|
|||||||
return billManageDomainService.synchronousNcSK(businessDocumentDetaliIds);
|
return billManageDomainService.synchronousNcSK(businessDocumentDetaliIds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改账单明细
|
||||||
|
*/
|
||||||
|
@Transactional
|
||||||
|
public Boolean updateBillDetail(BillManageDTO billManageDTO) {
|
||||||
|
LoginUser loginUser = SecurityUtils.getLoginUser();
|
||||||
|
if (ObjectUtil.isNull(loginUser)) {
|
||||||
|
throw new DigitalLogisticsException(UserError.TIMEOUT);
|
||||||
|
}
|
||||||
|
BillDetailDTO detailDTO = billManageDTO.getBillDetailDTOList() != null && !billManageDTO.getBillDetailDTOList().isEmpty()
|
||||||
|
? billManageDTO.getBillDetailDTOList().get(0) : null;
|
||||||
|
if (detailDTO == null || detailDTO.getBillDetailId() == null) {
|
||||||
|
throw new ServiceException("明细id不能为空");
|
||||||
|
}
|
||||||
|
BillDetailPO billDetailPO = billDetailDomainService.getInfo(detailDTO.getBillDetailId());
|
||||||
|
if (billDetailPO == null) {
|
||||||
|
throw new ServiceException("明细不存在");
|
||||||
|
}
|
||||||
|
BillManagePO billManagePO = billManageDomainService.getInfo(billDetailPO.getBillManageId());
|
||||||
|
if (billManagePO == null || billManagePO.getBillState() != 1) {
|
||||||
|
throw new ServiceException("账单状态不为未确认,不可修改明细");
|
||||||
|
}
|
||||||
|
BillDetailDO billDetailDO = new BillDetailDO();
|
||||||
|
BeanUtils.copyProperties(detailDTO, billDetailDO);
|
||||||
|
billDetailDO.setBillDetailId(detailDTO.getBillDetailId());
|
||||||
|
billDetailDO.setInvoiceItem(detailDTO.getFirstSubjectCode());
|
||||||
|
billDetailDO.setInvoiceItemName(detailDTO.getFirstSubjectName());
|
||||||
|
billDetailDO.setFeeType(detailDTO.getServiceItemsName());
|
||||||
|
billDetailDO.setUpdateBy(loginUser.getUserid());
|
||||||
|
billDetailDO.setUpdateByName(loginUser.getUserPo().getUserName());
|
||||||
|
billDetailDO.setUpdateTime(new Date());
|
||||||
|
Boolean flag = billDetailDomainService.update(billDetailDO);
|
||||||
|
// 重新计算账单总金额并更新主表
|
||||||
|
List<BillDetailPO> allDetails = billDetailDomainService.getDetailsByBillManageId(billManagePO.getBillManageId());
|
||||||
|
allDetails = allDetails.stream().map(item -> {
|
||||||
|
if (item.getBillDetailId().equals(detailDTO.getBillDetailId())) {
|
||||||
|
item.setBillingTotalAmount(detailDTO.getBillingTotalAmount());
|
||||||
|
item.setBillingAmount(detailDTO.getBillingAmount());
|
||||||
|
item.setBillingDiscountAmount(detailDTO.getBillingDiscountAmount());
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
}).collect(Collectors.toList());
|
||||||
|
BigDecimal totalAmount = allDetails.stream().map(BillDetailPO::getBillingTotalAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
BigDecimal amount = allDetails.stream().map(BillDetailPO::getBillingAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
BigDecimal discountAmount = allDetails.stream().map(BillDetailPO::getBillingDiscountAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||||
|
BillManageDO billManageDO = new BillManageDO();
|
||||||
|
billManageDO.setBillManageId(billManagePO.getBillManageId());
|
||||||
|
billManageDO.setBillTotalAmount(totalAmount);
|
||||||
|
billManageDO.setBillAmount(amount);
|
||||||
|
billManageDO.setBillAmountUnsettled(amount);
|
||||||
|
billManageDO.setBillDiscountAmount(discountAmount);
|
||||||
|
billManageDO.setUpdateBy(loginUser.getUserid());
|
||||||
|
billManageDO.setUpdateByName(loginUser.getUserPo().getUserName());
|
||||||
|
billManageDO.setUpdateTime(new Date());
|
||||||
|
Boolean flagTwo = billManageDomainService.update(billManageDO);
|
||||||
|
return flag && flagTwo;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -229,6 +229,19 @@ public class BillManageApi extends BaseController{
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ApiOperation("修改账单明细")
|
||||||
|
@PostMapping("/updateBillDetail")
|
||||||
|
public AjaxResult updateBillDetail(@RequestBody BillManageDTO billManageDTO)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
billManageApplicationService.updateBillDetail(billManageDTO);
|
||||||
|
return AjaxResult.success("操作成功");
|
||||||
|
}catch (Exception e){
|
||||||
|
return AjaxResult.error("修改明细失败:"+e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ApiOperation("新增账单")
|
@ApiOperation("新增账单")
|
||||||
@PostMapping("/addBill")
|
@PostMapping("/addBill")
|
||||||
public AjaxResult addBill(@RequestBody BillManageDTO billManageDTO)
|
public AjaxResult addBill(@RequestBody BillManageDTO billManageDTO)
|
||||||
|
|||||||
Reference in New Issue
Block a user