fix 解决工作组成员复制后税额问题

This commit is contained in:
lijiarao
2023-11-14 13:47:42 +08:00
parent f1115d5a35
commit c96575413d
3 changed files with 22 additions and 1 deletions
@@ -241,6 +241,7 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
* @param payWorkingGroup 工作组项目
* @return
*/
@AutoLog(value = "工作组项目-复制",operateType = 2)
@RequiresPermissions("workingGroupProject:copy")
@ApiOperation(value="工作组项目-复制", notes="工作组项目-复制")
@PostMapping(value = "/copy")
@@ -17,6 +17,7 @@ import com.jero.common.service.RolePermissionService;
import com.jero.common.system.vo.LoginUser;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.config.StaticConfig;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
import com.jero.modules.system.entity.SysUser;
@@ -44,6 +45,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -298,10 +300,19 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
p.setCreateTime(null);
p.setUpdateBy(null);
p.setUpdateTime(null);
if(!Objects.isNull(p.getReceivableAmount()) && p.getReceivableAmount().compareTo(new BigDecimal("0")) > 0){
BigDecimal receivableAmount = p.getReceivableAmount();
if(!Objects.isNull(receivableAmount) && receivableAmount.compareTo(new BigDecimal("0")) > 0){
p.setPaymentStatus(PayProjectCommon.PAYMENT_STATUS);
BigDecimal noTaxAmount = receivableAmount.divide(StaticConfig.TAX_RATE_CALCULATE, 2, RoundingMode.HALF_UP);
BigDecimal tax = receivableAmount.subtract(noTaxAmount);
p.setTaxRate(StaticConfig.TAX_RATE);
p.setNoTaxAmount(noTaxAmount);
p.setTax(tax);
}else{
p.setPaymentStatus(null);
p.setTaxRate(StaticConfig.TAX_RATE);
p.setNoTaxAmount(BigDecimal.ZERO);
p.setTax(BigDecimal.ZERO);
}
p.setWorkingGroupId(payWorkingGroupOld.getId());
@@ -24,6 +24,7 @@ import com.jero.company.entity.PayCompanyManagement;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.config.StaticConfig;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.service.IPayIncomeContractAssociatedService;
@@ -69,6 +70,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.stream.Collectors;
@@ -429,6 +431,13 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
payWorkingGroupSubItem.setPaymentStatus(paymentStatus);
payWorkingGroupSubItem.setInAccount(null);
payWorkingGroupSubItem.setPaidAmount(null);
BigDecimal taxRate = payWorkingGroupSubItem.getTaxRate();
BigDecimal receivableAmount = payWorkingGroupSubItem.getReceivableAmount();
BigDecimal noTaxAmount = receivableAmount.divide(taxRate.add(BigDecimal.ONE), 2, RoundingMode.HALF_UP);
BigDecimal tax = receivableAmount.subtract(noTaxAmount);
payWorkingGroupSubItem.setNoTaxAmount(noTaxAmount);
payWorkingGroupSubItem.setTax(tax);
payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem);
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getId, workingGroupSubItemId);