Browse Source

合并订单更新客户订单

DLC 1 năm trước cách đây
mục cha
commit
36c7958391

+ 19 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProductDetailDao.java

@@ -4,6 +4,7 @@ package com.rongwei.bscommon.sys.dao;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.rongwei.bsentity.domain.ApsCustomerManagementDo;
 import com.rongwei.bsentity.domain.ApsProductDetailDo;
+import com.rongwei.bsentity.domain.ApsProductionMergeOrderDo;
 import com.rongwei.bsentity.domain.ApsProductionOrderDo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
@@ -21,6 +22,14 @@ public interface ApsProductDetailDao extends BaseMapper<ApsProductDetailDo> {
             "</script>"})
     List<ApsProductionOrderDo> getProductionOrders(@Param("orderNos") List<String> orderNos);
 
+    @Select({" <script>",
+            "select * from aps_production_merge_order where DELETED='0' and CUSTOMORDERNO in",
+            " <foreach collection=\"orderNos\" item=\"orderno\" index=\"index\" open=\"(\" close=\")\" separator=\",\"> ",
+            "  #{orderno}",
+            "</foreach>",
+            "</script>"})
+    List<ApsProductionMergeOrderDo> getProductionMergeOrders(@Param("orderNos") List<String> orderNos);
+
     @Select({" <script>",
             "select d.* from aps_product_detail d\n" +
             "left join aps_production_order o on o.DELETED='0' and o.ID=d.MAINID\n" +
@@ -31,6 +40,16 @@ public interface ApsProductDetailDao extends BaseMapper<ApsProductDetailDo> {
             "</script>"})
     List<ApsProductDetailDo> getProductDetails(@Param("orderNos") List<String> orderNos);
 
+    @Select({" <script>",
+            "select d.* from aps_product_detail d\n" +
+                    "left join aps_production_merge_order o on o.DELETED='0' and o.ID=d.MAINID\n" +
+                    "where d.DELETED='0' and IFNULL(d.CUSTOMORDERDETAILID,'')!='' and o.CUSTOMORDERNO in",
+            " <foreach collection=\"orderNos\" item=\"orderno\" index=\"index\" open=\"(\" close=\")\" separator=\",\"> ",
+            "  #{orderno}",
+            "</foreach>",
+            "</script>"})
+    List<ApsProductDetailDo> getProductMergeDetails(@Param("orderNos") List<String> orderNos);
+
     @Select("select ID,CUSTOMERNAME,DELIVERYTIME from aps_customer_management where DELETED='0'")
     List<ApsCustomerManagementDo> getCustomerData();
 

+ 15 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProductionMergeOrderDao.java

@@ -0,0 +1,15 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.rongwei.bsentity.domain.ApsProductionMergeOrderDo;
+
+/**
+ * @Entity com.rongwei.training.domain.ApsProductionOrder
+ */
+public interface ApsProductionMergeOrderDao extends BaseMapper<ApsProductionMergeOrderDo> {
+
+}
+
+
+
+

+ 2 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsProductDetailService.java

@@ -22,4 +22,6 @@ public interface ApsProductDetailService extends IService<ApsProductDetailDo> {
     R getCustomOrderData(Map<String, Object> params);
 
     R updateCustomOrder(List<String> orderNos);
+
+    R updateMergeCustomOrder(List<String> orderNos);
 }

+ 11 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/ApsProductionMergeOrderService.java

@@ -0,0 +1,11 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.rongwei.bsentity.domain.ApsProductionMergeOrderDo;
+
+/**
+ *
+ */
+public interface ApsProductionMergeOrderService extends IService<ApsProductionMergeOrderDo> {
+
+}

+ 118 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductDetailServiceImpl.java

@@ -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("获取客户订单系统订单失败,请联系管理员");
+        }
+    }
 }

+ 20 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProductionMergeOrderServiceImpl.java

@@ -0,0 +1,20 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.bscommon.sys.dao.ApsProductionMergeOrderDao;
+import com.rongwei.bscommon.sys.service.ApsProductionMergeOrderService;
+import com.rongwei.bsentity.domain.ApsProductionMergeOrderDo;
+import org.springframework.stereotype.Service;
+
+/**
+ *
+ */
+@Service
+public class ApsProductionMergeOrderServiceImpl extends ServiceImpl<ApsProductionMergeOrderDao, ApsProductionMergeOrderDo>
+        implements ApsProductionMergeOrderService {
+
+}
+
+
+
+

