2 文件已重命名
5个文件已添加
30个文件已修改
904 ■■■■■ 已修改文件
admin-web/src/views/foundation/material/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin-web/src/views/systemManger/org/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/BaseController.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantCache.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantCache.java 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/config/LocalFinCacheConfig.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/config/RedisFinCacheConfig.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/BaseCategoryController.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryGoodsController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormScrappedController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/core/type/InventoryResultType.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/RecordUserInfoVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/UseRecordSkuVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/excel/ImportGoodsInfoTemplate.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/request/UsingFormBackGoodsInfo.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/DepartmentVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/OutAndInDetailVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/UserVO.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/FinSysTenantService.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsService.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/BaseWarehouseServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/FinSysTenantServiceImpl.java 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhFormInventoryCoreService.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhFormInventoryGoodsServiceImpl.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhFormInventoryServiceImpl.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
deploy-jar-single/src/main/resources/import/物品信息.xls 补丁 | 查看 | 原始文档 | blame | 历史
admin-web/src/views/foundation/material/index.vue
@@ -118,7 +118,7 @@
          /* æ¨¡æ¿ä¸‹è½½ */
          templateSettings: {
              templateName: '导入模板.xls', // åç§°
              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // ä¸‹è½½åœ°å€
              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate?type=goods' // ä¸‹è½½åœ°å€
          },
          onSuccess: null
      },
admin-web/src/views/systemManger/org/index.vue
@@ -70,7 +70,7 @@
          /* æ¨¡æ¿ä¸‹è½½ */
          templateSettings: {
              templateName: '导入模板.xls', // åç§°
              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate' // ä¸‹è½½åœ°å€
              templateUrl: SettingIplatform.apiBaseURL + '/pc/fin/sys/tenant/getImportTemplate?type=tenant' // ä¸‹è½½åœ°å€
          },
          onSuccess: null
      },
consum-base/src/main/java/com/consum/base/BaseController.java
@@ -1,8 +1,8 @@
package com.consum.base;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.InputStream;
import java.net.URLEncoder;
import javax.servlet.http.HttpServletResponse;
@@ -14,6 +14,7 @@
import com.iplatform.base.util.UserUtils;
import com.iplatform.core.BeanContextAware;
import com.iplatform.model.po.S_user_core;
import com.walker.file.FileInfo;
public abstract class BaseController extends PlatformAdapterController {
@@ -48,8 +49,7 @@
        return this.getFinSysTenantUserCache().get(String.valueOf(userInfo.getId()));
    }
    protected void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) throws IOException {
        OutputStream out = response.getOutputStream();
    protected String downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) throws Exception {
        response.setCharacterEncoding("UTF-8");
        response.setHeader("content-Type", "application/vnd.ms-excel");
        response.setHeader("Content-Disposition",
@@ -57,9 +57,13 @@
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        workbook.write(byteArrayOutputStream);
        response.setHeader("Content-Length", String.valueOf(byteArrayOutputStream.size()));
        out.write(byteArrayOutputStream.toByteArray());
        InputStream byteArrayInputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
        FileInfo fileInfo = this.uploadFileToLocal(byteArrayInputStream, fileName + ".xls", "-1",
            byteArrayOutputStream.size(), 0, "-1");
        String fileUrl = fileInfo.getUrl();
        workbook.close();
        out.close();
        return fileUrl;
    }
}
consum-base/src/main/java/com/consum/base/cache/LocalFinSysTenantCache.java
@@ -1,14 +1,14 @@
package com.consum.base.cache;
import java.util.List;
import com.consum.base.Constants;
import com.consum.base.FinSysTenantCacheProvider;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantService;
import com.consum.model.po.FinSysTenant;
import com.walker.cache.AbstractCacheProvider;
import com.walker.cache.Cache;
import com.walker.infrastructure.utils.StringUtils;
import java.util.List;
/**
 * åŒºåˆ’缓存
@@ -68,9 +68,9 @@
        return FinSysTenant.class;
    }
    public void setFinSysTenantService(FinSysTenantServiceImpl finSysTenantService) {
    public void setFinSysTenantService(FinSysTenantService finSysTenantService) {
        this.finSysTenantService = finSysTenantService;
    }
    private FinSysTenantServiceImpl finSysTenantService;
    private FinSysTenantService finSysTenantService;
}
consum-base/src/main/java/com/consum/base/cache/RedisFinSysTenantCache.java
@@ -1,38 +1,39 @@
package com.consum.base.cache;
import java.util.ArrayList;
import java.util.List;
import com.consum.base.Constants;
import com.consum.base.FinSysTenantCacheProvider;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantService;
import com.consum.model.po.FinSysTenant;
import com.walker.infrastructure.ApplicationRuntimeException;
import com.walker.infrastructure.utils.JsonUtils;
import com.walker.support.redis.cache.RedisCacheProvider;
import java.util.ArrayList;
import java.util.List;
/**
 * åŒºåˆ’缓存
 * @作者:power
 * @时间:2023/7/20 20:35
 *
 * @作者:power @时间:2023/7/20 20:35
 */
