| | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.plugins.Page; |
| | | import com.baomidou.mybatisplus.service.impl.ServiceImpl; |
| | | import com.core.common.Cools; |
| | | import com.zy.asrs.entity.LocNormal; |
| | | import com.zy.asrs.mapper.LocNormalMapper; |
| | | import com.zy.asrs.mapper.OutStockMapper; |
| | | import com.zy.asrs.service.LocNormalService; |
| | | import com.zy.common.service.erp.ErpSqlServer; |
| | | import com.zy.common.service.erp.entity.CPICMO; |
| | | import com.zy.common.service.erp.entity.OutStockBillEntry; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.text.MessageFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | @Slf4j |
| | | @Service("locNormalService") |
| | | public class LocNormalServiceImpl extends ServiceImpl<LocNormalMapper, LocNormal> implements LocNormalService { |
| | | @Autowired |
| | | ErpSqlServer erpSqlServer; |
| | | @Autowired |
| | | OutStockMapper outStockMapper; |
| | | |
| | | @Override |
| | | public List<LocNormal> getLocNormalData() { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void updateLocNormal(String matnr, BigDecimal anfme, Long modiUser, Date modiTime) { |
| | | baseMapper.updateLocNormal(matnr, anfme, modiUser, modiTime); |
| | | public void updateLocNormal(String matnr, BigDecimal anfme, Long modiUser, Date modiTime, Integer id) { |
| | | baseMapper.updateLocNormal(matnr, anfme, modiUser, modiTime, id); |
| | | } |
| | | |
| | | @Override |
| | | public void outLocNormal(String matnr, Long modiUser, Date modiTime) { |
| | | baseMapper.outLocNormal(matnr, modiUser, modiTime); |
| | | public void outLocNormal(String matnr, Long modiUser, Date modiTime, Integer id) { |
| | | baseMapper.outLocNormal(matnr, modiUser, modiTime, id); |
| | | } |
| | | |
| | | @Override |
| | | public void removeLocNormal(String matnr, Long modiUser, Date modiTime) { |
| | | baseMapper.removeLocNormal(matnr, modiUser, modiTime); |
| | | public void removeLocNormal(String matnr, Long modiUser, Date modiTime, Integer id) { |
| | | baseMapper.removeLocNormal(matnr, modiUser, modiTime, id); |
| | | } |
| | | |
| | | @Override |
| | | public void locNormalIn(List<LocNormal> list) { |
| | | // 平仓入库后更新中间表数据,Fflag_finish改为1,表示平仓入库成功 |
| | | if (list.size() > 0) { |
| | | for (Integer i = 0; i < list.size(); i++) { |
| | | if (!Cools.isEmpty(list.get(i).getSupplier())) { // 存在入库单号的才进行erp更新 |
| | | String sql = "update CPICMO set FAuxCommitQty = (FAuxCommitQty + {0,number,#}) where 1=1 and Fnumber = ''{1}'' and FBillNo = ''{2}''"; |
| | | sql = MessageFormat.format(sql, list.get(i).getAnfme(), list.get(i).getMatnr(), list.get(i).getSupplier()); |
| | | if (erpSqlServer.update(sql) > 0) { |
| | | sql = "select * from CPICMO where 1=1 and Fnumber = ''{0}'' and FBillNo = ''{1}''"; |
| | | sql = MessageFormat.format(sql, list.get(i).getMatnr(), list.get(i).getSupplier()); |
| | | List<CPICMO> select = erpSqlServer.select(sql, CPICMO.class); |
| | | CPICMO cpicmo = select.get(0); |
| | | boolean complete = false; |
| | | if (cpicmo.getFQty() > 0) { |
| | | if (cpicmo.getFAuxCommitQty() >= cpicmo.getFQty()) { |
| | | complete = true; |
| | | } |
| | | } else { |
| | | if (cpicmo.getFAuxCommitQty() >= cpicmo.getFAuxQty()) { |
| | | complete = true; |
| | | } |
| | | } |
| | | if (complete) { |
| | | if (!completeCPakIn(list.get(i).getSupplier(), list.get(i).getMatnr())) { |
| | | log.error("{}平仓入库单标记完成失败", list.get(i).getSupplier()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | // 平仓入库逻辑 |
| | | baseMapper.locNormalIn(list); |
| | | } |
| | | |
| | | /** |
| | | * 成品入库单标记完成 |
| | | */ |
| | | private boolean completeCPakIn(String FBillNo, String Fnumber){ |
| | | String sql = "update CPICMO set Fflag_finish = 1 where FBillNo = ''{0}'' and Fnumber = ''{1}''"; |
| | | sql = MessageFormat.format(sql, FBillNo, Fnumber); |
| | | return erpSqlServer.update(sql) > 0; |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<LocNormal> pdaLocNormalQuery(String matnr, String warehouse) { |
| | | return baseMapper.pdaLocNormalQuery(matnr, warehouse); |
| | | public List<LocNormal> pdaLocNormalQuery(String matnr, String warehouse, String billNo) { |
| | | return baseMapper.pdaLocNormalQuery(matnr, warehouse, billNo); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public List<LocNormal> pdaLocNormalWarehouseQuery(String warehouse, String matnr) { |
| | | return baseMapper.pdaLocNormalWarehouseQuery(warehouse, matnr); |
| | | } |
| | | |
| | | @Override |
| | | public void pdaLocNormalMove(List<LocNormal> list) { |
| | | baseMapper.pdaLocNormalMove(list); |
| | | } |
| | | |
| | | @Override |
| | | public List<LocNormal> queryLocNorlMatnr(String fbillNo) { |
| | | List<OutStockBillEntry> matList = outStockMapper.queryMatnrWithBillNo(fbillNo); |
| | | List<LocNormal> locNormal = new ArrayList<>(); |
| | | List<LocNormal> locNormalResult = new ArrayList<>(); |
| | | for (Integer i = 0; i < matList.size(); i++) { |
| | | locNormal = baseMapper.queryLocNorlMatnr(matList.get(i).getFnumber()) ; |
| | | if (locNormal.size() > 0) { |
| | | for (LocNormal e:locNormal) { |
| | | LocNormal obj = new LocNormal(); |
| | | obj.setMatnr(e.getMatnr()); |
| | | obj.setMaktx(e.getMaktx()); |
| | | obj.setLgnum(e.getLgnum()); |
| | | obj.setType(e.getType()); |
| | | obj.setMnemonic(e.getMnemonic()); |
| | | obj.setSupplier(e.getSupplier()); |
| | | obj.setWarehouse(e.getWarehouse()); |
| | | obj.setBrand(e.getBrand()); |
| | | obj.setAnfme(e.getAnfme()); |
| | | obj.setBname(e.getBname()); |
| | | obj.setMemo(e.getMemo()); |
| | | obj.setModiUser(e.getModiUser()); |
| | | obj.setModiTime(e.getModiTime()); |
| | | obj.setAppeUser(e.getAppeUser()); |
| | | obj.setAppeTime(e.getAppeTime()); |
| | | obj.setState(e.getState()); |
| | | obj.setWarehouseName(e.getWarehouseName()); |
| | | obj.setId(e.getId()); |
| | | locNormalResult.add(obj); |
| | | } |
| | | } |
| | | } |
| | | return locNormalResult; |
| | | } |
| | | } |