Ver Fonte

'开发客户发票信息表-导出接口'

james há 1 ano atrás
pai
commit
edbb160323

+ 25 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/controller/web/CrmInvoiceInfoController.java

@@ -1,10 +1,13 @@
 package com.usky.iot.controller.web;
 
 
+import com.usky.common.core.utils.poi.ExcelUtil;
 import com.usky.common.core.bean.ApiResult;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.iot.domain.CrmInvoiceInfo;
 import com.usky.iot.service.CrmInvoiceInfoService;
+import com.usky.iot.service.vo.CrmCustomInfoExportVO;
+import com.usky.iot.service.vo.CrmInvoiceInfoExportVO;
 import com.usky.iot.service.vo.CrmInvoiceInfoRequest;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -14,6 +17,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
 /**
  * <p>
  * 客户发票信息表 前端控制器
@@ -40,10 +47,28 @@ public class CrmInvoiceInfoController {
         return ApiResult.success();
     }
 
+    /**
+     * 分页
+     * @param crmInvoiceInfoRequest
+     * @return
+     */
     @PostMapping("/page")
     public ApiResult<CommonPage<CrmInvoiceInfo>> page(@RequestBody CrmInvoiceInfoRequest crmInvoiceInfoRequest){
         return ApiResult.success(crmInvoiceInfoService.page(crmInvoiceInfoRequest));
     }
 
+    /**
+     * 导出
+     * @param crmInvoiceInfoRequest
+     * @param response
+     * @throws IOException
+     */
+    @PostMapping("export")
+    public void export(@RequestBody CrmInvoiceInfoRequest crmInvoiceInfoRequest, HttpServletResponse response) throws IOException{
+        List<CrmInvoiceInfoExportVO> list = crmInvoiceInfoService.export(crmInvoiceInfoRequest);
+        ExcelUtil<CrmInvoiceInfoExportVO> util = new ExcelUtil<CrmInvoiceInfoExportVO>(CrmInvoiceInfoExportVO.class);
+        util.exportExcel(response,list,"开票信息","开票信息");
+    }
+
 }
 

+ 4 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/mapper/CrmInvoiceInfoMapper.java

@@ -8,6 +8,8 @@ import com.usky.iot.service.vo.CrmInvoiceInfoRequest;
 import com.usky.iot.service.vo.CrmInvoiceInfoVO;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * <p>
  * 客户发票信息表 Mapper 接口
@@ -18,4 +20,6 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface CrmInvoiceInfoMapper extends CrudMapper<CrmInvoiceInfo> {
     Page<CrmInvoiceInfo> page(IPage<CrmInvoiceInfo> page, @Param("gr")CrmInvoiceInfoRequest crmInvoiceInfoRequest);
+
+    List<CrmInvoiceInfo> export(@Param("gr")CrmInvoiceInfoRequest crmInvoiceInfoRequest);
 }

+ 5 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/CrmInvoiceInfoService.java

@@ -3,9 +3,12 @@ package com.usky.iot.service;
 import com.usky.common.core.bean.CommonPage;
 import com.usky.iot.domain.CrmInvoiceInfo;
 import com.usky.common.mybatis.core.CrudService;
+import com.usky.iot.service.vo.CrmInvoiceInfoExportVO;
 import com.usky.iot.service.vo.CrmInvoiceInfoRequest;
 import org.springframework.web.bind.annotation.RequestBody;
 