public class RedisFinSysTenantCache extends RedisCacheProvider<FinSysTenant> implements FinSysTenantCacheProvider {
    public RedisFinSysTenantCache(){
    public RedisFinSysTenantCache() {
        this.setUseRedis(true);
        this.setLoadPage(false);
    }
    @Override
    public FinSysTenant get(String code) {
        FinSysTenant finSysTenant = this.getCacheData(code);
        if(finSysTenant == null){
        if (finSysTenant == null) {
            finSysTenant = this.finSysTenantService.queryOneByCode(code);
            if(finSysTenant == null){
            if (finSysTenant == null) {
                logger.warn("从数据库未查询到区划,无法缓存,code = {}", code);
                return null;
            }
            // 2023-07-26,时克英,区划相对固定,无需设置失效时间,让他永远存储吧。
//            this.putCacheData(code, finSysTenant,7200);
            // this.putCacheData(code, finSysTenant,7200);
            this.putCacheData(code, finSysTenant);
        }
        return finSysTenant;
@@ -56,9 +57,9 @@
    @Override
    public FinSysTenant getById(String id) {
        FinSysTenant finSysTenant = this.getCacheData(id);
        if(finSysTenant == null){
        if (finSysTenant == null) {
            finSysTenant = this.finSysTenantService.get(new FinSysTenant(Long.parseLong(id)));
            if(finSysTenant == null){
            if (finSysTenant == null) {
                logger.warn("从数据库未查询到区划,无法缓存,id = {}", id);
                return null;
            }
@@ -71,11 +72,11 @@
    public List<FinSysTenant> selectAll() {
        List<FinSysTenant> allTree = new ArrayList<>();
        FinSysTenant temp = null;
        for(String value : this.getCache().getIterator(null)) {
        for (String value : this.getCache().getIterator(null)) {
            try {
                temp = JsonUtils.jsonStringToObject(value, FinSysTenant.class);
            } catch (Exception ex) {
                throw new ApplicationRuntimeException("redis存储'EbProductBrand'解析错吴:"+ value,ex);
                throw new ApplicationRuntimeException("redis存储'EbProductBrand'解析错吴:" + value, ex);
            }
            allTree.add(temp);
        }
@@ -92,9 +93,9 @@
        return FinSysTenant.class;
    }
    public void setFinSysTenantService(FinSysTenantServiceImpl finSysTenantService) {
    public void setFinSysTenantService(FinSysTenantService finSysTenantService) {
        this.finSysTenantService = finSysTenantService;
    }
    private FinSysTenantServiceImpl finSysTenantService;
    private FinSysTenantService finSysTenantService;
}
consum-base/src/main/java/com/consum/base/config/LocalFinCacheConfig.java
@@ -1,5 +1,9 @@
package com.consum.base.config;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.consum.base.FinOrgCacheProvider;
import com.consum.base.FinSysTenantCacheProvider;
import com.consum.base.FinSysTenantUserCacheProvider;
@@ -9,12 +13,9 @@
import com.consum.base.cache.LocalFinSysTenantUserCache;
import com.consum.base.cache.LocalTokenCache;
import com.consum.base.service.FinOrgService;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.FinSysTenantUserServiceImpl;
import com.iplatform.base.config.CacheConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConditionalOnProperty(prefix = "iplatform.cache", name = "redis-enabled", havingValue = "false", matchIfMissing = true)
@@ -63,7 +64,7 @@
     * @date 2023-07-05
     */
    @Bean
    public FinSysTenantCacheProvider finSysTenantCacheProvider(FinSysTenantServiceImpl finSysTenantService){
    public FinSysTenantCacheProvider finSysTenantCacheProvider(FinSysTenantService finSysTenantService){
        LocalFinSysTenantCache cache = new LocalFinSysTenantCache();
        cache.setFinSysTenantService(finSysTenantService);
        return cache;
consum-base/src/main/java/com/consum/base/config/RedisFinCacheConfig.java
@@ -1,5 +1,12 @@
package com.consum.base.config;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.consum.base.FinOrgCacheProvider;
import com.consum.base.FinSysTenantCacheProvider;
import com.consum.base.FinSysTenantUserCacheProvider;
@@ -9,17 +16,11 @@
import com.consum.base.cache.RedisFinSysTenantUserCache;
import com.consum.base.cache.RedisTokenCache;
import com.consum.base.service.FinOrgService;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.FinSysTenantUserServiceImpl;
import com.iplatform.base.config.CacheConfiguration;
import com.walker.support.redis.RedisHelper;
import com.walker.support.redis.cache.RedisCacheProvider;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@ConditionalOnProperty(prefix = "iplatform.cache", name = "redis-enabled", havingValue = "true", matchIfMissing = false)
@@ -75,7 +76,7 @@
     * @date 2023-07-05
     */
    @Bean
    public FinSysTenantCacheProvider finSysTenantCacheProvider(RedisHelper redisHelper, FinSysTenantServiceImpl finSysTenantService){
    public FinSysTenantCacheProvider finSysTenantCacheProvider(RedisHelper redisHelper, FinSysTenantService finSysTenantService){
        RedisFinSysTenantCache cache = new RedisFinSysTenantCache();
        cache.setRedisHelper(redisHelper);
        cache.setFinSysTenantService(finSysTenantService);
consum-base/src/main/java/com/consum/base/controller/BaseCategoryController.java
@@ -1,5 +1,15 @@
package com.consum.base.controller;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.pojo.BaseCategoryParam;
@@ -9,20 +19,10 @@
import com.consum.model.po.BaseCategory;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.tree.TreeNode;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @Description ç‰©å“åˆ†ç±»
@@ -39,12 +39,6 @@
    @Autowired
    private BaseGoodsTemplateService baseGoodsTemplateService;
    private boolean multiRoot = true;
    private TreeNode dummyRoot = null;
    private Map<Long, TreeNode> rootMap = new TreeMap();
    private Map<Long, TreeNode> childMap = new TreeMap();
    private long defaultParentId = 0L;
    /**
     * @Description èŽ·å–åˆ†ç±»æ ‘
@@ -74,8 +68,9 @@
        if (param.getOrderNumber() == null) {
            return ResponseValue.error("顺序号为空");
        }
        //判断同一父类id下分类名称是否重复
        BaseCategory category = this.baseCategoryService.getByCategoryNameAndFatherCategoryId(param.getCategoryName(), param.getFatherCategoryId());
        // åˆ¤æ–­åŒä¸€çˆ¶ç±»id下分类名称是否重复
        BaseCategory category = this.baseCategoryService.getByCategoryNameAndFatherCategoryId(param.getCategoryName(),
            param.getFatherCategoryId());
        if (category != null) {
            return ResponseValue.error("分类名称已存在");
        }
@@ -106,7 +101,6 @@
        GenericPager<BaseCategory> pager = this.baseCategoryService.queryBaseCategoryList(param);
        return ResponseValue.success(pager);
    }
    /**
     * @Description ç¼–辑
@@ -145,7 +139,7 @@
     * @author å¢åº†é˜³
     * @date 2023/10/23
     */
    //分类下有正常状态的物品时,不允许禁用
    // åˆ†ç±»ä¸‹æœ‰æ­£å¸¸çŠ¶æ€çš„ç‰©å“æ—¶ï¼Œä¸å…è®¸ç¦ç”¨
    @PostMapping("/updStatus")
    public ResponseValue updateStatus() {
        BaseCategory baseCategory = CommonUtil.getObjFromReqBody(BaseCategory.class);
@@ -156,7 +150,7 @@
        if (baseCategory == null || baseCategory.getId() == null || baseCategory.getStates() == null) {
            return ResponseValue.error("参数错误");
        }
        //根据分类id和状态查询物品模版
        // æ ¹æ®åˆ†ç±»id和状态查询物品模版
        List<BaseCategory> list = this.baseGoodsTemplateService.getByCategoryId(baseCategory.getId());
        if (baseCategory.getStates() == 2 && !CollectionUtils.isEmpty(list)) {
            return ResponseValue.error("分类下有正常状态的物品,不允许禁用");
@@ -221,4 +215,3 @@
    }
}
consum-base/src/main/java/com/consum/base/controller/BaseGoodsTemplateController.java
@@ -1,5 +1,6 @@
package com.consum.base.controller;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -12,23 +13,32 @@
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.exception.ExcelDataConvertException;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.MapUtils;
import com.consum.base.core.utils.MapperUtil;
import com.consum.base.pojo.BaseGoodsTemplateParam;
import com.consum.base.pojo.excel.ImportGoodsInfoTemplate;
import com.consum.base.pojo.response.GoodsTemplateVO;
import com.consum.base.service.BaseGoodsTemplateService;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.LWhGoodsService;
import com.consum.model.po.BaseGoodsModels;
import com.consum.model.po.BaseGoodsTemplate;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.SDictData;
import com.consum.model.vo.BaseGoodsTemplateVo;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
@@ -53,6 +63,9 @@
    @Autowired
    private BaseWarehouseService baseWarehouseService;
    @Autowired
    private FinSysTenantService finSysTenantService;
    /**
     * @Description æ–°å¢žç‰©å“æ¨¡æ¿
@@ -266,4 +279,81 @@
        return ResponseValue.success("查询成功!", resultList);
    }
    @PostMapping("/import")
    public ResponseValue upload(MultipartFile file) throws IOException {
        String originalFilename = file.getOriginalFilename();
        if (!originalFilename.endsWith(".xls")) {
            return ResponseValue.error("文件格式有误!");
        }
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            return ResponseValue.error("当前登录用户为空");
        }
        EasyExcel.read(file.getInputStream(), ImportGoodsInfoTemplate.class,
            new AnalysisEventListener<ImportGoodsInfoTemplate>() {
                List<BaseGoodsTemplateParam> list = Lists.newArrayList();
                @Override
                public void invoke(ImportGoodsInfoTemplate data, AnalysisContext analysisContext) {
                    String categoryOne = data.getCategoryOne();
                    String categoryTwo = data.getCategoryTwo();
                    String categoryThree = data.getCategoryThree();
                    String goodName = data.getGoodName();
                    String goodModel = data.getGoodModel();
                    String unit = data.getUnit();
                    String type = data.getType();
                    String agencyName = data.getAgencyName();
                    list.stream().forEach(item -> {
                        if (!item.getCategoryId().equals(categoryThree)) {
                            BaseGoodsTemplateParam baseGoodsTemplate = new BaseGoodsTemplateParam();
                            baseGoodsTemplate.setCategoryId(Long.valueOf(categoryThree));
                            baseGoodsTemplate.setGoodsName(goodName);
                            baseGoodsTemplate.setStates(1);
                            FinSysTenant finSysTenant = finSysTenantService.selectByName(agencyName);
                            baseGoodsTemplate.setAgencyId(finSysTenant.getId());
                            List<BaseGoodsModels> models = Lists.newArrayList();
                            BaseGoodsModels baseGoodsModels = new BaseGoodsModels();
                            baseGoodsModels.setModelName(goodModel);
                            baseGoodsModels.setStates(1);
                            baseGoodsModels.setGoodsTemplatesId(item.getId());
                            baseGoodsModels.setUnit(unit);
                            baseGoodsModels.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
                            models.add(baseGoodsModels);
                            baseGoodsTemplate.setModels(models);
                        } else {
                            List<BaseGoodsModels> models = item.getModels();
                            BaseGoodsModels baseGoodsModels = new BaseGoodsModels();
                            baseGoodsModels.setModelName(goodModel);
                            baseGoodsModels.setStates(1);
                            baseGoodsModels.setGoodsTemplatesId(item.getId());
                            baseGoodsModels.setUnit(unit);
                            baseGoodsModels.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
                            models.add(baseGoodsModels);
                        }
                    });
                }
                @Override
                public void doAfterAllAnalysed(AnalysisContext analysisContext) {
                    for (BaseGoodsTemplateParam a : list) {
                        baseGoodsTemplateService.add(a, sysInfo);
                    }
                }
                @Override
                public void onException(Exception exception, AnalysisContext analysisContext) throws Exception {
                    if (exception instanceof ExcelDataConvertException) {
                        ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception;
                        Integer row = excelDataConvertException.getRowIndex() + 1;
                        Integer column = excelDataConvertException.getColumnIndex() + 1;
                        throw new RuntimeException("第" + row + "行,第" + column + "列解析异常,请正确填写");
                    }
                }
            }).sheet(0).doRead();
        return ResponseValue.success("导入成功!", 1);
    }
}
consum-base/src/main/java/com/consum/base/controller/FinSysTenantController.java
@@ -1,26 +1,5 @@
package com.consum.base.controller;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.exception.ExcelDataConvertException;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.FinSysTenantUtils;
import com.consum.base.pojo.FinSysTenantParam;
import com.consum.base.pojo.FinSysTenantSearchParam;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantUserServiceImpl;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.vo.FinSysTenantUserResult;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.tree.TreeNode;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLEncoder;
@@ -31,6 +10,7 @@
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.ClassPathResource;
@@ -47,6 +27,29 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.exception.ExcelDataConvertException;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.FinSysTenantUtils;
import com.consum.base.pojo.FinSysTenantParam;
import com.consum.base.pojo.FinSysTenantSearchParam;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.FinSysTenantUserServiceImpl;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.vo.FinSysTenantUserResult;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.tree.TreeNode;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
/**
 * @Description åŒºåˆ’
 * @Author wh
@@ -56,13 +59,13 @@
@RequestMapping("/pc/fin/sys/tenant")
public class FinSysTenantController extends BaseController {
    private FinSysTenantServiceImpl finSysTenantService;
    private FinSysTenantService finSysTenantService;
    @Autowired
    private FinSysTenantUserServiceImpl finSysTenantUserService;
    @Autowired
    public FinSysTenantController(FinSysTenantServiceImpl finSysTenantService) {
    public FinSysTenantController(FinSysTenantService finSysTenantService) {
        this.finSysTenantService = finSysTenantService;
    }
@@ -231,7 +234,7 @@
            while (var3.hasNext()) {
                Object obj = var3.next();
                node = this.toTreeNode((FinSysTenant) obj);
                node = this.toTreeNode((FinSysTenant)obj);
                if (node.getId() == this.defaultParentId) {
                    this.rootMap.put(node.getId(), node);
@@ -251,7 +254,7 @@
                    var3 = this.rootMap.values().iterator();
                    while (var3.hasNext()) {
                        TreeNode n = (TreeNode) var3.next();
                        TreeNode n = (TreeNode)var3.next();
                        n.setParentId(this.defaultParentId);
                        this.dummyRoot.addChild(n);
                    }
@@ -266,16 +269,16 @@
        Iterator i = childMap.values().iterator();
        while (i.hasNext()) {
            _node = (TreeNode) i.next();
            _node = (TreeNode)i.next();
            this.mountMiddleNode(_node, childMap);
        }
    }
    private void mountMiddleNode(TreeNode currentNode, Map<Long, TreeNode> childMap) {
        TreeNode _parentNode = (TreeNode) this.rootMap.get(currentNode.getParentId());
        TreeNode _parentNode = (TreeNode)this.rootMap.get(currentNode.getParentId());
        if (_parentNode == null) {
            _parentNode = (TreeNode) childMap.get(currentNode.getId());
            _parentNode = (TreeNode)childMap.get(currentNode.getId());
            if (_parentNode == null) {
                throw new NullPointerException("parent node not found, current: " + currentNode);
            }
@@ -290,7 +293,7 @@
    protected TreeNode toTreeNode(FinSysTenant entity) {
        TreeNode treeNode =
            new TreeNode(entity.getId(), entity.getName(), (List) null, entity.getParentId(), entity.getCode());
            new TreeNode(entity.getId(), entity.getName(), (List)null, entity.getParentId(), entity.getCode());
        return treeNode;
    }
@@ -302,7 +305,7 @@
            Iterator var2 = this.rootMap.values().iterator();
            while (var2.hasNext()) {
                TreeNode node = (TreeNode) var2.next();
                TreeNode node = (TreeNode)var2.next();
                list.add(node);
            }
            return list;
@@ -324,7 +327,8 @@
        if (param.getFirstZmS() != null && !param.getFirstZmS().equals("")) {
            whStr.append(" and name is not null and(");
            String upperCase = param.getFirstZmS().toUpperCase();
            whStr.append("instr(:upperFirstZmS,F_PINYIN( SUBSTR(name, 1, 1)))>0 or instr(:upperFirstZmS2,SUBSTR(name, 1, 1))>0");
            whStr.append(
                "instr(:upperFirstZmS,F_PINYIN( SUBSTR(name, 1, 1)))>0 or instr(:upperFirstZmS2,SUBSTR(name, 1, 1))>0");
            parameter.put("upperFirstZmS", upperCase);
            parameter.put("upperFirstZmS2", upperCase);
            whStr.append(")");
@@ -333,7 +337,6 @@
        List<FinSysTenant> select = this.finSysTenantService.select(new FinSysTenant(), whStr.toString(), parameter);
        return ResponseValue.success(select);
    }
    /**
     * åˆ é™¤
@@ -394,50 +397,27 @@
    }
    @GetMapping("getImportTemplate")
    public ResponseEntity<InputStreamResource> getImportTemplate() throws IOException {
    public ResponseEntity<InputStreamResource> getImportTemplate(String type) throws IOException {
        // ä»Žå½“前项目资源目录获取文件
        Resource resource = new ClassPathResource("import/机构导入模板.xls");
        String fileName = null;
        if ("tenant".equals(type)) {
            fileName = "机构导入模板.xls";
        } else if ("goods".equals(type)) {
            fileName = "物品信息.xls";
        }
        Resource resource = new ClassPathResource("import/" + fileName);
        // èŽ·å–æ–‡ä»¶è¾“å…¥æµ
        InputStream inputStream = resource.getInputStream();
        // è®¾ç½®HTTP响应头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        String encodedFilename = URLEncoder.encode("机构导入模板.xls", "UTF-8");
        String encodedFilename = URLEncoder.encode(fileName, "UTF-8");
        headers.setContentDispositionFormData("attachment", encodedFilename);
        // åˆ›å»ºInputStreamResource对象,将文件输入流包装起来
        InputStreamResource resourceToDownload = new InputStreamResource(inputStream);
        // è¿”回带有文件输入流的ResponseEntity对象
        return ResponseEntity
            .status(HttpStatus.OK)
            .headers(headers)
            .body(resourceToDownload);
        return ResponseEntity.status(HttpStatus.OK).headers(headers).body(resourceToDownload);
    }
    /**
     * @return èŽ·å–é¡¹ç›®å¯¼å…¥çš„æ¨¡æ¿
     * @throws IOException
     */
    @GetMapping("getProjectImportTemplate")
    public ResponseEntity<InputStreamResource> getProjectImportTemplate() throws IOException {
        // ä»Žå½“前项目资源目录获取文件
        Resource resource = new ClassPathResource("import/项目导入模板.xls");
        // èŽ·å–æ–‡ä»¶è¾“å…¥æµ
        InputStream inputStream = resource.getInputStream();
        // è®¾ç½®HTTP响应头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
        String encodedFilename = URLEncoder.encode("项目导入模板.xls", "UTF-8");
        headers.setContentDispositionFormData("attachment", encodedFilename);
        // åˆ›å»ºInputStreamResource对象,将文件输入流包装起来
        InputStreamResource resourceToDownload = new InputStreamResource(inputStream);
        // è¿”回带有文件输入流的ResponseEntity对象
        return ResponseEntity
            .status(HttpStatus.OK)
            .headers(headers)
            .body(resourceToDownload);
    }
    @PostMapping("import")
    public ResponseValue upload(@RequestParam Long pid, MultipartFile file) throws IOException {
@@ -466,7 +446,8 @@
                    throw exception;
                }
                if (null != finSysTenantService.queryOneByCode(finSysTenantParam.getCode())) {
                    throw new IllegalStateException("第" + analysisContext.readSheetHolder().getRowIndex() + "行,机构编号已存在");
                    throw new IllegalStateException(
                        "第" + analysisContext.readSheetHolder().getRowIndex() + "行,机构编号已存在");
                }
                if (StringUtils.isEmpty(finSysTenantParam.getName()) || finSysTenantParam.getName().length() > 100) {
                    IllegalStateException exception = new IllegalStateException(
@@ -488,15 +469,16 @@
            public void onException(Exception exception, AnalysisContext context) {
                // å¦‚果是某一个单元格的转换异常 èƒ½èŽ·å–åˆ°å…·ä½“è¡Œå·
                if (exception instanceof ExcelDataConvertException) {
                    ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException) exception;
                    ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception;
                    logger.error("第{}行,第{}列解析异常,数据为:{}", excelDataConvertException.getRowIndex(),
                        excelDataConvertException.getColumnIndex() + 1, excelDataConvertException.getCellData().getStringValue());
                    throw new IllegalStateException(
                        "第" + (excelDataConvertException.getRowIndex() + 1) + "行,第" + (excelDataConvertException.getColumnIndex() + 1) + "列解析异常,异常数据为:[ "
                            + excelDataConvertException.getCellData().getStringValue() + " ]");
                        excelDataConvertException.getColumnIndex() + 1,
                        excelDataConvertException.getCellData().getStringValue());
                    throw new IllegalStateException("第" + (excelDataConvertException.getRowIndex() + 1) + "行,第"
                        + (excelDataConvertException.getColumnIndex() + 1) + "列解析异常,异常数据为:[ "
                        + excelDataConvertException.getCellData().getStringValue() + " ]");
                }
                if (exception instanceof IllegalStateException) {
                    throw (IllegalStateException) exception;
                    throw (IllegalStateException)exception;
                }
            }
@@ -527,10 +509,10 @@
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        //        FinSysTenant finSysTenant1 = this.finSysTenantService.selectByTenantId(sysInfo.getTenantCode());
//        if (finSysTenant1.getLv() != 1) {
//            return ResponseValue.error("暂无修改权限");
//        }
        // FinSysTenant finSysTenant1 = this.finSysTenantService.selectByTenantId(sysInfo.getTenantCode());
        // if (finSysTenant1.getLv() != 1) {
        // return ResponseValue.error("暂无修改权限");
        // }
        int num = this.finSysTenantService.updateFinSysTenant(param, this.getSysInfo());
        return num > 0 ? ResponseValue.success(1) : ResponseValue.error("编辑失败!");
    }
@@ -571,7 +553,8 @@
            }
            // çœ
            FinSysTenant finSysTenant1 = this.finSysTenantService.get(new FinSysTenant(finSysTenant.getParentId()));
            List<FinSysTenantUser> finSysTenantUserList = this.finSysTenantUserService.getByOrgId(finSysTenant1.getId());
            List<FinSysTenantUser> finSysTenantUserList =
                this.finSysTenantUserService.getByOrgId(finSysTenant1.getId());
            if (!StringUtils.isEmptyList(finSysTenantUserList)) {
                FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult();
                finSysTenantUserResult.setOrgId(finSysTenant1.getId());
@@ -592,7 +575,8 @@
            }
            // å¸‚
            FinSysTenant finSysTenant2 = this.finSysTenantService.get(new FinSysTenant(finSysTenant.getParentId()));
            List<FinSysTenantUser> finSysTenantUserList2 = this.finSysTenantUserService.getByOrgId(finSysTenant2.getId());
            List<FinSysTenantUser> finSysTenantUserList2 =
                this.finSysTenantUserService.getByOrgId(finSysTenant2.getId());
            if (!StringUtils.isEmptyList(finSysTenantUserList2)) {
                FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult();
                finSysTenantUserResult.setOrgId(finSysTenant2.getId());
@@ -602,7 +586,8 @@
            }
            // çœ
            FinSysTenant finSysTenant1 = this.finSysTenantService.get(new FinSysTenant(finSysTenant2.getParentId()));
            List<FinSysTenantUser> finSysTenantUserList = this.finSysTenantUserService.getByOrgId(finSysTenant1.getId());
            List<FinSysTenantUser> finSysTenantUserList =
                this.finSysTenantUserService.getByOrgId(finSysTenant1.getId());
            if (!StringUtils.isEmptyList(finSysTenantUserList)) {
                FinSysTenantUserResult finSysTenantUserResult = new FinSysTenantUserResult();
                finSysTenantUserResult.setOrgId(finSysTenant1.getId());
@@ -616,8 +601,7 @@
    @ApiOperation(value = "获取父级机构", notes = "获取父级机构")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "Authorization", value = "token", dataType = "String", paramType = "header"),
    })
        @ApiImplicitParam(name = "Authorization", value = "token", dataType = "String", paramType = "header"),})
    @GetMapping("/get/parent/tenant")
    public ResponseValue getParentTenant() {
        FinSysTenantUser sysInfo = getSysInfo();
@@ -629,7 +613,7 @@
        finSysTenant.setTempId(Long.valueOf(tenantId));
        FinSysTenant userTenant = this.finSysTenantService.get(finSysTenant);
        Long parentId = userTenant.getParentId();
        //第一级
        // ç¬¬ä¸€çº§
        if (parentId == 0) {
            return ResponseValue.success(userTenant);
        } else {
consum-base/src/main/java/com/consum/base/controller/FinSysTenantUserController.java
@@ -1,6 +1,28 @@
package com.consum.base.controller;
import cn.hutool.core.util.ReflectUtil;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
@@ -17,7 +39,7 @@
import com.consum.base.pojo.response.FinSysTenantVO;
import com.consum.base.pojo.response.UserVO;
import com.consum.base.service.FinSysTenantDepartmentService;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.FinSysTenantUserServiceImpl;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantDepartment;
@@ -31,22 +53,18 @@
import com.iplatform.model.po.S_role;
import com.iplatform.model.po.S_user_core;
import com.walker.db.page.GenericPager;
import com.walker.infrastructure.utils.*;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.NumberGenerator;
import com.walker.infrastructure.utils.PhoneNumberUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.web.ResponseValue;
import cn.hutool.core.util.ReflectUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.compress.utils.Lists;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.*;
/**
 * @Description ç³»ç»Ÿç”¨æˆ·
@@ -64,7 +82,7 @@
    private UserServiceImpl userService;
    private FinSysTenantServiceImpl finSysTenantService;
    private FinSysTenantService finSysTenantService;
    private RoleServiceImpl roleService;
@@ -77,7 +95,7 @@
    }
    @Autowired
    public FinSysTenantUserController(FinSysTenantServiceImpl finSysTenantService,
    public FinSysTenantUserController(FinSysTenantService finSysTenantService,
        FinSysTenantUserServiceImpl finSysTenantUserService, RoleServiceImpl roleService) {
        this.finSysTenantUserService = finSysTenantUserService;
        this.finSysTenantService = finSysTenantService;
@@ -224,7 +242,7 @@
        }
        tenantUser.setUserPhone(encPhone);
        // æ€Žä¹ˆèŽ·å–å·¦ä¾§æœºæž„æ ‘æ•°æ®
//        tenantUser.setSysDeptId(3L); // å¯¹åº”平台机构id é»˜è®¤ä¸ºå¹³å°ç®¡ç†
        // tenantUser.setSysDeptId(3L); // å¯¹åº”平台机构id é»˜è®¤ä¸ºå¹³å°ç®¡ç†
        this.finSysTenantUserService.insert(tenantUser);
        // æ’入平台用户
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryController.java
@@ -1,7 +1,22 @@
package com.consum.base.controller;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.consum.base.BaseController;
import com.consum.base.core.utils.CommonUtil;
import com.consum.base.core.utils.PageUtil;
@@ -21,25 +36,14 @@
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.web.ResponseValue;
import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.entity.TemplateExportParams;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
 * @Description ç›˜ç‚¹
@@ -56,16 +60,13 @@
    @Autowired
    private FinSysTenantUserServiceImpl finSysTenantUserService;
    /**
     * @Description æ–°å¢ž
     * @Author å¢åº†é˜³
     * @Date 2023/10/31
     */
    @ApiOperation(value = "新增盘点", notes = "新增盘点")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "FormInventoryParam")
    })
    @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "FormInventoryParam")})
    @PostMapping("/add")
    public ResponseValue add() {
@@ -78,11 +79,13 @@
        if (sysInfo == null) {
            return ResponseValue.error("登录用户信息不存在");
        }
        //根据盘点人id查询盘点人
        // æ ¹æ®ç›˜ç‚¹äººid查询盘点人
        // ç›˜ç‚¹äººid为sysUserId字段查询
        FinSysTenantUser finSysTenantUser = new FinSysTenantUser();
        finSysTenantUser.setId(param.getOperatorUserId());
        FinSysTenantUser operatorUser = finSysTenantUserService.get(finSysTenantUser);
        //根据监盘人id查询监盘人
        finSysTenantUser.setSysUserId(param.getOperatorUserId());
        FinSysTenantUser operatorUser =
            finSysTenantUserService.select(finSysTenantUser).stream().findFirst().orElse(null);
        // æ ¹æ®ç›‘盘人id查询监盘人
        FinSysTenantUser monitorUserInfo = new FinSysTenantUser();
        monitorUserInfo.setId(param.getMonitorUserId());
        FinSysTenantUser monitorUser = finSysTenantUserService.get(monitorUserInfo);
@@ -99,9 +102,8 @@
     * @Date 2023/10/31
     */
    @ApiOperation(value = "盘点单列表查询", notes = "盘点单列表查询")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam", required = true, paramType = "query")
    })
    @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam",
        required = true, paramType = "query")})
    @GetMapping("/list")
    public ResponseValue queryList() {
        LWhFormInventoryQry param = CommonUtil.getObjFromReq(LWhFormInventoryQry.class);
@@ -119,8 +121,7 @@
    @ApiOperation(value = "盘点单物品列表查询", notes = "盘点单物品列表查询", response = FormInventoryVO.class)
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query")
    })
        @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query")})
    @ApiResponse(code = 200, message = "成功", response = FormInventoryVO.class)
    @GetMapping("/query")
    public ResponseValue queryInventBaseGoodTemplate(Long id) {
@@ -131,7 +132,7 @@
        if (id == null) {
            return ResponseValue.error("参数不能为空");
        }
        //通过机构查询相关的模板信息
        // é€šè¿‡æœºæž„查询相关的模板信息
        FormInventoryVO formInventoryVO = lWhFormInventoryService.queryInventBaseGoodTemplate(id);
        // ä¿å­˜åŽè¿”回记录信息
@@ -145,9 +146,7 @@
     * @Date 2023/10/31
     */
    @ApiOperation(value = "编辑盘点", notes = "编辑盘点")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "FormInventoryParam")
    })
    @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "FormInventoryParam")})
    @PostMapping("/edit")
    public ResponseValue edit() {
        FormInventoryParam param = CommonUtil.getObjFromReqBody(FormInventoryParam.class);
@@ -167,11 +166,11 @@
            return ResponseValue.error("编辑失败!");
        }
        //根据盘点人id查询盘点人
        // æ ¹æ®ç›˜ç‚¹äººid查询盘点人
        FinSysTenantUser finSysTenantUser = new FinSysTenantUser();
        finSysTenantUser.setId(param.getOperatorUserId());
        FinSysTenantUser operatorUser = finSysTenantUserService.get(finSysTenantUser);
        //根据监盘人id查询监盘人
        // æ ¹æ®ç›‘盘人id查询监盘人
        FinSysTenantUser monitorUserInfo = new FinSysTenantUser();
        monitorUserInfo.setId(param.getMonitorUserId());
        FinSysTenantUser monitorUser = finSysTenantUserService.get(monitorUserInfo);
