BackSapStatusService.java 2.44 KB
package com.huaheng.pc.sap.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.common.utils.StringUtils;
import com.huaheng.pc.sap.domain.BackSapStatus;
import com.huaheng.pc.sap.mapper.BackSapStatusMapper;
import org.springframework.stereotype.Service;

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


    /**
     * @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;
        }
        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);
        }
        //判断 分拣叠盘
        if(backSapStatus1 != null && StringUtils.isNotNull(taskId) && mFlag == 2){
            backSapStatus1.setLocation(locationCode);
            flag = this.updateById(backSapStatus1);
        }
        return flag;
    }
}