Forráskód Böngészése

xwh开发收货明细导出(未完成)

xwh 4 éve
szülő
commit
64ccd5069a

+ 2 - 0
wms-core-service/src/main/java/com/lote/wms/instock/order/dao/InOrderMapper.java

@@ -43,4 +43,6 @@ public interface InOrderMapper {
 	List<InOrderResultVo> selectForExport(InOrderQueryVo vo);
 	
 	int countForExport(InOrderQueryVo vo);
+
+	List<InOrderResultVo> selectForExportReceiptDetail(InOrderQueryVo vo);
 }

+ 20 - 0
wms-core-service/src/main/java/com/lote/wms/instock/order/entity/resultvo/InOrderResultVo.java

@@ -23,6 +23,26 @@ public class InOrderResultVo extends InOrder {
 	private String data;
 	private String customerName;
 
+	private String sku;
+
+	private String barcode;
+
+	public String getBarcode() {
+		return barcode;
+	}
+
+	public void setBarcode(String barcode) {
+		this.barcode = barcode;
+	}
+
+	public String getSku() {
+		return sku;
+	}
+
+	public void setSku(String sku) {
+		this.sku = sku;
+	}
+
 	public String getCustomerName() {
 		return customerName;
 	}

+ 2 - 0
wms-core-service/src/main/java/com/lote/wms/instock/order/service/InOrderExportService.java

@@ -6,4 +6,6 @@ import com.lote.wms.instock.order.entity.queryvo.InOrderQueryVo;
 public interface InOrderExportService {
 
 	Message export(InOrderQueryVo vo);
+
+    Message exportReceiptDetail(InOrderQueryVo inOrderQueryVo);
 }

+ 86 - 12
wms-core-service/src/main/java/com/lote/wms/instock/order/service/impl/InOrderExportServiceImpl.java

@@ -1,17 +1,5 @@
 package com.lote.wms.instock.order.service.impl;
 
-import java.io.File;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.UUID;
-
-import javax.annotation.Resource;
-
-import org.apache.poi.ss.usermodel.Sheet;
-import org.springframework.stereotype.Service;
-
 import com.lote.wms.common.config.SystemConfig;
 import com.lote.wms.common.model.Message;
 import com.lote.wms.common.utils.BeanUtil;
@@ -24,6 +12,13 @@ import com.lote.wms.instock.order.entity.queryvo.InOrderQueryVo;
 import com.lote.wms.instock.order.entity.resultvo.InOrderResultVo;
 import com.lote.wms.instock.order.service.InOrderExportService;
 import com.lote.wms.instock.order.service.InOrderService;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+import java.util.*;
 
 @Service
 public class InOrderExportServiceImpl implements InOrderExportService {
@@ -92,6 +87,85 @@ public class InOrderExportServiceImpl implements InOrderExportService {
 		return Message.fail("系统异常,请稍后重试!");
 	}
 
+	@Override
+	public Message exportReceiptDetail(InOrderQueryVo vo) {
+
+		BeanUtil.trimString(InOrderQueryVo.class, vo);
+
+		if (!StringUtil.isEmpty(vo.getOrderNos())) {
+			vo.setOrderNoList(Arrays.asList(vo.getOrderNos().replaceAll("[\\s,;'\\.\"。,]+", " ").split(" ")));
+		}
+		if (Objects.isNull(vo.getIdList()) || vo.getIdList().size() == 0) {
+			return Message.fail("请先选择入库单导出。");
+		}
+		List<InOrderResultVo> inOrderResultVoList = inOrderMapper.selectForExportReceiptDetail(vo);// 获得所有的入库单
+		if (Objects.isNull(inOrderResultVoList) || inOrderResultVoList.size() == 0) {
+			return Message.fail("所选择的入库单无收货明细,请先完成收货。");
+		}
+
+		int countForExport = inOrderResultVoList.size();
+		Sheet sheet = null;
+
+		String headCnStrList[] = new String[]{"入库单号", "仓库代码", "货主代码", "入库类型", "供应商代码", "运输方式", "跟踪号码", "商品SKU", "商品条码",
+				 "商品名称","商品品质","收货数量", "生产日期", "保质天数", "过期时间", "批次号", "批次号规则", "收货人","收货时间" };
+
+		List<String> headCnList = Arrays.asList(headCnStrList);
+
+		try {
+			sheet = POIExcelUtil.createSheet("入库单收货明细", headCnList);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		// 转换成行
+		List<String[]> row = parseRowByReceiptDetail(inOrderResultVoList, headCnList);
+		// 保存到excel中
+		POIExcelUtil.addRows(sheet, row);
+
+		// 保存到临时文件返回路径 TODO
+		try {
+			// 随机生成文件
+			String fileName = UUID.randomUUID().toString() + ".xlsx";
+			File tempFile = new File(systemConfig.getRuntimeFileDir() + "/inorder/");
+			if (!tempFile.exists()) {
+				tempFile.mkdirs();
+			}
+			String fileNameAndPath = systemConfig.getRuntimeFileDir() + "/inorder/" + fileName;
+			POIExcelUtil.saveToFile(sheet, fileNameAndPath);
+
+			// 上传文件服务器
+			String downUrl = FileServerClient.fileUpload(systemConfig.getFileServerUrl(), fileNameAndPath);
+			return Message.success(downUrl);
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return Message.fail("系统异常,请稍后重试!");
+	}
+
+	private List<String[]> parseRowByReceiptDetail(List<InOrderResultVo> inOrderResultVoList, List<String> headCnList) {
+		//	String headCnStrList[] = new String[]{"入库单号", "仓库代码", "货主代码", "入库类型", "供应商代码", "运输方式", "跟踪号码", "商品SKU", "商品条码",
+		//				 "商品名称","商品品质","收货数量", "生产日期", "保质天数", "过期时间", "批次号", "批次号规则", "收货人","收货时间" };
+		List<String[]> rows = new ArrayList<>();
+		for (InOrderResultVo inOrderResultVo : inOrderResultVoList) {
+			String[] row = new String[headCnList.size()];
+			row[0] = inOrderResultVo.getOrderNo1();
+			row[1] = inOrderResultVo.getWarehouseCode();
+			row[2] = inOrderResultVo.getCustomerCode();
+			row[3] = inOrderResultVo.getTypeName();
+			row[4] = inOrderResultVo.getSupplierCode();
+			row[5] = inOrderResultVo.getShipwayCode();
+			row[6] = inOrderResultVo.getTrackingNo1();
+			row[7] = inOrderResultVo.getSku();
+			row[8] = inOrderResultVo.getBarcode();
+			row[9] = inOrderResultVo.getCustomerCode();
+			row[10] = inOrderResultVo.getTypeName();
+			row[11] = inOrderResultVo.getRemark();
+			row[12] = inOrderResultVo.getShipwayCode();
+			row[13] = inOrderResultVo.getTrackingNo1();
+
+		}
+		return rows;
+	}
+
 	private List<String[]> parseRow(List<InOrderResultVo> selectByExport, List<String> headCnList) {
 		List<String[]> rows = new ArrayList<>();
 		for (InOrderResultVo inOrderResultVo : selectByExport) {

+ 32 - 1
wms-core-service/src/main/resources/mybatis/mapper/instock/order/InOrderMapper.xml

@@ -834,5 +834,36 @@
     select 
     <include refid="Base_Column_List" />
     from in_order a where a.order_no1 = #{orderNo1,jdbcType=VARCHAR}
-  </select>     
+  </select>
+
+
+
+  <select id="selectForExportReceiptDetail" flushCache="true" resultType="com.lote.wms.instock.order.entity.resultvo.InOrderResultVo"
+          parameterType="com.lote.wms.instock.order.entity.queryvo.InOrderQueryVo"  >
+    select
+    o.id as id,
+    o.customer_id as customerId,
+    o.customer_code as customerCode,
+    o.warehouse_id as warehouseId,
+    o.warehouse_code as warehouseCode,
+    o.type_code as typeCode,
+    o.type_name as typeName,
+    o.create_way as createWay,
+    o.api_type_code as apiTypeCode,
+    o.status_code as statusCode,
+    o.status_name as statusName,
+    from in_order o
+    LEFT JOIN in_receipt r on o.order_no1 = r.order_no1
+    where 1=1
+    <if test="idList !=null and idList.size>0">
+      and o.id in
+      <foreach collection="idList" item="orderId" separator="," open="(" close=")" >
+        #{orderId}
+      </foreach>
+    </if>
+  </select>
+
+
+
+
 </mapper>

+ 12 - 0
wms-operate/src/main/java/com/lote/wms/controller/operate/instock/order/InOrderController.java

@@ -374,6 +374,18 @@ public class InOrderController extends AbstractController {
 
 
 
+	/**
+	 * 执行导出 ,生成文件,传至文件服务器,并返回文件服务器地址
+	 * 导出收货明细
+	 * @param InOrderQueryVo
+	 * @return
+	 */
+	@RequestMapping("exportReceiptDetail")
+	@ResponseBody
+	public Result exportReceiptDetail(@RequestBody InOrderQueryVo inOrderQueryVo) {
+		return MessageToResultAdapt.toResult(inOrderExportService.exportReceiptDetail(inOrderQueryVo));
+	}
+
 
 
 }

+ 46 - 1
wms-operate/src/main/resources/static/ui/js/instock/order/inOrder/list.js

@@ -375,6 +375,51 @@ $("#holdUp").iMenubutton({
     url: '/instock/order/holdUp'
 });
 
+
+
+
+/**
+ * 根据选中项导出
+ */
+$("#exportReceiptDetail").iMenubutton({
+	extend:'#userDatagrid-toolbar',
+	iconCls:'fa fa-file-excel-o',
+	onClick:function(){
+		var row = getCheckedRowsData(myGrid.type, myGrid.id);//获取勾选中的行
+		if(row == null){
+			$.iMessager.alert('提示', '请先选中一条要操作的数据', 'messager-warning');
+			return false;
+		}
+		var idList=[];
+		for (var i = 0; i < row.length; i++) {
+			idList.push(row[i].id)
+		}
+		var exportDataStr = JSON.stringify({idList:idList});
+
+		$.iMessager.progress({text: '正在导出中....'});
+		//执行下载
+		$.ajax({
+			method:"POST",
+			url: "/instock/order/exportReceiptDetail",
+			data: exportDataStr,
+			dataType:"json",
+			contentType:"application/json",
+			success: function(result){
+				$.iMessager.progress('close');
+				if(result.code !=0 ){// 如果result不是成功
+					$.iMessager.alert('操作提示', result.msg, 'messager-info');
+					return;
+				}
+
+				$.iMessager.show({title: '温馨提示',msg:'正在下载文件:'+ result.msg,timeout:4000}); // 右下角提示信息
+				window.open(result.msg)
+			}
+		});
+	}
+});
+
+
+
 //取消拦截
 $("#unHoldUp").iMenubutton({
     method: 'doAjax',
@@ -812,4 +857,4 @@ function updRemark(id){
 function unFocusOrderNos(){
 	var orderNos = $("#orderNos").val();
 	console.info(orderNos );
-}    
+}

+ 1 - 0
wms-operate/src/main/resources/static/ui/views/instock/order/inOrder/list.html

@@ -86,6 +86,7 @@
                <div id="exportByQuery">按条件导出</div>
                <div id="exportBySelect">导出选中项</div>
 			</div>
+			<a id="exportReceiptDetail"  href="javascript:void(0)" style="width: 85px;">导出收货明细</a>
 		    <a id="holdUp" href="javascript:void(0)" style="width: 85px;">拦截</a>
 		    <a id="unHoldUp" href="javascript:void(0)" style="width: 85px;">取消拦截</a>
 <!-- 		    2019-02-21改为在上架记录确认库存,入库单只能确认关闭  html 和 js ,后台代码保留 -->