yzc 1 год назад
Родитель
Сommit
febb425d15
21 измененных файлов с 706 добавлено и 1 удалено
  1. 10 0
      hx-common/src/main/java/com/fjhx/common/enums/CodingRuleEnum.java
  2. 76 0
      hx-oa/src/main/java/com/fjhx/oa/controller/invoice/InvoiceTaxDeductionController.java
  3. 24 0
      hx-oa/src/main/java/com/fjhx/oa/controller/invoice/InvoiceTaxDeductionDetailsController.java
  4. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/invoice/dto/InvoiceTaxDeductionDetailsDto.java
  5. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/invoice/dto/InvoiceTaxDeductionDetailsSelectDto.java
  6. 23 0
      hx-oa/src/main/java/com/fjhx/oa/entity/invoice/dto/InvoiceTaxDeductionDto.java
  7. 22 0
      hx-oa/src/main/java/com/fjhx/oa/entity/invoice/dto/InvoiceTaxDeductionSelectDto.java
  8. 62 0
      hx-oa/src/main/java/com/fjhx/oa/entity/invoice/po/InvoiceTaxDeduction.java
  9. 39 0
      hx-oa/src/main/java/com/fjhx/oa/entity/invoice/po/InvoiceTaxDeductionDetails.java
  10. 17 0
      hx-oa/src/main/java/com/fjhx/oa/entity/invoice/vo/InvoiceTaxDeductionDetailsVo.java
  11. 22 0
      hx-oa/src/main/java/com/fjhx/oa/entity/invoice/vo/InvoiceTaxDeductionVo.java
  12. 74 0
      hx-oa/src/main/java/com/fjhx/oa/flow/InvoiceTaxDeductionFlow.java
  13. 24 0
      hx-oa/src/main/java/com/fjhx/oa/mapper/invoice/InvoiceTaxDeductionDetailsMapper.java
  14. 26 0
      hx-oa/src/main/java/com/fjhx/oa/mapper/invoice/InvoiceTaxDeductionMapper.java
  15. 22 0
      hx-oa/src/main/java/com/fjhx/oa/service/invoice/InvoiceTaxDeductionDetailsService.java
  16. 42 0
      hx-oa/src/main/java/com/fjhx/oa/service/invoice/InvoiceTaxDeductionService.java
  17. 30 0
      hx-oa/src/main/java/com/fjhx/oa/service/invoice/impl/InvoiceTaxDeductionDetailsServiceImpl.java
  18. 127 0
      hx-oa/src/main/java/com/fjhx/oa/service/invoice/impl/InvoiceTaxDeductionServiceImpl.java
  19. 1 1
      hx-oa/src/main/java/com/fjhx/oa/service/personal/impl/PersonalInvoiceServiceImpl.java
  20. 10 0
      hx-oa/src/main/resources/mapper/invoice/InvoiceTaxDeductionDetailsMapper.xml
  21. 21 0
      hx-oa/src/main/resources/mapper/invoice/InvoiceTaxDeductionMapper.xml

+ 10 - 0
hx-common/src/main/java/com/fjhx/common/enums/CodingRuleEnum.java

@@ -165,6 +165,16 @@ public enum CodingRuleEnum {
             getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
     )),
 
+    /**
+     * 个人电子发票申请
+     */
+    INVOICE_TAX_DEDUCTION("invoice_tax_deduction", "电子发票抵税申请", Arrays.asList(
+            getDefaultRule(RuleTypeEnum.CUSTOMIZE, "PEI-"),
+            getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM-"),
+            getDefaultRule(RuleTypeEnum.AUTOINCREMENT, "3")
+    )),
+
+
     ;
 
 

+ 76 - 0
hx-oa/src/main/java/com/fjhx/oa/controller/invoice/InvoiceTaxDeductionController.java

