emis-api-service/emis-api-web/src/main/java/com/xdadan/erp/apiweb/WarehouseInController.java
2025-01-09 10:25:33 +08:00

214 lines
7.1 KiB
Java

/**
* @Project: emis
* @Title: EmisWarehouseInController.java
* @author linfso
* @date 2024-05-22 00:20:31
* @Copyright: ShangHai Duta 2022 All rights reserved.
* @version v1.0
* @Description: <p> 进仓单 控制器 </p>
*/
package com.xdadan.erp.apiweb;
import com.xdadan.erp.common.annotation.Log;
import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter;
import com.xdadan.erp.common.core.controller.BaseController;
import com.xdadan.erp.common.core.domain.AjaxResult;
import com.xdadan.erp.common.core.page.TableDataInfo;
import com.xdadan.erp.common.enums.BusinessType;
import com.xdadan.erp.common.utils.poi.ExcelUtil;
import com.xdadan.erp.emis.domain.EmisWarehouseIn;
import com.xdadan.erp.emis.domain.EmisWarehouseInBatch;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
import com.xdadan.erp.emis.domain.vo.WaybillOrder;
import com.xdadan.erp.emis.service.IEmisWarehouseInBatchService;
import com.xdadan.erp.emis.service.IEmisWarehouseInService;
import com.xdadan.erp.emis.service.IEmisWaybillService;
import com.xdadan.erp.emis.utils.WaybillHelper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
* 进仓单Controller
*
* @author linfso
* @date 2024-05-22 00:20:31
*/
@RestController
@RequestMapping("/apiweb/emisWarehouseIn")
public class WarehouseInController extends BaseController
{
@Autowired
private IEmisWarehouseInService emisWarehouseInService;
@Autowired
private IEmisWarehouseInBatchService emisWarehouseInBatchService;
@Autowired
private IEmisWaybillService emisWaybillService;
/**
* 查询进仓单列表
*/
@GetMapping("/list")
public TableDataInfo list(EmisWarehouseIn emisWarehouseIn)
{
startPage();
if(!StringUtils.isEmpty(emisWarehouseIn.getBillCode())){
emisWarehouseIn.setBillCode( WaybillHelper.formatQueryValue(emisWarehouseIn.getBillCode()));
String[] billCodeSortList = emisWarehouseIn.getBillCode().split(",");
if(billCodeSortList.length>1){
emisWarehouseIn.getParams().put("billCodeSortList", Arrays.asList(billCodeSortList));
}
}
if(!StringUtils.isEmpty(emisWarehouseIn.getInNo())){
emisWarehouseIn.setInNo(WaybillHelper.formatQueryValue(emisWarehouseIn.getInNo()));
String[] inNoSortList = emisWarehouseIn.getInNo().split(",");
if(inNoSortList.length>1){
emisWarehouseIn.getParams().put("inNoSortList",Arrays.asList(inNoSortList));
}
}
List<EmisWarehouseIn> list = emisWarehouseInService.selectEmisWarehouseInList(emisWarehouseIn);
return getDataTable(list);
}
@Log(title = "进仓单查询", businessType = BusinessType.OTHER)
@JacksonFilter(include= {
"inNo",
"orderSn",
"billCode",
"createTime",
"entryDate",
"confirmStatus",
"confirmDate",
"usedStatus",
"stockInFlag",
"status",
"intoWarehouseCode",
"intoWarehouseName",
"intoWarehouseAddress",
"intoWarehouseContact",
"intoWarehousePhone",
"goodsInfo",
"receiveCountryName",
"receiveProvinceName",
"sendCountryName",
"sendProvinceName",
"transLineTypeName",
"productTypeName",
"sendSiteName",
"dispatchUnderlingSiteName",
"waybillDetail"
},value= EmisWarehouseIn.class,type= JacksonFilter.JscksonFilterType.RESPONSE)
@GetMapping("/listSimpleByOms")
public TableDataInfo listSimpleByOms(EmisWarehouseIn emisWarehouseIn,String queryStatusType)
{
startPage();
emisWarehouseIn.getParams().put("queryStatusType",queryStatusType);
List<EmisWarehouseIn> list = emisWarehouseInService.selectEmisWarehouseInListByOms(emisWarehouseIn);
return getDataTable(list);
}
/**
* 获取进仓单详细信息
*/
@GetMapping(value = "/getWarehouseInByInNo")
public AjaxResult getWarehouseInByInNo(EmisWarehouseIn emisWarehouseIn)
{
try{
return AjaxResult.success(emisWarehouseInService.selectEmisWarehouseInByInNo(emisWarehouseIn.getInNo()));
}
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("服务器异常,联系客服");
}
}
/**
* 导出进仓单模板
* @param response
* @return
*/
@Log(title = "导出进仓单", businessType = BusinessType.EXPORT)
@PostMapping("/exportWarehouseInTpl")
public AjaxResult exportWarehouseInTpl(HttpServletResponse response,String orderSn,String fileType) {
try{
emisWaybillService.genWarehouseInTplFile(response,orderSn,fileType);
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.UPDATE)
@RequestMapping("/cusConfirmWsIn")
public AjaxResult cusConfirmWsIn(@RequestBody EmisWarehouseInBatch emisWarehouseInBatch)
{
try {
// 部分确认
if(!StringUtils.isEmpty(emisWarehouseInBatch.getSerialNo())) {
return toAjax(emisWarehouseInBatchService.cusConfirmBatchWsInByOms(emisWarehouseInBatch));
}
// 全部确认
else{
return toAjax(emisWarehouseInBatchService.cusConfirmAllWsInByOms(emisWarehouseInBatch));
}
} catch (Exception ex) {
ex.printStackTrace();
return AjaxResult.error(ex.getMessage());
}
}
@Log(title = "异常上报", businessType = BusinessType.UPDATE)
@RequestMapping("/reportBatchWsInError")
public AjaxResult reportBatchWsInError(@RequestBody EmisWarehouseInBatch emisWarehouseInBatch)
{
try {
return toAjax(emisWarehouseInBatchService.updateAbnormalByOms(emisWarehouseInBatch));
} catch (Exception ex) {
ex.printStackTrace();
return AjaxResult.error(ex.getMessage());
}
}
}