xiaochen пре 2 година
родитељ
комит
b06dbdf249

+ 25 - 3
xpyy/src/main/java/com/xpyy/xpyy/controller/PurchaseController.java

@@ -1,13 +1,15 @@
 package com.xpyy.xpyy.controller;
 
 import com.xpyy.xpyy.entity.Mplan;
+import com.xpyy.xpyy.entity.Purchase;
+import com.xpyy.xpyy.entity.Purchases;
 import com.xpyy.xpyy.entity.Vendor;
 import com.xpyy.xpyy.service.PurchaseService;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -32,4 +34,24 @@ public class PurchaseController {
     public Map<String, Object> getPurchaseList(Mplan mplan){
         return purchaseService.getPurchaseList(mplan);
     }
+
+    /**
+     * 查询请购列表信息
+     * @param purchase 参数
+     * @return 返回结果
+     */
+    @GetMapping("getPurchaseMessage")
+    public Map<String, Object> getPurchaseMessage(Purchase purchase){
+        return purchaseService.getPurchaseMessage(purchase);
+    }
+
+    /**
+     * 生成请购单
+     * @param purchase 参数
+     * @return 返回结果
+     */
+    @PostMapping("addPurchase")
+    public Map<String, Object> addPurchase(@RequestBody List<Purchase>  purchase, HttpServletRequest request){
+        return purchaseService.addPurchase(purchase,request);
+    }
 }

+ 312 - 0
xpyy/src/main/java/com/xpyy/xpyy/entity/Purchase.java

@@ -4,6 +4,7 @@ import lombok.Data;
 import lombok.experimental.Accessors;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * @program: xpyy-draulic-9700
