Browse Source

生命礼赞订单

wangxy 6 ngày trước cách đây
mục cha
commit
6c0ac87dc7

+ 243 - 0
fs-admin/src/main/java/com/fs/his/controller/LifeSaluteOrderController.java

@@ -0,0 +1,243 @@
+package com.fs.his.controller;
+
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.R;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.enums.BusinessType;
+import com.fs.common.exception.base.BaseException;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.core.utils.OrderCodeUtils;
+import com.fs.his.domain.LifeSaluteOrder;
+import com.fs.his.dto.LifeSaluteOrderImportDTO;
+import com.fs.his.param.LifeSaluteOrderCreateParam;
+import com.fs.his.service.ILifeSaluteOrderService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * 生命礼赞订单Controller
+ */
+@RestController
+@RequestMapping("/his/lifeSaluteOrder")
+public class LifeSaluteOrderController extends BaseController {
+
+    @Autowired
+    private ILifeSaluteOrderService lifeSaluteOrderService;
+
+    /**
+     * 分页查询生命礼赞订单列表
+     *
+     * @param lifeSaluteOrder 查询条件
+     * @return 分页列表数据
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(LifeSaluteOrder lifeSaluteOrder) {
+        startPage();
+        List<LifeSaluteOrder> list = lifeSaluteOrderService.selectLifeSaluteOrderList(lifeSaluteOrder);
+        return getDataTable(list);
+    }
+
+    /**
+     * 创建生命礼赞订单(全部字段由前端传入)
+     *
+     * @param param 订单创建参数
+     * @return 创建结果
+     */
+    @Log(title = "生命礼赞订单", businessType = BusinessType.INSERT)
+    @PostMapping("/create")
+    public R create(@RequestBody LifeSaluteOrderCreateParam param) {
+        return lifeSaluteOrderService.createLifeSaluteOrder(param);
+    }
+
+    /**
+     * 导出生命礼赞订单列表到Excel
+     *
+     * @param lifeSaluteOrder 查询条件
+     * @return Excel文件
+     */
+    @Log(title = "生命礼赞订单", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(LifeSaluteOrder lifeSaluteOrder) {
+        List<LifeSaluteOrder> list = lifeSaluteOrderService.selectLifeSaluteOrderList(lifeSaluteOrder);
+        ExcelUtil<LifeSaluteOrder> util = new ExcelUtil<>(LifeSaluteOrder.class);
+        return util.exportExcel(list, "生命礼赞订单数据");
+    }
+
+    /**
+     * 下载生命礼赞订单导入模板
+     *
+     * @return Excel导入模板
+     */
+    @GetMapping("/importTemplate")
+    public AjaxResult importTemplate() {
+        ExcelUtil<LifeSaluteOrder> util = new ExcelUtil<>(LifeSaluteOrder.class);
+        return util.importTemplateExcel("生命礼赞订单导入模板");
+    }
+
+    /**
+     * 从Excel导入生命礼赞订单数据
+     */
+    @Log(title = "生命礼赞订单", businessType = BusinessType.IMPORT)
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
+    {
+        ExcelUtil<LifeSaluteOrderImportDTO> util = new ExcelUtil<>(LifeSaluteOrderImportDTO.class);
+        List<LifeSaluteOrderImportDTO> list = util.importExcel(file.getInputStream());
+        String message = importLifeSaluteOrder(list, updateSupport);
+        return AjaxResult.success(message);
+    }
+
+    /**
+     * 查询生命礼赞订单物流信息
+     */
+    @GetMapping(value = "/getExpress/{id}")
+    public R getExpress(@PathVariable("id") Long id)
+    {
+        return R.ok().put("data", lifeSaluteOrderService.getExpress(id));
+    }
+
+    /**
+     * 同步生命礼赞订单物流状态
+     */
+    @Log(title = "同步生命礼赞订单物流", businessType = BusinessType.UPDATE)
+    @GetMapping(value = "/syncExpress/{id}")
+    public R syncExpress(@PathVariable("id") Long id)
+    {
+        return lifeSaluteOrderService.syncExpress(id);
+    }
+
+    /**
+     * 处理Excel导入的生命礼赞订单数据
+     */
+    private String importLifeSaluteOrder(List<LifeSaluteOrderImportDTO> orderList, boolean updateSupport)
+    {
+        if (orderList == null || orderList.isEmpty())
+        {
+            return "导入数据不能为空";
+        }
+        int successCount = 0;
+        int failCount = 0;
+        for (LifeSaluteOrderImportDTO orderDTO : orderList)
+        {
+            try
+            {
+                LifeSaluteOrder existing = lifeSaluteOrderService.selectLifeSaluteOrderByOrderNo(orderDTO.getOrderNo());
+                if (existing != null)
+                {
+                    if (updateSupport)
+                    {
+                        existing = copyImportDtoToOrder(orderDTO, existing);
+                        existing.setId(existing.getId());
+                        existing.setSenderAddress("西藏自治区昌都市丁青县协雄乡达恩仓藏医门诊");
+                        lifeSaluteOrderService.updateLifeSaluteOrder(existing);
+                        if (StringUtils.isNotEmpty(existing.getWaybillNo()) && StringUtils.isNotEmpty(existing.getDeliveryCode()))
+                        {
+                            lifeSaluteOrderService.subscribeExpress(existing);
+                        }
+                        successCount++;
+                    }
+                    else
+                    {
+                        failCount++;
+                    }
+                }
+                else
+                {
+                    LifeSaluteOrder order = copyImportDtoToOrder(orderDTO, new LifeSaluteOrder());
+                    if (order.getPackageCount() == null)
+                    {
+                        order.setPackageCount(1);
+                    }
+                    if (order.getOrderStatus() == null)
+                    {
+                        order.setOrderStatus(0);
+                    }
+                    String orderSn = OrderCodeUtils.getOrderSn();
+                    if (StringUtils.isEmpty(orderSn)) {
+                        throw new BaseException("订单号创建失败");
+                    }
+                    order.setOrderNo(orderSn);
+                    order.setSenderAddress("西藏自治区昌都市丁青县协雄乡达恩仓藏医门诊");
+                    lifeSaluteOrderService.insertLifeSaluteOrder(order);
+                    if (StringUtils.isNotEmpty(order.getWaybillNo()) && StringUtils.isNotEmpty(order.getDeliveryCode()))
+                    {
+                        lifeSaluteOrderService.subscribeExpress(order);
+                    }
+                    successCount++;
+                }
+            }
+            catch (Exception e)
+            {
+                failCount++;
+            }
+        }
+        return "导入成功 " + successCount + " 条,失败 " + failCount + " 条";
+    }
+
+    /**
+     * 将导入DTO数据复制到实体对象
+     */
+    private LifeSaluteOrder copyImportDtoToOrder(LifeSaluteOrderImportDTO dto, LifeSaluteOrder order)
+    {
+        order.setOrderNo(dto.getOrderNo());
+        order.setMerchantOrderNo(dto.getMerchantOrderNo());
+        order.setPlatformOrderNo(dto.getPlatformOrderNo());
+        order.setPreWaybillNo(dto.getPreWaybillNo());
+        order.setWaybillNo(dto.getWaybillNo());
+        order.setDeliveryCode(dto.getDeliveryCode());
+        order.setSenderName(dto.getSenderName());
+        order.setSenderMobile(dto.getSenderMobile());
+        order.setSenderTel(dto.getSenderTel());
+        order.setSenderCompany(dto.getSenderCompany());
+        order.setSenderProvince(dto.getSenderProvince());
+        order.setSenderCity(dto.getSenderCity());
+        order.setSenderDistrict(dto.getSenderDistrict());
+        order.setSenderAddress(dto.getSenderAddress());
+        order.setReceiverName(dto.getReceiverName());
+        order.setReceiverMobile(dto.getReceiverMobile());
+        order.setReceiverTel(dto.getReceiverTel());
+        order.setReceiverCompany(dto.getReceiverCompany());
+        order.setReceiverProvince(dto.getReceiverProvince());
+        order.setReceiverCity(dto.getReceiverCity());
+        order.setReceiverDistrict(dto.getReceiverDistrict());
+        order.setReceiverAddress(dto.getReceiverAddress());
+        order.setGoodsType(dto.getGoodsType());
+        order.setPackageCount(dto.getPackageCount());
+        order.setWeight(dto.getWeight());
+        order.setLength(dto.getLength());
+        order.setWidth(dto.getWidth());
+        order.setHeight(dto.getHeight());
+        order.setTemperatureType(dto.getTemperatureType());
+        order.setExpressProductType(dto.getExpressProductType());
+        order.setPickupDate(dto.getPickupDate());
+        order.setPickupTime(dto.getPickupTime());
+        order.setWarehouseCode(dto.getWarehouseCode());
+        order.setPayType(dto.getPayType());
+        order.setIsUploadWaybillFile(dto.getIsUploadWaybillFile());
+        order.setIsPrintWaybill(dto.getIsPrintWaybill());
+        order.setInsuredAmount(dto.getInsuredAmount());
+        order.setIsSignReturn(dto.getIsSignReturn());
+        order.setCodAmount(dto.getCodAmount());
+        order.setIsJdExpress(dto.getIsJdExpress());
+        order.setIsFraudCodeCollect(dto.getIsFraudCodeCollect());
+        order.setIsOpenCheck(dto.getIsOpenCheck());
+        order.setIsPackService(dto.getIsPackService());
+        order.setIsExpressWarehouse(dto.getIsExpressWarehouse());
+        order.setIsReturnBox(dto.getIsReturnBox());
+        order.setIsDesignatedSign(dto.getIsDesignatedSign());
+        order.setDesignatedSignVerifyCode(dto.getDesignatedSignVerifyCode());
+        order.setIsDesignatedSignIdcard(dto.getIsDesignatedSignIdcard());
+        order.setIsPackageService(dto.getIsPackageService());
+        order.setSalesChannel(dto.getSalesChannel());
+        order.setOrderAmount(dto.getOrderAmount());
+        order.setCustomInfo(dto.getCustomInfo());
+        order.setOrderStatus(dto.getOrderStatus());
+        return order;
+    }
+}