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.
309 lines
16 KiB
Java
309 lines
16 KiB
Java
package com.glxp.api.controller.inout;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import com.alibaba.fastjson.JSON;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.github.pagehelper.PageInfo;
|
|
import com.glxp.api.annotation.AuthRuleAnnotation;
|
|
import com.glxp.api.common.enums.ResultEnum;
|
|
import com.glxp.api.common.res.BaseResponse;
|
|
import com.glxp.api.common.util.ResultVOUtils;
|
|
import com.glxp.api.constant.ConstantType;
|
|
import com.glxp.api.controller.BaseController;
|
|
import com.glxp.api.entity.auth.AuthCompany;
|
|
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
|
|
import com.glxp.api.entity.inout.IoOrderDetailBizEntity;
|
|
import com.glxp.api.entity.inout.IoOrderDetailCodeEntity;
|
|
import com.glxp.api.entity.inout.IoOrderEntity;
|
|
import com.glxp.api.entity.system.SysPdfTemplateRelevanceStatemenEntity;
|
|
import com.glxp.api.entity.system.SystemPDFTemplateEntity;
|
|
import com.glxp.api.req.inout.*;
|
|
import com.glxp.api.res.inout.CptTraceOrderResponse;
|
|
import com.glxp.api.res.inout.CptTraceResultResponse;
|
|
import com.glxp.api.res.inout.IoCodeResponse;
|
|
import com.glxp.api.res.inout.IoOrderDetailResultResponse;
|
|
import com.glxp.api.service.auth.AuthCompanyService;
|
|
import com.glxp.api.service.basic.IBasicBussinessTypeService;
|
|
import com.glxp.api.service.inout.*;
|
|
import com.glxp.api.service.system.SystemPDFModuleService;
|
|
import com.glxp.api.service.system.SystemPDFTemplateService;
|
|
import com.glxp.api.util.DateUtil;
|
|
import com.glxp.api.util.JasperUtils;
|
|
import net.sf.jasperreports.engine.JRException;
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
import org.springframework.validation.BindingResult;
|
|
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.HttpServletRequest;
|
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.io.IOException;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
|
|
/**
|
|
* 单据扫码明细查询接口
|
|
*/
|
|
@RestController
|
|
public class IoOrderDetailResultController extends BaseController {
|
|
@Resource
|
|
IoOrderService orderService;
|
|
@Resource
|
|
private IoOrderDetailResultService orderDetailResultService;
|
|
@Resource
|
|
IBasicBussinessTypeService basicBussinessTypeService;
|
|
@Resource
|
|
IoCodeService codeService;
|
|
@Resource
|
|
private SystemPDFTemplateService systemPDFTemplateService;
|
|
@Resource
|
|
private SystemPDFModuleService systemPDFModuleService;
|
|
@Value("${file_path}")
|
|
private String filePath;
|
|
@Resource
|
|
AuthCompanyService authCompanyService;
|
|
|
|
/**
|
|
* 查询单据扫码明细列表
|
|
*
|
|
* @param orderDetailResultRequest
|
|
* @return
|
|
*/
|
|
@AuthRuleAnnotation("")
|
|
@GetMapping("/udiwms/inout/resultDetail/filterList")
|
|
public BaseResponse filterList(FilterOrderDetailResultRequest orderDetailResultRequest) {
|
|
List<IoOrderDetailResultResponse> list = orderDetailResultService.filterList(orderDetailResultRequest);
|
|
PageInfo<IoOrderDetailResultResponse> pageInfo = new PageInfo<>(list);
|
|
return ResultVOUtils.page(pageInfo);
|
|
}
|
|
|
|
/**
|
|
* 查询单据扫码明细列表
|
|
*
|
|
* @param orderDetailResultRequest
|
|
* @return
|
|
*/
|
|
@AuthRuleAnnotation("")
|
|
@GetMapping("/udiwms/inout/resultDetail/filterOrderList")
|
|
public BaseResponse filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest) {
|
|
|
|
if (isHosUser()) {
|
|
// orderDetailResultRequest.setFromCorpName();
|
|
} else {
|
|
orderDetailResultRequest.setFromCorp(getCustomerId());
|
|
}
|
|
FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
|
|
filterOrderRequest.setVueType(orderDetailResultRequest.getActionType());
|
|
List<String> actions = orderService.setActions(filterOrderRequest);
|
|
if (CollUtil.isEmpty(actions)) {
|
|
return ResultVOUtils.success("");
|
|
}
|
|
orderDetailResultRequest.setActions(actions);
|
|
List<IoOrderDetailResultResponse> list = orderDetailResultService.filterOrderList(orderDetailResultRequest);
|
|
|
|
for (IoOrderDetailResultResponse orderDetailResultResponse : list) {
|
|
if (orderDetailResultResponse.getMainAction().equals(ConstantType.TYPE_OUT)) {
|
|
orderDetailResultResponse.setOutCount(orderDetailResultResponse.getReCount());
|
|
orderDetailResultResponse.setInCount(0);
|
|
} else {
|
|
orderDetailResultResponse.setOutCount(0);
|
|
orderDetailResultResponse.setInCount(orderDetailResultResponse.getReCount());
|
|
}
|
|
}
|
|
PageInfo<IoOrderDetailResultResponse> pageInfo = new PageInfo<>(list);
|
|
return ResultVOUtils.page(pageInfo);
|
|
}
|
|
|
|
/**
|
|
* pda下载业务单据详情复核
|
|
*/
|
|
@AuthRuleAnnotation("")
|
|
@GetMapping(value = "/warehouse/inout/order/detail")
|
|
public BaseResponse orderDetail(FilterOrderDetailResultRequest filterErpOrderRequest,
|
|
BindingResult bindingResult) {
|
|
if (bindingResult.hasErrors()) {
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
}
|
|
if (StrUtil.isEmpty(filterErpOrderRequest.getOrderIdFk())) {
|
|
return ResultVOUtils.error(500, "单据号不能为空!");
|
|
}
|
|
IoOrderEntity orderEntity = orderService.findByBillNo(filterErpOrderRequest.getOrderIdFk());
|
|
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction());
|
|
filterErpOrderRequest.setPage(null);
|
|
filterErpOrderRequest.setLimit(null);
|
|
List<IoOrderDetailResultResponse> list = orderDetailResultService.filterList(filterErpOrderRequest);
|
|
return ResultVOUtils.success(list);
|
|
}
|
|
|
|
|
|
@Resource
|
|
IoOrderDetailBizService orderDetailBizService;
|
|
@Resource
|
|
IoOrderDetailCodeService orderDetailCodeService;
|
|
@Resource
|
|
IoCheckInoutService checkInoutService;
|
|
|
|
@AuthRuleAnnotation("")
|
|
@GetMapping("/udiwms/inout/wditCheck/filterList")
|
|
public BaseResponse waitCheckList(FilterOrderDetailResultRequest orderDetailResultRequest) {
|
|
|
|
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(orderDetailResultRequest.getOrderIdFk());
|
|
List<IoOrderDetailCodeEntity> orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderDetailResultRequest.getOrderIdFk());
|
|
|
|
return ResultVOUtils.success(checkInoutService.combineCheck(orderDetailBizEntities, orderDetailCodeEntities));
|
|
}
|
|
|
|
@AuthRuleAnnotation("")
|
|
@GetMapping("/udiwms/inout/waitAllocate/filterList")
|
|
public BaseResponse waitAllocate(FilterOrderDetailResultRequest orderDetailResultRequest) {
|
|
IoOrderEntity orderEntity = orderService.findByBillNo(orderDetailResultRequest.getOrderIdFk());
|
|
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(orderDetailResultRequest.getOrderIdFk());
|
|
checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity);
|
|
return ResultVOUtils.success(orderDetailBizEntities);
|
|
}
|
|
|
|
|
|
//校验模板是否正确
|
|
@AuthRuleAnnotation("")
|
|
@PostMapping("/udiwms/pdf/template/order/result/file")
|
|
public BaseResponse inspectionStockOrderPDFFromTemplateFile(@RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) {
|
|
|
|
//查询模板文件是否存在
|
|
SysPdfTemplateRelevanceStatemenEntity sysPdfTemplateRelevanceStatemenEntity = systemPDFModuleService.selectByStatemenId(inspectionPDFTemplateRequest.getId());
|
|
if (null == sysPdfTemplateRelevanceStatemenEntity) {
|
|
return ResultVOUtils.error(ResultEnum.DATA_NOT, "所属模块错误");
|
|
}
|
|
|
|
SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(String.valueOf(sysPdfTemplateRelevanceStatemenEntity.getTemplateId()));
|
|
if (null == systemPDFTemplateEntity) {
|
|
return ResultVOUtils.error(ResultEnum.DATA_NOT, "模板错误");
|
|
}
|
|
return ResultVOUtils.success(sysPdfTemplateRelevanceStatemenEntity.getTemplateId());
|
|
}
|
|
|
|
/**
|
|
* 出入库明细打印
|
|
*
|
|
* @param filterOrderDetailResultRequest
|
|
* @return
|
|
*/
|
|
@AuthRuleAnnotation("")
|
|
@PostMapping("/udiwms/inout/resultDetail/filterOrderPrint")
|
|
public BaseResponse filterOrderPrint(@RequestBody FilterOrderDetailResultRequest filterOrderDetailResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException {
|
|
List<IoOrderDetailResultResponse> ioOrderDetailResultResponseList = new ArrayList<>();
|
|
SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(filterOrderDetailResultRequest.getTemplateId());
|
|
//打印单号标签
|
|
Map<String, Object> data = new HashMap<>(1);
|
|
List<Object> list = new ArrayList<>();
|
|
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//定义新的日期格式
|
|
|
|
//按选入打印
|
|
if (filterOrderDetailResultRequest.getList() != null && filterOrderDetailResultRequest.getList().size() > 0) {
|
|
ioOrderDetailResultResponseList = filterOrderDetailResultRequest.getList();
|
|
} else {
|
|
//按查询打印
|
|
FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
|
|
filterOrderRequest.setVueType(filterOrderDetailResultRequest.getActionType());
|
|
List<String> actions = orderService.setActions(filterOrderRequest);
|
|
if (CollUtil.isEmpty(actions)) {
|
|
return ResultVOUtils.success("");
|
|
}
|
|
filterOrderDetailResultRequest.setActions(actions);
|
|
ioOrderDetailResultResponseList = orderDetailResultService.filterOrderList(filterOrderDetailResultRequest);
|
|
for (IoOrderDetailResultResponse orderDetailResultResponse : ioOrderDetailResultResponseList) {
|
|
if (orderDetailResultResponse.getMainAction().equals(ConstantType.TYPE_OUT)) {
|
|
orderDetailResultResponse.setOutCount(orderDetailResultResponse.getReCount());
|
|
orderDetailResultResponse.setInCount(0);
|
|
} else {
|
|
orderDetailResultResponse.setOutCount(0);
|
|
orderDetailResultResponse.setInCount(orderDetailResultResponse.getReCount());
|
|
}
|
|
}
|
|
}
|
|
int i = 1;
|
|
for (IoOrderDetailResultResponse ioOrderDetailResultResponse : ioOrderDetailResultResponseList) {
|
|
//组装数据
|
|
Map<String, Object> ioOrderDetailResultData = new HashMap<>();
|
|
ioOrderDetailResultData.put("index", String.valueOf(i));
|
|
ioOrderDetailResultData.put("nameCode", ioOrderDetailResultResponse.getNameCode() == null ? ' ' : ioOrderDetailResultResponse.getNameCode());
|
|
ioOrderDetailResultData.put("batchNo", ioOrderDetailResultResponse.getBatchNo() == null ? ' ' : ioOrderDetailResultResponse.getBatchNo());
|
|
ioOrderDetailResultData.put("productDate", ioOrderDetailResultResponse.getProductDate() == null ? ' ' : ioOrderDetailResultResponse.getProductDate());
|
|
ioOrderDetailResultData.put("expireDate", ioOrderDetailResultResponse.getExpireDate() == null ? ' ' : ioOrderDetailResultResponse.getExpireDate());
|
|
ioOrderDetailResultData.put("coName", ioOrderDetailResultResponse.getCoName() == null ? ' ' : ioOrderDetailResultResponse.getCoName());
|
|
ioOrderDetailResultData.put("certCode", ioOrderDetailResultResponse.getCertCode() == null ? ' ' : ioOrderDetailResultResponse.getCertCode());
|
|
ioOrderDetailResultData.put("ylqxzcrbarmc", ioOrderDetailResultResponse.getYlqxzcrbarmc() == null ? ' ' : ioOrderDetailResultResponse.getYlqxzcrbarmc());
|
|
ioOrderDetailResultData.put("manufacturer", ioOrderDetailResultResponse.getManufacturer() == null ? ' ' : ioOrderDetailResultResponse.getManufacturer());
|
|
ioOrderDetailResultData.put("measname", ioOrderDetailResultResponse.getMeasname() == null ? ' ' : ioOrderDetailResultResponse.getMeasname());
|
|
ioOrderDetailResultData.put("spec", ioOrderDetailResultResponse.getSpec() == null ? ' ' : ioOrderDetailResultResponse.getSpec());
|
|
ioOrderDetailResultData.put("price", ioOrderDetailResultResponse.getPrice() == null ? ' ' : ioOrderDetailResultResponse.getPrice());
|
|
ioOrderDetailResultData.put("count", ioOrderDetailResultResponse.getCount());
|
|
ioOrderDetailResultData.put("reCount", ioOrderDetailResultResponse.getReCount());
|
|
ioOrderDetailResultData.put("inCount", ioOrderDetailResultResponse.getInCount());
|
|
ioOrderDetailResultData.put("acceptCount", ioOrderDetailResultResponse.getAcceptCount());
|
|
ioOrderDetailResultData.put("fromCorpName", ioOrderDetailResultResponse.getFromCorpName() == null ? ' ' : ioOrderDetailResultResponse.getFromCorpName());
|
|
ioOrderDetailResultData.put("billTypeName", ioOrderDetailResultResponse.getBillTypeName() == null ? ' ' : ioOrderDetailResultResponse.getBillTypeName());
|
|
ioOrderDetailResultData.put("mainAction", ioOrderDetailResultResponse.getMainAction() == null ? ' ' : ioOrderDetailResultResponse.getMainAction());
|
|
ioOrderDetailResultData.put("auditTime", ioOrderDetailResultResponse.getAuditTime() == null ? ' ' : formatter.format(ioOrderDetailResultResponse.getAuditTime()));
|
|
list.add(ioOrderDetailResultData);
|
|
i++;
|
|
}
|
|
|
|
|
|
data.put("data", list);
|
|
String param = JSON.toJSONString(data);
|
|
JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf");
|
|
return ResultVOUtils.success();
|
|
}
|
|
|
|
|
|
/**
|
|
* 提供UDI协调调用单据明细
|
|
*/
|
|
@PostMapping("/udiCpt/inout/trace/search")
|
|
public BaseResponse cptTraceOrder(@RequestBody CptTraceRequest cptTraceRequest) {
|
|
if (StrUtil.isEmpty(cptTraceRequest.getBatchNo()) || CollUtil.isEmpty(cptTraceRequest.getDiList())) {
|
|
return ResultVOUtils.error(500, "参数有误!");
|
|
}
|
|
AuthCompany authCompany = authCompanyService.getOne(new QueryWrapper<>());
|
|
List<CptTraceOrderResponse> cptTraceOrderResponses = orderDetailResultService.cptTrace(cptTraceRequest);
|
|
List<CptTraceResultResponse> cptTraceResultResponses = new ArrayList<>();
|
|
if (CollUtil.isNotEmpty(cptTraceOrderResponses)) {
|
|
for (CptTraceOrderResponse cptTraceOrderResponse : cptTraceOrderResponses) {
|
|
if (cptTraceOrderResponse.getCorpType() == 1 || cptTraceOrderResponse.getCorpType() == 2) {
|
|
CptTraceResultResponse cptTraceResultResponse = new CptTraceResultResponse();
|
|
cptTraceResultResponse.setBillNo(cptTraceOrderResponse.getBillNo());
|
|
cptTraceResultResponse.setBillDate(DateUtil.formatDate(cptTraceOrderResponse.getCreateTime()));
|
|
cptTraceResultResponse.setBillType(cptTraceOrderResponse.getBillType());
|
|
if (cptTraceOrderResponse.getMainAction().equals(ConstantType.TYPE_OUT)) {
|
|
if (StrUtil.isNotEmpty(cptTraceOrderResponse.getFromInvCode()))
|
|
continue;
|
|
cptTraceResultResponse.setInOutType(2);
|
|
cptTraceResultResponse.setFromCorp(authCompany.getName());
|
|
cptTraceResultResponse.setFromCorpCreditNum(authCompany.getCreditCode());
|
|
|
|
} else {
|
|
cptTraceResultResponse.setInOutType(1);
|
|
cptTraceResultResponse.setFromCorp(cptTraceOrderResponse.getFromCorpName());
|
|
cptTraceResultResponse.setFromCorpCreditNum(cptTraceOrderResponse.getCreditNo());
|
|
cptTraceResultResponse.setToCorp(authCompany.getName());
|
|
cptTraceResultResponse.setToCorpCreditNum(authCompany.getCreditCode());
|
|
}
|
|
if (StrUtil.isEmpty(cptTraceOrderResponse.getFromCorpName()) && cptTraceOrderResponse.getMainAction().equals(ConstantType.TYPE_OUT)) {
|
|
cptTraceResultResponse.setBillType("使用出库");
|
|
cptTraceResultResponse.setToUserInfo("患者使用出库");
|
|
}
|
|
cptTraceResultResponses.add(cptTraceResultResponse);
|
|
}
|
|
}
|
|
}
|
|
|
|
return ResultVOUtils.success(cptTraceResultResponses);
|
|
|
|
}
|
|
|
|
}
|