石广澎
2023-12-02 9c12e20237eb56bf2b53f3d751ba618b56954fad
consum-base/src/main/java/com/consum/base/service/BaseGoodsTemplateServiceImpl.java
@@ -2,11 +2,9 @@
import com.consum.base.Constants;
import com.consum.base.core.CodeGeneratorService;
import com.consum.base.core.utils.IdUtil;
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.po.*;
import com.consum.model.vo.BaseGoodsTemplateVo;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
@@ -20,6 +18,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * @Description 物品模板
@@ -32,7 +31,7 @@
    @Autowired
    private CodeGeneratorService codeGeneratorService;
    @Autowired
    private BaseCategoryServiceImpl baseCategoryService;
    private BaseCategoryService baseCategoryService;
    @Autowired
    private BaseGoodsModelsServiceImpl baseGoodsModelsService;
@@ -61,7 +60,7 @@
     * @Author 卢庆阳
     * @Date 2023/10/24
     */
    public int add(BaseGoodsTemplateParam param, S_user_core currentUser) {
    public int add(BaseGoodsTemplateParam param, FinSysTenantUser currentUser) {
        //1.新增物品模板
        BaseGoodsTemplate baseGoodsTemplate = new BaseGoodsTemplate();
        BeanUtils.copyProperties(param, baseGoodsTemplate);
@@ -71,6 +70,7 @@
        //根据分类id查询分类
        BaseCategory baseCategory = this.baseCategoryService.get(new BaseCategory(param.getCategoryId()));
        if (baseCategory != null) {
            baseGoodsTemplate.setCategoryName(baseCategory.getCategoryName());
            String classification = baseCategory.getClassification();
            //物品编码
            String goodsCode = codeGeneratorService.createGoodsTemplateCode(classification);
@@ -82,7 +82,9 @@
        //当前机构的父级机构编号
        //机构层级
        //机构编号
        baseGoodsTemplate.setAgencyId(Long.valueOf(currentUser.getTenantId()));
        //机构名称
        baseGoodsTemplate.setAgencyName(currentUser.getTenantName());
        //创建时间
        long createTime = DateUtils.getDateTimeNumber(System.currentTimeMillis());
        baseGoodsTemplate.setCreateDate(createTime);
@@ -109,7 +111,7 @@
    }
    /**
     * @Description  物品模板列表查询
     * @Description 物品模板列表查询
     * @Author 卢庆阳
     * @Date 2023/10/24
     */
@@ -154,6 +156,7 @@
    /**
     * 根据物品id查询物品详情
     *
     * @author 卢庆阳
     * @date 2023/9/26
     */
@@ -171,7 +174,7 @@
        //3.封装
        BaseGoodsTemplateVo vo = new BaseGoodsTemplateVo();
        if (goodsTemplate != null) {
            BeanUtils.copyProperties(goodsTemplate,vo);
            BeanUtils.copyProperties(goodsTemplate, vo);
        }
        if (!CollectionUtils.isEmpty(modelsList)) {
            vo.setModels(modelsList);
@@ -188,9 +191,18 @@
        //1.修改物品模板
        BaseGoodsTemplate baseGoodsTemplate = new BaseGoodsTemplate();
        BeanUtils.copyProperties(param, baseGoodsTemplate);
        BaseCategory baseCategory = this.baseCategoryService.get(new BaseCategory(param.getCategoryId()));
        if (baseCategory != null) {
            baseGoodsTemplate.setCategoryName(baseCategory.getCategoryName());
        }
        int flag1 = this.update(baseGoodsTemplate);
        //2.修改规格型号的单位
        // TODO id 物品型号修改待整理
        List<BaseGoodsModels> modelsList = param.getModels();
        for (BaseGoodsModels baseGoodsModel : modelsList) {
            BaseGoodsModels baseGoodsModels = new BaseGoodsModels();
            BeanUtils.copyProperties(baseGoodsModel, baseGoodsModels);
        }
        int flag2 = this.update(modelsList);
        if (flag1 > 0 && flag2 > 0) {
@@ -201,7 +213,7 @@
    }
    /**
     * @Description  根据物品名称和分类id查询物品
     * @Description 根据物品名称和分类id查询物品
     * @Author 卢庆阳
     * @Date 2023/10/24
     */
@@ -218,4 +230,103 @@
        return this.get(sql.toString(), paramts, new BaseGoodsTemplate());
    }
    /**
     * 根据型号ID查询物品信息
     *
     * @param modelId
     * @return
     */
    private static String QUERY_GOODSINFO_BY_MODELID = "SELECT model.MODEL_NAME modelName,model.UNIT,temp.id goodsId, temp.GOODS_CODE goodsCode,temp.GOODS_NAME goodsName,temp.CLASSIFICATION classification,temp.CATEGORY_ID categoryId FROM BASE_GOODS_MODELS model LEFT JOIN BASE_GOODS_TEMPLATE temp ON model.GOODS_TEMPLATES_ID=temp.id WHERE 1=1 ";
    public Map<String, Object> queryGoodsInfoByModelId(Long modelId) {
        StringBuilder sqlStr = new StringBuilder(QUERY_GOODSINFO_BY_MODELID);
        Map<String, Object> params = new HashMap<>();
        if (modelId != null) {
            sqlStr.append(" AND model.id=:modelId");
            params.put("modelId", modelId);
        }
        List<Map<String, Object>> tempGoodsInfo = this.select(sqlStr.toString(), params);
        if (CollectionUtils.isEmpty(tempGoodsInfo)) {
            return null;
        }
        return tempGoodsInfo.get(0);
    }
    /**
     * 修改状态
     *
     * @author 卢庆阳
     * @date 2023/10/25
     */
    public int updateStatus(BaseGoodsTemplate goodsTemplate) {
        return this.update(goodsTemplate);
    }
    /**
     * @Description 根据物品id删除物品
     * @Author 卢庆阳
     * @Date 2023/10/25
     */
    public int updateById(BaseGoodsTemplate goodsTemplate, S_user_core currentUser) {
        goodsTemplate.setStates(Constants.STATES_DELETED);
        //删除时间
        goodsTemplate.setDTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        //删除人id和删除人姓名
        goodsTemplate.setDUserId(currentUser.getId());
        goodsTemplate.setDUserName(currentUser.getUser_name());
        return this.update(goodsTemplate);
    }
    /**
     * @return
     * @Description 查询仓库类型(数据字典)
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    public List<SDictData> queryClassificationCode() {
        StringBuilder sql = new StringBuilder("SELECT * FROM s_dict_data WHERE dict_type = 'CLASSIFICATION_CODE' order by dict_sort");
        return this.select(sql.toString(), new Object[]{}, new SDictData());
    }
    /**
     * @Description 根据分类id查询物品模板
     * @Author 卢庆阳
     * @Date 2023/10/30
     */
    public List<BaseGoodsTemplate> queryByCategoryId(Long categoryId) {
        BaseGoodsTemplate goodsTemplate = new BaseGoodsTemplate();
        goodsTemplate.setCategoryId(categoryId);
        return this.select(goodsTemplate);
    }
    /**
     * @param agencyId
     * @param categoryId
     * @param states
     * @param goodsName  全匹配!!!
     * @return
     */
    public List<BaseGoodsTemplate> queryGoodsTemplateByCategoryId(Long agencyId, Long categoryId, Short states, String goodsName) {
        StringBuilder sql = new StringBuilder("SELECT * FROM base_goods_template WHERE 1=1 ");
        Map<String, Object> params = new HashMap<>();
        if (agencyId != null) {
            sql.append("AND AGENCY_ID=:agencyId ");
            params.put("agencyId", agencyId);
        }
        if (categoryId != null) {
            sql.append("AND CATEGORY_ID=:categoryId ");
            params.put("categoryId", categoryId);
        }
        if (states != null) {
            sql.append("AND STATES=:states ");
            params.put("states", states);
        }
        if (StringUtils.isNotEmpty(goodsName)) {
            sql.append(" and GOODS_NAME =:goodsName ");
            params.put("goodsName", goodsName);
        }
        return this.select(sql.toString(), params, new BaseGoodsTemplate());
    }
}