|
@@ -1,5 +1,7 @@
|
|
|
package com.dgtly.system.service.impl;
|
|
package com.dgtly.system.service.impl;
|
|
|
|
|
|
|
|
|
|
+import java.text.ParseException;
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
@@ -53,6 +55,12 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
|
|
|
private AssRelcustomerinfoMapper relcustomerinfoMapper;
|
|
private AssRelcustomerinfoMapper relcustomerinfoMapper;
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private MailUtils mailUtils;
|
|
private MailUtils mailUtils;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private MetaHanaDeliverOrderMapper metaHanaDeliverOrderMapper;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private DeliverQuantityConfirmMapper deliverQuantityConfirmMapper;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private SysBatchSignForMapper sysBatchSignForMapper;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private CustomerMapper customersMapper;
|
|
private CustomerMapper customersMapper;
|
|
@@ -470,6 +478,150 @@ public class SysUserOrderAuthorServiceImpl implements ISysUserOrderAuthorService
|
|
|
});*/
|
|
});*/
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 无tms工厂的交货单更新状态和订单
|
|
|
|
|
+ */
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void tmsPlantByOrder() {
|
|
|
|
|
+ List<TmsLogisticsStatus> tmslist = new ArrayList<TmsLogisticsStatus>();
|
|
|
|
|
+ List<DeliverQuantityConfirm> deliverlist = new ArrayList<DeliverQuantityConfirm>();
|
|
|
|
|
+ List<TmsLogisticsStatus> tmsStatusLog=sysBatchSignForMapper.selectByDelivery();
|
|
|
|
|
+ List<TmsLogisticsStatus> tmsStatus5list = new ArrayList<TmsLogisticsStatus>();
|
|
|
|
|
+ Map<Object,List<TmsLogisticsStatus>> keytmsMap=new HashMap<>();
|
|
|
|
|
+ if(tmsStatusLog !=null && tmsStatusLog.size()>0){
|
|
|
|
|
+ keytmsMap=tmsStatusLog.stream().collect(Collectors.groupingBy(TmsLogisticsStatus::getDeliveryNumber));
|
|
|
|
|
+ }
|
|
|
|
|
+ DeliverQuantityConfirm numbernull=new DeliverQuantityConfirm();
|
|
|
|
|
+ List<DeliverQuantityConfirm> deliverNumber=deliverQuantityConfirmMapper.selectDeliverQuantityConfirmList(numbernull);
|
|
|
|
|
+ List<String> deliverNumbers=new ArrayList<>();
|
|
|
|
|
+ if(deliverNumber !=null && deliverNumber.size()>0){
|
|
|
|
|
+ deliverNumbers = deliverNumber.stream().map(DeliverQuantityConfirm::getCode).collect(Collectors.toList());
|
|
|
|
|
+ }
|
|
|
|
|
+ List<MetaHanaDeliverOrder> deliverOrderList=metaHanaDeliverOrderMapper.selectMetaDeliverOrderList();
|
|
|
|
|
+ if(deliverOrderList !=null && deliverOrderList.size()>0){
|
|
|
|
|
+ for (MetaHanaDeliverOrder deliver:deliverOrderList
|
|
|
|
|
+ ) {
|
|
|
|
|
+ if(("未复核").equals(deliver.getReviewStatus())){
|
|
|
|
|
+ List<String> tms = tmslist.stream().map(TmsLogisticsStatus::getDeliveryNumber).collect(Collectors.toList());
|
|
|
|
|
+ if((keytmsMap ==null && !tms.contains(deliver.getDeliverNumber())) || (!keytmsMap.containsKey(deliver.getDeliverNumber()) && !tms.contains(deliver.getDeliverNumber())) ){
|
|
|
|
|
+ TmsLogisticsStatus tmsLogisticsStatus=new TmsLogisticsStatus();
|
|
|
|
|
+ tmsLogisticsStatus.setCreateBy("HBS");
|
|
|
|
|
+ tmsLogisticsStatus.setCreateTime(new Date());
|
|
|
|
|
+ tmsLogisticsStatus.setUpdateBy("HBS");
|
|
|
|
|
+ tmsLogisticsStatus.setUpdateTime(new Date());
|
|
|
|
|
+ tmsLogisticsStatus.setIsDelete("0");
|
|
|
|
|
+ tmsLogisticsStatus.setOrderCreationTime("");
|
|
|
|
|
+ tmsLogisticsStatus.setDeliveryNumber(deliver.getDeliverNumber());
|
|
|
|
|
+ if(("").equals(deliver.getShipmentNumber()) || deliver.getShipmentNumber()==null || ("null").equals(deliver.getShipmentNumber()) ){
|
|
|
|
|
+ tmsLogisticsStatus.setTmsShipmentNumber(deliver.getDeliverNumber());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ tmsLogisticsStatus.setTmsShipmentNumber(deliver.getShipmentNumber());
|
|
|
|
|
+ }
|
|
|
|
|
+ tmsLogisticsStatus.setStatus("1");
|
|
|
|
|
+ tmsLogisticsStatus.setDriverName("HBS");
|
|
|
|
|
+ tmsLogisticsStatus.setCarNumber("好邦手");
|
|
|
|
|
+ tmsLogisticsStatus.setDriverPhone("13888888888");
|
|
|
|
|
+ tmsLogisticsStatus.setCustomerCode(deliver.getCustomerCode());
|
|
|
|
|
+ tmsLogisticsStatus.setOrderNumber(deliver.getDocNumber());
|
|
|
|
|
+ tmsLogisticsStatus.setAssignTime(new Date());
|
|
|
|
|
+ tmsLogisticsStatus.setTransferOrder("n");
|
|
|
|
|
+ tmslist.add(tmsLogisticsStatus);
|
|
|
|
|
+ }
|
|
|
|
|
+ }else if(("已复核").equals(deliver.getReviewStatus())){
|
|
|
|
|
+ List<String> tms = tmslist.stream().map(TmsLogisticsStatus::getDeliveryNumber).collect(Collectors.toList());
|
|
|
|
|
+ if((keytmsMap ==null && !tms.contains(deliver.getDeliverNumber())) || (!keytmsMap.containsKey(deliver.getDeliverNumber()) && !tms.contains(deliver.getDeliverNumber()))){
|
|
|
|
|
+ TmsLogisticsStatus tmsLogisticsStatus=new TmsLogisticsStatus();
|
|
|
|
|
+ tmsLogisticsStatus.setCreateBy("HBS");
|
|
|
|
|
+ tmsLogisticsStatus.setCreateTime(new Date());
|
|
|
|
|
+ tmsLogisticsStatus.setUpdateBy("HBS");
|
|
|
|
|
+ tmsLogisticsStatus.setUpdateTime(new Date());
|
|
|
|
|
+ tmsLogisticsStatus.setIsDelete("0");
|
|
|
|
|
+ tmsLogisticsStatus.setOrderCreationTime("");
|
|
|
|
|
+ tmsLogisticsStatus.setDeliveryNumber(deliver.getDeliverNumber());
|
|
|
|
|
+ if(("").equals(deliver.getShipmentNumber()) || deliver.getShipmentNumber()==null || ("null").equals(deliver.getShipmentNumber()) ){
|
|
|
|
|
+ tmsLogisticsStatus.setTmsShipmentNumber(deliver.getDeliverNumber());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ tmsLogisticsStatus.setTmsShipmentNumber(deliver.getShipmentNumber());
|
|
|
|
|
+ }
|
|
|
|
|
+ tmsLogisticsStatus.setStatus("5");
|
|
|
|
|
+ tmsLogisticsStatus.setDriverName("HBS");
|
|
|
|
|
+ tmsLogisticsStatus.setCarNumber("好邦手");
|
|
|
|
|
+ tmsLogisticsStatus.setDriverPhone("13888888888");
|
|
|
|
|
+ tmsLogisticsStatus.setCustomerCode(deliver.getCustomerCode());
|
|
|
|
|
+ tmsLogisticsStatus.setOrderNumber(deliver.getDocNumber());
|
|
|
|
|
+ tmsLogisticsStatus.setAssignTime(new Date());
|
|
|
|
|
+ tmsLogisticsStatus.setTransferOrder("n");
|
|
|
|
|
+ String time=deliver.getPostingDate();
|
|
|
|
|
+ Date date = new Date();
|
|
|
|
|
+ try {
|
|
|
|
|
+ date = new SimpleDateFormat("yyyyMMdd").parse(time);
|
|
|
|
|
+ } catch (ParseException e) {
|
|
|
|
|
+ //LOGGER.error("时间转换错误, string = {}", s, e);
|
|
|
|
|
+ }
|
|
|
|
|
+ tmsLogisticsStatus.setArrivalGoodsTime(date);
|
|
|
|
|
+ tmslist.add(tmsLogisticsStatus);
|
|
|
|
|
+ } else if(keytmsMap !=null && keytmsMap.containsKey(deliver.getDeliverNumber())){
|
|
|
|
|
+ List<TmsLogisticsStatus> tmsStatusList= keytmsMap.get(deliver.getDeliverNumber());
|
|
|
|
|
+ if(tmsStatusList !=null && tmsStatusList.size()>0){
|
|
|
|
|
+ Optional<TmsLogisticsStatus> tmsStatus = tmsStatusList.stream().filter(org -> Objects.equals(org.getDeliveryNumber(), deliver.getDeliverNumber())).findFirst();
|
|
|
|
|
+ if(!tmsStatus.get().getStatus().equals("5")){
|
|
|
|
|
+ tmsStatus.get().setStatus("5");
|
|
|
|
|
+ String time=deliver.getPostingDate();
|
|
|
|
|
+ Date date = new Date();
|
|
|
|
|
+ try {
|
|
|
|
|
+ date = new SimpleDateFormat("yyyyMMdd").parse(time);
|
|
|
|
|
+ } catch (ParseException e) {
|
|
|
|
|
+ //LOGGER.error("时间转换错误, string = {}", s, e);
|
|
|
|
|
+ }
|
|
|
|
|
+ tmsStatus.get().setArrivalGoodsTime(date);
|
|
|
|
|
+ tmsStatus.get().setUpdateTime(new Date());
|
|
|
|
|
+ tmsStatus5list.add(tmsStatus.get());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ List<String> newdeliver = deliverlist.stream().map(DeliverQuantityConfirm::getCode).collect(Collectors.toList());
|
|
|
|
|
+ if(( deliverNumbers.size()==0 && ! newdeliver.contains(deliver.getCode())) || ( !deliverNumbers.contains(deliver.getCode()) && ! newdeliver.contains(deliver.getCode()) )){
|
|
|
|
|
+ DeliverQuantityConfirm number=new DeliverQuantityConfirm();
|
|
|
|
|
+ number.setCreateBy("HBS");
|
|
|
|
|
+ number.setCreateTime(new Date());
|
|
|
|
|
+ number.setUpdateBy("HBS");
|
|
|
|
|
+ number.setUpdateTime(new Date());
|
|
|
|
|
+ number.setIsDelete("0");
|
|
|
|
|
+ number.setOrderNumber(deliver.getDocNumber());
|
|
|
|
|
+ number.setOrderItem(deliver.getDocItem());
|
|
|
|
|
+ number.setOrderCreationTime(deliver.getCreateDateDoc());
|
|
|
|
|
+ number.setBelongTo(deliver.getCustomerCode());
|
|
|
|
|
+ number.setCode(deliver.getDeliverNumber()+deliver.getDeliverItem());
|
|
|
|
|
+ if(("").equals(deliver.getShipmentNumber()) || deliver.getShipmentNumber()==null || ("null").equals(deliver.getShipmentNumber()) ){
|
|
|
|
|
+ number.setShipmentNumber(deliver.getDeliverNumber());
|
|
|
|
|
+ }else{
|
|
|
|
|
+ number.setShipmentNumber(deliver.getShipmentNumber());
|
|
|
|
|
+ }
|
|
|
|
|
+ number.setDeliverItem(deliver.getDeliverItem());
|
|
|
|
|
+ number.setShipToAddress(deliver.getShipToAddress());
|
|
|
|
|
+ number.setMaterialCode(deliver.getMaterialCode());
|
|
|
|
|
+ number.setMaterialName(deliver.getMaterialName());
|
|
|
|
|
+ number.setSizeDim(deliver.getSizeDim());
|
|
|
|
|
+ number.setDeliverQty(deliver.getDeliverQty());
|
|
|
|
|
+ number.setDeliverWt(deliver.getDeliverWt());
|
|
|
|
|
+ number.setConfirmQuantity(deliver.getDeliverQty());
|
|
|
|
|
+ deliverlist.add(number);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if(tmslist !=null && tmslist.size()>0){
|
|
|
|
|
+ sysBatchSignForMapper.saveTmsLogisticsStatus(tmslist);
|
|
|
|
|
+ }
|
|
|
|
|
+ if(tmsStatus5list !=null && tmsStatus5list.size()>0) {
|
|
|
|
|
+ sysBatchSignForMapper.updateBatchTmsStatus(tmsStatus5list);
|
|
|
|
|
+ }
|
|
|
|
|
+ if(deliverlist !=null && deliverlist.size()>0){
|
|
|
|
|
+ deliverQuantityConfirmMapper.saveDeliverNumber(deliverlist);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
public Set<String> getConfigValueSet(String dictType){
|
|
public Set<String> getConfigValueSet(String dictType){
|
|
|
Set<String> res = new HashSet<>();
|
|
Set<String> res = new HashSet<>();
|
|
|
List<SysDictData> dictDatas = sysDictDataService.selectSimpleDictDataByType(dictType);
|
|
List<SysDictData> dictDatas = sysDictDataService.selectSimpleDictDataByType(dictType);
|