Browse Source

实现套餐出库功能

lwx_dev
erdanergou 3 years ago
parent
commit
ae3f73c8bd
  1. 73
      src/main/java/com/dreamchaser/depository_manage/controller/GroupController.java
  2. 13
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  3. 197
      src/main/java/com/dreamchaser/depository_manage/service/impl/GroupServiceImpl.java
  4. 11
      src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java
  5. 4
      src/main/resources/templates/pages/application/application-out.html
  6. 831
      src/main/resources/templates/pages/application/application-out_black2.html
  7. 285
      src/main/resources/templates/pages/group/applicationOutForGroup.html
  8. 9
      src/main/resources/templates/pages/group/group-out.html
  9. 4
      src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html
  10. 2
      src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial.html
  11. 15
      src/test/java/com/dreamchaser/depository_manage/TestForOther.java
  12. 4
      target/classes/templates/pages/application/application-out.html
  13. 4
      target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html
  14. 2
      target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial.html

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

@ -396,45 +396,47 @@ public class GroupController {
departMentHeadQyWxName.append("PangFuZhen").append(","); departMentHeadQyWxName.append("PangFuZhen").append(",");
map.put("departmenthead", departmentHeadId.toString()); map.put("departmenthead", departmentHeadId.toString());
// 获取当前提交数 // 获取当前提交数
List<Integer> params = (List<Integer>) map.get("params"); List<String> params = (List<String>) map.get("params");
// 执行结果 // 执行结果
Integer integer = 0; Integer integer = 0;
// 实际结果 // 实际结果
Integer result = 0; Integer result = 0;
Integer gid = ObjectFormatUtil.toInteger(map.get("gid")); Integer gid = ObjectFormatUtil.toInteger(map.get("gid"));
List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(gid); List<GroupInfo> groupInfoByGid = groupService.findGroupInfoByGid(gid);
if(groupInfoByGid != null) { if (groupInfoByGid != null) {
result = groupInfoByGid.size(); result += groupInfoByGid.size();
} }
if (params.size() < 1 && map.size() > 3) { for (String param : params) {
try { gid = ObjectFormatUtil.toInteger(map.get("gid" + param));
integer += groupService.insertApplicationOutRecord(map, userToken); // 插入主订单 groupInfoByGid = groupService.findGroupInfoByGid(gid);
} catch (Exception e) { if (groupInfoByGid != null) {
return new RestResponse("", 666, new StatusInfo("出库失败", e.getMessage())); result += groupInfoByGid.size();
} }
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();
} else {
} }
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();
if (integer != 0 && params.size() < 1) { if (integer != 0 && params.size() < 1) {
return CrudUtil.postHandle(integer, result); return CrudUtil.postHandle(integer, result);
} else if (integer != 0 && params.size() > 1) { } else if (integer != 0 && params.size() >= 1) {
return CrudUtil.postHandle(integer, result); return CrudUtil.postHandle(integer, result);
} else { } else {
return new RestResponse("", 666, new StatusInfo("出库失败", "请联系管理员进行操作")); return new RestResponse("", 666, new StatusInfo("出库失败", "请联系管理员进行操作"));
@ -445,13 +447,14 @@ public class GroupController {
/** /**
* 用于判断当前套餐的数量是否合法 * 用于判断当前套餐的数量是否合法
* @param map 套餐相关信息 *
* @param map 套餐相关信息
* @param request * @param request
* @return * @return
*/ */
@PostMapping("/groupQuantityIsTrue") @PostMapping("/groupQuantityIsTrue")
public RestResponse groupQuantityIsTrue(@RequestBody Map<String,Object> map,HttpServletRequest request){ public RestResponse groupQuantityIsTrue(@RequestBody Map<String, Object> map, HttpServletRequest request) {
if(map.containsKey("gid")){ if (map.containsKey("gid")) {
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());
@ -466,25 +469,25 @@ public class GroupController {
// 获取具体信息 // 获取具体信息
GroupInfo groupInfo = groupInfoByGid.get(i); GroupInfo groupInfo = groupInfoByGid.get(i);
// 获取本次要出库的实际的数量 // 获取本次要出库的实际的数量
Integer totalQuantity = groupInfo.getQuantity() * quantity; Integer totalQuantity = groupInfo.getQuantity() * quantity;
// 用于标志是否可以满足库存要求 // 用于标志是否可以满足库存要求
boolean flagForInventory = false; boolean flagForInventory = false;
// 获取该物料在各仓库的库存 // 获取该物料在各仓库的库存
List<Integer> inventoryByMidAndDepository = materialService.findInventoryByMidAndDepository(groupInfo.getMid(), depositoryByAdminorg); List<Integer> inventoryByMidAndDepository = materialService.findInventoryByMidAndDepository(groupInfo.getMid(), depositoryByAdminorg);
for (int j = 0; j < inventoryByMidAndDepository.size(); j++) { for (int j = 0; j < inventoryByMidAndDepository.size(); j++) {
Integer integer = inventoryByMidAndDepository.get(j); Integer integer = inventoryByMidAndDepository.get(j);
if(integer > totalQuantity){ if (integer >= totalQuantity) {
flagForInventory = true; flagForInventory = true;
break; break;
} }
} }
if(!flagForInventory){ if (!flagForInventory) {
// 如果概述了不合法 // 如果概述了不合法
flag = false; flag = false;
} }
} }
return new RestResponse(flag); return new RestResponse(flag);
}else{ } else {
throw new MyException("缺少必要参数"); throw new MyException("缺少必要参数");
} }
} }

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

@ -1393,6 +1393,19 @@ public class PageController {
} }
@GetMapping("/applicationOutForGroup")
public ModelAndView applicationOutForGroup(Integer gid,String type){
ModelAndView mv = new ModelAndView();
mv.addObject("type",type);
if("one".equals(type)) {
mv.addObject("gid",gid);
}else if("more".equals(type)){
}
mv.setViewName("pages/group/applicationOutForGroup");
return mv;
}
@GetMapping("/StockTakingReview") @GetMapping("/StockTakingReview")
public ModelAndView StockTakingReview(Integer id, HttpServletRequest request) { public ModelAndView StockTakingReview(Integer id, HttpServletRequest request) {
ModelAndView mv = new ModelAndView(); ModelAndView mv = new ModelAndView();

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

@ -46,6 +46,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 用于查找所有套餐 * 用于查找所有套餐
*
* @return * @return
*/ */
@Override @Override
@ -55,6 +56,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据套餐id查询对应套餐 * 根据套餐id查询对应套餐
*
* @param id 套餐id * @param id 套餐id
* @return * @return
*/ */
@ -65,6 +67,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据条件查询对应套餐 * 根据条件查询对应套餐
*
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
@ -77,6 +80,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据条件查询对应套餐(按group分组) * 根据条件查询对应套餐(按group分组)
*
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
@ -86,14 +90,14 @@ public class GroupServiceImpl implements GroupService {
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);
@ -105,7 +109,7 @@ public class GroupServiceImpl implements GroupService {
Integer quantity = 0; Integer quantity = 0;
// 用于存储物料名称与物料id // 用于存储物料名称与物料id
Map<String,Integer> materialSimple = new HashMap<>(); Map<String, Integer> materialSimple = new HashMap<>();
for (GroupInfo groupInfo : groupByCondition) { for (GroupInfo groupInfo : groupByCondition) {
materialSimple.put(groupInfo.getMname(), groupInfo.getMid()); materialSimple.put(groupInfo.getMname(), groupInfo.getMid());
quantity += groupInfo.getQuantity(); quantity += groupInfo.getQuantity();
@ -116,8 +120,10 @@ public class GroupServiceImpl implements GroupService {
} }
return list; return list;
} }
/** /**
* 获取当前套餐数量 * 获取当前套餐数量
*
* @return * @return
*/ */
@Override @Override
@ -127,13 +133,14 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据条件查询对应套餐数目 * 根据条件查询对应套餐数目
*
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
@Override @Override
public Integer findGroupCountByCondition(Map<String, Object> map) { public Integer findGroupCountByCondition(Map<String, Object> map) {
Integer count = groupMapper.findGroupCountByCondition(map); Integer count = groupMapper.findGroupCountByCondition(map);
if(count == null){ if (count == null) {
count = 0; count = 0;
} }
return count; return count;
@ -141,25 +148,26 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 添加一条套餐 * 添加一条套餐
*
* @param map 具体数据 * @param map 具体数据
* @return * @return
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public Integer addGroup(Map<String, Object> map) { public Integer addGroup(Map<String, Object> map) {
Map<String,Object> insertForGroup = new HashMap<>(); Map<String, Object> insertForGroup = new HashMap<>();
// 设置当前时间 // 设置当前时间
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);
// 插入到数据库 // 插入到数据库
groupMapper.addGroup(insertForGroup); groupMapper.addGroup(insertForGroup);
@ -174,9 +182,9 @@ public class GroupServiceImpl implements GroupService {
// 用于添加套餐中的物料信息 // 用于添加套餐中的物料信息
Map<String,Object> materialForGroupMap = new HashMap<>(); Map<String, Object> materialForGroupMap = new HashMap<>();
materialForGroupMap.put("gid",gid); materialForGroupMap.put("gid", gid);
Integer result = 0; Integer result = 0;
for (int i = 0; i < mids.size(); i++) { for (int i = 0; i < mids.size(); i++) {
@ -185,11 +193,11 @@ public class GroupServiceImpl implements GroupService {
// 获取套餐中当前物料对应的数量 // 获取套餐中当前物料对应的数量
Object quantity = quantitys.get(i); Object quantity = quantitys.get(i);
materialForGroupMap.put("mid",mid); materialForGroupMap.put("mid", mid);
materialForGroupMap.put("quantity",quantity); materialForGroupMap.put("quantity", quantity);
// 添加 // 添加
result += groupMapper.addGroupForMaterial(materialForGroupMap); result += groupMapper.addGroupForMaterial(materialForGroupMap);
} }
return result; return result;
@ -197,6 +205,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 通过编码获取对应的套餐 * 通过编码获取对应的套餐
*
* @param code 套餐编码 * @param code 套餐编码
* @return * @return
*/ */
@ -208,6 +217,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 给套餐添加物料信息 * 给套餐添加物料信息
*
* @param map 待添加信息 * @param map 待添加信息
* @return * @return
*/ */
@ -223,9 +233,9 @@ public class GroupServiceImpl implements GroupService {
// 用于添加套餐中的物料信息 // 用于添加套餐中的物料信息
Map<String,Object> materialForGroupMap = new HashMap<>(); Map<String, Object> materialForGroupMap = new HashMap<>();
materialForGroupMap.put("gid",gid); materialForGroupMap.put("gid", gid);
Integer result = 0; Integer result = 0;
for (int i = 0; i < mids.size(); i++) { for (int i = 0; i < mids.size(); i++) {
@ -234,8 +244,8 @@ public class GroupServiceImpl implements GroupService {
// 获取套餐中当前物料对应的数量 // 获取套餐中当前物料对应的数量
Object quantity = quantitys.get(i); Object quantity = quantitys.get(i);
materialForGroupMap.put("mid",mid); materialForGroupMap.put("mid", mid);
materialForGroupMap.put("quantity",quantity); materialForGroupMap.put("quantity", quantity);
// 添加 // 添加
result += groupMapper.addGroupForMaterial(materialForGroupMap); result += groupMapper.addGroupForMaterial(materialForGroupMap);
@ -246,6 +256,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 添加一条套餐 * 添加一条套餐
*
* @param groupInfo 具体数据 * @param groupInfo 具体数据
* @return * @return
*/ */
@ -257,6 +268,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据主键删除一条套餐记录 * 根据主键删除一条套餐记录
*
* @param id 待删除套餐主键 * @param id 待删除套餐主键
* @return * @return
*/ */
@ -264,8 +276,8 @@ public class GroupServiceImpl implements GroupService {
@Override @Override
public Integer delGroupById(Integer id) { public Integer delGroupById(Integer id) {
Map<String,Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("gid",id); param.put("gid", id);
List<GroupInfo> groupByCondition = groupMapper.findGroupByCondition(param); List<GroupInfo> groupByCondition = groupMapper.findGroupByCondition(param);
List<Integer> ids = new ArrayList<>(); List<Integer> ids = new ArrayList<>();
@ -280,6 +292,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据主键批量删除套餐记录 * 根据主键批量删除套餐记录
*
* @param ids 主键列表 * @param ids 主键列表
* @return * @return
*/ */
@ -290,6 +303,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 修改套餐中对应物料信息 * 修改套餐中对应物料信息
*
* @param map 修改数据及条件 * @param map 修改数据及条件
* @return * @return
*/ */
@ -299,10 +313,10 @@ public class GroupServiceImpl implements GroupService {
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"));
if(Integer.compare(0,quantity) == 0){ if (Integer.compare(0, quantity) == 0) {
// 如果要修改的数量为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);
@ -313,17 +327,18 @@ 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) {
Map<String,Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("mid",mid); map.put("mid", mid);
map.put("gid",gid); map.put("gid", gid);
List<GroupInfo> groupByCondition = groupMapper.findGroupByCondition(map); List<GroupInfo> groupByCondition = groupMapper.findGroupByCondition(map);
if(groupByCondition.size() > 0){ if (groupByCondition.size() > 0) {
return groupByCondition.get(0); return groupByCondition.get(0);
} }
return null; return null;
@ -331,6 +346,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据主键删除一条套餐中的物料明细 * 根据主键删除一条套餐中的物料明细
*
* @param id 待删除主键 * @param id 待删除主键
* @return * @return
*/ */
@ -341,6 +357,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据主键批量删除套餐中的物料明细 * 根据主键批量删除套餐中的物料明细
*
* @param ids 待删除主键 * @param ids 待删除主键
* @return * @return
*/ */
@ -351,6 +368,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据条件修改套餐信息 * 根据条件修改套餐信息
*
* @param map 修改条件 * @param map 修改条件
* @return * @return
*/ */
@ -361,8 +379,8 @@ public class GroupServiceImpl implements GroupService {
// 根据主键获取对应套餐 // 根据主键获取对应套餐
Group group = groupMapper.findGroupOnlyById(id); Group group = groupMapper.findGroupOnlyById(id);
Integer state = 2; Integer state = 2;
if(map.containsKey("state")){ if (map.containsKey("state")) {
state = ObjectFormatUtil.toInteger(map.get("state")); state = ObjectFormatUtil.toInteger(map.get("state"));
} }
group.setState(state); group.setState(state);
return groupMapper.updateGroupOnly(group); return groupMapper.updateGroupOnly(group);
@ -371,6 +389,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据条件修改套餐信息 * 根据条件修改套餐信息
*
* @param map 修改条件 * @param map 修改条件
* @return * @return
*/ */
@ -381,6 +400,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 根据条件获取套餐 * 根据条件获取套餐
*
* @param map 查询条件 * @param map 查询条件
* @return * @return
*/ */
@ -392,6 +412,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 用于构造套餐树 * 用于构造套餐树
*
* @param gname * @param gname
* @return * @return
*/ */
@ -455,13 +476,14 @@ public class GroupServiceImpl implements GroupService {
} }
list.addAll((Collection<?>) result); list.addAll((Collection<?>) result);
} }
return list; return list;
} }
/** /**
* 插入一条出库记录 * 插入一条出库记录
* @param map 具体数据 *
* @param map 具体数据
* @param userToken 出库申请人 * @param userToken 出库申请人
* @return * @return
*/ */
@ -469,13 +491,20 @@ public class GroupServiceImpl implements GroupService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Integer insertApplicationOutRecord(Map<String, Object> map, UserByPort userToken) { public Integer insertApplicationOutRecord(Map<String, Object> map, UserByPort userToken) {
// 用于存储出库数据 // 用于存储出库数据
Map<String,Object> paramForOut = new HashMap<>(); Map<String, Object> paramForOut = new HashMap<>();
paramForOut.put("departmenthead",map.get("departmenthead")); paramForOut.put("departmenthead", map.get("departmenthead"));
paramForOut.put("applicantId",userToken.getId()); paramForOut.put("applicantId", userToken.getId());
// 获取当前提交数
List<String> params = (List<String>) map.get("params");
// 用于存储申请数
Integer result = 0;
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);
// 用于统计出库物料总数 // 用于统计出库物料总数
@ -492,28 +521,73 @@ public class GroupServiceImpl implements GroupService {
quantityForTotal += quantityForGroup * groupInfo.getQuantity(); quantityForTotal += quantityForGroup * groupInfo.getQuantity();
priceForTotal += inventory.get(0).getPrice() * 100 * quantityForGroup; priceForTotal += inventory.get(0).getPrice() * 100 * quantityForGroup;
} }
paramForOut.put("quantity",quantityForTotal); paramForOut.put("quantity", quantityForTotal);
paramForOut.put("price",priceForTotal); paramForOut.put("price", priceForTotal);
paramForOut.put("applicantTime",System.currentTimeMillis()); paramForOut.put("applicantTime", System.currentTimeMillis());
paramForOut.put("istransfer", 2); paramForOut.put("istransfer", 2);
paramForOut.put("state", "待部门负责人审核"); paramForOut.put("state", "待部门负责人审核");
paramForOut.put("applyRemark", map.get("applyRemark")); paramForOut.put("applyRemark", map.get("applyRemark"));
Administration company = LinkInterfaceUtil.getCompany(userToken.getMaindeparment(), userToken); Administration company = LinkInterfaceUtil.getCompany(userToken.getMaindeparment(), userToken);
// 构造出库订单编码 // 构造出库订单编码
String code = createOutCode( "outOrderNumber", company.getName()); String code = createOutCode("outOrderNumber", company.getName());
paramForOut.put("code", code); paramForOut.put("code", code);
paramForOut.put("pass", 3); paramForOut.put("pass", 3);
Integer integer = depositoryRecordMapper.insertApplicationOutRecord(paramForOut); depositoryRecordMapper.insertApplicationOutRecord(paramForOut);
Object parentId = paramForOut.get("id"); parentId = paramForOut.get("id");
result += insertApplicationOutMinRecord(userToken, code, parentId, gid, quantityForGroup);
if (params.size() > 0) {
// 如果提交的不是单个
// 循环其他
for (String temp : params) {
// 获取当前要出库的套餐数量
quantityForGroup = ObjectFormatUtil.toInteger(map.get("quantity" + temp));
// 获取要出库的套餐
gid = ObjectFormatUtil.toInteger(map.get("gid" + temp));
// 获取当前要出库套餐的具体信息
groupInfoByGid = groupMapper.findGroupInfoByGid(gid);
for (GroupInfo groupInfo : groupInfoByGid) {
// 获取具体信息
// 获取当前物料库存信息
Map<String, Object> paramForMid = new HashMap<>();
paramForMid.put("mid", groupInfo.getMid());
List<Inventory> inventory = materialMapper.findInventory(paramForMid);
quantityForTotal += quantityForGroup * groupInfo.getQuantity();
priceForTotal += inventory.get(0).getPrice() * 100 * quantityForGroup;
}
result += insertApplicationOutMinRecord(userToken, code, parentId, gid, quantityForGroup);
}
}
map.put("id", parentId);
return result;
}
/**
* 用于插入子出库订单
*
* @param userToken 申请人
* @param code 出库单号
* @param parentId 主单号
* @param gid 套餐id
* @param quantityForGroup 出库的套餐数
* @return
*/
@Transactional(rollbackFor = Exception.class)
public Integer insertApplicationOutMinRecord(UserByPort userToken, String code, Object parentId, Integer gid, Integer quantityForGroup) {
// 用于存储申请数 // 用于存储申请数
Integer result = 0; Integer result = 0;
// 获取当前部门仓库 // 获取当前部门仓库
List<Depository> depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
// 获取要出库套餐的具体信息
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);
// 套餐中的具体信息 // 套餐中的具体信息
// 实际要出库的物料库存数量 // 实际要出库的物料库存数量
@ -540,22 +614,23 @@ public class GroupServiceImpl implements GroupService {
if (did != -1) { if (did != -1) {
// 如果有正确的仓库 // 如果有正确的仓库
paramForOutMin.put("depositoryId", did); paramForOutMin.put("depositoryId", did);
paramForOutMin.put("mid",mid); paramForOutMin.put("mid", mid);
paramForOutMin.put("trueOut", 0); paramForOutMin.put("trueOut", 0);
paramForOutMin.put("quantity", quantity); paramForOutMin.put("quantity", quantity);
paramForOutMin.put("code", map.get("code")); paramForOutMin.put("code", code);
paramForOutMin.put("placeId", 0); paramForOutMin.put("placeId", 0);
result += depositoryRecordMapper.insertApplicationOutRecordMin(paramForOutMin); result += depositoryRecordMapper.insertApplicationOutRecordMin(paramForOutMin);
}else{ } else {
throw new MyException(groupInfo.getMname() + ",库存不足"); throw new MyException(groupInfo.getMname() + ",库存不足");
} }
} }
map.put("id",parentId);
return result; return result;
} }
/** /**
* 根据套餐编号获取套餐具体信息 * 根据套餐编号获取套餐具体信息
*
* @param gid 待查讯套餐编号 * @param gid 待查讯套餐编号
* @return * @return
*/ */
@ -571,10 +646,11 @@ public class GroupServiceImpl implements GroupService {
List<Integer> groupIdList; List<Integer> groupIdList;
public Task(List<Integer> groupIdList){ public Task(List<Integer> groupIdList) {
this.groupIdList = groupIdList; this.groupIdList = groupIdList;
} }
@Override @Override
public Object call() throws Exception { public Object call() throws Exception {
/** /**
@ -615,19 +691,19 @@ public class GroupServiceImpl implements GroupService {
} }
} }
class TaskForGroupInfo implements Callable<Object>{ class TaskForGroupInfo implements Callable<Object> {
Group group; Group group;
TaskForGroupInfo(Group group){
TaskForGroupInfo(Group group) {
this.group = group; this.group = group;
} }
@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);
// 定义子类结果集 // 定义子类结果集
@ -642,10 +718,10 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
* 构造树形组件数据模板 * 构造树形组件数据模板
* @param g 套餐 *
* @param g 套餐
* @param children 子类 * @param children 子类
* @return * @return
*/ */
@ -664,6 +740,7 @@ public class GroupServiceImpl implements GroupService {
/** /**
* 构造树形组件的子组件模板 * 构造树形组件的子组件模板
*
* @param g 套餐详细信息 * @param g 套餐详细信息
* @return * @return
*/ */
@ -679,25 +756,24 @@ public class GroupServiceImpl implements GroupService {
} }
/** /**
*
* 用于创建套餐编码 * 用于创建套餐编码
*
* @param num 第几个套餐 * @param num 第几个套餐
* @return * @return
*/ */
public String createCode(Integer num){ public String createCode(Integer num) {
String code = "g-"+String.format("%05d", num + 1); String code = String.format("%04d", num + 1);
return code; return code;
} }
/** /**
* 生成出库单号 * 生成出库单号
*
* @return * @return
*/ */
private String createOutCode( String key, String mainDeparmentName) { private String createOutCode(String key, String mainDeparmentName) {
RLock lock = redissonClient.getLock(key); RLock lock = redissonClient.getLock(key);
// 入库单号(公司简称+仓库简称+年月日+数字(位数设置>=9)) // 入库单号(公司简称+仓库简称+年月日+数字(位数设置>=9))
String code = "GK"; String code = "GK";
@ -712,7 +788,8 @@ public class GroupServiceImpl implements GroupService {
redisTemplate.boundValueOps(key).set(String.valueOf(newNumber), DateUtil.getSecondsNextEarlyMorning(), TimeUnit.SECONDS); redisTemplate.boundValueOps(key).set(String.valueOf(newNumber), DateUtil.getSecondsNextEarlyMorning(), TimeUnit.SECONDS);
lock.unlock(); lock.unlock();
orderNumber = String.format("%09d", ObjectFormatUtil.toInteger(orderNumber)); orderNumber = String.format("%09d", ObjectFormatUtil.toInteger(orderNumber));
mainDeparmentName = WordUtil.getPinYinHeadChar(mainDeparmentName);code = code + mainDeparmentName + nowTime + orderNumber; mainDeparmentName = WordUtil.getPinYinHeadChar(mainDeparmentName);
code = code + mainDeparmentName + nowTime + orderNumber;
return code; return code;
} }

11
src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java

@ -1367,11 +1367,11 @@ public class QyWxOperationService {
ApprovalTemplate approvalTemplate = new ApprovalTemplate(); ApprovalTemplate approvalTemplate = new ApprovalTemplate();
// 获取申请人的userId // 获取申请人的userId
// String workwechat = userToken.getWorkwechat(); String workwechat = userToken.getWorkwechat();
// if(workwechat == null || "".equals(workwechat)){ if(workwechat == null || "".equals(workwechat)){
// workwechat = userToken.getWechat(); workwechat = userToken.getWechat();
// } }
String workwechat = "PangFuZhen"; // String workwechat = "PangFuZhen";
// 设置申请人 // 设置申请人
approvalTemplate.setCreator_userid(workwechat); approvalTemplate.setCreator_userid(workwechat);
@ -1685,7 +1685,6 @@ public class QyWxOperationService {
for (String value : split) { for (String value : split) {
userIdList.add(value); userIdList.add(value);
} }
approval_template_approver.setUserid(userIdList); approval_template_approver.setUserid(userIdList);
approval_template_approver_list.add(approval_template_approver); approval_template_approver_list.add(approval_template_approver);
approvalTemplate.setApprover(approval_template_approver_list); approvalTemplate.setApprover(approval_template_approver_list);

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

@ -1377,8 +1377,8 @@
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 () {
$("#quantity" + id).val(""); $("#quantityForGroup" + id).val("");
}); });
} }

831
src/main/resources/templates/pages/application/application-out_black2.html

@ -1,831 +0,0 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="utf-8">
<title>分步表单</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">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
</head>
<body>
<style>
.inputdiv {
display: flex;
background-color: #fff;
height: 38px;
line-height: 38px;
border: 1px solid rgb(238, 238, 238);
}
.layui-form-label {
padding: 9px 0px;
text-align: left;
}
.layui-input-block {
margin-left: 80px;
}
.layui-form-select {
width: 100%;
border-style: none;
}
.layui-card-body {
padding: 10px 5px;
}
.lay-step {
display: none;
}
.layui-form-select .layui-input{
border-style: none;
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-fluid">
<!-- 出库申请-->
<div class="layui-carousel" id="stepForm" lay-filter="stepForm" style="margin: 0 auto;">
<div carousel-item style="overflow: inherit">
<div>
<form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;">
<div class="layui-card" id="cardParent">
<div class="layui-card-body" id="cardItem">
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label">物料名称:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input"
style="border-style: none"
id="openSonByMaterial" onblur="selectMaterialByName(this)"
lay-verify="required"/>
<i class="layui-icon layui-icon-search" style="display: inline"
id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name="mid" class="layui-input" id="mid"
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input id="code" name="code" type="text" placeholder="请填写入物料编码" value=""
onblur="selectCode(this)"
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px" onclick="scanCodeByOut(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">条形编码:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<input id="barCode" name="barCode" type="text" placeholder="请填写入条形编码"
value=""
class="layui-input"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
id="barCodeImg"
style="margin-top: 10px" onclick="scanBarCode(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input name="quantity" type="number" placeholder="请填写入物料数量" value=""
onblur="MaterialQuantityIsTrue(this)" id="quantity"
class="layui-input" lay-verify="number" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name="applyRemark" placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline"
onclick="addItem(this)"></i>
</div>
<!-- 提交按钮-->
<div class="layui-form-item" id="btn_sub">
<div class="layui-input-block">
<button class="layui-btn" lay-submit lay-filter="formStep"
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>
</div>
</div>
</div>
</div>
</div>
</div>
<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="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
<script>
// 用于添加标签
function addItem(obj) {
}
// 用于删除标签
function deleteItem(obj) {
}
// 用于编码查询
function selectCode(obj) {
}
// 用于点击搜索按钮
function selectMaterial(obj) {
}
// 用于物料名称查询
function selectMaterialByName(obj) {
}
// 用于判断当前物料数量是否合适
function MaterialQuantityIsTrue() {
}
// 用于扫描条形码
function scanBarCode() {
}
// 用于重新渲染页面
function Coverpage() {
}
// 用于扫码出库
function scanCodeByOut(obj) {
}
// 用于暂存卡片个数
var params = [];
// 用于卡片编号
var NewIdNumber = 1;
layui.use(['form', 'step', 'layer', 'jquery'], function () {
var $ = layui.$,
form = layui.form,
step = layui.step;
// 用于分步表单加载
step.render({
elem: '#stepForm',
filter: 'stepForm',
width: '100%', //设置容器宽度
height: '600px',
stepItems: [{
title: '填写信息'
}, {
title: '提交成功'
}]
});
// 提交
form.on('submit(formStep)', function (data) {
data = data.field;
data.params = params;
if (data.mid === undefined) {
// 如果没有初始项
var dataKeys = Object.keys(data);
var dataKey;
for (let i = 0; i < dataKeys.length; i++) {
dataKey = dataKeys[i];
if (dataKey.includes("mid")) {
break;
}
}
// 获取当前数字
var keyNumber = dataKey.split("mid")[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: "/depositoryRecord/applicationOut",
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 (data) {
layer.close(this.layerIndex);
if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情
} else {
layer.msg("申请提交成功", {
icon: 6,//成功的表情
time: 500 //1秒关闭(如果不配置,默认是3秒)
}, function () {
step.next('#stepForm');
});
}
},
complete: function () {
layer.close(this.layerIndex);
}
});
return false;
});
form.on('submit(formStep2)', function (data) {
step.next('#stepForm');
return false;
});
$('.pre').click(function () {
step.pre('#stepForm');
});
$('.next').click(function () {
step.next('#stepForm');
});
// 实现卡片添加
addItem = function (obj) {
// 获取父元素id
var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1;
// 物料名称栏目
var materialItem = `
<div class="layui-card-body" id=` + "cardItem" + NewIdNumber + `>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline" onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label">物料名称</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input" style="border-style: none"
id="openSonByMaterial" lay-verify="required" onblur="selectMaterialByName(this)"/>
<i class="layui-icon layui-icon-search" style="display: inline" id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name=` + "mid" + NewIdNumber + ` class="layui-input" id="mid"
style="display: none" lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input id=` + "code" + NewIdNumber + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入物料编码" value=""
onblur="selectCode(this)"
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px" onclick="scanCodeByOut(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">条形编码:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<input id=` + "barCode" + NewIdNumber + ` name=` + "barCode" + NewIdNumber + ` type="text" placeholder="请填写入条形编码"
value=""
class="layui-input"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16" id=` + "barCodeImg" + NewIdNumber + `
style="margin-top: 10px" onclick="scanBarCode(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input name=` + "quantity" + NewIdNumber + ` type="number" placeholder="请填写入物料数量" value="" onblur="MaterialQuantityIsTrue(this)"
id=` + "quantity" + NewIdNumber + ` class="layui-input" lay-verify="number">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=` + "applyRemark" + NewIdNumber + ` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" onclick="addItem(this)"></i>
</div>`;
// 获取当前高度
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
params.push(NewIdNumber);
$("#stepForm").css("height", height + 422 + 'px');
$("#" + parentId).after(materialItem);
};
// 用于重新渲染页面
Coverpage = function (num, obj) {
var parent = $("#cardParent");
// 获取待添加父类
NewIdNumber = num;
if (num === 0) { // 如果是第一个
NewIdNumber = "";
}
var firstItem =
// 前半部分
` <div class="layui-card-body" style="padding-right: 0px" id=` + "cardItem" + NewIdNumber + `>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline" onclick="deleteItem(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label">物料名称</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择物料" class="layui-input" style="border-style: none"
id="openSonByMaterial" lay-verify="required" value="${obj.mname}" onblur="selectMaterialByName(this)"/>
<i class="layui-icon layui-icon-search" style="display: inline" id="selectMaterial" onclick="selectMaterial(this)"></i>
</div>
<input type="text" name=` + "mid" + NewIdNumber + ` class="layui-input" id="mid" value="${obj.mid}"
style="display: none" lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<input id="code" name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入物料编码" onblur="selectCode(this)"
class="layui-input" lay-verify="required" value="${obj.code}" style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16" style="margin-top: 10px" onclick="scanCodeByOut(this)" >
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">条形编码:</label>
<div class="layui-input-block" style="margin: 0px;">
<div class="inputdiv">
<select id=` + "barCode" + NewIdNumber + ` name=` + "barCode" + NewIdNumber + `></select>
<img src="/static/images/search.ico" height="16" width="16" style="margin-top: 10px" onclick="scanBarCode(this)" >
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input name=` + "quantity" + NewIdNumber + ` type="number" placeholder="请填写入物料数量" value=""
class="layui-input" lay-verify="number">
</div>
</div>`;
var lastItem = `<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=` + "applyRemark" + NewIdNumber + ` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" onclick="addItem(this)"></i>
</div>`;
// 获取当前高度
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
if (NewIdNumber !== "") {
params.push(NewIdNumber)
}
$("#stepForm").css("height", height + 532 + 'px');
var materialItem = firstItem + lastItem; // 最终
$("#btn_sub").before(materialItem)
};
// 实现卡片删除
deleteItem = function (obj) {
// 获取父节点
var parent = obj.parentNode;
var parentId = parent.id;
parentId = parseInt(parentId.split("cardItem")[1]);
// 获取祖父节点
var reparent = parent.parentNode;
var height = parseInt(($("#stepForm").css('height')).split("px")[0]);
$("#stepForm").css("height", height - 422 + 'px');
params = remove(params, 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;
}
// 用于实现通过编码查询物料
selectCode = function (obj) {
// 输入code
var code = obj.value;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var objId = parent.id.split("cardItem")[1];
var children = parent.childNodes[5];
var materialItem = children.childNodes[3].childNodes[1].childNodes;
var barCodeChildren = parent.childNodes[9];
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
// 条形码条码
var barCodeItem = barCodeChildren.childNodes[3];
var req = {};
req.code = code;
req.type = "out";
$.ajax({
url: "/material/findMatrialByCode",
type: "get",
dataType: 'json',
data: (req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var d = d.data;
if (d == null) {
layer.msg("仓库中暂无该物料");
materialName.value = "";
materialId.value = "";
obj.value = "";
$('#place' + objId).empty();
}
else {
materialName.value = d.mname;
materialId.value = d.id;
var idNumber = materialId.name.split("mid")[1];
// 获取物料与条形码的对应关系
var materialAndBarCodeList = d["materialAndBarCodeList"];
if (materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
var barCodeInput = barCodeItem.childNodes[1].childNodes[1];
var barCodeImg = barCodeItem.childNodes[1].childNodes[3];
var id = barCodeInput.id;
$("#" + id).remove();
$("#barCode" + idNumber).empty();
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
} else {
var barCodeSelect = `
<select id=` + "barCode" + idNumber + ` name=` + "barCode" + idNumber + `>
</select>`;
$("#" + barCodeImg.id).before(barCodeSelect);
}
form.render();
$.each(materialAndBarCodeList, function (index, item) {
$("#barCode" + idNumber).append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
} else {
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
}
}
}
}
});
};
// 用于实现点击搜索按钮
selectMaterial = function (obj) {
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var parentId = parent.id;
var codeChildren = parent.childNodes[7];
var materialChildren = parent.childNodes[5];
var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var mname = materialName.value;
var barCodeChildren = parent.childNodes[9];
// 条形码条码
var barCodeItem = barCodeChildren.childNodes[3];
layer.open({
type: 2,
title: '弹窗内容',
skin: 'layui-layer-rim',
maxmin: true,
shadeClose: true, //点击遮罩关闭层
area: ['70%', '70%'],
// content: '/selectMaterialByCard?mname=' + mname + '&type=2&clickObj=' + parentId,
content: '/getMaterialAll?mname=' + mname + '&type=2&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 () {
var mid = materialId.value;
$.ajax({
url: "/material/findMatrialById?mid=" + mid,
type: "get",
dataType: 'json',
contentType: "application/json;charset=utf-8",
success: function (d) {
var material = d.data.materialById;
var code = material.code;
if (code === undefined) {
code = "";
}
codeValue.value = code;
var materialAndBarCodeList = material["materialAndBarCodeList"];
var idNumber = materialId.name.split("mid")[1];
if (materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
var barCodeInput = barCodeItem.childNodes[1].childNodes[1];
var barCodeImg = barCodeItem.childNodes[1].childNodes[3];
var id = barCodeInput.id;
$("#" + id).remove();
$("#barCode" + idNumber).empty();
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
} else {
var barCodeSelect = `
<select id=` + "barCode" + idNumber + ` name=` + "barCode" + idNumber + `>
</select>`;
$("#" + barCodeImg.id).before(barCodeSelect);
}
form.render();
$.each(materialAndBarCodeList, function (index, item) {
$("#barCode" + idNumber).append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
} else {
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
}
}
form.render();
}
});
}
});
};
//用于实现物料名称搜索
selectMaterialByName = function (obj) {
var data = obj.value;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var materialChildren = parent.childNodes[5];
var codeChildren = parent.childNodes[7];
var codeItem = codeChildren.childNodes[3].childNodes[1].childNodes;
var codeValue = codeItem[1];
var materialItem = materialChildren.childNodes[3].childNodes[1].childNodes;
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
var req = {};
req.mname = data;
$.ajax({
url: "/material/findInventoryByCondition",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
if (d.count > 1) {
layer.msg("请点击右侧搜索确定物品");
materialId.value = "";
codeValue.value = "";
return false;
} else if (d.count === 0) {
layer.msg("没有该物品,请确认输入是否正确");
materialId.value = "";
codeValue.value = "";
materialName.value = "";
return false;
} else {
var material = d.data[0];
materialName.value = material.mname;
materialId.value = material.id;
codeValue.value = material.code;
}
}
});
};
scanBarCode = function (obj) {
parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["barCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
$.ajax({
url: "/material/qywxApplicationOutScanBarCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var MaterialChildren = parent.childNodes[5];
var materialItem = MaterialChildren.childNodes[3].childNodes[1].childNodes;
var barCodeChildren = parent.childNodes[9];
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
// 条形码条码
var barCodeItem = barCodeChildren.childNodes[3];
// 物料编码
var materialCodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes;
var materialCode = materialCodeItem[1];
var data = d.data;
if (data !== null) {
materialName.value = data.mname;
materialId.value = data.id;
materialCode.value = data.mcode;
var barCodeInput = barCodeItem.childNodes[1].childNodes[1];
barCodeInput.value = result;
}else{
// 如果没有对应关系
layer.msg("对于编码:" + result + ",并未发现对应的物料", {
icon: 0,
time: 1000 //0.5秒关闭(如果不配置,默认是3秒)
}, function () {
})
}
}
})
}
})
};
// 用于扫码功能
scanCodeByOut = function (obj) {
parent.wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 1, // 默认为0,扫描结果由企业微信处理,1则直接返回扫描结果,
scanType: ["qrCode"], // 可以指定扫二维码还是条形码(一维码),默认二者都有
success: function (res) {
// 回调
var result = res.resultStr;//当needResult为1时返回处理结果
var req = {};
req.qrCode = result;
$.ajax({
url: "/material/qywxApplicationOutScanQrCode",
type: "post",
dataType: 'json',
data: JSON.stringify(req),
contentType: "application/json;charset=utf-8",
success: function (d) {
var data = d.data;
// 获取对应元素
var parent = obj.parentNode.parentNode.parentNode.parentNode;
var MaterialChildren = parent.childNodes[5];
var materialItem = MaterialChildren.childNodes[3].childNodes[1].childNodes;
var barCodeChildren = parent.childNodes[9];
var materialName = materialItem[1];
var materialId = materialName.parentNode.parentNode.childNodes[3];
// 条形码条码
var barCodeItem = barCodeChildren.childNodes[3];
// 物料编码
var materialCodeItem = parent.childNodes[7].childNodes[3].childNodes[1].childNodes;
var materialCode = materialCodeItem[1];
var idNumber = materialId.name.split("mid")[1];
// 获取物料与条形码的对应关系
var materialAndBarCodeList = data["materialAndBarCodeList"];
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
}
if (materialAndBarCodeList.length > 0) {
// 如果有对应的条形码
var barCodeInput = barCodeItem.childNodes[1].childNodes[1];
var barCodeImg = barCodeItem.childNodes[1].childNodes[3];
var id = barCodeInput.id;
$("#" + id).remove();
$("#barCode" + idNumber).empty();
var barCode = $("#barCode" + idNumber);
if (barCode.length > 0) {
barCode.empty();
} else {
var barCodeSelect = `
<select id=` + "barCode" + idNumber + ` name=` + "barCode" + idNumber + `>
</select>`;
$("#" + barCodeImg.id).before(barCodeSelect);
}
form.render();
$.each(materialAndBarCodeList, function (index, item) {
$("#barCode" + idNumber).append(new Option(item.bmcode, item.id));//往下拉菜单里添加元素
});
form.render();
}
$('#place' + idNumber).empty();
$.each(data.placePList, function (index, item) {
$('#place' + idNumber).append(new Option(item.depositoryName + "-" + item.code, item.id));//往下拉菜单里添加元素
});
form.render();
materialName.value = data.mname;
materialId.value = data.id;
materialCode.value = data.code;
}
})
}
})
};
//用于判断当前物料数量是否合适
MaterialQuantityIsTrue = function (obj) {
var id = obj.id.split("quantity")[1];
var mcode = $("#code" + id).val(); // 获取到当前输入的物料编码
if (mcode === "" || mcode === undefined || mcode === null) {
layer.msg("请输入物料的正确编码!", {icon: 0, time: 500}, function () {
$("#quantity" + id).val("")
});
} else {
let val = $("#quantity" + id).val();
if (val !== null && val !== undefined && val !== '') {
var req = {};
req.mcode = mcode;
req.quantity = val;
$.ajax({
url: "/material/MaterialQuantityIsTrue",
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 () {
$("#quantity" + id).val("");
});
}
}
});
}
}
}
})
</script>
</body>
</html>

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

@ -0,0 +1,285 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>分步表单</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">
<link rel="stylesheet" href="/static/js/lay-module/step-lay/step.css" media="all">
</head>
<body>
<style>
.inputdiv {
display: flex;
background-color: #fff;
height: 38px;
line-height: 38px;
border: 1px solid rgb(238, 238, 238);
}
.layui-form-label {
padding: 9px 0px;
text-align: left;
}
.layui-input-block {
margin-left: 80px;
}
.layui-form-select {
width: 100%;
border-style: none;
}
.layui-card-body {
padding: 10px 5px;
}
.lay-step {
display: none;
}
.layui-form-select .layui-input {
border-style: none;
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-fluid">
<div class="layui-carousel" id="stepForm2" lay-filter="stepForm2" style="margin: 0 auto;">
<div carousel-item style="overflow: inherit">
<div>
<form class="layui-form layui-form-pane" style="margin: 0 auto;max-width: 460px;">
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<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>
// 用于重新构造页面中的套餐明细
function CoverpageForGroupInfo(){}
// 用于重新构造页面
function CoverPageForGroup(){}
// 用于实现卡片添加
function addItemForGroup(){}
layui.use(['form', 'step', 'layer', 'jquery', 'element'], function () {
var $ = layui.$,
form = layui.form,
element = layui.element,
step = layui.step;
// 页面初始化
$(function () {
})
// 用于重新渲染页面的套餐明细
CoverpageForGroupInfo = function (num, obj) {
// 获取待添加父类
NewIdNumber = num;
if (num === 0) { // 如果是第一个
NewIdNumber = "";
}
var materialItem = `
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title"">${obj.mname}</h2>
<div class="layui-colla-content">
<div class="layui-form-item">
<label class="layui-form-label">物料编码:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写入物料编码" value="${obj.mcode}"
readonly
class="layui-input" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料数量:</label>
<div class="layui-input-block">
<input type="number" placeholder="请填写入物料数量" value="${obj.quantity}"
readonly
class="layui-input" lay-verify="number" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料型号:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写入物料型号" value="${obj.version === null ? '' : obj.version}"
readonly
class="layui-input" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">物料类型:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写入物料类型" value="${obj.tname}"
readonly
class="layui-input" lay-verify="text" required>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">计量单位:</label>
<div class="layui-input-block">
<input type="text" placeholder="请填写入物料计量单位" value="${obj.unit === null ? '' : obj.unit}"
readonly
class="layui-input" lay-verify="text" required>
</div>
</div>
</div>
</div>
</div>
`; // 最终
// 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
if (NewIdNumber !== "") {
params.push(NewIdNumber)
}
$("#stepForm2").css("height", height + 183 + 'px');
$("#" + "addItemForGroup" + NewIdNumber).before(materialItem);
};
// 用于重新构造页面
CoverPageForGroup =function (num,obj) {
var materialItem = `
<div class="layui-card-body" id=` + "cardItemForGroup" + NewIdNumber + `>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label">套餐名称:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择套餐" class="layui-input"
style="border-style: none"
id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)"
lay-verify="required"/>
<i class="layui-icon layui-icon-search"
style="display: inline"
id=`+"selectGroup"+NewIdNumber+` onclick="selectGroup(this)"></i>
</div>
<input type="text" name=`+"gid"+NewIdNumber+` class="layui-input" id=`+"gid"+NewIdNumber+`
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">套餐编码:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入套餐编码" value=""
onblur="selectCodeForGroup(this)"
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px;display: none" onclick="scanCodeByOut(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">套餐数量:</label>
<div class="layui-input-block">
<input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+`
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写套餐数量"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=`+"applyRemark"+NewIdNumber+` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" id=` + "addItemForGroup" + NewIdNumber + `
onclick="addItemForGroup(this)"></i>
</div>
`;
// 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
params2.push(NewIdNumber);
$("#stepForm2").css("height", height + 289 + 'px');
$("#" + parentId).after(materialItem);
};
// 实现卡片添加(套餐)
addItemForGroup = function (obj) {
var parentId = obj.parentNode.id;
NewIdNumber = NewIdNumber + 1;
var materialItem = `
<div class="layui-card-body" id=` + "cardItemForGroup" + NewIdNumber + `>
<hr>
<i class="layui-icon layui-icon-subtraction" style="display: inline"
onclick="deleteItemForGroup(this)"></i>
<div class="layui-form-item">
<label class="layui-form-label">套餐名称:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input type="text" placeholder="请选择套餐" class="layui-input"
style="border-style: none"
id=`+"openGroupList"+NewIdNumber+` onblur="selectGroupByName(this)"
lay-verify="required"/>
<i class="layui-icon layui-icon-search"
style="display: inline"
id=`+"selectGroup"+NewIdNumber+` onclick="selectGroup(this)"></i>
</div>
<input type="text" name=`+"gid"+NewIdNumber+` class="layui-input" id=`+"gid"+NewIdNumber+`
style="display: none" lay-verify="required"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">套餐编码:</label>
<div class="layui-input-block">
<div class="inputdiv">
<input id=` + "gcode" + ` name=` + "code" + NewIdNumber + ` type="text" placeholder="请填写入套餐编码" value=""
onblur="selectCodeForGroup(this)"
class="layui-input" lay-verify="required"
style="border-style: none">
<img src="/static/images/search.ico" height="16" width="16"
style="margin-top: 10px;display: none" onclick="scanCodeByOut(this)">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">套餐数量:</label>
<div class="layui-input-block">
<input type="number" name=`+"quantity"+NewIdNumber+` class="layui-input" id=`+"quantityForGroup"+NewIdNumber+`
required lay-verify="number" onblur="groupQuantityIsTrue(this)" placeholder="请填写套餐数量"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注说明:</label>
<div class="layui-input-block">
<input name=`+"applyRemark"+NewIdNumber+` placeholder="请填写相关原因及申请原因" value=""
class="layui-input"/>
</div>
</div>
<i class="layui-icon layui-icon-addition" style="display: inline" id=` + "addItemForGroup" + NewIdNumber + `
onclick="addItemForGroup(this)"></i>
</div>
`;
// 获取当前高度
var height = parseInt(($("#stepForm2").css('height')).split("px")[0]);
params2.push(NewIdNumber);
$("#stepForm2").css("height", height + 289 + 'px');
$("#" + parentId).after(materialItem);
};
})
</script>
</body>
</html>

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

@ -87,6 +87,9 @@
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}" <a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" th:style="'display:'+${display}"
lay-event="realDelete">彻底删除</a> lay-event="realDelete">彻底删除</a>
</script> </script>
<script type="text/html" id="currentTableBarForOut">
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="applicationOut">出库</a>
</script>
<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>
@ -137,7 +140,8 @@
{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: 80, templet: '#switchTpl'},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"} {title: '出库', minWidth: 200, toolbar: '#currentTableBarForOut', align: "center"},
{title: '操作', minWidth: 200, toolbar: '#currentTableBar', align: "center"},
] ]
@ -307,6 +311,9 @@
}) })
}) })
} }
else if (obj.event === 'applicationOut'){
alert(1)
}
}); });

