package com.glxp.api.service.collect; import cn.hutool.core.collection.CollUtil; 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.dao.collect.IoCollectOrderMapper; import com.glxp.api.entity.basic.BasicCollectBustypeEntity; import com.glxp.api.entity.collect.IoCollectOrder; import com.glxp.api.entity.collect.IoCollectOrderBiz; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.req.collect.CollectOrderRequest; import com.glxp.api.res.collect.IoCollectOrderResponse; import com.glxp.api.service.basic.BasicCollectBustypeService; import com.glxp.api.service.inout.IoOrderDetailBizService; import com.glxp.api.service.inout.IoOrderService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; @Service public class IoCollectOrderService extends ServiceImpl { @Resource IoCollectOrderMapper collectOrderMapper; public IoCollectOrder getByBillNo(String billNo) { return collectOrderMapper.selectOne(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, billNo).last("limit 1")); } public List filterList(CollectOrderRequest collectOrderRequest) { if (collectOrderRequest == null) { return Collections.emptyList(); } if (collectOrderRequest.getPage() != null) { int offset = (collectOrderRequest.getPage() - 1) * collectOrderRequest.getLimit(); PageHelper.offsetPage(offset, collectOrderRequest.getLimit()); } List data = collectOrderMapper.filterList(collectOrderRequest); return data; } @Resource IoOrderService orderService; @Resource IoOrderDetailBizService orderDetailBizService; @Resource BasicCollectBustypeService collectBustypeService; @Resource IoCollectOrderBizService collectOrderBizService; /** * 导入内部数据 */ public void importOrder() { List list = orderService.selectAll(); List collectOrderList = new ArrayList<>(); for (IoOrderEntity ioOrderEntity : list) { BasicCollectBustypeEntity collectBustypeEntity = collectBustypeService.findByAddr(ioOrderEntity.getAction()); if (collectBustypeEntity == null) continue; if (collectOrderMapper.exists(new LambdaQueryWrapper().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) { continue; } IoCollectOrder collectOrder = IoCollectOrder.builder() .billNo(ioOrderEntity.getBillNo()) .busType(collectBustypeEntity.getCode()) .fromType("内部单据") .fromCorp(ioOrderEntity.getFromCorp()) .billTime(ioOrderEntity.getCreateTime()) .createTime(ioOrderEntity.getCreateTime()) .createUser(ioOrderEntity.getCreateUser()) .fromCorp(ioOrderEntity.getFromCorp()) .updateTime(new Date()) .splitStatus(0) .tagStatus(0) .build(); collectOrderList.add(collectOrder); List orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo()); List collectOrderBizs = new ArrayList<>(); for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) { IoCollectOrderBiz collectOrderBiz = IoCollectOrderBiz.builder().orderIdFk(collectOrder.getBillNo()) .relId(bizEntity.getBindRlFk()) .cpmctymc(bizEntity.getCoName()) .nameCode(bizEntity.getNameCode()) .ggxh(bizEntity.getSpec()) .batchNo(bizEntity.getBatchNo()) .productDate(bizEntity.getProductDate()) .expireDate(bizEntity.getExpireDate()) .count(bizEntity.getCount()) .measureUnit(bizEntity.getMeasname()) .tagStatus(1) .unTagCount(bizEntity.getCount()).build(); collectOrderBizs.add(collectOrderBiz); } if (CollUtil.isNotEmpty(collectOrderBizs)) collectOrderBizService.saveBatch(collectOrderBizs); } if (CollUtil.isNotEmpty(collectOrderList)) saveBatch(collectOrderList); } }