|
|
|
package com.glxp.api.controller.collect;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.util.ArrayUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
|
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.controller.BaseController;
|
|
|
|
import com.glxp.api.entity.basic.BasicSkPrescribeEntity;
|
|
|
|
import com.glxp.api.entity.collect.IoCollectOrder;
|
|
|
|
import com.glxp.api.entity.collect.IoCollectOrderCodeAuto;
|
|
|
|
import com.glxp.api.entity.collect.IoCollectOrderCodeMan;
|
|
|
|
import com.glxp.api.req.basic.PrescribeBindWorkRequest;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderBindWorkRequest;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderBizRequest;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderRequest;
|
|
|
|
import com.glxp.api.req.collect.CollectOrderSaveRequest;
|
|
|
|
import com.glxp.api.req.system.DeleteRequest;
|
|
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
|
|
import com.glxp.api.res.collect.CollectOrderBizResponse;
|
|
|
|
import com.glxp.api.res.collect.IoCollectOrderResponse;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderBizService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderCodeAutoService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderCodeManService;
|
|
|
|
import com.glxp.api.service.collect.IoCollectOrderService;
|
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
|
import org.springframework.stereotype.Controller;
|
|
|
|
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 java.util.ArrayList;
|
|
|
|
import java.util.Arrays;
|
|
|
|
import java.util.Date;
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
@RestController
|
|
|
|
public class IoCollectOrderController extends BaseController {
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
IoCollectOrderService collectOrderService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
IoCollectOrderBizService collectOrderBizService;
|
|
|
|
|
|
|
|
@GetMapping("/udiwms/basic/collect/order/filter")
|
|
|
|
public BaseResponse filterOrder(CollectOrderRequest collectOrderRequest) {
|
|
|
|
List<IoCollectOrderResponse> orderResponses = collectOrderService.filterList(collectOrderRequest);
|
|
|
|
PageInfo<IoCollectOrderResponse> pageInfo = new PageInfo<>(orderResponses);
|
|
|
|
PageSimpleResponse<IoCollectOrderResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
|
pageSimpleResponse.setList(orderResponses);
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取下一单据
|
|
|
|
*
|
|
|
|
* @param collectOrderRequest
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@GetMapping("/udiwms/basic/collect/order/next")
|
|
|
|
public BaseResponse getNextOrder(CollectOrderRequest collectOrderRequest) {
|
|
|
|
if (collectOrderRequest.getWorkPlaceCode() == null) {
|
|
|
|
return ResultVOUtils.error(500, "工位不能为空!");
|
|
|
|
}
|
|
|
|
CollectOrderRequest request = new CollectOrderRequest();
|
|
|
|
request.setLimit(1);
|
|
|
|
request.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
|
|
|
|
request.setTagStatusList(List.of(1));
|
|
|
|
List<IoCollectOrderResponse> orderResponses = collectOrderService.filterList(request);
|
|
|
|
if (CollUtil.isNotEmpty(orderResponses))
|
|
|
|
return ResultVOUtils.success(orderResponses.get(0));
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "未查到待处理单据");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取当前正在处理的单据
|
|
|
|
*
|
|
|
|
* @param collectOrderRequest
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@GetMapping("/udiwms/basic/collect/order/current")
|
|
|
|
public BaseResponse getCurrentOrder(CollectOrderRequest collectOrderRequest) {
|
|
|
|
if (collectOrderRequest.getWorkPlaceCode() == null) {
|
|
|
|
return ResultVOUtils.error(500, "工位不能为空!");
|
|
|
|
}
|
|
|
|
CollectOrderRequest request = new CollectOrderRequest();
|
|
|
|
request.setPage(1);
|
|
|
|
request.setLimit(1);
|
|
|
|
request.setWorkPlaceCode(collectOrderRequest.getWorkPlaceCode());
|
|
|
|
request.setBusType(collectOrderRequest.getBusType());
|
|
|
|
request.setTagStatus(2);
|
|
|
|
List<IoCollectOrderResponse> orderResponses = collectOrderService.filterList(request);
|
|
|
|
if (CollUtil.isNotEmpty(orderResponses))
|
|
|
|
return ResultVOUtils.success(orderResponses.get(0));
|
|
|
|
else {
|
|
|
|
request.setTagStatus(-1);
|
|
|
|
orderResponses = collectOrderService.filterList(request);
|
|
|
|
if (CollUtil.isNotEmpty(orderResponses))
|
|
|
|
return ResultVOUtils.success(orderResponses.get(0));
|
|
|
|
}
|
|
|
|
|
|
|
|
return ResultVOUtils.error(500, "未查到待处理单据");
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@GetMapping("/udiwms/basic/collect/order/detail")
|
|
|
|
public BaseResponse detail(CollectOrderBizRequest collectOrderBizRequest) {
|
|
|
|
if (StrUtil.isBlank(collectOrderBizRequest.getOrderIdFk())) {
|
|
|
|
return ResultVOUtils.error(500, "单据号不能为空");
|
|
|
|
}
|
|
|
|
IoCollectOrder collectOrder = collectOrderService.getByBillNo(collectOrderBizRequest.getOrderIdFk());
|
|
|
|
if (collectOrder == null) {
|
|
|
|
return ResultVOUtils.error(500, "未找到单据");
|
|
|
|
}
|
|
|
|
List<CollectOrderBizResponse> list = collectOrderBizService.filterList(collectOrderBizRequest);
|
|
|
|
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(list);
|
|
|
|
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
|
pageSimpleResponse.setList(list);
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
IoCollectOrderCodeAutoService collectOrderCodeAutoService;
|
|
|
|
@Resource
|
|
|
|
IoCollectOrderCodeManService collectOrderCodeManService;
|
|
|
|
|
|
|
|
@GetMapping("/udiwms/basic/collect/order/allDetail")
|
|
|
|
public BaseResponse allDetail(CollectOrderBizRequest collectOrderBizRequest) {
|
|
|
|
if (StrUtil.isBlank(collectOrderBizRequest.getOrderIdFk())) {
|
|
|
|
return ResultVOUtils.error(500, "单据号不能为空");
|
|
|
|
}
|
|
|
|
IoCollectOrder collectOrder = collectOrderService.getByBillNo(collectOrderBizRequest.getOrderIdFk());
|
|
|
|
if (collectOrder == null) {
|
|
|
|
return ResultVOUtils.error(500, "未找到单据");
|
|
|
|
}
|
|
|
|
List<CollectOrderBizResponse> list = collectOrderBizService.filterList(collectOrderBizRequest);
|
|
|
|
|
|
|
|
List<IoCollectOrderCodeAuto> splitCodes = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), 1);
|
|
|
|
List<IoCollectOrderCodeAuto> unSplitCodes = collectOrderCodeAutoService.listByBillNo(collectOrderBizRequest.getOrderIdFk(), 2);
|
|
|
|
List<IoCollectOrderCodeMan> manList = collectOrderCodeManService.listByBillNo(collectOrderBizRequest.getOrderIdFk());
|
|
|
|
|
|
|
|
List<CollectOrderBizResponse> collectOrderBizResponses = new ArrayList<>();
|
|
|
|
for (CollectOrderBizResponse collectOrderBiz : list) {
|
|
|
|
CollectOrderBizResponse collectOrderBizResponse = new CollectOrderBizResponse();
|
|
|
|
BeanUtils.copyProperties(collectOrderBiz, collectOrderBizResponse);
|
|
|
|
//拆零
|
|
|
|
for (IoCollectOrderCodeAuto collectOrderCodeAuto : splitCodes) {
|
|
|
|
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
|
|
|
|
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(collectOrderCodeAuto.getBatchNo()))) {
|
|
|
|
collectOrderBizResponse.setSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
|
|
|
|
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
|
|
|
|
collectOrderBizResponse.setSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (StrUtil.isNotEmpty(collectOrderBizResponse.getSplitUdiCode())) {
|
|
|
|
collectOrderBizResponse.setSplitUdiCode(collectOrderBizResponse.getSplitUdiCode().substring(1));
|
|
|
|
}
|
|
|
|
//整取
|
|
|
|
for (IoCollectOrderCodeAuto collectOrderCodeAuto : unSplitCodes) {
|
|
|
|
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
|
|
|
|
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(collectOrderCodeAuto.getBatchNo()))) {
|
|
|
|
collectOrderBizResponse.setUnSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUnSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
|
|
|
|
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
|
|
|
|
collectOrderBizResponse.setUnSplitUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getUnSplitUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (StrUtil.isNotEmpty(collectOrderBizResponse.getUnSplitUdiCode())) {
|
|
|
|
collectOrderBizResponse.setUnSplitUdiCode(collectOrderBizResponse.getUnSplitUdiCode().substring(1));
|
|
|
|
}
|
|
|
|
//手动
|
|
|
|
for (IoCollectOrderCodeMan collectOrderCodeAuto : manList) {
|
|
|
|
if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId()) &&
|
|
|
|
(StrUtil.isNotEmpty(collectOrderCodeAuto.getBatchNo()) && StrUtil.trimToEmpty(collectOrderBiz.getBatchNo()).equals(collectOrderCodeAuto.getBatchNo()))) {
|
|
|
|
collectOrderBizResponse.setScanUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getScanUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
|
|
|
|
} else if (collectOrderCodeAuto.getRelId().equals(collectOrderBiz.getRelId())) {
|
|
|
|
collectOrderBizResponse.setScanUdiCode(StrUtil.trimToEmpty(collectOrderBizResponse.getScanUdiCode()) + "," + collectOrderCodeAuto.getUdiCode());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (StrUtil.isNotEmpty(collectOrderBizResponse.getScanUdiCode())) {
|
|
|
|
collectOrderBizResponse.setUnSplitUdiCode(collectOrderBizResponse.getScanUdiCode().substring(1));
|
|
|
|
}
|
|
|
|
collectOrderBizResponses.add(collectOrderBizResponse);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
PageInfo<CollectOrderBizResponse> pageInfo = new PageInfo<>(collectOrderBizResponses);
|
|
|
|
PageSimpleResponse<CollectOrderBizResponse> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
|
pageSimpleResponse.setList(collectOrderBizResponses);
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@PostMapping("/udiwms/basic/collect/order/deleteOrder")
|
|
|
|
public BaseResponse deleteOrder(@RequestBody DeleteRequest deleteRequest) {
|
|
|
|
String billNo = deleteRequest.getBillNo();
|
|
|
|
if (StrUtil.isBlank(billNo)) {
|
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL);
|
|
|
|
}
|
|
|
|
collectOrderService.remove(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, billNo));
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 保存前端处方信息
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@GetMapping("/udiwms/basic/collect/order/save")
|
|
|
|
public BaseResponse saveOrder(@RequestBody CollectOrderSaveRequest collectOrderSaveRequest) {
|
|
|
|
List<IoCollectOrder> list = collectOrderSaveRequest.getList();
|
|
|
|
collectOrderService.saveOrUpdateBatch(list);
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 单据挂起
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@PostMapping("/udiwms/basic/collect/order/update")
|
|
|
|
public BaseResponse updateOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
|
|
|
|
IoCollectOrder collectOrder = new IoCollectOrder();
|
|
|
|
BeanUtils.copyProperties(collectOrderRequest, collectOrder);
|
|
|
|
collectOrder.setUpdateTime(new Date());
|
|
|
|
collectOrder.setUpdateUser(getUserId());
|
|
|
|
collectOrderService.updateById(collectOrder);
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 单据挂起
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@PostMapping("/udiwms/basic/collect/order/draft")
|
|
|
|
public BaseResponse saveDraftOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
|
|
|
|
IoCollectOrder collectOrder = new IoCollectOrder();
|
|
|
|
BeanUtils.copyProperties(collectOrderRequest, collectOrder);
|
|
|
|
collectOrder.setTagStatus(-1);
|
|
|
|
collectOrder.setUpdateTime(new Date());
|
|
|
|
collectOrder.setUpdateUser(getUserId());
|
|
|
|
collectOrderService.updateById(collectOrder);
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 单据挂起
|
|
|
|
*
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@PostMapping("/udiwms/basic/collect/order/finish")
|
|
|
|
public BaseResponse saveFinishOrder(@RequestBody CollectOrderRequest collectOrderRequest) {
|
|
|
|
|
|
|
|
//1.校验是否全部自动赋码
|
|
|
|
|
|
|
|
|
|
|
|
//2.校验扫码是否完成
|
|
|
|
|
|
|
|
|
|
|
|
IoCollectOrder collectOrder = new IoCollectOrder();
|
|
|
|
BeanUtils.copyProperties(collectOrderRequest, collectOrder);
|
|
|
|
collectOrder.setTagStatus(3);
|
|
|
|
collectOrder.setUpdateTime(new Date());
|
|
|
|
collectOrder.setUpdateUser(getUserId());
|
|
|
|
collectOrderService.updateByBillNo(collectOrder);
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@PostMapping("/udiwms/basic/collect/order/bindWork")
|
|
|
|
public BaseResponse bindWork(@RequestBody CollectOrderBindWorkRequest bindWorkRequest) {
|
|
|
|
if (bindWorkRequest.getCollOrder() != null) {
|
|
|
|
IoCollectOrder collectOrder = bindWorkRequest.getCollOrder();
|
|
|
|
collectOrder.setWorkPlaceCode(bindWorkRequest.getWorkplaceCode());
|
|
|
|
collectOrder.setTagStatus(1);
|
|
|
|
collectOrderService.updateById(collectOrder);
|
|
|
|
} else {
|
|
|
|
for (IoCollectOrder collectOrder : bindWorkRequest.getList()) {
|
|
|
|
collectOrder.setTagStatus(1);
|
|
|
|
collectOrder.setWorkPlaceCode(bindWorkRequest.getWorkplaceCode());
|
|
|
|
}
|
|
|
|
collectOrderService.updateBatchById(bindWorkRequest.getList());
|
|
|
|
}
|
|
|
|
|
|
|
|
return ResultVOUtils.success("绑定成功");
|
|
|
|
}
|
|
|
|
|
|
|
|
@GetMapping("/udiwms/collect/order/import")
|
|
|
|
public BaseResponse importOrder() {
|
|
|
|
collectOrderService.importOrder();
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
}
|
|
|
|
|
|
|
|
@GetMapping("/udiwms/collect/order/clearAll")
|
|
|
|
public BaseResponse clearAll() {
|
|
|
|
collectOrderService.clearOrder();
|
|
|
|
return ResultVOUtils.success();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|