|
|
|
@ -17,6 +17,7 @@ import com.glxp.api.controller.BaseController;
|
|
|
|
|
import com.glxp.api.entity.auth.InvBusUserEntity;
|
|
|
|
|
import com.glxp.api.entity.auth.InvWarehouseEntity;
|
|
|
|
|
import com.glxp.api.entity.basic.BasicBussinessTypeEntity;
|
|
|
|
|
import com.glxp.api.entity.basic.BasicCorpEntity;
|
|
|
|
|
import com.glxp.api.entity.basic.EntrustReceEntity;
|
|
|
|
|
import com.glxp.api.entity.inout.*;
|
|
|
|
|
import com.glxp.api.http.sync.SpGetHttpClient;
|
|
|
|
@ -31,6 +32,7 @@ import com.glxp.api.res.inout.IoOrderResponse;
|
|
|
|
|
import com.glxp.api.res.inout.PdaBusOrderResponse;
|
|
|
|
|
import com.glxp.api.service.auth.InvBusUserService;
|
|
|
|
|
import com.glxp.api.service.auth.InvWarehouseService;
|
|
|
|
|
import com.glxp.api.service.basic.BasicCorpService;
|
|
|
|
|
import com.glxp.api.service.basic.EntrustReceService;
|
|
|
|
|
import com.glxp.api.service.basic.IBasicBussinessTypeService;
|
|
|
|
|
import com.glxp.api.service.inout.*;
|
|
|
|
@ -45,10 +47,8 @@ import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_CHECK_PROCESS;
|
|
|
|
@ -75,6 +75,8 @@ public class IoOrderController extends BaseController {
|
|
|
|
|
IoAddInoutService ioAddInoutService;
|
|
|
|
|
@Resource
|
|
|
|
|
IoCheckInoutService ioCheckInoutService;
|
|
|
|
|
@Resource
|
|
|
|
|
BasicCorpService basicCorpService;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 查询单据列表
|
|
|
|
@ -270,10 +272,27 @@ public class IoOrderController extends BaseController {
|
|
|
|
|
IoOrderEntity orderEntity = new IoOrderEntity();
|
|
|
|
|
if (StrUtil.isEmpty(addOrderRequest.getAction()))
|
|
|
|
|
return ResultVOUtils.error(500, "单据类型不能为空");
|
|
|
|
|
orderEntity.setAction(addOrderRequest.getAction());
|
|
|
|
|
|
|
|
|
|
BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction());
|
|
|
|
|
BasicCorpEntity basicCorpEntity = new BasicCorpEntity();
|
|
|
|
|
//要是特殊往来信息没有就创建
|
|
|
|
|
if (bussinessTypeEntity.getCorpType() == ConstantStatus.CORP_TYPE_INPUT && bussinessTypeEntity.isGenUnit()) {
|
|
|
|
|
basicCorpEntity = basicCorpService.selectByName(orderEntity.getFromCorp());
|
|
|
|
|
if (basicCorpEntity == null) {
|
|
|
|
|
basicCorpEntity = new BasicCorpEntity();
|
|
|
|
|
basicCorpEntity.setErpId(CustomUtil.getUnitId());
|
|
|
|
|
basicCorpEntity.setCorpType(ConstantStatus.CORP_SICK);
|
|
|
|
|
basicCorpEntity.setOutType(ConstantStatus.CORP_SICK_SICK);
|
|
|
|
|
basicCorpEntity.setName(addOrderRequest.getFromCorp());
|
|
|
|
|
basicCorpEntity.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
basicCorpService.insert(basicCorpEntity);
|
|
|
|
|
}
|
|
|
|
|
orderEntity.setFromCorp(basicCorpEntity.getErpId());
|
|
|
|
|
}else {
|
|
|
|
|
orderEntity.setFromCorp(addOrderRequest.getFromCorp());
|
|
|
|
|
}
|
|
|
|
|
orderEntity.setAction(addOrderRequest.getAction());
|
|
|
|
|
orderEntity.setMainAction(bussinessTypeEntity.getMainAction());
|
|
|
|
|
orderEntity.setFromCorp(addOrderRequest.getFromCorp());
|
|
|
|
|
orderEntity.setRemark(addOrderRequest.getRemark());
|
|
|
|
|
orderEntity.setFromInvCode(addOrderRequest.getFromInvCode());
|
|
|
|
|
orderEntity.setDeptCode(addOrderRequest.getDeptCode());
|
|
|
|
@ -746,11 +765,17 @@ public class IoOrderController extends BaseController {
|
|
|
|
|
originOrder.setReplicateNo(orderNo);
|
|
|
|
|
List<IoCodeTempEntity> supplementCodes = new ArrayList<>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 生成业务单
|
|
|
|
|
List<IoCodeEntity> products = addOrderChangeRequest.getProducts();
|
|
|
|
|
List<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(originOrder.getBillNo());
|
|
|
|
|
if (CollUtil.isNotEmpty(orderDetailBizEntities)) {
|
|
|
|
|
for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) {
|
|
|
|
|
// 计算出两个集合之间产品批次号组成的差异
|
|
|
|
|
List<IoOrderDetailBizEntity> IoStatDayEntityList = orderDetailBizEntities.stream()
|
|
|
|
|
.filter(comment -> products.stream()
|
|
|
|
|
.anyMatch(p -> Objects.equals(p.getBatchNo(), comment.getBatchNo()) // 使用 Objects.equals 来进行非空判断
|
|
|
|
|
&& Objects.equals(p.getRelId(), comment.getBindRlFk())))
|
|
|
|
|
.collect(Collectors.toList());
|
|
|
|
|
//生成业务单
|
|
|
|
|
if (CollUtil.isNotEmpty(IoStatDayEntityList)) {
|
|
|
|
|
for (IoOrderDetailBizEntity orderDetailBizEntity : IoStatDayEntityList) {
|
|
|
|
|
orderDetailBizEntity.setOrderIdFk(newOrder.getBillNo());
|
|
|
|
|
orderDetailBizEntity.setId(IdUtil.getSnowflakeNextId());
|
|
|
|
|
orderDetailBizService.insert(orderDetailBizEntity);
|
|
|
|
@ -758,7 +783,7 @@ public class IoOrderController extends BaseController {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<IoCodeEntity> products = addOrderChangeRequest.getProducts();
|
|
|
|
|
|
|
|
|
|
originCodes.forEach(
|
|
|
|
|
code -> {
|
|
|
|
|
//复制选中的产品
|
|
|
|
|