From eb8577aac0f1f7d783ecd067e7eef05e53e7fd10 Mon Sep 17 00:00:00 2001
From: luqingyang <lqy5492@163.com>
Date: 星期五, 27 十月 2023 17:24:26 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 consum-base/src/main/java/com/consum/base/service/LWhGoodsRecordService.java       |   16 
 consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureGoodsParams.java      |   97 +++++
 consum-base/src/main/java/com/consum/base/core/tools/MapRowMapper.java             |   31 +
 consum-base/src/main/java/com/consum/base/service/LWhFormProcureService.java       |   51 +++
 consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureExtend.java           |   35 ++
 consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java   |    5 
 consum-base/src/main/java/com/consum/base/pojo/LWarehouseFlowParam.java            |  116 ++++++
 consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java |   38 ++
 consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureParam.java            |  162 +++++++++
 consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java |  290 +++++++++++++++++
 consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java       |   63 +++
 consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java   |   13 
 consum-base/src/main/java/com/consum/base/service/LWhFormProcureGoodsService.java  |   16 
 consum-base/src/main/java/com/consum/base/pojo/LWhProcureModelParams.java          |   43 ++
 14 files changed, 970 insertions(+), 6 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java b/consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java
new file mode 100644
index 0000000..bf18cec
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/controller/LWarehouseFlowController.java
@@ -0,0 +1,38 @@
+package com.consum.base.controller;
+
+import com.consum.base.BaseController;
+import com.consum.base.pojo.LWarehouseFlowParam;
+import com.consum.base.service.LWarehouseFlowService;
+import com.iplatform.model.po.S_user_core;
+import com.walker.db.page.GenericPager;
+import com.walker.web.ResponseValue;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+/**
+ * @ClassName lWarehouseFlowController
+ * @Author cy
+ * @Date 2023/10/27
+ * @Description
+ * @Version 1.0
+ **/
+@RestController
+@RequestMapping("/pc/warehouse/flow")
+public class LWarehouseFlowController extends BaseController {
+    @Resource
+    private LWarehouseFlowService lWarehouseFlowService;
+
+    @GetMapping("/list")
+    public ResponseValue queryFormProcureList(LWarehouseFlowParam param) {
+        S_user_core currentUser = this.getCurrentUser();
+        if (currentUser == null) {
+            return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        GenericPager<Map<String, Object>> genericPager = lWarehouseFlowService.queryBusinessFlow(param);
+        return ResponseValue.success(genericPager);
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java b/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
new file mode 100644
index 0000000..af38311
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
@@ -0,0 +1,290 @@
+package com.consum.base.controller;
+
+import com.consum.base.BaseController;
+import com.consum.base.core.CodeGeneratorEnum;
+import com.consum.base.core.CodeGeneratorService;
+import com.consum.base.core.WhBusinessEnum;
+import com.consum.base.pojo.LWhFormProcureExtend;
+import com.consum.base.pojo.LWhFormProcureGoodsParams;
+import com.consum.base.pojo.LWhFormProcureParam;
+import com.consum.base.pojo.LWhProcureModelParams;
+import com.consum.base.service.*;
+import com.consum.model.po.*;
+import com.iplatform.model.po.S_user_core;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.CollectionUtils;
+import com.walker.infrastructure.utils.DateUtils;
+import com.walker.infrastructure.utils.NumberGenerator;
+import com.walker.web.ResponseValue;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName LWhFormProcureController
+ * @Author cy
+ * @Date 2023/10/27
+ * @Description
+ * @Version 1.0
+ **/
+@RestController
+@RequestMapping("/pc/whForm/procure")
+public class LWhFormProcureController extends BaseController {
+    @Resource
+    private LWhFormProcureService lWhFormProcureService;
+    @Resource
+    private BaseWarehouseServiceImpl baseWarehouseService;
+    @Resource
+    private FinSysTenantServiceImpl finSysTenantService;
+    @Resource
+    private CodeGeneratorService codeGeneratorService;
+    @Resource
+    private LWhFormProcureGoodsService lWhFormProcureGoodsService;
+    @Resource
+    private LWhFormProcureCoreService lWhFormProcureCoreService;
+    @Resource
+    private LWhGoodsService lWhGoodsService;
+    @Resource
+    private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
+    @Resource
+    private LWhProcureModelService lWhProcureModelService;
+
+    /**
+     * @Description 鏂板
+     */
+    @PostMapping("/add")
+    public ResponseValue add(@RequestBody LWhFormProcureParam param) {
+        Long warehouseId = param.getWarehouseId();
+        if (param.getWarehouseId() == null) {
+            return ResponseValue.error("浠撳簱ID涓嶈兘涓虹┖");
+        }
+        BaseWarehouse baseWarehouse = baseWarehouseService.getById(warehouseId);
+        // 鍙兘娣诲姞鏈満鏋勪粨搴撶殑杩涜揣鍗�
+        //??????
+        //
+
+        List<LWhFormProcureGoodsParams> procureGoods = param.getProcureGoods();
+        if (CollectionUtils.isEmpty(procureGoods)) {
+            return ResponseValue.error("閲囪喘鍗曚笉鑳戒负绌�");
+        }
+
+        S_user_core currentUser = this.getCurrentUser();
+        // 閲囪喘鍗昳d
+        Long whFormProcureId = param.getId();
+        if (whFormProcureId == null) {
+            whFormProcureId = NumberGenerator.getLongSequenceNumber();
+        }
+        long procureTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
+
+        ArrayList<LWhFormProcureGoods> procureGoodList = new ArrayList<>();
+        ArrayList<LWhProcureModel> whProcureModeLlist = new ArrayList<>();
+
+        for (int i = 0; i < procureGoods.size(); i++) {
+            LWhFormProcureGoodsParams procureGoodT = procureGoods.get(i);
+            Long baseCategoryId = procureGoodT.getBaseCategoryId();
+            Long baseGoodsTemplateId = procureGoodT.getBaseGoodsTemplateId();
+            String supplier = procureGoodT.getSupplier();
+            List<LWhProcureModelParams> models = procureGoodT.getModels();
+            if (CollectionUtils.isEmpty(models)) {
+                return ResponseValue.error("閲囪喘鍗曚笉鑳戒负绌�");
+            }
+            LWhFormProcureGoods procureGood = new LWhFormProcureGoods();
+            long fromProcureGoodsId = NumberGenerator.getLongSequenceNumber();
+            procureGood.setId(fromProcureGoodsId);
+            procureGood.setWhFormProcureId(whFormProcureId);
+            procureGood.setBaseCategoryId(baseCategoryId);
+            procureGood.setBaseGoodsTemplateId(baseGoodsTemplateId);
+            procureGood.setGoodsTemplateName(null);
+            procureGood.setSupplier(supplier);
+            procureGood.setSort(i);
+            for (LWhProcureModelParams modelT : models) {
+                Integer counts = modelT.getCounts();
+                if (counts == null || counts <= 0) {
+                    return ResponseValue.error("鍨嬪彿鐨勯噰璐暟閲忓彧鑳戒负姝f暣鏁�");
+                }
+                Long price = modelT.getPrice();
+                if (price == null || price <= 0) {
+                    return ResponseValue.error("鍨嬪彿鐨勯噰璐环鏍煎彧鑳戒负姝f暟");
+                }
+                Long baseGoodsModelsId = modelT.getBaseGoodsModelsId();
+                if (baseGoodsModelsId == null) {
+                    return ResponseValue.error("閲囪喘鐨勪环鍨嬪彿鏈壘鍒�");
+                }
+                //鏌ヨ鍨嬪彿淇℃伅
+                Map<String, Object> tempGoodsInfo = baseGoodsTemplateService.queryGoodsInfoByModelId(baseGoodsModelsId);
+                if (tempGoodsInfo == null) {
+                    return ResponseValue.error("閲囪喘鐨勪环鍨嬪彿鏈壘鍒�");
+                }
+                // 鏌ヨ鍨嬪彿搴撳瓨
+                int goodsModelNum = lWhGoodsService.queryGoodsModelNum(warehouseId, baseGoodsModelsId, (short) 1, null);
+                LWhProcureModel model = new LWhProcureModel();
+                model.setId(NumberGenerator.getLongSequenceNumber());
+                model.setFromProcureGoodsId(fromProcureGoodsId);
+                model.setBusinessType(WhBusinessEnum.CAIGOU.getValue() + 0);
+                model.setBusinessId(whFormProcureId);
+                model.setBaseGoodsModelsId(baseGoodsModelsId);
+                model.setPrice(price);
+                model.setCounts(counts);
+                model.setWorehouseCount(goodsModelNum);
+                model.setSupplier(supplier);
+                whProcureModeLlist.add(model);
+            }
+            procureGoodList.add(procureGood);
+        }
+        lWhFormProcureGoodsService.insertBatch(procureGoodList);
+        lWhProcureModelService.insertBatch(whProcureModeLlist);
+
+        // 鎻掑叆 閲囪喘鍗曠墿鍝併�怢_WH_FORM_PROCURE_GOODS銆�
+        LWhFormProcure lWhFormProcure = new LWhFormProcure();
+        lWhFormProcure.setId(whFormProcureId);
+        lWhFormProcure.setBusinessFormCode(codeGeneratorService.createCodeByPrefix(CodeGeneratorEnum.Procure_Warehouse.getValue(), 10));
+        lWhFormProcure.setWarehouseId(warehouseId);
+        lWhFormProcure.setWarehouseName(baseWarehouse.getWarehouseName());
+        lWhFormProcure.setBuyerId(currentUser.getId());
+        lWhFormProcure.setBuyerName(currentUser.getNick_name());
+        lWhFormProcure.setProcureTime(procureTime);
+        lWhFormProcure.setProcureDoc(param.getProcureDoc());
+        lWhFormProcure.setBuyType(param.getBuyType());
+        lWhFormProcure.setStates(1);
+        lWhFormProcure.setAgencyId(baseWarehouse.getAgencyId());
+        lWhFormProcure.setAgencyName(baseWarehouse.getAgencyName());
+        int result = lWhFormProcureService.insert(lWhFormProcure);
+        if (result > 0) return ResponseValue.success(1);
+        return ResponseValue.error("鏂板澶辫触锛�");
+    }
+
+    /**
+     * @Description 鍒楄〃鏌ヨ
+     */
+    @GetMapping("/list")
+    public ResponseValue queryFormProcureList(LWhFormProcureParam param) {
+        S_user_core currentUser = this.getCurrentUser();
+        if (currentUser == null) {
+            return ResponseValue.error("鐧诲綍鐢ㄦ埛淇℃伅涓嶅瓨鍦�");
+        }
+        FinSysTenantUser sysInfo = getSysInfo();
+
+        //鍙兘鏌ヨ鏈骇 鍙婁互涓嬫満鏋勭殑杩涜揣鍗�
+        //??????
+
+        GenericPager genericPager = lWhFormProcureService.queryFormProcureList(param);
+        List<LWhFormProcure> datas = genericPager.getDatas();
+        ArrayList<LWhFormProcureExtend> newDatas = new ArrayList<>();
+        if (!CollectionUtils.isEmpty(datas)) {
+            datas.forEach(item -> {
+                // 鏌ヨ鍨嬪彿鏁伴噺
+                LWhProcureModel lWhProcureModel = new LWhProcureModel();
+                lWhProcureModel.setBusinessType(1);
+                lWhProcureModel.setBusinessId(item.getId());
+                List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel);
+                LWhFormProcureExtend formProcureExtend = new LWhFormProcureExtend();
+                BeanUtils.copyProperties(item, formProcureExtend);
+                formProcureExtend.setModels(models);
+                newDatas.add(formProcureExtend);
+            });
+        }
+        try {
+            Field fieldDatas = GenericPager.class.getDeclaredField("datas");
+            fieldDatas.setAccessible(true);
+            fieldDatas.set(genericPager, newDatas);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+//        genericPager.setDatas(newDatas);
+        return ResponseValue.success(genericPager);
+    }
+
+    /**
+     * @Description 缂栬緫
+     */
+    @PostMapping("/edit")
+    public ResponseValue edit(@RequestBody LWhFormProcureParam param) {
+        ResponseValue delFlag = delById(param.getId());
+        if (delFlag.getCode() == ResponseValue.CODE_SUCCESS) {
+            return this.add(param);
+        }
+        return ResponseValue.error("缂栬緫澶辫触锛�");
+    }
+
+    /**
+     * @Description 鏍规嵁id鍒犻櫎
+     */
+    @DeleteMapping("/del")
+    public ResponseValue delById(Long id) {
+        if (id == null) {
+            return ResponseValue.error("鍙傛暟涓嶈兘涓虹┖锛�");
+        }
+        LWhFormProcure lWhFormProcure = lWhFormProcureService.get(new LWhFormProcure(id));
+        if (lWhFormProcure == null) {
+            return ResponseValue.error("鍒犻櫎澶辫触锛�");
+        }
+        if (lWhFormProcure.getStates() != 1) {
+            return ResponseValue.error("寰呭叆搴撶姸鎬佹墠鑳藉垹闄わ紒");
+        }
+        int num = lWhFormProcureService.delete(new LWhFormProcure(id));
+        if (num == 0) {
+            return ResponseValue.error("鍒犻櫎澶辫触锛�");
+        }
+        lWhFormProcureGoodsService.update("delete from L_WH_FORM_PROCURE_GOODS where WH_FORM_PROCURE_ID=" + id);
+
+        lWhProcureModelService.update("delete from L_WH_PROCURE_MODEL where BUSINESS_TYPE =1 and BUSINESS_ID=" + id);
+        return ResponseValue.success(1);
+    }
+
+    /**
+     * 鍏ュ簱鎿嶄綔
+     */
+    @PostMapping("/income")
+    public ResponseValue income(Long id) {
+        String errMsg = lWhFormProcureCoreService.doProcure(id, getCurrentUser());
+        if (errMsg == null) {
+            return ResponseValue.success();
+        }
+        return ResponseValue.error(errMsg);
+    }
+
+    /**
+     * 鏍规嵁id鏌ヨ璇︽儏
+     */
+    @GetMapping("/detail")
+    public ResponseValue getById(Long id) throws IllegalAccessException {
+        if (id == null) {
+            return ResponseValue.error("閲囪喘鍗昳d涓虹┖");
+        }
+        LWhFormProcure lWhFormProcure = lWhFormProcureService.get(new LWhFormProcure(id));
+        LWhFormProcureExtend formProcureExtend = new LWhFormProcureExtend();
+        BeanUtils.copyProperties(lWhFormProcure, formProcureExtend);
+
+        // 鐗╁搧
+        LWhFormProcureGoods lWhFormProcureGoods = new LWhFormProcureGoods();
+        lWhFormProcureGoods.setWhFormProcureId(id);
+        List<LWhFormProcureGoods> formProcureGoods = lWhFormProcureGoodsService.select(lWhFormProcureGoods);
+
+        Field fieldModels = null;
+        try {
+            fieldModels = LWhFormProcureGoodsParams.class.getDeclaredField("models");
+        } catch (NoSuchFieldException e) {
+            e.printStackTrace();
+        }
+        fieldModels.setAccessible(true);
+        ArrayList<LWhFormProcureGoodsParams> procureGoodsParams = new ArrayList<>();
+        for (LWhFormProcureGoods formProcureGood : formProcureGoods) {
+            LWhFormProcureGoodsParams lWhFormProcureGoodsParams = new LWhFormProcureGoodsParams();
+            BeanUtils.copyProperties(formProcureGood, lWhFormProcureGoodsParams);
+
+            // 鏌ヨ鍨嬪彿鏁伴噺
+            LWhProcureModel lWhProcureModel = new LWhProcureModel();
+            lWhProcureModel.setFromProcureGoodsId(formProcureGood.getId());
+            List<LWhProcureModel> models = lWhProcureModelService.select(lWhProcureModel);
+            fieldModels.set(lWhFormProcureGoodsParams, models);
+            procureGoodsParams.add(lWhFormProcureGoodsParams);
+        }
+        formProcureExtend.setProcureGoods(procureGoodsParams);
+        return ResponseValue.success("鏌ヨ鎴愬姛!", formProcureExtend);
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/core/tools/MapRowMapper.java b/consum-base/src/main/java/com/consum/base/core/tools/MapRowMapper.java
new file mode 100644
index 0000000..721cbac
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/core/tools/MapRowMapper.java
@@ -0,0 +1,31 @@
+package com.consum.base.core.tools;
+
+import org.springframework.jdbc.core.RowMapper;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @ClassName MapRowMapper
+ * @Author cy
+ * @Date 2023/10/27
+ * @Description
+ * @Version 1.0
+ **/
+
+public class MapRowMapper implements RowMapper<Map<String, Object>> {
+
+    @Override
+    public Map<String, Object> mapRow(ResultSet rs, int rowNum) throws SQLException {
+        Map<String, Object> row = new HashMap<>();
+        int columnCount = rs.getMetaData().getColumnCount();
+        for (int i = 1; i <= columnCount; i++) {
+            String columnName = rs.getMetaData().getColumnName(i);
+            Object columnValue = rs.getObject(i);
+            row.put(columnName, columnValue);
+        }
+        return row;
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/LWarehouseFlowParam.java b/consum-base/src/main/java/com/consum/base/pojo/LWarehouseFlowParam.java
new file mode 100644
index 0000000..727d7fa
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/LWarehouseFlowParam.java
@@ -0,0 +1,116 @@
+package com.consum.base.pojo;
+
+import com.walker.web.param.ParamRequest;
+
+/**
+ * @ClassName LWarehouseFlowParam
+ * @Author cy
+ * @Date 2023/10/27
+ * @Description
+ * @Version 1.0
+ **/
+public class LWarehouseFlowParam extends ParamRequest {
+
+    //鍗曟嵁绫诲瀷 1 閲囪喘2 璋冩嫧 3鍑哄簱4閮ㄩ棬鍒嗗彂
+    private Short businessType;
+    // 涓氬姟鍗曟嵁缂栧彿
+    private Long businessFormCode;
+    //鐗╁搧鍚嶇О
+    private String goodsTemplateName;
+    //瑙勬牸鍨嬪彿
+    private String baseGoodsModelsName;
+
+    // 鏈烘瀯
+    private Long agencyId;
+
+    //鍒涘缓浜�
+    private String createdName;
+
+    // 鎿嶄綔鏃堕棿
+    private Long dealTimeStart;
+    private Long dealTimeEnd;
+
+    public Short getBusinessType() {
+        return businessType;
+    }
+
+    public void setBusinessType(Short businessType) {
+        this.businessType = businessType;
+    }
+
+    public Long getBusinessFormCode() {
+        return businessFormCode;
+    }
+
+    public void setBusinessFormCode(Long businessFormCode) {
+        this.businessFormCode = businessFormCode;
+    }
+
+    public String getGoodsTemplateName() {
+        return goodsTemplateName;
+    }
+
+    public void setGoodsTemplateName(String goodsTemplateName) {
+        this.goodsTemplateName = goodsTemplateName;
+    }
+
+    public String getBaseGoodsModelsName() {
+        return baseGoodsModelsName;
+    }
+
+    public void setBaseGoodsModelsName(String baseGoodsModelsName) {
+        this.baseGoodsModelsName = baseGoodsModelsName;
+    }
+
+    public Long getAgencyId() {
+        return agencyId;
+    }
+
+    public void setAgencyId(Long agencyId) {
+        this.agencyId = agencyId;
+    }
+
+    public String getCreatedName() {
+        return createdName;
+    }
+
+    public void setCreatedName(String createdName) {
+        this.createdName = createdName;
+    }
+
+    public Long getDealTimeStart() {
+        return dealTimeStart;
+    }
+
+    public void setDealTimeStart(Long dealTimeStart) {
+        this.dealTimeStart = dealTimeStart;
+    }
+
+    public Long getDealTimeEnd() {
+        return dealTimeEnd;
+    }
+
+    public void setDealTimeEnd(Long dealTimeEnd) {
+        this.dealTimeEnd = dealTimeEnd;
+    }
+
+
+    private Integer pageSize = 10;
+    private Integer pageNum = 1;
+
+    public Integer getPageSize() {
+        return pageSize;
+    }
+
+    public void setPageSize(Integer pageSize) {
+        this.pageSize = pageSize;
+    }
+
+    public Integer getPageNum() {
+        return pageNum;
+    }
+
+    public void setPageNum(Integer pageNum) {
+        this.pageNum = pageNum;
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureExtend.java b/consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureExtend.java
new file mode 100644
index 0000000..494b8e6
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureExtend.java
@@ -0,0 +1,35 @@
+package com.consum.base.pojo;
+
+import com.consum.model.po.LWhFormProcure;
+import com.consum.model.po.LWhProcureModel;
+
+import java.util.List;
+
+/**
+ * @ClassName LWhFormProcureExtend
+ * @Author cy
+ * @Date 2023/10/27
+ * @Description
+ * @Version 1.0
+ **/
+public class LWhFormProcureExtend extends LWhFormProcure {
+
+    private List<LWhProcureModel> models;
+    private List<LWhFormProcureGoodsParams> procureGoods;
+
+    public List<LWhProcureModel> getModels() {
+        return models;
+    }
+
+    public void setModels(List<LWhProcureModel> models) {
+        this.models = models;
+    }
+
+    public List<LWhFormProcureGoodsParams> getProcureGoods() {
+        return procureGoods;
+    }
+
+    public void setProcureGoods(List<LWhFormProcureGoodsParams> procureGoods) {
+        this.procureGoods = procureGoods;
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureGoodsParams.java b/consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureGoodsParams.java
new file mode 100644
index 0000000..e80c181
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureGoodsParams.java
@@ -0,0 +1,97 @@
+package com.consum.base.pojo;
+
+import com.walker.web.param.ParamRequest;
+
+import java.util.List;
+
+/**
+ * @ClassName LWhFormProcureGoodsParams
+ * @Author cy
+ * @Date 2023/10/27
+ * @Description
+ * @Version 1.0
+ **/
+public class LWhFormProcureGoodsParams extends ParamRequest {
+    //鍒嗙被缂栧彿
+    private Long baseCategoryId = null;
+    //鐗╁搧妯$増缂栧彿
+    private Long baseGoodsTemplateId = null;
+    //渚涘簲鍟�
+    private String supplier = null;
+
+    private List<LWhProcureModelParams> models;
+
+    public Long getBaseCategoryId() {
+        return baseCategoryId;
+    }
+
+    public void setBaseCategoryId(Long baseCategoryId) {
+        this.baseCategoryId = baseCategoryId;
+    }
+
+    public Long getBaseGoodsTemplateId() {
+        return baseGoodsTemplateId;
+    }
+
+    public void setBaseGoodsTemplateId(Long baseGoodsTemplateId) {
+        this.baseGoodsTemplateId = baseGoodsTemplateId;
+    }
+
+    public String getSupplier() {
+        return supplier;
+    }
+
+    public void setSupplier(String supplier) {
+        this.supplier = supplier;
+    }
+
+    public List<LWhProcureModelParams> getModels() {
+        return models;
+    }
+
+    public void setModels(List<LWhProcureModelParams> models) {
+        this.models = models;
+    }
+
+    // 涓婚敭
+    private Long id = null;
+
+    // 灞炴�у垪琛�
+    private Long whFormProcureId = null;
+
+    private String goodsTemplateName = null;
+
+    private Integer sort = null;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getWhFormProcureId() {
+        return whFormProcureId;
+    }
+
+    public void setWhFormProcureId(Long whFormProcureId) {
+        this.whFormProcureId = whFormProcureId;
+    }
+
+    public String getGoodsTemplateName() {
+        return goodsTemplateName;
+    }
+
+    public void setGoodsTemplateName(String goodsTemplateName) {
+        this.goodsTemplateName = goodsTemplateName;
+    }
+
+    public Integer getSort() {
+        return sort;
+    }
+
+    public void setSort(Integer sort) {
+        this.sort = sort;
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureParam.java b/consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureParam.java
new file mode 100644
index 0000000..295e0de
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/LWhFormProcureParam.java
@@ -0,0 +1,162 @@
+package com.consum.base.pojo;
+
+import com.walker.web.param.ParamRequest;
+
+import java.util.List;
+
+/**
+ * @ClassName LWhFormProcureParam
+ * @Author cy
+ * @Date 2023/10/27
+ * @Description
+ * @Version 1.0
+ **/
+public class LWhFormProcureParam extends ParamRequest {
+    private Long id;
+    /**
+     * 浠撳簱缂栧彿
+     */
+    private Long warehouseId;
+
+    /**
+     * 閲囪喘鎵嬬画
+     */
+    private String procureDoc;
+
+    /**
+     * 閲囪喘鏂瑰紡锛�1锛氶泦閲囷紱2=鑷噰锛�
+     */
+    private Integer buyType = null;
+
+
+    /**
+     * 閲囪喘鍗曞瀷鍙�
+     */
+    private List<LWhFormProcureGoodsParams> procureGoods;
+
+    public Long getWarehouseId() {
+        return warehouseId;
+    }
+
+    public void setWarehouseId(Long warehouseId) {
+        this.warehouseId = warehouseId;
+    }
+
+    public String getProcureDoc() {
+        return procureDoc;
+    }
+
+    public void setProcureDoc(String procureDoc) {
+        this.procureDoc = procureDoc;
+    }
+
+    public Integer getBuyType() {
+        return buyType;
+    }
+
+    public void setBuyType(Integer buyType) {
+        this.buyType = buyType;
+    }
+
+    public List<LWhFormProcureGoodsParams> getProcureGoods() {
+        return procureGoods;
+    }
+
+    public void setProcureGoods(List<LWhFormProcureGoodsParams> procureGoods) {
+        this.procureGoods = procureGoods;
+    }
+
+    /**
+     * 鍏ュ簱鍗曞彿
+     */
+    private String businessFormCode;
+    /**
+     * 鐗╁搧妯$増鍚嶇О
+     */
+    private String goodsTemplateName;
+    /**
+     * 鏈烘瀯
+     */
+    private Long agencyId;
+    /**
+     * 鍒涘缓浜�
+     */
+    private String buyerName;
+    /**
+     * 1=寰呭叆搴擄紱2=宸插叆搴�
+     */
+    private Short states;
+
+    /**
+     * 鍏ュ簱鏃堕棿 寮�濮�
+     */
+    private Long incomeTimeStart;
+    /**
+     * 鍏ュ簱鏃堕棿 缁撴潫
+     */
+    private Long incomeTimeEnd;
+
+    public String getBusinessFormCode() {
+        return businessFormCode;
+    }
+
+    public void setBusinessFormCode(String businessFormCode) {
+        this.businessFormCode = businessFormCode;
+    }
+
+    public String getGoodsTemplateName() {
+        return goodsTemplateName;
+    }
+
+    public void setGoodsTemplateName(String goodsTemplateName) {
+        this.goodsTemplateName = goodsTemplateName;
+    }
+
+    public Long getAgencyId() {
+        return agencyId;
+    }
+
+    public void setAgencyId(Long agencyId) {
+        this.agencyId = agencyId;
+    }
+
+    public String getBuyerName() {
+        return buyerName;
+    }
+
+    public void setBuyerName(String buyerName) {
+        this.buyerName = buyerName;
+    }
+
+    public Short getStates() {
+        return states;
+    }
+
+    public void setStates(Short states) {
+        this.states = states;
+    }
+
+    public Long getIncomeTimeStart() {
+        return incomeTimeStart;
+    }
+
+    public void setIncomeTimeStart(Long incomeTimeStart) {
+        this.incomeTimeStart = incomeTimeStart;
+    }
+
+    public Long getIncomeTimeEnd() {
+        return incomeTimeEnd;
+    }
+
+    public void setIncomeTimeEnd(Long incomeTimeEnd) {
+        this.incomeTimeEnd = incomeTimeEnd;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/pojo/LWhProcureModelParams.java b/consum-base/src/main/java/com/consum/base/pojo/LWhProcureModelParams.java
new file mode 100644
index 0000000..ba90069
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/pojo/LWhProcureModelParams.java
@@ -0,0 +1,43 @@
+package com.consum.base.pojo;
+
+import com.walker.web.param.ParamRequest;
+
+/**
+ * @ClassName LWhProcureModelParams
+ * @Author cy
+ * @Date 2023/10/27
+ * @Description
+ * @Version 1.0
+ **/
+public class LWhProcureModelParams extends ParamRequest {
+    // //瑙勬牸鍨嬪彿缂栧彿
+    private Long baseGoodsModelsId = null;
+    //浠锋牸
+    private Long price = null;
+    //鏁伴噺
+    private Integer counts = null;
+
+    public Long getPrice() {
+        return price;
+    }
+
+    public void setPrice(Long price) {
+        this.price = price;
+    }
+
+    public Integer getCounts() {
+        return counts;
+    }
+
+    public void setCounts(Integer counts) {
+        this.counts = counts;
+    }
+
+    public Long getBaseGoodsModelsId() {
+        return baseGoodsModelsId;
+    }
+
+    public void setBaseGoodsModelsId(Long baseGoodsModelsId) {
+        this.baseGoodsModelsId = baseGoodsModelsId;
+    }
+}
diff --git a/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java b/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
index 8523934..6f37d34 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowCoreService.java
@@ -31,18 +31,20 @@
     private SimpleJdbcCall simpleJdbcCall;
     private LWarehouseFlowService lWarehouseFlowService;
     private LWhGoodsService lWhGoodsService;
+    private LWhGoodsRecordService lWhGoodsRecordService;
     private LWhFormTransferService lWhFormTransferService;
     private LWhFormOutputCoreService lWhFormOutputCoreService;
     private BaseGoodsTemplateServiceImpl baseGoodsTemplateService;
 
     @Autowired
-    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, LWhFormTransferService lWhFormTransferService, LWhFormOutputCoreService lWhFormOutputCoreService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService) {
+    public LWarehouseFlowCoreService(JdbcTemplate jdbcTemplate, LWarehouseFlowService lWarehouseFlowService, LWhGoodsService lWhGoodsService, LWhFormTransferService lWhFormTransferService, LWhFormOutputCoreService lWhFormOutputCoreService, BaseGoodsTemplateServiceImpl baseGoodsTemplateService, LWhGoodsRecordService lWhGoodsRecordService) {
         this.jdbcTemplate = jdbcTemplate;
         this.lWarehouseFlowService = lWarehouseFlowService;
         this.baseGoodsTemplateService = baseGoodsTemplateService;
         this.lWhFormTransferService = lWhFormTransferService;
         this.lWhFormOutputCoreService = lWhFormOutputCoreService;
         this.lWhGoodsService = lWhGoodsService;
+        this.lWhGoodsRecordService = lWhGoodsRecordService;
         this.simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("InsertL_WH_GOODS");
     }
 
@@ -138,6 +140,7 @@
                             supplier, buyType, goodsUnit, price, procureTime, 1, dealTime, counts);
                 });
             }
+            lWhGoodsRecordService.insert(whGoodsRecord);
         });
 
         return 1;
diff --git a/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java b/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java
index 31dd3ac..f1eb117 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWarehouseFlowService.java
@@ -1,7 +1,14 @@
 package com.consum.base.service;
 
+import com.consum.base.core.tools.MapRowMapper;
+import com.consum.base.pojo.LWarehouseFlowParam;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
 import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
 
 /**
  * @ClassName LWarehouseFlowService
@@ -13,4 +20,60 @@
 @Service
 public class LWarehouseFlowService extends BaseServiceImpl {
 
+    /**
+     * 鏌ヨ鏄庣粏
+     *
+     * @param param
+     * @return
+     */
+    private static String QUERY_BUSINESS_FLOW = "SELECT flow.BUSINESS_TYPE businessType,flow.BUSINESS_FORM_ID businessFormId,tCaiGou.BUSINESS_FORM_CODE businessFormCode,record.GOODS_TEMPLATE_NAME goodsTemplateName,record.BASE_GOODS_MODELS_NAME baseGoodsModelsName,record.THIS_COUNT thisCount,record.THIS_TYPE thisType,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.AGENCY_NAME END AS agencyName,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUYER_NAME WHEN flow.BUSINESS_TYPE=3 THEN tFormOut.OPERATOR_NAME END AS createdName,flow.DEAL_TIME dealTime FROM L_WAREHOUSE_FLOW flow LEFT JOIN L_WH_GOODS_RECORD record ON flow.id=record.WAREHOUSE_FLOW_ID LEFT JOIN L_WH_FORM_PROCURE tCaiGou ON flow.BUSINESS_TYPE=1 AND tCaiGou.id=flow.BUSINESS_FORM_ID LEFT JOIN L_WH_FORM_OUTPUT tFormOut ON flow.BUSINESS_TYPE=3 AND tFormOut.id=flow.BUSINESS_FORM_ID WHERE 1=1";
+
+    public GenericPager<Map<String, Object>> queryBusinessFlow(LWarehouseFlowParam param) {
+        StringBuilder sql = new StringBuilder(QUERY_BUSINESS_FLOW);
+        Map<String, Object> paramts = new HashMap<>();
+//        ArrayList<Object> params = new ArrayList<>();
+        if (param.getBusinessType() != null) {
+            sql.append(" and flow.BUSINESS_TYPE =:businessType");
+            paramts.put("businessType", param.getBusinessType());
+//            sql.append(" and flow.BUSINESS_TYPE =?");
+//            params.add(param.getBusinessType());
+        }
+        if (param.getBusinessFormCode() != null) {
+            sql.append(" AND CASE WHEN flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUSINESS_FORM_CODE=:businessFormCode" +
+                    " WHEN flow.BUSINESS_TYPE = 3 THEN tCaiGou.BUSINESS_FORM_CODE=:businessFormCode");
+            paramts.put("businessFormCode", param.getBusinessFormCode());
+//            sql.append(" AND CASE WHEN flow.BUSINESS_TYPE = 1 THEN flow.BUSINESS_FORM_CODE=?");
+//            params.add(param.getBusinessFormCode());
+        }
+        if (param.getGoodsTemplateName() != null) {
+            sql.append(" AND record.GOODS_TEMPLATE_NAME like :goodsTemplateName");
+            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+//            sql.append(" AND record.GOODS_TEMPLATE_NAME like ?");
+//            params.add(StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+        }
+        if (param.getBaseGoodsModelsName() != null) {
+            sql.append(" AND record.BASE_GOODS_MODELS_NAME like :baseGoodsModelsName");
+            paramts.put("baseGoodsModelsName", StringUtils.CHAR_PERCENT + param.getBaseGoodsModelsName() + StringUtils.CHAR_PERCENT);
+        }
+        if (param.getAgencyId() != null) {
+            sql.append(" AND tCaiGou.AGENCY_id=:agencyId");
+            paramts.put("agencyId", param.getAgencyId());
+        }
+        if (param.getCreatedName() != null) {
+            sql.append(" AND CASE" +
+                    " WHEN flow.BUSINESS_TYPE = 1 THEN tCaiGou.BUYER_NAME LIKE :createdName"+
+                    " WHEN flow.BUSINESS_TYPE = 3 THEN tCaiGou.OPERATOR_NAME LIKE :createdName END"
+            );
+            paramts.put("createdName", StringUtils.CHAR_PERCENT + param.getCreatedName() + StringUtils.CHAR_PERCENT);
+        }
+        if (param.getDealTimeStart() != null) {
+            sql.append(" and flow.DEAL_TIME >=:dealTimeStart ");
+            paramts.put("dealTimeStart", param.getDealTimeStart() * 1000000);
+        }
+        if (param.getDealTimeEnd() != null) {
+            sql.append(" and flow.DEAL_TIME <:dealTimeEnd ");
+            paramts.put("dealTimeEnd", param.getDealTimeEnd() * 1000000 + 240000);
+        }
+        return selectSplit(sql.toString(), paramts, param.getPageNum(), param.getPageSize(), new MapRowMapper());
+    }
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java b/consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java
index db31877..31e2a83 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java
@@ -37,13 +37,16 @@
      * 绗竴姝ワ細閫氳繃閲囪喘鍗旾D鏌ヨ閲囪喘鍗曞瀷鍙枫�怢_WH_PROCURE_MODEL銆戝緱鍒板晢鍝佸瀷鍙蜂互鍙婃暟閲�
      * 绗簩姝ワ細璁板綍杩涘嚭搴撴祦姘达細L_WAREHOUSE_FLOW
      */
-    public void doProcure(Long whFormProcureId, S_user_core currentUser) {
+    public String doProcure(Long whFormProcureId, S_user_core currentUser) {
+        if (whFormProcureId == null) {
+            return "閲囪喘鍗昳d涓虹┖";
+        }
         //閲囪喘鍗曚俊鎭�
         LWhFormProcure whFormProcure = new LWhFormProcure(whFormProcureId);
         LWhFormProcure lWhFormProcure = lWhFormProcureService.get(whFormProcure);
-        if (lWhFormProcure == null || lWhFormProcure.getStates() != 0) {
+        if (lWhFormProcure == null || lWhFormProcure.getStates() != 1) {
             log.error("鍏ュ簱澶辫触锛佽妫�鏌ュ叆搴撳崟鐘舵��");
-            return;
+            return "鍏ュ簱澶辫触锛佽妫�鏌ュ叆搴撳崟鐘舵��";
         }
         Long userId = currentUser.getId();
         String nickName = currentUser.getNick_name();
@@ -65,7 +68,7 @@
         int flowInsertFlag = lWarehouseFlowService.buyInsertWareFlow(goodsModelNum, lWhFormProcure, warehouseFlow);
         if (flowInsertFlag == 1) {
             // 鏇存柊閲囪喘鍗曘�怢_WH_FORM_PROCURE銆�
-            whFormProcure.setStates(1);
+            whFormProcure.setStates(2);
             whFormProcure.setLWarehouseFlowId(lWarehouseFlowId);
             whFormProcure.setIncomeId(userId);
             whFormProcure.setIncomeName(nickName);
@@ -73,7 +76,7 @@
             lWhFormProcureService.update(whFormProcure);
         }
         log.info("鍏ュ簱鍗曪細{} 鍏ュ簱瀹屾垚", whFormProcureId);
-        return;
+        return null;
 
     }
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormProcureGoodsService.java b/consum-base/src/main/java/com/consum/base/service/LWhFormProcureGoodsService.java
new file mode 100644
index 0000000..979d037
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormProcureGoodsService.java
@@ -0,0 +1,16 @@
+package com.consum.base.service;
+
+import com.walker.jdbc.service.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * @ClassName LWhFormProcureGoodsService
+ * @Author cy
+ * @Date 2023/10/27
+ * @Description
+ * @Version 1.0
+ **/
+@Service
+public class LWhFormProcureGoodsService  extends BaseServiceImpl {
+
+}
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhFormProcureService.java b/consum-base/src/main/java/com/consum/base/service/LWhFormProcureService.java
index 7cc3c36..9272b32 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhFormProcureService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhFormProcureService.java
@@ -1,7 +1,13 @@
 package com.consum.base.service;
 
+import com.consum.base.pojo.LWhFormProcureParam;
+import com.consum.model.po.LWhFormProcure;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
 import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
 
 /**
  * @ClassName lWhFormProcureService
@@ -13,4 +19,49 @@
 @Service
 public class LWhFormProcureService extends BaseServiceImpl {
 
+    private static String QUERY_FORM_PROCURE_LIST = "SELECT * FROM L_WH_FORM_PROCURE WHERE 1 = 1";
+
+    public GenericPager<LWhFormProcure> queryFormProcureList(LWhFormProcureParam param) {
+        HashMap<String, Object> paramts = new HashMap<>();
+        StringBuilder sql = new StringBuilder(QUERY_FORM_PROCURE_LIST);
+        //鍏ュ簱鍗曞彿
+        if (!StringUtils.isEmpty(param.getBusinessFormCode())) {
+            sql.append(" and BUSINESS_FORM_CODE like :businessFormCode ");
+            paramts.put("businessFormCode", StringUtils.CHAR_PERCENT + param.getBusinessFormCode() + StringUtils.CHAR_PERCENT);
+        }
+        if (param.getAgencyId() != null){
+            sql.append(" and AGENCY_ID like :agencyId ");
+            paramts.put("agencyId",  param.getAgencyId() + StringUtils.CHAR_PERCENT);
+        }
+        //鍒涘缓浜�
+        if (!StringUtils.isEmpty(param.getBuyerName())) {
+            sql.append(" and buyer_Name =:buyerName ");
+            paramts.put("buyerName", param.getBuyerName());
+        }
+        //鐘舵��
+        if (param.getStates() != null) {
+            sql.append(" and status =:status ");
+            paramts.put("status", param.getStates());
+        }
+        //鍏ュ簱鏃堕棿
+        if (param.getIncomeTimeStart() != null) {
+            sql.append(" and INCOME_TIME >=:incomeTimeStart ");
+            paramts.put("incomeTimeStart", param.getIncomeTimeStart() * 1000000);
+        }
+        if (param.getIncomeTimeEnd() != null) {
+            sql.append(" and INCOME_TIME <:incomeTimeEnd ");
+            paramts.put("incomeTimeEnd", param.getIncomeTimeEnd() * 1000000 + 240000);
+        }
+        //鐗╁搧鍚嶇О
+        if (!StringUtils.isEmpty(param.getGoodsTemplateName())) {
+            sql.append(" AND id IN (SELECT BUSINESS_ID FROM L_WH_PROCURE_MODEL procureModel LEFT JOIN BASE_GOODS_MODELS baseModel ON procureModel.BASE_GOODS_MODELS_ID=baseModel.ID LEFT JOIN BASE_GOODS_TEMPLATE baseTemp ON baseModel.GOODS_TEMPLATES_ID=baseTemp.id WHERE procureModel.BUSINESS_TYPE=1 AND baseTemp.GOODS_NAME LIKE :goodsTemplateName)");
+            paramts.put("goodsTemplateName", StringUtils.CHAR_PERCENT + param.getGoodsTemplateName() + StringUtils.CHAR_PERCENT);
+        }
+        sql.append(" ORDER BY PROCURE_TIME DESC");
+        GenericPager genericPager = selectSplit(sql.toString(), paramts, new LWhFormProcure());
+        return genericPager;
+
+    }
+
+
 }
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhGoodsRecordService.java b/consum-base/src/main/java/com/consum/base/service/LWhGoodsRecordService.java
new file mode 100644
index 0000000..f0c9d1c
--- /dev/null
+++ b/consum-base/src/main/java/com/consum/base/service/LWhGoodsRecordService.java
@@ -0,0 +1,16 @@
+package com.consum.base.service;
+
+import com.walker.jdbc.service.BaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * @ClassName LWhGoodsRecordService
+ * @Author cy
+ * @Date 2023/10/27
+ * @Description
+ * @Version 1.0
+ **/
+@Service
+public class LWhGoodsRecordService extends BaseServiceImpl {
+
+}

--
Gitblit v1.9.1