@@ -189,8 +188,7 @@
     */
    @ApiOperation(value = "根据id删除盘点", notes = "根据id删除盘点")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query")
    })
        @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query")})
    @DeleteMapping("/del")
    public ResponseValue delById(Long id) {
        if (id == null) {
@@ -211,7 +209,6 @@
        return ResponseValue.success(1);
    }
    /**
     * æš‚å­˜
     *
@@ -219,9 +216,7 @@
     * @date 2023/10/31
     */
    @ApiOperation(value = "盘点暂存", notes = "盘点暂存")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "LWhFormInventoryDto")
    })
    @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "LWhFormInventoryDto")})
    @PostMapping("/temporary/storage")
    public ResponseValue updateTemporaryStorage() {
        LWhFormInventoryParam param = CommonUtil.getObjFromReqBody(LWhFormInventoryParam.class);
@@ -244,9 +239,7 @@
     * @date 2023/10/31
     */
    @ApiOperation(value = "完成盘点", notes = "完成盘点")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "LWhFormInventoryDto")
    })
    @ApiImplicitParams({@ApiImplicitParam(name = "param", value = "盘点单信息", dataType = "LWhFormInventoryDto")})
    @PostMapping("/finish")
    public ResponseValue updateFinishPd() {
        LWhFormInventoryParam param = CommonUtil.getObjFromReqBody(LWhFormInventoryParam.class);
@@ -271,8 +264,7 @@
     */
    @ApiOperation(value = "异常明细列表查询", notes = "异常明细列表查询")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam", paramType = "query")
    })
        @ApiImplicitParam(name = "param", value = "盘点条件", dataType = "LWhFormInventoryParam", paramType = "query")})
    @GetMapping("/list/PdDetail")
    public ResponseValue queryPdDetailList() {
        LWhFormInventoryQry param = CommonUtil.getObjFromReq(LWhFormInventoryQry.class);
@@ -290,8 +282,7 @@
    @ApiOperation(value = "根据id查询盘点物品详细信息", notes = "根据id查询盘点物品详细信息")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "盘点id", dataType = "Long", required = true, paramType = "query")
    })
        @ApiImplicitParam(name = "id", value = "盘点id", dataType = "Long", required = true, paramType = "query")})
    @GetMapping("/detail")
    public ResponseValue selectDetailById(Long id) {
        FinSysTenantUser sysInfo = this.getSysInfo();
@@ -314,10 +305,9 @@
    @ApiOperation(value = "盘点单导出", notes = "盘点单导出")
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query")
    })
        @ApiImplicitParam(name = "id", value = "盘点单id", dataType = "Long", required = true, paramType = "query")})
    @GetMapping("/list/export")
    public void export(Long id, HttpServletResponse response) throws Exception {
    public String export(Long id, HttpServletResponse response) throws Exception {
        List<InventoryExcelTemplate> exportList = lWhFormInventoryService.getExportList(id);
        if (CollectionUtils.isEmpty(exportList)) {
@@ -338,12 +328,8 @@
        map.put("endDate", DateUtils.toShowDate(endTime));
        map.put("monitorName", monitorName);
        map.put("name", operatorName);
        Workbook workbook = ExcelExportUtil.exportExcel(params, InventoryExcelTemplate.class,
            exportList, map);
        downLoadExcel("低值易耗品盘点表", response, workbook);
        Workbook workbook = ExcelExportUtil.exportExcel(params, InventoryExcelTemplate.class, exportList, map);
        return downLoadExcel("低值易耗品盘点表", response, workbook);
    }
}
consum-base/src/main/java/com/consum/base/controller/LWhFormInventoryGoodsController.java
@@ -1,17 +1,20 @@
package com.consum.base.controller;
import com.consum.base.BaseController;
import com.consum.base.service.LWhFormInventoryGoodsServiceImpl;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormInventoryGoods;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.consum.base.BaseController;
import com.consum.base.service.LWhFormInventoryGoodsService;
import com.consum.model.po.FinSysTenantUser;
import com.consum.model.po.LWhFormInventoryGoods;
import com.walker.web.ResponseValue;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
 * @Description ç›˜ç‚¹å•物品
@@ -24,7 +27,7 @@
public class LWhFormInventoryGoodsController extends BaseController {
    @Autowired
    private LWhFormInventoryGoodsServiceImpl inventoryGoodsService;
    private LWhFormInventoryGoodsService inventoryGoodsService;
    /**
     * @return
@@ -42,7 +45,7 @@
        if (id == null) {
            ResponseValue.error("参数错误");
        }
        List<LWhFormInventoryGoods> list = this.inventoryGoodsService.getByInventoryId(id);
        List<LWhFormInventoryGoods> list = inventoryGoodsService.getByInventoryId(id);
        return ResponseValue.success(list);
    }
consum-base/src/main/java/com/consum/base/controller/LWhFormOutputController.java
@@ -215,7 +215,7 @@
    @ApiOperation(value = "出库单导出", notes = "出库单导出")
    @ApiImplicitParam(name = "id", value = "出库单id", required = true, dataType = "Long", paramType = "query")
    @GetMapping("/list/export")
    public void export(Long id, HttpServletResponse response) throws Exception {
    public String export(Long id, HttpServletResponse response) throws Exception {
        FinSysTenantUser sysInfo = this.getSysInfo();
        if (sysInfo == null) {
            throw new RuntimeException("登录用户信息不存在");
@@ -251,7 +251,7 @@
        map.put("totalAmount", totalAmount);
        Workbook workbook = ExcelExportUtil.exportExcel(params, OutputExcelTemplate.class, exportList, map);
        downLoadExcel("出库单", response, workbook);
        return downLoadExcel("出库单", response, workbook);
    }
consum-base/src/main/java/com/consum/base/controller/LWhFormProcureController.java
@@ -274,7 +274,7 @@
    @ApiImplicitParams({
        @ApiImplicitParam(name = "id", value = "采购单id", required = true, dataType = "Long", paramType = "query")})
    @GetMapping("/list/export")
    public void export(Long id, HttpServletResponse response) throws Exception {
    public String export(Long id, HttpServletResponse response) throws Exception {
        TemplateExportParams params = new TemplateExportParams("import/采购入库单.xls");
        params.setHeadingStartRow(2);
        FinSysTenantUser sysInfo = this.getSysInfo();
@@ -305,7 +305,7 @@
        map.put("totalAmount", totalAmount);
        Workbook workbook = ExcelExportUtil.exportExcel(params, ProcureExcelTemplate.class, exportList, map);
        downLoadExcel("采购入库单", response, workbook);
        return downLoadExcel("采购入库单", response, workbook);
    }
}
consum-base/src/main/java/com/consum/base/controller/LWhFormScrappedController.java
@@ -155,7 +155,7 @@
    @ApiOperation(value = "导出报废单", notes = "导出报废单")
    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "报废单id", dataType = "Long", paramType = "query")})
    @GetMapping("/list/export")
    public void export(Long id, HttpServletResponse response) throws Exception {
    public String export(Long id, HttpServletResponse response) throws Exception {
        if (id == null) {
            throw new RuntimeException("报废单id为空");
        }
@@ -186,7 +186,7 @@
        map.put("totalAmount", totalAmount);
        Workbook sheets = ExcelExportUtil.exportExcel(exportParams, ScrappedInfoExcelTemplate.class, export, map);
        downLoadExcel("报废登记单", response, sheets);
        return downLoadExcel("报废登记单", response, sheets);
    }
consum-base/src/main/java/com/consum/base/controller/LWhFormTransferController.java
@@ -288,7 +288,7 @@
    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "调拨单id", required = true, dataType = "Long"),
        @ApiImplicitParam(name = "type", value = "导出类型 1 å…¥åº“ 2 å‡ºåº“", required = true, dataType = "Integer"),})
    @GetMapping("/list/export")
    public void export(Long id, Integer type, HttpServletResponse response) throws Exception {
    public String export(Long id, Integer type, HttpServletResponse response) throws Exception {
        TemplateExportParams params;
        String fileName;
@@ -322,7 +322,7 @@
        map.put("totalAmount", totalAmount);
        Workbook workbook = ExcelExportUtil.exportExcel(params, TransferExcelTemplate.class, export, map);
        downLoadExcel(fileName, response, workbook);
        return downLoadExcel(fileName, response, workbook);
    }
consum-base/src/main/java/com/consum/base/core/type/InventoryResultType.java
New file
@@ -0,0 +1,48 @@
package com.consum.base.core.type;
/**
 * InventoryResultType
 *
 * @author asus
 * @version 2023/12/11 10:32
 **/
public enum InventoryResultType {
    /**
     * æ­£å¸¸
     */
    NORMAL(1, "正常"),
    /**
     * ç›˜ç›ˆ
     */
    SURPLUS(2, "盘盈"),
    /**
     * ç›˜äº
     */
    LOSS(3, "盘亏");
    private Integer value;
    private String desc;
    InventoryResultType(Integer value, String desc) {
        this.value = value;
        this.desc = desc;
    }
    public Integer getValue() {
        return value;
    }
    public void setValue(Integer value) {
        this.value = value;
    }
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
}
consum-base/src/main/java/com/consum/base/pojo/RecordUserInfoVO.java
@@ -5,12 +5,12 @@
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @description: ä½¿ç”¨è®°å½•信息
 * @date 2023/11/8 15:20
 */
@Data
public class RecordUserInfoVO {
    //以前的记录id
    // ä»¥å‰çš„记录id
    private Long oldProcureModelId;
    // ä½¿ç”¨äºº
consum-base/src/main/java/com/consum/base/pojo/UseRecordSkuVO.java
@@ -1,17 +1,17 @@
package com.consum.base.pojo;
import java.util.List;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @description: ä½¿ç”¨è®°å½•商品信息
 * @date 2023/11/8 15:20
 */
@Data
public class UseRecordSkuVO {
    // å•号id
    private Long procureModelId;
@@ -22,8 +22,6 @@
    // è®¡é‡å•位
    private String unit;
    private List<RecordUserInfoVO> recordUserInfos;
}
consum-base/src/main/java/com/consum/base/pojo/excel/ImportGoodsInfoTemplate.java
New file
@@ -0,0 +1,33 @@
package com.consum.base.pojo.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: å¯¼å…¥ç‰©å“ä¿¡æ¯
 * @date 2023/12/11 14:25
 */
@Data
public class ImportGoodsInfoTemplate {
    @ExcelProperty("一级分类")
    private String categoryOne;
    @ExcelProperty("二级分类")
    private String categoryTwo;
    @ExcelProperty("三级分类")
    private String categoryThree;
    @ExcelProperty("物品名称")
    private String goodName;
    @ExcelProperty("规格型号")
    private String goodModel;
    @ExcelProperty("单位")
    private String unit;
    @ExcelProperty("采购类型")
    private String type;
    @ExcelProperty("所属机构")
    private String agencyName;
}
consum-base/src/main/java/com/consum/base/pojo/request/UsingFormBackGoodsInfo.java
@@ -1,28 +1,29 @@
package com.consum.base.pojo.request;
import io.swagger.annotations.ApiModel;
import java.util.List;
import io.swagger.annotations.ApiModel;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @description: éƒ¨é—¨é€€å›žç‰©å“ä¿¡æ¯
 * @date 2023/12/1 13:16
 */
@Data
@ApiModel
public class UsingFormBackGoodsInfo {
    //分类编号
    // åˆ†ç±»ç¼–号
    private Long baseCategoryId;
    //物品模版编号
    // ç‰©å“æ¨¡ç‰ˆç¼–号
    private Long baseGoodsTemplateId;
    //物品模版名字
    // ç‰©å“æ¨¡ç‰ˆåå­—
    private String goodsTemplateName;
    //分发单id
    // åˆ†å‘单id
    private Long transBusinessId;
    //分发单编号
    // åˆ†å‘单编号
    private String businessFormCode;
    private List<baseGoodModel> models;
consum-base/src/main/java/com/consum/base/pojo/request/baseGoodModel.java
@@ -7,7 +7,7 @@
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @description: éƒ¨é—¨ç‰©å“æ¨¡æ¿ä¿¡æ¯
 * @date 2023/12/1 13:21
 */
@Data
@@ -31,6 +31,5 @@
    private Integer userUseCount;
    private Integer goodsNum;
    private Integer counts;
}
consum-base/src/main/java/com/consum/base/pojo/response/DepartmentVO.java
@@ -2,12 +2,13 @@
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @description: éƒ¨é—¨å’Œç”¨æˆ·ä¿¡æ¯
 * @date 2023/11/16 16:57
 */
@Data
@@ -17,6 +18,5 @@
    private String name;
    private String type;
    private List<UserVO> children = new ArrayList<>();
}
consum-base/src/main/java/com/consum/base/pojo/response/LWhFormScrappedVO.java
@@ -8,7 +8,7 @@
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @description: æŠ¥åºŸå•列表
 * @date 2023/11/22 16:29
 */
@Data
consum-base/src/main/java/com/consum/base/pojo/response/OutAndInDetailVO.java
@@ -8,7 +8,7 @@
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @description: å‡ºå…¥åº“明细信息
 * @date 2023/11/28 11:25
 */
@NoArgsConstructor
consum-base/src/main/java/com/consum/base/pojo/response/UserVO.java
@@ -5,7 +5,7 @@
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @description: ç”¨æˆ·ä¿¡æ¯
 * @date 2023/11/16 16:57
 */
@Data
@@ -14,6 +14,5 @@
    private Long id;
    private String name;
    private String type;
}
consum-base/src/main/java/com/consum/base/pojo/response/UsingFormBackVO.java
@@ -1,13 +1,14 @@
package com.consum.base.pojo.response;
import java.util.List;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
 * @author asus
 * @version 1.0
 * @description: TODO
 * @description: éƒ¨é—¨é€€å›žå•据
 * @date 2023/12/1 17:12
 */
@NoArgsConstructor
@@ -20,5 +21,5 @@
    private String businessFormCode;
    private String operatorName;
    private  List<GoodsTemplateCountVO> goodsTemplateInfoList;
    private List<GoodsTemplateCountVO> goodsTemplateInfoList;
}
consum-base/src/main/java/com/consum/base/service/FinSysTenantService.java
New file
@@ -0,0 +1,39 @@
package com.consum.base.service;
import java.util.List;
import java.util.Map;
import com.consum.base.pojo.FinSysTenantParam;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantUser;
import com.walker.jdbc.service.BaseService;
/**
 * FinSysTenantService
 *
 * @author asus
 * @version 2023/12/11 17:14
 **/
