|  |  | 
 |  |  | import com.zy.asrs.utils.MatUtils; | 
 |  |  | import com.zy.common.model.DetlDto; | 
 |  |  | import com.zy.common.utils.NodeUtils; | 
 |  |  | import com.zy.erp.kingdee.enums.KingDeeUtilType; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.stereotype.Service; | 
 |  |  | 
 |  |  |         for (DetlDto detail : orderDetails) { | 
 |  |  |             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getOwnerName(),detail.getPayment()); | 
 |  |  |             dto.setBeBatch(detail.getBeBatch()); | 
 |  |  |             if (DetlDto.has(list, dto)) { | 
 |  |  |                 DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); | 
 |  |  |                 assert detlDto != null; | 
 |  |  |                 detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); | 
 |  |  |             } else { | 
 |  |  |                 list.add(dto); | 
 |  |  |             KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName()); | 
 |  |  |             if (kingDeeUtilType.entryId==1){ | 
 |  |  |                 if (DetlDto.has2(list, dto)) { | 
 |  |  |                     DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName(),detail.getBeBatch()); | 
 |  |  |                     assert detlDto != null; | 
 |  |  |                     detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); | 
 |  |  |                 } else { | 
 |  |  |                     list.add(dto); | 
 |  |  |                 } | 
 |  |  |                 dto.setWeight(detail.getWeight()); | 
 |  |  |             }else { | 
 |  |  |                 if (DetlDto.has1(list, dto)) { | 
 |  |  |                     DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName()); | 
 |  |  |                     assert detlDto != null; | 
 |  |  |                     detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); | 
 |  |  |                 } else { | 
 |  |  |                     list.add(dto); | 
 |  |  |                 } | 
 |  |  |                 dto.setWeight(detail.getWeight()); | 
 |  |  |             } | 
 |  |  |             dto.setWeight(detail.getWeight()); | 
 |  |  |         } | 
 |  |  |         for (DetlDto detlDto : list) { | 
 |  |  |             Mat mat = matService.selectByMatnr(detlDto.getMatnr()); | 
 |  |  | 
 |  |  |             if (Cools.isEmpty(locOwner)){ | 
 |  |  |                 throw new CoolException("生成单据明细失败,请联系管理员"); | 
 |  |  |             }else { | 
 |  |  |                 orderDetl.setOwner(locOwner.getId().intValue()); | 
 |  |  |                 orderDetl.setOwner(locOwner.getId()); | 
 |  |  |             } | 
 |  |  |             orderDetl.setPayment(detlDto.getPayment()); | 
 |  |  |             orderDetl.setStatus(1); | 
 |  |  | 
 |  |  |     @Transactional | 
 |  |  |     public void pakoutOrderCreate(OpenOrderPakoutParam param) { | 
 |  |  |         Order order = orderService.selectByNo(param.getOrderNo()); | 
 |  |  |  | 
 |  |  |         for (DetlDto detlDto : param.getOrderDetails()){ | 
 |  |  |             if (Cools.isEmpty(detlDto) || Cools.isEmpty(detlDto.getOwnerName(),detlDto.getPayment())){ | 
 |  |  |                 throw new CoolException(param.getOrderNo() + "缺少货主或货物形态"); | 
 |  |  |             }else { | 
 |  |  |                 LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", detlDto.getOwnerName())); | 
 |  |  |                 if (Cools.isEmpty(locOwner)){ | 
 |  |  |                     LocOwner locOwner1 = new LocOwner(); | 
 |  |  |                     locOwner1.setOwner(detlDto.getOwnerName()); | 
 |  |  |                     locOwnerService.insert(locOwner1); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         // 如果单据不存在则添加;如果单据存在,作业中无法修改,反之则修改单据 | 
 |  |  |         if (!Cools.isEmpty(order)) { | 
 |  |  |             if (order.getSettle() > 1L) { | 
 |  |  | 
 |  |  |         List<DetlDto> list = new ArrayList<>(); | 
 |  |  |         List<DetlDto> orderDetails = param.getOrderDetails(); | 
 |  |  |         for (DetlDto detail : orderDetails) { | 
 |  |  |             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme()); | 
 |  |  |             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getOwnerName(),detail.getPayment()); | 
 |  |  |             dto.setBeBatch(detail.getBeBatch()); | 
 |  |  |             if (DetlDto.has(list, dto)) { | 
 |  |  |                 DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); | 
 |  |  |                 assert detlDto != null; | 
 |  |  |                 detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); | 
 |  |  |             } else { | 
 |  |  |                 list.add(dto); | 
 |  |  |             KingDeeUtilType kingDeeUtilType = KingDeeUtilType.get(docType.getDocName()); | 
 |  |  |             if (kingDeeUtilType.entryId==1){ | 
 |  |  |                 if (DetlDto.has2(list, dto)) { | 
 |  |  |                     DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName(),detail.getBeBatch()); | 
 |  |  |                     assert detlDto != null; | 
 |  |  |                     detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); | 
 |  |  |                 } else { | 
 |  |  |                     list.add(dto); | 
 |  |  |                 } | 
 |  |  |                 dto.setWeight(detail.getWeight()); | 
 |  |  |             }else { | 
 |  |  |                 if (DetlDto.has1(list, dto)) { | 
 |  |  |                     DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),detail.getOwnerName()); | 
 |  |  |                     assert detlDto != null; | 
 |  |  |                     detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); | 
 |  |  |                 } else { | 
 |  |  |                     list.add(dto); | 
 |  |  |                 } | 
 |  |  |                 dto.setWeight(detail.getWeight()); | 
 |  |  |             } | 
 |  |  |             dto.setWeight(detail.getWeight()); | 
 |  |  |         } | 
 |  |  |         for (DetlDto detlDto : list) { | 
 |  |  |             Mat mat = matService.selectByMatnr(detlDto.getMatnr()); | 
 |  |  | 
 |  |  |             orderDetl.setUpdateTime(now); | 
 |  |  |             orderDetl.setStatus(1); | 
 |  |  |             orderDetl.setQty(0.0D); | 
 |  |  |             orderDetl.setOwner(detlDto.getOwner()); | 
 |  |  |             orderDetl.setBeBatch(detlDto.getBeBatch()); | 
 |  |  |             orderDetl.setWeight(detlDto.getWeight()); | 
 |  |  |             LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", detlDto.getOwnerName())); | 
 |  |  |             if (Cools.isEmpty(locOwner)){ | 
 |  |  |                 throw new CoolException("生成单据明细失败,请联系管理员"); | 
 |  |  |             }else { | 
 |  |  |                 orderDetl.setOwner(locOwner.getId()); | 
 |  |  |             } | 
 |  |  |             if (!orderDetlService.insert(orderDetl)) { | 
 |  |  |                 throw new CoolException("生成单据明细失败,请联系管理员"); | 
 |  |  |             } | 
 |  |  | 
 |  |  |         for (DetlDto detail : orderDetails) { | 
 |  |  |             DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getOwnerName(),detail.getPayment()); | 
 |  |  |             dto.setBeBatch(detail.getBeBatch()); | 
 |  |  |             if (DetlDto.has(list, dto)) { | 
 |  |  |                 DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch()); | 
 |  |  |             dto.setSourceLocName(detail.getSourceLocName()); | 
 |  |  |             dto.setTargetLocName(detail.getTargetLocName()); | 
 |  |  |             if (DetlDto.has3(list, dto)) { | 
 |  |  |                 DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch(),dto.getOwnerName(),dto.getSourceLocName(),dto.getTargetLocName()); | 
 |  |  |                 assert detlDto != null; | 
 |  |  |                 detlDto.setAnfme(detlDto.getAnfme() + detail.getAnfme()); | 
 |  |  |             } else { | 
 |  |  | 
 |  |  |             orderDetl.setQty(0.0D); | 
 |  |  |             orderDetl.setBeBatch(detlDto.getBeBatch()); | 
 |  |  |             orderDetl.setWeight(detlDto.getWeight()); | 
 |  |  |             orderDetl.setSourceLocName(detlDto.getSourceLocName()); | 
 |  |  |             orderDetl.setTargetLocName(detlDto.getTargetLocName()); | 
 |  |  |             if (!orderDetlService.insert(orderDetl)) { | 
 |  |  |                 throw new CoolException("生成单据明细失败,请联系管理员"); | 
 |  |  |             } |