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/IoCollectCodeService.java

164 lines
7.0 KiB
Java

package com.glxp.api.service.collect;
10 months ago
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.pagehelper.PageHelper;
import com.glxp.api.dao.collect.IoCollectCodeBackMapper;
import com.glxp.api.entity.collect.*;
10 months ago
import com.glxp.api.req.collect.CollectOrderBizRequest;
import com.glxp.api.req.collect.IoCollectCodeRequest;
10 months ago
import com.glxp.api.res.collect.CollectOrderBizResponse;
import com.glxp.api.res.collect.IoCollectCodeResponse;
10 months ago
import com.glxp.api.util.IntUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
10 months ago
import javax.annotation.Resource;
10 months ago
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
10 months ago
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.glxp.api.dao.collect.IoCollectCodeMapper;
10 months ago
@Service
public class IoCollectCodeService extends ServiceImpl<IoCollectCodeMapper, IoCollectCode> {
10 months ago
@Resource
IoCollectCodeMapper collectCodeMapper;
@Resource
IoCollectOrderCodeAutoService collectOrderCodeAutoService;
@Resource
IoCollectOrderCodeManService collectOrderCodeManService;
@Resource
IoCollectOrderBizService collectOrderBizService;
@Resource
IoCollectOrderService collectOrderService;
/**
*
*
* @param ioCollectCodeRequest
* @return
*/
public List<IoCollectCodeResponse> filterList(IoCollectCodeRequest ioCollectCodeRequest) {
if (ioCollectCodeRequest == null) {
return Collections.emptyList();
}
if (ioCollectCodeRequest.getPage() != null) {
int offset = (ioCollectCodeRequest.getPage() - 1) * ioCollectCodeRequest.getLimit();
PageHelper.offsetPage(offset, ioCollectCodeRequest.getLimit());
}
return super.baseMapper.filterList(ioCollectCodeRequest);
}
10 months ago
/**
*
*/
public void insertCodesByBill(String billNo) {
IoCollectOrder collectOrder = collectOrderService.getByBillNo(billNo);
CollectOrderBizRequest collectOrderBizRequest = new CollectOrderBizRequest();
collectOrderBizRequest.setOrderIdFk(billNo);
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());
7 months ago
//todo 码表插入采购类型
10 months ago
for (CollectOrderBizResponse collectOrderBiz : list) {
List<IoCollectOrderCodeMan> temp1 = manList.stream()
.filter(obj -> obj.getBizIdFk().equals(collectOrderBiz.getId()))
.collect(Collectors.toList());
List<IoCollectOrderCodeAuto> temp2 = splitCodes.stream()
.filter(obj -> obj.getBizIdFk().equals(collectOrderBiz.getId()))
.collect(Collectors.toList());
List<IoCollectOrderCodeAuto> temp3 = unSplitCodes.stream()
.filter(obj -> obj.getBizIdFk().equals(collectOrderBiz.getId()))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(temp1)) {
saveManuCode(temp1, collectOrder);
} else {
if (CollUtil.isNotEmpty(temp2)) {
saveSplitCode(temp2, collectOrder);
}
if (CollUtil.isNotEmpty(temp3)) {
saveUnSplitCode(temp3, collectOrder);
}
}
}
7 months ago
// if(QXCF001)
10 months ago
}
@Resource
IoCollectCodeBackService collectCodeBackService;
10 months ago
public void saveManuCode(List<IoCollectOrderCodeMan> manList, IoCollectOrder collectOrder) {
if (CollUtil.isEmpty(manList))
return;
List<IoCollectCodeBackup> ioCollectCodes = new ArrayList<>();
10 months ago
for (IoCollectOrderCodeMan ioCollectOrderCodeMan : manList) {
ioCollectCodes.add(IoCollectCodeBackup.builder().code(ioCollectOrderCodeMan.getUdiCode())
10 months ago
.fromType(collectOrder.getFromType())
.busType(collectOrder.getBusType())
.billNo(collectOrder.getBillNo())
.fromCorp(collectOrder.getFromCorp())
.operTime(collectOrder.getUpdateTime())
.operUser(collectOrder.getCreateUser())
.fifoSplit(3)
.workPlaceCode(collectOrder.getWorkPlaceCode())
.relId(ioCollectOrderCodeMan.getRelId())
10 months ago
.remark(collectOrder.getRemark()).build());
}
collectCodeBackService.saveBatch(ioCollectCodes);
10 months ago
}
public void saveSplitCode(List<IoCollectOrderCodeAuto> codeAutoList, IoCollectOrder collectOrder) {
if (CollUtil.isEmpty(codeAutoList))
return;
List<IoCollectCodeBackup> ioCollectCodes = new ArrayList<>();
for (IoCollectOrderCodeAuto collectOrderCodeAuto : codeAutoList) {
ioCollectCodes.add(IoCollectCodeBackup.builder().code(collectOrderCodeAuto.getUdiCode())
10 months ago
.fromType(collectOrder.getFromType())
.busType(collectOrder.getBusType())
.billNo(collectOrder.getBillNo())
.fromCorp(collectOrder.getFromCorp())
.operTime(collectOrder.getUpdateTime())
.operUser(collectOrder.getCreateUser())
.fifoSplit(1)
.relId(collectOrderCodeAuto.getRelId())
10 months ago
.workPlaceCode(collectOrder.getWorkPlaceCode())
.remark(collectOrder.getRemark()).build());
}
collectCodeBackService.saveBatch(ioCollectCodes);
10 months ago
}
public void saveUnSplitCode(List<IoCollectOrderCodeAuto> codeAutoList, IoCollectOrder collectOrder) {
if (CollUtil.isEmpty(codeAutoList))
return;
List<IoCollectCodeBackup> ioCollectCodes = new ArrayList<>();
for (IoCollectOrderCodeAuto collectOrderCodeAuto : codeAutoList) {
ioCollectCodes.add(IoCollectCodeBackup.builder().code(collectOrderCodeAuto.getUdiCode())
10 months ago
.fromType(collectOrder.getFromType())
.busType(collectOrder.getBusType())
.billNo(collectOrder.getBillNo())
.fromCorp(collectOrder.getFromCorp())
.operTime(collectOrder.getUpdateTime())
.operUser(collectOrder.getCreateUser())
.fifoSplit(2)
.relId(collectOrderCodeAuto.getRelId())
10 months ago
.workPlaceCode(collectOrder.getWorkPlaceCode())
.remark(collectOrder.getRemark()).build());
}
collectCodeBackService.saveBatch(ioCollectCodes);
10 months ago
}
}