+ 5 - 6
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProductionOrderDao.xml

@@ -25,10 +25,9 @@
         <result property="salesman" column="SALESMAN" jdbcType="VARCHAR"/>
         <result property="businessunit" column="BUSINESSUNIT" jdbcType="VARCHAR"/>
         <result property="customorderno" column="CUSTOMORDERNO" jdbcType="VARCHAR"/>
-        <result property="isfromnc" column="ISFROMNC" jdbcType="VARCHAR"/>
-        <result property="ncorderno" column="NCORDERNO" jdbcType="VARCHAR"/>
-        <result property="ncordertype" column="NCORDERTYPE" jdbcType="VARCHAR"/>
-        <result property="ncorderstatus" column="NCORDERSTATUS" jdbcType="VARCHAR"/>
+        <result property="isfromcustom" column="ISFROMCUSTOM" jdbcType="VARCHAR"/>
+        <result property="customordertype" column="CUSTOMORDERTYPE" jdbcType="VARCHAR"/>
+        <result property="customorderstatus" column="CUSTOMORDERSTATUS" jdbcType="VARCHAR"/>
         <result property="tenantid" column="TENANTID" jdbcType="VARCHAR"/>
         <result property="roption" column="ROPTION" jdbcType="VARCHAR"/>
         <result property="deleted" column="DELETED" jdbcType="CHAR"/>
@@ -97,8 +96,8 @@
         AUDITORID,AUDITDATE,PRODUCTIONSTATUS,
         PROMISEDELIVERYDATE,CUSTOMWAREHOUSE,DELIVERYTIME,
         BELONGFACTORY,ORDERTYPE,SALESMAN,
-        BUSINESSUNIT,CUSTOMORDERNO,ISFROMNC,
-        NCORDERNO,NCORDERTYPE,NCORDERSTATUS,
+        BUSINESSUNIT,CUSTOMORDERNO,ISFROMCUSTOM,
+        CUSTOMORDERTYPE,CUSTOMORDERSTATUS,
         TENANTID,ROPTION,DELETED,
         REMARK,CREATEDATE,CREATEUSERID,
         MODIFYDATE,MODIFYUSERID,CREATEUSERNAME,

+ 213 - 0
cx-aps/cx-aps-entity/src/main/java/com/rongwei/bsentity/domain/ApsProductionMergeOrderDo.java

@@ -0,0 +1,213 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 生产订单_合并
+ *
+ * @TableName aps_production_merge_order
+ */
+@TableName(value = "aps_production_merge_order")
+@Data
+public class ApsProductionMergeOrderDo extends BaseDo implements Serializable {
+    /**
+     * 主键
+     */
+    private String id;
+
+    /**
+     * 订单单据号
+     */
+    private String orderno;
+
+    /**
+     * 客户名称
+     */
+    private String customname;
+
+    /**
+     * 下单日期
+     */
+    private Date orderdate;
+
+    /**
+     * 期望交货日期
+     */
+    private Date deliverydate;
+
+    /**
+     * 交期允许浮动(天)
+     */
+    private Integer allowday;
+
+    /**
+     * 订单状态
+     */
+    private String orderstatus;
+
+    /**
+     * 评审状态
+     */
+    private String auditstatus;
+
+    /**
+     * 评审人
+     */
+    private String auditor;
+
+    /**
+     * 评审人ID
+     */
+    private String auditorid;
+
+    /**
+     * 评审时间
+     */
+    private Date auditdate;
+
+    /**
+     * 生产状态
+     */
+    private String productionstatus;
+
+    /**
+     * 承诺交货日期
+     */
+    private Date promisedeliverydate;
+
+    /**
+     * 客户仓库
+     */
+    private String customwarehouse;
+
+    /**
+     * 送货时长(小时)
+     */
+    private Integer deliverytime;
+
+    /**
+     * 所属分厂
+     */
+    private String belongfactory;
+
+    /**
+     * 订单类型
+     */
+    private String ordertype;
+
+    /**
+     * 业务员
+     */
+    private String salesman;
+
+    /**
+     * 业务部门
+     */
+    private String businessunit;
+
+    /**
+     * 客户订单号
+     */
+    private String customorderno;
+
+    /**
+     * 是否来自客户订单系统
+     */
+    private String isfromcustom;
+
+    /**
+     * 客户订单类型
+     */
+    private String customordertype;
+
+    /**
+     * 客户订单状态
+     */
+    private String customorderstatus;
+
+    /**
+     * 所属租户ID
+     */
+    private String tenantid;
+
+    /**
+     * 扩展json格式配置
+     */
+    private String roption;
+
+    /**
+     * 是否删除
+     */
+    private String deleted;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    private Date createdate;
+
+    /**
+     * 创建用户ID
+     */
+    private String createuserid;
+
+    /**
+     * 修改日期
+     */
+    private Date modifydate;
+
+    /**
+     * 修改用户ID
+     */
+    private String modifyuserid;
+
+    /**
+     * 创建人名称
+     */
+    private String createusername;
+
+    /**
+     * 修改人名称
+     */
+    private String modifyusername;
+
+    /**
+     * 排程交货日期
+     */
+    private Date scheduledeliverydate;
+
+    /**
+     * 实际交货日期
+     */
+    private Date actualdeliverydate;
+
+    /**
+     * 订单ID
+     */
+    private String mainid;
+
+    /**
+     * 客户仓库
+     */
+    private String customwarehouseid;
+
+    /**
+     * 客户ID
+     */
+    private String customid;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+}