public interface FinSysTenantService extends BaseService {
    FinSysTenant queryOneByCode(String code);
    List<FinSysTenant> queryForTree();
    List<FinSysTenant> queryTreeById(Long id, Integer lv);
    Map<Long, List<FinSysTenant>> queryCountyByCityCode(Long id, Integer lv);
    int updateById(FinSysTenantParam param, FinSysTenantUser sysInfo);
    int addFinSysTenant(FinSysTenantParam param, FinSysTenantUser sysInfo, int lv);
    void setLvIdAndName(FinSysTenantParam param, FinSysTenant finSysTenant, long id, int lv);
    void insertFinSysTenantBatch(List<FinSysTenantParam> params, FinSysTenantUser sysInfo, int lv);
    int updateFinSysTenant(FinSysTenant finSysTenant, FinSysTenantUser sysInfo);
    FinSysTenant selectById(Long id);
    FinSysTenant selectByName(String tenantName);
}
consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsService.java
New file
@@ -0,0 +1,40 @@
package com.consum.base.service;
import java.util.List;
import com.consum.base.pojo.response.FormInventoryGoodsVO;
import com.consum.model.po.LWhFormInventoryGoods;
import com.walker.jdbc.service.BaseService;
/**
 * LWhFormInventoryGoodsService
 *
 * @author asus
 * @version 2023/12/11 10:28
 **/
