浏览代码

入库新增

ysh 2 年之前
父节点
当前提交
10fe5ffda9

+ 34 - 34
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/controller/SubcontractingOrderController.java

@@ -135,58 +135,58 @@ public class SubcontractingOrderController extends JeecgController<Subcontractin
         res.setCode("0");
         res.setSuccess(false);
 
-        String key = request.getHeader("key");
-        if(!StringUtils.isNotBlank(key)){
-            res.setMsg("key不能为空");
-            return new ResponseEntity<>(res, HttpStatus.OK);
-        }
+//        String key = request.getHeader("key");
+//        if(!StringUtils.isNotBlank(key)){
+//            res.setMsg("key不能为空");
+//            return new ResponseEntity<>(res, HttpStatus.OK);
+//        }
 
-        if(json.size() < 1){
+        if(json == null || json.size() < 1){
             res.setMsg("正文数据不能为空");
             return new ResponseEntity<>(res, HttpStatus.OK);
         }
 
         try {
-            //账套1
-            List<Map<String,Object>> mapListOne=new ArrayList<>();
-            //账套2
-            List<Map<String,Object>> mapListTwo=new ArrayList<>();
+//            //账套1
+//            List<Map<String,Object>> mapListOne=new ArrayList<>();
+//            //账套2
+//            List<Map<String,Object>> mapListTwo=new ArrayList<>();
             //账套3
             List<Map<String,Object>> mapListThree=new ArrayList<>();
-            for(int i=0;i<json.size();i++){
+            for(int i=0; i<json.size(); i++){
                 //获取对象
-                JSONObject jsonObject=json.getJSONObject(i);
+                JSONObject jsonObject = json.getJSONObject(i);
 
-                if(jsonObject.get("bredvouch") == null){//红蓝标识  采购入库
-                    res.setMsg("bredvouch不能为空,或不合法");
-                    return new ResponseEntity<>(res, HttpStatus.OK);
-                }
+//                if(jsonObject.get("bredvouch") == null){//红蓝标识  采购入库
+//                    res.setMsg("bredvouch不能为空,或不合法");
+//                    return new ResponseEntity<>(res, HttpStatus.OK);
+//                }
                 //获取账套
-                if(jsonObject.get("cAccId") != null || !jsonObject.get("cAccId").toString().equals("103")){
-                    String cAccId=jsonObject.get("cAccId").toString();//账套
-                    //转map
-                    Map<String,Object> map=updateMap(jsonObject);
-                    if(cAccId.equals("101")){
-                        mapListOne.add(map);
-                    }else if(cAccId.equals("102")){
-                        mapListTwo.add(map);
-                    }else if(cAccId.equals("103")){
-                        mapListThree.add(map);
-                    }
-                }else{
-                    res.setMsg("cAccId不能为空,或不合法");
-                    return new ResponseEntity<>(res, HttpStatus.OK);
-                }
+//                if(jsonObject.get("cAccId") != null || !jsonObject.get("cAccId").toString().equals("103")){
+//                    String cAccId=jsonObject.get("cAccId").toString();//账套
+//                    //转map
+                    Map<String,Object> map = updateMap(jsonObject);
+//                    if(cAccId.equals("101")){
+//                        mapListOne.add(map);
+//                    }else if(cAccId.equals("102")){
+//                        mapListTwo.add(map);
+//                    }else if(cAccId.equals("103")){
+                    mapListThree.add(map);
+//                    }
+//                }else{
+//                    res.setMsg("cAccId不能为空,或不合法");
+//                    return new ResponseEntity<>(res, HttpStatus.OK);
+//                }
 
             }
-            subcontractingOrderService.saveWarehousing(mapListOne);
+            subcontractingOrderService.saveWarehousing(mapListThree);
             res.setCode("200");
             res.setSuccess(true);
-
+            res.setMsg("执行成功");
         }catch (Exception e){
+            System.out.println(e.getMessage());
             res.setMsg(e.getMessage());
         }
-        res.setMsg("执行成功");
         return new ResponseEntity<>(res, HttpStatus.OK);
     }
 

+ 24 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/mapper/SubcontractingOrderMapper.java

@@ -16,6 +16,27 @@ import java.util.Map;
  */
 public interface SubcontractingOrderMapper extends BaseMapper<SubcontractingOrder> {
 
+    /**
+     * 根据存货编码查询存货单位(辅计量单位)
+     * @param code
+     * @return
+     */
+    Map<String,String> selectUnitByCode(@Param("code") String code);
+
+    /**
+     * 根据委外订单号查询信息
+     * @param code
+     * @return
+     */
+    Map<String,String> selectInfoByCode(@Param("code") String code);
+
+    /**
+     * 根据供应商编码查询成品仓库
+     * @param code
+     * @return
+     */
+    Map<String,String> selectVendorByCode(@Param("code") String code);
+
     /**
      * 调用存储过程 获取下一个编码
      * @param StuNo 单据类型 24:入库单
@@ -38,17 +59,17 @@ public interface SubcontractingOrderMapper extends BaseMapper<SubcontractingOrde
     List<SubcontractingOrder> selectOrderByCode(@Param("code")String code, @Param("MoDetailsID")String MoDetailsID);
 
     /**
-     * @Description //TODO 采购入库主表新增(合格入库)
+     * @Description 采购入库主表新增(合格入库)
      * @Param [map]
      * @return void
      */
-    void saveRdRecord01One(@Param("RdRecord01")Map<String,Object> map);
+    void saveRdRecord01One(@Param("rdRecord01")Map<String,Object> rdRecord01);
     /**
      * @Description //TODO 采购入库子表新增(合格入库)
      * @Param [map]
      * @return void
      */
-    void saveRdrecords01One(@Param("item")Map<String,Object> map);
+    void saveRdrecords01One(@Param("item")Map<String,Object> item);
 
     /**
      * 根据编码获取入库单数据

+ 76 - 78
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/mapper/xml/SubcontractingOrderMapper.xml

@@ -9,6 +9,21 @@
     <select id="callGetUAMaxPK" resultType="map">
         exec getUAMaxCode @StuNo = #{StuNo}
     </select>
+    
+    <select id="selectInfoByCode" resultType="map">
+        select cVenCode,-- 供货单位
+               cDepCode , -- 部门编码
+               cPersonCode -- 业务员编码
+        from OM_MOMain where ccode = #{code}
+    </select>
+
+    <select id="selectUnitByCode" resultType="map">
+        select cComUnitCode from Inventory where cInvCode = #{code}
+    </select>
+
+    <select id="selectVendorByCode" resultType="map">
+        select cVenDefine2 from Vendor where cVenCode = #{code}
+    </select>
 
     <select id="selectOrderByCode" resultType="org.jeecg.modules.openApi.entity.SubcontractingOrder">
 
@@ -33,62 +48,51 @@
     </select>
 
     <insert id="saveRdRecord01One">
+
         INSERT INTO RdRecord01
         (
-        ID,
-        cVouchType,--1 单据类型编码  01
-        cCode,--2 收发单据号
-        dDate,--3 单据日期 当前日期
-        cWhCode,--4 仓库编码
-        cOrderCode,--5 委外订单号 验布机
-        cARVCode,--6 采购到货单号
-        cVenCode,--7 供应商编码
-        cDepCode,--8 部门编码
-        cPersonCode, --9 业务员编码
-        dARVDate, --10 到货日期 空
-        cBusType, --11 业务类型-根据订单号获取或者默认  普通采购
-        cPTCode,--12 采购类型编码   01
-        cMemo,--13 备注
-        cRdCode,--14 收发类别编码 1
-        bredvouch,--15红蓝标识--0>
-        bRdFlag,--16收发标志-- 1
-        cSource,<!--17单据来源-->
-        bTransFlag,<!--18是否传递 0-->
-        bIsSTQc,<!--19是否传递 0-->
-        cMaker,--20创建人 验布机
-        cHandler,--21 审核人 空
-        dVeriDate,-- 22审核日期
-        dnverifytime, --23 审核时间
-        cDefine13 -- 24委外订单号
-        )
-        VALUES
-        (
-        #{RdRecord01.ID},
-        '01',--1 单据类型编码  01
-        #{RdRecord01.cCode},--2 收发单据号
-        getdate(),--3 单据日期 当前日期
-        #{RdRecord01.cWhCode},--4 仓库编码
-        #{RdRecord01.cOrderCode},--5 委外订单号 验布机
-        null ,--6#{RdRecord01.cARVCode},-- 采购到货单号 空
-        #{RdRecord01.cVenCode}, --7 供应商编码
-        #{RdRecord01.cDepCode},-- 8部门编码
-        #{RdRecord01.cPersonCode},--9 业务员编码
-        null, --10#{RdRecord01.dARVDate},-- 到货日期 空
-        #{RdRecord01.cBusType},--11 业务类型-根据订单号获取或者默认  普通采购
-        #{RdRecord01.cPTCode},--12 采购类型编码   01
-        #{RdRecord01.cMemo},--13 备注
-        #{RdRecord01.cRdCode},--14 收发类别编码 1
-        0, --15红蓝标识--0>
-        1, --16收发标志-- 1
-        0, --17是否传递 0-->
-        0, --18是否传递 0-->
-        '验布机',--19创建人 验布机
-        null,--20
-        null,--21
-        null,--22
-        null,--23
-        #{RdRecord01.cOrderCode}-- 24委外订单号
+         ID,
+         cVouchType,<!--1 单据类型编码  01-->
+         cCode,<!--2 收发单据号-->
+         dDate,<!--3 单据日期 当前日期-->
+         cWhCode,<!--4 仓库编码-->
+         cOrderCode,<!--5 委外订单号 验布机-->
+         cVenCode,<!--6 供应商编码-->
+         cDepCode,<!--7 部门编码-->
+         cPersonCode,<!--8 业务员编码-->
+         cBusType,<!--9 业务类型-根据订单号获取或者默认  普通采购-->
+         cPTCode,<!--10 采购类型编码   01-->
+         cRdCode,<!--11 委外入库 默认 12-->
+         bredvouch,<!--12红蓝标识-->
+         bRdFlag,<!--13收发标志1-->
+         cSource,<!--14单据来源-->
+         bTransFlag,<!--15是否传递 0-->
+         bIsSTQc,<!--16是否传递 0-->
+         cMaker,<!--17创建人 验布机-->
+         cDefine13 <!-- 18委外订单号-->
         )
+        VALUES (
+        #{ID},
+                #{cVouchType},<!--1 单据类型编码 采购入库-->
+                #{cCode},<!--2 收发单据号-->
+                getdate(),<!--3 单据日期 当前日期-->
+                'W50081',<!--4 #{cWhCode}仓库编码-->
+                #{cOrderCode},<!--5 委外订单号 验布机-->
+                #{cVenCode}, <!--6 供应商编码-->
+                #{cDepCode},<!-- 7部门编码-->
+                #{cPersonCode},<!--8业务员编码-->
+               '委外加工', <!-- 9业务类型-根据订单号获取或者默认 委外加工-->
+               '02',<!--10采购类型编码   02-->
+                '12',<!--11 委外入库 默认12-->
+                0, <!--12红蓝标识-->
+                1, <!--13收发标志 1-->
+                '验布机',<!--14 单据来源-->
+                0, <!--15是否传递 0-->
+                0, <!--16是否传递 0-->
+                '验布机',<!--17创建人 验布机-->
+                #{cOrderCode} <!-- 18委外订单号-->
+
+               )
     </insert>
 
     <insert id="saveRdrecords01One" >
@@ -97,7 +101,6 @@
             AutoID,--1 子表主键
             ID,--2 主表主键
             cDefine22,--3 款号
-            cDefine28,--4 小PO 空
             cInvCode,--5 存货编码
             iQuantity,--6 数量
             cBatch,--7 批号
@@ -109,38 +112,33 @@
             iFlag,--13是否传递 --> 0
             iMatSettleState,--14结算状态 --> 0
             iBillSettleCount,--15结算次数 --> 0
-            iPOsID,--16 采购订单子表标识 空
-            iOMoDID,--17 委外订单子表ID  空
             cAssUnit,--18 辅计量单位编码
-            -- #{item.polishedBlank}, -- 19 光坯毛门幅CM
-            -- #{item.gramWeight}, -- 20 克重/工艺
+            cFree4, -- 19 光坯毛门幅CM
+            cFree6, -- 20 克重/工艺
             cFree5, -- 21 件数 总卷数
-            cPOID--22 订单号
+            cPOID --22 订单号
             )
             VALUES
             (
-            #{item.AutoID},--1 子表主键
-            #{item.ID},--2 主表主键
-            #{item.cDefine22},--3 款号
-           null,-- #{item.cDefine28},--4 小PO 空
-            #{item.cInvCode},--5 存货编码
-            #{item.iQuantity},--6 数量
-            #{item.cBatch},--7 批号
-            #{item.color},--8 颜色
-            #{item.cDefine30},--9 染厂色号
-            #{item.cbMemo},--10 备注
-            #{item.iordercode}, --11 订单号
-            #{item.irowno},--12 行号
+            #{AutoID},--1 子表主键
+            #{ID},--2 主表主键
+            #{cDefine22},--3 款号
+            #{cInvCode},--5 存货编码
+            #{iQuantity},--6 数量
+            #{cBatch},--7 批号
+            #{color},--8 颜色
+            #{cDefine30},--9 染厂色号
+            #{cbMemo},--10 备注
+            #{iordercode}, --11 订单号
+            #{irowno},--12 行号
             0,--13是否传递 --> 0
             0,--14结算状态 --> 0
             0,--15结算次数 --> 0
-            null ,--#{item.iPOsID},--16 采购订单子表标识 空
-            null ,--#{item.iOMoDID},--17 委外订单子表ID  空
-            #{item.unit}, -- 18 单位
-           -- #{item.polishedBlank}, -- 19 光坯毛门幅CM
-           -- #{item.gramWeight}, -- 20 克重/工艺
-            #{item.num}, -- 21 件数 总卷数
-            #{item.cPOID}--22 订单号
+            #{unit}, -- 18 单位
+            #{polishedBlank}, -- 19 光坯毛门幅CM
+            #{gramWeight}, -- 20 克重/工艺
+            #{num}, -- 21 件数 总卷数
+            #{cPOID}--22 订单号
             )
     </insert>
 

+ 40 - 36
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/service/impl/SubcontractingOrderImpl.java

@@ -90,9 +90,41 @@ public class SubcontractingOrderImpl extends ServiceImpl<SubcontractingOrderMapp
 
     @DS("multi-one")
     @Override
+    @Transactional(rollbackFor=Exception.class)
     public String saveWarehousing(List<Map<String,Object>> mapList){
 
         for(Map<String,Object> map:mapList){
+
+            //红蓝标识
+            map.put("cVouchType","01");//采购入库
+
+            //委外入库
+            map.put("cRdCode","12");//入库类别
+            map.put("cPTCode","02");//采购类型 默认 委外加工 02 类型
+            map.put("cBusType","委外加工");//业务类型 默认 委外加工 12 类型
+            map.put("dDate",new Date());//入库日期
+
+            if(map.get("cOrderCode") == null){
+                throw new RuntimeException("委外订单号为空");
+            }
+
+            Map<String,String> orderInfo = subcontractingOrderMapper.selectInfoByCode(map.get("cOrderCode").toString());
+            if(orderInfo == null){
+                throw new RuntimeException("未查询到该委外订单号:"+map.get("cOrderCode").toString());
+            }else{
+                map.put("cVenCode",orderInfo.get("cVenCode"));//供货单位  委外订单供应商-根据订单号获取
+                map.put("cDepCode",orderInfo.get("cDepCode"));//部门-根据订单号获取
+                map.put("cPersonCode",orderInfo.get("cPersonCode"));//业务员-根据订单号获取
+            }
+
+            Map<String,String> vendorInfo = subcontractingOrderMapper.selectVendorByCode(orderInfo.get("cVenCode"));
+            if(vendorInfo == null){
+                throw new RuntimeException("委外订单号的供应商未维护成品仓库:"+orderInfo.get("cVenCode"));
+            }else{
+                map.put("cWhCode",vendorInfo.get("cVenDefine2"));// 通过单据供应商找到对应的成品仓库
+            }
+//
+
             //获取新的主表主键
             Map<String,Integer> pkMap = this.callGetUAMaxPK("rd");
             map.put("ID",pkMap.get("iFatherId"));
@@ -104,39 +136,8 @@ public class SubcontractingOrderImpl extends ServiceImpl<SubcontractingOrderMapp
                 throw new RuntimeException("获取入库单号失败");
             }
 
-            //红蓝标识
-            if(map.get("cVouchType").toString().equals("0")){
-                map.put("cVouchType",0);//采购入库
-            }else{
-                throw new RuntimeException("cVouchType:只能进行采购入库(0)");
-            }
-            //入库类别、采购类型
-            if(map.get("cRdCode").toString().equals("委外入库")){
-                //委外入库
-                map.put("cRdCode",12);//入库类别
-                map.put("cPTCode",02);//采购类型
-            }else{
-                throw new RuntimeException("入库类别:只能进行委外入库");
-            }
-            map.put("dDate",new Date());//入库日期
-            if(map.get("cWhCode") == null){
-                throw new RuntimeException("cWhCode为空");
-            }
-            if(map.get("cOrderCode") == null){
-                throw new RuntimeException("委外订单号为空");
-            }
-            if(map.get("cBusType") == null){
-                map.put("cBusType","委外加工");//业务类型-根据订单号获取或者默认
-            }
-
-//            map.put("cVenCode","");//供货单位  委外订单供应商-根据订单号获取
-//            map.put("cDepCode","");//部门-根据订单号获取
-//            map.put("cPersonCode","");//业务员-根据订单号获取
-//
-//            map.put("cMemo","");//订单备注
-
             //插入主表
-            subcontractingOrderMapper.saveRdRecord01One(map);
+            this.baseMapper.saveRdRecord01One(map);
             //子表
             if(map.get("item") != null && !map.get("item").equals("")){
                 List<Map<String,Object>> itemList=(List<Map<String,Object>>)map.get("item");
@@ -161,10 +162,13 @@ public class SubcontractingOrderImpl extends ServiceImpl<SubcontractingOrderMapp
                     if(itemMap.get("iQuantity") == null){
                         throw new RuntimeException("iQuantity为空");
                     }
-                    //itemMap.put("unit",rowId);//单位    必填
-                    if(itemMap.get("unit") == null){
-                        throw new RuntimeException("unit为空");
+                    Map<String,String> invInfo = subcontractingOrderMapper.selectUnitByCode(itemMap.get("cInvCode").toString());
+                    if(invInfo == null){
+                        throw new RuntimeException("未查询到该存货编码:"+itemMap.get("cInvCode"));
+                    }else{
+                        itemMap.put("unit",invInfo.get("cComUnitCode"));//单位    必填
                     }
+
                     //itemMap.put("cBatch",rowId);//批号  必填
                     if(itemMap.get("cBatch") == null){
                         throw new RuntimeException("cBatch为空");
@@ -182,7 +186,7 @@ public class SubcontractingOrderImpl extends ServiceImpl<SubcontractingOrderMapp
                     if(itemMap.get("num") == null){
                         throw new RuntimeException("num为空");
                     }
-                    subcontractingOrderMapper.saveRdRecord01One(itemMap);
+                    subcontractingOrderMapper.saveRdrecords01One(itemMap);
                 }
             }else{
                 throw new RuntimeException("item为空");