Browse Source

实现套餐出库功能

lwx_dev
erdanergou 3 years ago
parent
commit
41046bfc9f
  1. 2
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java
  2. 11
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java
  3. 228
      src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java
  4. 33
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  5. 8
      src/main/java/com/dreamchaser/depository_manage/entity/Group.java
  6. 12
      src/main/java/com/dreamchaser/depository_manage/entity/GroupInfo.java
  7. 2
      src/main/java/com/dreamchaser/depository_manage/entity/MaterialForGroup.java
  8. 56
      src/main/java/com/dreamchaser/depository_manage/mapper/GroupMapper.java
  9. 13
      src/main/java/com/dreamchaser/depository_manage/mapper/GroupMapper.xml
  10. 12
      src/main/java/com/dreamchaser/depository_manage/pojo/GroupInfoP.java
  11. 56
      src/main/java/com/dreamchaser/depository_manage/service/GroupService.java
  12. 2
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  13. 140
      src/main/java/com/dreamchaser/depository_manage/service/impl/GroupServiceImpl.java
  14. 52
      src/main/resources/static/js/application-out/application-out.js
  15. 82
      src/main/resources/templates/pages/application/application-out.html
  16. 36
      src/main/resources/templates/pages/application/application_multi.html
  17. 3
      src/main/resources/templates/pages/chart/chart-out_back.html
  18. 4
      src/main/resources/templates/pages/chart/chart-stock_back.html
  19. 551
      src/main/resources/templates/pages/group/applicationOutForGroup.html
  20. 260
      src/main/resources/templates/pages/group/application_multi.html
  21. 115
      src/main/resources/templates/pages/group/group-out.html
  22. 51
      src/main/resources/templates/pages/group/group_edit.html
  23. 2
      src/main/resources/templates/pages/group/group_material_edit.html
  24. 4
      src/main/resources/templates/pages/group/selectGroup.html
  25. 20
      src/test/java/com/dreamchaser/depository_manage/TestForGroupTree.java
  26. 82
      target/classes/templates/pages/application/application-out.html
  27. 36
      target/classes/templates/pages/application/application_multi.html

2
src/main/java/com/dreamchaser/depository_manage/controller/DepositoryController.java

