|
@@ -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;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|