server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
@@ -72,14 +72,14 @@ @PostMapping("/page") @RequiresPermissions("business:applychagnedetail:query") public ApiResponse<PageData<ApplyChagneDetail>> findPage (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap) { return ApiResponse.success(applyChagneDetailService.findPage(pageWrap)); return ApiResponse.success(applyChagneDetailService.findPageForCompany(pageWrap)); } @ApiOperation("导åºExcel") @PostMapping("/exportExcel") @RequiresPermissions("business:applychagnedetail:exportExcel") public void exportExcel (@RequestBody PageWrap<ApplyDetailPageDTO> pageWrap, HttpServletResponse response) { ExcelExporter.build(ApplyChagneDetail.class).export(applyChagneDetailService.findPage(pageWrap).getRecords(), "å åä¿æ¢åç³è¯·æç»ä¿¡æ¯è¡¨", response); ExcelExporter.build(ApplyChagneDetail.class).export(applyChagneDetailService.findPageForCompany(pageWrap).getRecords(), "å åä¿æ¢åç³è¯·æç»ä¿¡æ¯è¡¨", response); } @ApiOperation("æ ¹æ®IDæ¥è¯¢") server/company/src/main/java/com/doumee/api/business/SolutionsController.java
@@ -77,16 +77,16 @@ @ApiOperation("å表æ¥è¯¢") @PostMapping("/list") @RequiresPermissions("business:solutions:query") public ApiResponse<List<Solutions>> findList (@RequestBody Solutions pageWrap) { return ApiResponse.success(solutionsService.findList(pageWrap)); } @ApiOperation("å表æ¥è¯¢") @PostMapping("/page") public ApiResponse<List<Solutions>> findPage (@RequestBody Solutions solutions) { public ApiResponse<List<Solutions>> findList (@RequestBody Solutions solutions) { return ApiResponse.success(solutionsService.findList(solutions)); } // @ApiOperation("å表æ¥è¯¢") // @PostMapping("/page") // public ApiResponse<List<Solutions>> findPage (@RequestBody Solutions solutions) { // return ApiResponse.success(solutionsService.findList(solutions)); // } @ApiOperation("导åºExcel") @PostMapping("/exportExcel") @RequiresPermissions("business:solutions:exportExcel") server/company/src/main/java/com/doumee/api/business/TaxesController.java
@@ -10,8 +10,10 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.model.PageData; import com.doumee.core.utils.Constants; import com.doumee.dao.business.dto.DirectInvoicingDTO; import com.doumee.dao.business.dto.EntrustInvoicingDTO; import com.doumee.dao.business.model.Taxes; import com.doumee.dao.business.vo.TaxesInvoicingVO; import com.doumee.service.business.TaxesService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -101,8 +103,35 @@ @ApiOperation("æäº¤å§æææ¥å¼ç¥¨") @PostMapping("/entrustInvoicing") public ApiResponse entrustInvoicing(@RequestBody EntrustInvoicingDTO entrustInvoicingDTOs) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!loginUserInfo.getType().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éä¼ä¸ç±»ç¨æ·æ æ³è¿è¡è¯¥æä½"); } taxesService.entrustInvoicing(entrustInvoicingDTOs); return ApiResponse.success(null); } @ApiOperation("æäº¤ç´æææ¥å¼ç¥¨") @PostMapping("/directInvoicing") public ApiResponse directInvoicing(@RequestBody DirectInvoicingDTO directInvoicingDTO) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!loginUserInfo.getType().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éä¼ä¸ç±»ç¨æ·æ æ³è¿è¡è¯¥æä½"); } taxesService.directInvoicing(directInvoicingDTO); return ApiResponse.success(null); } @ApiOperation(value = "è·åç´ä¿æ°æ®ä¿¡æ¯",notes = "") @GetMapping("/getDirectTaxes") @RequiresPermissions("business:taxes:query") public ApiResponse getDirectTaxes(@RequestParam Integer id) { LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(!loginUserInfo.getType().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éä¼ä¸ç±»ç¨æ·æ æ³è¿è¡è¯¥æä½"); } return ApiResponse.success(taxesService.getDirectTaxes(id)); } } server/service/src/main/java/com/doumee/dao/business/dto/DirectInvoicingDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package com.doumee.dao.business.dto; import com.doumee.dao.business.model.TaxDetial; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2024/1/24 11:35 */ @Data public class DirectInvoicingDTO { @ApiModelProperty(value = "ä¿å主é®") private Integer id; @ApiModelProperty(value = "å¼ç¥¨éé¢") private BigDecimal invoicingMoney; @ApiModelProperty(value = "æ¥æ¶æ¹å¼ 0çµåå票 1纸质å票") private Integer type; @ApiModelProperty(value = "åç¥¨æ¥æ¶å°å") private String address; @ApiModelProperty(value = "å²çº¢åæ°æ®") private List<Integer> invoicingDetailDTOList; } server/service/src/main/java/com/doumee/dao/business/dto/DirectInvoicingDetailDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.doumee.dao.business.dto; import com.doumee.dao.business.model.TaxDetial; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2024/1/24 11:35 */ @Data public class DirectInvoicingDetailDTO { @ApiModelProperty(value = "主é®") private Integer id; @ApiModelProperty(value = "åå·") private String code; @ApiModelProperty(value = "éé¢") private BigDecimal fee; } server/service/src/main/java/com/doumee/dao/business/dto/EntrustInvoicingDTO.java
server/service/src/main/java/com/doumee/dao/business/dto/InsuranceApplyQueryDTO.java
@@ -53,7 +53,10 @@ @ApiModelProperty(value = "ç±»å 0ç´ä¿ 1å§ææä¿") private Integer type; @ApiModelProperty(value = "主é®å表") @ApiModelProperty(value = "主é®å表",notes = "å§ææä¿å¼ç¥¨ä½¿ç¨") private List<Integer> ids; @ApiModelProperty(value = "å³å°å¤±æè®¢åï¼0=å¦ï¼1=æ¯") private Integer loseEfficacy; } server/service/src/main/java/com/doumee/dao/business/model/ApplyChange.java
@@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import com.doumee.core.utils.Constants; import com.doumee.dao.business.vo.TaxesInvoicingVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; @@ -176,4 +178,17 @@ private Date endTime; public TaxesInvoicingVO getTaxesInvoicingVO(){ TaxesInvoicingVO taxesInvoicingVO = new TaxesInvoicingVO(); taxesInvoicingVO.setId(this.getId()); taxesInvoicingVO.setSolutionsName(this.getSolutionsName()); taxesInvoicingVO.setValidCode(this.getValidCode()); taxesInvoicingVO.setAddNum(this.getAddNum()); taxesInvoicingVO.setDelNum(this.getDelNum()); taxesInvoicingVO.setAmount(this.getFee()); taxesInvoicingVO.setType(Constants.ONE); return taxesInvoicingVO; } } server/service/src/main/java/com/doumee/dao/business/model/InsuranceApply.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import com.doumee.core.utils.Constants; import com.doumee.dao.business.vo.TaxesInvoicingVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; @@ -86,7 +87,6 @@ @ApiModelProperty(value = "å®é ä¿é©çæèµ·æ") @ExcelColumn(name="å®é ä¿é©çæèµ·æ") private Date startTime; @ApiModelProperty(value = "æè¿æä½æ¶é´") @@ -144,6 +144,9 @@ @TableField(exist = false) private Date taxesLast; @ApiModelProperty(value = "失æå©ä½å¤©æ°") @TableField(exist = false) private Integer loseEfficacyDays; @ApiModelProperty(value = "æå¡å¤©æ°") @TableField(exist = false) @@ -164,4 +167,17 @@ @ApiModelProperty(value = "å¤çä¼ä¸ç³è¯·ç¶æ 0åæ 1驳å") @TableField(exist = false) private int dealBackApply; public TaxesInvoicingVO getTaxesInvoicingVO(){ TaxesInvoicingVO taxesInvoicingVO = new TaxesInvoicingVO(); taxesInvoicingVO.setId(this.getId()); taxesInvoicingVO.setSolutionsName(this.getSolutionsName()); taxesInvoicingVO.setInsuranceCode(this.getCode()); taxesInvoicingVO.setInsuranceNum(this.getInsureNum()); taxesInvoicingVO.setStartTime(this.getStartTime()); taxesInvoicingVO.setAmount(this.getFee()); taxesInvoicingVO.setType(Constants.ZERO); return taxesInvoicingVO; } } server/service/src/main/java/com/doumee/dao/business/model/Taxes.java
@@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import com.doumee.core.utils.Constants; import com.doumee.dao.business.vo.TaxesInvoicingVO; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; @@ -67,6 +69,7 @@ @ApiModelProperty(value = "ä¼ä¸ç¼ç ï¼å ³ècompanyï¼", example = "1") @ExcelColumn(name="ä¼ä¸ç¼ç ï¼å ³ècompanyï¼") private Integer companyId; @ApiModelProperty(value = "æ¹æ¡ç¼ç ï¼å ³èsolutionsï¼", example = "1") @ExcelColumn(name="æ¹æ¡ç¼ç ï¼solutionsï¼") private Integer solutionId; @@ -156,6 +159,9 @@ @TableField(exist = false) private String imgurlFull; @ApiModelProperty(value = "ä¿åå·") @TableField(exist = false) private String insuranceCode; @ApiModelProperty(value = "æ¥è¯¢å¼å§æ¶é´") @TableField(exist = false) private Date startDate; @@ -169,4 +175,18 @@ @ApiModelProperty(value = "å²çº¢åå表") @TableField(exist = false) List<TaxDetial> delTaxList ;// public TaxesInvoicingVO getTaxesInvoicingVO(){ TaxesInvoicingVO taxesInvoicingVO = new TaxesInvoicingVO(); taxesInvoicingVO.setId(this.getId()); taxesInvoicingVO.setSolutionsName(this.getSolutionName()); taxesInvoicingVO.setInsuranceCode(this.getInsuranceCode()); taxesInvoicingVO.setAmount(this.getPrice()); taxesInvoicingVO.setType(Constants.TWO); return taxesInvoicingVO; } } server/service/src/main/java/com/doumee/dao/business/vo/TaxesInvoicingVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,60 @@ package com.doumee.dao.business.vo; import com.doumee.core.utils.Constants; import com.doumee.dao.business.model.InsuranceApply; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.apache.poi.ss.formula.functions.T; import java.math.BigDecimal; import java.util.Date; /** * ç´ä¿å¼ç¥¨ç±» * @author RenKang */ @Data public class TaxesInvoicingVO { @ApiModelProperty(value = "主é®") private Integer id; @ApiModelProperty(value = "ç±»å 0ä¿åç³è¯· 1å åä¿ç³è¯· 2å²çº¢å") private Integer type; @ApiModelProperty(value = "æ¹æ¡åç§°") private String solutionsName; @ApiModelProperty(value = "ä¿åå·") private String insuranceCode; @ApiModelProperty(value = "æ¹åå·") private String validCode; @ApiModelProperty(value = "æä¿äººæ°") private Integer insuranceNum; @ApiModelProperty(value = "å ä¿äººæ°") private Integer addNum; @ApiModelProperty(value = "åä¿äººæ°") private Integer delNum; @ApiModelProperty(value = "ä¿åçæèµ·æ") private Date startTime; @ApiModelProperty(value = "ä¿åçææ¢æ") private Date endTime; @ApiModelProperty(value = "éé¢") private BigDecimal amount; @ApiModelProperty(value = "å票å·") private String downCode; } server/service/src/main/java/com/doumee/service/business/TaxesService.java
@@ -2,8 +2,11 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.dto.DirectInvoicingDTO; import com.doumee.dao.business.dto.EntrustInvoicingDTO; import com.doumee.dao.business.model.Taxes; import com.doumee.dao.business.vo.TaxesInvoicingVO; import java.util.List; /** @@ -108,4 +111,16 @@ */ void entrustInvoicing(EntrustInvoicingDTO entrustInvoicingDTO); /** * ç´ææä¿æ°æ®æäº¤ * @param directInvoicingDTO */ void directInvoicing(DirectInvoicingDTO directInvoicingDTO); /** * æ¥è¯¢ç´ä¿æ°æ® * @param id * @return */ List<TaxesInvoicingVO> getDirectTaxes(Integer id); } server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -551,6 +551,8 @@ queryWrapper.selectAll(InsuranceApply.class); queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName); queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName); queryWrapper.select(" DATEDIFF( t.END_TIME ,now() ) AS loseEfficacyDays "); queryWrapper.select(" ( select count(1) from apply_detail ad where ad.apply_id = t.id ) as insureNum"); queryWrapper.select(" ( select sum(td.fee) from taxes ts inner join tax_detial td on ts.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ) as taxesMoney"); queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on ts.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast "); queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId); @@ -836,4 +838,5 @@ } server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java
@@ -9,27 +9,33 @@ import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.CompanyMapper; import com.doumee.dao.business.SolutionsMapper; import com.doumee.dao.business.TaxDetialMapper; import com.doumee.dao.business.TaxesMapper; import com.doumee.dao.business.dto.DirectInvoicingDTO; import com.doumee.dao.business.dto.DirectInvoicingDetailDTO; import com.doumee.dao.business.dto.EntrustInvoicingDTO; import com.doumee.dao.business.join.ApplyChangeJoinMapper; import com.doumee.dao.business.join.InsuranceApplyJoinMapper; import com.doumee.dao.business.join.TaxDetailJoinMapper; import com.doumee.dao.business.join.TaxesJoinMapper; import com.doumee.dao.business.model.*; import com.doumee.dao.business.vo.TaxesInvoicingVO; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.TaxesService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -57,6 +63,10 @@ private CompanyMapper companyMapper; @Autowired private InsuranceApplyJoinMapper insuranceApplyJoinMapper; @Autowired private ApplyChangeJoinMapper applyChangeJoinMapper; @Autowired private SolutionsMapper solutionsMapper; @Override public Integer create(Taxes taxes) { @@ -420,4 +430,231 @@ @Override public List<TaxesInvoicingVO> getDirectTaxes(Integer id){ InsuranceApply queryInsuranceApply = insuranceApplyJoinMapper.selectById(id); if(Objects.isNull(queryInsuranceApply)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } Solutions solutions = solutionsMapper.selectById(queryInsuranceApply.getSolutionId()); if(Objects.isNull(solutions)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°æ¹æ¡ä¿¡æ¯"); } if(!solutions.getType().equals(Constants.ZERO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éç´ä¿æ¹æ¡ä¿åï¼æ æ³è¿è¡è¯¥æä½"); } List<TaxesInvoicingVO> taxesInvoicingVOList = new ArrayList<>(); this.dealTaxesData(id,taxesInvoicingVOList); List<Taxes> taxesList = taxesJoinMapper.selectJoinList(Taxes.class,new MPJLambdaWrapper<Taxes>() .selectAll(Taxes.class) .selectAs(Solutions::getName,Taxes::getSolutionName) .selectAs(InsuranceApply::getCode,Taxes::getInsuranceCode) .leftJoin(Solutions.class,Solutions::getId,Taxes::getSolutionId) .leftJoin(InsuranceApply.class,InsuranceApply::getId,Taxes::getInsuranceApplyId) .eq(Taxes::getStatus,Constants.ONE) .eq(Taxes::getInsuranceApplyId,id) ); if(CollectionUtils.isNotEmpty(taxesList)){ for (Taxes taxes:taxesList) { TaxesInvoicingVO taxesInvoicingVO = taxes.getTaxesInvoicingVO(); taxesInvoicingVOList.add(taxesInvoicingVO); } } return taxesInvoicingVOList; } public void dealTaxesData(Integer id,List<TaxesInvoicingVO> taxesInvoicingVOList){ InsuranceApply insuranceApply = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, new MPJLambdaWrapper<InsuranceApply>() .selectAll(InsuranceApply.class) .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) .select(" ( select count(1) from apply_detail ad where ad.apply_id = t.id ) as insureNum") .notExists(" select 1 from taxes t1 inner join tax_detial t2 on t1.id = t2.tax_id where t2.type = 0 and t1.status != 2 and t.id = t2.INSURANCE_APPLY_ID ") .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()) .eq(InsuranceApply::getId,id) ); List<ApplyChange> applyChangeList = applyChangeJoinMapper.selectJoinList(ApplyChange.class,new MPJLambdaWrapper<ApplyChange>() .selectAll(ApplyChange.class) .selectAs(InsuranceApply::getCode,ApplyChange::getApplyCode) .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 0 ) as addNum ") .select("( select count(1) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID and ad.TYPE = 1 ) as delNum ") .select("( select ifnull(sum(ad.FEE),0) from apply_chagne_detail ad where t.id = ad.APPLY_CHANGE_ID ) as changeMoney" ) .notExists(" select 1 from taxes t1 inner join tax_detial t2 on t1.id = t2.tax_id where t2.type = 1 and t1.status != 2 and t.id = t2.APPLY_CHANGE_ID ") .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId) .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) .eq(ApplyChange::getStatus,Constants.ApplyChangeStatus.APPROVE.getKey()) .eq(ApplyChange::getType,Constants.ZERO) .eq(InsuranceApply::getId,id) ); if(CollectionUtils.isNotEmpty(applyChangeList)){ for (ApplyChange applyChange:applyChangeList) { insuranceApply.setFee(insuranceApply.getFee().subtract(applyChange.getFee())); TaxesInvoicingVO taxesInvoicingVO = applyChange.getTaxesInvoicingVO(); if(!Objects.isNull(insuranceApply)){ taxesInvoicingVO.setAmount(BigDecimal.ZERO); } taxesInvoicingVOList.add(taxesInvoicingVO); } } if(!Objects.isNull(insuranceApply)){ TaxesInvoicingVO taxesInvoicingVO = insuranceApply.getTaxesInvoicingVO(); taxesInvoicingVOList.add(taxesInvoicingVO); } } /** * ç´ä¿æ°æ®æäº¤ * @param directInvoicingDTO */ @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void directInvoicing(DirectInvoicingDTO directInvoicingDTO){ LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(Objects.isNull(directInvoicingDTO) || Objects.isNull(directInvoicingDTO.getInvoicingMoney()) || Objects.isNull(directInvoicingDTO.getType()) || Objects.isNull(directInvoicingDTO.getInvoicingDetailDTOList()) || StringUtils.isNotBlank(directInvoicingDTO.getAddress()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } if(!user.getType().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éä¼ä¸ç¨æ·æ æ³è¿è¡è¯¥ä¸å¡æ¥è¯¢"); } Company company = companyMapper.selectById(user.getCompanyId()); if(Objects.isNull(company)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°ä¼ä¸ä¿¡æ¯"); } InsuranceApply queryInsuranceApply = insuranceApplyJoinMapper.selectById(directInvoicingDTO.getId()); if(Objects.isNull(queryInsuranceApply)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } Solutions solutions = solutionsMapper.selectById(queryInsuranceApply.getSolutionId()); if(Objects.isNull(solutions)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°æ¹æ¡ä¿¡æ¯"); } if(!solutions.getType().equals(Constants.ZERO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"éç´ä¿æ¹æ¡ä¿åï¼æ æ³è¿è¡è¯¥æä½"); } Taxes taxes = new Taxes(); taxes.setCreator(user.getId()); taxes.setCreateDate(new Date()); taxes.setIsdeleted(Constants.ZERO); taxes.setStatus(Constants.ZERO); taxes.setCompanyId(company.getId()); taxes.setPrice(directInvoicingDTO.getInvoicingMoney()); taxes.setType(directInvoicingDTO.getType()); taxes.setTaxCode(company.getTaxCode()); taxes.setTaxAccount(company.getTaxAccount()); taxes.setTaxAddr(company.getTaxAddr()); taxes.setAddr(directInvoicingDTO.getAddress()); taxes.setCompanyName(company.getName()); taxes.setApplyType(Constants.ONE); taxes.setSolutionId(solutions.getId()); taxes.setInsuranceApplyId(queryInsuranceApply.getId()); taxesMapper.insert(taxes); List<TaxesInvoicingVO> taxesInvoicingVOList = new ArrayList<>(); this.dealTaxesData(queryInsuranceApply.getId(),taxesInvoicingVOList); List<TaxDetial> taxDetailList = new ArrayList<>(); for (TaxesInvoicingVO taxesInvoicingVO:taxesInvoicingVOList) { if(Objects.isNull(taxesInvoicingVO) || Objects.isNull(taxesInvoicingVO.getAmount()) || Objects.isNull(taxesInvoicingVO.getId()) || Objects.isNull(taxesInvoicingVO.getType()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } TaxDetial taxDetial = new TaxDetial(); taxDetial.setCreator(user.getId()); taxDetial.setCreateDate(new Date()); taxDetial.setIsdeleted(Constants.ZERO); taxDetial.setTaxId(taxes.getId()); taxDetial.setTotalFee(taxesInvoicingVO.getAmount()); taxDetial.setFee(taxesInvoicingVO.getAmount()); if(taxesInvoicingVO.getType().equals(Constants.ZERO)){ taxDetial.setInsuranceApplyId(taxesInvoicingVO.getId()); taxDetial.setType(taxesInvoicingVO.getType()); }else if(taxesInvoicingVO.getType().equals(Constants.ONE)){ taxDetial.setApplyChangeId(taxesInvoicingVO.getId()); taxDetial.setType(taxesInvoicingVO.getType()); } taxDetailList.add(taxDetial); } List<Integer> chIdList = directInvoicingDTO.getInvoicingDetailDTOList(); if(CollectionUtils.isNotEmpty(chIdList)){ for (Integer id:chIdList) { Taxes chTaxes = taxesMapper.selectById(id); if(Objects.isNull(chTaxes)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"æªæ¥è¯¢å°éæ©å²çº¢æ°æ®"); } if(!(chTaxes.getStatus().equals(Constants.ZERO)||chTaxes.getStatus().equals(Constants.ONE))){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"å²çº¢æ°æ®ç¶æé误"); } TaxDetial taxDetial = new TaxDetial(); taxDetial.setCreator(user.getId()); taxDetial.setCreateDate(new Date()); taxDetial.setIsdeleted(Constants.ZERO); taxDetial.setTaxId(taxes.getId()); taxDetial.setTotalFee(chTaxes.getPrice()); taxDetial.setFee(chTaxes.getPrice()); taxDetial.setDelTaxId(chTaxes.getId()); taxDetial.setType(Constants.TWO); taxDetailList.add(taxDetial); } } if(CollectionUtils.isNotEmpty(taxDetailList)){ taxDetailJoinMapper.insertBatchSomeColumn(taxDetailList); }else{ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"æ å¯å¼ç¥¨æ°æ®ï¼æä½å¤±è´¥"); } // List<DirectInvoicingDetailDTO> directInvoicingDetailDTOList = directInvoicingDTO.getDirectInvoicingDetailDTOList(); // for (DirectInvoicingDetailDTO directInvoicingDetailDTO:directInvoicingDetailDTOList) { // if(Objects.isNull(directInvoicingDetailDTO) // || Objects.isNull(directInvoicingDetailDTO.getId()) // || Objects.isNull(directInvoicingDetailDTO.getType()) // || Objects.isNull(directInvoicingDetailDTO.getFee()) // ){ // throw new BusinessException(ResponseStatus.BAD_REQUEST); // } // // if(directInvoicingDetailDTO.getType().equals(Constants.ZERO)){ // //ä¿å // InsuranceApply insuranceApply = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, // new MPJLambdaWrapper<InsuranceApply>() // .selectAll(InsuranceApply.class) // .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) // .select(" ( select count(1) from apply_detail ad where ad.apply_id = t.id ) as insureNum") // .notExists(" select 1 from taxes t1 inner join tax_detial t2 on t1.id = t2.tax_id where t2.type = 0 and t1.status != 2 and t.id = t2.INSURANCE_APPLY_ID ") // .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()) // .eq(InsuranceApply::getId,directInvoicingDetailDTO.getId()) // ); // if(Objects.isNull(insuranceApply)){ // throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"ä¿åå·ã"+insuranceApply.getCode()+"ãæªæ¥è¯¢å°ä¿åä¿¡æ¯"); // } // // // // }else if(directInvoicingDetailDTO.getType().equals(Constants.ZERO)){ // //å åä¿ // }else{ // //å²çº¢å // } // // // } // taxDetailJoinMapper.insertBatchSomeColumn(taxDetialList); } }