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.
udi-wms-java/src/main/java/com/glxp/api/service/collect/IoCollectOrderService.java

130 lines
5.8 KiB
Java

package com.glxp.api.service.collect;
11 months ago
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;
11 months ago
import com.glxp.api.entity.basic.BasicCollectBustypeEntity;
import com.glxp.api.entity.collect.IoCollectOrder;
11 months ago
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;
11 months ago
import com.glxp.api.req.inout.FilterOrderRequest;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.collect.IoCollectOrderResponse;
11 months ago
import com.glxp.api.res.inout.IoOrderResponse;
11 months ago
import com.glxp.api.service.basic.BasicCollectBustypeService;
11 months ago
import com.glxp.api.service.basic.UdiRelevanceService;
11 months ago
import com.glxp.api.service.inout.IoOrderDetailBizService;
import com.glxp.api.service.inout.IoOrderService;
11 months ago
import com.glxp.api.util.IntUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
11 months ago
import java.util.ArrayList;
import java.util.Collections;
11 months ago
import java.util.Date;
import java.util.List;
@Service
public class IoCollectOrderService extends ServiceImpl<IoCollectOrderMapper, IoCollectOrder> {
@Resource
IoCollectOrderMapper collectOrderMapper;
public IoCollectOrder getByBillNo(String billNo) {
return collectOrderMapper.selectOne(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, billNo).last("limit 1"));
}
public List<IoCollectOrderResponse> 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<IoCollectOrderResponse> data = collectOrderMapper.filterList(collectOrderRequest);
return data;
}
11 months ago
@Resource
IoOrderService orderService;
@Resource
IoOrderDetailBizService orderDetailBizService;
@Resource
BasicCollectBustypeService collectBustypeService;
@Resource
IoCollectOrderBizService collectOrderBizService;
11 months ago
@Resource
UdiRelevanceService udiRelevanceService;
11 months ago
/**
*
*/
public void importOrder() {
11 months ago
FilterOrderRequest filterOrderRequest = new FilterOrderRequest();
filterOrderRequest.setPage(1);
filterOrderRequest.setLimit(1000);
List<IoOrderResponse> list = orderService.filterList(filterOrderRequest);
11 months ago
List<IoCollectOrder> collectOrderList = new ArrayList<>();
11 months ago
for (IoOrderResponse ioOrderEntity : list) {
11 months ago
BasicCollectBustypeEntity collectBustypeEntity = collectBustypeService.findByAddr(ioOrderEntity.getAction());
if (collectBustypeEntity == null)
continue;
if (collectOrderMapper.exists(new LambdaQueryWrapper<IoCollectOrder>().eq(IoCollectOrder::getBillNo, ioOrderEntity.getBillNo()))) {
continue;
}
IoCollectOrder collectOrder = IoCollectOrder.builder()
.billNo(ioOrderEntity.getBillNo())
.busType(collectBustypeEntity.getCode())
.fromType("内部单据")
11 months ago
.fromCorp(ioOrderEntity.getFromName())
11 months ago
.billTime(ioOrderEntity.getCreateTime())
.createTime(ioOrderEntity.getCreateTime())
.createUser(ioOrderEntity.getCreateUser())
.updateTime(new Date())
.splitStatus(0)
.tagStatus(0)
.build();
collectOrderList.add(collectOrder);
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(ioOrderEntity.getBillNo());
List<IoCollectOrderBiz> collectOrderBizs = new ArrayList<>();
for (IoOrderDetailBizEntity bizEntity : orderDetailBizEntities) {
11 months ago
UdiRelevanceResponse udiRelevanceResponse = udiRelevanceService.selectByRelId(bizEntity.getBindRlFk() + "");
11 months ago
IoCollectOrderBiz collectOrderBiz = IoCollectOrderBiz.builder().orderIdFk(collectOrder.getBillNo())
.relId(bizEntity.getBindRlFk())
11 months ago
.thrCode(udiRelevanceResponse.getMainId())
.ybbm(udiRelevanceResponse.getYbbm())
.payFeeCode(udiRelevanceResponse.getPayFeeCode())
11 months ago
.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();
11 months ago
if (IntUtil.value(udiRelevanceResponse.getProductsType()) == 2) {
collectOrderBiz.setGgxh(udiRelevanceResponse.getBzgg());
collectOrderBiz.setMeasureUnit(udiRelevanceResponse.getPrepnUnit());
}
11 months ago
collectOrderBizs.add(collectOrderBiz);
}
if (CollUtil.isNotEmpty(collectOrderBizs))
collectOrderBizService.saveBatch(collectOrderBizs);
}
if (CollUtil.isNotEmpty(collectOrderList))
saveBatch(collectOrderList);
}
}