|
@@ -4,6 +4,7 @@ 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.ApsProductionMergeOrderService;
|
|
|
import com.rongwei.bscommon.sys.service.ApsProductionOrderService;
|
|
|
import com.rongwei.bscommon.sys.service.SlaveSourceService;
|
|
|
import com.rongwei.bsentity.domain.*;
|
|
@@ -35,6 +36,9 @@ public class ApsProductDetailServiceImpl extends ServiceImpl<ApsProductDetailDao
|
|
|
@Autowired
|
|
|
private ApsProductionOrderService apsProductionOrderService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ApsProductionMergeOrderService apsProductionMergeOrderService;
|
|
|
+
|
|
|
@Autowired
|
|
|
private ApsProductDetailService apsProductDetailService;
|
|
|
|
|
@@ -148,6 +152,7 @@ public class ApsProductDetailServiceImpl extends ServiceImpl<ApsProductDetailDao
|
|
|
apsProductDetailDo.setProductstatus("10");
|
|
|
apsProductDetailDo.setMainid(apsProductionOrderDo.getId());
|
|
|
apsProductDetailDo.setCustomorderdetailid(vNcOrderDetailVo.getId());
|
|
|
+ apsProductDetailDo.setTenantid(apsProductionOrderDo.getTenantid());
|
|
|
|
|
|
apsProductDetailDoList.add(apsProductDetailDo);
|
|
|
}
|
|
@@ -178,4 +183,117 @@ public class ApsProductDetailServiceImpl extends ServiceImpl<ApsProductDetailDao
|
|
|
return R.error("获取客户订单系统订单失败,请联系管理员");
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /*
|
|
|
+ 更新合并客户订单
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public R updateMergeCustomOrder(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<ApsProductionMergeOrderDo> apsProductionMergeOrderDos = apsProductDetailDao.getProductionMergeOrders(hasOrderNos);
|
|
|
+ List<ApsProductDetailDo> apsProductDetailDos = apsProductDetailDao.getProductMergeDetails(hasOrderNos);
|
|
|
+ List<ApsProductionMergeOrderDo> apsProductionMergeOrderDoList = new ArrayList<>();
|
|
|
+ List<ApsProductDetailDo> apsProductDetailDoList = new ArrayList<>();
|
|
|
+ List<String> delProductDetailIdList = new ArrayList<>();
|
|
|
+ List<ApsCustomerManagementDo> customDatas = apsProductDetailDao.getCustomerData();
|
|
|
+ for (ApsProductionMergeOrderDo apsProductionMergeOrderDo : apsProductionMergeOrderDos) {
|
|
|
+ //主表
|
|
|
+ VNcOrderVo vNcOrderVo = vNcOrderVoList.stream().filter(nco -> nco.getOrderno().equals(apsProductionMergeOrderDo.getCustomorderno())).findAny().orElse(null);
|
|
|
+ ApsCustomerManagementDo apsCustomerManagementDo = customDatas.stream().filter(cus -> cus.getCustomername().equals(vNcOrderVo.getCustomname())).findAny().orElse(null);
|
|
|
+ if (apsCustomerManagementDo != null) {
|
|
|
+ apsProductionMergeOrderDo.setCustomid(apsCustomerManagementDo.getId());
|
|
|
+ apsProductionMergeOrderDo.setCustomname(apsCustomerManagementDo.getCustomername());
|
|
|
+ apsProductionMergeOrderDo.setDeliverytime(apsCustomerManagementDo.getDeliverytime());
|
|
|
+ } else {
|
|
|
+ apsProductionMergeOrderDo.setCustomid("");
|
|
|
+ apsProductionMergeOrderDo.setCustomname("");
|
|
|
+ apsProductionMergeOrderDo.setDeliverytime(null);
|
|
|
+ }
|
|
|
+
|
|
|
+ apsProductionMergeOrderDo.setOrderdate(vNcOrderVo.getOrderdate());
|
|
|
+ apsProductionMergeOrderDo.setRemark(vNcOrderVo.getRemark());
|
|
|
+ apsProductionMergeOrderDo.setDeliverydate(vNcOrderVo.getDeliverydate());
|
|
|
+ apsProductionMergeOrderDo.setBelongfactory(vNcOrderVo.getBelongfactory());
|
|
|
+
|
|
|
+ //明细
|
|
|
+ //客户订单系统的明细数据
|
|
|
+ List<VNcOrderDetailVo> vNcOrderDetailVoList = vNcOrderDetailVos.stream().filter(vod -> vod.getOrderno().equals(apsProductionMergeOrderDo.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(apsProductionMergeOrderDo.getId());
|
|
|
+ apsProductDetailDo.setCustomorderdetailid(vNcOrderDetailVo.getId());
|
|
|
+ apsProductDetailDo.setTenantid(apsProductionMergeOrderDo.getTenantid());
|
|
|
+
|
|
|
+ apsProductDetailDoList.add(apsProductDetailDo);
|
|
|
+ }
|
|
|
+
|
|
|
+ apsProductionMergeOrderDoList.add(apsProductionMergeOrderDo);
|
|
|
+ }
|
|
|
+
|
|
|
+ boolean bool1 = true;
|
|
|
+ boolean bool2 = true;
|
|
|
+ boolean bool3 = true;
|
|
|
+ if (apsProductionMergeOrderDoList.size() > 0) {
|
|
|
+ bool1 = apsProductionMergeOrderService.saveOrUpdateBatch(apsProductionMergeOrderDoList);
|
|
|
+ }
|
|
|
+ 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("获取客户订单系统订单失败,请联系管理员");
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|