|
@@ -1,18 +1,25 @@
|
|
|
package org.jeecg.modules.documents.shippingDetails.controller;
|
|
|
|
|
|
+import java.io.File;
|
|
|
+import java.lang.reflect.Field;
|
|
|
+import java.text.DateFormat;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.io.IOException;
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
import java.net.URLDecoder;
|
|
|
import javax.annotation.Resource;
|
|
|
+import javax.servlet.ServletOutputStream;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
+import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.google.gson.Gson;
|
|
|
import com.google.gson.GsonBuilder;
|
|
|
//import org.apache.shiro.SecurityUtils;
|
|
|
+import org.apache.poi.hssf.util.HSSFColor;
|
|
|
+import org.apache.poi.ss.usermodel.*;
|
|
|
import org.apache.shiro.SecurityUtils;
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
|
import org.jeecg.common.exception.JeecgBootException;
|
|
@@ -29,17 +36,19 @@ import org.jeecg.modules.documents.seclarationElements.service.ISyDeclarationEle
|
|
|
import org.jeecg.modules.documents.seclarationElements.service.ISyDeclarationElementsService;
|
|
|
import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetails;
|
|
|
import org.jeecg.modules.documents.shippingDetails.entity.SyShippingDetailsItem;
|
|
|
-import org.jeecg.modules.documents.shippingDetails.entity.VO.OrderDataVo;
|
|
|
-import org.jeecg.modules.documents.shippingDetails.entity.VO.PushShippingDeialVo;
|
|
|
-import org.jeecg.modules.documents.shippingDetails.entity.VO.PushShippingVO;
|
|
|
-import org.jeecg.modules.documents.shippingDetails.entity.VO.SyShippingDetailsVo;
|
|
|
+import org.jeecg.modules.documents.shippingDetails.entity.VO.*;
|
|
|
import org.jeecg.modules.documents.shippingDetails.mapper.SyShippingDetailsMapper;
|
|
|
import org.jeecg.modules.documents.shippingDetails.service.ISyShippingDetailsItemService;
|
|
|
import org.jeecg.modules.documents.shippingDetails.service.ISyShippingDetailsService;
|
|
|
|
|
|
import java.util.logging.SimpleFormatter;
|
|
|
|
|
|
+import org.jeecg.modules.documents.syShippingOrder.entity.SyShippingOrderItem;
|
|
|
+import org.jeecg.modules.monitor.service.impl.RedisServiceImpl;
|
|
|
+import org.jeecg.modules.spapl.entity.SizeTable;
|
|
|
+import org.jeecg.modules.spapl.entity.SyPreAssembledPackingList;
|
|
|
import org.jeecg.modules.spapl.entity.SyPreAssembledPackingListItem;
|
|
|
+import org.jeecg.modules.spapl.mapper.SyPreAssembledPackingListItemMapper;
|
|
|
import org.jeecg.modules.spapl.service.impl.SyPreAssembledPackingListItemServiceImpl;
|
|
|
import org.jeecg.modules.spapl.vo.SyPreAssembledPackingListPage;
|
|
|
import org.jeecg.modules.splfi.entity.SyPackingListFabricItem;
|
|
@@ -57,10 +66,12 @@ import org.jeecg.modules.system.entity.SysUser;
|
|
|
import org.jeecg.modules.system.util.InterfaceConnUtils;
|
|
|
import org.jeecg.modules.system.util.JsonChangeUtils;
|
|
|
import org.jeecg.modules.system.util.SecurityUtil;
|
|
|
+import org.jeecgframework.poi.excel.ExcelExportUtil;
|
|
|
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
|
|
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
|
|
import org.jeecgframework.poi.excel.entity.ExportParams;
|
|
|
import org.jeecgframework.poi.excel.entity.ImportParams;
|
|
|
+import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
|
|
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -101,6 +112,9 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
|
|
|
private SyPreAssembledPackingListItemServiceImpl syPreAssembledPackingListItemService;
|
|
|
@Autowired
|
|
|
private SyPackingListFabricItemServiceImpl syPackingListFabricItemService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private SyPreAssembledPackingListItemMapper syPreAssembledPackingListItemMapper;
|
|
|
|
|
|
/**
|
|
|
* 分页列表查询
|
|
@@ -159,6 +173,9 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+ if(oConvertUtils.isNotEmpty(syShippingDetails.getSubmitStatus())){
|
|
|
+ queryWrapper.eq("t.submitStatus",syShippingDetails.getSubmitStatus());
|
|
|
+ }
|
|
|
|
|
|
Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);
|
|
|
if(flourOrGarment.equals("0")){//面辅料
|
|
@@ -410,52 +427,159 @@ public class SyShippingDetailsController extends JeecgController<SyShippingDetai
|
|
|
/**
|
|
|
* 导出excel
|
|
|
*
|
|
|
- * @param request
|
|
|
+ * @param req
|
|
|
* @param syShippingDetails
|
|
|
*/
|
|
|
@AutoLog(value = "发运明细主表-导出")
|
|
|
@ApiOperation(value="发运明细主表-导出", notes="发运明细主表-导出")
|
|
|
@RequestMapping(value = "/exportXls")
|
|
|
- public ModelAndView exportXls(HttpServletRequest request,SyShippingDetailsVo syShippingDetails,String startTime,String endTime) {
|
|
|
+ public Result<String> exportXls(SyShippingDetailsVo syShippingDetails,String startTime,String endTime,String flourOrGarment,
|
|
|
+ String refer,String preDeliveryDateB,String preDeliveryDateE,String supplier,String isElement,
|
|
|
+ @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
|
|
+ @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
|
|
+ HttpServletResponse req) {
|
|
|
+
|
|
|
+ Result<String> result = new Result<String>();
|
|
|
+
|
|
|
+ IPage<SyShippingDetailsVo> pageList = null;
|
|
|
+
|
|
|
+ List<SyPreAssembledPackingListVo> syPreList = new ArrayList<>();
|
|
|
+
|
|
|
+ DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
|
|
QueryWrapper<SyShippingDetailsVo> queryWrapper = new QueryWrapper<>();
|
|
|
+ SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
if(oConvertUtils.isNotEmpty(syShippingDetails.getDocumentNo())){
|
|
|
- queryWrapper.eq("t.documentNo",syShippingDetails.getDocumentNo());
|
|
|
+ queryWrapper.like("t.documentNo",syShippingDetails.getDocumentNo());
|
|
|
+ }
|
|
|
+ if(oConvertUtils.isNotEmpty(syShippingDetails.getOrderNumber())){
|
|
|
+ queryWrapper.like("t.orderNumber",syShippingDetails.getOrderNumber());
|
|
|
}
|
|
|
if(oConvertUtils.isNotEmpty(startTime)){
|
|
|
-
|
|
|
queryWrapper.ge("t.documentDate",startTime);
|
|
|
queryWrapper.le("t.documentDate",endTime);
|
|
|
}
|
|
|
- if(oConvertUtils.isNotEmpty(syShippingDetails.getPreDeliveryDate())){
|
|
|
- queryWrapper.eq("t.preDeliveryDate",syShippingDetails.getPreDeliveryDate());
|
|
|
+ if(oConvertUtils.isNotEmpty(preDeliveryDateB)){
|
|
|
+ queryWrapper.ge("t.preDeliveryDate",preDeliveryDateB);
|
|
|
+ queryWrapper.le("t.preDeliveryDate",preDeliveryDateE);
|
|
|
}
|
|
|
+
|
|
|
if(oConvertUtils.isNotEmpty(syShippingDetails.getSalesman())){
|
|
|
- queryWrapper.eq("t.salesman",syShippingDetails.getSalesman());
|
|
|
+ queryWrapper.like("t.salesman",syShippingDetails.getSalesman());
|
|
|
}
|
|
|
if(oConvertUtils.isNotEmpty(syShippingDetails.getItemNumber())){
|
|
|
- queryWrapper.eq("t.itemNumber",syShippingDetails.getItemNumber());
|
|
|
+ queryWrapper.like("t.itemNumber",syShippingDetails.getItemNumber());
|
|
|
+ }
|
|
|
+ if(oConvertUtils.isNotEmpty(refer)){
|
|
|
+ queryWrapper.eq("t.isReference",refer);
|
|
|
+ }
|
|
|
+ if(oConvertUtils.isNotEmpty(supplier)){
|
|
|
+ queryWrapper.like("t.supplier",supplier);
|
|
|
}
|
|
|
+ if(oConvertUtils.isNotEmpty(isElement)){
|
|
|
+ if(isElement.equals("0")){//没有维护
|
|
|
+ queryWrapper.isNull("t.elementsId");
|
|
|
+ }else{
|
|
|
+ queryWrapper.isNotNull("t.elementsId");
|
|
|
+ }
|
|
|
|
|
|
- Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);
|
|
|
- IPage<SyShippingDetailsVo> pageList = syShippingDetailsMapper.exCelQuery(page, queryWrapper);
|
|
|
- for(SyShippingDetailsVo li:pageList.getRecords()){
|
|
|
- if(oConvertUtils.isNotEmpty(li.getIsTc())){
|
|
|
- if(li.getIsTc().equals("0")){
|
|
|
- li.setIsTc("否");
|
|
|
- }else{
|
|
|
- li.setIsTc("是");
|
|
|
- }
|
|
|
+ }
|
|
|
+ if(oConvertUtils.isNotEmpty(syShippingDetails.getSubmitStatus())){
|
|
|
+ queryWrapper.eq("t.submitStatus",syShippingDetails.getSubmitStatus());
|
|
|
}
|
|
|
|
|
|
+ try {
|
|
|
+ Page<SyShippingDetailsVo> page = new Page<SyShippingDetailsVo>(1, -1);
|
|
|
+ if(flourOrGarment.equals("0")){//面辅料
|
|
|
+ pageList = syShippingDetailsService.queryShippingDetailsGarment(page, queryWrapper);
|
|
|
+ }else{//成衣
|
|
|
+ pageList = syShippingDetailsService.queryShippingDetails(page, queryWrapper);
|
|
|
+ }
|
|
|
+ for(SyShippingDetailsVo li:pageList.getRecords()){
|
|
|
+ String pre = sf.format(li.getPreDeliveryDate());
|
|
|
+ //用到货日期代替一下预发货日期
|
|
|
+ li.setArrivalDate(pre);
|
|
|
+ if(oConvertUtils.isNotEmpty(li.getIsTc())){
|
|
|
+ if(li.getIsTc().equals("0")){
|
|
|
+ li.setIsTc("否");
|
|
|
+ }else{
|
|
|
+ li.setIsTc("是");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //转换数据
|
|
|
+ SyPreAssembledPackingListVo entity = new SyPreAssembledPackingListVo(li);
|
|
|
+ syPreList.add(entity);
|
|
|
+ }
|
|
|
+
|
|
|
+ String load="D:\\单证模板\\发运明细数据.xlsx";
|
|
|
+ int count = syPreList.size();//分几条sheet
|
|
|
+ File file=new File(load);
|
|
|
+ cn.afterturn.easypoi.excel.entity.TemplateExportParams templateExcelConstants=new TemplateExportParams(file.getAbsolutePath(),true,"发运明细");
|
|
|
+ List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
|
|
|
+ Map<Integer, List<Map<String, Object>>> maps = new HashMap<Integer, List<Map<String, Object>>>();
|
|
|
+ for (int i = 0; i < count ; i++) {
|
|
|
+ List<SyPreAssembledPackingListVo> exportList=new ArrayList<>();
|
|
|
+ exportList.add(syPreList.get(i));
|
|
|
+ SyPreAssembledPackingListVo exportList2=syPreList.get(i);
|
|
|
+ Map<String, Object> map = new HashMap<String, Object>();
|
|
|
+ map.put("entity", exportList2);
|
|
|
+ listMap.add(map);
|
|
|
+ }
|
|
|
+ maps.put(0,listMap);
|
|
|
+ templateExcelConstants.setColForEach(true);
|
|
|
+ Workbook workbook = cn.afterturn.easypoi.excel.ExcelExportUtil.exportExcelClone(maps,templateExcelConstants);
|
|
|
+
|
|
|
+ Iterator sheets=workbook.sheetIterator();
|
|
|
+
|
|
|
+ int index = 0;
|
|
|
+ while (sheets.hasNext()){
|
|
|
+ Sheet sheet=(Sheet) sheets.next();
|
|
|
+ workbook.setSheetName(index,"数据源"+(index+1));
|
|
|
+ StringBuilder builder = new StringBuilder();
|
|
|
+ //获取尺码组
|
|
|
+ List<SizeTable> sizeGroup = syPreAssembledPackingListItemMapper.querySize(syPreList.get(index).getId(),syPreList.get(index).getGroupId());
|
|
|
+ for(SizeTable si:sizeGroup){
|
|
|
+ builder.append(si.getSize());
|
|
|
+ builder.append("*");
|
|
|
+ }
|
|
|
+ //创建列名放在第一行
|
|
|
+ String[] params =("账套*成衣工厂*预发货日期*款号*小po*分销点*起始箱号*结束箱号*item NO./SKU NO./UPC NO./PACKS CODE*PREACKSKU*"+builder+"颜色*配码规则*计划尺码数量*计划装箱数量*件数/箱*箱数*总件数*净重/箱*毛重/箱*总毛重*外箱长度*外箱宽度*外箱高度*总体积*净净重*单价*总价*备注*发运明细子表ID*发运明细分组ID*发运明细主表ID*订单号*款号*尺码范围*客户*客户简称*申报要素ID").split("\\*");
|
|
|
+ String[] params1 =syPreList.get(index).toString(builder.toString()).split("\\*");
|
|
|
+ Row row1 = sheet.createRow(0);
|
|
|
+ Row row2 = sheet.createRow(1);
|
|
|
+
|
|
|
+ for (int x=0;x<params.length;x++){
|
|
|
+ Cell cell = row1.createCell(x);
|
|
|
+ cell.setCellValue(params[x]);
|
|
|
+
|
|
|
+ if(x > 9 && x < params.length-27){
|
|
|
+ Cell cell1 = row2.createCell(x);
|
|
|
+ cell1.setCellValue(" ");
|
|
|
+ }else{
|
|
|
+ Cell cell1 = row2.createCell(x);
|
|
|
+ cell1.setCellValue(params1[x]);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ index++;
|
|
|
+ }
|
|
|
+
|
|
|
+ ServletOutputStream outputStream = req.getOutputStream();
|
|
|
+ workbook.write(outputStream);
|
|
|
+
|
|
|
+ }catch (Exception ex){
|
|
|
+
|
|
|
+ ex.printStackTrace();
|
|
|
+ log.error("异常:" + ex.getMessage());
|
|
|
+ result.error500("异常:" + ex.getMessage());
|
|
|
}
|
|
|
|
|
|
- ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
|
|
- mv.addObject(NormalExcelConstants.FILE_NAME, "发运明细");
|
|
|
- mv.addObject(NormalExcelConstants.CLASS, SyShippingDetailsVo.class);
|
|
|
- mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("发运明细列表", "导出人:admin", "发运明细列表"));
|
|
|
- mv.addObject(NormalExcelConstants.DATA_LIST, pageList.getRecords());
|
|
|
- return mv;
|
|
|
+ result.setSuccess(true);
|
|
|
+ result.setMessage("导出成功!");
|
|
|
+ result.setResult("导出成功!");
|
|
|
+
|
|
|
+ return result;
|
|
|
|
|
|
}
|
|
|
|