From 1c50fb8dedaf13cb41f292a1a62b62055bc67f86 Mon Sep 17 00:00:00 2001
From: cy <1664593601@qq.com>
Date: 星期五, 27 十月 2023 17:02:19 +0800
Subject: [PATCH] feat: 采购管理接口开发
---
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 | 59 +++
consum-base/src/main/java/com/consum/base/service/LWhFormProcureCoreService.java | 13
consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java | 4
consum-base/src/main/java/com/consum/base/service/LWhFormProcureGoodsService.java | 16
consum-base/src/main/java/com/consum/base/pojo/LWhProcureModelParams.java | 43 ++
15 files changed, 968 insertions(+), 8 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..a8a835a 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,56 @@
@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,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.AGENCY_NAME END AS agencyName,CASE WHEN flow.BUSINESS_TYPE=1 THEN tCaiGou.BUYER_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 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 flow.BUSINESS_FORM_CODE=:businessFormCode END");
+ 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 END");
+ paramts.put("createdName", StringUtils.CHAR_PERCENT + param.getCreatedName() + StringUtils.CHAR_PERCENT);
+ }
+ if (param.getDealTimeStart() != null) {
+ sql.append(" and INCOME_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 {
+
+}
diff --git a/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java b/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
index 3d769c0..25bf8ac 100644
--- a/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
+++ b/consum-base/src/main/java/com/consum/base/service/LWhGoodsService.java
@@ -39,11 +39,11 @@
paramts.put("warehouseId", warehouseId);
}
if (baseGoodsModelsId != null) {
- sql.append(" and BASE_GOODS_TEMPLATE_ID=:baseGoodsModelsId");
+ sql.append(" and BASE_GOODS_MODELS_ID=:baseGoodsModelsId");
paramts.put("baseGoodsModelsId", baseGoodsModelsId);
}
if (states != null) {
- sql.append(" and STATES=:STATES");
+ sql.append(" and STATES=:states");
paramts.put("states", states);
}
if (buyType != null) {
--
Gitblit v1.9.1