Browse Source

采购入库

chenc 3 years ago
parent
commit
c8a52195f4

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

@@ -171,35 +171,41 @@ public class PurchaseWarehousingController extends JeecgController<PurchaseWareh
   public Result saveBath(@RequestBody JSONArray json){
   	Result result=new Result();
 
-	if(json!=null&&json.size()>0){
-		//账套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++){
-			//获取对象
-			JSONObject jsonObject=json.getJSONObject(i);
-			//获取账套
-			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);
-			}
-		}
-//		purchaseWarehousingService.aa();
-//		purchaseWarehousingService.bb();
-		purchaseWarehousingService.savaOne(mapListOne);
-//		result.setResult(mapList);
-	}
+	  try {
+		  if(json!=null&&json.size()>0){
+              //账套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++){
+                  //获取对象
+                  JSONObject jsonObject=json.getJSONObject(i);
+                  //获取账套
+                  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);
+                  }
+              }
+      //		purchaseWarehousingService.aa();
+      //		purchaseWarehousingService.bb();
+              purchaseWarehousingService.savaOne(mapListOne);
+      //		result.setResult(mapList);
+			  result.success("操作成功");
+          }
+	  } catch (Exception e) {
+		  e.printStackTrace();
+		  result.error500("操作失败:"+e.getMessage());
+	  }
 
-  	return result;
+	  return result;
   }
 
   public Map<String,Object> updateMap(JSONObject jsonObject){

+ 29 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/mapper/PurchaseWarehousingMapper.java

@@ -24,6 +24,8 @@ public interface PurchaseWarehousingMapper extends BaseMapper<PurchaseWarehousin
     */
     Integer getMaxId(@Param("id")String id,@Param("tableName")String tableName);
 
+    Integer getMaxCode(@Param("code")String code,@Param("tableName")String tableName);
+
     /**
     * @Author chenchuang
     * @Description //TODO 采购入库主表新增
@@ -41,4 +43,31 @@ public interface PurchaseWarehousingMapper extends BaseMapper<PurchaseWarehousin
     * @return void
     */
     void saveRdrecords01One(@Param("list")List<Map<String,Object>> list);
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据人员编码查询部门编码
+    * @Date 2022/4/14 13:34
+    * @Param [cPersonCode]
+    * @return java.util.Map<java.lang.String,java.lang.Object>
+    */
+    Map<String,Object> getPerson(@Param("cPersonCode")String cPersonCode);
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据委外子表id获取委外子表相关信息
+    * @Date 2022/4/14 15:00
+    * @Param [moDetailsId]
+    * @return java.util.Map<java.lang.String,java.lang.Object>
+    */
+    Map<String,Object> getOMMoDetails(@Param("moDetailsId")String moDetailsId);
+
+    /**
+    * @Author chenchuang
+    * @Description //TODO 根据供应商编码
+    * @Date 2022/4/14 16:35
+    * @Param [cVenCode]
+    * @return java.util.Map<java.lang.String,java.lang.Object>
+    */
+    Map<String,Object> getVendor(@Param("cVenCode")String cVenCode);
 }

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

@@ -6,6 +6,10 @@
         select max(${id}) from ${tableName}
     </select>
 
+    <select id="getMaxCode" resultType="java.lang.Integer">
+        select top 1 ${code} from ${tableName} ORDER BY dDate desc
+    </select>
+
     <insert id="saveRdRecord01One">
         INSERT INTO RdRecord01
         (
@@ -71,11 +75,14 @@
               cFree1,
               cDefine30,
               cbMemo,
-              cPOID,
+            iordercode,
               irowno,
               iFlag,<!--是否传递 -->
             iMatSettleState,<!--结算状态 -->
-            iBillSettleCount<!--结算次数 -->
+            iBillSettleCount,<!--结算次数 -->
+            iPOsID,
+            iOMoDID,
+            cPOID
             )
             VALUES
             (
@@ -93,9 +100,23 @@
             #{item.irowno},
             0,
             0,
-            0
+            0,
+            #{item.iPOsID},
+            #{item.iOMoDID},
+            #{item.cPOID}
             )
         </foreach>
     </insert>
 