@@ -15,5 +16,316 @@ import java.io.Serializable;
 @Accessors(chain = true)
 @SuppressWarnings("serial")
 public class Purchase implements Serializable {
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 计划编码
+     */
+    private String planNo;
+    /**
+     * ERP编码,物料编码
+     */
+    private String ErpCode;
+    /**
+     * 创建时间
+     */
+    private String Createtime;
+    /**
+     * 创建人
+     */
+    private String CreatePerson;
+    /**
+     * 标志
+     */
+    private String flag;
+    /**
+     * 实际采购量
+     */
+    private String qty;
+    /**
+     * 自定义字段
+     */
+    private String Define1;
+    /**
+     * 自定义字段
+     */
+    private String Define2;
+    /**
+     * 自定义字段
+     */
+    private String Define3;
+    /**
+     * 自定义字段
+     */
+    private String Define4;
+    /**
+     * 自定义字段
+     */
+    private String Define5;
+    /**
+     * 自定义字段
+     */
+    private String Define6;
+    /**
+     * 自定义字段
+     */
+    private String Define7;
+    /**
+     * 自定义字段
+     */
+    private String Define8;
+    /**
+     * 自定义字段
+     */
+    private String Define9;
+    /**
+     * 自定义字段
+     */
+    private String Define10;
+    /**
+     * 自定义字段
+     */
+    private String Define11;
+    /**
+     * 自定义字段
+     */
+    private String Define12;
+    /**
+     * 工厂编码
+     */
+    private String ComCode;
+    /**
+     * 计划请购主表ID
+     */
+    private String planReQID;
+    /**
+     * 供应商编码
+     */
+    private String cVenCode;
+    /**
+     * 供应商实际供应量
+     */
+    private String cVenCodeQty;
+    /**
+     * 请购单子表信息
+     */
+    private List<Purchases> purchasesList;
+    /**
+     * 页数
+     */
+    private int page;
+    /**
+     * 条数
+     */
+    private int limit;
 
+    public List<Purchases> getPurchasesList() {
+        return purchasesList;
+    }
+
+    public void setPurchasesList(List<Purchases> purchasesList) {
+        this.purchasesList = purchasesList;
+    }
+
+    public String getcVenCodeQty() {
+        return cVenCodeQty;
+    }
+
+    public void setcVenCodeQty(String cVenCodeQty) {
+        this.cVenCodeQty = cVenCodeQty;
+    }
+
+    public String getPlanReQID() {
+        return planReQID;
+    }
+
+    public void setPlanReQID(String planReQID) {
+        this.planReQID = planReQID;
+    }
+
+    public String getcVenCode() {
+        return cVenCode;
+    }
+
+    public void setcVenCode(String cVenCode) {
+        this.cVenCode = cVenCode;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getPlanNo() {
+        return planNo;
+    }
+
+    public void setPlanNo(String planNo) {
+        this.planNo = planNo;
+    }
+
+    public String getErpCode() {
+        return ErpCode;
+    }
+
+    public void setErpCode(String erpCode) {
+        ErpCode = erpCode;
+    }
+
+    public String getCreatetime() {
+        return Createtime;
+    }
+
+    public void setCreatetime(String createtime) {
+        Createtime = createtime;
+    }
+
+    public String getCreatePerson() {
+        return CreatePerson;
+    }
+
+    public void setCreatePerson(String createPerson) {
+        CreatePerson = createPerson;
+    }
+
+    public String getFlag() {
+        return flag;
+    }
+
+    public void setFlag(String flag) {
+        this.flag = flag;
+    }
+
+    public String getQty() {
+        return qty;
+    }
+
+    public void setQty(String qty) {
+        this.qty = qty;
+    }
+
+    public String getDefine1() {
+        return Define1;
+    }
+
+    public void setDefine1(String define1) {
+        Define1 = define1;
+    }
+
+    public String getDefine2() {
+        return Define2;
+    }
+
+    public void setDefine2(String define2) {
+        Define2 = define2;
+    }
+
+    public String getDefine3() {
+        return Define3;
+    }
+
+    public void setDefine3(String define3) {
+        Define3 = define3;
+    }
+
+    public String getDefine4() {
+        return Define4;
+    }
+
+    public void setDefine4(String define4) {
+        Define4 = define4;
+    }
+
+    public String getDefine5() {
+        return Define5;
+    }
+
+    public void setDefine5(String define5) {
+        Define5 = define5;
+    }
+
+    public String getDefine6() {
+        return Define6;
+    }
+
+    public void setDefine6(String define6) {
+        Define6 = define6;
+    }
+
+    public String getDefine7() {
+        return Define7;
+    }
+
+    public void setDefine7(String define7) {
+        Define7 = define7;
+    }
+
+    public String getDefine8() {
+        return Define8;
+    }
+
+    public void setDefine8(String define8) {
+        Define8 = define8;
+    }
+
+    public String getDefine9() {
+        return Define9;
+    }
+
+    public void setDefine9(String define9) {
+        Define9 = define9;
+    }
+
+    public String getDefine10() {
+        return Define10;
+    }
+
+    public void setDefine10(String define10) {
+        Define10 = define10;
+    }
+
+    public String getDefine11() {
+        return Define11;
+    }
+
+    public void setDefine11(String define11) {
+        Define11 = define11;
+    }
+
+    public String getDefine12() {
+        return Define12;
+    }
+
+    public void setDefine12(String define12) {
+        Define12 = define12;
+    }
+
+    public String getComCode() {
+        return ComCode;
+    }
+
+    public void setComCode(String comCode) {
+        ComCode = comCode;
+    }
+
+    public int getPage() {
+        return page;
+    }
+
+    public void setPage(int page) {
+        this.page = page;
+    }
+
+    public int getLimit() {
+        return limit;
+    }
+
+    public void setLimit(int limit) {
+        this.limit = limit;
+    }
 }

+ 248 - 2
xpyy/src/main/java/com/xpyy/xpyy/entity/Purchases.java

@@ -1,12 +1,258 @@
 package com.xpyy.xpyy.entity;
 
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
 /**
  * @program: xpyy-draulic-9700
  * @description: 请购子表
  * @author: XiaoChen
  * @create: 2023-06-09 18:04
  **/
+@Data
+@Accessors(chain = true)
+@SuppressWarnings("serial")
+public class Purchases implements Serializable {
+    /**
+     * 主键
+     */
+    private String id;
+    /**
+     * 计划请购主表ID
+     */
+    private String planReQID;
+    /**
+     * ERP编码,物料编码
+     */
+    private String ErpCode;
+    /**
+     * 供应商编码
+     */
+    private String cVenCode;
+    /**
+     * 供应商分配采购量
+     */
+    private String qty;
+    /**
+     * 自定义字段
+     */
+    private String Define1;
+    /**
+     * 自定义字段
+     */
+    private String Define2;
+    /**
+     * 自定义字段
+     */
+    private String Define3;
+    /**
+     * 自定义字段
+     */
+    private String Define4;
+    /**
+     * 自定义字段
+     */
+    private String Define5;
+    /**
+     * 自定义字段
+     */
+    private String Define6;
+    /**
+     * 自定义字段
+     */
+    private String Define7;
+    /**
+     * 自定义字段
+     */
+    private String Define8;
+    /**
+     * 自定义字段
+     */
+    private String Define9;
+    /**
+     * 自定义字段
+     */
+    private String Define10;
+    /**
+     * 自定义字段
+     */
+    private String Define11;
+    /**
+     * 自定义字段
+     */
+    private String Define12;
+    /**
+     * 状态
+     */
+    private String flag;
+    /**
+     * 页数
+     */
+    private int page;
+    /**
+     * 条数
+     */
+    private int limit;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getPlanReQID() {
+        return planReQID;
+    }
+
+    public void setPlanReQID(String planReQID) {
+        this.planReQID = planReQID;
+    }
+
+    public String getErpCode() {
+        return ErpCode;
+    }
+
+    public void setErpCode(String erpCode) {
+        ErpCode = erpCode;
+    }
+
+    public String getcVenCode() {
+        return cVenCode;
+    }
+
+    public void setcVenCode(String cVenCode) {
+        this.cVenCode = cVenCode;
+    }
+
+    public String getQty() {
+        return qty;
+    }
+
+    public void setQty(String qty) {
+        this.qty = qty;
+    }
+
+    public String getDefine1() {
+        return Define1;
+    }
+
+    public void setDefine1(String define1) {
+        Define1 = define1;
+    }
+
+    public String getDefine2() {
+        return Define2;
+    }
+
+    public void setDefine2(String define2) {
+        Define2 = define2;
+    }
+
+    public String getDefine3() {
+        return Define3;
+    }
+
+    public void setDefine3(String define3) {
+        Define3 = define3;
+    }
+
+    public String getDefine4() {
+        return Define4;
+    }
+
+    public void setDefine4(String define4) {
+        Define4 = define4;
+    }
+
+    public String getDefine5() {
+        return Define5;
+    }
+
+    public void setDefine5(String define5) {
+        Define5 = define5;
+    }
+
+    public String getDefine6() {
+        return Define6;
+    }
+
+    public void setDefine6(String define6) {
+        Define6 = define6;
+    }
+
+    public String getDefine7() {
+        return Define7;
+    }
+
+    public void setDefine7(String define7) {
+        Define7 = define7;
+    }
+
+    public String getDefine8() {
+        return Define8;
+    }
+
+    public void setDefine8(String define8) {
+        Define8 = define8;
+    }
+
+    public String getDefine9() {
+        return Define9;
+    }
+
+    public void setDefine9(String define9) {
+        Define9 = define9;
+    }
+
+    public String getDefine10() {
+        return Define10;
+    }
+
+    public void setDefine10(String define10) {
+        Define10 = define10;
+    }
+
+    public String getDefine11() {
+        return Define11;
+    }
+
+    public void setDefine11(String define11) {
+        Define11 = define11;
+    }
+
+    public String getDefine12() {
+        return Define12;
+    }
+
+    public void setDefine12(String define12) {
+        Define12 = define12;
+    }
+
+    public String getFlag() {
+        return flag;
+    }
+
+    public void setFlag(String flag) {
+        this.flag = flag;
+    }
+
+    public int getPage() {
+        return page;
+    }
+
+    public void setPage(int page) {
+        this.page = page;
+    }
 
-public class Purchases {
+    public int getLimit() {
+        return limit;
+    }
 
-}
+    public void setLimit(int limit) {
+        this.limit = limit;
+    }
+}

+ 10 - 0
xpyy/src/main/java/com/xpyy/xpyy/mapper/PurchaseMapper.java

@@ -1,5 +1,7 @@
 package com.xpyy.xpyy.mapper;
 
+import com.xpyy.xpyy.entity.Purchase;
+import com.xpyy.xpyy.entity.Purchases;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -11,4 +13,12 @@ public interface PurchaseMapper {
     List<Map<String, Object>> getMaterial(@Param("cusCode") String cusCode, @Param("modeCode") String modeCode);
 
     List<Map<String, Object>> getSupplierList(@Param("erpCode") String erpCode);
+
+    void addPurchase(Purchase purchase);
+
+    void addPurchaseSeed(List<Purchases> list);
+
+    List<Map<String, Object>> getPurchaseMessage(Purchase purchase);
+
+    List<Map<String, Object>> getPurchaseMessageSeed(Purchase purchase1);
 }

+ 7 - 0
xpyy/src/main/java/com/xpyy/xpyy/service/PurchaseService.java

@@ -1,9 +1,16 @@
 package com.xpyy.xpyy.service;
 
 import com.xpyy.xpyy.entity.Mplan;
+import com.xpyy.xpyy.entity.Purchase;
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 import java.util.Map;
 
 public interface PurchaseService {
     Map<String, Object> getPurchaseList(Mplan mplan);
+
+    Map<String, Object> addPurchase(List<Purchase> purchase, HttpServletRequest request);
+
+    Map<String, Object> getPurchaseMessage(Purchase purchase);
 }

+ 81 - 1
xpyy/src/main/java/com/xpyy/xpyy/service/impl/PurchaseServiceImpl.java

@@ -2,13 +2,16 @@ package com.xpyy.xpyy.service.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
-import com.xpyy.xpyy.entity.Mplan;
+import com.xpyy.xpyy.entity.*;
 import com.xpyy.xpyy.mapper.MplanMapper;
 import com.xpyy.xpyy.mapper.PurchaseMapper;
 import com.xpyy.xpyy.service.PurchaseService;
+import com.xpyy.xpyy.util.SnowflakeUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletRequest;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -29,6 +32,9 @@ public class PurchaseServiceImpl implements PurchaseService {
     @Autowired
     private MplanMapper mplanMapper;
 
+    //雪花算法
+    private SnowflakeUtil snowflakeUtil = new SnowflakeUtil(1, 1, 1);
+
     /**
      * 新增采购计划列表
      * @param mplan 参数
@@ -101,4 +107,78 @@ public class PurchaseServiceImpl implements PurchaseService {
         }
         return map;
     }
+
+    /**
+     * 生成请购单
+     * @param purchase 参数
+     * @return 返回结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Map<String, Object> addPurchase(List<Purchase> purchase, HttpServletRequest request) {
+        Map<String, Object> map = new HashMap<>();
+        try {
+            //计划ID       erpcode 编码   ERP采购数量
+            //请购主表ID    erpcode 编码   供应商编码   供应商分配数量
+            String userId = request.getHeader("userId");
+            for (Purchase purchase1 : purchase) {
+                purchase1.setCreatePerson(userId);
+                //添加请购父表信息
+                purchaseMapper.addPurchase(purchase1);
+                //添加主表ID
+                for (Purchases purchases : purchase1.getPurchasesList()) {
+                    purchases.setId(purchase1.getId());
+                }
+                //添加请购子表信息
+                purchaseMapper.addPurchaseSeed(purchase1.getPurchasesList());
+            }
+            map.put("msg", "200");
+        } catch (Exception e) {
+            e.printStackTrace();
+            map.put("msg", "500");
+            map.put("errMsg", "服务器请求异常,请稍后再试");
+            throw new RuntimeException();
+        }
+        return map;
+    }
+
+    /**
+     * 查询请购列表信息
+     * @param purchase 参数
+     * @return 返回结果
+     */
+    @Override
+    public Map<String, Object> getPurchaseMessage(Purchase purchase) {
+        Map<String, Object> map = new HashMap<>();
+        try {
+            //生产计划ID
+            List<Map<String,Object>> list = purchaseMapper.getPurchaseMessage(purchase);
+            for (Map<String, Object> stringObjectMap : list) {
+                String id = stringObjectMap.get("id").toString();
+                //查询请购子表供应商信息
+                Purchase purchase1 = new Purchase();
+                purchase1.setId(id);
+                List<Map<String,Object>> list1 = purchaseMapper.getPurchaseMessageSeed(purchase1);
+                stringObjectMap.put("supplierList",list1);
+            }
+            map.put("data", list);
+            map.put("msg", "200");
+        } catch (Exception e) {
+            e.printStackTrace();
+            map.put("msg", "500");
+            map.put("errMsg", "服务器请求异常,请稍后再试");
+        }
+        return map;
+    }
+
+    /**
+     * 请购单编号规则
+     * @return 返回结果
+     */
+    public String codeGenerate(){
+        StringBuilder stringBuilder = new StringBuilder("CN");
+        long l = snowflakeUtil.nextId();
+        stringBuilder.append(l);
+        return stringBuilder.toString();
+    }
 }

+ 42 - 1
xpyy/src/main/resources/mapper/PurchaseMapper.xml

@@ -2,7 +2,22 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xpyy.xpyy.mapper.PurchaseMapper">
-
+    <!--添加请购父表信息-->
+    <insert id="addPurchase">
+        <selectKey resultType="java.lang.String" order="AFTER" keyProperty="id">
+            select LAST_INSERT_ID()
+        </selectKey>
+        insert into xp_plantorequest(planNo,ErpCode,Createtime,CreatePerson,flag,qty)
+        values (#{planNo},#{ErpCode},now(),#{CreatePerson},0,#{qty})
+    </insert>
+    <!--添加请购子表信息-->
+    <insert id="addPurchaseSeed">
+        insert into xp_plantorequests(planReQID,ErpCode,cVenCode,qty,flag)
+        values
+        <foreach collection="list" item="item" index="index" separator=",">
+            (#{item.id},#{item.ErpCode},#{item.cVenCode},#{item.qty},0)
+        </foreach>
+    </insert>
     <!--去bom下 查询每一层下的物料-->
     <select id="getMaterial" resultType="java.util.Map">
         select
@@ -34,4 +49,30 @@
         left join vendor b on a.cVenCode = b.cVenCode
         where a.ErpCode = #{erpCode}
     </select>
+    <!--查询请购列表信息-->
+    <select id="getPurchaseMessage" resultType="java.util.Map">
+        select
+            a.id,
+            a.planNo,
+            a.ErpCode as erpCode,
+            a.qty,
+            b.Pcode as pcode,
+            b.cInvName
+        from xp_plantorequest a
+        left join inventory b on a.ErpCode = b.ErpCode
+        where a.planNo = #{planNo}
+    </select>
+    <!--查询请购子表供应商信息-->
+    <select id="getPurchaseMessageSeed" resultType="java.util.Map">
+        select
+            a.id,
+            a.planReQID,
+            a.ErpCode as erpCode,
+            a.cVenCode,
+            a.qty,
+            b.cVenName
+        from xp_plantorequests a
+        left join vendor b on a.cVenCode = b.cVenCode
+        where a.planReQID = #{id}
+    </select>
 </mapper>