diff --git a/ktg-admin/pom.xml b/ktg-admin/pom.xml
index ceeef73..26b1e76 100644
--- a/ktg-admin/pom.xml
+++ b/ktg-admin/pom.xml
@@ -30,6 +30,44 @@
springfox-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ junit
+ junit
+ test
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+ provided
+
+
+
+
+ org.apache.tomcat.embed
+ tomcat-embed-websocket
+ 8.5.23
+
+
+
+ javax.websocket
+ javax.websocket-api
+ 1.1
+ provided
+
+
+
+
+
+
io.swagger
diff --git a/ktg-admin/src/test/InventoryTaskTest.java b/ktg-admin/src/test/InventoryTaskTest.java
new file mode 100644
index 0000000..a842a87
--- /dev/null
+++ b/ktg-admin/src/test/InventoryTaskTest.java
@@ -0,0 +1,32 @@
+import com.ktg.RuoYiApplication;
+import com.ktg.mes.qc.domain.InventoryTask;
+import com.ktg.mes.qc.service.InventoryTaskService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = RuoYiApplication.class,webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class InventoryTaskTest {
+ @Autowired
+ private InventoryTaskService inventoryTaskService;
+ @Test
+ public void saveTest(){
+ //新建任务对象
+ InventoryTask inventoryTaskTest = new InventoryTask();
+ inventoryTaskTest.setWmsInventoryCode("TEST001");
+ inventoryTaskTest.setUomId("TEST001");
+ inventoryTaskTest.setName("测试计划");
+ inventoryTaskTest.setPlanPeriod("月");
+ inventoryTaskTest.setStartTime("2022-01-01");
+ inventoryTaskTest.setFinishTime("2022-12-31");
+ inventoryTaskTest.setSuperiorTime("2022-01-01");
+ inventoryTaskTest.setBelowTime("2022-12-31");
+ inventoryTaskTest.setProductId("TEST001");
+ //新增
+ int i = inventoryTaskService.insertInventoryTask(inventoryTaskTest);
+
+ }
+}
diff --git a/ktg-admin/src/test/SysDeptUnitTest.java b/ktg-admin/src/test/SysDeptUnitTest.java
new file mode 100644
index 0000000..07fe224
--- /dev/null
+++ b/ktg-admin/src/test/SysDeptUnitTest.java
@@ -0,0 +1,97 @@
+import com.alibaba.fastjson.JSON;
+import com.ktg.RuoYiApplication;
+import com.ktg.common.core.domain.AjaxResult;
+import com.ktg.common.core.domain.entity.SysDept;
+import com.ktg.common.utils.StringUtils;
+import com.ktg.system.service.ISysDeptService;
+import org.apache.commons.lang3.ArrayUtils;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * 组织机构
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = RuoYiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class SysDeptUnitTest {
+ @Autowired
+ private ISysDeptService deptService;
+
+ @Test
+ public void add() {
+ SysDept sysDept = new SysDept();
+ sysDept.setParentId(100L);
+ sysDept.setDeptName("单元测试机构01");
+ sysDept.setDeptCode("UNIT_DEP_001");
+ sysDept.setDeptType(4);
+ sysDept.setOrderNum("1");
+ sysDept.setStatus("0");
+ deptService.insertDept(sysDept);
+ System.out.println("add:" + sysDept.getDeptId()); // 119
+ }
+
+ @Test
+ public void list() {
+ List list = deptService.selectDeptList(new SysDept());
+ System.out.println("list:" + JSON.toJSONString(list));
+ }
+
+ @Test
+ public void getInfo() {
+ System.out.println("getInfo:" + JSON.toJSONString(deptService.selectDeptById(119L)));
+ }
+
+ @Test
+ public void edit() {
+ SysDept sysDept = new SysDept();
+ sysDept.setDeptId(119L);
+ sysDept.setParentId(100L);
+ sysDept.setAncestors("0,100");
+ sysDept.setDeptName("单元测试机构02");
+ sysDept.setDeptCode("UNIT_DEP_002");
+ sysDept.setDeptType(4);
+ sysDept.setOrderNum("1");
+ int count = deptService.updateDept(sysDept);
+ System.out.println("edit:" + count);
+ }
+
+ @Test
+ public void remove() {
+ int count = deptService.deleteDeptById(119L);
+ System.out.println("remove:" + count);
+ }
+
+ @Test
+ public void excludeChild() {
+ List depts = deptService.selectDeptList(new SysDept());
+ Iterator it = depts.iterator();
+ while (it.hasNext()) {
+ SysDept d = it.next();
+ if (d.getDeptId().intValue() == 100
+ || ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), 100 + "")) {
+ it.remove();
+ }
+ }
+ System.out.println("excludeChild:" + JSON.toJSONString(depts));
+ }
+
+ @Test
+ public void treeselect() {
+ List depts = deptService.selectDeptList(new SysDept());
+ System.out.println("treeselect:" + JSON.toJSONString(depts));
+ }
+
+ @Test
+ public void roleDeptTreeselect() {
+ List depts = deptService.selectDeptList(new SysDept());
+ AjaxResult ajax = AjaxResult.success();
+ ajax.put("checkedKeys", deptService.selectDeptListByRoleId(100L));
+ System.out.println("roleDeptTreeselect:" + JSON.toJSONString(depts));
+ }
+}
diff --git a/ktg-admin/src/test/SysUserUnitTest.java b/ktg-admin/src/test/SysUserUnitTest.java
new file mode 100644
index 0000000..bc32b7d
--- /dev/null
+++ b/ktg-admin/src/test/SysUserUnitTest.java
@@ -0,0 +1,106 @@
+import com.alibaba.fastjson.JSON;
+import com.ktg.RuoYiApplication;
+import com.ktg.common.core.domain.entity.SysRole;
+import com.ktg.common.core.domain.entity.SysUser;
+import com.ktg.system.service.ISysRoleService;
+import com.ktg.system.service.ISysUserService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 用户管理
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = RuoYiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class SysUserUnitTest {
+ @Autowired
+ private ISysUserService userService;
+
+ @Autowired
+ private ISysRoleService roleService;
+
+ @Test
+ public void add() {
+ SysUser sysUser = new SysUser();
+ sysUser.setDeptId(118L);
+ sysUser.setUserName("unittest02");
+ sysUser.setNickName("单元测试用户02");
+ sysUser.setPassword("123456");
+ sysUser.setStatus("0");
+ sysUser.setRoleIds(new Long[]{105L});
+ userService.insertUser(sysUser);
+ System.out.println("add:" + sysUser.getUserId()); // 117
+ }
+
+ @Test
+ public void list() {
+ List list = userService.selectUserList(new SysUser());
+ System.out.println("list:" + JSON.toJSONString(list));
+ }
+
+ @Test
+ public void getInfo() {
+ System.out.println("getInfo:" + JSON.toJSONString(userService.selectUserById(117L)));
+ }
+
+ @Test
+ public void edit() {
+ SysUser sysUser = new SysUser();
+ sysUser.setUserId(117L);
+ sysUser.setUserName("unittest02");
+ sysUser.setNickName("单元测试用户03");
+ sysUser.setPassword("123456");
+ sysUser.setStatus("0");
+ sysUser.setRoleIds(new Long[]{105L});
+ int count = userService.updateUser(sysUser);
+ System.out.println("edit:" + count);
+ }
+
+ @Test
+ public void remove() {
+ Long[] ids = {117L};
+ int count = userService.deleteUserByIds(ids);
+ System.out.println("remove:" + count);
+ }
+
+ @Test
+ public void resetPwd() {
+ SysUser sysUser = new SysUser();
+ sysUser.setUserId(117L);
+ sysUser.setPassword("123456");
+ int count = userService.resetPwd(sysUser);
+ System.out.println("resetPwd:" + count);
+ }
+
+ @Test
+ public void changeStatus() {
+ SysUser sysUser = new SysUser();
+ sysUser.setUserId(117L);
+ sysUser.setStatus("1");
+ int count = userService.resetPwd(sysUser);
+ System.out.println("changeStatus:" + count);
+ }
+
+ @Test
+ public void authRole() {
+ HashMap map = new HashMap<>();
+ SysUser user = userService.selectUserById(117L);
+ List roles = roleService.selectRolesByUserId(117L);
+ map.put("user", user);
+ map.put("roles", SysUser.isAdmin(117L) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
+ System.out.println("authRole:" + JSON.toJSONString(map));
+ }
+
+ @Test
+ public void insertAuthRole() {
+ userService.insertUserAuth(117L, new Long[]{105L});
+ System.out.println("insertAuthRole:OK");
+ }
+}
diff --git a/ktg-admin/src/test/WmStorageLocationUnitTest.java b/ktg-admin/src/test/WmStorageLocationUnitTest.java
new file mode 100644
index 0000000..9f13d83
--- /dev/null
+++ b/ktg-admin/src/test/WmStorageLocationUnitTest.java
@@ -0,0 +1,65 @@
+import com.alibaba.fastjson.JSON;
+import com.ktg.RuoYiApplication;
+import com.ktg.mes.wm.domain.WmStorageLocation;
+import com.ktg.mes.wm.service.IWmStorageLocationService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+/**
+ * 库区管理
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = RuoYiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class WmStorageLocationUnitTest {
+ @Autowired
+ private IWmStorageLocationService wmStorageLocationService;
+
+ @Test
+ public void add() {
+ WmStorageLocation wmStorageLocation = new WmStorageLocation();
+ wmStorageLocation.setLocationCode("L061");
+ wmStorageLocation.setLocationName("测试库区001");
+ wmStorageLocation.setWarehouseId(210L);
+ wmStorageLocation.setRemark("则是一个测试库区");
+ wmStorageLocation.setLocationName("原料仓");
+ wmStorageLocationService.insertWmStorageLocation(wmStorageLocation);
+ System.out.println("add:" + wmStorageLocation.getLocationId()); // 227
+ }
+
+ @Test
+ public void list() {
+ List list = wmStorageLocationService.selectWmStorageLocationList(new WmStorageLocation());
+ System.out.println("list:" + JSON.toJSONString(list));
+ }
+
+ @Test
+ public void getInfo() {
+ System.out.println("getInfo:" + JSON.toJSONString(wmStorageLocationService.selectWmStorageLocationByLocationId(227L)));
+ }
+
+ @Test
+ public void edit() {
+ WmStorageLocation wmStorageLocation = new WmStorageLocation();
+ wmStorageLocation.setRemark("这是一个测试库区");
+ wmStorageLocation.setLocationId(227L);
+ wmStorageLocation.setLocationCode("L061");
+ wmStorageLocation.setLocationName("原料仓");
+ wmStorageLocation.setWarehouseId(210L);
+ wmStorageLocation.setAreaFlag("N");
+ wmStorageLocation.setFrozenFlag("N");
+ int count = wmStorageLocationService.updateWmStorageLocation(wmStorageLocation);
+ System.out.println("edit:" + count);
+ }
+
+ @Test
+ public void remove() {
+ Long[] ids = {227L};
+ int count = wmStorageLocationService.deleteWmStorageLocationByLocationIds(ids);
+ System.out.println("remove:" + count);
+ }
+}
diff --git a/ktg-admin/src/test/WmWarehouseUnitTest.java b/ktg-admin/src/test/WmWarehouseUnitTest.java
new file mode 100644
index 0000000..3a0dbe5
--- /dev/null
+++ b/ktg-admin/src/test/WmWarehouseUnitTest.java
@@ -0,0 +1,76 @@
+import com.alibaba.fastjson.JSON;
+import com.ktg.RuoYiApplication;
+import com.ktg.mes.wm.domain.WmWarehouse;
+import com.ktg.mes.wm.service.IWmWarehouseService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+/**
+ * 库房管理
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = RuoYiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class WmWarehouseUnitTest {
+ @Autowired
+ private IWmWarehouseService wmWarehouseService;
+
+ @Test
+ public void add() {
+ WmWarehouse wmWarehouse = new WmWarehouse();
+ wmWarehouse.setWarehouseCode("WH999");
+ wmWarehouse.setWarehouseName("测试库房999");
+ wmWarehouse.setCharge("张三丰");
+ wmWarehouse.setRemark("这是一个测试库房999");
+ wmWarehouse.setAttr1("7");
+ wmWarehouse.setAttr2("刀柄入库");
+ wmWarehouse.setAttr3(1L);
+ wmWarehouseService.insertWmWarehouse(wmWarehouse);
+ System.out.println("add:" + wmWarehouse.getWarehouseId()); // 222
+ }
+
+ @Test
+ public void list() {
+ List list = wmWarehouseService.selectWmWarehouseList(new WmWarehouse());
+ System.out.println("list:" + JSON.toJSONString(list));
+ }
+
+// @Test TODO E
+// public void getTreeList() {
+// List list = wmWarehouseService.getTreeList();
+// System.out.println("getTreeList:" + JSON.toJSONString(list));
+// }
+
+ @Test
+ public void getInfo() {
+ System.out.println("getInfo:" + JSON.toJSONString(wmWarehouseService.selectWmWarehouseByWarehouseId(222L)));
+ }
+
+ @Test
+ public void edit() {
+ WmWarehouse wmWarehouse = new WmWarehouse();
+ wmWarehouse.setWarehouseId(222L);
+ wmWarehouse.setWarehouseCode("WH999EDIT");
+ wmWarehouse.setWarehouseName("测试库房999EDIT");
+ wmWarehouse.setCharge("张三丰");
+ wmWarehouse.setFrozenFlag("N");
+ wmWarehouse.setRemark("这是一个测试库房999EDIT");
+ wmWarehouse.setAttr1("7");
+ wmWarehouse.setAttr2("刀柄入库");
+ wmWarehouse.setAttr3(1L);
+ wmWarehouse.setAttr4(0L);
+ int count = wmWarehouseService.updateWmWarehouse(wmWarehouse);
+ System.out.println("edit:" + count);
+ }
+
+ @Test
+ public void remove() {
+ Long[] ids = {222L};
+ int count = wmWarehouseService.deleteWmWarehouseByWarehouseIds(ids);
+ System.out.println("remove:" + count);
+ }
+}
diff --git a/ktg-admin/src/test/WmsBusinessTypeUnitTest.java b/ktg-admin/src/test/WmsBusinessTypeUnitTest.java
new file mode 100644
index 0000000..24690a3
--- /dev/null
+++ b/ktg-admin/src/test/WmsBusinessTypeUnitTest.java
@@ -0,0 +1,62 @@
+import com.alibaba.fastjson.JSON;
+import com.ktg.RuoYiApplication;
+import com.ktg.mes.md.domain.WmsBusinessType;
+import com.ktg.mes.md.service.IWmsBusinessTypeService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+/**
+ * 出入库类型
+ */
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = RuoYiApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class WmsBusinessTypeUnitTest {
+ @Autowired
+ private IWmsBusinessTypeService wmsBusinessTypeService;
+
+ @Test
+ public void add() {
+ WmsBusinessType wmsBusinessType = new WmsBusinessType();
+ wmsBusinessType.setCode("TYPE_UNIT_TEST_01");
+ wmsBusinessType.setName("出库单元测试数据01");
+ wmsBusinessType.setFlag("2");
+ wmsBusinessType.setRemark("出库单元测试数据01");
+ wmsBusinessTypeService.insertWmsBusinessType(wmsBusinessType);
+ System.out.println("add:" + wmsBusinessType.getTypeId()); // 14
+ }
+
+ @Test
+ public void list() {
+ List list = wmsBusinessTypeService.selectWmsBusinessTypeList(new WmsBusinessType());
+ System.out.println("list:" + JSON.toJSONString(list));
+ }
+
+ @Test
+ public void getInfo() {
+ System.out.println("getInfo:" + JSON.toJSONString(wmsBusinessTypeService.selectWmsBusinessTypeByTypeId("14")));
+ }
+
+ @Test
+ public void edit() {
+ WmsBusinessType wmsBusinessType = new WmsBusinessType();
+ wmsBusinessType.setTypeId("14");
+ wmsBusinessType.setCode("TYPE_UNIT_TEST_02");
+ wmsBusinessType.setName("出库单元测试数据02");
+ wmsBusinessType.setFlag("2");
+ wmsBusinessType.setRemark("出库单元测试数据02");
+ int count = wmsBusinessTypeService.updateWmsBusinessType(wmsBusinessType);
+ System.out.println("edit:" + count);
+ }
+
+ @Test
+ public void remove() {
+ String[] ids = {"14"};
+ int count = wmsBusinessTypeService.deleteWmsBusinessTypeByTypeIds(ids);
+ System.out.println("remove:" + count);
+ }
+}
diff --git a/ktg-admin/src/test/test.java b/ktg-admin/src/test/test.java
new file mode 100644
index 0000000..e87dbab
--- /dev/null
+++ b/ktg-admin/src/test/test.java
@@ -0,0 +1,32 @@
+import com.ktg.RuoYiApplication;
+import com.ktg.mes.qc.domain.InventoryTask;
+import com.ktg.mes.qc.service.InventoryTaskService;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = RuoYiApplication.class)
+public class test {
+ @Autowired
+ private InventoryTaskService inventoryTaskService;
+ @Test
+ public void saveTest(){
+ //新建任务对象
+ InventoryTask inventoryTaskTest = new InventoryTask();
+ inventoryTaskTest.setWmsInventoryCode("TEST001");
+ inventoryTaskTest.setUomId("TEST001");
+ inventoryTaskTest.setName("测试计划");
+ inventoryTaskTest.setPlanPeriod("月");
+ inventoryTaskTest.setStartTime("2022-01-01");
+ inventoryTaskTest.setFinishTime("2022-12-31");
+ inventoryTaskTest.setSuperiorTime("2022-01-01");
+ inventoryTaskTest.setBelowTime("2022-12-31");
+ inventoryTaskTest.setProductId("TEST001");
+ //新增
+ int i = inventoryTaskService.insertInventoryTask(inventoryTaskTest);
+
+ }
+}
diff --git a/ktg-mes/pom.xml b/ktg-mes/pom.xml
index 4bfeaee..86a794b 100644
--- a/ktg-mes/pom.xml
+++ b/ktg-mes/pom.xml
@@ -21,6 +21,7 @@
jasperreports
6.18.1
+
net.sf.jasperreports
jasperreports-fonts
diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/controller/BaseKnifeController.java b/ktg-mes/src/main/java/com/ktg/mes/md/controller/BaseKnifeController.java
index 6a243fb..ccf6231 100644
--- a/ktg-mes/src/main/java/com/ktg/mes/md/controller/BaseKnifeController.java
+++ b/ktg-mes/src/main/java/com/ktg/mes/md/controller/BaseKnifeController.java
@@ -507,7 +507,7 @@ public class BaseKnifeController extends BaseController
List bomList;
for (BaseTechnologyBom techBom : technologyBomList){
mdItem = mdItemService.selectMdItemByCode(techBom.getKnifeCode());
- count = techBom.getKnifeCount();
+ count = techBom.getKnifeCount() - countMap.get(techBom.getKnifeCode());
// 先从台账表找
baseKnifeWrapper.setMbbBdMrlId(mdItem.getItemId());
diff --git a/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdItemController.java b/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdItemController.java
index 6958c67..1c9cd4c 100644
--- a/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdItemController.java
+++ b/ktg-mes/src/main/java/com/ktg/mes/md/controller/MdItemController.java
@@ -1,10 +1,5 @@
package com.ktg.mes.md.controller;
-import com.ktg.common.utils.poi.ExcelUtil;
-import com.ktg.mes.aspect.BarcodeGen;
-import com.ktg.mes.md.domain.MdUnitMeasure;
-import com.ktg.mes.md.domain.MdVendor;
-import com.ktg.mes.md.service.IMdItemService;
import com.ktg.common.annotation.Log;
import com.ktg.common.constant.UserConstants;
import com.ktg.common.core.controller.BaseController;
@@ -13,8 +8,12 @@ import com.ktg.common.core.domain.entity.ItemType;
import com.ktg.common.core.page.TableDataInfo;
import com.ktg.common.enums.BusinessType;
import com.ktg.common.utils.StringUtils;
+import com.ktg.common.utils.poi.ExcelUtil;
+import com.ktg.mes.aspect.BarcodeGen;
import com.ktg.mes.md.domain.MdItem;
+import com.ktg.mes.md.domain.MdUnitMeasure;
import com.ktg.mes.md.service.IItemTypeService;
+import com.ktg.mes.md.service.IMdItemService;
import com.ktg.mes.md.service.IMdUnitMeasureService;
import com.ktg.mes.wm.utils.WmBarCodeUtil;
import com.ktg.system.domain.SysOperLog;
@@ -26,7 +25,6 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
-import javax.validation.constraints.Null;
import java.util.*;
@RestController
@@ -89,6 +87,11 @@ public class MdItemController extends BaseController {
return result;
}
+ /**
+ * 主列表查询
+ *
+ * @return
+ */
@GetMapping("/open/selectProduct")
public List