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

Merge remote-tracking branch 'origin/ScrmStores' into ScrmStores

# Conflicts:
#	fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderItemScrmMapper.java
#	fs-service/src/main/resources/mapper/hisStore/FsStoreOrderItemScrmMapper.xml
yjwang 2 hete
szülő
commit
a6c8bbd38b

+ 71 - 71
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreHealthOrderScrmController.java

@@ -43,6 +43,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.*;
@@ -469,9 +470,10 @@ public class FsStoreHealthOrderScrmController 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;
@@ -483,76 +485,76 @@ public class FsStoreHealthOrderScrmController 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);
+                    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);
+//                            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");
@@ -586,7 +588,6 @@ public class FsStoreHealthOrderScrmController extends BaseController {
             } catch (IOException e) {
                 logger.error("关闭Workbook失败", e);
             }
-
             try {
                 if (fis != null) {
                     fis.close();
@@ -594,7 +595,6 @@ public class FsStoreHealthOrderScrmController extends BaseController {
             } catch (IOException e) {
                 logger.error("关闭输入流失败", e);
             }
-
             try {
                 if (outputStream != null) {
                     outputStream.close();

BIN
fs-admin/src/main/resources/打印详情表格.xlsx


BIN
fs-admin/src/main/resources/退款详情表格.xlsx


+ 6 - 0
fs-service/src/main/java/com/fs/course/dto/FsOrderCodeNoteDTO.java

@@ -14,6 +14,12 @@ public class FsOrderCodeNoteDTO {
     @Excel(name = "系统订单号(必填)",width = 20,sort = 1)
     private String orderNumber;
 
+    /**
+     * 商品名称
+     * **/
+    @Excel(name = "商品名称(必填)",width = 20,sort = 1)
+    private String productName;
+
     /**
      * 溯源码
      * **/

+ 4 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderItemScrmMapper.java

@@ -267,6 +267,10 @@ public interface FsStoreOrderItemScrmMapper
     @Select("select product_id,json_info,num from fs_store_order_item_scrm where order_id=#{orderId}")
     List<FsStoreOrderItemListDVO> selectFsStoreOrderItemListDVOByOrderId(Long orderId);
 
+    List<FsStoreOrderItemScrm> selectFsStoreOrderItemByOrderCode(String orderCode);
+
+    void batchUpdateVerifyCodeByOrderCode(List<FsStoreOrderItemScrm> batchList);
+
     /**
      * 拼接溯源码、产品批次号
      * @param orderIds

+ 26 - 2
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -378,6 +378,9 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
     @Autowired
     private IFsStoreVerifyCodeScrmService verifyCodeScrmService;
 
+    @Autowired
+    private FsStoreOrderItemScrmMapper fsStoreOrderItemScrmMapper;
+
     @PostConstruct
     public void initErpServiceMap() {
         erpServiceMap = new HashMap<>();
@@ -5916,17 +5919,38 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
     public R importDeliveryNoteExpress(List<FsOrderCodeNoteDTO> dtoList) {
         int row =0;
         Map<String,Integer> checkMap = new HashMap<>();
+        List<FsStoreOrderItemScrm> batchList = new ArrayList<>();
         for (FsOrderCodeNoteDTO d : dtoList){
+            FsStoreOrderItemScrm item = new FsStoreOrderItemScrm();
             row++;
             if(d.getOrderNumber() == null){
                 return R.error("操作失败,第"+row+"行,订单号为空!");
             }
-
+            if(d.getProductName() == null){
+                return R.error("操作失败,第"+row+"行,商品名称为空!");
+            }
             if(checkMap.containsKey(d.getOrderNumber())){
                 return R.error("操作失败,第"+row+"行,订单重复导入!");
             }
+
+            item.setOrderCode(d.getOrderNumber());
+
+            List<FsStoreOrderItemScrm> orderItems = fsStoreOrderItemScrmMapper.selectFsStoreOrderItemByOrderCode(d.getOrderNumber());
+            if(CollectionUtils.isNotEmpty(orderItems)){
+                for (FsStoreOrderItemScrm orderItem : orderItems) {
+                    com.fs.his.dto.FsStoreCartDTO cartDTO = JSONUtil.toBean(orderItem.getJsonInfo(), com.fs.his.dto.FsStoreCartDTO.class);
+                    if (d.getProductName() .equals(cartDTO.getProductName())){
+                        item.setProductId(orderItem.getProductId());
+                    }
+
+                }
+            }
+            item.setBatchNumber(d.getBatchNumber());
+            item.setVerifyCode(d.getVerifyCode());
+            batchList.add(item);
         }
-        fsStoreOrderMapper.batchUpdateVerifyCodeByOrderCode(dtoList);
+        fsStoreOrderItemScrmMapper.batchUpdateVerifyCodeByOrderCode(batchList);
+        //fsStoreOrderMapper.batchUpdateVerifyCodeByOrderCode(dtoList);
         return R.ok();
     }
 

+ 5 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreOrderItemVO.java

@@ -47,5 +47,10 @@ public class FsStoreOrderItemVO  implements Serializable
     private Integer isPrescribe;
 
     private Integer isDrug; //是否为药品
+    //溯源码
+    private String verifyCode;
+    //批次号
+    private String batchNumber;
+
 
 }

+ 21 - 0
fs-service/src/main/resources/mapper/hisStore/FsStoreOrderItemScrmMapper.xml

@@ -96,6 +96,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{itemId}
         </foreach>
     </delete>
+
+    <select id="selectFsStoreOrderItemByOrderCode" resultType="com.fs.hisStore.domain.FsStoreOrderItemScrm">
+        select * from fs_store_order_item_scrm where order_code = #{orderCode}
+    </select>
+    <update id="batchUpdateVerifyCodeByOrderCode" parameterType="list">
+        UPDATE fs_store_order_item_scrm
+        SET verify_code =
+        <foreach collection="list" item="item" separator=" " open="CASE" close="END">
+            WHEN order_code = #{item.orderCode} AND product_id = #{item.productId}
+            THEN #{item.verifyCode}
+        </foreach>,
+        batch_number =
+        <foreach collection="list" item="item" separator=" " open="CASE" close="END">
+            WHEN order_code = #{item.orderCode} AND product_id = #{item.productId}
+            THEN #{item.batchNumber}
+        </foreach>
+        WHERE
+        <foreach collection="list" item="item" separator="OR" open="(" close=")">
+            (order_code = #{item.orderCode} AND product_id = #{item.productId})
+        </foreach>
+    </update>
     <select id="selectOrderItemSpliceByOrderIds" resultType="FsStoreOrderItemScrm">
         SELECT
         order_id,

+ 73 - 71
fs-store/src/main/java/com/fs/hisStore/controller/store/FsStoreOrderScrmController.java

@@ -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();

BIN
fs-store/src/main/resources/打印详情表格.xlsx


BIN
fs-store/src/main/resources/退款详情表格.xlsx