md
This commit is contained in:
parent
ad752df868
commit
404e6bdc5d
@ -0,0 +1,362 @@
|
||||
|
||||
/**
|
||||
* @Project: emis
|
||||
* @Title: EmisWaybillController.java
|
||||
* @author linfso
|
||||
* @date 2024-02-29 08:15:14
|
||||
* @Copyright: ShangHai Duta 2022 All rights reserved.
|
||||
* @version v1.0
|
||||
* @Description: <p> 运单列表 控制器 </p>
|
||||
*/
|
||||
|
||||
package com.xdadan.erp.apiweb;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.xdadan.erp.common.annotation.Log;
|
||||
import com.xdadan.erp.common.config.PayConfig;
|
||||
import com.xdadan.erp.common.core.controller.BaseController;
|
||||
import com.xdadan.erp.common.core.domain.AjaxResult;
|
||||
import com.xdadan.erp.common.core.domain.entity.SysUser;
|
||||
import com.xdadan.erp.common.core.page.TableDataInfo;
|
||||
import com.xdadan.erp.common.enums.BusinessType;
|
||||
import com.xdadan.erp.common.utils.DateUtils;
|
||||
import com.xdadan.erp.common.utils.idgen.UUID;
|
||||
import com.xdadan.erp.emis.domain.EmisTmsScanRecord;
|
||||
import com.xdadan.erp.emis.domain.EmisWaybill;
|
||||
import com.xdadan.erp.emis.domain.enumtype.ScanType;
|
||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||
import com.xdadan.erp.emis.domain.vo.FeeItem;
|
||||
import com.xdadan.erp.emis.domain.vo.WaybillOrder;
|
||||
import com.xdadan.erp.emis.service.EmisBaseService;
|
||||
import com.xdadan.erp.emis.service.IEmisElectronicSitePagService;
|
||||
import com.xdadan.erp.emis.service.IEmisTmsScanRecordService;
|
||||
import com.xdadan.erp.emis.service.IEmisWaybillService;
|
||||
import com.xdadan.erp.emis.service.print.IXddTplPrint;
|
||||
import com.xdadan.erp.emis.service.print.tanex.TanexTplPrintImpl;
|
||||
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||
import com.xdadan.erp.system.domain.SysFileInfo;
|
||||
import com.xdadan.erp.system.service.ISysFileInfoService;
|
||||
import com.xdadan.erp.system.service.ISysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DuplicateKeyException;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.Valid;
|
||||
import java.io.*;
|
||||
import java.nio.charset.Charset;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 运单列表Controller
|
||||
*
|
||||
* @author linfso
|
||||
* @date 2024-02-29 08:15:14
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/apiweb/emisWaybill")
|
||||
public class WaybillController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IEmisWaybillService emisWaybillService;
|
||||
|
||||
@Autowired
|
||||
private EmisBaseService emisBaseService;
|
||||
|
||||
@Autowired
|
||||
private ISysFileInfoService sysFileInfoService;
|
||||
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Autowired
|
||||
private IEmisElectronicSitePagService emisElectronicSitePagService;
|
||||
|
||||
@Autowired
|
||||
private IEmisTmsScanRecordService emisTmsScanRecordService;
|
||||
|
||||
/**
|
||||
* 获取电子运单信息
|
||||
*/
|
||||
@GetMapping(value = "/getWaybillDetail")
|
||||
public AjaxResult getWaybillDetail(String billCode ,String orderSn)
|
||||
{
|
||||
try {
|
||||
WaybillOrder waybillOrder=null;
|
||||
|
||||
if(StringUtils.isEmpty(billCode) ){
|
||||
return AjaxResult.error("参数错误");
|
||||
}
|
||||
|
||||
billCode= WaybillHelper.formatQueryValue(billCode);
|
||||
if(!StringUtils.isEmpty(billCode) ){
|
||||
boolean isExists=emisBaseService.checkWaybillIsExists(billCode);
|
||||
if(!isExists){
|
||||
return AjaxResult.error("运单不存在");
|
||||
}
|
||||
String mainBillCode=emisBaseService.getMainBillCode(billCode);
|
||||
waybillOrder = emisWaybillService.getWaybillOrderByBillCode(mainBillCode);
|
||||
if(waybillOrder==null){
|
||||
return AjaxResult.error("运单不存在");
|
||||
}
|
||||
|
||||
// 返回子单信息
|
||||
waybillOrder.setBillCode(billCode);
|
||||
|
||||
}else if(!StringUtils.isEmpty(orderSn)){
|
||||
waybillOrder = emisWaybillService.getWaybillOrderByOrderSn(orderSn);
|
||||
if(waybillOrder==null){
|
||||
return AjaxResult.error("订单不存在");
|
||||
}
|
||||
}
|
||||
|
||||
// 获取取件员电话
|
||||
if(!StringUtils.isEmpty(waybillOrder.getTakePieceEmployeeCode())){
|
||||
SysUser user= sysUserService.selectUserByUserName(waybillOrder.getTakePieceEmployeeCode());
|
||||
waybillOrder.setTakePieceEmployeePhone(user.getPhonenumber());
|
||||
}
|
||||
|
||||
return AjaxResult.success("获取成功",waybillOrder);
|
||||
}
|
||||
catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
// 返回子定义异常
|
||||
if(ex instanceof EmisBizError){
|
||||
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
|
||||
}
|
||||
|
||||
return AjaxResult.error("服务器异常,联系客服");
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "Excel草稿方式下单", businessType = BusinessType.INSERT)
|
||||
@PostMapping(value = "/draftSubmitOrder")
|
||||
public AjaxResult draftSubmitOrder(@RequestBody EmisWaybill emisWaybillSave)
|
||||
{
|
||||
|
||||
JSONObject jObjOut = new JSONObject();
|
||||
String result="success";
|
||||
String msg="下单成功";
|
||||
try {
|
||||
|
||||
emisWaybillService.draftSubmitOrder(emisWaybillSave);
|
||||
jObjOut.put("billDetail", emisWaybillSave);
|
||||
|
||||
}catch(EmisBizError ex){
|
||||
ex.printStackTrace();
|
||||
|
||||
result="fail";
|
||||
msg=ex.getErrorCode()+":"+ex.getMessage();
|
||||
|
||||
}
|
||||
catch (DuplicateKeyException e) {
|
||||
e.printStackTrace();
|
||||
result="fail";
|
||||
msg="运单号重复";
|
||||
|
||||
}
|
||||
catch (Exception ex){
|
||||
result="fail";
|
||||
ex.printStackTrace();
|
||||
msg="系统异常:"+ex.getMessage();
|
||||
// 返回子定义异常
|
||||
if(ex instanceof EmisBizError){
|
||||
msg=((EmisBizError)ex).getErrorCode()+":"+ex.getMessage();
|
||||
}
|
||||
|
||||
}
|
||||
jObjOut.put("result", result);
|
||||
jObjOut.put("msg", msg);
|
||||
return AjaxResult.success("成功", jObjOut);
|
||||
|
||||
}
|
||||
|
||||
@Log(title = "取消订单", businessType = BusinessType.INSERT)
|
||||
@PostMapping(value = "/cancelOrder")
|
||||
public AjaxResult cancelOrder(@Valid @RequestBody WaybillOrder waybillOrder)
|
||||
{
|
||||
try {
|
||||
|
||||
if(StringUtils.isEmpty(waybillOrder.getOrderSn()) ){
|
||||
return AjaxResult.error("订单号不能为空");
|
||||
}
|
||||
|
||||
EmisWaybill emisWaybill = new EmisWaybill();
|
||||
emisWaybill.setOrderSn(waybillOrder.getOrderSn());
|
||||
emisWaybill.setOrderRemark(waybillOrder.getOrderRemark());
|
||||
emisWaybillService.cancelOrder(emisWaybill);
|
||||
|
||||
return AjaxResult.success("取消成功");
|
||||
}catch(EmisBizError ex){
|
||||
ex.printStackTrace();
|
||||
return AjaxResult.error("("+ex.getErrorCode()+")"+ex.getMessage());
|
||||
}
|
||||
catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
// 返回子定义异常
|
||||
if(ex instanceof EmisBizError){
|
||||
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
|
||||
}
|
||||
|
||||
return AjaxResult.error("服务器异常,联系客服");
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "运单实时下单", businessType = BusinessType.INSERT)
|
||||
@PostMapping(value = "/realSubmitOrder")
|
||||
public AjaxResult realSubmitOrder(@Valid @RequestBody WaybillOrder waybillOrder, Integer isModify)
|
||||
{
|
||||
try {
|
||||
|
||||
if(StringUtils.isEmpty(waybillOrder.getBillCode()) ){
|
||||
waybillOrder.setBillCode(emisElectronicSitePagService.realMatchWaybill(waybillOrder.getSendSiteCode(),"T7080"));
|
||||
}
|
||||
|
||||
EmisWaybill emisWaybillSave = waybillOrder.toDb();
|
||||
|
||||
emisWaybillService.realSubmitOrder(emisWaybillSave);
|
||||
|
||||
JSONObject jObjOut = new JSONObject();
|
||||
jObjOut.put("billCode", waybillOrder.getBillCode());
|
||||
// jObjOut.put("prodName", waybillOrder.getProductType());
|
||||
|
||||
return AjaxResult.success("下单成功", jObjOut);
|
||||
}catch(EmisBizError ex){
|
||||
ex.printStackTrace();
|
||||
return AjaxResult.error("("+ex.getErrorCode()+")"+ex.getMessage());
|
||||
}
|
||||
catch (DuplicateKeyException e) {
|
||||
e.printStackTrace();
|
||||
return AjaxResult.error("运单号重复!");
|
||||
}
|
||||
catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
// 返回子定义异常
|
||||
if(ex instanceof EmisBizError){
|
||||
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
|
||||
}
|
||||
|
||||
return AjaxResult.error("服务器异常,联系客服");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Log(title = "运费试算", businessType = BusinessType.OTHER)
|
||||
@PostMapping(value = "/preCalcWaybillFee")
|
||||
public AjaxResult preCalcWaybillFee(@RequestBody WaybillOrder waybillOrder)
|
||||
{
|
||||
try {
|
||||
EmisWaybill emisWaybillSave = waybillOrder.toDb();
|
||||
List<Map> estList=emisWaybillService.preCalcWaybillFee(emisWaybillSave);
|
||||
return AjaxResult.success("试算成功", estList);
|
||||
}
|
||||
catch(EmisBizError ex){
|
||||
ex.printStackTrace();
|
||||
return AjaxResult.error("("+ex.getErrorCode()+")"+ex.getMessage());
|
||||
}
|
||||
catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
// 返回子定义异常
|
||||
if(ex instanceof EmisBizError){
|
||||
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
|
||||
}
|
||||
|
||||
return AjaxResult.error("服务器异常,联系客服");
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "计算运费", businessType = BusinessType.OTHER)
|
||||
@PostMapping(value = "/calcWaybillFee")
|
||||
public AjaxResult calcWaybillFee(@RequestBody WaybillOrder waybillOrder)
|
||||
{
|
||||
try {
|
||||
EmisWaybill emisWaybillSave = waybillOrder.toDb();
|
||||
|
||||
emisWaybillService.calcWaybillFee(emisWaybillSave);
|
||||
|
||||
JSONObject jObjFee = new JSONObject();
|
||||
jObjFee.put("totalFee", emisWaybillSave.getFreight());
|
||||
|
||||
FeeItem feeItem = new FeeItem();
|
||||
jObjFee.put("feeList",feeItem.cvtToVoList(emisWaybillSave.getFeeitemList()));
|
||||
|
||||
return AjaxResult.success("计算成功", jObjFee);
|
||||
}
|
||||
catch(EmisBizError ex){
|
||||
ex.printStackTrace();
|
||||
return AjaxResult.error("("+ex.getErrorCode()+")"+ex.getMessage());
|
||||
}
|
||||
catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
// 返回子定义异常
|
||||
if(ex instanceof EmisBizError){
|
||||
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
|
||||
}
|
||||
|
||||
return AjaxResult.error("服务器异常,联系客服");
|
||||
}
|
||||
}
|
||||
|
||||
@Log(title = "计算结算重量", businessType = BusinessType.OTHER)
|
||||
@PostMapping(value = "/calcSetteldWeight")
|
||||
public AjaxResult calcSetteldWeight(@RequestBody WaybillOrder waybillOrder)
|
||||
{
|
||||
try {
|
||||
EmisWaybill emisWaybillSave = waybillOrder.toDb();
|
||||
|
||||
emisWaybillService.calcSettledWeight(emisWaybillSave);
|
||||
|
||||
JSONObject jObjRst = new JSONObject();
|
||||
jObjRst.put("settlementWeight", emisWaybillSave.getSettlementWeight());
|
||||
jObjRst.put("volumeWeight", emisWaybillSave.getVolumeWeight());
|
||||
return AjaxResult.success("计算成功", jObjRst);
|
||||
}
|
||||
catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
// 返回子定义异常
|
||||
if(ex instanceof EmisBizError){
|
||||
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
|
||||
}
|
||||
|
||||
return AjaxResult.error("服务器异常,联系客服");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Log(title = "计算体积重量", businessType = BusinessType.OTHER)
|
||||
@PostMapping(value = "/calcVolumeWeight")
|
||||
public AjaxResult calcVolumeWeight(@RequestBody WaybillOrder waybillOrder)
|
||||
{
|
||||
try {
|
||||
EmisWaybill emisWaybillSave = waybillOrder.toDb();
|
||||
|
||||
emisWaybillService.calcVolumeWeight(emisWaybillSave);
|
||||
|
||||
JSONObject jObjRst = new JSONObject();
|
||||
jObjRst.put("volumeWeight", emisWaybillSave.getVolumeWeight());
|
||||
return AjaxResult.success("计算成功", jObjRst);
|
||||
}
|
||||
catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
// 返回子定义异常
|
||||
if(ex instanceof EmisBizError){
|
||||
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
|
||||
}
|
||||
|
||||
return AjaxResult.error("服务器异常,联系客服");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user