BackSapStatusService.java 2.94 KB
package com.huaheng.pc.sap.service;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.api.sap.service.ZarApiService;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.pc.sap.domain.BackSapStatus;
import com.huaheng.pc.sap.domain.Zarsh;
import com.huaheng.pc.sap.mapper.BackSapStatusMapper;

/**
 * Created by Cotter on 2023/2/1.
 * @author zhouhong
 */
@Service
public class BackSapStatusService extends ServiceImpl<BackSapStatusMapper, BackSapStatus> {

    @Resource
    private ZarApiService zarApiService;
    @Resource
    private ZarshService zarshService;

    /**
     * @param  uniqueIds
     * @param  lgnum
     * @param  locationCode
     * @param  mFlag        1入库 2出库
     * @param  cFlag        命令状态:1:正在执行 2执行成功 C异常 -1使用者取消
     * @param  taskId
     * @return
     */
    public boolean saveBackSapStatus(String uniqueIds, String lgnum, String locationCode, Integer mFlag, String cFlag, Integer taskId, String msg) {
        boolean flag = false;
        if (StringUtils.isEmpty(uniqueIds)) {
            return true;
        }
        Zarsh zarsh = zarshService.getZarshByUnique(uniqueIds);
        if (zarsh == null) {
            return true;
        }
        LambdaQueryWrapper<BackSapStatus> queryWrapper = Wrappers.lambdaQuery();
        queryWrapper.eq(BackSapStatus::getUniqueIds, uniqueIds).eq(BackSapStatus::getLgnum, lgnum)
            .eq(StringUtils.isNotEmpty(locationCode), BackSapStatus::getLocation, locationCode).eq(BackSapStatus::getMFlag, mFlag)
//                .eq(BackSapStatus::getCFlag, cFlag)
            .eq(StringUtils.isNotNull(taskId), BackSapStatus::getTaskId, taskId);
        queryWrapper.last("limit 1");
        BackSapStatus backSapStatus1 = this.getOne(queryWrapper);
        if (backSapStatus1 == null) {
            BackSapStatus backSapStatus = new BackSapStatus();
            backSapStatus.setStatus(1);
            backSapStatus.setCFlag(cFlag);
            backSapStatus.setLocation(locationCode);
            backSapStatus.setMFlag(mFlag);
            backSapStatus.setTaskId(taskId);
            backSapStatus.setLgnum(lgnum);
            backSapStatus.setUniqueIds(uniqueIds);
            backSapStatus.setMsg(msg);
            flag = this.save(backSapStatus);
        } else {
            backSapStatus1.setCFlag(cFlag);
            backSapStatus1.setStatus(1);
            flag = this.updateById(backSapStatus1);
        }
        if (cFlag.equals("D")) {
        }
        // 判断 分拣叠盘
        if (backSapStatus1 != null && StringUtils.isNotNull(taskId) && mFlag == 2) {
            backSapStatus1.setLocation(locationCode);
            flag = this.updateById(backSapStatus1);
        }
        return flag;
    }
}