|
|
@@ -60,6 +60,7 @@ import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.IOException;
|
|
|
import java.io.InputStream;
|
|
|
import java.math.BigDecimal;
|
|
|
+import java.math.BigInteger;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
@@ -531,9 +532,10 @@ public class FsStoreOrderScrmController extends BaseController
|
|
|
fsStorePaymentService.selectFsStorePaymentByOrderId(fsStoreOrderScrm.getId());
|
|
|
//拿到所有的商品
|
|
|
List<FsStoreOrderItemVO> orderItems = orderItemService.selectFsStoreOrderItemListByOrderId(fsStoreOrderScrm.getId());
|
|
|
-
|
|
|
+ //小于0的就是退款的-1\-2\-3status 是否小于0
|
|
|
+// boolean statusFlag = fsStoreOrderScrm.getStatus() == -2;
|
|
|
+// String templatePath = statusFlag?"/退款详情表格.xlsx":"/打印详情表格.xlsx";
|
|
|
String templatePath = "/打印详情表格.xlsx";
|
|
|
-
|
|
|
Workbook workbook = null;
|
|
|
InputStream fis = null;
|
|
|
ServletOutputStream outputStream = null;
|
|
|
@@ -545,76 +547,78 @@ public class FsStoreOrderScrmController extends BaseController
|
|
|
workbook = new XSSFWorkbook(fis);
|
|
|
Sheet sheet = workbook.getSheetAt(0); // 第一个工作表
|
|
|
int startCol = 1;
|
|
|
- /**销售出库明细单**/
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
- for (int i = 0; i < orderItems.size(); i++) {
|
|
|
- StoreOrderProductDTO cartInfo = JSONObject.parseObject(orderItems.get(i).getJsonInfo(), StoreOrderProductDTO.class);
|
|
|
- setCellValue(sheet, 9, startCol + i, cartInfo.getSku());//规格(型号)
|
|
|
- setCellValue(sheet, 13, startCol + i, String.valueOf(cartInfo.getNum()));//数量
|
|
|
- setCellValue(sheet, 14, startCol + i, String.valueOf(cartInfo.getPrice()));//单价(元)
|
|
|
- setCellValue(sheet, 15, startCol + i, String.valueOf(cartInfo.getPrice()));//金额(元)
|
|
|
- FsStoreProductScrm fsStoreProductScrm = fsStoreProductService.selectFsStoreProductById(cartInfo.getProductId());
|
|
|
- setCellValue(sheet, 10, startCol + i, fsStoreProductScrm != null && fsStoreProductScrm.getManufacturer()!= null ?fsStoreProductScrm.getManufacturer(): "");//生产企业名称
|
|
|
- setCellValue(sheet, 8, startCol + i, cartInfo.getProductName() == null ? fsStoreProductScrm != null && fsStoreProductScrm.getCommonName()!= null ?fsStoreProductScrm.getCommonName() : cartInfo.getProductName():"");//商品名称
|
|
|
- setCellValue(sheet, 11, 1, fsStoreOrderScrm.getBatchNumber());//生产批号(药品) / 序列号(器械)
|
|
|
- setCellValue(sheet, 12, 1, fsStoreOrderScrm.getVerifyCode());//有效期/追溯码
|
|
|
- }
|
|
|
- String payTimeStr = null;
|
|
|
- Date payTime = fsStoreOrderScrm.getPayTime();
|
|
|
- if (payTime != null) {
|
|
|
- payTimeStr = sdf.format(payTime);
|
|
|
- }
|
|
|
- setCellValue(sheet, 2, 1, fsStoreOrderScrm.getOrderCode());//订单编号
|
|
|
- setCellValue(sheet, 3, 1, fsStoreScrm != null?fsStoreScrm.getStoreName():"");//店铺名称
|
|
|
- setCellValue(sheet, 4, 1, fsStoreScrm != null?fsStoreScrm.getFullName():"");//企业全称
|
|
|
- setCellValue(sheet, 5, 1, fsStoreScrm != null?fsStoreScrm.getEnterpriseAddress():"");//经营地址 营业执照上的地址
|
|
|
- setCellValue(sheet, 6, 1, fsStoreScrm != null?fsStoreScrm.getRefundPhone():"");//联系电话 这个地方拉取商家入驻的时候填写的退货电话
|
|
|
- setCellValue(sheet, 7, 1, payTimeStr);//销售日期 订单支付时间
|
|
|
+// if(!statusFlag){
|
|
|
+ /**销售出库明细单**/
|
|
|
+ for (int i = 0; i < orderItems.size(); i++) {
|
|
|
+ StoreOrderProductDTO cartInfo = JSONObject.parseObject(orderItems.get(i).getJsonInfo(), StoreOrderProductDTO.class);
|
|
|
+ logger.info("出库,carInfo:{},{}", i,orderItems.get(i).getJsonInfo());
|
|
|
+ setCellValue(sheet, 9, startCol + i, cartInfo.getSku());//规格(型号)
|
|
|
+ setCellValue(sheet, 13, startCol + i, String.valueOf(cartInfo.getNum()));//数量
|
|
|
+ setCellValue(sheet, 14, startCol + i, String.valueOf(cartInfo.getPrice()));//单价(元)
|
|
|
+ setCellValue(sheet, 15, startCol + i, String.valueOf(cartInfo.getPrice()));//金额(元)
|
|
|
+ FsStoreProductScrm fsStoreProductScrm = fsStoreProductService.selectFsStoreProductById(cartInfo.getProductId());
|
|
|
+ setCellValue(sheet, 10, startCol + i, fsStoreProductScrm != null && fsStoreProductScrm.getManufacturer()!= null ?fsStoreProductScrm.getManufacturer(): "");//生产企业名称
|
|
|
+ setCellValue(sheet, 8, startCol + i, cartInfo.getProductName() == null ? fsStoreProductScrm != null && fsStoreProductScrm.getCommonName()!= null ?fsStoreProductScrm.getCommonName() : cartInfo.getProductName():"");//商品名称
|
|
|
+ setCellValue(sheet, 11, 1, orderItems.get(i).getBatchNumber());//生产批号(药品) / 序列号(器械)
|
|
|
+ setCellValue(sheet, 12, 1, orderItems.get(i).getVerifyCode());//有效期/追溯码
|
|
|
+ }
|
|
|
+ String payTimeStr = null;
|
|
|
+ Date payTime = fsStoreOrderScrm.getPayTime();
|
|
|
+ if (payTime != null) {
|
|
|
+ payTimeStr = sdf.format(payTime);
|
|
|
+ }
|
|
|
+ setCellValue(sheet, 2, 1, fsStoreOrderScrm.getOrderCode());//订单编号
|
|
|
+ setCellValue(sheet, 3, 1, fsStoreScrm != null?fsStoreScrm.getStoreName():"该店铺已不存在");//店铺名称
|
|
|
+ setCellValue(sheet, 4, 1, fsStoreScrm != null?fsStoreScrm.getFullName():"该店铺已不存在");//企业全称
|
|
|
+ setCellValue(sheet, 5, 1, fsStoreScrm != null?fsStoreScrm.getEnterpriseAddress():"该店铺已不存在");//经营地址 营业执照上的地址
|
|
|
+ setCellValue(sheet, 6, 1, fsStoreScrm != null?fsStoreScrm.getRefundPhone():"该店铺已不存在");//联系电话 这个地方拉取商家入驻的时候填写的退货电话
|
|
|
+ setCellValue(sheet, 7, 1, payTimeStr);//销售日期 订单支付时间
|
|
|
// setCellValue(sheet, 11, 1, fsStoreOrderScrm.getBatchNumber());//生产批号(药品) / 序列号(器械)
|
|
|
// setCellValue(sheet, 12, 1, fsStoreOrderScrm.getVerifyCode());//有效期/追溯码
|
|
|
- setCellValue(sheet, 16, 1, String.valueOf(fsStoreOrderScrm.getTotalPrice()));//合计金额(元)
|
|
|
-
|
|
|
-
|
|
|
- /**销售退款明细单**/
|
|
|
- List<FsStorePaymentScrm> fsStorePaymentScrms = fsStorePaymentService.selectFsStorePaymentByOrderIdAndStatus(fsStoreOrderScrm.getId());
|
|
|
- if (!CollectionUtils.isEmpty(fsStorePaymentScrms)) {
|
|
|
- List<FsStoreAfterSalesVO> fsStoreAfterSalesVOS = fsStoreAfterSalesService.selectFsStoreAfterSalesVOByOrderCode(fsStoreOrderScrm.getOrderCode());
|
|
|
- FsStoreAfterSalesItemScrm map = new FsStoreAfterSalesItemScrm();
|
|
|
- map.setStoreAfterSalesId(fsStoreAfterSalesVOS.get(0).getId());
|
|
|
- List<FsStoreAfterSalesItemScrm> items = fsStoreAfterSalesItemService.selectFsStoreAfterSalesItemList(map);
|
|
|
- setCellValue(sheet, 24, 1, fsStorePaymentScrms.get(0).getBankSerialNo());//退款单号 fs_store_payment_scrm支付明细表
|
|
|
- setCellValue(sheet, 25, 1, fsStoreOrderScrm.getOrderCode());//原销售订单编号
|
|
|
- setCellValue(sheet, 26, 1, fsStoreScrm.getStoreName());//店铺名称
|
|
|
- setCellValue(sheet, 27, 1, fsStoreScrm.getEnterpriseAddress());//经营地址 营业执照上的地址
|
|
|
- setCellValue(sheet, 28, 1, fsStoreScrm.getRefundPhone());//联系电话 这个地方拉取商家入驻的时候填写的退货电话
|
|
|
- setCellValue(sheet, 29, 1, sdf.format(fsStorePaymentScrms.get(0).getRefundTime()));//退货日期
|
|
|
- int startNul = 1;
|
|
|
- Integer total = 0;
|
|
|
- for (int i = 0; i < items.size(); i++) {
|
|
|
- setCellValue(sheet, 32, startNul + i, items.get(0).getMah());//生产企业名称
|
|
|
- Integer tal = 0;
|
|
|
- String jsonInfo = items.get(i).getJsonInfo();
|
|
|
- if (StringUtils.isNotEmpty(jsonInfo)) {
|
|
|
- StoreOrderProductDTO cartInfo = JSONObject.parseObject(jsonInfo, StoreOrderProductDTO.class);
|
|
|
- setCellValue(sheet, 30, startNul + i, cartInfo.getProductName());//商品名称 如果为空取通用名称,
|
|
|
- setCellValue(sheet, 31, startNul + i, cartInfo.getSku());//规格(型号)
|
|
|
- setCellValue(sheet, 33, startNul + i, cartInfo.getBarCode());//生产批号 / 序列号 这应该药品的追溯码一样,都是发货的时候才会上传
|
|
|
-
|
|
|
- setCellValue(sheet, 35, startNul + i, String.valueOf(cartInfo.getNum()));//退货数量
|
|
|
- setCellValue(sheet, 36, startNul + i, String.valueOf(cartInfo.getPrice()));//单价(元)
|
|
|
- setCellValue(sheet, 37, startNul + i, cartInfo.getNum() == null || cartInfo.getPrice() == null ? "" : String.valueOf(cartInfo.getPrice().multiply(new BigDecimal(cartInfo.getNum()))));//退货金额(元) 单个产品的单价*数量
|
|
|
- if (cartInfo.getNum() != null && cartInfo.getPrice() != null) {
|
|
|
- tal = cartInfo.getNum() * (Integer.valueOf(String.valueOf(cartInfo.getPrice())));
|
|
|
- }
|
|
|
- }
|
|
|
- total += tal;
|
|
|
- }
|
|
|
- setCellValue(sheet, 34, 1, fsStoreOrderScrm.getVerifyCode());//有效期/追溯码 这应该药品的追溯码一样,都是发货的时候才会上传
|
|
|
-
|
|
|
- setCellValue(sheet, 38, 1, String.valueOf(total));//退款金额(元) 退款金额
|
|
|
- setCellValue(sheet, 39, 1, fsStoreAfterSalesVOS.get(0).getReasons());//退货原因 fs_store_after_sales_scrm
|
|
|
- }
|
|
|
-
|
|
|
+ setCellValue(sheet, 16, 1, String.valueOf(fsStoreOrderScrm.getTotalPrice()));//合计金额(元)
|
|
|
+// }else{
|
|
|
+ /**销售退款明细单**/
|
|
|
+// List<FsStorePaymentScrm> fsStorePaymentScrms = fsStorePaymentService.selectFsStorePaymentByOrderIdAndStatus(fsStoreOrderScrm.getId());
|
|
|
+// if (!CollectionUtils.isEmpty(fsStorePaymentScrms)) {
|
|
|
+// List<FsStoreAfterSalesVO> fsStoreAfterSalesVOS = fsStoreAfterSalesService.selectFsStoreAfterSalesVOByOrderCode(fsStoreOrderScrm.getOrderCode());
|
|
|
+// FsStoreAfterSalesItemScrm map = new FsStoreAfterSalesItemScrm();
|
|
|
+// map.setStoreAfterSalesId(fsStoreAfterSalesVOS.get(0).getId());
|
|
|
+// List<FsStoreAfterSalesItemScrm> items = fsStoreAfterSalesItemService.selectFsStoreAfterSalesItemList(map);
|
|
|
+// setCellValue(sheet, 2, 1, fsStorePaymentScrms.get(0).getBankSerialNo());//退款单号 fs_store_payment_scrm支付明细表
|
|
|
+// setCellValue(sheet, 3, 1, fsStoreOrderScrm.getOrderCode());//原销售订单编号
|
|
|
+// setCellValue(sheet, 4, 1, fsStoreScrm != null?fsStoreScrm.getStoreName():"该店铺已不存在");//店铺名称
|
|
|
+// setCellValue(sheet, 5, 1, fsStoreScrm != null?fsStoreScrm.getEnterpriseAddress():"该店铺已不存在");//经营地址 营业执照上的地址
|
|
|
+// setCellValue(sheet, 6, 1, fsStoreScrm != null?fsStoreScrm.getRefundPhone():"该店铺已不存在");//联系电话 这个地方拉取商家入驻的时候填写的退货电话
|
|
|
+// setCellValue(sheet, 7, 1, sdf.format(fsStorePaymentScrms.get(0).getRefundTime()));//退货日期
|
|
|
+// int startNul = 1;
|
|
|
+// BigDecimal total = new BigDecimal(BigInteger.ZERO); //退款金额(元)总退款金额
|
|
|
+// for (int i = 0; i < items.size(); i++) {
|
|
|
+// setCellValue(sheet, 10, startNul + i, items.get(0).getMah());//生产企业名称
|
|
|
+// BigDecimal tal = new BigDecimal(BigInteger.ZERO);
|
|
|
+// String jsonInfo = items.get(i).getJsonInfo();
|
|
|
+// if (StringUtils.isNotEmpty(jsonInfo)) {
|
|
|
+// StoreOrderProductDTO cartInfo = JSONObject.parseObject(jsonInfo, StoreOrderProductDTO.class);
|
|
|
+// logger.info("退款,carInfo:{},{}", i,orderItems.get(i).getJsonInfo());
|
|
|
+// setCellValue(sheet, 8, startNul + i, cartInfo.getProductName());//商品名称 如果为空取通用名称,
|
|
|
+// setCellValue(sheet, 9, startNul + i, cartInfo.getSku());//规格(型号)
|
|
|
+// setCellValue(sheet, 11, startNul + i, cartInfo.getBarCode());//生产批号 / 序列号 这应该药品的追溯码一样,都是发货的时候才会上传
|
|
|
+//
|
|
|
+// setCellValue(sheet, 13, startNul + i, String.valueOf(cartInfo.getNum()));//退货数量
|
|
|
+// setCellValue(sheet, 14, startNul + i, String.valueOf(cartInfo.getPrice()));//单价(元)
|
|
|
+// setCellValue(sheet, 15, startNul + i, cartInfo.getNum() == null || cartInfo.getPrice() == null ? "" : String.valueOf(cartInfo.getPrice().multiply(new BigDecimal(cartInfo.getNum()))));//退货金额(元) 单个产品的单价*数量
|
|
|
+// if (cartInfo.getNum() != null && cartInfo.getPrice() != null) {
|
|
|
+// tal = new BigDecimal(cartInfo.getNum()).multiply(cartInfo.getPrice());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// total=total.add(tal);
|
|
|
+// }
|
|
|
+// setCellValue(sheet, 12, 1, fsStoreOrderScrm.getVerifyCode());//有效期/追溯码 这应该药品的追溯码一样,都是发货的时候才会上传
|
|
|
+//
|
|
|
+// setCellValue(sheet, 16, 1, String.valueOf(total));//退款金额(元) 退款金额
|
|
|
+// setCellValue(sheet, 17, 1, fsStoreAfterSalesVOS.get(0).getReasons());//退货原因 fs_store_after_sales_scrm
|
|
|
+// }
|
|
|
+// }
|
|
|
// 设置响应头
|
|
|
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
|
|
|
response.setCharacterEncoding("utf-8");
|
|
|
@@ -648,7 +652,6 @@ public class FsStoreOrderScrmController extends BaseController
|
|
|
} catch (IOException e) {
|
|
|
logger.error("关闭Workbook失败", e);
|
|
|
}
|
|
|
-
|
|
|
try {
|
|
|
if (fis != null) {
|
|
|
fis.close();
|
|
|
@@ -656,7 +659,6 @@ public class FsStoreOrderScrmController extends BaseController
|
|
|
} catch (IOException e) {
|
|
|
logger.error("关闭输入流失败", e);
|
|
|
}
|
|
|
-
|
|
|
try {
|
|
|
if (outputStream != null) {
|
|
|
outputStream.close();
|