应收账单明细修改
This commit is contained in:
+57
@@ -744,6 +744,63 @@ public class BillManageApplicationService {
|
||||
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("新增账单")
|
||||
@PostMapping("/addBill")
|
||||
public AjaxResult addBill(@RequestBody BillManageDTO billManageDTO)
|
||||
|
||||
Reference in New Issue
Block a user