zhangyuewww 2 anos atrás
pai
commit
10f903f173

+ 12 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/controller/InOutWarehouseTaskController.java

@@ -3,6 +3,7 @@ package com.yh.saas.plugin.yiliangyiyun.controller;
 
 
 import com.yh.saas.plugin.yiliangyiyun.entity.InOutWarehouseTask;
+import com.yh.saas.plugin.yiliangyiyun.entity.WarehouseBaseInfo;
 import com.yh.saas.plugin.yiliangyiyun.service.IInOutWarehouseTaskService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 
@@ -181,6 +183,16 @@ public class InOutWarehouseTaskController {
     public List<InOutWarehouseTask> getOutTaskNo(@RequestParam String contractNo) {
         return inOutWarehouseTaskService.getOutTaskNo(contractNo);
     }
+    /**
+     * 导出销售出库任务
+     *
+     * @return
+     * @throws Exception
+     */
+    @PostMapping("/exportSaleTask")
+    public void exportSaleTask(@RequestBody InOutWarehouseTask example, HttpServletResponse response) throws Exception {
+        inOutWarehouseTaskService.exportSaleTask(example, response);
+    }
 
 }
 

+ 29 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/entity/InOutWarehouseTask.java

@@ -297,6 +297,35 @@ public class InOutWarehouseTask extends BaseModel<InOutWarehouseTask> {
      */
     @TableField(exist = false)
     private String creater;
+    /**
+     * 开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @TableField(exist = false)
+    private Date startDate;
+    /**
+     * 结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    @TableField(exist = false)
+    private Date endDate;
+    /**
+     * 合同回款
+     */
+    @TableField(exist = false)
+    private Double ContractCollection;
+    /**
+     * 未回款
+     */
+    @TableField(exist = false)
+    private Double uncollectedPayment;
+    /**
+     * 保证金
+     */
+    @TableField(exist = false)
+    private Double bond;
 
     @Override
     protected Serializable pkVal() {

+ 2 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/mapper/InOutWarehouseTaskMapper.java

@@ -48,4 +48,6 @@ public interface InOutWarehouseTaskMapper extends BaseMapper<InOutWarehouseTask>
      * @return
      */
     List<InOutWarehouseTask> getMoveListByCondition(Map<String, Object> pageView);
+
+    List<InOutWarehouseTask> getSaleListByCondition(Map<String, Object> pageView);
 }

+ 3 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/IInOutWarehouseTaskService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page;
 import com.yh.saas.plugin.yiliangyiyun.entity.InOutWarehouseTask;
 import com.baomidou.mybatisplus.service.IService;
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 
@@ -123,4 +124,6 @@ public interface IInOutWarehouseTaskService extends IService<InOutWarehouseTask>
      * @return
      */
     List<InOutWarehouseTask> getOutTaskNo(String contractNo);
+
+    void exportSaleTask(InOutWarehouseTask inOutWarehouseTask, HttpServletResponse response);
 }

+ 464 - 1
winsea-haixin-plugin-yiliangyiyun/src/main/java/com/yh/saas/plugin/yiliangyiyun/service/impl/InOutWarehouseTaskServiceImpl.java

@@ -2,6 +2,7 @@ package com.yh.saas.plugin.yiliangyiyun.service.impl;
 
 
 import com.alibaba.fastjson.JSONObject;
+import com.alipay.sofa.runtime.api.annotation.SofaService;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.mapper.Wrapper;
 import com.winsea.svc.base.base.entity.CommonRole;
@@ -26,6 +27,7 @@ import com.yh.saas.plugin.yiliangyiyun.constant.StatusEnum;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.google.common.collect.Lists;
 import com.yh.saas.plugin.yiliangyiyun.entity.*;
+import com.yh.saas.plugin.yiliangyiyun.entity.view.ExportVView;
 import com.yh.saas.plugin.yiliangyiyun.entity.view.WarehouseNumView;
 import com.yh.saas.plugin.yiliangyiyun.exception.YException;
 import com.yh.saas.plugin.yiliangyiyun.exception.YExceptionEnum;
