SapTaskLogService.java 2.05 KB
package com.huaheng.pc.sap.service;

import javax.annotation.Resource;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.huaheng.common.utils.DateUtils;
import com.huaheng.pc.sap.domain.BackSapStatus;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.api.sap.domain.ZarDomain;
import com.huaheng.common.utils.bean.BeanUtils;
import com.huaheng.pc.sap.domain.SapTaskLog;
import com.huaheng.pc.sap.domain.Zarsh;
import com.huaheng.pc.sap.mapper.SapTaskLogMapper;

/**
 * Created by Cotter on 2023/2/1.
 * @author zhouhong
 */
@Service
public class SapTaskLogService extends ServiceImpl<SapTaskLogMapper, SapTaskLog> {

    @Resource
    private SapTaskLogService sapTaskLogService;

    /**
     * @param
     * @param  msg
     * @param  status wms异常处理:0默认 1异常
     * @return
     */
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public boolean addSapTaskLog(ZarDomain zarDomain, String msg, Integer status) {
        Zarsh zarsh = zarDomain.getZarsh();
        SapTaskLog sapTaskLog = new SapTaskLog();
        BeanUtils.copyBeanProp(sapTaskLog, zarsh);
        sapTaskLog.setUniqueIds(zarsh.getUniqueId());
        sapTaskLog.setId(null);
        sapTaskLog.setStatus(status);
        sapTaskLog.setCFlag(zarsh.getCFlag());
        sapTaskLog.setMsg(msg);
        sapTaskLog.setInKind(zarsh.getInKind());

        String json = JSON.toJSON(zarDomain).toString();
        sapTaskLog.setJsonData(json);
        sapTaskLogService.save(sapTaskLog);
        return true;
    }

    public int truncateTable(int days) {
        String preweek = DateUtils.getNowPreDays("yyyy-MM-dd HH:mm:ss", days);
        LambdaQueryWrapper<SapTaskLog> lambda = new LambdaQueryWrapper<>();
        lambda.lt(SapTaskLog::getCreated, preweek);
        this.remove(lambda);

        return 1;
    }
}