@@ -0,0 +1,76 @@
+package com.fjhx.oa.controller.invoice;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.invoice.dto.InvoiceTaxDeductionDto;
+import com.fjhx.oa.entity.invoice.dto.InvoiceTaxDeductionSelectDto;
+import com.fjhx.oa.entity.invoice.vo.InvoiceTaxDeductionVo;
+import com.fjhx.oa.service.invoice.InvoiceTaxDeductionService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 电子发票抵扣申请 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@RestController
+@RequestMapping("/invoiceTaxDeduction")
+public class InvoiceTaxDeductionController {
+
+    @Autowired
+    private InvoiceTaxDeductionService invoiceTaxDeductionService;
+
+    /**
+     * 电子发票抵扣申请分页
+     */
+    @PostMapping("/page")
+    public Page<InvoiceTaxDeductionVo> page(@RequestBody InvoiceTaxDeductionSelectDto dto) {
+        return invoiceTaxDeductionService.getPage(dto);
+    }
+
+    /**
+     * 电子发票抵扣申请明细
+     */
+    @PostMapping("/detail")
+    public InvoiceTaxDeductionVo detail(@RequestBody BaseSelectDto dto) {
+        return invoiceTaxDeductionService.detail(dto.getId());
+    }
+
+    /**
+     * 电子发票抵扣申请新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody InvoiceTaxDeductionDto invoiceTaxDeductionDto) {
+        invoiceTaxDeductionService.addOrEdit(invoiceTaxDeductionDto);
+    }
+
+    /**
+     * 电子发票抵扣申请编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody InvoiceTaxDeductionDto invoiceTaxDeductionDto) {
+        invoiceTaxDeductionService.addOrEdit(invoiceTaxDeductionDto);
+    }
+
+    /**
+     * 电子发票抵扣申请删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        invoiceTaxDeductionService.delete(dto.getId());
+    }
+
+    @PostMapping("/cancellation")
+    public void cancellation(@RequestBody BaseSelectDto dto) {
+        invoiceTaxDeductionService.cancellation(dto.getId());
+    }
+
+}

+ 24 - 0
hx-oa/src/main/java/com/fjhx/oa/controller/invoice/InvoiceTaxDeductionDetailsController.java

@@ -0,0 +1,24 @@
+package com.fjhx.oa.controller.invoice;
+
+import com.fjhx.oa.service.invoice.InvoiceTaxDeductionDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 电子发票抵扣申请明细 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@RestController
+@RequestMapping("/invoiceTaxDeductionDetails")
+public class InvoiceTaxDeductionDetailsController {
+
+    @Autowired
+    private InvoiceTaxDeductionDetailsService invoiceTaxDeductionDetailsService;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/invoice/dto/InvoiceTaxDeductionDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.invoice.dto;
+
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeductionDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 电子发票抵扣申请明细新增编辑入参实体
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@Getter
+@Setter
+public class InvoiceTaxDeductionDetailsDto extends InvoiceTaxDeductionDetails {
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/invoice/dto/InvoiceTaxDeductionDetailsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.invoice.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 电子发票抵扣申请明细列表查询入参实体
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@Getter
+@Setter
+public class InvoiceTaxDeductionDetailsSelectDto extends BaseSelectDto {
+
+}

+ 23 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/invoice/dto/InvoiceTaxDeductionDto.java

@@ -0,0 +1,23 @@
+package com.fjhx.oa.entity.invoice.dto;
+
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeduction;
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeductionDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 电子发票抵扣申请新增编辑入参实体
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@Getter
+@Setter
+public class InvoiceTaxDeductionDto extends InvoiceTaxDeduction {
+
+    List<InvoiceTaxDeductionDetails> invoiceTaxDeductionDetailsList;
+
+
+}

+ 22 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/invoice/dto/InvoiceTaxDeductionSelectDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.oa.entity.invoice.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 电子发票抵扣申请列表查询入参实体
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@Getter
+@Setter
+public class InvoiceTaxDeductionSelectDto extends BaseSelectDto {
+
+    /**
+     * 审批状态
+     */
+    private Integer status;
+
+}

+ 62 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/invoice/po/InvoiceTaxDeduction.java

@@ -0,0 +1,62 @@
+package com.fjhx.oa.entity.invoice.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 电子发票抵扣申请
+ * </p>
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@Getter
+@Setter
+@TableName("invoice_tax_deduction")
+public class InvoiceTaxDeduction extends BasePo {
+
+    /**
+     * 申请时间
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date applyTime;
+
+    /**
+     * 审批状态
+     */
+    private Integer status;
+
+    /**
+     * 流程id
+     */
+    private Long flowId;
+
+    /**
+     * 编号
+     */
+    private String code;
+
+    /**
+     * 发票金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 抵扣工资月
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM")
+    private Date deductionSalaryMonth;
+
+    /**
+     * 公司id
+     */
+    private Long companyId;
+
+}