public interface LWhFormInventoryGoodsService extends BaseService {
    /**
     * æ ¹æ®ç›˜ç‚¹å•id查询盘点物品
     *
     * @param id
     * @return
     */
    List<LWhFormInventoryGoods> getByInventoryId(Long id);
    /**
     * æ’入盘点物品信息
     *
     * @param inventoryGoodsList
     * @param inventoryId
     * @return
     */
    List<FormInventoryGoodsVO> add(List<FormInventoryGoodsVO> inventoryGoodsList, Long inventoryId);
    /**
     * æ‰¹é‡æ›´æ–°ç›˜ç‚¹ç‰©å“ä¿¡æ¯
     *
     * @param inventoryGoodsList
     * @return
     */
    int updateInventoryGoods(List<FormInventoryGoodsVO> inventoryGoodsList);
}
consum-base/src/main/java/com/consum/base/service/impl/BaseWarehouseServiceImpl.java
@@ -17,7 +17,7 @@
import com.consum.base.pojo.BaseWarehouseParam;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.FinSysTenantDepartmentService;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.SDictDataServiceImpl;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenant;
@@ -40,7 +40,7 @@
    @Autowired
    private CodeGeneratorService codeGeneratorService;
    @Autowired
    private FinSysTenantServiceImpl finSysTenantService;
    private FinSysTenantService finSysTenantService;
    @Autowired
    private FinSysTenantDepartmentService departmentService;
    @Autowired