@@ -34,14 +36,29 @@ import com.yh.saas.plugin.yiliangyiyun.service.*;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import com.yh.saas.plugin.yiliangyiyun.util.Const;
 import com.yh.saas.toolkit.workflow.service.IWorkflowService;
+import lombok.Getter;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.httpclient.util.DateUtil;
+import org.apache.poi.hssf.usermodel.*;
+import org.apache.poi.hssf.util.HSSFColor;
+import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.util.CellRangeAddress;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.expression.spel.ast.NullLiteral;
 import org.springframework.stereotype.Service;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.IOException;
+import java.net.URLDecoder;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -53,7 +70,8 @@ import java.util.stream.Collectors;
  * @author Gongdc
  * @since 2021-06-22
  */
-@Service
+@SofaService
+@Slf4j
 public class InOutWarehouseTaskServiceImpl extends ServiceImpl<InOutWarehouseTaskMapper, InOutWarehouseTask> implements IInOutWarehouseTaskService {
     @Autowired
     private IInOutWarehouseTaskService inOutWarehouseTaskService;
@@ -87,6 +105,11 @@ public class InOutWarehouseTaskServiceImpl extends ServiceImpl<InOutWarehouseTas
     private IContractManagementInfoService contractManagementInfoService;
     @Autowired
     private IWarehouseBaseInfoService warehouseBaseInfoService;
+    @Value("${file-root-path}")
+    private String localPath;
+    @Getter
+    @Value("${oss.endpoint.internal:}")
+    private String baseUrl;
 
     /**
      * 出入库任务新增 编辑
@@ -995,4 +1018,444 @@ public class InOutWarehouseTaskServiceImpl extends ServiceImpl<InOutWarehouseTas
         return inOutWarehouseTaskList;
     }
 
+    @Override
+    public void exportSaleTask(InOutWarehouseTask inOutWarehouseTask, HttpServletResponse response) {
+        // 1.Excel的头部信息
+        String headerTitle = "";
+
+        // 2.创建一个webbook 对应一个Excel文件
+        HSSFWorkbook wb = new HSSFWorkbook();
+
+        // 3.在webbook中添加一个sheet,对应Excel文件中的sheet
+        HSSFSheet sheet;
+
+        sheet = wb.createSheet("销售出库任务信息");
+        headerTitle = "销售出库任务信息";
+
+        // 4.设置打印参数
+        sheet.setMargin(HSSFSheet.TopMargin, (short) 1);// 页边距(上)
+        sheet.setMargin(HSSFSheet.BottomMargin, (short) 1);// 页边距(下)
+        sheet.setMargin(HSSFSheet.LeftMargin, (short) 1);// 页边距(左)
+        sheet.setMargin(HSSFSheet.RightMargin, (short) 1);// 页边距(右)
+
+        // 不显示网格
+        sheet.setDisplayGridlines(false);
+        // 设置水平居中
+        sheet.setHorizontallyCenter(true);
+
+        /**************** 数据行样式 start ****************/
+        HSSFFont fontTitle = wb.createFont();
+        fontTitle.setFontName("宋体");
+        fontTitle.setFontHeightInPoints((short) 14);
+        // 设置字体加粗
+        fontTitle.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
+
+        HSSFFont fontComp = wb.createFont();
+        fontComp.setFontName("宋体");
+        fontComp.setFontHeightInPoints((short) 16);
+        // 设置字体加粗
+        fontComp.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
+
+        HSSFFont fontDetail = wb.createFont();
+        fontDetail.setFontName("宋体");
+        fontDetail.setFontHeightInPoints((short) 12);
+
+        HSSFFont fontDetail1 = wb.createFont();
+        fontDetail1.setFontName("宋体");
+        fontDetail1.setFontHeightInPoints((short) 12);
+        fontDetail1.setColor(HSSFColor.RED.index);
+
+        // title
+        HSSFCellStyle styleTitle = wb.createCellStyle();
+        // 指定单元格居中对齐
+        styleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+        // 指定单元格垂直居中对齐
+        styleTitle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+        // 指定单元格自动换行
+        styleTitle.setWrapText(true);
+        // 设置单元格字体
+        styleTitle.setFont(fontTitle);
+        // 右边框
+        styleTitle.setBorderRight(HSSFCellStyle.BORDER_NONE);
+        // 左边框
+        styleTitle.setBorderLeft(HSSFCellStyle.BORDER_NONE);
+        // 上边框
+        styleTitle.setBorderTop(HSSFCellStyle.BORDER_NONE);
+        // 下边框
+        styleTitle.setBorderBottom(HSSFCellStyle.BORDER_NONE);
+
+        // title
+        HSSFCellStyle styleComp = wb.createCellStyle();
+        // 指定单元格居中对齐
+        styleComp.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+        // 指定单元格垂直居中对齐
+        styleComp.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+        // 指定单元格自动换行
+        styleComp.setWrapText(true);
+        // 设置单元格字体
+        styleComp.setFont(fontComp);
+        // 右边框
+        styleComp.setBorderRight(HSSFCellStyle.BORDER_NONE);
+        // 左边框
+        styleComp.setBorderLeft(HSSFCellStyle.BORDER_NONE);
+        // 上边框
+        styleComp.setBorderTop(HSSFCellStyle.BORDER_NONE);
+        // 下边框
+        styleComp.setBorderBottom(HSSFCellStyle.BORDER_NONE);
+
+        HSSFCellStyle styleInfo = wb.createCellStyle();
+        // 指定单元格居中对齐
+        styleInfo.setAlignment(HSSFCellStyle.ALIGN_LEFT);
+        // 指定单元格垂直居中对齐
+        styleInfo.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+        // 指定单元格自动换行
+        styleInfo.setWrapText(true);
+        // 设置单元格字体
+        styleInfo.setFont(fontDetail);
+        // 右边框
+        styleInfo.setBorderRight(HSSFCellStyle.BORDER_NONE);
+        // 左边框
+        styleInfo.setBorderLeft(HSSFCellStyle.BORDER_NONE);
+        // 上边框
+        styleInfo.setBorderTop(HSSFCellStyle.BORDER_NONE);
+        // 下边框
+        styleInfo.setBorderBottom(HSSFCellStyle.BORDER_NONE);
+
+        HSSFCellStyle styleDetail = wb.createCellStyle();
+        // 指定单元格居中对齐
+        styleDetail.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+        // 指定单元格垂直居中对齐
+        styleDetail.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+        // 指定单元格自动换行
+        styleDetail.setWrapText(true);
+        // 设置单元格字体
+        styleDetail.setFont(fontDetail);
+        // 右边框
+        styleDetail.setBorderRight(HSSFCellStyle.BORDER_THIN);
+        // 左边框
+        styleDetail.setBorderLeft(HSSFCellStyle.BORDER_THIN);
+        // 上边框
+        styleDetail.setBorderTop(HSSFCellStyle.BORDER_THIN);
+        // 下styleDetailTitle
+        styleDetail.setBorderBottom(HSSFCellStyle.BORDER_THIN);
+
+        HSSFCellStyle styleDetail1 = wb.createCellStyle();
+        // 指定单元格居中对齐
+        styleDetail1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+        // 指定单元格垂直居中对齐
+        styleDetail1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+        // 指定单元格自动换行
+        styleDetail1.setWrapText(true);
+        // 设置单元格字体
+        styleDetail1.setFont(fontDetail1);
+        // 右边框
+        styleDetail1.setBorderRight(HSSFCellStyle.BORDER_THIN);
+        // 左边框
+        styleDetail1.setBorderLeft(HSSFCellStyle.BORDER_THIN);
+        // 上边框
+        styleDetail1.setBorderTop(HSSFCellStyle.BORDER_THIN);
+        // 下styleDetailTitle
+        styleDetail1.setBorderBottom(HSSFCellStyle.BORDER_THIN);
+
+        HSSFCellStyle contextstyle1 = wb.createCellStyle();
+        // 指定单元格居中对齐
+        contextstyle1.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+        // 指定单元格垂直居中对齐
+        contextstyle1.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+        // 指定单元格自动换行
+        contextstyle1.setWrapText(true);
+        // 设置单元格字体
+        contextstyle1.setFont(fontDetail);
+        // 右边框
+        contextstyle1.setBorderRight(HSSFCellStyle.BORDER_THIN);
+        // 左边框
+        contextstyle1.setBorderLeft(HSSFCellStyle.BORDER_THIN);
+        // 上边框
+        contextstyle1.setBorderTop(HSSFCellStyle.BORDER_THIN);
+        // 下styleDetailTitle
+        contextstyle1.setBorderBottom(HSSFCellStyle.BORDER_THIN);
+
+
+        HSSFCellStyle contextstyle2 = wb.createCellStyle();
+        // 指定单元格居中对齐
+        contextstyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+        // 指定单元格垂直居中对齐
+        contextstyle2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+        // 指定单元格自动换行
+        contextstyle2.setWrapText(true);
+        // 设置单元格字体
+        contextstyle2.setFont(fontDetail1);
+        // 右边框
+        contextstyle2.setBorderRight(HSSFCellStyle.BORDER_THIN);
+        // 左边框
+        contextstyle2.setBorderLeft(HSSFCellStyle.BORDER_THIN);
+        // 上边框
+        contextstyle2.setBorderTop(HSSFCellStyle.BORDER_THIN);
+        // 下styleDetailTitle
+        contextstyle2.setBorderBottom(HSSFCellStyle.BORDER_THIN);
+
+        HSSFCellStyle contextstyle = wb.createCellStyle();
+        // 指定单元格居中对齐
+        contextstyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+        // 指定单元格垂直居中对齐
+        contextstyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+        // 指定单元格自动换行
+        contextstyle.setWrapText(true);
+        // 设置单元格字体
+        contextstyle.setFont(fontDetail);
+        // 右边框
+        contextstyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
+        // 左边框
+        contextstyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
+        // 上边框
+        contextstyle.setBorderTop(HSSFCellStyle.BORDER_THIN);
+        // 下styleDetailTitle
+        contextstyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
+
+        HSSFCellStyle styleDetailYellow = wb.createCellStyle();
+        // 指定单元格居中对齐
+        styleDetailYellow.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+        // 指定单元格垂直居中对齐
+        styleDetailYellow.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+        // 指定单元格自动换行
+        styleDetailYellow.setWrapText(true);
+        // 设置单元格字体
+        styleDetailYellow.setFont(fontDetail);
+        // 右边框
+        styleDetailYellow.setBorderRight(HSSFCellStyle.BORDER_THIN);
+        // 左边框
+        styleDetailYellow.setBorderLeft(HSSFCellStyle.BORDER_THIN);
+        // 上边框
+        styleDetailYellow.setBorderTop(HSSFCellStyle.BORDER_THIN);
+        // 下styleDetailTitle
+        styleDetailYellow.setBorderBottom(HSSFCellStyle.BORDER_THIN);
+        styleDetailYellow.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
+        styleDetailYellow.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
+
+
+        HSSFCellStyle styleDetailLeft = wb.createCellStyle();
+        // 指定单元格居中对齐
+        styleDetailLeft.setAlignment(HSSFCellStyle.ALIGN_LEFT);
+        // 指定单元格垂直居中对齐
+        styleDetailLeft.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+        // 指定单元格自动换行
+        styleDetailLeft.setWrapText(true);
+        // 设置单元格字体
+        styleDetailLeft.setFont(fontDetail);
+        // 右边框
+        styleDetailLeft.setBorderRight(HSSFCellStyle.BORDER_THIN);
+        // 左边框
+        styleDetailLeft.setBorderLeft(HSSFCellStyle.BORDER_THIN);
+        // 上边框
+        styleDetailLeft.setBorderTop(HSSFCellStyle.BORDER_THIN);
+        // 下styleDetailTitle
+        styleDetailLeft.setBorderBottom(HSSFCellStyle.BORDER_THIN);
+        /**************** 数据行样式 end ****************/
+
+        // 设置列宽
+        sheet.setColumnWidth(0, 1 * 256 + 184);
+        sheet.setColumnWidth(1, "合同编号".getBytes().length * 3 * 256);
+        sheet.setColumnWidth(2, 12 * 256 + 184);
+        sheet.setColumnWidth(3, 12 * 256 + 184);
+        sheet.setColumnWidth(4, 12 * 256 + 184);
+        sheet.setColumnWidth(5, 12 * 256 + 184);
+        sheet.setColumnWidth(6, 12 * 256 + 184);
+        sheet.setColumnWidth(7, 12 * 256 + 184);
+        sheet.setColumnWidth(8, 1 * 256 + 184);
+
+        // 创建单元格对象
+        HSSFCell cell = null;
+
+        // 创建打印设置对象
+        HSSFPrintSetup ps = sheet.getPrintSetup();
+        // 打印方向,true:横向,false:纵向(默认)
+        ps.setLandscape(false);
+        // // 打印质量
+        // ps.setVResolution((short) 700)
+        // 设置缩放比例
+        ps.setScale((short) 80);
+        // 纸张类型
+        ps.setPaperSize(HSSFPrintSetup.A4_PAPERSIZE);
+
+
+        int rownum = 1;
+        HSSFRow row0 = sheet.createRow((int) rownum);
+        row0.setHeightInPoints(25);
+        cell = row0.createCell(1);
+        cell.setCellStyle(styleTitle);
+        cell.setCellValue("销售出库任务信息");
+        sheet.addMergedRegion(new CellRangeAddress(rownum, rownum, (short) 1, (short) 22));
+        cell = row0.createCell(2);
+        cell.setCellStyle(styleTitle);
+        cell = row0.createCell(3);
+        cell.setCellStyle(styleTitle);
+        cell = row0.createCell(4);
+        cell.setCellStyle(styleTitle);
+        cell = row0.createCell(5);
+        cell.setCellStyle(styleTitle);
+        cell = row0.createCell(6);
+        cell.setCellStyle(styleTitle);
+        cell = row0.createCell(7);
+        cell.setCellStyle(styleTitle);
+        rownum++;
+
+        Map<String, Object> pageView = new HashMap<>();
+        //  公司ID
+        pageView.put("compId", AuthSecurityUtils.getCurrentUserInfo().getCompId());
+        pageView.put("startDate", inOutWarehouseTask.getStartDate());
+        pageView.put("endDate", inOutWarehouseTask.getEndDate());
+        List<InOutWarehouseTask> dataList = baseMapper.getSaleListByCondition(pageView);
+
+        HSSFRow row1 = sheet.createRow((int) rownum);
+        row1.setHeightInPoints(30);
+        cell = row1.createCell(1);
+        cell.setCellValue("合同编号");
+        cell.setCellStyle(styleDetail);
+        cell = row1.createCell(2);
+        cell.setCellValue(" 合同回款(元)");
+        cell.setCellStyle(styleDetail);
+        cell = row1.createCell(3);
+        cell.setCellValue(" 未回款(元)");
+        cell.setCellStyle(styleDetail);
+        cell = row1.createCell(4);
+        cell.setCellValue(" 保证金(元)");
+        cell.setCellStyle(styleDetail);
+        cell = row1.createCell(5);
+        cell.setCellValue("销售任务编号");
+        cell.setCellStyle(styleDetail);
+        cell = row1.createCell(6);
+        cell.setCellValue("任务已完成量(吨)");
+        cell.setCellStyle(styleDetail);
+        cell = row1.createCell(7);
+        cell.setCellValue("出货库点");
+        cell.setCellStyle(styleDetail);
+        rownum++;
+
+        DecimalFormat decimalFormat=new DecimalFormat("0.00");
+        contextstyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));//保留两位小数点
+        // 详情信息
+        if (!CollectionUtils.isEmpty(dataList)) {
+            for (int i = 0; i < dataList.size(); i++) {
+                InOutWarehouseTask inOutWarehouseTask1 = dataList.get(i);
+                HSSFRow rowx = sheet.createRow((int) rownum);
+                rowx.setHeightInPoints(20);
+                cell = rowx.createCell(1);
+                cell.setCellValue(inOutWarehouseTask1.getContractNo());
+                cell.setCellStyle(styleDetail);
+                cell = rowx.createCell(2);
+                cell.setCellValue(editDouble(inOutWarehouseTask1.getContractCollection()));
+                cell.setCellStyle(contextstyle);
+                cell = rowx.createCell(3);
+                cell.setCellValue(editDouble(inOutWarehouseTask1.getUncollectedPayment()));
+                cell.setCellStyle(contextstyle);
+                cell = rowx.createCell(4);
+                cell.setCellValue(editDouble(inOutWarehouseTask1.getBond()));
+                cell.setCellStyle(contextstyle);
+                cell = rowx.createCell(5);
+                cell.setCellValue(editString(inOutWarehouseTask1.getInOutTaskNo()));
+                cell.setCellStyle(styleDetail);
+                cell = rowx.createCell(6);
+                cell.setCellValue(editDouble(inOutWarehouseTask1.getCompletedQuantity()));
+                cell.setCellStyle(contextstyle);
+                cell = rowx.createCell(7);
+                cell.setCellValue(editString(inOutWarehouseTask1.getWarehouseName()));
+                cell.setCellStyle(styleDetail);
+                rownum++;
+            }
+
+        }
+
+
+        String path = null;
+        String tempPath = null;
+        String excelPath = null;
+
+        try {
+
+            // 取得绝对路径
+            tempPath = URLDecoder.decode((localPath), "utf-8");
+
+            // EXCEL路径
+            excelPath = "/web/temp/pay/" + DateUtil.formatDate(new Date(), DateUtils.DATE_FMT_YYYYMMDD_NS) + '/'
+                    + UUID.randomUUID().toString().replaceAll("-", "");
+
+            path = tempPath + excelPath + '/' + "合同信息"
+                    + ".xlsx";
+
+        } catch (Exception e) {
+            log.debug(e.getMessage());
+        }
+        // 下载
+        download(path, response, wb);
+
+    }
+    /**
+     * 判断浮点数
+     *
+     * @param example
+     * @return
+     */
+    private Double editDouble(Double example) {
+        Double exampleOne = example != null ? example : 0.00;
+        return exampleOne;
+    }
+
+    /**
+     * 判断字符串
+     *
+     * @param example
+     * @return
+     */
+    private String editString(String example) {
+        String exampleOne = example != null ? example : "";
+        return exampleOne;
+    }
+    /**
+     * 下载
+     *
+     * @param path
+     * @param response
+     */
+    private void download(String path, HttpServletResponse response, Workbook wb) {
+
+        try {
+
+            // path是指欲下载的文件的路径。
+            File file = new File(path);
+            // 取得文件名。
+            String fileName = file.getName();
+            // 给文件名编码
+            fileName = new String(fileName.getBytes("GBK"), "ISO-8859-1");
+
+            response.setContentType("application/vnd.ms-excel");
+            response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
+
+            // 定义byte输出流
+            ByteArrayOutputStream out = new ByteArrayOutputStream();
+
+            // 写导出文件
+            wb.write(out);
+
+            // 取得模板文件中的数据
+            byte[] result = out.toByteArray();
+
+            // 设置输出数据类型
+            response.setContentType("application/vnd.ms-excel");
+            // 设置输出数据长度
+            response.setContentLength(result.length);
+
+            // 设置文件名称
+            response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
+            // 将文件流输出到画面
+            response.getOutputStream().write(result);
+
+            out.flush();
+            out.close();
+
+        } catch (IOException ex) {
+            log.debug(ex.getMessage());
+        }
+
+    }
+
 }