+ 39 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/invoice/po/InvoiceTaxDeductionDetails.java

@@ -0,0 +1,39 @@
+package com.fjhx.oa.entity.invoice.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fjhx.file.entity.ObsFile;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * <p>
+ * 电子发票抵扣申请明细
+ * </p>
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@Getter
+@Setter
+@TableName("invoice_tax_deduction_details")
+public class InvoiceTaxDeductionDetails extends BasePo {
+
+    /**
+     * 电子发票抵扣ID
+     */
+    private Long invoiceTaxDeductionId;
+
+    /**
+     * 发票金额
+     */
+    private BigDecimal amount;
+
+    @TableField(exist = false)
+    private List<ObsFile> fileList;
+
+}

+ 17 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/invoice/vo/InvoiceTaxDeductionDetailsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.oa.entity.invoice.vo;
+
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeductionDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 电子发票抵扣申请明细列表查询返回值实体
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@Getter
+@Setter
+public class InvoiceTaxDeductionDetailsVo extends InvoiceTaxDeductionDetails {
+
+}

+ 22 - 0
hx-oa/src/main/java/com/fjhx/oa/entity/invoice/vo/InvoiceTaxDeductionVo.java

@@ -0,0 +1,22 @@
+package com.fjhx.oa.entity.invoice.vo;
+
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeduction;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 电子发票抵扣申请列表查询返回值实体
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@Getter
+@Setter
+public class InvoiceTaxDeductionVo extends InvoiceTaxDeduction {
+
+    List<InvoiceTaxDeductionDetailsVo> invoiceTaxDeductionDetailsList;
+    private String createUserName;
+
+}

+ 74 - 0
hx-oa/src/main/java/com/fjhx/oa/flow/InvoiceTaxDeductionFlow.java

@@ -0,0 +1,74 @@
+package com.fjhx.oa.flow;
+
+import com.alibaba.fastjson.JSONObject;
+import com.fjhx.common.enums.CodingRuleEnum;
+import com.fjhx.common.enums.FlowStatusEnum1;
+import com.fjhx.common.service.coding.CodingRuleService;
+import com.fjhx.flow.core.FlowDelegate;
+import com.fjhx.flow.enums.FlowStatusEnum;
+import com.fjhx.oa.entity.invoice.dto.InvoiceTaxDeductionDto;
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeduction;
+import com.fjhx.oa.service.invoice.InvoiceTaxDeductionService;
+import com.ruoyi.common.core.domain.BasePo;
+import com.ruoyi.common.utils.SecurityUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+@Component
+public class InvoiceTaxDeductionFlow extends FlowDelegate {
+
+    @Autowired
+    private InvoiceTaxDeductionService invoiceTaxDeductionService;
+    @Autowired
+    private CodingRuleService codingRuleService;
+
+    @Override
+    public String getFlowKey() {
+        return "invoice_tax_deduction_flow";
+    }
+
+    @Override
+    public Long start(Long flowId, JSONObject submitData) {
+        InvoiceTaxDeductionDto dto = submitData.toJavaObject(InvoiceTaxDeductionDto.class);
+        dto.setFlowId(flowId);
+
+        dto.setCode(codingRuleService.createCode(CodingRuleEnum.INVOICE_TAX_DEDUCTION.getKey(), null));
+        dto.setStatus(FlowStatusEnum1.UNDER_REVIEW.getKey());
+
+        invoiceTaxDeductionService.addOrEdit(dto);
+
+        return dto.getId();
+    }
+
+    @Override
+    public void end(Long flowId, Long businessId, JSONObject submitData) {
+        invoiceTaxDeductionService.update(q -> q
+                .eq(InvoiceTaxDeduction::getId, businessId)
+                .set(InvoiceTaxDeduction::getStatus, FlowStatusEnum1.PASS.getKey())
+                .set(BasePo::getUpdateTime, new Date())
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+        );
+    }
+
+    @Override
+    public void relaunch(Long flowId, Long businessId, FlowStatusEnum flowStatus, JSONObject submitData) {
+        start(flowId, submitData);
+    }
+
+    @Override
+    public void reject(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
+        invoiceTaxDeductionService.update(q -> q
+                .eq(InvoiceTaxDeduction::getId, businessId)
+                .set(InvoiceTaxDeduction::getStatus, FlowStatusEnum1.REJECT.getKey())
+                .set(BasePo::getUpdateTime, new Date())
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+        );
+    }
+
+    @Override
+    public void cancellation(Long flowId, Long businessId, FlowStatusEnum flowStatus) {
+        invoiceTaxDeductionService.cancellation(businessId);
+    }
+}