4
src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html

@ -310,7 +310,7 @@
content: '/ScanBarOrQrCodeOut_selectMaterial?pid=' + place.id+'&mcode='+mcode+'&depositoryId='+place.did, content: '/ScanBarOrQrCodeOut_selectMaterial?pid=' + place.id+'&mcode='+mcode+'&depositoryId='+place.did,
end: function () { end: function () {
let flagForSelect = layui.$("#flagForSelect").val(); let flagForSelect = layui.$("#flagForSelect").val();
if(flagForSelect){ if(flagForSelect === 'true'){
var param = {}; var param = {};
param.id = id; param.id = id;
param.placeId = place.id; param.placeId = place.id;
@ -397,7 +397,7 @@
content: '/ScanBarOrQrCodeOut_selectMaterial?pid=' + 0+'&mcode='+mcode+'&depositoryId='+depository.id, content: '/ScanBarOrQrCodeOut_selectMaterial?pid=' + 0+'&mcode='+mcode+'&depositoryId='+depository.id,
end: function () { end: function () {
let flagForSelect = layui.$("#flagForSelect").val(); let flagForSelect = layui.$("#flagForSelect").val();
if(flagForSelect){ if(flagForSelect === 'true'){
var param = {}; var param = {};
param.id = id; param.id = id;
param.qrCode = qrCode; param.qrCode = qrCode;

2
src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial.html

@ -39,7 +39,7 @@
icon:0, icon:0,
time:500 time:500
},function () { },function () {
$("#flagForSelect",window.parent.document).val(false);
}) })
}else{ }else{
$("#flagForSelect",window.parent.document).val(true); $("#flagForSelect",window.parent.document).val(true);

15
src/test/java/com/dreamchaser/depository_manage/TestForOther.java

@ -1,10 +1,17 @@
package com.dreamchaser.depository_manage; package com.dreamchaser.depository_manage;
import com.dreamchaser.depository_manage.entity.Depository;
import com.dreamchaser.depository_manage.entity.UserByPort;
import com.dreamchaser.depository_manage.service.DepositoryService;
import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
/** /**
* 专用于测试琐碎实例 * 专用于测试琐碎实例
@ -12,9 +19,13 @@ import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest @SpringBootTest
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
public class TestForOther { public class TestForOther {
@Autowired
DepositoryService depositoryService;
@Test @Test
public void Test(){ public void Test(){
String code = "wms-g-0001";
System.out.println(code.contains("wms-g-"));
} }
} }

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

@ -1377,8 +1377,8 @@
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 () {
$("#quantity" + id).val(""); $("#quantityForGroup" + id).val("");
}); });
} }

4
target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html

@ -310,7 +310,7 @@
content: '/ScanBarOrQrCodeOut_selectMaterial?pid=' + place.id+'&mcode='+mcode+'&depositoryId='+place.did, content: '/ScanBarOrQrCodeOut_selectMaterial?pid=' + place.id+'&mcode='+mcode+'&depositoryId='+place.did,
end: function () { end: function () {
let flagForSelect = layui.$("#flagForSelect").val(); let flagForSelect = layui.$("#flagForSelect").val();
if(flagForSelect){ if(flagForSelect === 'true'){
var param = {}; var param = {};
param.id = id; param.id = id;
param.placeId = place.id; param.placeId = place.id;
@ -397,7 +397,7 @@
content: '/ScanBarOrQrCodeOut_selectMaterial?pid=' + 0+'&mcode='+mcode+'&depositoryId='+depository.id, content: '/ScanBarOrQrCodeOut_selectMaterial?pid=' + 0+'&mcode='+mcode+'&depositoryId='+depository.id,
end: function () { end: function () {
let flagForSelect = layui.$("#flagForSelect").val(); let flagForSelect = layui.$("#flagForSelect").val();
if(flagForSelect){ if(flagForSelect === 'true'){
var param = {}; var param = {};
param.id = id; param.id = id;
param.qrCode = qrCode; param.qrCode = qrCode;

2
target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut_selectMaterial.html

@ -39,7 +39,7 @@
icon:0, icon:0,
time:500 time:500
},function () { },function () {
$("#flagForSelect",window.parent.document).val(false);
}) })
}else{ }else{
$("#flagForSelect",window.parent.document).val(true); $("#flagForSelect",window.parent.document).val(true);

Loading…
Cancel
Save