From cb642724c54d7d850aec5e5ee27fcc7186f352d7 Mon Sep 17 00:00:00 2001
From: luqingyang <lqy5492@163.com>
Date: 星期二, 24 十月 2023 17:28:18 +0800
Subject: [PATCH] 物品管理和机构 相关代码

---
 consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java |  188 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 186 insertions(+), 2 deletions(-)

diff --git a/consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java b/consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
index 8b383bc..c5b0200 100644
--- a/consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
+++ b/consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
@@ -1,8 +1,22 @@
 package com.consum.base.service;
 
+import com.consum.base.Constants;
+import com.consum.base.core.CodeGeneratorService;
+import com.consum.base.pojo.BaseGoodsTemplateParam;
+import com.consum.base.util.IdUtil;
 import com.consum.model.po.BaseCategory;
+import com.consum.model.po.BaseGoodsModels;
+import com.consum.model.po.BaseGoodsTemplate;
+import com.consum.model.vo.BaseGoodsTemplateVo;
+import com.iplatform.model.po.S_user_core;
+import com.walker.db.page.GenericPager;
+import com.walker.infrastructure.utils.DateUtils;
+import com.walker.infrastructure.utils.StringUtils;
 import com.walker.jdbc.service.BaseServiceImpl;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.HashMap;
 import java.util.List;
