home 2 лет назад
Родитель
Сommit
a110d2db01

+ 7 - 1
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessNodeButtonServiceImpl.java

@@ -11,8 +11,10 @@ import com.fjhx.enums.ProcessNodeTypeEnum;
 import com.fjhx.mapper.process.ProcessNodeButtonMapper;
 import com.fjhx.params.NodeDetailsVo;
 import com.fjhx.service.process.ProcessNodeButtonService;
+import com.fjhx.service.process.ProcessNodeService;
 import com.fjhx.utils.Assert;
 import org.springblade.core.log.exception.ServiceException;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -31,6 +33,9 @@ import java.util.stream.Collectors;
 @Service
 public class ProcessNodeButtonServiceImpl extends ServiceImpl<ProcessNodeButtonMapper, ProcessNodeButton> implements ProcessNodeButtonService {
 
+    @Autowired
+    private ProcessNodeService processNodeService;
+
     @Override
     public void insertNodeButton(NodeDetailsVo nodeDetailsVo) {
 
@@ -70,7 +75,6 @@ public class ProcessNodeButtonServiceImpl extends ServiceImpl<ProcessNodeButtonM
 
         }
 
-
         // 按父级节点id分组
         Map<Long, List<ProcessNode>> processNodeGroupByParentId = processNodeList.stream()
                 .collect(Collectors.groupingBy(ProcessNode::getParentId));
@@ -116,6 +120,8 @@ public class ProcessNodeButtonServiceImpl extends ServiceImpl<ProcessNodeButtonM
             }
         }
 
+        processNodeService.saveBatch(processNodeList);
+
         saveBatch(processNodeButtonList);
     }
 

+ 0 - 4
hx-common/service-flow/src/main/java/com/fjhx/service/process/impl/ProcessTenantServiceImpl.java

@@ -15,7 +15,6 @@ import com.fjhx.enums.ProcessNodeTypeEnum;
 import com.fjhx.mapper.process.ProcessTenantMapper;
 import com.fjhx.params.NodeDetailsVo;
 import com.fjhx.service.process.ProcessNodeButtonService;
-import com.fjhx.service.process.ProcessNodeService;
 import com.fjhx.service.process.ProcessTenantService;
 import com.fjhx.utils.Assert;
 import com.fjhx.utils.WrapperUtil;