+ 24 - 0
hx-oa/src/main/java/com/fjhx/oa/mapper/invoice/InvoiceTaxDeductionDetailsMapper.java

@@ -0,0 +1,24 @@
+package com.fjhx.oa.mapper.invoice;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeductionDetails;
+import com.fjhx.oa.entity.invoice.vo.InvoiceTaxDeductionDetailsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 电子发票抵扣申请明细 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2024-04-11
+ */
+public interface InvoiceTaxDeductionDetailsMapper extends BaseMapper<InvoiceTaxDeductionDetails> {
+
+
+    List<InvoiceTaxDeductionDetailsVo> getList(@Param("ew") IWrapper wrapper);
+}

+ 26 - 0
hx-oa/src/main/java/com/fjhx/oa/mapper/invoice/InvoiceTaxDeductionMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.oa.mapper.invoice;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeduction;
+import com.fjhx.oa.entity.invoice.vo.InvoiceTaxDeductionVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 电子发票抵扣申请 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2024-04-11
+ */
+public interface InvoiceTaxDeductionMapper extends BaseMapper<InvoiceTaxDeduction> {
+
+    /**
+     * 电子发票抵扣申请分页
+     */
+    Page<InvoiceTaxDeductionVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<InvoiceTaxDeduction> wrapper);
+
+}

+ 22 - 0
hx-oa/src/main/java/com/fjhx/oa/service/invoice/InvoiceTaxDeductionDetailsService.java

@@ -0,0 +1,22 @@
+package com.fjhx.oa.service.invoice;
+
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeductionDetails;
+import com.fjhx.oa.entity.invoice.vo.InvoiceTaxDeductionDetailsVo;
+import com.ruoyi.common.core.service.BaseService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 电子发票抵扣申请明细 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-04-11
+ */
+public interface InvoiceTaxDeductionDetailsService extends BaseService<InvoiceTaxDeductionDetails> {
+
+    List<InvoiceTaxDeductionDetailsVo> getList(IWrapper wrapper);
+}

+ 42 - 0
hx-oa/src/main/java/com/fjhx/oa/service/invoice/InvoiceTaxDeductionService.java

@@ -0,0 +1,42 @@
+package com.fjhx.oa.service.invoice;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.oa.entity.invoice.dto.InvoiceTaxDeductionDto;
+import com.fjhx.oa.entity.invoice.dto.InvoiceTaxDeductionSelectDto;
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeduction;
+import com.fjhx.oa.entity.invoice.vo.InvoiceTaxDeductionVo;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 电子发票抵扣申请 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-04-11
+ */
+public interface InvoiceTaxDeductionService extends BaseService<InvoiceTaxDeduction> {
+
+    /**
+     * 电子发票抵扣申请分页
+     */
+    Page<InvoiceTaxDeductionVo> getPage(InvoiceTaxDeductionSelectDto dto);
+
+    /**
+     * 电子发票抵扣申请明细
+     */
+    InvoiceTaxDeductionVo detail(Long id);
+
+    /**
+     * 电子发票抵扣申请新增
+     */
+    void addOrEdit(InvoiceTaxDeductionDto invoiceTaxDeductionDto);
+
+    /**
+     * 电子发票抵扣申请删除
+     */
+    void delete(Long id);
+
+    void cancellation(Long businessId);
+}

+ 30 - 0
hx-oa/src/main/java/com/fjhx/oa/service/invoice/impl/InvoiceTaxDeductionDetailsServiceImpl.java

