| | |
| | | package com.zy.ints.task.scheduler; |
| | | |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.zy.asrs.entity.LocDetl; |
| | | import com.zy.asrs.service.ApiLogService; |
| | | import com.zy.ints.entity.ErpDetTb; |
| | | import com.zy.asrs.service.LocDetlService; |
| | | import com.zy.common.web.BaseController; |
| | | import com.zy.ints.entity.ErpLk; |
| | | import com.zy.ints.entity.ErpLkBak; |
| | | import com.zy.ints.erp.ErpSqlServer; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Slf4j |
| | | @Component |
| | | public class ErpLkScheduler { |
| | | public class ErpLkScheduler extends BaseController { |
| | | /** |
| | | * ERP接口是否启用 |
| | | */ |
| | |
| | | private ApiLogService apiLogService; |
| | | @Autowired |
| | | private ErpSqlServer erpSqlServer; |
| | | @Autowired |
| | | private LocDetlService locDetlService; |
| | | |
| | | /** |
| | | * ERP与lk库存数据比对 |
| | | */ |
| | |
| | | |
| | | try { |
| | | List<ErpLk> erpLks = erpSqlServer.select(sqlSelectErpLk, ErpLk.class); |
| | | if (erpLks.size() > 0){ |
| | | for (ErpLk erpLk:erpLks){ |
| | | if (erpLks.size() > 0) { |
| | | for (ErpLk erpLk : erpLks) { |
| | | Integer status = erpLk.getStatus(); |
| | | if (status == 0){ |
| | | if (status == 0) { |
| | | HashMap<String, Object> param = new HashMap<>(); |
| | | param.put("curr", 1); |
| | | param.put("limit", 20); |
| | | param.put("matnr", erpLk.getPrdNo()); |
| | | param.put("batch", erpLk.getPrdMark()); |
| | | Page<LocDetl> stockStatis = locDetlService.getStockStatis(toPage(1, 10, param, LocDetl.class)); |
| | | if (stockStatis.getSize() == 1) { |
| | | for (LocDetl locDetl : stockStatis.getRecords()) { |
| | | if (locDetl.getAnfme() - erpLk.getQty() == 0) { |
| | | erpSqlServer.update(sqlUpDateErpLkOne + "'" + erpLk.getPrdNo() + "' and prd_mark='" + erpLk.getPrdMark() + "'"); |
| | | callApiLogSave(erpLk, "bas_erp_lk", "库存对比数量相同!!!总量为:" + erpLk.getQty(), true); |
| | | } else { |
| | | erpSqlServer.update(sqlUpDateErpLkTwo + "'" + erpLk.getPrdNo() + "' and prd_mark='" + erpLk.getPrdMark() + "'"); |
| | | callApiLogSave(erpLk, "bas_erp_lk", "库存对比数量不同!!!立库总量为:" + locDetl.getAnfme() + "、ERP总量为:" + erpLk.getQty(), false); |
| | | } |
| | | } |
| | | } else { |
| | | callApiLogSave(erpLk, "bas_erp_lk", "立库库存异常!!!相同品号、货品特征的货物重复!!!", false); |
| | | } |
| | | } else if (status == 1) { |
| | | HashMap<String, Object> condition = new HashMap<>(); |
| | | condition.put("prd_no", "'" + erpLk.getPrdNo() + "'"); |
| | | condition.put("prd_mark", "'" + erpLk.getPrdMark() + "'"); |
| | | condition.put("qty", "'" + erpLk.getQty() + "'"); |
| | | condition.put("wh", "'" + erpLk.getWh() + "'"); |
| | | condition.put("status", "'" + erpLk.getStatus() + "'"); |
| | | condition.put("temp1", "'" + erpLk.getTemp1() + "'"); |
| | | condition.put("temp2", "'" + erpLk.getTemp2() + "'"); |
| | | condition.put("temp3", "'" + erpLk.getTemp3() + "'"); |
| | | erpSqlServer.insert(ErpLkBak.class, condition); |
| | | |
| | | }else if (status == 1){ |
| | | callApiLogSave(erpLk, "bas_erp_lk", "库存对比记录备份成功!!!总量为:" + erpLk.getQty(), true); |
| | | |
| | | }else if (status == 2){ |
| | | HashMap<String, String> condition2 = new HashMap<>(); |
| | | condition2.put("prd_no", "'" + erpLk.getPrdNo() + "'"); |
| | | condition2.put("prd_mark", "'" + erpLk.getPrdNo() + "'"); |
| | | erpSqlServer.delete(ErpLk.class, condition2); |
| | | |
| | | callApiLogSave(erpLk, "bas_erp_lk", "库存对比记录备份后删除成功!!!总量为:" + erpLk.getQty(), true); |
| | | |
| | | }else { |
| | | |
| | | callApiLogSave(erpLk, "bas_erp_lk", "库存对比存在异常数据未处理!!!", false); |
| | | } |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | } catch (Exception e) { |
| | | Date date = new Date(); |
| | | log.error(date + ": 表名:bas_erp_lk :" + e); |
| | | } |
| | | } |
| | | |
| | | public void callApiLogSave(ErpLk erpLk, String tableName, String response, Boolean bool) { |
| | | apiLogService.save("ERP与lk库存数据比对", tableName, "null", ip, |
| | | apiLogService.save("ERP与lk库存数据比对", tableName, "null", ip, |
| | | "品号:" + erpLk.getPrdNo() + "、货品特征:" + erpLk.getPrdMark() + "、数量:" + erpLk.getQty() + "、状态:" + erpLk.getStatus(), |
| | | response, bool); |
| | | } |