From 19df4ea6a5bfbfb7522c18fc6d0cde09ca216065 Mon Sep 17 00:00:00 2001
From: 杨凯 <398860375@qq.com>
Date: 星期二, 17 十月 2023 22:06:09 +0800
Subject: [PATCH] 上传核心业务服务

---
 consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java |  139 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 131 insertions(+), 8 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java b/consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java
index 7443e80..e321550 100644
--- a/consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/core/WarehouseCoreService.java
@@ -1,9 +1,15 @@
 package com.consum.base.core;
 
+import com.consum.base.core.tools.SqlParameter;
+import com.consum.base.core.util.DateUtil;
+import com.consum.model.po.*;
+import com.walker.infrastructure.utils.NumberGenerator;
+import com.walker.jdbc.service.BaseServiceImpl;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.Assert;
+
+import java.util.List;
 
 
 /**
@@ -11,20 +17,31 @@
  */
 @Service
 @Slf4j
-public class WarehouseCoreService {
+public class WarehouseCoreService extends BaseServiceImpl {
+
+    public static void main(String[] args) {
+        WhGoods goods = new WhGoods();
+        goods.setId(1l);
+        goods.setWarehouseId(111l);
+        goods.setSupplier("娌冲崡閲戞槑婧�");
+
+        WhGoods_mapper mapper = new WhGoods_mapper(goods);
+        System.out.println(mapper.getInsertSql_().getParameters());
+        System.out.println(mapper.getInsertSql_().getSql());
+    }
 
     /**
      * 缁熶竴鍑哄叆搴�
      */
-    public CheckWarehouseResult unifyCheck(CheckWarehouseParam param) {
+    public CheckWarehouseResult[] unifyCheck(CheckWarehouseParam param) {
         // TODO: 10/10/2023 姝ゅ鍔犱簡鍞竴閿侊紝浼氬奖鍝嶆�ц兘锛屾�濊�冩槸鍚︽湁鏇村悎閫傜殑鍔炴硶
         try {
             Assert.notNull(param, "wareHouse param can not null !");
             Assert.notNull(param.getWarehouseId(), "wareHouse id can not null");
-            CheckWarehouseResult result;
+            CheckWarehouseResult[] result;
             synchronized (param.getWarehouseId()) {
                 if (param.getIsCheckIn()) {
-                    result = checkin(param);
+                    result = new CheckWarehouseResult[]{checkin(param)};
                 } else {
                     result = checkout(param);
                 }
@@ -40,14 +57,120 @@
     /**
      * 鍑哄簱
      */
-    private CheckWarehouseResult checkout(CheckWarehouseParam param) {
-        return new CheckWarehouseResult();
+    private CheckWarehouseResult[] checkout(CheckWarehouseParam param) {
+       String sql = "SELECT\n" +
+                "	* \n" +
+                "FROM\n" +
+                "	WH_GOODS \n" +
+                "WHERE\n" +
+                "	WAREHOUSE_ID =:WAREHOUSE_ID \n" +
+                "	AND BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID \n" +
+                "   AND STATES =1 \n" +
+                "   AND WH_COUNT > 0 \n" +
+                "  order by PROCURE_DATE asc PRICE DESC";
+        SqlParameter parameter = new SqlParameter();
+        parameter.add("WAREHOUSE_ID",param.getWarehouseId())
+                .add("BASE_GOODS_MODELS_ID",param.getModelId());
+        List<WhGoods> goodsList = select(sql,parameter,new WhGoods());
+
+        for (WhGoods goods : goodsList){
+
+        }
+
+
+
+        return null;
+    }
+
+    private BaseWarehouse getWarehouse(long id){
+        BaseWarehouse w =  get(new BaseWarehouse(),"ID=?",new Object[]{id});
+        return w;
     }
 
     /**
      * 鍏ュ簱
      */
-    private CheckWarehouseResult checkin(CheckWarehouseParam param) {
+    private CheckWarehouseResult checkin(CheckWarehouseParam param) throws RuntimeException {
+
+        //濡傛灉鏄噰璐叆搴�
+        if (param.getFirst_input_type() ==1){
+            WhFormProcureModel procureModel = get(new WhFormProcureModel(),"ID=?",new Object[]{param.getFirstInputCode()});
+            WhFormProcure procure = get(new WhFormProcure(),"ID=?",new Object[]{procureModel.getWhFormProcureId()});
+
+            WhGoods goods = new WhGoods();
+            goods.setId(NumberGenerator.getLongSequenceNumber());
+            goods.setBaseGoodsTemplateId(procureModel.getBaseGoodsTemplateId());
+            goods.setGoodsTemplateName(procureModel.getGoodsTemplateName());
+            goods.setBaseGoodsModelsId(procureModel.getBaseGoodsModelsId());
+            goods.setBaseGoodsModelsName(procureModel.getBaseGoodsModelsName());
+            goods.setWhCount(procureModel.getCounts());
+            goods.setTransferCount(0);
+            goods.setAllCount(procureModel.getCounts());
+            goods.setFirstInputCode(param.getFirstInputCode());
+            goods.setFirstInputType(param.getFirst_input_type());
+            goods.setFirstInputHisId(NumberGenerator.getLongSequenceNumber());
+            goods.setWarehouseId(procure.getWarehouseId());
+            goods.setWarehouseName(procure.getWarehouseName());
+            goods.setSupplier(procureModel.getSupplier());
+            goods.setUnit(procureModel.getUnit());
+            goods.setPrice(procureModel.getPrice());
+            goods.setProcureDate(procure.getIncomeTime());
+            goods.setBackDate(procure.getIncomeTime());
+            goods.setStates(1);
+            insert(goods);
+
+            CheckWarehouseResult result = new CheckWarehouseResult();
+            result.setWhGoods(goods);
+            result.setInitial_count(0);
+            result.setEnd_count(goods.getAllCount());
+            return result;
+        //闆舵槦鍏ュ簱
+        } else if (param.getFirst_input_type() ==2){
+
+            return null;
+
+        }
+
+        String sql = "SELECT\n" +
+                "	* \n" +
+                "FROM\n" +
+                "	WH_GOODS \n" +
+                "WHERE\n" +
+                "	WAREHOUSE_ID =:WAREHOUSE_ID \n" +
+                "	AND FIRST_INPUT_CODE =:FIRST_INPUT_CODE \n" +
+                "	AND BASE_GOODS_MODELS_ID =:BASE_GOODS_MODELS_ID" +
+                "  order by PROCURE_DATE desc PRICE asc";
+        SqlParameter parameter = new SqlParameter();
+        parameter.add("WAREHOUSE_ID",param.getWarehouseId())
+                .add("FIRST_INPUT_CODE",param.getFirstInputCode())
+                .add("BASE_GOODS_MODELS_ID",param.getModelId());
+
+        List<WhGoods> goodsList = select(sql,parameter,new WhGoods());
+
+        if (goodsList == null || goodsList.size() == 0){
+           new RuntimeException("鏌ヤ笉鍒板巻鍙插簱瀛�");
+           return null;
+        }
+
+        for (WhGoods goods : goodsList){
+            CheckWarehouseResult result = new CheckWarehouseResult();
+            result.setWhGoods(goods);
+            result.setInitial_count(goods.getWhCount());
+            result.setEnd_count(goods.getWhCount() + param.getCount());
+
+            WhGoods newGoods = new WhGoods();
+            newGoods.setId(goods.getId());
+            newGoods.setWhCount(result.getEnd_count());
+            newGoods.setAllCount(goods.getAllCount() + param.getCount());
+            newGoods.setStates(1);
+            newGoods.setBackDate(DateUtil.getCurrentDateFor14());
+            this.update(newGoods);
+
+            return result;
+        }
+
+
+
         return new CheckWarehouseResult();
     }
 

--
Gitblit v1.9.1