+    <select id="getPerson" parameterType="java.lang.String" resultType="java.util.HashMap">
+        select * from Person where cPersonCode=#{cPersonCode}
+    </select>
+
+    <select id="getOMMoDetails" parameterType="java.lang.String" resultType="java.util.HashMap">
+      select * from OM_MODetails where moDetailsId=#{moDetailsId}
+    </select>
+
+    <select id="getVendor" parameterType="java.lang.String" resultType="java.util.HashMap">
+        select * from Vendor where cVenCode=#{cVenCode}
+    </select>
 </mapper>

+ 47 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/openApi/service/impl/PurchaseWarehousingServiceImpl.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.openApi.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import org.apache.commons.lang.StringUtils;
 import org.jeecg.modules.openApi.entity.PurchaseWarehousing;
 import org.jeecg.modules.openApi.mapper.PurchaseWarehousingMapper;
 import org.jeecg.modules.openApi.service.IPurchaseWarehousingService;
@@ -32,7 +33,7 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
     @Autowired
     private PurchaseWarehousingMapper purchaseWarehousingMapper;
 
-    @DS("multi-datasource1")
+    @DS("multi-one")
     @Override
     public void savaOne(List<Map<String, Object>> mapList) {
         if(mapList!=null&&mapList.size()>0){
@@ -41,6 +42,13 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
                 //获取主表最大编码
                 map.put("ID",getMaxId("ID","RdRecord01"));
                 System.out.println(map.get("ID"));
+                //获取最大code
+                Integer cCode=this.baseMapper.getMaxCode("cCode","RdRecord01");
+                if(cCode!=null){
+                    map.put("cCode",cCode+1);
+                }else{
+                    throw new RuntimeException("获取入库单号失败");
+                }
                 //红蓝标识
                 if(map.get("cVouchType").toString().equals("1")){
                     map.put("cVouchType",0);//采购入库
@@ -57,11 +65,28 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
                     map.put("cRdCode",12);
                     map.put("cPTCode",02);
                 }
+                //获取部门编码
+                String cPersonCode=map.get("cPersonCode").toString();
+                if(StringUtils.isNotBlank(cPersonCode)){
+                    Map<String,Object> personMap=this.baseMapper.getPerson(cPersonCode);
+                    map.put("cDepCode",personMap.get("cDepCode"));
+                }else{
+                    throw new RuntimeException("部门编码不能为空");
+                }
+                //获取根据供应商获取仓库编码
+                String cVenCode=String.valueOf(map.get("cVenCode"));
+                if(StringUtils.isNotBlank(cVenCode)){
+
+                }else{
+                    throw new RuntimeException("供应商编码不能为空");
+                }
+
                 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");
                     Integer rowId=1;
+                    String message="";
                     for(Map<String,Object> itemMap:itemList){
                         //获取子表最大编码
                         itemMap.put("AutoID",getMaxId("AutoID","rdrecords01"));
@@ -69,8 +94,29 @@ public class PurchaseWarehousingServiceImpl extends ServiceImpl<PurchaseWarehous
                         itemMap.put("ID",map.get("ID"));
                         //行号
                         itemMap.put("irowno",rowId);
+                        //订单号
+                        itemMap.put("cPOID",String.valueOf(map.get("cOrderCode")));
+                        //订单子表id
+                        if(map.get("cRdCode").toString().equals("采购入库")){
+                            itemMap.put("iPOsID",itemMap.get("moDetailId"));//采购订单行id
+                            itemMap.put("iOMoDID","");//委外订单行id
+                        }else{//委外入库
+                            itemMap.put("iPOsID","");//采购订单行id
+                            itemMap.put("iOMoDID",itemMap.get("moDetailId"));//委外订单行id
+                            String moDetailId=String.valueOf(itemMap.get("moDetailId"));//委外订单行id
+                            if(StringUtils.isNotBlank(moDetailId)){
+                                //获取来源订单号
+                                Map<String,Object> omMoDetails=this.baseMapper.getOMMoDetails(moDetailId);
+                                itemMap.put("iordercode",omMoDetails.get("csoordercode"));//来源订单号
+                            }else{
+                                message=message+"缺少委外订单行id;";
+                            }
+                        }
                         rowId++;
                     }
+                    if(StringUtils.isNotBlank(message)){
+                        throw new RuntimeException(message);
+                    }
                     this.baseMapper.saveRdrecords01One(itemList);
                 }
             }