+ 109 - 0
winsea-haixin-plugin-yiliangyiyun/src/main/resources/mapper/InOutWarehouseTaskMapper.xml

@@ -200,4 +200,113 @@
             </if>
         </if>
     </select>
+    <select id="getSaleListByCondition" parameterType="Map" resultType="com.yh.saas.plugin.yiliangyiyun.entity.InOutWarehouseTask">
+        SELECT
+            iowt.contract_no AS contractNo,
+            iowt.in_out_task_no AS inOutTaskNo,
+            iowt.warehouse_name AS warehouseName,
+            iowt.completed_quantity AS completedQuantity,
+        (
+        SELECT
+        IFNULL( sum( ei.amount_money ), 0 )
+        FROM
+        expense_info ei
+        WHERE
+        ei.delete_flag = '0'
+        AND ei.contract_no = iowt.contract_no
+        AND ei.comp_id = iowt.comp_id
+        AND ei.expenses_type = '1'
+        AND ei.expenses_purpose = '1'
+        AND ei.cost_type = '1'
+        AND ( ei.STATUS = '已收款' OR ei.STATUS = '已完成' )) -
+        (
+        SELECT
+        IFNULL( sum( ei.amount_money ), 0 )
+        FROM
+        expense_info ei
+        WHERE
+        ei.delete_flag = '0'
+        AND ei.contract_no = iowt.contract_no
+        AND ei.comp_id = iowt.comp_id
+        AND ei.expenses_type = '2'
+        AND ei.expenses_purpose = '1'
+        AND ei.cost_type = '1'
+        AND ( ei.STATUS = '已付款' OR ei.STATUS = '已完成' )) AS ContractCollection,
+        (
+        SELECT
+        IFNULL( sum( ei.amount_money ), 0 )
+        FROM
+        expense_info ei
+        WHERE
+        ei.delete_flag = '0'
+        AND ei.contract_no = iowt.contract_no
+        AND ei.comp_id = iowt.comp_id
+        AND ei.expenses_type = '1'
+        AND ei.expenses_purpose = '1'
+        AND ei.cost_type = '5'
+        AND ( ei.STATUS = '已收款' OR ei.STATUS = '已完成' )) -
+        (
+        SELECT
+        IFNULL( sum( ei.amount_money ), 0 )
+        FROM
+        expense_info ei
+        WHERE
+        ei.delete_flag = '0'
+        AND ei.contract_no = iowt.contract_no
+        AND ei.comp_id = iowt.comp_id
+        AND ei.expenses_type = '2'
+        AND ei.expenses_purpose = '1'
+        AND ei.cost_type = '5'
+        AND ( ei.STATUS = '已付款' OR ei.STATUS = '已完成' ))AS bond,
+        (
+        SELECT
+        IFNULL( sum( s.amount_ing_receivable ), 0 )
+        FROM
+        stock_sale_receipt_report s
+        WHERE
+        s.delete_flag = '0'
+        AND s.contract_no = iowt.contract_no
+        AND s.comp_id = iowt.comp_id
+        )- (
+        SELECT
+        IFNULL( sum( ei.amount_money ), 0 )
+        FROM
+        expense_info ei
+        WHERE
+        ei.delete_flag = '0'
+        AND ei.contract_no = iowt.contract_no
+        AND ei.comp_id = iowt.comp_id
+        AND ei.expenses_type = '1'
+        AND ei.expenses_purpose = '1'
+        AND ei.cost_type = '1'
+        AND ( ei.STATUS = '已收款' OR ei.STATUS = '已完成' )) +
+        (
+        SELECT
+        IFNULL( sum( ei.amount_money ), 0 )
+        FROM
+        expense_info ei
+        WHERE
+        ei.delete_flag = '0'
+        AND ei.contract_no = iowt.contract_no
+        AND ei.comp_id = iowt.comp_id
+        AND ei.expenses_type = '2'
+        AND ei.expenses_purpose = '1'
+        AND ei.cost_type = '1'
+        AND ( ei.STATUS = '已付款' OR ei.STATUS = '已完成' ))AS uncollectedPayment
+        FROM
+            in_out_warehouse_task iowt
+        WHERE
+            iowt.delete_flag = 0
+          AND iowt.comp_id = #{compId}
+          AND iowt.in_out_type = '销售出库'
+        <if test="startDate != null">
+            AND (DATE_FORMAT(iowt.create_date,"%Y%m%d%H%i%s") &gt;=
+            DATE_FORMAT(#{startDate},"%Y%m%d%H%i%s"))
+        </if>
+        <if test="endDate != null">
+            AND (DATE_FORMAT(iowt.create_date,"%Y%m%d%H%i%s") &lt;=
+            DATE_FORMAT(#{endDate},"%Y%m%d%H%i%s"))
+        </if>
+        ORDER BY iowt.create_date DESC
+    </select>
 </mapper>