+ 0 - 38
cx-aps/cx-aps-entity/src/main/resources/mapper/ApsCustomerManagementMapper.xml

@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="generator.mapper.ApsCustomerManagementMapper">
-
-    <resultMap id="BaseResultMap" type="generator.domain.ApsCustomerManagement">
-            <id property="id" column="ID" jdbcType="VARCHAR"/>
-            <result property="tenantid" column="TENANTID" jdbcType="VARCHAR"/>
-            <result property="roption" column="ROPTION" jdbcType="VARCHAR"/>
-            <result property="deleted" column="DELETED" jdbcType="VARCHAR"/>
-            <result property="remark" column="REMARK" jdbcType="VARCHAR"/>
-            <result property="createdate" column="CREATEDATE" jdbcType="TIMESTAMP"/>
-            <result property="createuserid" column="CREATEUSERID" jdbcType="VARCHAR"/>
-            <result property="modifydate" column="MODIFYDATE" jdbcType="TIMESTAMP"/>
-            <result property="modifyuserid" column="MODIFYUSERID" jdbcType="VARCHAR"/>
-            <result property="createusername" column="CREATEUSERNAME" jdbcType="VARCHAR"/>
-            <result property="modifyusername" column="MODIFYUSERNAME" jdbcType="VARCHAR"/>
-            <result property="customerunit" column="CUSTOMERUNIT" jdbcType="VARCHAR"/>
-            <result property="customername" column="CUSTOMERNAME" jdbcType="VARCHAR"/>
-            <result property="customerabbreviation" column="CUSTOMERABBREVIATION" jdbcType="VARCHAR"/>
-            <result property="deliveryaddress" column="DELIVERYADDRESS" jdbcType="VARCHAR"/>
-            <result property="deliverytime" column="DELIVERYTIME" jdbcType="INTEGER"/>
-            <result property="contacts" column="CONTACTS" jdbcType="VARCHAR"/>
-            <result property="contactsmobile" column="CONTACTSMOBILE" jdbcType="VARCHAR"/>
-            <result property="storeid" column="STOREID" jdbcType="VARCHAR"/>
-    </resultMap>
-
-    <sql id="Base_Column_List">
-        ID,TENANTID,ROPTION,
-        DELETED,REMARK,CREATEDATE,
-        CREATEUSERID,MODIFYDATE,MODIFYUSERID,
-        CREATEUSERNAME,MODIFYUSERNAME,CUSTOMERUNIT,
-        CUSTOMERNAME,CUSTOMERABBREVIATION,DELIVERYADDRESS,
-        DELIVERYTIME,CONTACTS,CONTACTSMOBILE,
-        STOREID
-    </sql>
-</mapper>

+ 14 - 0
cx-aps/cx-aps-server/src/main/java/com/rongwei/bsserver/controller/ApsProductDetailController.java

@@ -55,5 +55,19 @@ public class ApsProductDetailController {
             return R.error("获取客户订单系统订单失败,请联系管理员");
         }
     }
+
+    /*
+    更新合并客户订单
+     */
+    @PostMapping("/updateMergeCustomOrder")
+    public R updateMergeCustomOrder(@RequestBody List<String> orderNos){
+        try {
+            log.info("更新客户订单;参数为:{}", orderNos);
+            return apsProductDetailService.updateMergeCustomOrder(orderNos);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.error("获取客户订单系统订单失败,请联系管理员");
+        }
+    }
 }