You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
170 lines
6.3 KiB
Java
170 lines
6.3 KiB
Java
package com.glxp.api.controller.inout;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.glxp.api.annotation.AuthRuleAnnotation;
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
import com.glxp.api.controller.BaseController;
|
|
import com.glxp.api.dao.inout.IoOrderDao;
|
|
import com.glxp.api.entity.alihealth.YcFileCodeUploadVo;
|
|
import com.glxp.api.entity.inout.IoCodeEntity;
|
|
import com.glxp.api.entity.inout.IoOrderEntity;
|
|
import com.glxp.api.exception.JsonException;
|
|
import com.glxp.api.req.inout.FilterCodeRequest;
|
|
import com.glxp.api.req.inout.FilterOrderDetailBizRequest;
|
|
import com.glxp.api.req.inout.YcFileCodeUploadRequest;
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
import com.glxp.api.res.inout.IoCodeResponse;
|
|
import com.glxp.api.res.inout.IoOrderDetailBizResponse;
|
|
import com.glxp.api.service.inout.IoOrderDetailBizService;
|
|
import com.glxp.api.service.inout.IoOrderService;
|
|
import com.glxp.api.service.inout.impl.IoCodeService;
|
|
import com.glxp.api.util.Excel.ExcelHandler;
|
|
import com.glxp.api.util.Excel.ExcelTemplateEnum;
|
|
import com.glxp.api.util.Excel.Exception.RenException;
|
|
import io.swagger.annotations.ApiOperation;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* 单据正式码表接口
|
|
*/
|
|
@RestController
|
|
public class IoCodeController extends BaseController {
|
|
|
|
@Resource
|
|
private IoCodeService ioCodeService;
|
|
@Resource
|
|
private IoOrderService ioOrderService;
|
|
@Resource
|
|
private IoOrderDetailBizService ioOrderDetailBizService;
|
|
|
|
/**
|
|
* 查询单据正式码表数据
|
|
*
|
|
* @param filterCodeRequest
|
|
* @return
|
|
*/
|
|
@GetMapping("/udiwms/inout/code/filterList")
|
|
public BaseResponse filterList(FilterCodeRequest filterCodeRequest) {
|
|
List<IoCodeResponse> list = ioCodeService.filterList(filterCodeRequest);
|
|
PageInfo<IoCodeResponse> pageInfo = new PageInfo<>(list);
|
|
return ResultVOUtils.page(pageInfo);
|
|
}
|
|
|
|
@GetMapping("/udiwms/inout/code/drug/filterList")
|
|
public BaseResponse filterDrugList(FilterCodeRequest filterCodeRequest) {
|
|
List<IoCodeResponse> list = ioCodeService.filterDrugList(filterCodeRequest);
|
|
PageInfo<IoCodeResponse> pageInfo = new PageInfo<>(list);
|
|
return ResultVOUtils.page(pageInfo);
|
|
}
|
|
|
|
|
|
/**
|
|
* 根据单据号查询正式码表数据
|
|
*
|
|
* @return
|
|
*/
|
|
@GetMapping("/udiwms/inout/code/findByOrderId")
|
|
public BaseResponse findAllByOrderId(FilterCodeRequest filterCodeRequest) {
|
|
List<IoCodeResponse> list = ioCodeService.filterList(filterCodeRequest);
|
|
PageInfo<IoCodeResponse> pageInfo = new PageInfo<>(list);
|
|
return ResultVOUtils.success(pageInfo);
|
|
}
|
|
|
|
|
|
/**
|
|
* 单据复核,获取单据对应条码
|
|
*/
|
|
@AuthRuleAnnotation("")
|
|
@GetMapping("spms/inout/dlcode/findByOrderId")
|
|
public BaseResponse downloadCodesByOrderId(String orderId) {
|
|
|
|
|
|
List<IoCodeEntity> codeEntityList = ioCodeService.findByOrderId(orderId);
|
|
PageInfo<IoCodeEntity> pageInfo;
|
|
pageInfo = new PageInfo<>(codeEntityList);
|
|
PageSimpleResponse<IoCodeEntity> pageSimpleResponse = new PageSimpleResponse<>();
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
pageSimpleResponse.setList(codeEntityList);
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
}
|
|
|
|
/**
|
|
* 单据编辑,+
|
|
*
|
|
* @param filterCodeRequest
|
|
* @return
|
|
*/
|
|
@GetMapping("/udiwms/inout/code/getCodeListForEdit")
|
|
public BaseResponse getCodeListForEdit(FilterCodeRequest filterCodeRequest) {
|
|
List<IoCodeResponse> list = ioCodeService.getCodeListForEdit(filterCodeRequest);
|
|
PageInfo<IoCodeResponse> pageInfo = new PageInfo<>(list);
|
|
return ResultVOUtils.page(pageInfo);
|
|
}
|
|
|
|
@Resource
|
|
ExcelHandler excelHandler;
|
|
|
|
@GetMapping("/udiwms/inout/code/filterList/excelExport")
|
|
public void excelExport(YcFileCodeUploadRequest ycFileCodeUploadRequest, HttpServletResponse response) {
|
|
String billNo = ycFileCodeUploadRequest.getBillNo();
|
|
if (StrUtil.isEmpty(billNo)) {
|
|
throw new JsonException("单据编号不能为空!");
|
|
}
|
|
|
|
//获取订单的详情
|
|
IoOrderEntity ioOrderEntity = ioOrderService.findByBillNo(billNo);
|
|
if (ioOrderEntity == null) {
|
|
throw new JsonException("单据未找到!");
|
|
}
|
|
|
|
//获取biz表
|
|
FilterOrderDetailBizRequest orderDetailBizRequest = new FilterOrderDetailBizRequest();
|
|
orderDetailBizRequest.setOrderIdFk(billNo);
|
|
List<IoOrderDetailBizResponse> ioOrderDetailBizResponses = ioOrderDetailBizService.filterList(orderDetailBizRequest);
|
|
if (CollUtil.isEmpty(ioOrderDetailBizResponses)) {
|
|
throw new JsonException("单据业务明细未找到!");
|
|
}
|
|
|
|
FilterCodeRequest filterCodeRequest = new FilterCodeRequest();
|
|
List<YcFileCodeUploadVo> exportExcelList = new ArrayList<>();
|
|
String ycBillNo = ioOrderEntity.getYcBillNo();
|
|
filterCodeRequest.setYcBillNo(ycBillNo);
|
|
|
|
//遍历biz获取codeList
|
|
for (int i = 0; i < ioOrderDetailBizResponses.size(); i++) {
|
|
IoOrderDetailBizResponse ioOrderDetailBizResponse = ioOrderDetailBizResponses.get(i);
|
|
|
|
filterCodeRequest.setYcBizNo(ioOrderDetailBizResponse.getYcBizNo());
|
|
filterCodeRequest.setRelId(String.valueOf(ioOrderDetailBizResponse.getBindRlFk()));
|
|
filterCodeRequest.setBatchNo(ioOrderDetailBizResponse.getBatchNo());
|
|
|
|
List<YcFileCodeUploadVo> list = ioCodeService.filterListexcelExport(filterCodeRequest);
|
|
|
|
if (CollUtil.isNotEmpty(list)) {
|
|
exportExcelList.addAll(list);
|
|
}
|
|
}
|
|
|
|
try {
|
|
excelHandler.exportExcel(response, exportExcelList, YcFileCodeUploadVo.class, "UDI_"+billNo+"追溯码导出", "追溯码");
|
|
} catch (Exception e) {
|
|
throw new RenException("导出失败");
|
|
}
|
|
|
|
}
|
|
|
|
}
|