|
@@ -1,16 +1,22 @@
|
|
|
package com.rongwei.bscommon.sys.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.rongwei.bscommon.sys.dao.ApsProductDetailDao;
|
|
|
import com.rongwei.bscommon.sys.service.ApsProductDetailService;
|
|
|
+import com.rongwei.bscommon.sys.service.ApsProductionOrderService;
|
|
|
import com.rongwei.bscommon.sys.service.SlaveSourceService;
|
|
|
-import com.rongwei.bsentity.domain.ApsProductDetailDo;
|
|
|
-import com.rongwei.bsentity.domain.VNcOrderVo;
|
|
|
+import com.rongwei.bsentity.domain.*;
|
|
|
import com.rongwei.rwcommon.base.R;
|
|
|
+import com.rongwei.rwcommon.utils.SecurityUtil;
|
|
|
+import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -26,21 +32,150 @@ public class ApsProductDetailServiceImpl extends ServiceImpl<ApsProductDetailDao
|
|
|
@Autowired
|
|
|
private SlaveSourceService slaveSourceService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ApsProductionOrderService apsProductionOrderService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ApsProductDetailService apsProductDetailService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ApsProductDetailDao apsProductDetailDao;
|
|
|
+
|
|
|
/*
|
|
|
获取客户订单
|
|
|
*/
|
|
|
@Override
|
|
|
public R getCustomOrderData(Map<String, Object> params) {
|
|
|
R r = new R();
|
|
|
- String ncOrderNo = params.get("CUSTOMORDERNO").toString();
|
|
|
- VNcOrderVo vNcOrderVo = slaveSourceService.getVNcOrderVo(ncOrderNo);
|
|
|
- if (vNcOrderVo == null) {
|
|
|
+ List<String> orderNos = new ArrayList<>();
|
|
|
+ orderNos.add(params.get("CUSTOMORDERNO").toString());
|
|
|
+ List<VNcOrderVo> vNcOrderVos = slaveSourceService.getVNcOrderVo(orderNos);
|
|
|
+ if (vNcOrderVos.size() == 0) {
|
|
|
return R.error("客户订单系统没有找到该订单");
|
|
|
} else {
|
|
|
- vNcOrderVo.setVNcOrderDetailVoList(slaveSourceService.getVNcOrderDetailVo(ncOrderNo));
|
|
|
+ VNcOrderVo vNcOrderVo = vNcOrderVos.get(0);
|
|
|
+ List<ApsCustomerManagementDo> customDatas = apsProductDetailDao.getCustomerData();
|
|
|
+ ApsCustomerManagementDo apsCustomerManagementDo = customDatas.stream().filter(cus -> cus.getCustomername().equals(vNcOrderVo.getCustomname())).findAny().orElse(null);
|
|
|
+ if (apsCustomerManagementDo != null) {
|
|
|
+ vNcOrderVo.setCustomid(apsCustomerManagementDo.getId());
|
|
|
+ vNcOrderVo.setDeliverytime(apsCustomerManagementDo.getDeliverytime());
|
|
|
+ }
|
|
|
+ vNcOrderVo.setVNcOrderDetailVoList(slaveSourceService.getVNcOrderDetailVo(orderNos));
|
|
|
r.setCode("200");
|
|
|
r.setData(vNcOrderVo);
|
|
|
return r;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /*
|
|
|
+ 更新客户订单
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public R updateCustomOrder(List<String> orderNos) {
|
|
|
+ StringBuffer noOrderNos = new StringBuffer();//不存在客户订单系统里的客户订单号
|
|
|
+ List<String> hasOrderNos = new ArrayList<>();//存在客户订单系统里的客户订单号
|
|
|
+
|
|
|
+ //客户订单系统的数据
|
|
|
+ List<VNcOrderVo> vNcOrderVoList = slaveSourceService.getVNcOrderVo(orderNos);
|
|
|
+ List<VNcOrderDetailVo> vNcOrderDetailVos = slaveSourceService.getVNcOrderDetailVo(orderNos);
|
|
|
+ for (String orderno : orderNos) {
|
|
|
+ if (vNcOrderVoList.stream().filter(nco -> nco.getOrderno().equals(orderno)).collect(Collectors.toList()).size() == 0) {
|
|
|
+ noOrderNos.append(orderno + ",");
|
|
|
+ } else {
|
|
|
+ hasOrderNos.add(orderno);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //本系统的订单信息
|
|
|
+ List<ApsProductionOrderDo> apsProductionOrderDos = apsProductDetailDao.getProductionOrders(hasOrderNos);
|
|
|
+ List<ApsProductDetailDo> apsProductDetailDos = apsProductDetailDao.getProductDetails(hasOrderNos);
|
|
|
+ List<ApsProductionOrderDo> apsProductionOrderDoList = new ArrayList<>();
|
|
|
+ List<ApsProductDetailDo> apsProductDetailDoList = new ArrayList<>();
|
|
|
+ List<String> delProductDetailIdList = new ArrayList<>();
|
|
|
+ List<ApsCustomerManagementDo> customDatas = apsProductDetailDao.getCustomerData();
|
|
|
+ for (ApsProductionOrderDo apsProductionOrderDo : apsProductionOrderDos) {
|
|
|
+ //主表
|
|
|
+ VNcOrderVo vNcOrderVo = vNcOrderVoList.stream().filter(nco -> nco.getOrderno().equals(apsProductionOrderDo.getCustomorderno())).findAny().orElse(null);
|
|
|
+ ApsCustomerManagementDo apsCustomerManagementDo = customDatas.stream().filter(cus -> cus.getCustomername().equals(vNcOrderVo.getCustomname())).findAny().orElse(null);
|
|
|
+ if (apsCustomerManagementDo != null) {
|
|
|
+ apsProductionOrderDo.setCustomid(apsCustomerManagementDo.getId());
|
|
|
+ apsProductionOrderDo.setCustomname(apsCustomerManagementDo.getCustomername());
|
|
|
+ apsProductionOrderDo.setDeliverytime(apsCustomerManagementDo.getDeliverytime());
|
|
|
+ } else {
|
|
|
+ apsProductionOrderDo.setCustomid("");
|
|
|
+ apsProductionOrderDo.setCustomname("");
|
|
|
+ apsProductionOrderDo.setDeliverytime(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ apsProductionOrderDo.setOrderdate(vNcOrderVo.getOrderdate());
|
|
|
+ apsProductionOrderDo.setRemark(vNcOrderVo.getRemark());
|
|
|
+ apsProductionOrderDo.setDeliverydate(vNcOrderVo.getDeliverydate());
|
|
|
+ apsProductionOrderDo.setBelongfactory(vNcOrderVo.getBelongfactory());
|
|
|
+
|
|
|
+ //明细
|
|
|
+ //客户订单系统的明细数据
|
|
|
+ List<VNcOrderDetailVo> vNcOrderDetailVoList = vNcOrderDetailVos.stream().filter(vod -> vod.getOrderno().equals(apsProductionOrderDo.getCustomorderno())).collect(Collectors.toList());
|
|
|
+ for (ApsProductDetailDo apsProductDetailDo : apsProductDetailDos) {
|
|
|
+ VNcOrderDetailVo vNcOrderDetailVo = vNcOrderDetailVoList.stream().filter(vodl -> vodl.getId().equals(apsProductDetailDo.getCustomorderdetailid())).findAny().orElse(null);
|
|
|
+ if (vNcOrderDetailVo != null) {
|
|
|
+ //存在则更新
|
|
|
+ apsProductDetailDo.setMaterialcode(vNcOrderDetailVo.getMaterialcode());
|
|
|
+ apsProductDetailDo.setMaterialname(vNcOrderDetailVo.getMaterialname());
|
|
|
+ apsProductDetailDo.setSpecialfication(vNcOrderDetailVo.getSpecialfication());
|
|
|
+ apsProductDetailDo.setAlloy(vNcOrderDetailVo.getAlloy());
|
|
|
+ apsProductDetailDo.setAlloystatus(vNcOrderDetailVo.getAlloystatus());
|
|
|
+ apsProductDetailDo.setThickness(vNcOrderDetailVo.getThickness());
|
|
|
+ apsProductDetailDo.setProwidth(vNcOrderDetailVo.getProwidth());
|
|
|
+ apsProductDetailDo.setProlength(vNcOrderDetailVo.getProlength());
|
|
|
+ apsProductDetailDo.setTotalordercount(vNcOrderDetailVo.getTotalordercount());
|
|
|
+ apsProductDetailDo.setRollnum(vNcOrderDetailVo.getRollnum());
|
|
|
+ apsProductDetailDo.setNumberunit(vNcOrderDetailVo.getNumberunit());
|
|
|
+ apsProductDetailDo.setRemark(vNcOrderDetailVo.getRemark());
|
|
|
+
|
|
|
+ apsProductDetailDoList.add(apsProductDetailDo);
|
|
|
+ } else {
|
|
|
+ //不存在则删除
|
|
|
+ delProductDetailIdList.add(apsProductDetailDo.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ vNcOrderDetailVoList.remove(vNcOrderDetailVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ //客户系统新增的明细
|
|
|
+ for (VNcOrderDetailVo vNcOrderDetailVo : vNcOrderDetailVoList) {
|
|
|
+ ApsProductDetailDo apsProductDetailDo = BeanUtil.toBean(vNcOrderDetailVo, ApsProductDetailDo.class);
|
|
|
+ apsProductDetailDo.setId(SecurityUtil.getUUID());
|
|
|
+ apsProductDetailDo.setProductstatus("10");
|
|
|
+ apsProductDetailDo.setMainid(apsProductionOrderDo.getId());
|
|
|
+ apsProductDetailDo.setCustomorderdetailid(vNcOrderDetailVo.getId());
|
|
|
+
|
|
|
+ apsProductDetailDoList.add(apsProductDetailDo);
|
|
|
+ }
|
|
|
+
|
|
|
+ apsProductionOrderDoList.add(apsProductionOrderDo);
|
|
|
+ }
|
|
|
+
|
|
|
+ boolean bool1 = true;
|
|
|
+ boolean bool2 = true;
|
|
|
+ boolean bool3 = true;
|
|
|
+ if (apsProductionOrderDoList.size() > 0) {
|
|
|
+ bool1 = apsProductionOrderService.saveOrUpdateBatch(apsProductionOrderDoList);
|
|
|
+ }
|
|
|
+ if (apsProductDetailDoList.size() > 0) {
|
|
|
+ bool2 = apsProductDetailService.saveOrUpdateBatch(apsProductDetailDoList);
|
|
|
+ }
|
|
|
+ if (delProductDetailIdList.size() > 0) {
|
|
|
+ bool3 = apsProductDetailService.removeByIds(delProductDetailIdList);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (bool1 && bool2 && bool3) {
|
|
|
+ if (StringUtils.isBlank(noOrderNos.toString())) {
|
|
|
+ return R.ok("更新成功");
|
|
|
+ } else {
|
|
|
+ return R.ok("客户订单:" + noOrderNos + "系统没有找到该订单,其他订单更新成功");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return R.error("获取客户订单系统订单失败,请联系管理员");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|