package com.glxp.api.service.collect; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.glxp.api.constant.Constant; import com.glxp.api.dao.collect.IoSplitDesOrderMapper; import com.glxp.api.entity.collect.IoSplitDesOrder; import com.glxp.api.entity.collect.IoSplitDesOrderDetail; import com.glxp.api.entity.inout.IoSplitFifoInv; import com.glxp.api.req.collect.AddInvDesDetaiRequest; import com.glxp.api.req.collect.IoSplitDesOrderRequest; import com.glxp.api.res.collect.IoSplitDesOrderResponse; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Collections; import java.util.Date; import java.util.List; @Service public class IoSplitDesOrderService extends ServiceImpl { @Resource IoSplitDesOrderMapper splitDesOrderMapper; @Resource IoSplitDesOrderDetailService splitDesOrderDetailService; @Resource GennerOrderUtils gennerOrderUtils; public List filterList(IoSplitDesOrderRequest splitDesOrderRequest) { if (splitDesOrderRequest == null) { return Collections.emptyList(); } if (splitDesOrderRequest.getPage() != null) { int offset = (splitDesOrderRequest.getPage() - 1) * splitDesOrderRequest.getLimit(); PageHelper.offsetPage(offset, splitDesOrderRequest.getLimit()); } List data = splitDesOrderMapper.filterList(splitDesOrderRequest); return data; } public IoSplitDesOrder getByBillNo(String billNo) { return splitDesOrderMapper.selectOne(new LambdaQueryWrapper().eq(IoSplitDesOrder::getBillNo, billNo).last("limit 1")); } public IoSplitDesOrder addInv(AddInvDesDetaiRequest addInvDesDetaiRequest) { IoSplitDesOrder collectOrder; if (StrUtil.isNotEmpty(addInvDesDetaiRequest.getBillNo())) { collectOrder = getByBillNo(addInvDesDetaiRequest.getBillNo()); } else { collectOrder = new IoSplitDesOrder(); String orderNo = gennerOrderUtils.createWdOrderNo(new OrderNoTypeBean(Constant.SPLIT_DES_ORDER, "yyyyMMdd")); collectOrder.setBillNo(orderNo); } IoSplitFifoInv splitFifoInv = addInvDesDetaiRequest.getSplitFifoInv(); IoSplitDesOrderDetail splitDesOrderDetail = IoSplitDesOrderDetail.builder() .workPlaceCode(collectOrder.getWorkPlaceCode()) .orderIdFk(collectOrder.getBillNo()) .invId(splitFifoInv.getId()) .relId(splitFifoInv.getRelId()) .batchNo(splitFifoInv.getBatchNo()) .produceDate(splitFifoInv.getProduceDate()) .expireDate(splitFifoInv.getExpireDate()) .supId(splitFifoInv.getSupId()) .count(splitFifoInv.getReCount()) .reCount(splitFifoInv.getReCount()) .createTime(new Date()) .updateTime(new Date()) .remark("").build(); splitDesOrderDetailService.save(splitDesOrderDetail); return collectOrder; } }