@@ -41,9 +40,6 @@ import java.util.Map;
 public class ProcessTenantServiceImpl extends ServiceImpl<ProcessTenantMapper, ProcessTenant> implements ProcessTenantService {
 
     @Autowired
-    private ProcessNodeService processNodeService;
-
-    @Autowired
     private ProcessNodeButtonService processNodeButtonService;
 
     @Override

+ 104 - 137
hx-service-api/service-flow-api/src/main/java/com/fjhx/utils/FlowConstructor.java

@@ -1,40 +1,32 @@
 package com.fjhx.utils;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.fjhx.constants.FlowConstant;
 import com.fjhx.constants.FlowExplainConstant;
-import com.fjhx.constants.StatusConstant;
-import com.fjhx.entity.example.ExampleDetails;
-import com.fjhx.entity.example.ExampleInfo;
 import com.fjhx.entity.process.ProcessNodeButton;
-import com.fjhx.entity.process.ProcessTenant;
 import com.fjhx.enums.ButtonNameEnum;
 import com.fjhx.feign.IFlowClient;
-import com.fjhx.params.ExampleInfoEx;
-import com.fjhx.params.FlowInfoVo;
-import com.fjhx.params.GetNodeButtonVo;
+import com.fjhx.params.ExampleResult;
+import com.fjhx.params.JumpVo;
 import org.springblade.core.tool.api.R;
 
 public class FlowConstructor {
 
     private static final IFlowClient flowClient = SpringUtil.getBean(IFlowClient.class);
 
-    private ExampleAbstract exampleAbstract;
-
-    private FlowConstructor() {
-
-    }
+    private final ExampleAbstract exampleAbstract;
 
     /**
      * 初始化
      */
     public static FlowConstructor init(ExampleAbstract exampleAbstract) {
-        FlowConstructor flowConstructor = new FlowConstructor();
-        flowConstructor.exampleAbstract = exampleAbstract;
-        return flowConstructor;
+        return new FlowConstructor(exampleAbstract);
+    }
+
+    private FlowConstructor(ExampleAbstract exampleAbstract) {
+        this.exampleAbstract = exampleAbstract;
     }
 
     /**
@@ -43,86 +35,34 @@ public class FlowConstructor {
      * @param flowLinkNo 流程关联编号
      * @return 流程实例对象
      */
-    public ExampleInfo create(Long flowLinkNo, String remarks) {
+    public ExampleResult create(Long flowLinkNo, String remarks, Object cacheData) {
 
         // 获取流程编码
-        String code = exampleAbstract.getCode();
-        Assert.notEmpty(code, FlowExplainConstant.CODE_EMPTY);
-
-        // 获取租户流程
-        R<FlowInfoVo> r = flowClient.getProcessTenant(flowLinkNo, code);
-        Assert.eqTrue(r.isSuccess(), r.getMsg());
-        FlowInfoVo flowInfoVo = r.getData();
-
-        // 创建流程实例
-        ExampleInfoEx exampleInfo = new ExampleInfoEx();
-        exampleInfo.setProcessInfoId(flowInfoVo.getId());
-        exampleInfo.setFlowLinkNo(flowLinkNo);
-        if (ObjectUtil.isNotEmpty(exampleAbstract.cacheData)) {
-            exampleInfo.setCacheData(JSONObject.toJSONString(exampleAbstract.cacheData));
-        }
+        String code = getCode();
 
-        ExampleDetails startExampleDetails = new ExampleDetails();
-        startExampleDetails.setRemarks(remarks);
-
-        // 如果租户流程为空,直接完成流程
-        ProcessTenant processTenant = flowInfoVo.processTenantEntity();
-        if (ObjectUtil.isEmpty(processTenant)) {
-            exampleInfo.setProcessNodeId(FlowConstant.OVER_PROCESS_FLAG);
-            exampleInfo.setComplete(StatusConstant.YES);
-            exampleInfo.setProcessNodeCode(FlowConstant.END_CODE);
-
-            startExampleDetails.setNameType(ButtonNameEnum.START.getType());
-            // 执行流程结束方法
-            exampleAbstract.end();
-        }
-        // 租户流程不为空,走租户流程
-        else {
-            Long processTenantId = processTenant.getId();
+        // 缓存对象转字符串
+        String cacheDataStr = getCacheDataStr(cacheData);
 
-            // 赋值租户流程id
-            exampleInfo.setProcessTenantId(processTenantId);
+        // 查询跳转节点
+        String nodeCode = exampleAbstract.circulation(FlowConstant.START_CODE);
 
-            // 调用方法查看是否有指定跳转节点,没有则正常流转
-            String circulation = exampleAbstract.circulation(FlowConstant.START_CODE);
+        // 执行流程
+        R<ExampleResult> exampleResultR = flowClient.create(flowLinkNo, code, nodeCode, remarks, cacheDataStr);
+        ExampleResult result = Assert.result(exampleResultR);
 
-            GetNodeButtonVo getNodeButtonVo = new GetNodeButtonVo();
-            getNodeButtonVo.setProcessTenantId(processTenantId);
-            getNodeButtonVo.setNodeCode(ObjectUtil.isEmpty(circulation) ? FlowConstant.START_CODE : circulation);
+        exampleAbstract.setCacheData(cacheData);
 
-            R<ProcessNodeButton> nodeButtonResult = flowClient.getNodeButton(getNodeButtonVo);
-            Assert.eqTrue(nodeButtonResult.isSuccess(), nodeButtonResult.getMsg());
-
-            ProcessNodeButton processNodeButton = nodeButtonResult.getData();
-            startExampleDetails.setProcessNodeId(processNodeButton.getProcessNodeId());
-            startExampleDetails.setProcessNodeButtonId(processNodeButton.getId());
-            startExampleDetails.setNameType(processNodeButton.getNameType());
-
-            // 流转节点
-            Long jumpNodeId = processNodeButton.getJumpNodeId();
-
-            // 流程结束
-            if (jumpNodeId.equals(FlowConstant.OVER_PROCESS_FLAG)) {
-                exampleInfo.setComplete(StatusConstant.YES);
-                exampleInfo.setProcessNodeCode(FlowConstant.END_CODE);
+        // 如果流程结束,执行结束方法
+        if (ButtonNameEnum.END.getType().equals(result.getHandleType())) {
+            try {
                 exampleAbstract.end();
+            } catch (Exception e) {
+                rollBack(result);
+                throw e;
             }
-            // 正常流转到下一节点
-            else {
-                exampleInfo.setComplete(StatusConstant.NO);
-            }
-
-            // 赋值跳转节点id
-            exampleInfo.setProcessNodeId(jumpNodeId);
-            exampleInfo.setProcessNodeCode(processNodeButton.getProcessNodeCode());
         }
-        exampleInfo.setExampleDetails(startExampleDetails);
-
-        // 保存流程实例
-        R<ExampleInfo> exampleInfoSaveResult = flowClient.exampleInfoSave(exampleInfo);
-        Assert.eqTrue(exampleInfoSaveResult.isSuccess(), exampleInfoSaveResult.getMsg());
 
-        return exampleInfoSaveResult.getData();
+        return result;
     }
 
     /**
@@ -131,69 +71,96 @@ public class FlowConstructor {
      * @param flowLinkNo 流程关联编号
      * @param buttonId   按钮id
      * @param remarks    审批意见
+     * @param cacheData  缓存对象
      */
-    public void jump(Long flowLinkNo, Long buttonId, String remarks) {
-
-        R<ExampleInfo> exampleInfoResult = flowClient.getExampleInfo(flowLinkNo);
-        Assert.eqTrue(exampleInfoResult.isSuccess(), exampleInfoResult.getMsg());
-
-        ExampleInfo exampleInfo = exampleInfoResult.getData();
-
-        // 获取流程缓存
-        exampleAbstract.cacheData = exampleInfo.getCacheData();
-
-        // 赋值新缓存
-        if (ObjectUtil.isNotEmpty(exampleAbstract.cacheData)) {
-            exampleInfo.setCacheData(JSONObject.toJSONString(exampleAbstract.cacheData));
+    public ExampleResult jump(Long flowLinkNo, Long buttonId, String remarks, Object cacheData) {
+
+        // 缓存对象转字符串
+        String cacheDataStr = getCacheDataStr(cacheData);
+
+        // 获取按钮
+        ProcessNodeButton processNodeButton = Assert.result(flowClient.getNodeButtonById(buttonId));
+
+        // 查询跳转节点
+        String processNodeCode = processNodeButton.getProcessNodeCode();
+        String nodeCode = exampleAbstract.circulation(processNodeCode);
+
+        JumpVo jumpVo = new JumpVo();
+        jumpVo.setFlowLinkNo(flowLinkNo);
+        jumpVo.setButtonId(buttonId);
+        jumpVo.setRemarks(remarks);
+        jumpVo.setCacheDataStr(cacheDataStr);
+        if (ObjectUtil.isNotEmpty(nodeCode)) {
+            jumpVo.setSpecifyJump(true);
+            jumpVo.setJumpNodeCode(nodeCode);
+        } else {
+            jumpVo.setSpecifyJump(false);
+            jumpVo.setJumpNodeId(processNodeButton.getJumpNodeId());
+            jumpVo.setJumpNodeCode(processNodeButton.getJumpNodeCode());
+            jumpVo.setNameType(processNodeButton.getNameType());
         }
 
-        // 调用方法查看是否有指定跳转节点,没有则正常流转
-        GetNodeButtonVo getNodeButtonVo = new GetNodeButtonVo();
-        getNodeButtonVo.setProcessTenantId(exampleInfo.getProcessTenantId());
-        getNodeButtonVo.setNodeCode(exampleAbstract.circulation(exampleInfo.getProcessNodeCode()));
-        getNodeButtonVo.setButtonId(buttonId);
-
-        R<ProcessNodeButton> nodeButtonResult = flowClient.getNodeButton(getNodeButtonVo);
-        Assert.eqTrue(nodeButtonResult.isSuccess(), nodeButtonResult.getMsg());
+        R<ExampleResult> exampleResultR = flowClient.jump(jumpVo);
+        ExampleResult result = Assert.result(exampleResultR);
 
-        ProcessNodeButton processNodeButton = nodeButtonResult.getData();
+        exampleAbstract.setCacheData(cacheData);
 
-        // 赋值跳转节点id
-        exampleInfo.setProcessNodeId(processNodeButton.getJumpNodeId());
-        exampleInfo.setProcessNodeCode(processNodeButton.getProcessNodeCode());
-
-        // 流程正常结束
-        if (processNodeButton.getJumpNodeId().equals(FlowConstant.OVER_PROCESS_FLAG)) {
-            exampleInfo.setComplete(StatusConstant.YES);
-            exampleInfo.setProcessNodeCode(FlowConstant.END_CODE);
-            exampleAbstract.end();
-        }
-        // 驳回结束
-        else if (ButtonNameEnum.REJECT.getType().equals(processNodeButton.getNameType())) {
-            exampleInfo.setComplete(StatusConstant.YES);
-            exampleInfo.setProcessNodeCode(FlowConstant.END_CODE);
-            exampleAbstract.reject(processNodeButton.getProcessNodeCode());
+        // 如果流程结束,执行结束方法
+        if (ButtonNameEnum.END.getType().equals(result.getHandleType())) {
+            try {
+                exampleAbstract.end();
+            } catch (Exception e) {
+                rollBack(result);
+                throw e;
+            }
         }
-        // 正常流转到下一节点
-        else {
-            exampleInfo.setComplete(StatusConstant.NO);
+
+        // 如果流程结束,执行结束方法
+        if (ButtonNameEnum.REJECT.getType().equals(result.getHandleType())) {
+            try {
+                exampleAbstract.reject(result.getOldExampleInfo().getProcessNodeCode());
+            } catch (Exception e) {
+                rollBack(result);
+                throw e;
+            }
         }
 
-        // 流程明细
-        ExampleDetails startExampleDetails = new ExampleDetails();
-        startExampleDetails.setRemarks(remarks);
-        startExampleDetails.setProcessNodeId(processNodeButton.getProcessNodeId());
-        startExampleDetails.setProcessNodeButtonId(processNodeButton.getId());
-        startExampleDetails.setNameType(processNodeButton.getNameType());
+        return result;
+    }
 
-        // 创建vo
-        ExampleInfoEx exampleInfoEx = BeanUtil.toBean(exampleInfo, ExampleInfoEx.class);
-        exampleInfoEx.setExampleDetails(startExampleDetails);
+    /**
+     * 业务异常回滚流程
+     *
+     * @param result 流程返回值
+     */
+    public void rollBack(ExampleResult result) {
+        flowClient.rollBack(result);
+    }
 
-        // 保存流程实例
-        R<ExampleInfo> exampleInfoSaveResult = flowClient.exampleInfoSave(exampleInfoEx);
-        Assert.eqTrue(exampleInfoSaveResult.isSuccess(), exampleInfoSaveResult.getMsg());
+    /**
+     * 缓存对象转字符串
+     *
+     * @param cacheData 缓存对象
+     * @return 缓存字符串
+     */
+    private String getCacheDataStr(Object cacheData) {
+        String cacheDataStr = "";
+        if (ObjectUtil.isNotEmpty(cacheData)) {
+            cacheDataStr = JSONObject.toJSONString(cacheData);
+        }
+        return cacheDataStr;
+    }
 
+    /**
+     * 获取流程编码
+     *
+     * @return 流程编码
+     */
+    private String getCode() {
+        String code = exampleAbstract.getCode();
+        Assert.notEmpty(code, FlowExplainConstant.CODE_EMPTY);
+        return code;
     }
 
+
 }

+ 0 - 166
hx-service-api/service-flow-api/src/main/java/com/fjhx/utils/FlowConstructorBack.java

@@ -1,166 +0,0 @@
-package com.fjhx.utils;
-
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.extra.spring.SpringUtil;
-import com.alibaba.fastjson.JSONObject;
-import com.fjhx.constants.FlowConstant;
-import com.fjhx.constants.FlowExplainConstant;
-import com.fjhx.entity.process.ProcessNodeButton;
-import com.fjhx.enums.ButtonNameEnum;
-import com.fjhx.feign.IFlowClient;
-import com.fjhx.params.ExampleResult;
-import com.fjhx.params.JumpVo;
-import org.springblade.core.tool.api.R;
-
-public class FlowConstructorBack {
-
-    private static final IFlowClient flowClient = SpringUtil.getBean(IFlowClient.class);
-
-    private final ExampleAbstract exampleAbstract;
-
-    /**
-     * 初始化
-     */
-    public static FlowConstructorBack init(ExampleAbstract exampleAbstract) {
-        return new FlowConstructorBack(exampleAbstract);
-    }
-
-    private FlowConstructorBack(ExampleAbstract exampleAbstract) {
-        this.exampleAbstract = exampleAbstract;
-    }
-
-    /**
-     * 创建流程
-     *
-     * @param flowLinkNo 流程关联编号
-     * @return 流程实例对象
-     */
-    public ExampleResult create(Long flowLinkNo, String remarks, Object cacheData) {
-
-        // 获取流程编码
-        String code = getCode();
-
-        // 缓存对象转字符串
-        String cacheDataStr = getCacheDataStr(cacheData);
-
-        // 查询跳转节点
-        String nodeCode = exampleAbstract.circulation(FlowConstant.START_CODE);
-
-        // 执行流程
-        R<ExampleResult> exampleResultR = flowClient.create(flowLinkNo, code, nodeCode, remarks, cacheDataStr);
-        ExampleResult result = Assert.result(exampleResultR);
-
-        exampleAbstract.setCacheData(cacheData);
-
-        // 如果流程结束,执行结束方法
-        if (ButtonNameEnum.END.getType().equals(result.getHandleType())) {
-            try {
-                exampleAbstract.end();
-            } catch (Exception e) {
-                rollBack(result);
-                throw e;
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * 流程跳转
-     *
-     * @param flowLinkNo 流程关联编号
-     * @param buttonId   按钮id
-     * @param remarks    审批意见
-     * @param cacheData  缓存对象
-     */
-    public ExampleResult jump(Long flowLinkNo, Long buttonId, String remarks, Object cacheData) {
-
-        // 缓存对象转字符串
-        String cacheDataStr = getCacheDataStr(cacheData);
-
-        // 获取按钮
-        ProcessNodeButton processNodeButton = Assert.result(flowClient.getNodeButtonById(buttonId));
-
-        // 查询跳转节点
-        String processNodeCode = processNodeButton.getProcessNodeCode();
-        String nodeCode = exampleAbstract.circulation(processNodeCode);
-
-        JumpVo jumpVo = new JumpVo();
-        jumpVo.setFlowLinkNo(flowLinkNo);
-        jumpVo.setButtonId(buttonId);
-        jumpVo.setRemarks(remarks);
-        jumpVo.setCacheDataStr(cacheDataStr);
-        if (ObjectUtil.isNotEmpty(nodeCode)) {
-            jumpVo.setSpecifyJump(true);
-            jumpVo.setJumpNodeCode(nodeCode);
-        } else {
-            jumpVo.setSpecifyJump(false);
-            jumpVo.setJumpNodeId(processNodeButton.getJumpNodeId());
-            jumpVo.setJumpNodeCode(processNodeButton.getJumpNodeCode());
-            jumpVo.setNameType(processNodeButton.getNameType());
-        }
-
-        R<ExampleResult> exampleResultR = flowClient.jump(jumpVo);
-        ExampleResult result = Assert.result(exampleResultR);
-
-        exampleAbstract.setCacheData(cacheData);
-
-        // 如果流程结束,执行结束方法
-        if (ButtonNameEnum.END.getType().equals(result.getHandleType())) {
-            try {
-                exampleAbstract.end();
-            } catch (Exception e) {
-                rollBack(result);
-                throw e;
-            }
-        }
-
-        // 如果流程结束,执行结束方法
-        if (ButtonNameEnum.REJECT.getType().equals(result.getHandleType())) {
-            try {
-                exampleAbstract.reject(result.getOldExampleInfo().getProcessNodeCode());
-            } catch (Exception e) {
-                rollBack(result);
-                throw e;
-            }
-        }
-
-        return result;
-    }
-
-    /**
-     * 业务异常回滚流程
-     *
-     * @param result 流程返回值
-     */
-    public void rollBack(ExampleResult result) {
-        flowClient.rollBack(result);
-    }
-
-    /**
-     * 缓存对象转字符串
-     *
-     * @param cacheData 缓存对象
-     * @return 缓存字符串
-     */
-    private String getCacheDataStr(Object cacheData) {
-        String cacheDataStr = "";
-        if (ObjectUtil.isNotEmpty(cacheData)) {
-            cacheDataStr = JSONObject.toJSONString(cacheData);
-        }
-        return cacheDataStr;
-    }
-
-    /**
-     * 获取流程编码
-     *
-     * @return 流程编码
-     */
-    private String getCode() {
-        String code = exampleAbstract.getCode();
-        Assert.notEmpty(code, FlowExplainConstant.CODE_EMPTY);
-        return code;
-    }
-
-
-}

+ 20 - 27
hx-service/storage-restructure/src/main/java/com/fjhx/controller/common/CommonFileController.java

@@ -3,6 +3,7 @@ package com.fjhx.controller.common;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fjhx.entity.common.CommonFile;
 import com.fjhx.entity.example.ExampleInfo;
+import com.fjhx.params.ExampleResult;
 import com.fjhx.service.common.CommonFileService;
 import com.fjhx.utils.ExampleAbstract;
 import com.fjhx.utils.FlowConstructor;
@@ -44,47 +45,39 @@ public class CommonFileController {
     }
 
 
-    private ExampleAbstract exampleAbstract() {
-        return new ExampleAbstract() {
+    private FlowConstructor flowConstructor = FlowConstructor.init(
 
-            @Override
-            public String getCode() {
-                return "test";
-            }
+            new ExampleAbstract() {
+                @Override
+                public String getCode() {
+                    return "test";
+                }
 
-            @Override
-            public void end() {
-                ExampleInfo cacheData = getCacheData(ExampleInfo.class);
-                System.err.println("缓存     " + cacheData);
-                System.err.println("流程结束了");
-            }
+                @Override
+                public void end() {
+                    ExampleInfo cacheData = getCacheData(ExampleInfo.class);
+                    System.err.println("缓存     " + cacheData);
+                    System.err.println("流程结束了");
+                }
 
-        };
-    }
+            }
+    );
 
 
     @GetMapping("test")
     public R test() {
-
         HashMap<String, String> map = new HashMap<>();
         map.put("processInfoId", "1111111111111111111111");
         map.put("processTenantId", "222222222222222222222");
-
-        ExampleAbstract exampleAbstract = exampleAbstract();
-
-        exampleAbstract.setCacheData(map);
-        FlowConstructor.init(exampleAbstract).create(123456L, "测试发起流程");
-        return R.success();
+        ExampleResult result = flowConstructor.create(123456L, "测试开始流程", map);
+        return R.success(result);
     }
 
 
     @GetMapping("jump")
-    public R jump() {
-
-        ExampleAbstract exampleAbstract = exampleAbstract();
-        FlowConstructor.init(exampleAbstract).jump(123456L, 1560105451033104390L, "测试流程运行");
-
-        return R.success();
+    public R jump(@RequestParam("buttonId") Long buttonId) {
+        ExampleResult result = flowConstructor.jump(123456L, buttonId, "测试流程运行", null);
+        return R.success(result);
     }
 
 }

+ 1 - 1
hx-service/storage-restructure/src/main/java/com/fjhx/scheduling/service/impl/StockAreaServiceImpl.java → hx-service/storage-restructure/src/main/java/com/fjhx/service/stock/impl/StockAreaServiceImpl.java

@@ -1,4 +1,4 @@
-package com.fjhx.scheduling.service.impl;
+package com.fjhx.service.stock.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;

+ 1 - 1
hx-service/storage-restructure/src/main/java/com/fjhx/scheduling/service/impl/StockHouseServiceImpl.java → hx-service/storage-restructure/src/main/java/com/fjhx/service/stock/impl/StockHouseServiceImpl.java

@@ -1,4 +1,4 @@
-package com.fjhx.scheduling.service.impl;
+package com.fjhx.service.stock.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;