MaterialErpService.java 3.29 KB
package com.huaheng.pc.config.material.service;

import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.List;

import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.pc.config.address.domain.Address;
import com.huaheng.pc.config.address.service.AddressService;
import com.huaheng.pc.config.material.domain.MaterialErp;
import com.huaheng.pc.config.material.mapper.MaterialErpMapper;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.huaheng.common.utils.DateUtils;
import com.huaheng.framework.aspectj.lang.annotation.Ds;
import com.huaheng.framework.aspectj.lang.constant.DataSourceName;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;


@Service
public class MaterialErpService extends ServiceImpl<MaterialErpMapper, MaterialErp>{

    @Resource
    private MaterialErpService materialErpService;

    SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    /**
     * 查找erp数据库的供应商数据
     * @return
     */
    @Ds(name= DataSourceName.SLAVE)
   public List<MaterialErp> findMaterialData(Date endtime,Address address,Date syncTimes,String codeStart,String codeEnd){
//        String startTime= DateUtils.getNowPreDays("yyyy-MM-dd HH:mm:ss", 18);
//        time=time*60*24;
        // 将Date转换为Instant
        Instant instant = syncTimes.toInstant();
        // 将Instant往前推移10分钟
        Instant newInstant = instant.minus(5, ChronoUnit.MINUTES);
        // 将新的Instant转换回Date
        Date newDate = Date.from(newInstant);

        QueryWrapper<MaterialErp> queryWrapper = new QueryWrapper<>();

//        10101000001-10602000001 暂停   11400001543-12204001543-35004001543
        if(StringUtils.isNotEmpty(codeStart)){
            queryWrapper.ge("imaa001", codeStart);
            queryWrapper.le("imaa001",codeEnd);
        }else{
            queryWrapper.ge("imaamoddt", newDate);
            if(endtime!=null){
                queryWrapper.le("imaamoddt", endtime);
            }
        }



        queryWrapper.eq("imaaent", address.getUserDef2());
        queryWrapper.eq("imaastus", "Y");
        queryWrapper.select("  imaa001,imaal003,imaal004,imaa006,imaa004,imaamoddt,oocal003");
//        queryWrapper.apply(" ROWNUM > 100 AND ROWNUM <= 200");
        List<MaterialErp> lists = this.list(queryWrapper);
        return lists;
   }

    /**
     * 查找erp数据库的供应商数据
     * @return
     */
     @Ds(name= DataSourceName.SLAVE)
     @Transactional(propagation = Propagation.REQUIRES_NEW)
    public MaterialErp erpMaterialByCode(String code,String datakeyEntId){
        QueryWrapper<MaterialErp> queryWrapper = new QueryWrapper<>();
        queryWrapper.ge("IMAA001", code);
        queryWrapper.eq("imaaent", datakeyEntId);
        queryWrapper.select("  imaa001,imaal003,imaal004,imaa006,imaa004,imaamoddt");
        queryWrapper.last(" and rownum=1");
        MaterialErp materialErp = materialErpService.getOne(queryWrapper);
        return materialErp;
    }

}