skyouc
2 天以前 42f887929f3003026f33ba6822703b1a89a13489
rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/ScheduleJobs.java
@@ -8,6 +8,7 @@
import com.vincent.rsf.server.common.utils.DateUtils;
import com.vincent.rsf.server.manager.entity.*;
import com.vincent.rsf.server.manager.enums.AsnExceStatus;
import com.vincent.rsf.server.manager.enums.OrderType;
import com.vincent.rsf.server.manager.enums.POExceStatus;
import com.vincent.rsf.server.manager.enums.WarehouseAreasType;
import com.vincent.rsf.server.manager.service.*;
@@ -78,15 +79,18 @@
        if (!Boolean.parseBoolean(config.getVal())) {
            return;
        }
        List<WkOrder> orders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>().eq(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val));
        //自动收货单
        List<WkOrder> orders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>()
                .eq(WkOrder::getType, OrderType.ORDER_IN.type)
                .eq(WkOrder::getExceStatus, AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val));
        if (!orders.isEmpty()) {
            for (WkOrder order : orders) {
                List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, order.getId()));
                List<WkOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, order.getId()));
                if (orderItems.isEmpty()) {
                    return;
                }
                List<WarehouseAreasItem> items = new ArrayList<>();
                for (AsnOrderItem item : orderItems) {
                for (WkOrderItem item : orderItems) {
                    WarehouseAreas one = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>()
                            .eq(WarehouseAreas::getType, WarehouseAreasType.WAREHOUSE_AREAS_TYPE_RECEIPT.type), false);
                    Long areaId = Objects.isNull(one) ? null : one.getId();
@@ -107,7 +111,7 @@
                    //更新收货区库存
                    extracted(one, item, order, matnr);
                    if (!asnOrderItemService.update(new LambdaUpdateWrapper<AsnOrderItem>().set(AsnOrderItem::getQty, item.getAnfme()).eq(AsnOrderItem::getId, item.getId()))) {
                    if (!asnOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>().set(WkOrderItem::getQty, item.getAnfme()).eq(WkOrderItem::getId, item.getId()))) {
                        throw new CoolException("收货单明细完成数量修改失败!!");
                    }
                }
@@ -132,7 +136,7 @@
     * @description: 收货区库存更新
     * @version 1.0
     */
    private void extracted(WarehouseAreas areasItem, AsnOrderItem orderItem, WkOrder wkOrder, Matnr matnr) {
    private void extracted(WarehouseAreas areasItem, WkOrderItem orderItem, WkOrder wkOrder, Matnr matnr) {
        Companys companys = new Companys();
        if (StringUtils.isNoneBlank(orderItem.getSplrCode())) {
            companys = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getCode, orderItem.getSplrCode()));
@@ -163,11 +167,11 @@
                .setWeight(matnr.getWeight())
                .setFieldsIndex(orderItem.getFieldsIndex())
                .setShipperId(matnr.getShipperId());
        LambdaQueryWrapper<WarehouseAreasItem> queryWrapper = new LambdaQueryWrapper<WarehouseAreasItem>()
                .eq(WarehouseAreasItem::getMatnrCode, orderItem.getMatnrCode())
                .eq(!Cools.isEmpty(orderItem.getFieldsIndex()), WarehouseAreasItem::getFieldsIndex, orderItem.getFieldsIndex())
                .eq(WarehouseAreasItem::getAsnCode, orderItem.getAsnCode())
                .eq(WarehouseAreasItem::getAsnCode, orderItem.getOrderCode())
                .eq(StringUtils.isNotBlank(orderItem.getSplrBatch()), WarehouseAreasItem::getSplrBatch, orderItem.getSplrBatch());
        if (Objects.isNull(orderItem.getIsptResult())) {
            queryWrapper.isNull(WarehouseAreasItem::getIsptResult);
@@ -231,9 +235,9 @@
            if (!asnOrderService.save(order)) {
                throw new CoolException("ASN单据保存失败!!");
            }
            List<AsnOrderItem> orderItems = new ArrayList<>();
            List<WkOrderItem> orderItems = new ArrayList<>();
            items.forEach(item -> {
                AsnOrderItem orderItem = new AsnOrderItem();
                WkOrderItem orderItem = new WkOrderItem();
                Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>().eq(Matnr::getCode, item.getMatnrCode()));
                if (Objects.isNull(matnr)) {
                    throw new CoolException("数据错误:当前物料不存在!!");
@@ -244,10 +248,10 @@
                }
//                String barcode = code + matnr.getCode();
                orderItem.setAnfme(item.getAnfme())
                        .setAsnId(order.getId())
                        .setOrderId(order.getId())
                        .setQty(item.getQty())
                        .setSplrName(item.getSplrName())
                        .setAsnCode(code)
                        .setOrderCode(code)
                        .setSplrCode(item.getSplrCode())
                        .setPoDetlId(item.getId())
                        .setPlatItemId(item.getPlatItemId())
@@ -284,13 +288,13 @@
    @Scheduled(cron = "0 0/05 * * * ?  ")
    @Transactional(rollbackFor = Exception.class)
    public void generateMatnrLabel() {
        List<AsnOrderItem> list = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>()
                .isNull(AsnOrderItem::getTrackCode)
                .select(AsnOrderItem::getId));
        List<WkOrderItem> list = asnOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>()
                .isNull(WkOrderItem::getTrackCode)
                .select(WkOrderItem::getId));
        if (Objects.isNull(list) || list.isEmpty()) {
            return;
        }
        List<AsnOrderItem> items = new ArrayList<>();
        List<WkOrderItem> items = new ArrayList<>();
        list.forEach(item -> {
            String trackCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, item);
            if (StringUtils.isBlank(trackCode)) {