@ -337,7 +337,7 @@ public class DepositoryController {
List<Object> sourceList = (List<Object>) previousMonth.get("sourceList"); List<Object> sourceList = (List<Object>) previousMonth.get("sourceList");
ArrayList<Object> title = new ArrayList<>(); ArrayList<Object> title = new ArrayList<>();
List<Depository> depositoryAll = depositoryService.findDepositoryByAdminorgAndUser(userByPort); List<Depository> depositoryAll = depositoryService.findDepositoryByAdminorgAndUser(userByPort);
title.add("depository"); title.add("product");
for (int i = sourceList.size() - 1; i >= 0; i--) { for (int i = sourceList.size() - 1; i >= 0; i--) {
title.add(((Map<String, Object>) sourceList.get(i)).get("month")); title.add(((Map<String, Object>) sourceList.get(i)).get("month"));
} }

11
src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java

@ -911,7 +911,14 @@ public class DepositoryRecordController {
departmentHeadId.append("78").append(","); departmentHeadId.append("78").append(",");
departMentHeadQyWxName.append("PangFuZhen").append(","); departMentHeadQyWxName.append("PangFuZhen").append(",");
map.put("departmenthead",departmentHeadId.toString()); map.put("departmenthead",departmentHeadId.toString());
map.put("mid",map.get("iid")); // 待出库物料id
Integer mid = ObjectFormatUtil.toInteger(map.get("iid"));
// 获取库存信息
Inventory inventoryByMid = materialService.findInventoryByMid(mid);
if(inventoryByMid.getQuantity() < quantity){
return new RestResponse("",666,new StatusInfo("申请失败","超出最大存储容量"));
}
map.put("mid",mid);
Integer res = depositoryRecordService.insertApplicationOutRecord(map,userToken); // 插入主订单 Integer res = depositoryRecordService.insertApplicationOutRecord(map,userToken); // 插入主订单
if(res == 1){ // 如果插入成功 if(res == 1){ // 如果插入成功
Object id = map.get("id"); // 获取主订单编号 Object id = map.get("id"); // 获取主订单编号
@ -1052,7 +1059,9 @@ public class DepositoryRecordController {
depositoryRecordService.insertApplicationOutRecord(mainRecord,userToken); depositoryRecordService.insertApplicationOutRecord(mainRecord,userToken);
id = ObjectFormatUtil.toInteger(mainRecord.get("id")); id = ObjectFormatUtil.toInteger(mainRecord.get("id"));
for (int i = 0; i < iids.size(); i++) { for (int i = 0; i < iids.size(); i++) {
// 出库物料
Integer mid = iids.get(i); Integer mid = iids.get(i);
// 出库数量
Integer integer = ObjectFormatUtil.toInteger(quantitys.get(i)); Integer integer = ObjectFormatUtil.toInteger(quantitys.get(i));
// 获取当前仓库编号 // 获取当前仓库编号
Integer depositoryId = depositoryIds.get(i); Integer depositoryId = depositoryIds.get(i);

228
src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java

@ -3,6 +3,7 @@ package com.dreamchaser.depository_manage.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.entity.*;
import com.dreamchaser.depository_manage.exception.MyException; import com.dreamchaser.depository_manage.exception.MyException;
import com.dreamchaser.depository_manage.pojo.ApplicationModel;
import com.dreamchaser.depository_manage.pojo.GroupInfoP; import com.dreamchaser.depository_manage.pojo.GroupInfoP;
import com.dreamchaser.depository_manage.pojo.RestResponse; import com.dreamchaser.depository_manage.pojo.RestResponse;
import com.dreamchaser.depository_manage.pojo.StatusInfo; import com.dreamchaser.depository_manage.pojo.StatusInfo;
@ -20,10 +21,7 @@ import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.sql.Time; import java.sql.Time;
import java.util.HashMap; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
@RestController @RestController
@ -47,7 +45,7 @@ public class GroupController {
/** /**
* 用于添加一条套餐记录 * 用于添加一条组合记录
* *
* @param map 添加数据 * @param map 添加数据
* @param request * @param request
@ -71,7 +69,7 @@ public class GroupController {
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
String code = map.get("code").toString(); String code = map.get("code").toString();
// 获取套餐编码 // 获取组合编码
Group groupByCode = groupService.findGroupByCode(code); Group groupByCode = groupService.findGroupByCode(code);
if (groupByCode != null) { if (groupByCode != null) {
@ -80,10 +78,10 @@ public class GroupController {
Map<String, Object> paramForGetGroup = new HashMap<>(); Map<String, Object> paramForGetGroup = new HashMap<>();
paramForGetGroup.put("gid", groupByCode.getId()); paramForGetGroup.put("gid", groupByCode.getId());
// 获取当前套餐的所有物料数据 // 获取当前组合的所有物料数据
List<GroupInfo> groupByGid = groupService.findGroupByCondition(paramForGetGroup); List<GroupInfo> groupByGid = groupService.findGroupByCondition(paramForGetGroup);
// 用于标识当前套餐是否可以正常出库 // 用于标识当前组合是否可以正常出库
boolean flag = true; boolean flag = true;
for (int i = 0; i < groupByGid.size(); i++) { for (int i = 0; i < groupByGid.size(); i++) {
@ -110,16 +108,16 @@ public class GroupController {
if (flag) { if (flag) {
return new RestResponse(groupByGid); return new RestResponse(groupByGid);
} else { } else {
return new RestResponse(null, 666, new StatusInfo("不能出库", "当前套餐中有物料库存不足")); return new RestResponse(null, 666, new StatusInfo("不能出库", "当前组合中有物料库存不足"));
} }
} else { } else {
return new RestResponse(null, 666, new StatusInfo("失败", "暂无该套餐,请确认是否正确")); return new RestResponse(null, 666, new StatusInfo("失败", "暂无该组合,请确认是否正确"));
} }
} }
/** /**
* 用于给套餐添加物料信息 * 用于给组合添加物料信息
* *
* @param map 添加物料信息 * @param map 添加物料信息
* @param request * @param request
@ -139,7 +137,7 @@ public class GroupController {
} }
/** /**
* 根据条件获取所有套餐 * 根据条件获取所有组合
* *
* @param map 查询条件 * @param map 查询条件
* @return * @return
@ -160,9 +158,9 @@ public class GroupController {
/** /**
* 根据套餐名称获取套餐 * 根据组合名称获取组合
* *
* @param map 套餐名称 * @param map 组合名称
* @return * @return
*/ */
@PostMapping("/findGroupByGname") @PostMapping("/findGroupByGname")
@ -171,12 +169,12 @@ public class GroupController {
List<Group> groupOnlyByCondition = groupService.findGroupOnlyByCondition(map); List<Group> groupOnlyByCondition = groupService.findGroupOnlyByCondition(map);
int size = groupOnlyByCondition.size(); int size = groupOnlyByCondition.size();
if (size > 1) { if (size > 1) {
// 如果当前名称的套餐大于1个 // 如果当前名称的组合大于1个
return new RestResponse("", -1, 444); return new RestResponse("", -1, 444);
} else if (size == 1) { } else if (size == 1) {
// 如果刚好只有一个 // 如果刚好只有一个
// 获取当前套餐的所有物料数据 // 获取当前组合的所有物料数据
List<GroupInfo> groupByGid = groupService.findGroupByCondition(map); List<GroupInfo> groupByGid = groupService.findGroupByCondition(map);
return new RestResponse(groupByGid, groupByGid.size(), 200); return new RestResponse(groupByGid, groupByGid.size(), 200);
@ -190,7 +188,7 @@ public class GroupController {
} }
/** /**
* 查询套餐详情 * 查询组合详情
* *
* @param map * @param map
* @return * @return
@ -206,7 +204,7 @@ public class GroupController {
} }
/** /**
* 修改套餐中的物料数据 * 修改组合中的物料数据
* *
* @param map * @param map
* @return * @return
@ -222,7 +220,7 @@ public class GroupController {
} }
/** /**
* 删除套餐中的物料 * 删除组合中的物料
* *
* @param map 删除条件 * @param map 删除条件
* @return * @return
@ -245,7 +243,7 @@ public class GroupController {
/** /**
* 用于修改套餐的状态 * 用于修改组合的状态
* *
* @param map 条件 * @param map 条件
* @return * @return
@ -262,7 +260,7 @@ public class GroupController {
/** /**
* 用于修改套餐信息 * 用于修改组合信息
* *
* @param map 修改条件 * @param map 修改条件
* @return * @return
@ -279,7 +277,7 @@ public class GroupController {
/** /**
* 删除套餐(软删除) * 删除组合(软删除)
* *
* @param map 删除条件 * @param map 删除条件
* @return * @return
@ -306,7 +304,7 @@ public class GroupController {
/** /**
* 删除套餐及其明细硬删除 * 删除组合及其明细硬删除
* *
* @param map 删除条件 * @param map 删除条件
* @return * @return
@ -330,10 +328,10 @@ public class GroupController {
// 获取当前部门仓库 // 获取当前部门仓库
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
// 获取当前套餐的所有物料数据 // 获取当前组合的所有物料数据
List<GroupInfo> groupByGid = groupService.findGroupByCondition(map); List<GroupInfo> groupByGid = groupService.findGroupByCondition(map);
// 用于标识当前套餐是否可以正常出库 // 用于标识当前组合是否可以正常出库
boolean flag = true; boolean flag = true;
for (int i = 0; i < groupByGid.size(); i++) { for (int i = 0; i < groupByGid.size(); i++) {
@ -360,7 +358,7 @@ public class GroupController {
if (flag) { if (flag) {
return new RestResponse(groupByGid); return new RestResponse(groupByGid);
} else { } else {
return new RestResponse(null, 666, new StatusInfo("不能出库", "当前套餐中有物料库存不足")); return new RestResponse(null, 666, new StatusInfo("不能出库", "当前组合中有物料库存不足"));
} }
} }
@ -376,6 +374,84 @@ public class GroupController {
} }
/**
* 将选中的物料暂存到redis中
*
* @param map 暂存的数据
* @param request
* @return
*/
@PostMapping("/addApplicationToRedis")
public RestResponse addApplicationToRedis(@RequestBody Map<String, Object> map, HttpServletRequest request) {
UserByPort userToken = (UserByPort) request.getAttribute("userToken");
// 获取暂存的数据
List<Integer> gids = (List<Integer>) map.get("gids");
// 获取当前已经存在的数据
List<String> range = redisTemplateForHash.opsForList().range("wms_gids" + userToken.getId(), 0, -1);
for (int i = 0; i < gids.size(); i++) {
if (range.contains(gids.get(i).toString())) {
continue;
}
redisTemplateForHash.opsForList().leftPush("wms_gids" + userToken.getId(), gids.get(i).toString());
}
// 设置过期时间为1天
redisTemplateForHash.expire("wms_gids" + userToken.getId(), 24 * 60 * 60, TimeUnit.SECONDS);
return CrudUtil.postHandle(1, 1);
}
/**
* 用于查询当前多选选中的组合
*
* @param map 查询条件
* @param request
* @return
*/
@GetMapping("/applicant_multi_create")
public RestResponse applicant_multi_create(@RequestParam Map<String, Object> map, HttpServletRequest request) {
Integer page = ObjectFormatUtil.toInteger(map.get("page"));
Integer pagesize = ObjectFormatUtil.toInteger(map.get("size"));
Integer start = (page - 1) * pagesize;
Integer end = page * 10;
UserByPort userToken = (UserByPort) request.getAttribute("userToken");
Long size = redisTemplateForHash.boundListOps("wms_gids" + userToken.getId()).size();
if (end > size) {
end = ObjectFormatUtil.toInteger(size);
}
List<GroupInfoP> list = new ArrayList<>();
Map<String, Object> paramForGroupOnly = new HashMap<>();
for (int i = start; i < end; i++) {
// 获取组合编号
Integer gid = ObjectFormatUtil.toInteger(redisTemplateForHash.opsForList().index("wms_gids" + userToken.getId(), i));
paramForGroupOnly.put("gid", gid);
List<GroupInfoP> groupPByCondition = groupService.findOnlyGroupByCondition(paramForGroupOnly);
for (int j = 0; j < groupPByCondition.size(); j++) {
groupPByCondition.get(j).setQuantity(1);
list.add(groupPByCondition.get(j));
}
}
return new RestResponse(list, ObjectFormatUtil.toInteger(size), 200);
}
/**
* 将选中的组合从redis中删除
*
* @param map 待删除的数据
* @param request
* @return
*/
@PostMapping("/deleteApplicationToRedis")
public RestResponse deleteApplicationToRedis(@RequestBody Map<String, Object> map, HttpServletRequest request) {
UserByPort userToken = (UserByPort) request.getAttribute("userToken");
List<Integer> gids = (List<Integer>) map.get("gids");
for (int i = 0; i < gids.size(); i++) {
redisTemplateForHash.opsForList().remove("wms_gids" + userToken.getId(), 1, gids.get(i).toString());
}
return CrudUtil.postHandle(1, 1);
}
@PostMapping("/applicationOutForGroup") @PostMapping("/applicationOutForGroup")
public RestResponse applicationOutForGroup(@RequestBody Map<String, Object> map, HttpServletRequest request) { public RestResponse applicationOutForGroup(@RequestBody Map<String, Object> map, HttpServletRequest request) {
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
@ -446,9 +522,9 @@ public class GroupController {
/** /**
* 用于判断当前套餐的数量是否合法 * 用于判断当前组合的数量是否合法
* *
* @param map 套餐相关信息 * @param map 组合相关信息
* @param request * @param request
* @return * @return
*/ */
@ -458,9 +534,9 @@ public class GroupController {
UserByPort userToken = (UserByPort) request.getAttribute("userToken"); UserByPort userToken = (UserByPort) request.getAttribute("userToken");
// 获取当前部门所拥有的仓库 // 获取当前部门所拥有的仓库
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
// 获取套餐id // 获取组合id
Integer gid = ObjectFormatUtil.toInteger(map.get("gid")); Integer gid = ObjectFormatUtil.toInteger(map.get("gid"));
// 获取套餐数量 // 获取组合数量
Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity"));
List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(gid); List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(gid);
// 用于标志该数量是否合法 // 用于标志该数量是否合法
@ -491,4 +567,96 @@ public class GroupController {
throw new MyException("缺少必要参数"); throw new MyException("缺少必要参数");
} }
} }
/**
* 用于构造组合出库订单
*
* @param map 出库数据
* @param request
* @return
*/
@PostMapping("/createMultiApplication")
public RestResponse createMultiApplication(@RequestBody Map<String, Object> map, HttpServletRequest request) {
UserByPort userToken = (UserByPort) request.getAttribute("userToken");
String header = request.getHeader("user-agent");
String crypt = Md5.crypt(header);
map.put("applicantId", userToken.getId());
// 获取当前部门负责人
List<UserByPort> departmentHeadByUsers = LinkInterfaceUtil.findDepartmentHeadByUser(userToken);
// 部门负责人id
StringBuilder departmentHeadId = new StringBuilder();
// 部门负责人企业微信user
StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (int i = 0; i < departmentHeadByUsers.size(); i++) {
// departmentHeadId.append(departmentHeadByUsers.get(i).getId()).append(",");
// departMentHeadQyWxName.append(departmentHeadByUsers.get(i).getWorkwechat()+",");
// }
departmentHeadId.append("78").append(",");
departMentHeadQyWxName.append("PangFuZhen").append(",");
map.put("departmenthead", departmentHeadId.toString());
// 执行结果
Integer integer = 0;
// 实际结果
Integer result = 0;
// 获取当前出库类型
String type = (String) map.get("type");
if("one".equals(type)){
Integer gid = ObjectFormatUtil.toInteger(map.get("id"));
map.put("gid",gid);
List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(gid);
if (groupInfoByGid != null) {
result += groupInfoByGid.size();
}
}else{
// 用于同步出库算法
int num = 0;
List<String> params = new ArrayList<>();
// 获取当前提交数
List<Integer> gids = (List<Integer>) map.get("gids");
List<String> quantitys = (List<String>) map.get("quantitys");
for (int i = 0; i < gids.size(); i++) {
Integer temp = gids.get(i);
String quantity = quantitys.get(i);
List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(temp);
if (groupInfoByGid != null) {
result += groupInfoByGid.size();
}
if (num == 0) {
map.put("gid", temp);
map.put("quantity",quantity);
num++;
} else {
map.put("gid" + num, temp);
map.put("quantity" + num, quantity);
params.add(String.valueOf((num++)));
}
}
map.put("params",params);
}
try {
integer += groupService.insertApplicationOutRecord(map, userToken); // 插入主订单
} catch (Exception e) {
return new RestResponse("", 666, new StatusInfo("出库失败", e.getMessage()));
}
Object id = map.get("id"); // 获取主订单编号
// 开启一个线程开启审批
new Thread(new Runnable() {
@Override
public void run() {
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplate(crypt, userToken, ObjectFormatUtil.toInteger(id));
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", id.toString());
redisTemplateForHash.opsForHash().putAll(sp_no, QyWxApprovalMap);
// 设置过期为7天
redisTemplateForHash.expire(sp_no, 7, TimeUnit.DAYS);
}
}).start();
return CrudUtil.postHandle(integer, result);
}
} }

33
src/main/java/com/dreamchaser/depository_manage/controller/PageController.java

@ -501,7 +501,7 @@ public class PageController {
return mv; return mv;
} }
// 套餐树形菜单页面 // 组合树形菜单页面
@GetMapping("/selectGroup") @GetMapping("/selectGroup")
public ModelAndView selectGroup(String gname,String clickObj){ public ModelAndView selectGroup(String gname,String clickObj){
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
@ -603,6 +603,10 @@ public class PageController {
return mv; return mv;
} }
/**
* 跳转到库存多选处理页面
* @return
*/
@GetMapping("/application_multi") @GetMapping("/application_multi")
public ModelAndView application_multi() { public ModelAndView application_multi() {
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
@ -610,6 +614,18 @@ public class PageController {
return mv; return mv;
} }
/**
* 跳转到组合多选处理页面
* @return
*/
@GetMapping("/application_group_multi")
public ModelAndView application_group_multi() {
ModelAndView mv = new ModelAndView();
mv.setViewName("pages/group/application_multi");
return mv;
}
@GetMapping("/application_in_back") @GetMapping("/application_in_back")
public ModelAndView applicationIn(Integer mid, Integer depositoryId) { public ModelAndView applicationIn(Integer mid, Integer depositoryId) {
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
@ -734,7 +750,7 @@ public class PageController {
} }
/** /**
* 跳转到套餐添加页面 * 跳转到组合添加页面
* @return * @return
*/ */
@GetMapping("/group_add") @GetMapping("/group_add")
@ -750,7 +766,7 @@ public class PageController {
} }
/** /**
* 跳转到套餐查询页面 * 跳转到组合查询页面
* @return * @return
*/ */
@GetMapping("/group_out") @GetMapping("/group_out")
@ -772,15 +788,15 @@ public class PageController {
/** /**
* 跳转到套餐中物料明细中 * 跳转到组合中物料明细中
* @param mid 物料id * @param mid 物料id
* @param gid 套餐id * @param gid 组合id
* @return * @return
*/ */
@GetMapping("/materialForGroup") @GetMapping("/materialForGroup")
public ModelAndView materialForGroup(Integer mid,Integer gid){ public ModelAndView materialForGroup(Integer mid,Integer gid){
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
// 根据物料id与套餐id查询对应明细 // 根据物料id与组合id查询对应明细
GroupInfo groupInfoByMidAndGid = groupService.findGroupInfoByMidAndGid(mid, gid); GroupInfo groupInfoByMidAndGid = groupService.findGroupInfoByMidAndGid(mid, gid);
if(groupInfoByMidAndGid != null){ if(groupInfoByMidAndGid != null){
mv.addObject("record",groupInfoByMidAndGid); mv.addObject("record",groupInfoByMidAndGid);
@ -1396,11 +1412,12 @@ public class PageController {
@GetMapping("/applicationOutForGroup") @GetMapping("/applicationOutForGroup")
public ModelAndView applicationOutForGroup(Integer gid,String type){ public ModelAndView applicationOutForGroup(Integer gid,String type){
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();
mv.addObject("type",type); List<Integer> gidList = new ArrayList<>();
if("one".equals(type)) { if("one".equals(type)) {
mv.addObject("gid",gid); gidList.add(gid);
}else if("more".equals(type)){ }else if("more".equals(type)){
} }
mv.addObject("gidList",gidList);
mv.setViewName("pages/group/applicationOutForGroup"); mv.setViewName("pages/group/applicationOutForGroup");
return mv; return mv;
} }

8
src/main/java/com/dreamchaser/depository_manage/entity/Group.java

@ -9,21 +9,21 @@ public class Group {
*/ */
private Integer id; private Integer id;
/** /**
* 套餐编码 * 组合编码
*/ */
private String code; private String code;
/** /**
* 套餐创建时间 * 组合创建时间
*/ */
private Long createTime; private Long createTime;
/** /**
* 套餐状态 * 组合状态
*/ */
private Integer state; private Integer state;
/** /**
* 套餐名称 * 组合名称
*/ */
private String gname; private String gname;
} }

12
src/main/java/com/dreamchaser/depository_manage/entity/GroupInfo.java

@ -3,7 +3,7 @@ package com.dreamchaser.depository_manage.entity;
import lombok.Data; import lombok.Data;
/** /**
* 用于套餐信息的封装 * 用于组合信息的封装
*/ */
@Data @Data
public class GroupInfo { public class GroupInfo {
@ -16,7 +16,7 @@ public class GroupInfo {
*/ */
private Integer mid; private Integer mid;
/** /**
* 套餐id * 组合id
*/ */
private Integer gid; private Integer gid;
/** /**
@ -24,7 +24,7 @@ public class GroupInfo {
*/ */
private Integer quantity; private Integer quantity;
/** /**
* 套餐对应编码 * 组合对应编码
*/ */
private String gcode; private String gcode;
/** /**
@ -72,18 +72,18 @@ public class GroupInfo {
*/ */
private String remark; private String remark;
/** /**
* 套餐创建时间 * 组合创建时间
*/ */
private Long createTime; private Long createTime;
/** /**
* 套餐状态1启用2禁用3删除 * 组合状态1启用2禁用3删除
*/ */
private Integer gstate; private Integer gstate;
/** /**
* 套餐名称 * 组合名称
*/ */
private String gname; private String gname;
} }

2
src/main/java/com/dreamchaser/depository_manage/entity/MaterialForGroup.java

@ -13,7 +13,7 @@ public class MaterialForGroup {
*/ */
private Integer mid; private Integer mid;
/** /**
* 套餐id * 组合id
*/ */
private Integer gid; private Integer gid;
/** /**

56
src/main/java/com/dreamchaser/depository_manage/mapper/GroupMapper.java

@ -14,27 +14,27 @@ public interface GroupMapper {
/** /**
* 用于查找所有套餐不包含其他 * 用于查找所有组合不包含其他
* @return * @return
*/ */
List<Group> findAllGroupOnly(String gname); List<Group> findAllGroupOnly(String gname);
/** /**
* 用于查找所有套餐 * 用于查找所有组合
* @return * @return
*/ */
List<GroupInfo> findAllGroup(); List<GroupInfo> findAllGroup();
/** /**
* 根据套餐id查询对应套餐 * 根据组合id查询对应组合
* @param id 套餐id * @param id 组合id
* @return * @return
*/ */
GroupInfo findGroupById(Integer id); GroupInfo findGroupById(Integer id);
/** /**
* 根据主键查询套餐不包含其他数据 * 根据主键查询组合不包含其他数据
* @param id 主键 * @param id 主键
* @return * @return
*/ */
@ -42,42 +42,42 @@ public interface GroupMapper {
/** /**
* 根据套餐id获取具体套餐信息 * 根据组合id获取具体组合信息
* @param gid 套餐id * @param gid 组合id
* @return * @return
*/ */
List<GroupInfo> findGroupInfoByGid(Integer gid); List<GroupInfo> findGroupInfoByGid(Integer gid);
/** /**
* 根据条件查询套餐不包含其他数据 * 根据条件查询组合不包含其他数据
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
List<Group> findGroupOnlyByCondition(Map<String,Object> map); List<Group> findGroupOnlyByCondition(Map<String,Object> map);
/** /**
* 根据条件查询对应套餐信息视图 * 根据条件查询对应组合信息视图
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
List<GroupInfo> findGroupByCondition(Map<String,Object> map); List<GroupInfo> findGroupByCondition(Map<String,Object> map);
/** /**
* 根据套餐id批量获取套餐信息(不包含其他数据) * 根据组合id批量获取组合信息(不包含其他数据)
* @param list 套餐id列表 * @param list 组合id列表
* @return * @return
*/ */
List<Group> findGroupByGids(List<Integer> list); List<Group> findGroupByGids(List<Integer> list);
/** /**
* 修改套餐中物料的数据 * 修改组合中物料的数据
* @param map 修改数据及条件 * @param map 修改数据及条件
* @return * @return
*/ */
Integer updateMaterialForGroup(Map<String,Object> map); Integer updateMaterialForGroup(Map<String,Object> map);
/** /**
* 修改套餐中物料的数据 * 修改组合中物料的数据
* @param groupInfo 修改数据及条件 * @param groupInfo 修改数据及条件
* @return * @return
*/ */
@ -85,28 +85,28 @@ public interface GroupMapper {
/** /**
* 根据条件查询对应套餐数目 * 根据条件查询对应组合数目
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
Integer findGroupCountByCondition(Map<String,Object> map); Integer findGroupCountByCondition(Map<String,Object> map);
/** /**
* 获取当前套餐数量 * 获取当前组合数量
* @return * @return
*/ */
Integer findAllGroupOnlyCount(Map<String,Object> map); Integer findAllGroupOnlyCount(Map<String,Object> map);
/** /**
* 添加一条套餐 * 添加一条组合
* @param map 具体数据 * @param map 具体数据
* @return * @return
*/ */
Integer addGroup(Map<String,Object> map); Integer addGroup(Map<String,Object> map);
/** /**
* 添加一条套餐 * 添加一条组合
* @param groupInfo 具体数据 * @param groupInfo 具体数据
* @return * @return
*/ */
@ -114,7 +114,7 @@ public interface GroupMapper {
/** /**
* 添加套餐中的物料记录 * 添加组合中的物料记录
* @param map 对应物料数据 * @param map 对应物料数据
* @return * @return
*/ */
@ -122,24 +122,24 @@ public interface GroupMapper {
/** /**
* 通过编码获取对应的套餐 * 通过编码获取对应的组合
* @param code 套餐编码 * @param code 组合编码
* @return * @return
*/ */
Group findGroupByCode(String code); Group findGroupByCode(String code);
/** /**
* 修改套餐基本信息 * 修改组合基本信息
* @param group 待修改套餐 * @param group 待修改组合
* @return * @return
*/ */
Integer updateGroupOnly(Group group); Integer updateGroupOnly(Group group);
/** /**
* 修改套餐基本信息 * 修改组合基本信息
* @param map 待修改套餐 * @param map 待修改组合
* @return * @return
*/ */
Integer updateGroupOnly(Map<String,Object> map); Integer updateGroupOnly(Map<String,Object> map);
@ -147,14 +147,14 @@ public interface GroupMapper {
/** /**
* 根据主键删除一条套餐中的物料明细 * 根据主键删除一条组合中的物料明细
* @param id 待删除主键 * @param id 待删除主键
* @return * @return
*/ */
Integer delMaterialForGroupById(Integer id); Integer delMaterialForGroupById(Integer id);
/** /**
* 根据主键批量删除套餐中的物料明细 * 根据主键批量删除组合中的物料明细
* @param list 待删除主键 * @param list 待删除主键
* @return * @return
*/ */
@ -162,8 +162,8 @@ public interface GroupMapper {
/** /**
* 根据主键删除套餐 * 根据主键删除组合
* @param id 待删除套餐主键 * @param id 待删除组合主键
* @return * @return
*/ */
Integer delGroup(Integer id); Integer delGroup(Integer id);

13
src/main/java/com/dreamchaser/depository_manage/mapper/GroupMapper.xml

@ -25,7 +25,7 @@
<result column="gstate" property="gstate" jdbcType="INTEGER"/> <result column="gstate" property="gstate" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<!-- 用于套餐映射--> <!-- 用于组合映射-->
<resultMap id="groupMap" type="com.dreamchaser.depository_manage.entity.Group"> <resultMap id="groupMap" type="com.dreamchaser.depository_manage.entity.Group">
<id column="id" property="id" jdbcType="INTEGER" /> <id column="id" property="id" jdbcType="INTEGER" />
<result column="code" property="code" jdbcType="VARCHAR"/> <result column="code" property="code" jdbcType="VARCHAR"/>
@ -34,7 +34,7 @@
<result column="state" property="state" jdbcType="INTEGER"/> <result column="state" property="state" jdbcType="INTEGER"/>
</resultMap> </resultMap>
<!-- 用于套餐与物料的映射--> <!-- 用于组合与物料的映射-->
<resultMap id="materialForGroupMap" type="com.dreamchaser.depository_manage.entity.MaterialForGroup"> <resultMap id="materialForGroupMap" type="com.dreamchaser.depository_manage.entity.MaterialForGroup">
<id column="id" property="id" jdbcType="INTEGER" /> <id column="id" property="id" jdbcType="INTEGER" />
<result column="mid" property="mid" jdbcType="INTEGER"/> <result column="mid" property="mid" jdbcType="INTEGER"/>
@ -47,12 +47,12 @@
id,mid,gid,quantity,mtid,shelfLife,gcode,mname,tname,mcode,version,unit,texture,productionPlace,brand,remark,createTime,gstate,gname id,mid,gid,quantity,mtid,shelfLife,gcode,mname,tname,mcode,version,unit,texture,productionPlace,brand,remark,createTime,gstate,gname
</sql> </sql>
<!-- 用于套餐--> <!-- 用于组合-->
<sql id="allColumnsForGroup"> <sql id="allColumnsForGroup">
id,code,createTime,state,gname id,code,createTime,state,gname
</sql> </sql>
<!-- 用于物料对于套餐的映射--> <!-- 用于物料对于组合的映射-->
<sql id="allColumnsForMaterialForGroup"> <sql id="allColumnsForMaterialForGroup">
id,mid,gid,quantity id,mid,gid,quantity
</sql> </sql>
@ -73,6 +73,9 @@
<if test="code != null and code !=''"> <if test="code != null and code !=''">
and code = #{code} and code = #{code}
</if> </if>
<if test="gid != null and gid != ''">
and id = #{gid}
</if>
<if test="createTime != null and createTime != ''"> <if test="createTime != null and createTime != ''">
and createTime = #{createTime} and createTime = #{createTime}
</if> </if>
@ -325,7 +328,7 @@
createTime = #{createTime}, createTime = #{createTime},
</if> </if>
<if test="state != null and state != ''"> <if test="state != null and state != ''">
state = #{state} state = #{state},
</if> </if>
<if test="gname != null and gname !=''"> <if test="gname != null and gname !=''">
gname = #{gname} gname = #{gname}

12
src/main/java/com/dreamchaser/depository_manage/pojo/GroupInfoP.java

@ -8,7 +8,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* 用于展示套餐信息 * 用于展示组合信息
*/ */
@Data @Data
public class GroupInfoP { public class GroupInfoP {
@ -19,12 +19,12 @@ public class GroupInfoP {
private Integer id; private Integer id;
/** /**
* 套餐创建时间 * 组合创建时间
*/ */
private String createTime; private String createTime;
/** /**
* 套餐编码 * 组合编码
*/ */
private String code; private String code;
@ -35,17 +35,17 @@ public class GroupInfoP {
/** /**
* 套餐中拥有的物料总数 * 组合中拥有的物料总数
*/ */
private Integer quantity; private Integer quantity;
/** /**
* 套餐状态 * 组合状态
*/ */
private Integer state; private Integer state;
/** /**
* 套餐名称 * 组合名称
*/ */
private String gname; private String gname;

56
src/main/java/com/dreamchaser/depository_manage/service/GroupService.java

@ -10,46 +10,46 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
* 用于套餐的设置 * 用于组合的设置
*/ */
public interface GroupService { public interface GroupService {
/** /**
* 用于查找所有套餐 * 用于查找所有组合
* @return * @return
*/ */
List<GroupInfo> findAllGroup(); List<GroupInfo> findAllGroup();
/** /**
* 根据套餐id查询对应套餐 * 根据组合id查询对应组合
* @param id 套餐id * @param id 组合id
* @return * @return
*/ */
GroupInfo findGroupById(Integer id); GroupInfo findGroupById(Integer id);
/** /**
* 根据条件查询对应套餐 * 根据条件查询对应组合
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
List<GroupInfo> findGroupByCondition(Map<String,Object> map); List<GroupInfo> findGroupByCondition(Map<String,Object> map);
/** /**
* 根据条件查询对应套餐(按group分组) * 根据条件查询对应组合(按group分组)
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
List<GroupInfoP> findOnlyGroupByCondition(Map<String,Object> map); List<GroupInfoP> findOnlyGroupByCondition(Map<String,Object> map);
/** /**
* 获取当前套餐数量 * 获取当前组合数量
* @return * @return
*/ */
Integer findAllGroupOnlyCount(Map<String,Object> map); Integer findAllGroupOnlyCount(Map<String,Object> map);
/** /**
* 根据条件查询对应套餐数目 * 根据条件查询对应组合数目
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
@ -57,7 +57,7 @@ public interface GroupService {
/** /**
* 添加一条套餐 * 添加一条组合
* @param map 具体数据 * @param map 具体数据
* @return * @return
*/ */
@ -65,35 +65,35 @@ public interface GroupService {
/** /**
* 通过编码获取对应的套餐 * 通过编码获取对应的组合
* @param code 套餐编码 * @param code 组合编码
* @return * @return
*/ */
Group findGroupByCode(String code); Group findGroupByCode(String code);
/** /**
* 套餐添加物料信息 * 组合添加物料信息
* @param map 待添加信息 * @param map 待添加信息
* @return * @return
*/ */
Integer addMaterialForGroup(Map<String,Object> map); Integer addMaterialForGroup(Map<String,Object> map);
/** /**
* 添加一条套餐 * 添加一条组合
* @param groupInfo 具体数据 * @param groupInfo 具体数据
* @return * @return
*/ */
Integer addGroup(GroupInfo groupInfo); Integer addGroup(GroupInfo groupInfo);
/** /**
* 根据主键删除一条套餐记录 * 根据主键删除一条组合记录
* @param id 待删除套餐主键 * @param id 待删除组合主键
* @return * @return
*/ */
Integer delGroupById(Integer id); Integer delGroupById(Integer id);
/** /**
* 根据主键批量删除套餐记录 * 根据主键批量删除组合记录
* @param ids 主键列表 * @param ids 主键列表
* @return * @return
*/ */
@ -101,7 +101,7 @@ public interface GroupService {
/** /**
* 修改套餐中对应物料信息 * 修改组合中对应物料信息
* @param map 修改数据及条件 * @param map 修改数据及条件
* @return * @return
*/ */
@ -109,22 +109,22 @@ public interface GroupService {
/** /**
* 通过物料id与套餐id查询对应套餐明细 * 通过物料id与组合id查询对应组合明细
* @param mid 物料id * @param mid 物料id
* @param gid 套餐id * @param gid 组合id
* @return 套餐明细 * @return 组合明细
*/ */
GroupInfo findGroupInfoByMidAndGid(Integer mid,Integer gid); GroupInfo findGroupInfoByMidAndGid(Integer mid,Integer gid);
/** /**
* 根据主键删除一条套餐中的物料明细 * 根据主键删除一条组合中的物料明细
* @param id 待删除主键 * @param id 待删除主键
* @return * @return
*/ */
Integer delMaterialForGroupById(Integer id); Integer delMaterialForGroupById(Integer id);
/** /**
* 根据主键批量删除套餐中的物料明细 * 根据主键批量删除组合中的物料明细
* @param ids 待删除主键 * @param ids 待删除主键
* @return * @return
*/ */
@ -132,7 +132,7 @@ public interface GroupService {
/** /**
* 根据条件修改套餐状态 * 根据条件修改组合状态
* @param map 修改条件 * @param map 修改条件
* @return * @return
*/ */
@ -140,7 +140,7 @@ public interface GroupService {
/** /**
* 根据条件修改套餐信息 * 根据条件修改组合信息
* @param map 修改条件 * @param map 修改条件
* @return * @return
*/ */
@ -148,14 +148,14 @@ public interface GroupService {
/** /**
* 根据条件获取套餐 * 根据条件获取组合
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
List<Group> findGroupOnlyByCondition(Map<String,Object> map); List<Group> findGroupOnlyByCondition(Map<String,Object> map);
/** /**
* 用于构造套餐 * 用于构造组合
* @param gname * @param gname
* @return * @return
*/ */
@ -173,8 +173,8 @@ public interface GroupService {
/** /**
* 根据套餐编号获取套餐具体信息 * 根据组合编号获取组合具体信息
* @param gid 待查讯套餐编号 * @param gid 待查讯组合编号
* @return * @return
*/ */
List<GroupInfo> findGroupInfoByGid(Integer gid); List<GroupInfo> findGroupInfoByGid(Integer gid);

2
src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java

@ -428,7 +428,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
ApplicationOutRecordMin recordMin = applicationOutMinForCompleteForToday.get(i); ApplicationOutRecordMin recordMin = applicationOutMinForCompleteForToday.get(i);
countForToday += recordMin.getQuantity(); countForToday += recordMin.getQuantity();
// 获取当前出库物料 // 获取当前出库物料
Material materialById = materialMapper.findMaterialById(recordMin.getMid()); Inventory materialById = materialMapper.findInventoryByMid(recordMin.getMid());
// 计算当前出库金额 // 计算当前出库金额
double price_out = materialById.getPrice() * recordMin.getQuantity(); double price_out = materialById.getPrice() * recordMin.getQuantity();
BigDecimal bg = new BigDecimal(price_out / 100); BigDecimal bg = new BigDecimal(price_out / 100);

140
src/main/java/com/dreamchaser/depository_manage/service/impl/GroupServiceImpl.java

@ -45,7 +45,7 @@ public class GroupServiceImpl implements GroupService {
DepositoryMapper depositoryMapper; DepositoryMapper depositoryMapper;
/** /**
* 用于查找所有套餐 * 用于查找所有组合
* *
* @return * @return
*/ */
@ -55,9 +55,9 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 根据套餐id查询对应套餐 * 根据组合id查询对应组合
* *
* @param id 套餐id * @param id 组合id
* @return * @return
*/ */
@Override @Override
@ -66,7 +66,7 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 根据条件查询对应套餐 * 根据条件查询对应组合
* *
* @param map 查询条件 * @param map 查询条件
* @return * @return
@ -79,33 +79,33 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据条件查询对应套餐(按group分组) * 根据条件查询对应组合(按group分组)
* *
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
@Override @Override
public List<GroupInfoP> findOnlyGroupByCondition(Map<String, Object> map) { public List<GroupInfoP> findOnlyGroupByCondition(Map<String, Object> map) {
// 获取当前所有套餐 // 获取当前所有组合
List<Group> allGroupOnly = groupMapper.findGroupOnlyByCondition(map); List<Group> allGroupOnly = groupMapper.findGroupOnlyByCondition(map);
// 用于查询当前套餐中的物料 // 用于查询当前组合中的物料
Map<String, Object> paramForGroup = new HashMap<>(); Map<String, Object> paramForGroup = new HashMap<>();
// 最终结果 // 最终结果
List<GroupInfoP> list = new ArrayList<>(); List<GroupInfoP> list = new ArrayList<>();
for (int i = 0; i < allGroupOnly.size(); i++) { for (int i = 0; i < allGroupOnly.size(); i++) {
// 获取套餐详情 // 获取组合详情
Group group = allGroupOnly.get(i); Group group = allGroupOnly.get(i);
paramForGroup.put("gid", group.getId()); paramForGroup.put("gid", group.getId());
// 获取当前套餐对应的详情 // 获取当前组合对应的详情
List<GroupInfo> groupByCondition = groupMapper.findGroupByCondition(paramForGroup); List<GroupInfo> groupByCondition = groupMapper.findGroupByCondition(paramForGroup);
// 构造输出结果 // 构造输出结果
GroupInfoP groupInfoP = new GroupInfoP(group); GroupInfoP groupInfoP = new GroupInfoP(group);
// 设置当前套餐中的数量 // 设置当前组合中的数量
Integer quantity = 0; Integer quantity = 0;
// 用于存储物料名称与物料id // 用于存储物料名称与物料id
@ -122,7 +122,7 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 获取当前套餐数量 * 获取当前组合数量
* *
* @return * @return
*/ */
@ -132,7 +132,7 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 根据条件查询对应套餐数目 * 根据条件查询对应组合数目
* *
* @param map 查询条件 * @param map 查询条件
* @return * @return
@ -147,7 +147,7 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 添加一条套餐 * 添加一条组合
* *
* @param map 具体数据 * @param map 具体数据
* @return * @return
@ -159,12 +159,12 @@ public class GroupServiceImpl implements GroupService {
// 设置当前时间 // 设置当前时间
insertForGroup.put("createTime", System.currentTimeMillis()); insertForGroup.put("createTime", System.currentTimeMillis());
// 获取当前套餐数量 // 获取当前组合数量
Integer groupCount = groupMapper.findAllGroupOnlyCount(new HashMap<>()); Integer groupCount = groupMapper.findAllGroupOnlyCount(new HashMap<>());
if (groupCount == null) { if (groupCount == null) {
groupCount = 0; groupCount = 0;
} }
// 构造套餐编码 // 构造组合编码
String code = createCode(groupCount); String code = createCode(groupCount);
insertForGroup.put("code", code); insertForGroup.put("code", code);
insertForGroup.put("state", 1); insertForGroup.put("state", 1);
@ -172,16 +172,16 @@ public class GroupServiceImpl implements GroupService {
// 插入到数据库 // 插入到数据库
groupMapper.addGroup(insertForGroup); groupMapper.addGroup(insertForGroup);
//获取插入的套餐id //获取插入的组合id
Integer gid = ObjectFormatUtil.toInteger(insertForGroup.get("id")); Integer gid = ObjectFormatUtil.toInteger(insertForGroup.get("id"));
// 获取套餐中的物料id // 获取组合中的物料id
List<Object> mids = (List<Object>) map.get("mids"); List<Object> mids = (List<Object>) map.get("mids");
// 获取套餐中物料的数量 // 获取组合中物料的数量
List<Object> quantitys = (List<Object>) map.get("quantitys"); List<Object> quantitys = (List<Object>) map.get("quantitys");
// 用于添加套餐中的物料信息 // 用于添加组合中的物料信息
Map<String, Object> materialForGroupMap = new HashMap<>(); Map<String, Object> materialForGroupMap = new HashMap<>();
materialForGroupMap.put("gid", gid); materialForGroupMap.put("gid", gid);
@ -190,7 +190,7 @@ public class GroupServiceImpl implements GroupService {
for (int i = 0; i < mids.size(); i++) { for (int i = 0; i < mids.size(); i++) {
// 获取物料id // 获取物料id
Object mid = mids.get(i); Object mid = mids.get(i);
// 获取套餐中当前物料对应的数量 // 获取组合中当前物料对应的数量
Object quantity = quantitys.get(i); Object quantity = quantitys.get(i);
materialForGroupMap.put("mid", mid); materialForGroupMap.put("mid", mid);
@ -204,9 +204,9 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 通过编码获取对应的套餐 * 通过编码获取对应的组合
* *
* @param code 套餐编码 * @param code 组合编码
* @return * @return
*/ */
@Override @Override
@ -216,23 +216,23 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 套餐添加物料信息 * 组合添加物料信息
* *
* @param map 待添加信息 * @param map 待添加信息
* @return * @return
*/ */
@Override @Override
public Integer addMaterialForGroup(Map<String, Object> map) { public Integer addMaterialForGroup(Map<String, Object> map) {
//获取插入的套餐id //获取插入的组合id
Integer gid = ObjectFormatUtil.toInteger(map.get("gid")); Integer gid = ObjectFormatUtil.toInteger(map.get("gid"));
// 获取套餐中的物料id // 获取组合中的物料id
List<Object> mids = (List<Object>) map.get("mids"); List<Object> mids = (List<Object>) map.get("mids");
// 获取套餐中物料的数量 // 获取组合中物料的数量
List<Object> quantitys = (List<Object>) map.get("quantitys"); List<Object> quantitys = (List<Object>) map.get("quantitys");
// 用于添加套餐中的物料信息 // 用于添加组合中的物料信息
Map<String, Object> materialForGroupMap = new HashMap<>(); Map<String, Object> materialForGroupMap = new HashMap<>();
materialForGroupMap.put("gid", gid); materialForGroupMap.put("gid", gid);
@ -241,7 +241,7 @@ public class GroupServiceImpl implements GroupService {
for (int i = 0; i < mids.size(); i++) { for (int i = 0; i < mids.size(); i++) {
// 获取物料id // 获取物料id
Object mid = mids.get(i); Object mid = mids.get(i);
// 获取套餐中当前物料对应的数量 // 获取组合中当前物料对应的数量
Object quantity = quantitys.get(i); Object quantity = quantitys.get(i);
materialForGroupMap.put("mid", mid); materialForGroupMap.put("mid", mid);
@ -255,7 +255,7 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 添加一条套餐 * 添加一条组合
* *
* @param groupInfo 具体数据 * @param groupInfo 具体数据
* @return * @return
@ -267,9 +267,9 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据主键删除一条套餐记录 * 根据主键删除一条组合记录
* *
* @param id 待删除套餐主键 * @param id 待删除组合主键
* @return * @return
*/ */
@Transactional @Transactional
@ -291,7 +291,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据主键批量删除套餐记录 * 根据主键批量删除组合记录
* *
* @param ids 主键列表 * @param ids 主键列表
* @return * @return
@ -302,14 +302,14 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 修改套餐中对应物料信息 * 修改组合中对应物料信息
* *
* @param map 修改数据及条件 * @param map 修改数据及条件
* @return * @return
*/ */
@Override @Override
public Integer updateMaterialForGroup(Map<String, Object> map) { public Integer updateMaterialForGroup(Map<String, Object> map) {
// 获取当前要修改的套餐明细id // 获取当前要修改的组合明细id
Integer id = ObjectFormatUtil.toInteger(map.get("id")); Integer id = ObjectFormatUtil.toInteger(map.get("id"));
// 获取当前要修改的物料明细数量 // 获取当前要修改的物料明细数量
Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity")); Integer quantity = ObjectFormatUtil.toInteger(map.get("quantity"));
@ -317,7 +317,7 @@ public class GroupServiceImpl implements GroupService {
// 如果要修改的数量为0则删除该明细 // 如果要修改的数量为0则删除该明细
return groupMapper.delMaterialForGroupById(id); return groupMapper.delMaterialForGroupById(id);
} else { } else {
// 根据id获取当前套餐明细 // 根据id获取当前组合明细
GroupInfo groupById = groupMapper.findGroupById(id); GroupInfo groupById = groupMapper.findGroupById(id);
groupById.setQuantity(quantity); groupById.setQuantity(quantity);
return groupMapper.updateMaterialForGroup(groupById); return groupMapper.updateMaterialForGroup(groupById);
@ -326,11 +326,11 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 通过物料id与套餐id查询对应套餐明细 * 通过物料id与组合id查询对应组合明细
* *
* @param mid 物料id * @param mid 物料id
* @param gid 套餐id * @param gid 组合id
* @return 套餐明细 * @return 组合明细
*/ */
@Override @Override
public GroupInfo findGroupInfoByMidAndGid(Integer mid, Integer gid) { public GroupInfo findGroupInfoByMidAndGid(Integer mid, Integer gid) {
@ -345,7 +345,7 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 根据主键删除一条套餐中的物料明细 * 根据主键删除一条组合中的物料明细
* *
* @param id 待删除主键 * @param id 待删除主键
* @return * @return
@ -356,7 +356,7 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 根据主键批量删除套餐中的物料明细 * 根据主键批量删除组合中的物料明细
* *
* @param ids 待删除主键 * @param ids 待删除主键
* @return * @return
@ -367,16 +367,16 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 根据条件修改套餐信息 * 根据条件修改组合信息
* *
* @param map 修改条件 * @param map 修改条件
* @return * @return
*/ */
@Override @Override
public Integer updateGroupState(Map<String, Object> map) { public Integer updateGroupState(Map<String, Object> map) {
// 获取待修改套餐id // 获取待修改组合id
Integer id = ObjectFormatUtil.toInteger(map.get("id")); Integer id = ObjectFormatUtil.toInteger(map.get("id"));
// 根据主键获取对应套餐 // 根据主键获取对应组合
Group group = groupMapper.findGroupOnlyById(id); Group group = groupMapper.findGroupOnlyById(id);
Integer state = 2; Integer state = 2;
if (map.containsKey("state")) { if (map.containsKey("state")) {
@ -388,7 +388,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据条件修改套餐信息 * 根据条件修改组合信息
* *
* @param map 修改条件 * @param map 修改条件
* @return * @return
@ -399,7 +399,7 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 根据条件获取套餐 * 根据条件获取组合
* *
* @param map 查询条件 * @param map 查询条件
* @return * @return
@ -411,7 +411,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 用于构造套餐 * 用于构造组合
* *
* @param gname * @param gname
* @return * @return
@ -420,7 +420,7 @@ public class GroupServiceImpl implements GroupService {
// 定义结果集 // 定义结果集
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
// 获取所有使用中的套餐 // 获取所有使用中的组合
List<Group> allGroupOnly = groupMapper.findAllGroupOnly(gname); List<Group> allGroupOnly = groupMapper.findAllGroupOnly(gname);
// 获取当前总数 // 获取当前总数
@ -443,7 +443,7 @@ public class GroupServiceImpl implements GroupService {
CompletionService<Object> completionService = new ExecutorCompletionService<Object>(exs); CompletionService<Object> completionService = new ExecutorCompletionService<Object>(exs);
// 定义套餐id列表 // 定义组合id列表
List<Integer> groupIdList = new ArrayList<>(); List<Integer> groupIdList = new ArrayList<>();
@ -500,12 +500,12 @@ public class GroupServiceImpl implements GroupService {
Integer result = 0; Integer result = 0;
Object parentId = null; Object parentId = null;
// 获取当前要出库的套餐数量 // 获取当前要出库的组合数量
Integer quantityForGroup = ObjectFormatUtil.toInteger(map.get("quantity")); Integer quantityForGroup = ObjectFormatUtil.toInteger(map.get("quantity"));
// 获取要出库的套餐 // 获取要出库的组合
Integer gid = ObjectFormatUtil.toInteger(map.get("gid")); Integer gid = ObjectFormatUtil.toInteger(map.get("gid"));
// 获取要出库套餐的具体信息 // 获取要出库组合的具体信息
List<GroupInfo> groupInfoByGid = groupMapper.findGroupInfoByGid(gid); List<GroupInfo> groupInfoByGid = groupMapper.findGroupInfoByGid(gid);
// 用于统计出库物料总数 // 用于统计出库物料总数
Integer quantityForTotal = 0; Integer quantityForTotal = 0;
@ -537,16 +537,16 @@ public class GroupServiceImpl implements GroupService {
result += insertApplicationOutMinRecord(userToken, code, parentId, gid, quantityForGroup); result += insertApplicationOutMinRecord(userToken, code, parentId, gid, quantityForGroup);
if (params.size() > 0) { if (params != null && params.size() > 0) {
// 如果提交的不是单个 // 如果提交的不是单个
// 循环其他 // 循环其他
for (String temp : params) { for (String temp : params) {
// 获取当前要出库的套餐数量 // 获取当前要出库的组合数量
quantityForGroup = ObjectFormatUtil.toInteger(map.get("quantity" + temp)); quantityForGroup = ObjectFormatUtil.toInteger(map.get("quantity" + temp));
// 获取要出库的套餐 // 获取要出库的组合
gid = ObjectFormatUtil.toInteger(map.get("gid" + temp)); gid = ObjectFormatUtil.toInteger(map.get("gid" + temp));
// 获取当前要出库套餐的具体信息 // 获取当前要出库组合的具体信息
groupInfoByGid = groupMapper.findGroupInfoByGid(gid); groupInfoByGid = groupMapper.findGroupInfoByGid(gid);
for (GroupInfo groupInfo : groupInfoByGid) { for (GroupInfo groupInfo : groupInfoByGid) {
// 获取具体信息 // 获取具体信息
@ -571,8 +571,8 @@ public class GroupServiceImpl implements GroupService {
* @param userToken 申请人 * @param userToken 申请人
* @param code 出库单号 * @param code 出库单号
* @param parentId 主单号 * @param parentId 主单号
* @param gid 套餐id * @param gid 组合id
* @param quantityForGroup 出库的套餐 * @param quantityForGroup 出库的组合
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -583,13 +583,13 @@ public class GroupServiceImpl implements GroupService {
// 获取当前部门仓库 // 获取当前部门仓库
List<Depository> depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
// 获取要出库套餐的具体信息 // 获取要出库组合的具体信息
List<GroupInfo> groupInfoByGid = groupMapper.findGroupInfoByGid(gid); List<GroupInfo> groupInfoByGid = groupMapper.findGroupInfoByGid(gid);
for (GroupInfo groupInfo : groupInfoByGid) { for (GroupInfo groupInfo : groupInfoByGid) {
// 用于存储出库数据 // 用于存储出库数据
Map<String, Object> paramForOutMin = new HashMap<>(); Map<String, Object> paramForOutMin = new HashMap<>();
paramForOutMin.put("parentId", parentId); paramForOutMin.put("parentId", parentId);
// 套餐中的具体信息 // 组合中的具体信息
// 实际要出库的物料库存数量 // 实际要出库的物料库存数量
Integer quantity = groupInfo.getQuantity() * quantityForGroup; Integer quantity = groupInfo.getQuantity() * quantityForGroup;
// 实际出库的仓库编号 // 实际出库的仓库编号
@ -629,9 +629,9 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 根据套餐编号获取套餐具体信息 * 根据组合编号获取组合具体信息
* *
* @param gid 待查讯套餐编号 * @param gid 待查讯组合编号
* @return * @return
*/ */
@Override @Override
@ -642,7 +642,7 @@ public class GroupServiceImpl implements GroupService {
// 用于执行线程任务 // 用于执行线程任务
class Task implements Callable<Object> { class Task implements Callable<Object> {
// 套餐id列表 // 组合id列表
List<Integer> groupIdList; List<Integer> groupIdList;
@ -654,7 +654,7 @@ public class GroupServiceImpl implements GroupService {
@Override @Override
public Object call() throws Exception { public Object call() throws Exception {
/** /**
* 获取当前套餐id对应的套餐 * 获取当前组合id对应的组合
*/ */
List<Group> groupByGids = groupMapper.findGroupByGids(groupIdList); List<Group> groupByGids = groupMapper.findGroupByGids(groupIdList);
@ -671,7 +671,7 @@ public class GroupServiceImpl implements GroupService {
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
for (int i = 0; i < groupByGids.size(); i++) { for (int i = 0; i < groupByGids.size(); i++) {
// 获取套餐具体信息 // 获取组合具体信息
Group group = groupByGids.get(i); Group group = groupByGids.get(i);
// 开启线程 // 开启线程
Future<Object> submit = completionService.submit(new TaskForGroupInfo(group)); Future<Object> submit = completionService.submit(new TaskForGroupInfo(group));
@ -701,10 +701,10 @@ public class GroupServiceImpl implements GroupService {
@Override @Override
public Object call() throws Exception { public Object call() throws Exception {
// 用于获取当前套餐的具体信息 // 用于获取当前组合的具体信息
Map<String, Object> paramForGroup = new HashMap<>(); Map<String, Object> paramForGroup = new HashMap<>();
paramForGroup.put("gid", group.getId()); paramForGroup.put("gid", group.getId());
// 获取当前套餐的具体信息 // 获取当前组合的具体信息
List<GroupInfo> groupByCondition = groupMapper.findGroupByCondition(paramForGroup); List<GroupInfo> groupByCondition = groupMapper.findGroupByCondition(paramForGroup);
// 定义子类结果集 // 定义子类结果集
List<Object> resultForChildren = new ArrayList<>(); List<Object> resultForChildren = new ArrayList<>();
@ -721,7 +721,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 构造树形组件数据模板 * 构造树形组件数据模板
* *
* @param g 套餐 * @param g 组合
* @param children 子类 * @param children 子类
* @return * @return
*/ */
@ -741,7 +741,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 构造树形组件的子组件模板 * 构造树形组件的子组件模板
* *
* @param g 套餐详细信息 * @param g 组合详细信息
* @return * @return
*/ */
public Map<String, Object> InitTreeMenus(GroupInfo g) { public Map<String, Object> InitTreeMenus(GroupInfo g) {
@ -757,9 +757,9 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 用于创建套餐编码 * 用于创建组合编码
* *
* @param num 第几个套餐 * @param num 第几个组合
* @return * @return
*/ */
public String createCode(Integer num) { public String createCode(Integer num) {

52
src/main/resources/static/js/application-out/application-out.js

@ -7,11 +7,11 @@ function addItem(obj) {
function deleteItem(obj) { function deleteItem(obj) {
} }
// 用于添加标签(用于套餐 // 用于添加标签(用于组合
function addItemForGroup(obj) { function addItemForGroup(obj) {
} }
// 用于删除标签(用于套餐 // 用于删除标签(用于组合
function deleteItemForGroup(obj) { function deleteItemForGroup(obj) {
} }
@ -19,7 +19,7 @@ function deleteItemForGroup(obj) {
function selectCode(obj) { function selectCode(obj) {
} }
// 用于编码查询(用于套餐) // 用于编码查询(用于组合)
function selectCodeForGroup(obj) { function selectCodeForGroup(obj) {
} }
@ -27,7 +27,7 @@ function selectCodeForGroup(obj) {
function selectMaterial(obj) { function selectMaterial(obj) {
} }
// 用于点击搜索按钮(套餐 // 用于点击搜索按钮(组合
function selectGroup(obj) { function selectGroup(obj) {
} }
@ -37,7 +37,7 @@ function selectMaterialByName(obj) {
} }
// 用于套餐名称查询 // 用于组合名称查询
function selectGroupByName() { function selectGroupByName() {
} }
@ -50,7 +50,7 @@ function MaterialQuantityIsTrue() {
function scanBarCode() { function scanBarCode() {
} }
// 用于重新渲染页面(套餐) // 用于重新渲染页面(组合)
function CoverpageForGroup() { function CoverpageForGroup() {
} }
@ -62,7 +62,7 @@ function scanCodeByOut(obj) {
// 用于暂存卡片个数 // 用于暂存卡片个数
var params = []; var params = [];
// 用于暂存卡片个数(套餐) // 用于暂存卡片个数(组合)
var params2 = []; var params2 = [];
// 用于卡片编号 // 用于卡片编号
var NewIdNumber = 1; var NewIdNumber = 1;
@ -243,7 +243,7 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
$("#" + parentId).after(materialItem); $("#" + parentId).after(materialItem);
}; };
// 实现卡片添加(套餐) // 实现卡片添加(组合)
addItemForGroup = function (obj) { addItemForGroup = function (obj) {
var parentId = obj.parentNode.id; var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1; NewIdNumber = NewIdNumber + 1;
@ -253,10 +253,10 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
<i class="layui-icon layui-icon-subtraction" style="display: inline" <i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i> onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐名称:</label> <label class="layui-form-label">组合名称:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input type="text" placeholder="请选择套餐" class="layui-input" <input type="text" placeholder="请选择组合" class="layui-input"
style="border-style: none" style="border-style: none"
id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)" id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)"
lay-verify="required"/> lay-verify="required"/>
@ -269,10 +269,10 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐编码:</label> <label class="layui-form-label">组合编码:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入套餐编码" value="" <input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入组合编码" value=""
onblur="selectCodeForGroup(this)" onblur="selectCodeForGroup(this)"
class="layui-input" lay-verify="required" class="layui-input" lay-verify="required"
style="border-style: none"> style="border-style: none">
@ -282,10 +282,10 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐数量:</label> <label class="layui-form-label">组合数量:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+` <input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+`
required lay-verify="number" placeholder="请填写套餐数量"/> required lay-verify="number" placeholder="请填写组合数量"/>
</div> </div>
</div> </div>
<i class="layui-icon layui-icon-addition" style="display: inline" id=` + "addItemForGroup" + NewIdNumber + ` <i class="layui-icon layui-icon-addition" style="display: inline" id=` + "addItemForGroup" + NewIdNumber + `
@ -299,7 +299,7 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
$("#stepForm2").css("height", height + 236 + 'px'); $("#stepForm2").css("height", height + 236 + 'px');
$("#" + parentId).after(materialItem); $("#" + parentId).after(materialItem);
}; };
// 用于重新渲染页面(套餐 // 用于重新渲染页面(组合
CoverpageForGroup = function (num, obj) { CoverpageForGroup = function (num, obj) {
// 获取待添加父类 // 获取待添加父类
NewIdNumber = num; NewIdNumber = num;
@ -479,7 +479,7 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
}; };
// 用于实现通过编码查询套餐 // 用于实现通过编码查询组合
selectCodeForGroup = function (obj) { selectCodeForGroup = function (obj) {
// 输入code // 输入code
var code = obj.value; var code = obj.value;
@ -487,7 +487,7 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
var pid = Number(parent.id.split("cardItemForGroup")[1]); var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的套餐名称等 // 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3]; let gnameParent = parent.childNodes[5].childNodes[3];
// gid // gid
@ -625,7 +625,7 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
}); });
}; };
// 用于实现点击搜索按钮(套餐 // 用于实现点击搜索按钮(组合
selectGroup = function(obj){ selectGroup = function(obj){
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id; var parentId = parent.id;
@ -633,10 +633,10 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
// 获取对应元素 // 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]); var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的套餐名称等 // 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3]; let gnameParent = parent.childNodes[5].childNodes[3];
// 套餐编码 // 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1]; let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
@ -716,17 +716,17 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
}) })
}; };
// 用于实现套餐名称搜索 // 用于实现组合名称搜索
selectGroupByName = function(obj){ selectGroupByName = function(obj){
let gname = obj.value; let gname = obj.value;
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
// 获取对应元素 // 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]); var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的套餐名称等 // 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3]; let gnameParent = parent.childNodes[5].childNodes[3];
// 套餐编码 // 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1]; let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
@ -746,7 +746,7 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success: function (d) { success: function (d) {
if(d.count === -1){ if(d.count === -1){
// 如果当前套餐名称的数量不止一个 // 如果当前组合名称的数量不止一个
layer.msg("请点击右侧搜索确定物品", { layer.msg("请点击右侧搜索确定物品", {
icon: 0, icon: 0,
time: 1500 time: 1500
@ -762,8 +762,8 @@ layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
} }
}); });
}else if(d.count === 0){ }else if(d.count === 0){
// 如果当前套餐名称不存在 // 如果当前组合名称不存在
layer.msg("没有该套餐,请确认输入是否正确", { layer.msg("没有该组合,请确认输入是否正确", {
icon: 0, icon: 0,
time: 1500 time: 1500
},function () { },function () {

82
src/main/resources/templates/pages/application/application-out.html

@ -52,7 +52,7 @@
<div class="layui-tab"> <div class="layui-tab">
<ul class="layui-tab-title" style="text-align: center"> <ul class="layui-tab-title" style="text-align: center">
<li class="layui-this">物料出库</li> <li class="layui-this">物料出库</li>
<li class="layui-this">套餐出库</li> <li class="layui-this">组合出库</li>
</ul> </ul>
<div class="layui-tab-content"> <div class="layui-tab-content">
<!-- 普通物料出库申请--> <!-- 普通物料出库申请-->
@ -172,10 +172,10 @@
<i class="layui-icon layui-icon-subtraction" style="display: inline" <i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i> onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐名称:</label> <label class="layui-form-label">组合名称:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input type="text" placeholder="请选择套餐" class="layui-input" <input type="text" placeholder="请选择组合" class="layui-input"
style="border-style: none" style="border-style: none"
id="openGroupList" onblur="selectGroupByName(this)" id="openGroupList" onblur="selectGroupByName(this)"
lay-verify="required"/> lay-verify="required"/>
@ -188,11 +188,11 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐编码:</label> <label class="layui-form-label">组合编码:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input id="gcode" name="code" type="text" <input id="gcode" name="code" type="text"
placeholder="请填写入套餐编码" placeholder="请填写入组合编码"
value="" value=""
onblur="selectCodeForGroup(this)" onblur="selectCodeForGroup(this)"
class="layui-input" lay-verify="required" class="layui-input" lay-verify="required"
@ -203,10 +203,10 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐数量:</label> <label class="layui-form-label">组合数量:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="number" name="quantity" class="layui-input" id="quantityForGroup" onblur="groupQuantityIsTrue(this)" <input type="number" name="quantity" class="layui-input" id="quantityForGroup" onblur="groupQuantityIsTrue(this)"
required lay-verify="number" placeholder="请填写套餐数量"/> required lay-verify="number" placeholder="请填写组合数量"/>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -270,11 +270,11 @@
function deleteItem(obj) { function deleteItem(obj) {
} }
// 用于添加标签(用于套餐 // 用于添加标签(用于组合
function addItemForGroup(obj) { function addItemForGroup(obj) {
} }
// 用于删除标签(用于套餐 // 用于删除标签(用于组合
function deleteItemForGroup(obj) { function deleteItemForGroup(obj) {
} }
@ -282,7 +282,7 @@
function selectCode(obj) { function selectCode(obj) {
} }
// 用于编码查询(用于套餐) // 用于编码查询(用于组合)
function selectCodeForGroup(obj) { function selectCodeForGroup(obj) {
} }
@ -290,7 +290,7 @@
function selectMaterial(obj) { function selectMaterial(obj) {
} }
// 用于点击搜索按钮(套餐 // 用于点击搜索按钮(组合
function selectGroup(obj) { function selectGroup(obj) {
} }
@ -300,7 +300,7 @@
} }
// 用于套餐名称查询 // 用于组合名称查询
function selectGroupByName() { function selectGroupByName() {
} }
@ -310,7 +310,7 @@
} }
// 用于判断当前套餐数量是否合适 // 用于判断当前组合数量是否合适
function groupQuantityIsTrue() { function groupQuantityIsTrue() {
} }
@ -318,7 +318,7 @@
function scanBarCode() { function scanBarCode() {
} }
// 用于重新渲染页面(套餐) // 用于重新渲染页面(组合)
function CoverpageForGroup() { function CoverpageForGroup() {
} }
@ -330,7 +330,7 @@
// 用于暂存卡片个数 // 用于暂存卡片个数
var params = []; var params = [];
// 用于暂存卡片个数(套餐) // 用于暂存卡片个数(组合)
var params2 = []; var params2 = [];
// 用于卡片编号 // 用于卡片编号
var NewIdNumber = 1; var NewIdNumber = 1;
@ -424,7 +424,7 @@
return false; return false;
}); });
// 提交(套餐出库) // 提交(组合出库)
form.on('submit(formStep2)', function (data) { form.on('submit(formStep2)', function (data) {
data = data.field; data = data.field;
data.params = params2; data.params = params2;
@ -562,7 +562,7 @@
$("#" + parentId).after(materialItem); $("#" + parentId).after(materialItem);
}; };
// 实现卡片添加(套餐) // 实现卡片添加(组合)
addItemForGroup = function (obj) { addItemForGroup = function (obj) {
var parentId = obj.parentNode.id; var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1; NewIdNumber = NewIdNumber + 1;
@ -572,10 +572,10 @@
<i class="layui-icon layui-icon-subtraction" style="display: inline" <i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i> onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐名称:</label> <label class="layui-form-label">组合名称:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input type="text" placeholder="请选择套餐" class="layui-input" <input type="text" placeholder="请选择组合" class="layui-input"
style="border-style: none" style="border-style: none"
id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)" id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)"
lay-verify="required"/> lay-verify="required"/>
@ -588,10 +588,10 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐编码:</label> <label class="layui-form-label">组合编码:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入套餐编码" value="" <input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入组合编码" value=""
onblur="selectCodeForGroup(this)" onblur="selectCodeForGroup(this)"
class="layui-input" lay-verify="required" class="layui-input" lay-verify="required"
style="border-style: none"> style="border-style: none">
@ -601,10 +601,10 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐数量:</label> <label class="layui-form-label">组合数量:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+` <input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+`
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写套餐数量"/> required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写组合数量"/>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -626,7 +626,7 @@
$("#" + parentId).after(materialItem); $("#" + parentId).after(materialItem);
}; };
// 用于重新渲染页面(套餐 // 用于重新渲染页面(组合
CoverpageForGroup = function (num, obj) { CoverpageForGroup = function (num, obj) {
// 获取待添加父类 // 获取待添加父类
NewIdNumber = num; NewIdNumber = num;
@ -687,7 +687,7 @@
// 获取当前高度 // 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]); var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
if (NewIdNumber !== "") { if (NewIdNumber !== "") {
params.push(NewIdNumber) params2.push(NewIdNumber)
} }
$("#stepForm2").css("height", height + 183 + 'px'); $("#stepForm2").css("height", height + 183 + 'px');
$("#" + "addItemForGroup" + NewIdNumber).before(materialItem); $("#" + "addItemForGroup" + NewIdNumber).before(materialItem);
@ -708,7 +708,7 @@
reparent.removeChild(parent); reparent.removeChild(parent);
}; };
// 实现卡片删除(套餐 // 实现卡片删除(组合
deleteItemForGroup = function (obj) { deleteItemForGroup = function (obj) {
// 获取父节点 // 获取父节点
var parent = obj.parentNode; var parent = obj.parentNode;
@ -718,7 +718,7 @@
var reparent = parent.parentNode; var reparent = parent.parentNode;
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]); var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
$("#stepForm2").css("height", height - 289 + 'px'); $("#stepForm2").css("height", height - 289 + 'px');
params2 = remove(params, parentId); params2 = remove(params2, parentId);
reparent.removeChild(parent); reparent.removeChild(parent);
}; };
@ -805,7 +805,7 @@
}); });
}; };
// 用于实现通过编码查询套餐 // 用于实现通过编码查询组合
selectCodeForGroup = function (obj) { selectCodeForGroup = function (obj) {
// 输入code // 输入code
var code = obj.value; var code = obj.value;
@ -813,7 +813,7 @@
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
var pid = Number(parent.id.split("cardItemForGroup")[1]); var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的套餐名称等 // 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3]; let gnameParent = parent.childNodes[5].childNodes[3];
// gid // gid
@ -952,7 +952,7 @@
}); });
}; };
// 用于实现点击搜索按钮(套餐 // 用于实现点击搜索按钮(组合
selectGroup = function(obj){ selectGroup = function(obj){
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id; var parentId = parent.id;
@ -960,10 +960,10 @@
// 获取对应元素 // 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]); var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的套餐名称等 // 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3]; let gnameParent = parent.childNodes[5].childNodes[3];
// 套餐编码 // 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1]; let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
@ -1043,17 +1043,17 @@
}) })
}; };
// 用于实现套餐名称搜索 // 用于实现组合名称搜索
selectGroupByName = function(obj){ selectGroupByName = function(obj){
let gname = obj.value; let gname = obj.value;
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
// 获取对应元素 // 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]); var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的套餐名称等 // 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3]; let gnameParent = parent.childNodes[5].childNodes[3];
// 套餐编码 // 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1]; let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
@ -1073,7 +1073,7 @@
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success: function (d) { success: function (d) {
if(d.count === -1){ if(d.count === -1){
// 如果当前套餐名称的数量不止一个 // 如果当前组合名称的数量不止一个
layer.msg("请点击右侧搜索确定物品", { layer.msg("请点击右侧搜索确定物品", {
icon: 0, icon: 0,
time: 1500 time: 1500
@ -1089,8 +1089,8 @@
} }
}); });
}else if(d.count === 0){ }else if(d.count === 0){
// 如果当前套餐名称不存在 // 如果当前组合名称不存在
layer.msg("没有该套餐,请确认输入是否正确", { layer.msg("没有该组合,请确认输入是否正确", {
icon: 0, icon: 0,
time: 1500 time: 1500
},function () { },function () {
@ -1353,12 +1353,12 @@
} }
}; };
//用于判断当前套餐数量是否合适 //用于判断当前组合数量是否合适
groupQuantityIsTrue = function (obj) { groupQuantityIsTrue = function (obj) {
var id = obj.id.split("quantityForGroup")[1]; var id = obj.id.split("quantityForGroup")[1];
var gid = $("#gid" + id).val(); // 获取到当前输入的物料编码 var gid = $("#gid" + id).val(); // 获取到当前输入的物料编码
if (gid === "" || gid === undefined || gid === null) { if (gid === "" || gid === undefined || gid === null) {
layer.msg("请输入正确的套餐!", {icon: 0, time: 500}, function () { layer.msg("请输入正确的组合!", {icon: 0, time: 500}, function () {
$("#quantityForGroup" + id).val("") $("#quantityForGroup" + id).val("")
}); });
} else { } else {
@ -1377,7 +1377,7 @@
var flag = res.data; var flag = res.data;
if (!flag) { // 如果当前数目不合适 if (!flag) { // 如果当前数目不合适
layer.msg("当前套餐中有物料库存数量不足", {icon: 0, time: 500}, function () { layer.msg("当前组合中有物料库存数量不足", {icon: 0, time: 500}, function () {
$("#quantityForGroup" + id).val(""); $("#quantityForGroup" + id).val("");
}); });

36
src/main/resources/templates/pages/application/application_multi.html

@ -190,10 +190,25 @@
success: function (d) { success: function (d) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (d.status >= 300) { if (d.status >= 300) {
layer.msg(d.statusInfo.message);//失败的表情 layer.msg(d.statusInfo.detail,{
icon:0,
time:1000
},function () {
obj.update({quantity:1})
});//失败的表情
return; return;
}else if(d.status === 1234){ }else if(d.status === 1234){
layer.msg(d.data) layer.msg(d.data,{
icon:0,
time:1000
},function () {
table.reload('currentTableId', {
url: '/depositoryRecord/applicant_multi_create',
page: {
curr: 1
},
});
});
return return
} }
else { else {
@ -201,9 +216,14 @@
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 1000 time: 1000
}, //1秒关闭(如果不配置,默认是3秒) }, //1秒关闭(如果不配置,默认是3秒)
function(){ function() {
//do something //do something
window.location="/application_multi" table.reload('currentTableId', {
url: '/depositoryRecord/applicant_multi_create',
page: {
curr: 1
},
});
}); });
} }
} }
@ -257,8 +277,12 @@
success: function (d) { success: function (d) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (d.status >= 300) { if (d.status >= 300) {
layer.msg(d.statusInfo.message);//失败的表情 layer.msg(d.statusInfo.detail,{
return; icon:0,
time:1000
},function () {
obj.update({quantity:1});
});//失败的表情
} else { } else {
layer.msg("申请成功!", { layer.msg("申请成功!", {
icon: 6,//成功的表情 icon: 6,//成功的表情

3
src/main/resources/templates/pages/chart/chart-out_back.html

@ -278,9 +278,6 @@
xAxis: {type: 'category'}, xAxis: {type: 'category'},
yAxis: {}, yAxis: {},
series: [ series: [
{type: 'bar'},
{type: 'bar'},
{type: 'bar'}
] ]
}; };

4
src/main/resources/templates/pages/chart/chart-stock_back.html

@ -207,8 +207,6 @@
xAxis: {type: 'category'}, xAxis: {type: 'category'},
yAxis: {}, yAxis: {},
series: [ series: [
{type: 'bar'},
{type: 'bar'}
] ]
}; };
@ -249,7 +247,7 @@
}, },
success: function (result) { success: function (result) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (result.code == 0) { if (result.code === 0) {
echartsRecords.setOption(optionRecords); echartsRecords.setOption(optionRecords);
echartsPies.setOption(optionPies); echartsPies.setOption(optionPies);
echartsDataset.setOption(optionDataset); echartsDataset.setOption(optionDataset);

551
src/main/resources/templates/pages/group/applicationOutForGroup.html

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en" xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>分步表单</title> <title>分步表单</title>
@ -50,10 +50,37 @@
<div class="layuimini-container"> <div class="layuimini-container">
<div class="layuimini-main"> <div class="layuimini-main">
<div class="layui-fluid"> <div class="layui-fluid">
<input id="gidList" type="text" style="display:none;" th:value="${gidList}" >
<div class="layui-carousel" id="stepForm2" lay-filter="stepForm2" style="margin: 0 auto;"> <div class="layui-carousel" id="stepForm2" lay-filter="stepForm2" style="margin: 0 auto;">
<div carousel-item style="overflow: inherit"> <div carousel-item style="overflow: inherit">
<div> <div>
<form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;"> <form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;">
<div class="layui-card" id="cardParentForGroup">
<!--提交按钮-->
<div class="layui-form-item" id="btn_sub2">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep2" type="button"
style="margin-bottom: 30px;margin-left: 15%">
&emsp;提交&emsp;
</button>
</div>
</div>
</div>
</form>
</div>
<div>
<form class="layui-form" style="margin: 0 auto;max-width: 460px;padding-top: 40px;">
<div style="text-align: center;margin-top: 90px;">
<i class="layui-icon layui-circle"
style="color: white;font-size:30px;font-weight:bold;background: #52C41A;padding: 20px;line-height: 80px;">&#xe605;</i>
<div style="font-size: 24px;color: #333;font-weight: 500;margin-top: 30px;">
提交申请成功
</div>
</div>
<div style="text-align: center;margin-top: 50px;">
<button class="layui-btn next">再申请一次</button>
</div>
</form> </form>
</div> </div>
</div> </div>
@ -66,7 +93,7 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script> <script src="/static/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script> <script>
// 用于重新构造页面中的套餐明细 // 用于重新构造页面中的组合明细
function CoverpageForGroupInfo(){} function CoverpageForGroupInfo(){}
// 用于重新构造页面 // 用于重新构造页面
@ -74,18 +101,156 @@
// 用于实现卡片添加 // 用于实现卡片添加
function addItemForGroup(){} function addItemForGroup(){}
// 用于判断当前组合数量是否合适
function groupQuantityIsTrue() {
}
// 用于组合名称查询
function selectGroupByName() {
}
// 用于点击搜索按钮(组合)
function selectGroup(obj) {
}
// 用于删除标签(用于组合)
function deleteItemForGroup(obj) {
}
// 用于编码查询(用于组合)
function selectCodeForGroup(obj) {
}
// 用于暂存卡片个数(组合)
var params2 = [];
// 用于卡片编号
var NewIdNumber = 1;
layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () { layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
var $ = layui.$, var $ = layui.$,
form = layui.form, form = layui.form,
element = layui.element, element = layui.element,
step = layui.step; step = layui.step;
// 用于分步表单加载
step.render({
elem: '#stepForm2',
filter: 'stepForm2',
width: '100%', //设置容器宽度
height: '600px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
// 提交(组合出库)
form.on('submit(formStep2)', function (data) {
data = data.field;
data.params = params2;
if (data.gid === undefined) {
// 如果没有初始项
var dataKeys = Object.keys(data);
var dataKey;
for (let i = 0; i < dataKeys.length; i++) {
dataKey = dataKeys[i];
if (dataKey.includes("gid")) {
break;
}
}
// 获取当前数字
var keyNumber = dataKey.split("gid")[1];
for (let index = 0; index < dataKeys.length; index++) {
var tempKey = dataKeys[index];
if (tempKey.includes(keyNumber)) {
var key = tempKey.replace(keyNumber, "");
data[key] = data[tempKey];
delete data[tempKey];
}
}
data.params = remove(data.params, Number(keyNumber));
}
$.ajax({
url: "/group/applicationOutForGroup",
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
data: JSON.stringify(data),
beforeSend: function () {
this.layerIndex = layer.load(0, {shade: [0.5, '#393D49']});
},
success: function (d) {
layer.close(this.layerIndex);
if (d.status >= 300) {
layer.msg(d.statusInfo.detail);//失败的表情
} else {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm2');
});
}
},
complete: function () {
layer.close(this.layerIndex);
}
});
});
$('.pre').click(function () {
step.pre('#stepForm2');
});
$('.next').click(function () {
step.next('#stepForm2');
});
// 获取当前gid列表
let gidList = JSON.parse($("#gidList").val());
// 页面初始化 // 页面初始化
$(function () { $(function () {
let req = {};
for (let i = 0; i < gidList.length; i++) {
req.gid = gidList[i];
$.ajax({
url: "/group/findGroupInfoByGid",
data: JSON.stringify(req),
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
if(d.status === 666){
layer.msg(d.statusInfo.detail,{
icon:0,
time:1000,
},function () {
// 关闭当前页
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
})
}else {
var data = d.data;
CoverPageForGroup(i, data[0]);
form.render();
for (let j = 0; j < data.length; j++) {
CoverpageForGroupInfo(i, data[j]);
}
element.init();
form.render();
}
}
})
}
});
}) // 用于重新渲染页面的组合明细
// 用于重新渲染页面的套餐明细
CoverpageForGroupInfo = function (num, obj) { CoverpageForGroupInfo = function (num, obj) {
// 获取待添加父类 // 获取待添加父类
NewIdNumber = num; NewIdNumber = num;
@ -146,7 +311,7 @@
// 获取当前高度 // 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]); var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
if (NewIdNumber !== "") { if (NewIdNumber !== "") {
params.push(NewIdNumber) params2.push(NewIdNumber)
} }
$("#stepForm2").css("height", height + 183 + 'px'); $("#stepForm2").css("height", height + 183 + 'px');
$("#" + "addItemForGroup" + NewIdNumber).before(materialItem); $("#" + "addItemForGroup" + NewIdNumber).before(materialItem);
@ -155,33 +320,37 @@
// 用于重新构造页面 // 用于重新构造页面
CoverPageForGroup =function (num,obj) { CoverPageForGroup =function (num,obj) {
var materialItem = ` if(num === 0){
<div class="layui-card-body" id=` + "cardItemForGroup" + NewIdNumber + `> num = '';
}else{
params2.push(num);
}
var materialItem = `<div class="layui-card-body" id=` + "cardItemForGroup" + num + `>
<hr> <hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline" <i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i> onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐名称:</label> <label class="layui-form-label">组合名称:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input type="text" placeholder="请选择套餐" class="layui-input" <input type="text" placeholder="请选择组合" class="layui-input" value="${obj.gname}"
style="border-style: none" style="border-style: none"
id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)" id=`+"openGroupList"+num+` onblur="selectGroupByName(this)"
lay-verify="required"/> lay-verify="required"/>
<i class="layui-icon layui-icon-search" <i class="layui-icon layui-icon-search"
style="display: inline" style="display: inline"
id=`+"selectGroup"+NewIdNumber+` onclick="selectGroup(this)"></i> id=`+"selectGroup"+num+` onclick="selectGroup(this)"></i>
</div> </div>
<input type="text" name=`+"gid"+NewIdNumber+` class="layui-input" id=`+"gid"+NewIdNumber+` <input type="text" value="${obj.gid}" name=`+"gid"+num+` class="layui-input" id=`+"gid"+num+`
style="display: none" lay-verify="required"/> style="display: none" lay-verify="required"/>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐编码:</label> <label class="layui-form-label">组合编码:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入套餐编码" value="" <input id=` + "gcode" + ` name=` + "code" + num + ` type="text" placeholder="请填写入组合编码"
onblur="selectCodeForGroup(this)" onblur="selectCodeForGroup(this)" value="${obj.gcode}"
class="layui-input" lay-verify="required" class="layui-input" lay-verify="required"
style="border-style: none"> style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16" <img src="/static/images/search.ico" height="16" width="16"
@ -190,32 +359,41 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐数量:</label> <label class="layui-form-label">组合数量:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+` <input type="number" name=`+"quantity"+num+` class="layui-input" id=`+"quantityForGroup"+num+`
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写套餐数量"/> required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写组合数量"/>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">备注说明:</label> <label class="layui-form-label">备注说明:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input name=`+"applyRemark"+NewIdNumber+` placeholder="请填写相关原因及申请原因" value="" <input name=`+"applyRemark"+num+` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/> class="layui-input"/>
</div> </div>
</div> </div>
<i class="layui-icon layui-icon-addition" style="display: inline" id=` + "addItemForGroup" + NewIdNumber + ` <i class="layui-icon layui-icon-addition" style="display: inline" id=` + "addItemForGroup" + num + `
onclick="addItemForGroup(this)"></i> onclick="addItemForGroup(this)"></i>
</div> </div>
`; `;
// 获取当前高度 // 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]); var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
params2.push(NewIdNumber);
$("#stepForm2").css("height", height + 289 + 'px'); $("#stepForm2").css("height", height + 289 + 'px');
$("#" + parentId).after(materialItem); if(num === ''){
$("#btn_sub2").before(materialItem);
}else{
num = num - 1;
if(num === 0){
num = '';
}
$("#"+"cardItemForGroup"+num).after(materialItem);
}
}; };
// 实现卡片添加(套餐) // 实现卡片添加(组合)
addItemForGroup = function (obj) { addItemForGroup = function (obj) {
var parentId = obj.parentNode.id; var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1; NewIdNumber = NewIdNumber + 1;
@ -225,10 +403,10 @@
<i class="layui-icon layui-icon-subtraction" style="display: inline" <i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i> onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐名称:</label> <label class="layui-form-label">组合名称:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input type="text" placeholder="请选择套餐" class="layui-input" <input type="text" placeholder="请选择组合" class="layui-input"
style="border-style: none" style="border-style: none"
id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)" id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)"
lay-verify="required"/> lay-verify="required"/>
@ -241,10 +419,10 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐编码:</label> <label class="layui-form-label">组合编码:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入套餐编码" value="" <input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入组合编码" value=""
onblur="selectCodeForGroup(this)" onblur="selectCodeForGroup(this)"
class="layui-input" lay-verify="required" class="layui-input" lay-verify="required"
style="border-style: none"> style="border-style: none">
@ -254,10 +432,10 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐数量:</label> <label class="layui-form-label">组合数量:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+` <input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+`
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写套餐数量"/> required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写组合数量"/>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -278,6 +456,319 @@
$("#stepForm2").css("height", height + 289 + 'px'); $("#stepForm2").css("height", height + 289 + 'px');
$("#" + parentId).after(materialItem); $("#" + parentId).after(materialItem);
}; };
// 用于实现通过编码查询组合
selectCodeForGroup = function (obj) {
// 输入code
var code = obj.value;
// 获取搜索的对应卡片
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3];
// gid
let gidItem = gnameParent.childNodes[3];
// gname
let gnameItem = gnameParent.childNodes[1].childNodes[1];
let req = {};
req.code = code;
$.ajax({
url: "/group/findGroupByCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
if (data === null) {
layer.msg(d.statusInfo.detail, {
icon: 0,
time: 1500
},function () {
obj.value = '';
gidItem.value = '';
gnameItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
})
} else {
let childNodes = parent.childNodes;
if (childNodes.length > 9) {
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
// 赋值给gname
gnameItem.value = data[0].gname;
gidItem.value = data[0].gid;
for (let i = 0; i < data.length; i++) {
CoverpageForGroupInfo(pid, data[i]);
}
element.init();
}
}
});
};
// 用于实现点击搜索按钮(组合)
selectGroup = function(obj){
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
// 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3];
// 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
// gid
let gidItem = gnameParent.childNodes[3];
// gname
let gnameItem = gnameParent.childNodes[1].childNodes[1];
let gname = gnameItem.value;
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
content: '/selectGroup?gname=' + gname + '&clickObj=' + parentId,
move: '.layui-layer-title',
fixed: false,
success: function (layero, index) {
var children = layero.children();
var content = $(children[1]);
var iframeChildren = $(content.children());
content.css('height', '100%');
iframeChildren.css('height', '100%');
},
end:function () {
let gid = gidItem.value;
if(gid !== ''){
let req = {};
req.gid = gid;
$.ajax({
url: "/group/findGroupInfoByGid",
data: JSON.stringify(req),
type: 'post',
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
if (data === null) {
layer.msg(d.statusInfo.detail, {
icon: 0,
time: 1500
},function () {
obj.value = '';
gidItem.value = '';
gnameItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
})
} else {
let childNodes = parent.childNodes;
if (childNodes.length > 9) {
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
// 赋值给gname
gcodeItem.value = data[0].gcode;
for (let i = 0; i < data.length; i++) {
CoverpageForGroupInfo(pid, data[i]);
}
element.init();
}
}
})
}
}
})
};
// 用于实现组合名称搜索
selectGroupByName = function(obj){
let gname = obj.value;
var parent = obj.parentNode.parentNode.parentNode.parentNode;
// 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3];
// 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
// gid
let gidItem = gnameParent.childNodes[3];
if(gname !== ''){
var req = {};
req.gname = gname;
$.ajax({
url: "/group/findGroupByGname",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if(d.count === -1){
// 如果当前组合名称的数量不止一个
layer.msg("请点击右侧搜索确定物品", {
icon: 0,
time: 1500
},function () {
obj.value = '';
gidItem.value = '';
gcodeItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
});
}else if(d.count === 0){
// 如果当前组合名称不存在
layer.msg("没有该组合,请确认输入是否正确", {
icon: 0,
time: 1500
},function () {
obj.value = '';
gidItem.value = '';
gcodeItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
});
}else{
// 正常
let data = d.data;
let childNodes = parent.childNodes;
if (childNodes.length > 9) {
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
// 赋值给gname
gidItem.value = data[0].gid;
gcodeItem.value = data[0].gcode;
for (let i = 0; i < data.length; i++) {
CoverpageForGroupInfo(pid, data[i]);
}
element.init();
}
}
})
}
else{
gcodeItem.value = '';
gidItem.value = '';
let childNodes = parent.childNodes;
for (let i = 0; i < childNodes.length; i++) {
if (childNodes[i].className === "layui-collapse") {
childNodes[i].remove()
}
}
}
};
//用于判断当前组合数量是否合适
groupQuantityIsTrue = function (obj) {
var id = obj.id.split("quantityForGroup")[1];
var gid = $("#gid" + id).val(); // 获取到当前输入的物料编码
if (gid === "" || gid === undefined || gid === null) {
layer.msg("请输入正确的组合!", {icon: 0, time: 500}, function () {
$("#quantityForGroup" + id).val("")
});
} else {
let val = $("#quantityForGroup" + id).val();
if (val !== null && val !== undefined && val !== '') {
var req = {};
req.gid = gid;
req.quantity = val;
$.ajax({
url: "/group/groupQuantityIsTrue",
type: "post",
data: JSON.stringify(req),
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
var flag = res.data;
if (!flag) { // 如果当前数目不合适
layer.msg("当前组合中有物料库存数量不足", {icon: 0, time: 500}, function () {
$("#quantityForGroup" + id).val("");
});
}
}
});
}
}
}
// 实现卡片删除(组合)
deleteItemForGroup = function (obj) {
// 获取父节点
var parent = obj.parentNode;
var parentId = parent.id;
parentId = parseInt(parentId.split("cardItemForGroup")[1]);
// 获取祖父节点
var reparent = parent.parentNode;
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
$("#stepForm2").css("height", height - 289 + 'px');
params2 = remove(params2, parentId);
reparent.removeChild(parent);
};
//删除数组中指定元素
function remove(arr, item) {
var result = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] === item) {
continue;
}
result.push(arr[i]);
}
return result;
}
}) })
</script> </script>

260
src/main/resources/templates/pages/group/application_multi.html

@ -0,0 +1,260 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/lib/layui-v2.6.3/css/layui.css" media="all">
<link rel="stylesheet" href="/static/css/public.css" media="all">
</head>
<body>
<div class="layuimini-container">
<div class="layuimini-main">
<script id="toolbarDemo" type="text/html">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="delete">删除</button>
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="applicationOut">出库</button>
</div>
</script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
<script id="currentTableBar" type="text/html">
<a class="layui-btn layui-btn-xs data-count-edit" lay-event="applicationOut" >出库</a>
</script>
</div>
</div>
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script>
var data;
layui.use(['form', 'table'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table;
table.render({
elem: "#currentTableId",
url: '/group/applicant_multi_create',
parseData: function (res) { //res 即为原始返回的数据
return {
"status": res.status, //解析接口状态
"message": res.statusInfo.message, //解析提示文本
"count": res.count, //解析数据长度
"data": res.data //解析数据列表
};
},
request: {
pageName: 'page', //页码的参数名称,默认:page
limitName: 'size' //每页数据量的参数名,默认:limit
},
response: {
statusName: 'status' //规定数据状态的字段名称,默认:code
,statusCode: 200 //规定成功的状态码,默认:0
,msgName: 'message' //规定状态信息的字段名称,默认:msg
,countName: 'count' //规定数据总数的字段名称,默认:count
,dataName: 'data' //规定数据列表的字段名称,默认:data
},
toolbar: '#toolbarDemo',
cols: [
[
{type: "checkbox", width: 50},
{field: 'gname', width: 150, title: '组合名称'},
{field: 'code', width: 150, title: '组合编码'},
{title: '拥有物料', width: 700, align: "center"},
{field: 'quantity', width: 200, title: '数量',edit:'quantity'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"},
]
],
limits: [10, 15, 20, 25, 50,100],
limit: 10,
page: true,
skin: 'line',
done: function (res, curr, count) {
$.each(res['data'], function (i, j) {
let materialSimple = j["materialSimple"];
let gid = j["id"];
let keys = Object.keys(materialSimple);
var materialItem = $("[lay-id='currentTableId'] tr:eq(" + (i+1) + ")").children()[3];
var aItem = materialItem.childNodes[0];
for (let k = 0; k < keys.length; k++) {
$(aItem).append('<button id='+ gid+' class="layui-btn layui-btn-primary layui-btn-xs" value='+materialSimple[keys[k]]+'>'+keys[k]+'</button>')
}
})
}
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
table.on('edit(currentTableFilter)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
var req = {};
req.gid = obj.data.id;
req.quantity = obj.data.quantity;
$.ajax({
url: "/group/groupQuantityIsTrue",
type: "post",
data: JSON.stringify(req),
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (res) {
var flag = res.data;
if (!flag) { // 如果当前数目不合适
layer.msg("当前组合中有物料库存数量不足", {icon: 0, time: 500}, function () {
obj.update({quantity:1})
});
}
}
});
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.quantitys = [];
req.gids = [];
for (i = 0, len = data.length; i < len; i++) {
req.quantitys[i] = data[i].quantity;
req.gids[i] = data[i].id;
}
if(obj.event==='delete'){
if(req.gids.length > 0) {
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url: "/group/deleteApplicationToRedis",
type: "post",
data: JSON.stringify(req),
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (d) {
layer.close(this.layerIndex);
if (d.status >= 300) {
layer.msg(d.statusInfo.message);//失败的表情
return;
} else {
layer.msg("删除成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function () {
//do something
table.reload('currentTableId', {
url: '/group/applicant_multi_create',
page: {
curr: 1
}
}, 'data');
});
}
}
})
})
}else{
layer.msg("未选中记录,请确认!");
return false;
}
}
else if(obj.event === 'applicationOut'){
req.type = "more";
$.ajax({
url:"/group/createMultiApplication",
type:"post",
data:JSON.stringify(req),
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (d) {
layer.close(this.layerIndex);
if (d.status >= 300) {
layer.msg(d.statusInfo.message,{
icon:0,
time:1000
});//失败的表情
return;
}else if(d.status === 1234){
layer.msg(d.data,{
icon:0,
time:1000
})
return
}
else {
layer.msg("申请成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function(){
//do something
table.reload('currentTableId', {
url: '/group/applicant_multi_create',
page: {
curr: 1
}
}, 'data');
});
}
}
});
return false;
}
});
table.on('tool(currentTableFilter)', function (obj) {
let data = obj.data;
if(obj.event === 'applicationOut'){
// 出库申请
var req = data;
req.type = "one";
$.ajax({
url:"/group/createMultiApplication",
type:"post",
data:JSON.stringify(req),
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (d) {
layer.close(this.layerIndex);
if (d.status >= 300) {
layer.msg(d.statusInfo.message,{
icon:0,
time:1000
});//失败的表情
return;
} else {
layer.msg("申请成功!", {
icon: 6,//成功的表情
time: 1000
}, //1秒关闭(如果不配置,默认是3秒)
function(){
//do something
table.reload('currentTableId', {
url: '/group/applicant_multi_create',
page: {
curr: 1
}
}, 'data');
});
}
}
});
return false;
}
});
});
</script>
</body>
</html>

115
src/main/resources/templates/pages/group/group-out.html

@ -14,8 +14,10 @@
<div class="layuimini-main"> <div class="layuimini-main">
<script id="toolbarDemo" type="text/html"> <script id="toolbarDemo" type="text/html">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add">添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add">创建</button>
<button class="layui-btn layui-btn-danger layui-btn-sm data-delete-btn" lay-event="delete">删除</button> <button class="layui-btn layui-btn-danger layui-btn-sm data-delete-btn" lay-event="delete">删除</button>
<button class="layui-btn layui-btn-sm " lay-event="applicationOutAdd">添加</button>
<button class="layui-btn layui-btn-warm layui-btn-sm " lay-event="dispose">处理</button>
</div> </div>
</script> </script>
<fieldset class="table-search-fieldset"> <fieldset class="table-search-fieldset">
@ -34,7 +36,7 @@
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">套餐名称</label> <label class="layui-form-label">组合名称</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="name" autocomplete="off" class="layui-input"> <input type="text" name="name" autocomplete="off" class="layui-input">
</div> </div>
@ -42,7 +44,7 @@
<div class="layui-inline"> <div class="layui-inline">
<label class="layui-form-label">套餐编码</label> <label class="layui-form-label">组合编码</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" name="code" autocomplete="off" class="layui-input"> <input type="text" name="code" autocomplete="off" class="layui-input">
</div> </div>
@ -94,7 +96,7 @@
<script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script> <script src="/static/lib/layui-v2.6.3/layui.js" charset="utf-8"></script>
<script> <script>
// 用于查看并修改套餐中的物料信息 // 用于查看并修改组合中的物料信息
function checkSeeGroup(){}; function checkSeeGroup(){};
layui.use(['form', 'table', 'laydate'], function () { layui.use(['form', 'table', 'laydate'], function () {
var $ = layui.jquery, var $ = layui.jquery,
@ -134,12 +136,12 @@
cols: [ cols: [
[ [
{type: "checkbox", width: 50}, {type: "checkbox", width: 50},
{field: 'gname', width: 150, title: '套餐名称',edit:'gname'}, {field: 'gname', width: 150, title: '组合名称',edit:'gname'},
{field: 'code', width: 150, title: '套餐编码'}, {field: 'code', width: 150, title: '组合编码'},
{title: '拥有物料', width: 700, align: "center"}, {title: '拥有物料', width: 700, align: "center"},
{field: 'quantity', width: 200, title: '数量'}, {field: 'quantity', width: 200, title: '物料数量'},
{field: 'createTime', width: 200, title: '创建时间'}, {field: 'createTime', width: 200, title: '创建时间'},
{field: 'state', title: '状态', minWidth: 80, templet: '#switchTpl'}, {field: 'state', title: '状态', minWidth: 100, templet: '#switchTpl'},
{title: '出库', minWidth: 200, toolbar: '#currentTableBarForOut', align: "center"}, {title: '出库', minWidth: 200, toolbar: '#currentTableBarForOut', align: "center"},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"}, {title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"},
@ -233,13 +235,21 @@
if (obj.event === 'detail') { if (obj.event === 'detail') {
var index = layer.open({ var index = layer.open({
title: '套餐详情', title: '组合详情',
type: 2, type: 2,
shade: 0.2, shade: 0.2,
maxmin: true, maxmin: true,
shadeClose: true, shadeClose: true,
area: ['100%', '100%'], area: ['100%', '100%'],
content: '/group_edit?id='+data.id, content: '/group_edit?id='+data.id,
end:function () {
table.reload('currentTableId', {
url: '/group/findAllGroup',
page: {
curr: 1
},
}, 'data');
}
}); });
$(window).on("resize", function () { $(window).on("resize", function () {
layer.full(index); layer.full(index);
@ -312,18 +322,31 @@
}) })
} }
else if (obj.event === 'applicationOut'){ else if (obj.event === 'applicationOut'){
alert(1) let gid = data.id;
var index1 = layer.open({
title: '组合出库',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/applicationOutForGroup?gid='+gid+'&type=one',
});
$(window).on("resize", function () {
layer.full(index1);
});
} }
}); });
//用于查看并修改套餐中的物料信息 //用于查看并修改组合中的物料信息
checkSeeGroup = function (obj) { checkSeeGroup = function (obj) {
let gid = obj.id; let gid = obj.id;
let mid = obj.value; let mid = obj.value;
layer.open({ layer.open({
type: 2, type: 2,
title: "套餐明细", title: "组合明细",
skin: 'layui-layer-rim', skin: 'layui-layer-rim',
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
@ -383,7 +406,7 @@
if (obj.event === 'add') { // 监听添加操作 if (obj.event === 'add') { // 监听添加操作
layer.open({ layer.open({
type: 2, type: 2,
title: "创建套餐", title: "创建组合",
skin: 'layui-layer-rim', skin: 'layui-layer-rim',
maxmin: true, maxmin: true,
shadeClose: true, //点击遮罩关闭层 shadeClose: true, //点击遮罩关闭层
@ -445,6 +468,72 @@
return false; return false;
} }
} }
else if(obj.event === 'applicationOutAdd'){
// 如果点击的是添加出库记录
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.gids = [];
for (i = 0, len = data.length; i < len; i++) {
req.gids[i] = data[i].id;
}
if (req.gids.length > 0) {
$.ajax({
url: "/group/addApplicationToRedis",
type: "post",
data: JSON.stringify(req),
dataType: "json",
contentType: "application/json;charset=utf-8",
success: function (data) {
if (data.status === 201) {
layer.msg("添加成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
//执行搜索重载
table.reload('currentTableId', {
url: '/group/findAllGroup',
page: {
curr: 1
},
}, 'data');
});
} else {
layer.msg("添加失败,请重试", {
icon: 2,
time: 200,
}, function () {
//执行搜索重载
table.reload('currentTableId', {
url: '/group/findAllGroup',
page: {
curr: 1
},
}, 'data');
})
}
}
})
}else{
layer.msg("未选中记录,请确认!");
return false;
}
}else if(obj.event === 'dispose'){
// 如果点击的是处理
var index = layer.open({
title: '处理',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['100%', '100%'],
content: '/application_group_multi'
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
}
}) })
}) })

51
src/main/resources/templates/pages/group/group_edit.html

@ -16,6 +16,7 @@
<script id="toolbarDemo" type="text/html"> <script id="toolbarDemo" type="text/html">
<div class="layui-btn-container"> <div class="layui-btn-container">
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add">添加</button> <button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add">添加</button>
<button class="layui-btn layui-btn-danger layui-btn-sm data-delet-btn" lay-event="delete">删除</button>
</div> </div>
</script> </script>
<table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table> <table class="layui-hide" id="currentTableId" lay-filter="currentTableFilter"></table>
@ -183,7 +184,55 @@
} }
}); });
} }
}) else if(obj.event === 'delete'){
var checkStatus = table.checkStatus('currentTableId')
, data = checkStatus.data;
var req = {};
req.ids = [];
for (i = 0, len = data.length; i < len; i++) {
req.ids[i] = data[i].id;
}
if(req.ids.length > 0){
layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) {
$.ajax({
url:"/group/delMaterialForGroup",
type:"post",
dataType:"json",
data:JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("删除成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
});
//执行搜索重载
table.reload('currentTableId', {
url: '/group/findGroupInfo',
page: {
curr: 1
},
where:{
gid:id
}
}, 'data');
return false;
}
}
})
});
}else{
layer.msg("未选中记录,请确认!");
return false;
}
}
});
}) })

2
src/main/resources/templates/pages/group/group_material_edit.html

@ -14,7 +14,7 @@
<input type="text" id="id" name="id" th:value="${record.getId()}" style="display:none;"> <input type="text" id="id" name="id" th:value="${record.getId()}" style="display:none;">
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐编码</label> <label class="layui-form-label">组合编码</label>
<div class="layui-input-inline"> <div class="layui-input-inline">
<input type="text" th:value="${record.getGcode()}" name="gcode" required lay-verify="required" readonly <input type="text" th:value="${record.getGcode()}" name="gcode" required lay-verify="required" readonly
autocomplete="off" class="layui-input"> autocomplete="off" class="layui-input">

4
src/main/resources/templates/pages/group/selectGroup.html

@ -40,10 +40,10 @@
// 获取对应元素 // 获取对应元素
var pid = Number(windowParent.id.split("cardItemForGroup")[1]); var pid = Number(windowParent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的套餐名称等 // 获取当前卡片中的组合名称等
let gnameParent = windowParent.childNodes[5].childNodes[3]; let gnameParent = windowParent.childNodes[5].childNodes[3];
// 套餐编码 // 组合编码
let gcodeItem = windowParent.childNodes[7].childNodes[3].childNodes[1].childNodes[1]; let gcodeItem = windowParent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];

20
src/test/java/com/dreamchaser/depository_manage/TestForGroupTree.java

@ -32,7 +32,7 @@ public class TestForGroupTree {
/** /**
* 用于构造套餐 * 用于构造组合
* @param gname * @param gname
* @return * @return
*/ */
@ -40,7 +40,7 @@ public class TestForGroupTree {
// 定义结果集 // 定义结果集
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
// 获取所有使用中的套餐 // 获取所有使用中的组合
List<Group> allGroupOnly = groupMapper.findAllGroupOnly(gname); List<Group> allGroupOnly = groupMapper.findAllGroupOnly(gname);
// 获取当前总数 // 获取当前总数
@ -63,7 +63,7 @@ public class TestForGroupTree {
CompletionService<Object> completionService = new ExecutorCompletionService<Object>(exs); CompletionService<Object> completionService = new ExecutorCompletionService<Object>(exs);
// 定义套餐id列表 // 定义组合id列表
List<Integer> groupIdList = new ArrayList<>(); List<Integer> groupIdList = new ArrayList<>();
@ -102,7 +102,7 @@ public class TestForGroupTree {
// 用于执行线程任务 // 用于执行线程任务
class Task implements Callable<Object> { class Task implements Callable<Object> {
// 套餐id列表 // 组合id列表
List<Integer> groupIdList; List<Integer> groupIdList;
@ -113,7 +113,7 @@ public class TestForGroupTree {
@Override @Override
public Object call() throws Exception { public Object call() throws Exception {
/** /**
* 获取当前套餐id对应的套餐 * 获取当前组合id对应的组合
*/ */
List<Group> groupByGids = groupMapper.findGroupByGids(groupIdList); List<Group> groupByGids = groupMapper.findGroupByGids(groupIdList);
@ -130,7 +130,7 @@ public class TestForGroupTree {
List<Object> list = new ArrayList<>(); List<Object> list = new ArrayList<>();
for (int i = 0; i < groupByGids.size(); i++) { for (int i = 0; i < groupByGids.size(); i++) {
// 获取套餐具体信息 // 获取组合具体信息
Group group = groupByGids.get(i); Group group = groupByGids.get(i);
// 开启线程 // 开启线程
Future<Object> submit = completionService.submit(new TaskForGroupInfo(group)); Future<Object> submit = completionService.submit(new TaskForGroupInfo(group));
@ -160,10 +160,10 @@ public class TestForGroupTree {
@Override @Override
public Object call() throws Exception public Object call() throws Exception
{ {
// 用于获取当前套餐的具体信息 // 用于获取当前组合的具体信息
Map<String,Object> paramForGroup = new HashMap<>(); Map<String,Object> paramForGroup = new HashMap<>();
paramForGroup.put("gid",group.getId()); paramForGroup.put("gid",group.getId());
// 获取当前套餐的具体信息 // 获取当前组合的具体信息
List<GroupInfo> groupByCondition = groupMapper.findGroupByCondition(paramForGroup); List<GroupInfo> groupByCondition = groupMapper.findGroupByCondition(paramForGroup);
// 定义子类结果集 // 定义子类结果集
List<Object> resultForChildren = new ArrayList<>(); List<Object> resultForChildren = new ArrayList<>();
@ -180,7 +180,7 @@ public class TestForGroupTree {
/** /**
* 构造树形组件数据模板 * 构造树形组件数据模板
* @param g 套餐 * @param g 组合
* @param children 子类 * @param children 子类
* @return * @return
*/ */
@ -199,7 +199,7 @@ public class TestForGroupTree {
/** /**
* 构造树形组件的子组件模板 * 构造树形组件的子组件模板
* @param g 套餐详细信息 * @param g 组合详细信息
* @return * @return
*/ */
public Map<String, Object> InitTreeMenus(GroupInfo g) { public Map<String, Object> InitTreeMenus(GroupInfo g) {

82
target/classes/templates/pages/application/application-out.html

@ -52,7 +52,7 @@
<div class="layui-tab"> <div class="layui-tab">
<ul class="layui-tab-title" style="text-align: center"> <ul class="layui-tab-title" style="text-align: center">
<li class="layui-this">物料出库</li> <li class="layui-this">物料出库</li>
<li class="layui-this">套餐出库</li> <li class="layui-this">组合出库</li>
</ul> </ul>
<div class="layui-tab-content"> <div class="layui-tab-content">
<!-- 普通物料出库申请--> <!-- 普通物料出库申请-->
@ -172,10 +172,10 @@
<i class="layui-icon layui-icon-subtraction" style="display: inline" <i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i> onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐名称:</label> <label class="layui-form-label">组合名称:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input type="text" placeholder="请选择套餐" class="layui-input" <input type="text" placeholder="请选择组合" class="layui-input"
style="border-style: none" style="border-style: none"
id="openGroupList" onblur="selectGroupByName(this)" id="openGroupList" onblur="selectGroupByName(this)"
lay-verify="required"/> lay-verify="required"/>
@ -188,11 +188,11 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐编码:</label> <label class="layui-form-label">组合编码:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input id="gcode" name="code" type="text" <input id="gcode" name="code" type="text"
placeholder="请填写入套餐编码" placeholder="请填写入组合编码"
value="" value=""
onblur="selectCodeForGroup(this)" onblur="selectCodeForGroup(this)"
class="layui-input" lay-verify="required" class="layui-input" lay-verify="required"
@ -203,10 +203,10 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐数量:</label> <label class="layui-form-label">组合数量:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="number" name="quantity" class="layui-input" id="quantityForGroup" onblur="groupQuantityIsTrue(this)" <input type="number" name="quantity" class="layui-input" id="quantityForGroup" onblur="groupQuantityIsTrue(this)"
required lay-verify="number" placeholder="请填写套餐数量"/> required lay-verify="number" placeholder="请填写组合数量"/>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -270,11 +270,11 @@
function deleteItem(obj) { function deleteItem(obj) {
} }
// 用于添加标签(用于套餐 // 用于添加标签(用于组合
function addItemForGroup(obj) { function addItemForGroup(obj) {
} }
// 用于删除标签(用于套餐 // 用于删除标签(用于组合
function deleteItemForGroup(obj) { function deleteItemForGroup(obj) {
} }
@ -282,7 +282,7 @@
function selectCode(obj) { function selectCode(obj) {
} }
// 用于编码查询(用于套餐) // 用于编码查询(用于组合)
function selectCodeForGroup(obj) { function selectCodeForGroup(obj) {
} }
@ -290,7 +290,7 @@
function selectMaterial(obj) { function selectMaterial(obj) {
} }
// 用于点击搜索按钮(套餐 // 用于点击搜索按钮(组合
function selectGroup(obj) { function selectGroup(obj) {
} }
@ -300,7 +300,7 @@
} }
// 用于套餐名称查询 // 用于组合名称查询
function selectGroupByName() { function selectGroupByName() {
} }
@ -310,7 +310,7 @@
} }
// 用于判断当前套餐数量是否合适 // 用于判断当前组合数量是否合适
function groupQuantityIsTrue() { function groupQuantityIsTrue() {
} }
@ -318,7 +318,7 @@
function scanBarCode() { function scanBarCode() {
} }
// 用于重新渲染页面(套餐) // 用于重新渲染页面(组合)
function CoverpageForGroup() { function CoverpageForGroup() {
} }
@ -330,7 +330,7 @@
// 用于暂存卡片个数 // 用于暂存卡片个数
var params = []; var params = [];
// 用于暂存卡片个数(套餐) // 用于暂存卡片个数(组合)
var params2 = []; var params2 = [];
// 用于卡片编号 // 用于卡片编号
var NewIdNumber = 1; var NewIdNumber = 1;
@ -424,7 +424,7 @@
return false; return false;
}); });
// 提交(套餐出库) // 提交(组合出库)
form.on('submit(formStep2)', function (data) { form.on('submit(formStep2)', function (data) {
data = data.field; data = data.field;
data.params = params2; data.params = params2;
@ -562,7 +562,7 @@
$("#" + parentId).after(materialItem); $("#" + parentId).after(materialItem);
}; };
// 实现卡片添加(套餐) // 实现卡片添加(组合)
addItemForGroup = function (obj) { addItemForGroup = function (obj) {
var parentId = obj.parentNode.id; var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1; NewIdNumber = NewIdNumber + 1;
@ -572,10 +572,10 @@
<i class="layui-icon layui-icon-subtraction" style="display: inline" <i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i> onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐名称:</label> <label class="layui-form-label">组合名称:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input type="text" placeholder="请选择套餐" class="layui-input" <input type="text" placeholder="请选择组合" class="layui-input"
style="border-style: none" style="border-style: none"
id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)" id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)"
lay-verify="required"/> lay-verify="required"/>
@ -588,10 +588,10 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐编码:</label> <label class="layui-form-label">组合编码:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<div class="inputdiv"> <div class="inputdiv">
<input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入套餐编码" value="" <input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入组合编码" value=""
onblur="selectCodeForGroup(this)" onblur="selectCodeForGroup(this)"
class="layui-input" lay-verify="required" class="layui-input" lay-verify="required"
style="border-style: none"> style="border-style: none">
@ -601,10 +601,10 @@
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layui-form-label">套餐数量:</label> <label class="layui-form-label">组合数量:</label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+` <input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+`
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写套餐数量"/> required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写组合数量"/>
</div> </div>
</div> </div>
<div class="layui-form-item"> <div class="layui-form-item">
@ -626,7 +626,7 @@
$("#" + parentId).after(materialItem); $("#" + parentId).after(materialItem);
}; };
// 用于重新渲染页面(套餐 // 用于重新渲染页面(组合
CoverpageForGroup = function (num, obj) { CoverpageForGroup = function (num, obj) {
// 获取待添加父类 // 获取待添加父类
NewIdNumber = num; NewIdNumber = num;
@ -687,7 +687,7 @@
// 获取当前高度 // 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]); var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
if (NewIdNumber !== "") { if (NewIdNumber !== "") {
params.push(NewIdNumber) params2.push(NewIdNumber)
} }
$("#stepForm2").css("height", height + 183 + 'px'); $("#stepForm2").css("height", height + 183 + 'px');
$("#" + "addItemForGroup" + NewIdNumber).before(materialItem); $("#" + "addItemForGroup" + NewIdNumber).before(materialItem);
@ -708,7 +708,7 @@
reparent.removeChild(parent); reparent.removeChild(parent);
}; };
// 实现卡片删除(套餐 // 实现卡片删除(组合
deleteItemForGroup = function (obj) { deleteItemForGroup = function (obj) {
// 获取父节点 // 获取父节点
var parent = obj.parentNode; var parent = obj.parentNode;
@ -718,7 +718,7 @@
var reparent = parent.parentNode; var reparent = parent.parentNode;
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]); var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
$("#stepForm2").css("height", height - 289 + 'px'); $("#stepForm2").css("height", height - 289 + 'px');
params2 = remove(params, parentId); params2 = remove(params2, parentId);
reparent.removeChild(parent); reparent.removeChild(parent);
}; };
@ -805,7 +805,7 @@
}); });
}; };
// 用于实现通过编码查询套餐 // 用于实现通过编码查询组合
selectCodeForGroup = function (obj) { selectCodeForGroup = function (obj) {
// 输入code // 输入code
var code = obj.value; var code = obj.value;
@ -813,7 +813,7 @@
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
var pid = Number(parent.id.split("cardItemForGroup")[1]); var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的套餐名称等 // 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3]; let gnameParent = parent.childNodes[5].childNodes[3];
// gid // gid
@ -952,7 +952,7 @@
}); });
}; };
// 用于实现点击搜索按钮(套餐 // 用于实现点击搜索按钮(组合
selectGroup = function(obj){ selectGroup = function(obj){
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id; var parentId = parent.id;
@ -960,10 +960,10 @@
// 获取对应元素 // 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]); var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的套餐名称等 // 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3]; let gnameParent = parent.childNodes[5].childNodes[3];
// 套餐编码 // 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1]; let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
@ -1043,17 +1043,17 @@
}) })
}; };
// 用于实现套餐名称搜索 // 用于实现组合名称搜索
selectGroupByName = function(obj){ selectGroupByName = function(obj){
let gname = obj.value; let gname = obj.value;
var parent = obj.parentNode.parentNode.parentNode.parentNode; var parent = obj.parentNode.parentNode.parentNode.parentNode;
// 获取对应元素 // 获取对应元素
var pid = Number(parent.id.split("cardItemForGroup")[1]); var pid = Number(parent.id.split("cardItemForGroup")[1]);
// 获取当前卡片中的套餐名称等 // 获取当前卡片中的组合名称等
let gnameParent = parent.childNodes[5].childNodes[3]; let gnameParent = parent.childNodes[5].childNodes[3];
// 套餐编码 // 组合编码
let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1]; let gcodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes[1];
@ -1073,7 +1073,7 @@
contentType: "application/json;charset=utf-8", contentType: "application/json;charset=utf-8",
success: function (d) { success: function (d) {
if(d.count === -1){ if(d.count === -1){
// 如果当前套餐名称的数量不止一个 // 如果当前组合名称的数量不止一个
layer.msg("请点击右侧搜索确定物品", { layer.msg("请点击右侧搜索确定物品", {
icon: 0, icon: 0,
time: 1500 time: 1500
@ -1089,8 +1089,8 @@
} }
}); });
}else if(d.count === 0){ }else if(d.count === 0){
// 如果当前套餐名称不存在 // 如果当前组合名称不存在
layer.msg("没有该套餐,请确认输入是否正确", { layer.msg("没有该组合,请确认输入是否正确", {
icon: 0, icon: 0,
time: 1500 time: 1500
},function () { },function () {
@ -1353,12 +1353,12 @@
} }
}; };
//用于判断当前套餐数量是否合适 //用于判断当前组合数量是否合适
groupQuantityIsTrue = function (obj) { groupQuantityIsTrue = function (obj) {
var id = obj.id.split("quantityForGroup")[1]; var id = obj.id.split("quantityForGroup")[1];
var gid = $("#gid" + id).val(); // 获取到当前输入的物料编码 var gid = $("#gid" + id).val(); // 获取到当前输入的物料编码
if (gid === "" || gid === undefined || gid === null) { if (gid === "" || gid === undefined || gid === null) {
layer.msg("请输入正确的套餐!", {icon: 0, time: 500}, function () { layer.msg("请输入正确的组合!", {icon: 0, time: 500}, function () {
$("#quantityForGroup" + id).val("") $("#quantityForGroup" + id).val("")
}); });
} else { } else {
@ -1377,7 +1377,7 @@
var flag = res.data; var flag = res.data;
if (!flag) { // 如果当前数目不合适 if (!flag) { // 如果当前数目不合适
layer.msg("当前套餐中有物料库存数量不足", {icon: 0, time: 500}, function () { layer.msg("当前组合中有物料库存数量不足", {icon: 0, time: 500}, function () {
$("#quantityForGroup" + id).val(""); $("#quantityForGroup" + id).val("");
}); });

36
target/classes/templates/pages/application/application_multi.html

@ -190,10 +190,25 @@
success: function (d) { success: function (d) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (d.status >= 300) { if (d.status >= 300) {
layer.msg(d.statusInfo.message);//失败的表情 layer.msg(d.statusInfo.detail,{
icon:0,
time:1000
},function () {
obj.update({quantity:1})
});//失败的表情
return; return;
}else if(d.status === 1234){ }else if(d.status === 1234){
layer.msg(d.data) layer.msg(d.data,{
icon:0,
time:1000
},function () {
table.reload('currentTableId', {
url: '/depositoryRecord/applicant_multi_create',
page: {
curr: 1
},
});
});
return return
} }
else { else {
@ -201,9 +216,14 @@
icon: 6,//成功的表情 icon: 6,//成功的表情
time: 1000 time: 1000
}, //1秒关闭(如果不配置,默认是3秒) }, //1秒关闭(如果不配置,默认是3秒)
function(){ function() {
//do something //do something
window.location="/application_multi" table.reload('currentTableId', {
url: '/depositoryRecord/applicant_multi_create',
page: {
curr: 1
},
});
}); });
} }
} }
@ -257,8 +277,12 @@
success: function (d) { success: function (d) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (d.status >= 300) { if (d.status >= 300) {
layer.msg(d.statusInfo.message);//失败的表情 layer.msg(d.statusInfo.detail,{
return; icon:0,
time:1000
},function () {
obj.update({quantity:1});
});//失败的表情
} else { } else {
layer.msg("申请成功!", { layer.msg("申请成功!", {
icon: 6,//成功的表情 icon: 6,//成功的表情

Loading…
Cancel
Save