+import java.util.List;
+
 /**
  * <p>
  * 客户发票信息表 服务类
@@ -19,4 +22,6 @@ public interface CrmInvoiceInfoService extends CrudService<CrmInvoiceInfo> {
     void add(CrmInvoiceInfo invoiceInfo);
 
     CommonPage<CrmInvoiceInfo> page(CrmInvoiceInfoRequest crmInvoiceInfoRequest);
+
+    List<CrmInvoiceInfoExportVO> export(CrmInvoiceInfoRequest crmInvoiceInfoRequest);
 }

+ 38 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/impl/CrmInvoiceInfoServiceImpl.java

@@ -14,12 +14,15 @@ import com.usky.iot.mapper.CrmInvoiceInfoMapper;
 import com.usky.iot.service.CrmCustomInfoService;
 import com.usky.iot.service.CrmInvoiceInfoService;
 import com.usky.common.mybatis.core.AbstractCrudService;
+import com.usky.iot.service.vo.CrmInvoiceInfoExportVO;
 import com.usky.iot.service.vo.CrmInvoiceInfoRequest;
 import com.usky.iot.service.vo.CrmInvoiceInfoVO;
+import org.apache.commons.lang.time.DateFormatUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -52,4 +55,39 @@ public class CrmInvoiceInfoServiceImpl extends AbstractCrudService<CrmInvoiceInf
         return new CommonPage<>(page.getRecords(),page.getTotal(),page.getSize(),page.getCurrent());
     }
 
+    @Override
+    public List<CrmInvoiceInfoExportVO> export(CrmInvoiceInfoRequest crmInvoiceInfoRequest){
+        List<CrmInvoiceInfoExportVO> list = new ArrayList<>();
+
+        List<CrmInvoiceInfo> list1 = baseMapper.export(crmInvoiceInfoRequest);
+        if(CollectionUtils.isNotEmpty(list1)){
+            for(int i=0;i<list1.size();i++){
+                CrmInvoiceInfoExportVO exportVO = new CrmInvoiceInfoExportVO();
+                exportVO.setProjectId(list1.get(i).getProjectId());
+                exportVO.setInvoiceTitle(list1.get(i).getInvoiceTitle());
+                exportVO.setDutyId(list1.get(i).getDutyId());
+                if(list1.get(i).getInvoiceAttribute() == 1){  //发票性质;1:电子发票,2:纸质发票
+                    exportVO.setInvoiceAttributeName("电子发票");
+                }else{
+                    exportVO.setInvoiceAttributeName("纸质发票");
+                }
+                if(list1.get(i).getInvoiceType() == 1){ //发票类型;1:普票,2:专票
+                    exportVO.setInvoiceTypeName("普票");
+                }else{
+                    exportVO.setInvoiceTypeName("专票");
+                }
+                exportVO.setAmount(list1.get(i).getAmount().toString());
+                exportVO.setApplicant(list1.get(i).getApplicant());
+                exportVO.setPhone(list1.get(i).getPhone());
+                exportVO.setEmail(list1.get(i).getEmail());
+                exportVO.setSendAddress(list1.get(i).getSendAddress());
+                exportVO.setPaymentReceipt(list1.get(i).getPaymentReceipt());
+                exportVO.setCreateTime(list1.get(i).getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+
+                list.add(exportVO);
+            }
+        }
+        return list;
+    }
+
 }

+ 90 - 0
service-iot/service-iot-biz/src/main/java/com/usky/iot/service/vo/CrmInvoiceInfoExportVO.java

@@ -0,0 +1,90 @@
+package com.usky.iot.service.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+import com.usky.common.core.annotation.Excel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+public class CrmInvoiceInfoExportVO  implements Serializable {
+
+    /**
+     * 项目编号
+     */
+    @Excel(name = "项目编号")
+    private Integer projectId;
+
+    /**
+     * 发票抬头
+     */
+    @Excel(name = "发票抬头")
+    private String invoiceTitle;
+
+    /**
+     * 税号
+     */
+    @Excel(name = "税号")
+    private String dutyId;
+
+    /**
+     * 发票性质;1:电子发票,2:纸质发票
+     */
+    @Excel(name = "发票性质", readConverterExp = "1=电子发票,2=纸质发票")
+    private String invoiceAttributeName;
+
+    /**
+     * 发票类型;1:普票,2:专票
+     */
+    @Excel(name = "发票类型", readConverterExp = "1=普票,2=专票")
+    private String invoiceTypeName;
+
+    /**
+     * 金额
+     */
+    @Excel(name = "金额")
+    private String amount;
+
+    /**
+     * 申请人
+     */
+    @Excel(name = "申请人")
+    private String applicant;
+
+    /**
+     * 联系方式
+     */
+    @Excel(name = "联系方式")
+    private String phone;
+
+    /**
+     * 邮箱
+     */
+    @Excel(name = "邮箱")
+    private String email;
+
+    /**
+     * 邮寄地址
+     */
+    @Excel(name = "邮寄地址")
+    private String sendAddress;
+
+    /**
+     * 付款回执
+     */
+    @Excel(name = "付款回执")
+    private String paymentReceipt;
+
+    /**
+     * 提交时间
+     */
+    @Excel(name = "提交时间")
+    private String createTime;
+
+}

+ 20 - 0
service-iot/service-iot-biz/src/main/resources/mapper/iot/CrmInvoiceInfoMapper.xml

@@ -42,4 +42,24 @@
         </where>
         order by ci.id desc
     </select>
+    <select id="export" resultType="com.usky.iot.domain.CrmInvoiceInfo">
+        select
+        ci.*,
+        cc.project_id as projectId
+        from crm_invoice_info ci
+        left join crm_custom_info cc
+        on ci.custom_id = cc.id
+        <where>
+            <if test="gr.projectId != null">
+                and cc.project_id like CONCAT('%',#{gr.projectId},'%')
+            </if>
+            <if test="gr.invoiceTitle != null">
+                and ci.invoice_title like CONCAT('%',#{gr.invoiceTitle},'%')
+            </if>
+            <if test="gr.startTime != null and gr.startTime != '' and gr.endTime != null and gr.endTime != ''">
+                and  ci.create_time BETWEEN  #{gr.startTime} AND  #{gr.endTime}
+            </if>
+        </where>
+        order by ci.id desc
+    </select>
 </mapper>