|  |  |  | 
|---|
|  |  |  | import com.core.common.R; | 
|---|
|  |  |  | import com.core.common.SnowflakeIdWorker; | 
|---|
|  |  |  | import com.core.exception.CoolException; | 
|---|
|  |  |  | import com.zy.asrs.entity.ManLocDetl; | 
|---|
|  |  |  | import com.zy.asrs.entity.Mat; | 
|---|
|  |  |  | import com.zy.asrs.entity.Node; | 
|---|
|  |  |  | import com.zy.asrs.entity.OrderDetl; | 
|---|
|  |  |  | import com.zy.asrs.entity.*; | 
|---|
|  |  |  | import com.zy.asrs.entity.param.InitPakoutParam; | 
|---|
|  |  |  | import com.zy.asrs.entity.param.MatnrDto; | 
|---|
|  |  |  | import com.zy.asrs.entity.param.PakinParam; | 
|---|
|  |  |  | import com.zy.asrs.entity.result.Pakin; | 
|---|
|  |  |  | import com.zy.asrs.mapper.NodeMapper; | 
|---|
|  |  |  | import com.zy.asrs.service.*; | 
|---|
|  |  |  | import com.zy.asrs.utils.SaasUtils; | 
|---|
|  |  |  | import com.zy.asrs.utils.VersionUtils; | 
|---|
|  |  |  | import com.zy.system.entity.User; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.transaction.annotation.Transactional; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.beans.Transient; | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  | 
|---|
|  |  |  | private OrderDetlService orderDetlService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private OrderService orderService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocRuleService locRuleService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocMastService locMastService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Node getTop() { | 
|---|
|  |  |  | Node top = this.selectOne(new EntityWrapper<Node>().eq("type", 0).eq("level", 0)); | 
|---|
|  |  |  | 
|---|
|  |  |  | manLocDetl.setCreateBy(userId); | 
|---|
|  |  |  | manLocDetl.setStatus(1); | 
|---|
|  |  |  | manLocDetl.setPayment(1); | 
|---|
|  |  |  | SaasUtils.insertLog(0,manLocDetl.getLocNo(),manLocDetl.getMatnr(), manLocDetl.getAnfme(),user.getUsername()); | 
|---|
|  |  |  | SaasUtils.insertLog(0,manLocDetl.getLocNo(),manLocDetl.getMatnr(), manLocDetl.getAnfme(),user.getUsername(), | 
|---|
|  |  |  | null,null,null,null,null,null); | 
|---|
|  |  |  | manLocDetlService.insert(manLocDetl); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | //                check.setAnfme(dto.getCount() + check.getAnfme()); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (manLocDetl.getAnfme() - param.getCount() < 0) { | 
|---|
|  |  |  | return R.error("物料:"+ param.getMatnr() + " 在库位中数量不足"); | 
|---|
|  |  |  | } else if (manLocDetl.getAnfme() - param.getCount() == 0) { | 
|---|
|  |  |  | SaasUtils.insertLog(1,manLocDetl.getLocNo(), manLocDetl.getMatnr(),param.getCount(),user.getUsername()); | 
|---|
|  |  |  | SaasUtils.insertLog(1,manLocDetl.getLocNo(), manLocDetl.getMatnr(),param.getCount(),user.getUsername(), | 
|---|
|  |  |  | null,null,null,null,null,null); | 
|---|
|  |  |  | manLocDetlService.delete(new EntityWrapper<ManLocDetl>() | 
|---|
|  |  |  | .eq("loc_no",node.getUuid()) | 
|---|
|  |  |  | .eq("matnr",param.getMatnr())); | 
|---|
|  |  |  | 
|---|
|  |  |  | manLocDetlService.update(manLocDetl,new EntityWrapper<ManLocDetl>() | 
|---|
|  |  |  | .eq("loc_no",node.getUuid()) | 
|---|
|  |  |  | .eq("matnr",param.getMatnr())); | 
|---|
|  |  |  | SaasUtils.insertLog(1,manLocDetl.getLocNo(), manLocDetl.getMatnr(),param.getCount(),user.getUsername()); | 
|---|
|  |  |  | SaasUtils.insertLog(1,manLocDetl.getLocNo(), manLocDetl.getMatnr(),param.getCount(),user.getUsername(), | 
|---|
|  |  |  | null,null,null,null,null,null); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ManLocDetl check = manLocDetlService.selectOne(new EntityWrapper<ManLocDetl>() | 
|---|
|  |  |  | .eq("loc_no", targetNode.getUuid()) | 
|---|
|  |  |  | .eq("matnr", source.getMatnr())); | 
|---|
|  |  |  | .eq("matnr", source.getMatnr()) | 
|---|
|  |  |  | .eq("batch",source.getBatch())); | 
|---|
|  |  |  | if (check == null) { | 
|---|
|  |  |  | manLocDetlService.delete(new EntityWrapper<ManLocDetl>().eq("loc_no", source.getLocNo()) | 
|---|
|  |  |  | .eq("matnr", source.getMatnr())); | 
|---|
|  |  |  | .eq("matnr", source.getMatnr()).eq("batch",source.getBatch())); | 
|---|
|  |  |  | source.setLocNo(targetNode.getUuid()); | 
|---|
|  |  |  | source.setNodeId(targetNode.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | SaasUtils.insertLog(2,source.getLocNo(), source.getMatnr(), source.getAnfme(),user.getUsername()); | 
|---|
|  |  |  | SaasUtils.insertLog(2,source.getLocNo(), source.getMatnr(), source.getAnfme(),user.getUsername(), | 
|---|
|  |  |  | null,null,null,null,null,null); | 
|---|
|  |  |  | manLocDetlService.insert(source); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | //                check.setAnfme(check.getAnfme() + source.getAnfme()); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<String> getRemmendLoc(String matnr) { | 
|---|
|  |  |  | return this.baseMapper.getRommendLoc(matnr); | 
|---|
|  |  |  | LocRule locRule = locRuleService.selectOne(new EntityWrapper<LocRule>().eq("matnr", matnr)); | 
|---|
|  |  |  | if (locRule == null){ | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<String> list = this.baseMapper.getRommendLoc(locRule.getRowBeg(),locRule.getRowEnd(),locRule.getBayBeg(),locRule.getBayEnd(),locRule.getLevBeg(),locRule.getLevEnd()); | 
|---|
|  |  |  | //删除推荐库位中被冻结的库位 | 
|---|
|  |  |  | list.stream().findFirst().map(e ->{ | 
|---|
|  |  |  | LocMast locMast = locMastService.selectLocStatus(e); | 
|---|
|  |  |  | if (locMast.getLocSts().equals("X")){ | 
|---|
|  |  |  | list.remove(e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return e; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | return list; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public int updateStockFreeze(String name, Integer status) { | 
|---|
|  |  |  | return this.baseMapper.updateStockFreeze(name, status); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|