consum-base/src/main/java/com/consum/base/service/impl/FinSysTenantServiceImpl.java
File was renamed from consum-base/src/main/java/com/consum/base/service/FinSysTenantServiceImpl.java
@@ -1,31 +1,36 @@
package com.consum.base.service;
package com.consum.base.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.springframework.stereotype.Service;
import com.consum.base.pojo.FinSysTenantParam;
import com.consum.base.service.FinSysTenantService;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantUser;
import com.walker.infrastructure.utils.CollectionUtils;
import com.walker.infrastructure.utils.DateUtils;
import com.walker.infrastructure.utils.StringUtils;
import com.walker.jdbc.service.BaseServiceImpl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.springframework.stereotype.Service;
@Service
public class FinSysTenantServiceImpl extends BaseServiceImpl {
public class FinSysTenantServiceImpl extends BaseServiceImpl implements FinSysTenantService {
    private static final String QUERY_TREE_ALL = "select * from FIN_SYS_TENANT where is_delete = 0 and status = 1  order by parent_id, LV ASC";
    private static final String QUERY_TREE_ALL =
        "select * from FIN_SYS_TENANT where is_delete = 0 and status = 1  order by parent_id, LV ASC";
    private static final String QUERY_TREE_BY_CODE = "SELECT * FROM FIN_SYS_TENANT  ";
    private static final String QUERY_LIST_BY_CITY_CODE = "SELECT ID, NAME, CODE, CASE WHEN LV = 2 THEN ID ELSE PARENT_ID END AS PARENT_ID, LV, TENANT_TYPE, BELONG_PROVINCE FROM FIN_SYS_TENANT  ";
    private static final String QUERY_LV2_ALL = "SELECT * FROM FIN_SYS_TENANT WHERE LV < 3 ORDER BY CODE ASC";
    private static final String QUERY_LIST_BY_CITY_CODE =
        "SELECT ID, NAME, CODE, CASE WHEN LV = 2 THEN ID ELSE PARENT_ID END AS PARENT_ID, LV, TENANT_TYPE, BELONG_PROVINCE FROM FIN_SYS_TENANT  ";
    /**
     * @Author ï¼špower
     * @Date ï¼š 2023/7/20 20:41 èŽ·å–åŒºåˆ’ä¿¡æ¯ ä¸»è¦ç”¨äºŽç¼“å­˜
     */
    @Override
    public FinSysTenant queryOneByCode(String code) {
        FinSysTenant tenant = new FinSysTenant();
        tenant.setCode(code);
@@ -36,16 +41,17 @@
        return null;
    }
    @Override
    public List<FinSysTenant> queryForTree() {
        // å±•示全部节点
        return this.select(QUERY_TREE_ALL, new Object[]{}, new FinSysTenant());
        return this.select(QUERY_TREE_ALL, new Object[] {}, new FinSysTenant());
    }
    /**
     * @Author ï¼špower
     * @Date ï¼š 2023/7/20 16:34 æ ¹æ®id æŸ¥è¯¢ä¸‹çº§æ‰€æœ‰èŠ‚ç‚¹ åœ°å¸‚查询自己 çœæŸ¥è¯¢æ‰€æœ‰åœ°å¸‚
     */
    @Override
    public List<FinSysTenant> queryTreeById(Long id, Integer lv) {
        if (lv == 3) {
            return new ArrayList<>();
@@ -67,6 +73,7 @@
     * @Author ï¼špower
     * @Date ï¼š 2023/7/21 14:46 ç‰¹æ®Šæ•°æ® ç¦æ­¢å…¶ä»–接口使用
     */
    @Override
    public Map<Long, List<FinSysTenant>> queryCountyByCityCode(Long id, Integer lv) {
        Map<String, Object> parameter = new HashMap<>(5);
        StringBuilder sql = new StringBuilder(QUERY_LIST_BY_CITY_CODE);
@@ -80,20 +87,10 @@
        }
        sql.append(" ORDER BY PARENT_ID ,ID ");
        List<FinSysTenant> list = this.select(sql.toString(), parameter, new FinSysTenant());
        // return list.stream().filter(tenant -> Objects.nonNull(tenant.getParentId())).collect(Collectors.groupingBy(FinSysTenant::getParentId));
        // return list.stream().filter(tenant ->
        // Objects.nonNull(tenant.getParentId())).collect(Collectors.groupingBy(FinSysTenant::getParentId));
        return list.stream().collect(Collectors.groupingBy(FinSysTenant::getParentId));
    }
    /**
     * @Description æŸ¥è¯¢æ‰€æœ‰çš„市级带河南省的区划
     * @Author wh
     * @Date 2023/7/20 15:29
     */
    public List<FinSysTenant> selectByLV2() {
        return this.select(QUERY_LV2_ALL, new Object[]{}, new FinSysTenant());
    }
    /**
     * åˆ é™¤
@@ -101,6 +98,7 @@
     * @author å¢åº†é˜³
     * @date 2023/10/4
     */
    @Override
    public int updateById(FinSysTenantParam param, FinSysTenantUser sysInfo) {
        FinSysTenant finSysTenant = new FinSysTenant();
        finSysTenant.setTempId(param.getId());
@@ -112,17 +110,17 @@
        return this.update(finSysTenant);
    }
    /**
     * æ·»åŠ æœºæž„
     *
     * @author å¢åº†é˜³
     * @date 2023/10/4
     */
    @Override
    public int addFinSysTenant(FinSysTenantParam param, FinSysTenantUser sysInfo, int lv) {
        FinSysTenant finSysTenant = new FinSysTenant();
        //id和tempId
        // id和tempId
        StringBuilder sql = new StringBuilder("SELECT max(id) FROM fin_sys_tenant WHERE 1=1");
        HashMap<String, Object> paramts = new HashMap<>();
@@ -132,7 +130,7 @@
        List<Map<String, Object>> list = this.select(sql.toString(), paramts);
        long id = 0L;
        if (!CollectionUtils.isEmpty(list) && list.get(0).get("max(id)") != null) {
            id = (Long) list.get(0).get("max(id)") + 1;
            id = (Long)list.get(0).get("max(id)") + 1;
        } else {
            id = param.getParentId() * 1000 + 1;
        }
@@ -142,13 +140,13 @@
        finSysTenant.setParentId(param.getParentId());
        finSysTenant.setCode(param.getCode());
        //设置详细地址及经纬度
        // è®¾ç½®è¯¦ç»†åœ°å€åŠç»çº¬åº¦
        finSysTenant.setName(param.getName());
        finSysTenant.setCreateTime3(DateUtils.getDate("yyyy-MM-dd HH:mm:ss"));
        finSysTenant.setCreateTime(DateUtils.getDateTimeNumber(System.currentTimeMillis()));
        finSysTenant.setSummary(param.getSummary());
        finSysTenant.setCreateBy(sysInfo.getUserName());
        //设置各层级id及名称
        // è®¾ç½®å„层级id及名称
        finSysTenant.setLv(lv);
        setLvIdAndName(param, finSysTenant, id, lv);
@@ -161,9 +159,10 @@
     * @author å¢åº†é˜³
     * @date 2023/10/4
     */
    private void setLvIdAndName(FinSysTenantParam param, FinSysTenant finSysTenant, long id, int lv) {
        if (lv == 2) {    //新增市级机构
            //查询上一级 - çœçº§
    @Override
    public void setLvIdAndName(FinSysTenantParam param, FinSysTenant finSysTenant, long id, int lv) {
        if (lv == 2) { // æ–°å¢žå¸‚级机构
            // æŸ¥è¯¢ä¸Šä¸€çº§ - çœçº§
            FinSysTenant finSysTenant1 = this.get(new FinSysTenant(param.getParentId()));
            if (finSysTenant1 != null) {
                finSysTenant.setLv1Id(finSysTenant1.getId());
@@ -171,11 +170,11 @@
                finSysTenant.setLv2Id(id);
                finSysTenant.setLv2Name(param.getName());
            }
        } else if (lv == 3) {     //新增县级机构
            //查询上一级 - å¸‚级
        } else if (lv == 3) { // æ–°å¢žåŽ¿çº§æœºæž„
            // æŸ¥è¯¢ä¸Šä¸€çº§ - å¸‚级
            FinSysTenant finSysTenant2 = this.get(new FinSysTenant(param.getParentId()));
            if (finSysTenant2 != null) {
                //查询上一级 - çœçº§
                // æŸ¥è¯¢ä¸Šä¸€çº§ - çœçº§
                FinSysTenant finSysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId()));
                finSysTenant.setLv1Id(finSysTenant1.getId());
@@ -185,14 +184,14 @@
                finSysTenant.setLv3Id(id);
                finSysTenant.setLv3Name(param.getName());
            }
        } else if (lv == 4) {      //新增支局机构
            //查询上一级 - åŽ¿çº§
        } else if (lv == 4) { // æ–°å¢žæ”¯å±€æœºæž„
            // æŸ¥è¯¢ä¸Šä¸€çº§ - åŽ¿çº§
            FinSysTenant finSysTenant3 = this.get(new FinSysTenant(param.getParentId()));
            if (finSysTenant3 != null) {
                //查询上一级 - å¸‚级
                // æŸ¥è¯¢ä¸Šä¸€çº§ - å¸‚级
                FinSysTenant finSysTenant2 = this.get(new FinSysTenant(finSysTenant3.getParentId()));
                if (finSysTenant2 != null) {
                    //查询上一级 - çœçº§
                    // æŸ¥è¯¢ä¸Šä¸€çº§ - çœçº§
                    FinSysTenant sysTenant1 = this.get(new FinSysTenant(finSysTenant2.getParentId()));
                    if (sysTenant1 != null) {
                        finSysTenant.setLv1Id(sysTenant1.getId());
@@ -209,19 +208,18 @@
        }
    }
    /**
     * æ‰¹é‡æ·»åŠ æœºæž„
     *
     * @author jlq
     * @date 2023/10/9
     */
    @Override
    public void insertFinSysTenantBatch(List<FinSysTenantParam> params, FinSysTenantUser sysInfo, int lv) {
        for (FinSysTenantParam param : params) {
            addFinSysTenant(param, sysInfo, lv);
        }
    }
    /**
     * ç¼–辑
@@ -229,6 +227,7 @@
     * @author å¢åº†é˜³
     * @date 2023/10/6
     */
    @Override
    public int updateFinSysTenant(FinSysTenant finSysTenant, FinSysTenantUser sysInfo) {
        Integer lv = finSysTenant.getLv();
        if (lv == 1) {
@@ -244,9 +243,17 @@
        return this.update(finSysTenant);
    }
    @Override
    public FinSysTenant selectById(Long id) {
        FinSysTenant tenant = new FinSysTenant();
        tenant.setTempId(id);
        return this.get(tenant);
    }
    @Override
    public FinSysTenant selectByName(String tenantName) {
        FinSysTenant tenant = new FinSysTenant();
        tenant.setName(tenantName);
        return this.select(tenant).stream().findFirst().orElse(null);
    }
}
consum-base/src/main/java/com/consum/base/service/impl/LWhFormInventoryCoreService.java
@@ -19,7 +19,7 @@
import com.consum.base.core.utils.IdUtil;
import com.consum.base.service.BaseGoodsTemplateService;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.LWhFormInventoryGoodsServiceImpl;
import com.consum.base.service.LWhFormInventoryGoodsService;
import com.consum.base.service.LWhFormInventoryService;
import com.consum.base.service.LWhFormOutputService;
import com.consum.base.service.LWhFormProcureGoodsService;
@@ -50,7 +50,7 @@
@Transactional(propagation = Propagation.REQUIRED)
public class LWhFormInventoryCoreService {
    private LWhFormInventoryGoodsServiceImpl lWhFormInventoryGoods;
    private LWhFormInventoryGoodsService lWhFormInventoryGoods;
    private LWhFormOutputCoreService lWhFormOutputCoreService;
    private CodeGeneratorService codeGeneratorService;
    private LWhFormProcureService lWhFormProcureServiceImpl;
@@ -64,7 +64,7 @@
    private LWhFormOutputService lWhFormOutputService;
    @Autowired
    public LWhFormInventoryCoreService(LWhFormInventoryGoodsServiceImpl lWhFormInventoryGoods,
    public LWhFormInventoryCoreService(LWhFormInventoryGoodsService lWhFormInventoryGoods,
                                       LWhFormOutputCoreService lWhFormOutputCoreService,
                                       CodeGeneratorService codeGeneratorService,
                                       LWhFormProcureService lWhFormProcureServiceImpl,
consum-base/src/main/java/com/consum/base/service/impl/LWhFormInventoryGoodsServiceImpl.java
File was renamed from consum-base/src/main/java/com/consum/base/service/LWhFormInventoryGoodsServiceImpl.java
@@ -1,4 +1,4 @@
package com.consum.base.service;
package com.consum.base.service.impl;
import java.util.ArrayList;
import java.util.List;
@@ -7,8 +7,10 @@
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.consum.base.core.type.InventoryResultType;
import com.consum.base.core.utils.IdUtil;
import com.consum.base.pojo.response.FormInventoryGoodsVO;
import com.consum.base.service.LWhFormInventoryGoodsService;
import com.consum.model.po.LWhFormInventoryGoods;
import com.walker.jdbc.service.BaseServiceImpl;
@@ -22,20 +24,16 @@
@Slf4j
@Service
@Transactional(propagation = Propagation.REQUIRED)
public class LWhFormInventoryGoodsServiceImpl extends BaseServiceImpl {
public class LWhFormInventoryGoodsServiceImpl extends BaseServiceImpl implements LWhFormInventoryGoodsService {
    /**
     * @return
     * @Description æ ¹æ®ç›˜ç‚¹å•id查询盘点单物品
     * @Author å¢åº†é˜³
     * @Date 2023/10/31
     */
    @Override
    public List<LWhFormInventoryGoods> getByInventoryId(Long id) {
        LWhFormInventoryGoods inventoryGoods = new LWhFormInventoryGoods();
        inventoryGoods.setWhFormInventoryId(id);
        return this.select(inventoryGoods);
    }
    @Override
    public List<FormInventoryGoodsVO> add(List<FormInventoryGoodsVO> inventoryGoodsList, Long inventoryId) {
        List<LWhFormInventoryGoods> goodsList = new ArrayList<>();
        for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) {
@@ -56,6 +54,7 @@
        return inventoryGoodsList;
    }
    @Override
    public int updateInventoryGoods(List<FormInventoryGoodsVO> inventoryGoodsList) {
        List<LWhFormInventoryGoods> goodsList = new ArrayList<>();
        for (FormInventoryGoodsVO inventoryGoods : inventoryGoodsList) {
@@ -68,13 +67,14 @@
                lWhFormInventoryGoods.setInventoryCounts(realNum);
                lWhFormInventoryGoods.setErrorCounts(Math.abs(errorCount));
                // ç›˜ç‚¹ç»“果(1=正常;2=盘盈;3=盘亏)
                lWhFormInventoryGoods.setInventoryResult((errorCount > 0) ? 2 : (errorCount < 0) ? 3 : 1);
                // TODO æ‰¹é‡æ›´æ–°
                this.update(lWhFormInventoryGoods);
                // goodsList.add(lWhFormInventoryGoods);
                lWhFormInventoryGoods.setInventoryResult((errorCount > 0) ? InventoryResultType.SURPLUS.getValue()
                    : (errorCount < 0) ? InventoryResultType.LOSS.getValue() : InventoryResultType.NORMAL.getValue());
                // this.update(lWhFormInventoryGoods);
                goodsList.add(lWhFormInventoryGoods);
            }
        }
        this.updateBatch(goodsList);
        return 1;
    }
consum-base/src/main/java/com/consum/base/service/impl/LWhFormInventoryServiceImpl.java
@@ -1,10 +1,5 @@
package com.consum.base.service.impl;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.LWhFormInventoryGoodsServiceImpl;
import com.consum.base.service.LWhFormInventoryService;
import com.consum.base.service.LWhGoodsService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -31,6 +26,11 @@
import com.consum.base.pojo.response.FormInventoryDetailVO;
import com.consum.base.pojo.response.FormInventoryGoodsVO;
import com.consum.base.pojo.response.FormInventoryVO;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.LWhFormInventoryGoodsService;
import com.consum.base.service.LWhFormInventoryService;
import com.consum.base.service.LWhGoodsService;
import com.consum.model.po.BaseWarehouse;
import com.consum.model.po.FinSysTenant;
import com.consum.model.po.FinSysTenantUser;
@@ -57,11 +57,11 @@
    @Autowired
    private BaseWarehouseService baseWarehouseService;
    @Autowired
    private LWhFormInventoryGoodsServiceImpl inventoryGoodsService;
    private LWhFormInventoryGoodsService inventoryGoodsService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
    @Autowired
    private FinSysTenantServiceImpl finSysTenantService;
    private FinSysTenantService finSysTenantService;
    @Autowired
    @Lazy
    private LWhFormInventoryCoreService lWhFormInventoryCoreService;
@@ -208,7 +208,7 @@
            log.error("盘点单物品为空");
            return 0;
        }
        this.inventoryGoodsService.updateInventoryGoods(inventoryGoodsList);
        inventoryGoodsService.updateInventoryGoods(inventoryGoodsList);
        // ä¿®æ”¹ç›˜ç‚¹å•
        if (state == 2) {
            // å®Œæˆç›˜ç‚¹æ—¶è®¾ç½®å®Œæˆç›˜ç‚¹æ—¶é—´
consum-base/src/main/java/com/consum/base/service/impl/LWhFormTransferServiceImpl.java
@@ -37,7 +37,7 @@
import com.consum.base.pojo.response.LWHFromTransferExtendVO;
import com.consum.base.service.BaseWarehouseManagerService;
import com.consum.base.service.BaseWarehouseService;
import com.consum.base.service.FinSysTenantServiceImpl;
import com.consum.base.service.FinSysTenantService;
import com.consum.base.service.LWhFormTransferService;
import com.consum.base.service.LWhGoodsService;
import com.consum.base.service.LWhProcureModelService;
@@ -69,7 +69,7 @@
    @Autowired
    private CodeGeneratorService codeGeneratorService;
    @Autowired
    private FinSysTenantServiceImpl finSysTenantService;
    private FinSysTenantService finSysTenantService;
    @Autowired
    private LWhGoodsService lWhGoodsService;
    @Autowired
deploy-jar-single/src/main/resources/import/ÎïÆ·ÐÅÏ¢.xls
Binary files differ