@@ -0,0 +1,30 @@
+package com.fjhx.oa.service.invoice.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeductionDetails;
+import com.fjhx.oa.entity.invoice.vo.InvoiceTaxDeductionDetailsVo;
+import com.fjhx.oa.mapper.invoice.InvoiceTaxDeductionDetailsMapper;
+import com.fjhx.oa.service.invoice.InvoiceTaxDeductionDetailsService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 电子发票抵扣申请明细 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@Service
+public class InvoiceTaxDeductionDetailsServiceImpl extends ServiceImpl<InvoiceTaxDeductionDetailsMapper, InvoiceTaxDeductionDetails> implements InvoiceTaxDeductionDetailsService {
+
+    @Override
+    public List<InvoiceTaxDeductionDetailsVo> getList(IWrapper wrapper) {
+        return baseMapper.getList(wrapper);
+    }
+
+}

+ 127 - 0
hx-oa/src/main/java/com/fjhx/oa/service/invoice/impl/InvoiceTaxDeductionServiceImpl.java

@@ -0,0 +1,127 @@
+package com.fjhx.oa.service.invoice.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.enums.FlowStatusEnum1;
+import com.fjhx.common.utils.AuthorityUtils;
+import com.fjhx.file.utils.ObsFileUtil;
+import com.fjhx.flow.entity.flow.po.FlowExample;
+import com.fjhx.flow.enums.FlowStatusEnum;
+import com.fjhx.flow.service.flow.FlowExampleService;
+import com.fjhx.oa.entity.invoice.dto.InvoiceTaxDeductionDto;
+import com.fjhx.oa.entity.invoice.dto.InvoiceTaxDeductionSelectDto;
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeduction;
+import com.fjhx.oa.entity.invoice.po.InvoiceTaxDeductionDetails;
+import com.fjhx.oa.entity.invoice.vo.InvoiceTaxDeductionDetailsVo;
+import com.fjhx.oa.entity.invoice.vo.InvoiceTaxDeductionVo;
+import com.fjhx.oa.mapper.invoice.InvoiceTaxDeductionMapper;
+import com.fjhx.oa.service.invoice.InvoiceTaxDeductionDetailsService;
+import com.fjhx.oa.service.invoice.InvoiceTaxDeductionService;
+import com.ruoyi.common.core.domain.BasePo;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.ruoyi.common.utils.wrapper.SqlField;
+import com.ruoyi.system.utils.UserUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * <p>
+ * 电子发票抵扣申请 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-04-11
+ */
+@Service
+public class InvoiceTaxDeductionServiceImpl extends ServiceImpl<InvoiceTaxDeductionMapper, InvoiceTaxDeduction> implements InvoiceTaxDeductionService {
+
+    @Autowired
+    private FlowExampleService flowExampleService;
+    @Autowired
+    private InvoiceTaxDeductionDetailsService invoiceTaxDeductionDetailsService;
+
+    @Override
+    public Page<InvoiceTaxDeductionVo> getPage(InvoiceTaxDeductionSelectDto dto) {
+        IWrapper<InvoiceTaxDeduction> wrapper = getWrapper();
+
+        //权限过滤
+        AuthorityUtils.cofAuthority("itd", InvoiceTaxDeduction::getCompanyId, wrapper);
+
+        wrapper.keyword(dto.getKeyword(),
+                new SqlField("itd", InvoiceTaxDeduction::getCode),
+                new SqlField("itd", InvoiceTaxDeduction::getAmount)
+        );
+        wrapper.eq("itd", InvoiceTaxDeduction::getStatus, dto.getStatus());
+
+        wrapper.orderByDesc("itd", InvoiceTaxDeduction::getId);
+        Page<InvoiceTaxDeductionVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<InvoiceTaxDeductionVo> records = page.getRecords();
+        setInfo(records);
+        return page;
+    }
+
+    @Override
+    public InvoiceTaxDeductionVo detail(Long id) {
+        InvoiceTaxDeduction InvoiceTaxDeduction = this.getById(id);
+        InvoiceTaxDeductionVo result = BeanUtil.toBean(InvoiceTaxDeduction, InvoiceTaxDeductionVo.class);
+        setInfo(Arrays.asList(result));
+        List<InvoiceTaxDeductionDetailsVo> list = invoiceTaxDeductionDetailsService.getList(IWrapper.getWrapper().eq("itdd", InvoiceTaxDeductionDetails::getInvoiceTaxDeductionId, result.getId()));
+        result.setInvoiceTaxDeductionDetailsList(list);
+        return result;
+    }
+
+    private void setInfo(List<InvoiceTaxDeductionVo> records) {
+        if (ObjectUtil.isEmpty(records)) {
+            return;
+        }
+        UserUtil.assignmentNickName(records, InvoiceTaxDeductionVo::getCreateUser, InvoiceTaxDeductionVo::setCreateUserName);
+    }
+
+    @DSTransactional
+    @Override
+    public void addOrEdit(InvoiceTaxDeductionDto dto) {
+        dto.setCompanyId(SecurityUtils.getCompanyId());
+        this.saveOrUpdate(dto);
+        List<InvoiceTaxDeductionDetails> detailsList = dto.getInvoiceTaxDeductionDetailsList();
+        detailsList.stream().forEach(item -> item.setInvoiceTaxDeductionId(dto.getId()));
+        invoiceTaxDeductionDetailsService.editLinked(detailsList, InvoiceTaxDeductionDetails::getInvoiceTaxDeductionId, dto.getId());
+        for (InvoiceTaxDeductionDetails details : detailsList) {
+            ObsFileUtil.editFile(details.getFileList(), dto.getId());
+        }
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+    @Override
+    public void cancellation(Long businessId) {
+        InvoiceTaxDeduction byId = getById(businessId);
+        this.update(q -> q
+                .eq(InvoiceTaxDeduction::getId, businessId)
+                .set(InvoiceTaxDeduction::getStatus, FlowStatusEnum1.CANCELLATION.getKey())
+                .set(BasePo::getUpdateTime, new Date())
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+        );
+
+        //销毁审批中的流程
+        flowExampleService.update(q -> q
+                .eq(FlowExample::getId, byId.getFlowId())
+                .in(FlowExample::getStatus, FlowStatusEnum.READY_START.getKey(), FlowStatusEnum.IN_PROGRESS.getKey())
+                .set(FlowExample::getStatus, FlowStatusEnum.CANCELLATION.getKey())
+                .set(BasePo::getUpdateUser, SecurityUtils.getUserId())
+                .set(BasePo::getUpdateTime, new Date())
+        );
+    }
+
+}

+ 1 - 1
hx-oa/src/main/java/com/fjhx/oa/service/personal/impl/PersonalInvoiceServiceImpl.java

@@ -56,7 +56,7 @@ public class PersonalInvoiceServiceImpl extends ServiceImpl<PersonalInvoiceMappe
                 new SqlField("pi", PersonalInvoice::getAmount),
                 new SqlField("pi", PersonalInvoice::getRemark)
         );
