|
@@ -27,6 +27,7 @@ import cn.ezhizao.project.business.workOrder.domain.BizWorkOrderRecord;
|
|
|
import cn.ezhizao.project.business.workOrder.service.IBizWorkOrderRecordService;
|
|
|
import cn.ezhizao.project.system.domain.SysFileStorage;
|
|
|
import cn.ezhizao.project.system.service.ISysFileStorageService;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
@@ -38,6 +39,7 @@ import org.springframework.web.bind.annotation.*;
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.time.LocalDate;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
@@ -52,8 +54,7 @@ import java.util.stream.Collectors;
|
|
|
*/
|
|
|
@RestController
|
|
|
@RequestMapping("/business/individualIncomeTaxDetail")
|
|
|
-public class BizFinancialIndividualIncomeTaxDetailController extends BaseController
|
|
|
-{
|
|
|
+public class BizFinancialIndividualIncomeTaxDetailController extends BaseController {
|
|
|
@Resource
|
|
|
private IBizFinancialIndividualIncomeTaxDetailService bizFinancialIndividualIncomeTaxDetailService;
|
|
|
|
|
@@ -87,14 +88,12 @@ public class BizFinancialIndividualIncomeTaxDetailController extends BaseControl
|
|
|
IBizCompanyService companyService;
|
|
|
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* 查询个税详情列表
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('business:individualIncomeTaxDetail:list')")
|
|
|
@GetMapping("/list")
|
|
|
- public TableDataInfo list(BizFinancialIndividualIncomeTaxDetail bizFinancialIndividualIncomeTaxDetail) throws NoSuchFieldException, IllegalAccessException
|
|
|
- {
|
|
|
+ public TableDataInfo list(BizFinancialIndividualIncomeTaxDetail bizFinancialIndividualIncomeTaxDetail) throws NoSuchFieldException, IllegalAccessException {
|
|
|
setTenantId(bizFinancialIndividualIncomeTaxDetail);
|
|
|
startPage();
|
|
|
List<BizFinancialIndividualIncomeTaxDetail> list = bizFinancialIndividualIncomeTaxDetailService.getList(bizFinancialIndividualIncomeTaxDetail);
|
|
@@ -107,8 +106,7 @@ public class BizFinancialIndividualIncomeTaxDetailController extends BaseControl
|
|
|
@PreAuthorize("@ss.hasPermi('business:individualIncomeTaxDetail:export')")
|
|
|
@Log(title = "个税详情", businessType = BusinessType.EXPORT)
|
|
|
@PostMapping("/export")
|
|
|
- public void export(HttpServletResponse response, BizFinancialIndividualIncomeTaxDetail bizFinancialIndividualIncomeTaxDetail) throws NoSuchFieldException, IllegalAccessException
|
|
|
- {
|
|
|
+ public void export(HttpServletResponse response, BizFinancialIndividualIncomeTaxDetail bizFinancialIndividualIncomeTaxDetail) throws NoSuchFieldException, IllegalAccessException {
|
|
|
setTenantId(bizFinancialIndividualIncomeTaxDetail);
|
|
|
List<BizFinancialIndividualIncomeTaxDetail> list = bizFinancialIndividualIncomeTaxDetailService.getList(bizFinancialIndividualIncomeTaxDetail);
|
|
|
ExcelUtil<BizFinancialIndividualIncomeTaxDetail> util = new ExcelUtil<BizFinancialIndividualIncomeTaxDetail>(BizFinancialIndividualIncomeTaxDetail.class);
|
|
@@ -119,14 +117,27 @@ public class BizFinancialIndividualIncomeTaxDetailController extends BaseControl
|
|
|
* 获取个税详情详细信息
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('business:individualIncomeTaxDetail:query')")
|
|
|
- @GetMapping(value = "/{id}")
|
|
|
- public AjaxResult getInfo(@PathVariable("id") Long id)
|
|
|
- {
|
|
|
- BizFinancialIndividualIncomeTaxDetail biz= bizFinancialIndividualIncomeTaxDetailService.getById(id);
|
|
|
+ @GetMapping(value = "/{id}/{year}/{month}")
|
|
|
+ public AjaxResult getInfo(@PathVariable("id") Long financialIndividualIncomeTaxId, @PathVariable("year") String year, @PathVariable("month") String month) {
|
|
|
+ int nowYear = LocalDate.now().getYear();
|
|
|
+ int nowMonth = LocalDate.now().getMonthValue()-1;
|
|
|
+ String formattedMonth = String.format("%02d", nowMonth);
|
|
|
+ BizFinancialIndividualIncomeTaxDetail biz = bizFinancialIndividualIncomeTaxDetailService.getOne(new LambdaQueryWrapper<BizFinancialIndividualIncomeTaxDetail>()
|
|
|
+ .eq(BizFinancialIndividualIncomeTaxDetail::getFinancialIndividualIncomeTaxId, financialIndividualIncomeTaxId)
|
|
|
+ .eq(BizFinancialIndividualIncomeTaxDetail::getYear, year)
|
|
|
+ .eq(BizFinancialIndividualIncomeTaxDetail::getMonth, month));
|
|
|
+ String s1= year+month;
|
|
|
+ String s2 = nowYear+ formattedMonth;
|
|
|
+ if(s1.equals(s2) && biz == null){
|
|
|
+ return success(new BizFinancialIndividualIncomeTaxDetail());
|
|
|
+ }
|
|
|
+ if (biz==null ) {
|
|
|
+ return error("当前月未找到数据");
|
|
|
+ }
|
|
|
List<SysFileStorage> files = bizFinancialIndividualIncomeTaxDetailService.getFiles(biz.getId());
|
|
|
- if (CollectionUtils.isEmpty(files)){
|
|
|
+ if (CollectionUtils.isEmpty(files)) {
|
|
|
ArrayList<SysFileStorage> objects = new ArrayList<>();
|
|
|
- if (StringUtils.isNotEmpty(biz.getReportFile()) ){
|
|
|
+ if (StringUtils.isNotEmpty(biz.getReportFile())) {
|
|
|
SysFileStorage sysFileStorage = new SysFileStorage();
|
|
|
sysFileStorage.setFileUrl(biz.getReportFile());
|
|
|
String[] parts = splitFileName(biz.getReportFile());
|
|
@@ -141,7 +152,7 @@ public class BizFinancialIndividualIncomeTaxDetailController extends BaseControl
|
|
|
return success(biz);
|
|
|
}
|
|
|
|
|
|
- public String[] splitFileName(String filePath) {
|
|
|
+ public String[] splitFileName(String filePath) {
|
|
|
// 从路径中获取文件名部分
|
|
|
String[] pathParts = filePath.split("/");
|
|
|
String fileNameWithExtension = pathParts[pathParts.length - 1]; // 获取最后一部分,即文件名部分
|
|
@@ -155,18 +166,18 @@ public class BizFinancialIndividualIncomeTaxDetailController extends BaseControl
|
|
|
int underscoreIndex = fileName.lastIndexOf('_');
|
|
|
if (underscoreIndex != -1) {
|
|
|
String originalFilename = fileName.substring(0, underscoreIndex) + extension;
|
|
|
- return new String[] { fileNameWithExtension, originalFilename };
|
|
|
+ return new String[]{fileNameWithExtension, originalFilename};
|
|
|
} else {
|
|
|
- return new String[] { fileNameWithExtension, fileNameWithExtension }; // 如果没有找到时间戳,则原始文件名与文件名相同
|
|
|
+ return new String[]{fileNameWithExtension, fileNameWithExtension}; // 如果没有找到时间戳,则原始文件名与文件名相同
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
@PreAuthorize("@ss.hasPermi('business:individualIncomeTaxDetail:saveDetail')")
|
|
|
@ApiOperation("保存detail")
|
|
|
@Log(title = "个税详情", businessType = BusinessType.UPDATE)
|
|
|
@PostMapping()
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public AjaxResult saveDetail(@RequestBody BizFinancialIndividualIncomeTaxDetail bizFinancialIndividualIncomeTaxDetail) throws NoSuchFieldException, IllegalAccessException
|
|
|
- {
|
|
|
+ public AjaxResult saveDetail(@RequestBody BizFinancialIndividualIncomeTaxDetail bizFinancialIndividualIncomeTaxDetail) throws NoSuchFieldException, IllegalAccessException {
|
|
|
String status = "";
|
|
|
boolean bool = bizFinancialIndividualIncomeTaxDetailService.saveOrUpdate(bizFinancialIndividualIncomeTaxDetail);
|
|
|
switch (bizFinancialIndividualIncomeTaxDetail.getStatus()) {
|
|
@@ -193,11 +204,10 @@ public class BizFinancialIndividualIncomeTaxDetailController extends BaseControl
|
|
|
fileStorageService.physicalDelete(delConditions);
|
|
|
bool = bool && (fileStorages.isEmpty() || fileStorageService.saveOrUpdateBatch(fileStorages));
|
|
|
return toAjax(addRecord(bizFinancialIndividualIncomeTaxDetail.getFinancialIndividualIncomeTaxId(),
|
|
|
- bizFinancialIndividualIncomeTaxDetail.getYear(),bizFinancialIndividualIncomeTaxDetail.getMonth(), SecurityUtils.getUserId(),status)&&bool);
|
|
|
+ bizFinancialIndividualIncomeTaxDetail.getYear(), bizFinancialIndividualIncomeTaxDetail.getMonth(), SecurityUtils.getUserId(), status) && bool);
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
private Boolean checkDeduction(BizFinancialIndividualIncomeTaxDetail detail) {
|
|
|
// 判断当前月是否报税
|
|
|
// 20230915 假设未报税也插入一条税款,合并税款记录中的是否可扣款未0
|
|
@@ -220,7 +230,7 @@ public class BizFinancialIndividualIncomeTaxDetailController extends BaseControl
|
|
|
} else {
|
|
|
deductions = deductionService.query().in("source_id", financialMerges.stream().map(BizFinancialMerge::getId).collect(Collectors.toList())).list();
|
|
|
}
|
|
|
- BigDecimal amount = reportTaxDetail == null ? detail.getAmount() == null ? BigDecimal.ZERO :detail.getAmount() : reportTaxDetail.getSumTax().add(detail.getAmount() == null ? BigDecimal.ZERO : detail.getAmount());
|
|
|
+ BigDecimal amount = reportTaxDetail == null ? detail.getAmount() == null ? BigDecimal.ZERO : detail.getAmount() : reportTaxDetail.getSumTax().add(detail.getAmount() == null ? BigDecimal.ZERO : detail.getAmount());
|
|
|
if (amount.doubleValue() > 0) {
|
|
|
if (deductions.isEmpty()) {
|
|
|
BizFinancialMerge financialMerge = financialMerges.isEmpty() ? new BizFinancialMerge() : financialMerges.get(0);
|
|
@@ -274,14 +284,14 @@ public class BizFinancialIndividualIncomeTaxDetailController extends BaseControl
|
|
|
detail.setStatus(1);
|
|
|
QueryWrapper<BizFinancialMerge> qw = new QueryWrapper<>();
|
|
|
qw.eq("financial_individual_income_tax_detail_id", detail.getId());
|
|
|
- BizFinancialMerge merge = financialMergeService.getOne(qw);
|
|
|
+ BizFinancialMerge merge = financialMergeService.getOne(qw);
|
|
|
if (merge != null) {
|
|
|
merge.setFinancialIndividualIncomeTaxDetailId(0L);
|
|
|
if (merge.getFinancialIndividualIncomeTaxDetailId().equals(0L) && merge.getFinancialReportTaxDetailId().equals(0L)) {
|
|
|
removeDeductionByMerge(merge);
|
|
|
} else {
|
|
|
BizFinancialReportTaxDetail financialReportTaxDetail = financialReportTaxDetailService.getById(merge.getFinancialReportTaxDetailId());
|
|
|
- if(financialReportTaxDetail.getSumTax().doubleValue() > 0) {
|
|
|
+ if (financialReportTaxDetail.getSumTax().doubleValue() > 0) {
|
|
|
financialMergeService.updateById(merge);
|
|
|
BizDeduction deduction = deductionService.getOne(Wrappers.<BizDeduction>lambdaQuery().eq(BizDeduction::getSourceTableName, "financial_merge").eq(BizDeduction::getSourceId, merge.getId()));
|
|
|
deduction.setDeductible(0);
|
|
@@ -311,9 +321,8 @@ public class BizFinancialIndividualIncomeTaxDetailController extends BaseControl
|
|
|
*/
|
|
|
@PreAuthorize("@ss.hasPermi('business:individualIncomeTaxDetail:remove')")
|
|
|
@Log(title = "个税详情", businessType = BusinessType.DELETE)
|
|
|
- @DeleteMapping("/{ids}")
|
|
|
- public AjaxResult remove(@PathVariable List<Long> ids)
|
|
|
- {
|
|
|
+ @DeleteMapping("/{ids}")
|
|
|
+ public AjaxResult remove(@PathVariable List<Long> ids) {
|
|
|
return toAjax(bizFinancialIndividualIncomeTaxDetailService.removeBatchByIds(ids));
|
|
|
}
|
|
|
|