package com.emato.biz.service.impl; import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import com.alibaba.fastjson.JSONArray; import com.emato.biz.config.KmallConfig; import com.emato.common.utils.DateUtils; import com.emato.common.utils.oms.request.OkHttpUtils; import okhttp3.Request; import okhttp3.RequestBody; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.emato.biz.mapper.mall.MallInveMngMapper; import com.emato.biz.domain.mall.MallInveMng; import com.emato.biz.service.mall.IMallInveMngService; import org.springframework.transaction.annotation.Transactional; /** * 库存管理,wms入库回传时,增加库存数Service业务层处理 * * @author yangbo * @date 2021-02-01 */ @Service public class MallInveMngServiceImpl implements IMallInveMngService { @Autowired private MallInveMngMapper mallInveMngMapper; /** * 查询库存管理,wms入库回传时,增加库存数 * * @param inveSn 库存管理,wms入库回传时,增加库存数ID * @return 库存管理,wms入库回传时,增加库存数 */ @Override public MallInveMng selectMallInveMngById(String inveSn) { return mallInveMngMapper.selectMallInveMngById(inveSn); } /** * 查询库存管理,wms入库回传时,增加库存数列表 * * @param mallInveMng 库存管理,wms入库回传时,增加库存数 * @return 库存管理,wms入库回传时,增加库存数 */ @Override public List selectMallInveMngList(MallInveMng mallInveMng) { return mallInveMngMapper.selectMallInveMngList(mallInveMng); } /** * 新增库存管理,wms入库回传时,增加库存数 * * @param mallInveMng 库存管理,wms入库回传时,增加库存数 * @return 结果 */ @Override public int insertMallInveMng(MallInveMng mallInveMng) { mallInveMng.setCreateTime(DateUtils.getNowDate()); return mallInveMngMapper.insertMallInveMng(mallInveMng); } /** * 修改库存管理,wms入库回传时,增加库存数 * * @param mallInveMng 库存管理,wms入库回传时,增加库存数 * @return 结果 */ @Override public int updateMallInveMng(MallInveMng mallInveMng) { return mallInveMngMapper.updateMallInveMng(mallInveMng); } /** * 批量删除库存管理,wms入库回传时,增加库存数 * * @param inveSns 需要删除的库存管理,wms入库回传时,增加库存数ID * @return 结果 */ @Override public int deleteMallInveMngByIds(String[] inveSns) { return mallInveMngMapper.deleteMallInveMngByIds(inveSns); } /** * 删除库存管理,wms入库回传时,增加库存数信息 * * @param inveSn 库存管理,wms入库回传时,增加库存数ID * @return 结果 */ @Override public int deleteMallInveMngById(String inveSn) { return mallInveMngMapper.deleteMallInveMngById(inveSn); } @Override @Transactional public int pullKmallInveMng() { Integer page = 0; Integer pageSize = 1000; int resultCode = pullMallInveMng(page, pageSize); while(resultCode != 0){ page = page + pageSize; resultCode = pullMallInveMng(page, pageSize); } return resultCode; } private int pullMallInveMng(Integer page, Integer pageSize) { try { String response = null; Map sPara = new HashMap(); sPara.put("page", page+""); sPara.put("pageSize", pageSize+""); //构造RequestBody RequestBody requestBody = OkHttpUtils.buildRequestBody(sPara); //构建Request String url = KmallConfig.getQueryAllInveMngUrl(); Request request = OkHttpUtils.buildRequest(url,requestBody); // 同步访问,返回结果字符串 response = OkHttpUtils.post(request); List mallInveMngs = JSONArray.parseArray(response, MallInveMng.class); if(mallInveMngs == null || mallInveMngs.size() == 0){ return 0; } for (MallInveMng mallInveMng : mallInveMngs) { Long inveNum = Long.valueOf(mallInveMng.getGoodsNumber() == null ? 0 : mallInveMng.getGoodsNumber()); Long freezeNum = Long.valueOf(mallInveMng.getToBeRestored() == null ? 0 : mallInveMng.getToBeRestored() ); mallInveMng.setInveNum(inveNum); mallInveMng.setFreezeNum(freezeNum); mallInveMng.setValidNum(mallInveMng.getInveNum() - freezeNum); mallInveMng.setCreateTime(new Date()); mallInveMng.setModTime(new Date()); mallInveMng.setInveSn(mallInveMng.getId()+""); mallInveMng.setGoodsName(mallInveMng.getName()); mallInveMngMapper.saveOrUpdate(mallInveMng); } } catch (IOException e) { e.printStackTrace(); return 0; } return 1; } }