-        wrapper.eq("su", PersonalInvoice::getStatus, dto.getStatus());
+        wrapper.eq("pi", PersonalInvoice::getStatus, dto.getStatus());
 
         wrapper.orderByDesc("pi", PersonalInvoice::getId);
         Page<PersonalInvoiceVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);

+ 10 - 0
hx-oa/src/main/resources/mapper/invoice/InvoiceTaxDeductionDetailsMapper.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.oa.mapper.invoice.InvoiceTaxDeductionDetailsMapper">
+    <select id="getList" resultType="com.fjhx.oa.entity.invoice.vo.InvoiceTaxDeductionDetailsVo">
+        select itdd.*
+        from invoice_tax_deduction_details itdd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 21 - 0
hx-oa/src/main/resources/mapper/invoice/InvoiceTaxDeductionMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.oa.mapper.invoice.InvoiceTaxDeductionMapper">
+    <select id="getPage" resultType="com.fjhx.oa.entity.invoice.vo.InvoiceTaxDeductionVo">
+        select itd.id,
+               itd.apply_time,
+               itd.status,
+               itd.flow_id,
+               itd.code,
+               itd.amount,
+               itd.deduction_salary_month,
+               itd.company_id,
+               itd.create_user,
+               itd.create_time,
+               itd.update_user,
+               itd.update_time
+        from invoice_tax_deduction itd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>