@@ -15,11 +29,18 @@
 @Service
 public class BaseGoodsTemplateServiceImpl extends BaseServiceImpl {
 
+    @Autowired
+    private CodeGeneratorService codeGeneratorService;
+    @Autowired
+    private BaseCategoryServiceImpl baseCategoryService;
+    @Autowired
+    private BaseGoodsModelsServiceImpl baseGoodsModelsService;
+
     /**
-     * @Description  鏍规嵁鍒嗙被id鍜岀姸鎬佹煡璇㈢墿鍝佹ā鐗�
+     * @return
+     * @Description 鏍规嵁鍒嗙被id鍜岀姸鎬佹煡璇㈢墿鍝佹ā鐗�
      * @Author 鍗㈠簡闃�
      * @Date 2023/10/23
-     * @return
      */
     public List<BaseCategory> getByCategoryId(Long categoryId) {
         StringBuilder sql = new StringBuilder("SELECT * FROM base_goods_template WHERE 1 = 1 ");
@@ -34,4 +55,167 @@
 
         return this.select(sql.toString(), paramts, new BaseCategory());
     }
+
+    /**
+     * @Description 鏂板鐗╁搧妯℃澘
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/24
+     */
+    public int add(BaseGoodsTemplateParam param, S_user_core currentUser) {
+        //1.鏂板鐗╁搧妯℃澘
+        BaseGoodsTemplate baseGoodsTemplate = new BaseGoodsTemplate();
+        BeanUtils.copyProperties(param, baseGoodsTemplate);
+        long goodsTemplatesId = IdUtil.generateId();
+        baseGoodsTemplate.setId(goodsTemplatesId);
+        //NumberGenerator.getLongSequenceNumber()
+        //鏍规嵁鍒嗙被id鏌ヨ鍒嗙被
+        BaseCategory baseCategory = this.baseCategoryService.get(new BaseCategory(param.getCategoryId()));
+        if (baseCategory != null) {
+            String classification = baseCategory.getClassification();
+            //鐗╁搧缂栫爜
+            String goodsCode = codeGeneratorService.createGoodsTemplateCode(classification);
+            baseGoodsTemplate.setGoodsCode(goodsCode);
+            //绫诲埆
+            baseGoodsTemplate.setClassification(classification);
+        }
+        //TODO 涓�绾т簩绾т笁绾ф満鏋勭紪鍙�
+        //褰撳墠鏈烘瀯鐨勭埗绾ф満鏋勭紪鍙�
+        //鏈烘瀯灞傜骇
+        //鏈烘瀯缂栧彿
+        //鏈烘瀯鍚嶇О
+        //鍒涘缓鏃堕棿
+        long createTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
+        baseGoodsTemplate.setCreateDate(createTime);
+        int flag1 = this.insert(baseGoodsTemplate);
+
+        //2.鏂板瑙勬牸鍨嬪彿
+        List<BaseGoodsModels> models = param.getModels();
+        int flag2 = 0;
+        if (!CollectionUtils.isEmpty(models)) {
+            for (BaseGoodsModels model : models) {
+                model.setId(IdUtil.generateId());
+                model.setStates(Constants.STATES_ENABLE);
+                model.setGoodsTemplatesId(goodsTemplatesId);
+                model.setCreateTime(createTime);
+            }
+            flag2 = this.baseGoodsModelsService.insert(models);
+        }
+
+        if (flag1 > 0 && flag2 > 0) {
+            return 1;
+        } else {
+            return 0;
+        }
+    }
+
+    /**
+     * @Description  鐗╁搧妯℃澘鍒楄〃鏌ヨ
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/24
+     */
+    public GenericPager<BaseGoodsTemplate> queryList(BaseGoodsTemplateParam param) {
+        StringBuilder sql = new StringBuilder("SELECT * FROM base_goods_template WHERE 1 = 1 ");
+        HashMap<String, Object> paramts = new HashMap<>();
+
+        //鐗╁搧鍚嶇О
+        if (!StringUtils.isEmpty(param.getGoodsName())) {
+            sql.append(" and goods_name like:goods_name ");
+            paramts.put("goods_name", StringUtils.CHAR_PERCENT + param.getGoodsName() + StringUtils.CHAR_PERCENT);
+        }
+        //鐗╁搧缂栧彿
+        if (!StringUtils.isEmpty(param.getGoodsCode())) {
+            sql.append(" and goods_code like:goods_code ");
+            paramts.put("goods_code", StringUtils.CHAR_PERCENT + param.getGoodsCode() + StringUtils.CHAR_PERCENT);
+        }
+        //鍒嗙被id
+        if (param.getCategoryId() != null) {
+            sql.append(" and category_id =:category_id ");
+            paramts.put("category_id", param.getCategoryId());
+        }
+        //绫诲埆
+        if (!StringUtils.isEmpty(param.getClassification())) {
+            sql.append(" and classification =:classification ");
+            paramts.put("classification", param.getClassification());
+        }
+        //鎵�灞炴満鏋�
+        if (param.getAgencyId() != null) {
+            sql.append(" and agency_id =:agency_id ");
+            paramts.put("agency_id", param.getAgencyId());
+        }
+        //鐘舵��
+        if (param.getStates() != null) {
+            sql.append(" and states =:states ");
+            paramts.put("states", param.getStates());
+        }
+        sql.append(" ORDER BY CREATE_DATE DESC ");
+
+        return selectSplit(sql.toString(), paramts, new BaseGoodsTemplate());
+    }
+
+    /**
+     * 鏍规嵁鐗╁搧id鏌ヨ鐗╁搧璇︽儏
+     * @author 鍗㈠簡闃�
+     * @date 2023/9/26
+     */
+    public BaseGoodsTemplateVo getById(Long id) {
+        //1.鏍规嵁鐗╁搧id鏌ヨ鐗╁搧妯℃澘
+        BaseGoodsTemplate goodsTemplate = this.get(new BaseGoodsTemplate(id));
+        //2.鏍规嵁鐗╁搧id鏌ヨ瑙勬牸鍨嬪彿
+        StringBuilder sql = new StringBuilder("SELECT * FROM base_goods_models WHERE 1 = 1 ");
+        HashMap<String, Object> paramts = new HashMap<>();
+        //鎵�灞炵墿鍝佹ā鐗堢紪鍙�
+        sql.append(" and goods_templates_id =:goods_templates_id ");
+        paramts.put("goods_templates_id", id);
+        List<BaseGoodsModels> modelsList = this.select(sql.toString(), paramts, new BaseGoodsModels());
+
+        //3.灏佽
+        BaseGoodsTemplateVo vo = new BaseGoodsTemplateVo();
+        if (goodsTemplate != null) {
+            BeanUtils.copyProperties(goodsTemplate,vo);
+        }
+        if (!CollectionUtils.isEmpty(modelsList)) {
+            vo.setModels(modelsList);
+        }
+        return vo;
+    }
+
+    /**
+     * @Description 缂栬緫
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/24
+     */
+    public int updateBaseGoodsTemplate(BaseGoodsTemplateParam param) {
+        //1.淇敼鐗╁搧妯℃澘
+        BaseGoodsTemplate baseGoodsTemplate = new BaseGoodsTemplate();
+        BeanUtils.copyProperties(param, baseGoodsTemplate);
+        int flag1 = this.update(baseGoodsTemplate);
+        //2.淇敼瑙勬牸鍨嬪彿鐨勫崟浣�
+        List<BaseGoodsModels> modelsList = param.getModels();
+        int flag2 = this.update(modelsList);
+
+        if (flag1 > 0 && flag2 > 0) {
+            return 1;
+        } else {
+            return 0;
+        }
+    }
+
+    /**
+     * @Description  鏍规嵁鐗╁搧鍚嶇О鍜屽垎绫籭d鏌ヨ鐗╁搧
+     * @Author 鍗㈠簡闃�
+     * @Date 2023/10/24
+     */
+    public BaseGoodsTemplate getByGoodsNameAndCategoryId(String goodsName, Long categoryId) {
+        StringBuilder sql = new StringBuilder("SELECT * FROM base_goods_template WHERE 1 = 1 ");
+        HashMap<String, Object> paramts = new HashMap<>();
+
+        //鐗╁搧鍚嶇О
+        sql.append(" and goods_name =:goods_name ");
+        paramts.put("goods_name", goodsName);
+        //鍒嗙被id
+        sql.append(" and category_id =:category_id ");
+        paramts.put("category_id", categoryId);
+
+        return this.get(sql.toString(), paramts, new BaseGoodsTemplate());
+    }
 }

--
Gitblit v1.9.1