Browse Source

添加直接出库页面

lwx_dev
erdanergou 3 years ago
parent
commit
96b338094d
  1. 3
      src/main/java/com/dreamchaser/depository_manage/controller/CompanyController.java
  2. 260
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java
  3. 193
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  4. 12
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  5. 40
      src/main/java/com/dreamchaser/depository_manage/controller/UserController.java
  6. 20
      src/main/java/com/dreamchaser/depository_manage/security/pool/HandlesOtherFunctionalThreadPool.java
  7. 1
      src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java
  8. 2
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryServiceImpl.java
  9. 12
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  10. 405
      src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java
  11. 3
      src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java
  12. 14
      src/main/resources/static/css/public.css
  13. 1996
      src/main/resources/templates/pages/applicationForStorageCenter/application-out_admin.html
  14. 10
      src/main/resources/templates/pages/applicationForStorageCenter/applicationSeletUser.html
  15. 37
      src/test/java/com/dreamchaser/depository_manage/OtherTest.java

3
src/main/java/com/dreamchaser/depository_manage/controller/CompanyController.java

@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
@ -39,6 +40,8 @@ public class CompanyController {
@Autowired
ConstructionUnitService constructionUnitService;
/**
* 查询组织架构
*

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

@ -66,14 +66,14 @@ public class DepositoryRecordController {
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
map.put("applicantId", userToken.getId());
List<ApplicationInRecordP> applicationInRecordPlist = depositoryRecordService.findApplicationInRecordPByCondition(map, userToken,userKey,token);
List<ApplicationInRecordP> applicationInRecordPlist = depositoryRecordService.findApplicationInRecordPByCondition(map, userToken, userKey, token);
Integer InCount = depositoryRecordService.findApplicationInRecordPCountByCondition(map);
for (ApplicationInRecordP applicationInRecordP : applicationInRecordPlist) {
if (applicationInRecordP.getPrice() != null) {
applicationInRecordP.setPrice(applicationInRecordP.getPrice() / 100);
}
}
List<ApplicationOutRecordP> applicationOutRecordPlist = depositoryRecordService.findApplicationOutRecordPByCondition(map, userToken,userKey,token);
List<ApplicationOutRecordP> applicationOutRecordPlist = depositoryRecordService.findApplicationOutRecordPByCondition(map, userToken, userKey, token);
Integer OutCount = depositoryRecordService.findApplicationOutRecordPCountByCondition(map);
for (ApplicationOutRecordP recordP : applicationOutRecordPlist) {
if (recordP.getPrice() != null) {
@ -98,7 +98,7 @@ public class DepositoryRecordController {
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
map.put("userId", userToken.getId());
List<SimpleApplicationOutOrInRecordP> myTask = depositoryRecordService.findMyTaskOut(map,userKey,token);
List<SimpleApplicationOutOrInRecordP> myTask = depositoryRecordService.findMyTaskOut(map, userKey, token);
return new RestResponse(myTask
, depositoryRecordService.findMyTaskOutCount(map), 200);
@ -115,7 +115,7 @@ public class DepositoryRecordController {
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
map.put("userId", userToken.getId());
List<SimpleApplicationOutOrInRecordP> myTask = depositoryRecordService.findMyTaskIn(map,userKey,token);
List<SimpleApplicationOutOrInRecordP> myTask = depositoryRecordService.findMyTaskIn(map, userKey, token);
return new RestResponse(myTask
, depositoryRecordService.findMyTaskInCount(map), 200);
@ -461,14 +461,14 @@ public class DepositoryRecordController {
}
sb.append(workwechat).append(",");
}
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(),finalUserKey,finalToken);
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(), finalUserKey, finalToken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", integerList.toString());
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
}
@ -485,21 +485,21 @@ public class DepositoryRecordController {
for (RoleAndDepository mt : materialTypeIdForIn
) {
// 获取管理员数据
UserByPort userByPort = LinkInterfaceUtil.FindUserById(mt.getUserId(), finalUserKey,finalToken);
UserByPort userByPort = LinkInterfaceUtil.FindUserById(mt.getUserId(), finalUserKey, finalToken);
String workwechat = userByPort.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = userByPort.getWechat();
}
sb.append(workwechat).append(",");
}
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(),finalUserKey,finalToken);
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(), finalUserKey, finalToken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", integerList.toString());
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
}
});
@ -532,7 +532,7 @@ public class DepositoryRecordController {
String crypt = Md5.crypt(header);
map.put("applicantId", userToken.getId());
// 获取当前部门负责人
List<UserByPort> departmentHeadByUsers = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(), userkey,usertoken);
List<UserByPort> departmentHeadByUsers = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(), userkey, usertoken);
StringBuilder departmentHeadId = new StringBuilder();
StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (int i = 0; i < departmentHeadByUsers.size(); i++) {
@ -566,7 +566,7 @@ public class DepositoryRecordController {
String finalUserkey = userkey;
String finalUsertoken = usertoken;
if (params.size() < 1 && map.size() > 3) {
Integer res = depositoryRecordService.insertApplicationOutRecord(map, userToken,userkey,usertoken); // 插入主订单
Integer res = depositoryRecordService.insertApplicationOutRecord(map, userToken, userkey, usertoken); // 插入主订单
Object id = map.get("id"); // 获取主订单编号
if (res == 1) { // 如果插入成功
if (id != null) {
@ -586,9 +586,9 @@ public class DepositoryRecordController {
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("otherDepartmentIdList", jsonObject.getString("otherDepartmentIdList"));
QyWxApprovalMap.put("mainId", id.toString());
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
});
}
@ -608,7 +608,7 @@ public class DepositoryRecordController {
}
String keyNumber = key.split("mid")[1];
}
Integer res = depositoryRecordService.insertApplicationOutRecord(map, userToken,userkey,usertoken);
Integer res = depositoryRecordService.insertApplicationOutRecord(map, userToken, userkey, usertoken);
if (res == 1) {
// 获取主订单编号
Object id = map.get("id");
@ -636,13 +636,145 @@ public class DepositoryRecordController {
// 开启一个线程开启审批
SendQyWxMessageThreadPool.execute(() -> {
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplate(crypt, userToken, ObjectFormatUtil.toInteger(id),finalUserkey,finalUsertoken);
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplate(crypt, userToken, ObjectFormatUtil.toInteger(id), finalUserkey, finalUsertoken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("otherDepartmentIdList", jsonObject.getString("otherDepartmentIdList"));
QyWxApprovalMap.put("mainId", id.toString());
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire(sp_no, 7, TimeUnit.DAYS);
});
}
}
if (integer != 0 && params.size() < 1) {
return CrudUtil.insertHandle(integer, 1);
} else if (integer != 0 && params.size() >= 1) {
return CrudUtil.insertHandle(integer, params.size() + 1);
} else {
return new RestResponse("", 666, new StatusInfo("出库失败", "请联系管理员进行操作"));
}
}
// 出库申请用于立刻提交
@PostMapping("/applicationOutForImmediately")
public RestResponse insertApplicationOutRecordForImmediately(@RequestBody Map<String, Object> map, HttpServletRequest request) {
String usertoken = request.getHeader("user-token");
String userkey = request.getHeader("user-key");
if (usertoken == null) {
usertoken = (String) request.getSession().getAttribute("userToken");
userkey = (String) request.getSession().getAttribute("userKey");
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(usertoken);
String header = request.getHeader("user-agent");
String crypt = Md5.crypt(header);
map.put("applicantId", userToken.getId());
Object userId = map.get("userId");
if (userId != null) {
UserByPort userByPort = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(userId), userkey, usertoken);
map.put("departmenthead",userByPort.getId());
map.put("depositoryManager",userToken.getId());
} else {
List<UserByPort> departmentHeadByUsers = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(map.get("adminorgId")), userkey, usertoken);
StringBuilder departmentHeadId = new StringBuilder();
for (UserByPort departmentHeadByUser : departmentHeadByUsers) {
departmentHeadId.append(departmentHeadByUser.getId()).append(",");
}
map.put("departmenthead",userToken.getId());
map.put("depositoryManager",departmentHeadId.toString());
}
List<Integer> params = (List<Integer>) map.get("params");
Integer integer = 0;
if (map.containsKey("constructionUnitId")) {
String constructionUnitId = map.get("constructionUnitId").toString();
if ("".equals(constructionUnitId)) {
map.remove("constructionUnitId");
}
}
String finalUserkey = userkey;
String finalUsertoken = usertoken;
if (params.size() < 1 && map.size() > 3) {
Integer res = depositoryRecordService.insertApplicationOutRecord(map, userToken, userkey, usertoken); // 插入主订单
Object id = map.get("id"); // 获取主订单编号
if (res == 1) { // 如果插入成功
if (id != null) {
map.remove("id");
map.put("parentId", id);
}
integer += depositoryRecordService.insertApplicationOutMin(map);
// 开启一个线程执行发送信息操作
// 开启一个线程开启审批
SendQyWxMessageThreadPool.execute(() -> {
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateForImmediately(crypt, userToken, ObjectFormatUtil.toInteger(id), finalUserkey, finalUsertoken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("otherDepartmentIdList", jsonObject.getString("otherDepartmentIdList"));
QyWxApprovalMap.put("mainId", id.toString());
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
});
}
} else {
// 插入主订单
if (!map.containsKey("mid")) {
// 如果不包含初始的第一个卡片
Set<String> strings = map.keySet();
String key = "";
for (String tempKey :
strings) {
if (tempKey.contains("mid")) {
key = tempKey;
break;
}
}
String keyNumber = key.split("mid")[1];
}
Integer res = depositoryRecordService.insertApplicationOutRecord(map, userToken, userkey, usertoken);
if (res == 1) {
// 获取主订单编号
Object id = map.get("id");
for (Integer temp : params) {
Map<String, Object> insert = new HashMap<>();
insert.put("applicantId", userToken.getId());
insert.put("mid", map.get("mid" + temp));
insert.put("quantity", (int) (ObjectFormatUtil.toDouble(map.get("quantity" + temp)) * 100));
insert.put("code", map.get("code"));
insert.put("placeId", map.get("placeId"));
insert.put("unit", map.get("unit" + temp));
insert.put("project", map.get("project" + temp));
// 获取主订单编号
insert.put("parentId", id);
// 插入子订单
integer += depositoryRecordService.insertApplicationOutMin(insert);
}
// 插入子订单
map.put("parentId", id);
map.remove("id");
// 插入子订单
integer += depositoryRecordService.insertApplicationOutMin(map);
// 开启一个线程开启审批
SendQyWxMessageThreadPool.execute(() -> {
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplateForImmediately(crypt, userToken, ObjectFormatUtil.toInteger(id), finalUserkey, finalUsertoken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("otherDepartmentIdList", jsonObject.getString("otherDepartmentIdList"));
QyWxApprovalMap.put("mainId", id.toString());
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire(sp_no, 7, TimeUnit.DAYS);
});
@ -674,11 +806,11 @@ public class DepositoryRecordController {
Integer recordPCount = 0;
Integer maindeparment = userToken.getMaindeparment();
if (PublicConfig.roleAdminorgList.contains(maindeparment)) {
list = depositoryRecordService.findApplicationInRecordPByCondition(map, userToken,userKey,token);
list = depositoryRecordService.findApplicationInRecordPByCondition(map, userToken, userKey, token);
recordPCount = depositoryRecordService.findApplicationInRecordPCountByCondition(map);
} else {
list = depositoryRecordService.findApplicationInRecordPByUser(userToken, map,userKey,token);
list = depositoryRecordService.findApplicationInRecordPByUser(userToken, map, userKey, token);
recordPCount = depositoryRecordService.findApplicationInRecordPCountByUser(userToken, map);
}
for (ApplicationInRecordP applicationInRecordP : list) {
@ -750,7 +882,7 @@ public class DepositoryRecordController {
ApplicationOutRecordP applicationOutRecordPById = depositoryRecordService.findApplicationOutRecordPById(applicationOutMinById.getParentId());
// 获取申请人
UserByPort userByPort = LinkInterfaceUtil.FindUserById(applicationOutRecordPById.getApplicantId(), userKey,token);
UserByPort userByPort = LinkInterfaceUtil.FindUserById(applicationOutRecordPById.getApplicantId(), userKey, token);
// 创建展示对象
SimpleApplicationOutMinRecordP simpleApplicationOutMinRecordP = new SimpleApplicationOutMinRecordP(applicationOutMinById);
// 设置展示时的数量为申请数-已出库数
@ -781,7 +913,7 @@ public class DepositoryRecordController {
if (checkId != null) {
// 如果该订单已经处理
// 获取处理人
UserByPort checker = LinkInterfaceUtil.FindUserById(checkId, userKey,token);
UserByPort checker = LinkInterfaceUtil.FindUserById(checkId, userKey, token);
simpleApplicationOutMinRecordP.setCheckerName(checker.getName());
simpleApplicationOutMinRecordP.setPcode(placeByDid.getCode());
// 当已经完成出库时设置数量为出库数
@ -835,10 +967,10 @@ public class DepositoryRecordController {
Integer countBy = 0;
Integer maindeparment = userByPort.getMaindeparment();
if (PublicConfig.roleAdminorgList.contains(maindeparment)) {
list = depositoryRecordService.findApplicationOutRecordPByCondition(map, userByPort,userKey,token);
list = depositoryRecordService.findApplicationOutRecordPByCondition(map, userByPort, userKey, token);
countBy = depositoryRecordService.findApplicationOutRecordPCountByCondition(map);
} else {
list = depositoryRecordService.findApplicationOutRecordPByUser(userByPort, map,userKey,token);
list = depositoryRecordService.findApplicationOutRecordPByUser(userByPort, map, userKey, token);
countBy = depositoryRecordService.findApplicationOutRecordPCountByUser(userByPort, map);
}
@ -981,7 +1113,7 @@ public class DepositoryRecordController {
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
String header = request.getHeader("user-agent");
String crypt = Md5.crypt(header);
Integer review = depositoryRecordService.review(map, userToken.getId(), userToken, crypt,userkey,token);
Integer review = depositoryRecordService.review(map, userToken.getId(), userToken, crypt, userkey, token);
if (review != -1) {
return CrudUtil.insertHandle(review, 1);
} else {
@ -1020,7 +1152,7 @@ public class DepositoryRecordController {
String header = request.getHeader("user-agent");
String crypt = Md5.crypt(header);
UserByPort userToken = AuthenticationTokenPool.getUserToken(usertoken);
List<UserByPort> departmentHeadByUsers = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(), userkey,usertoken);
List<UserByPort> departmentHeadByUsers = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(), userkey, usertoken);
StringBuilder departmentHeadId = new StringBuilder();
StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (int i = 0; i < departmentHeadByUsers.size(); i++) {
@ -1057,7 +1189,7 @@ public class DepositoryRecordController {
String finalUserkey = userkey;
String finalUsertoken = usertoken;
if (params.size() < 1 && map.size() > 4) {
integer += depositoryRecordService.transferApply(map, userToken,userkey,usertoken);
integer += depositoryRecordService.transferApply(map, userToken, userkey, usertoken);
Object id = map.get("parentId");
// 开启一个线程开启审批
@ -1069,9 +1201,9 @@ public class DepositoryRecordController {
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", id.toString());
QyWxApprovalMap.put("otherDepartmentIdList", jsonObject.getString("otherDepartmentIdList"));
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
});
} else if (params.size() > 0) {
@ -1091,23 +1223,23 @@ public class DepositoryRecordController {
if (parentId != null) {
insert.put("parentId", parentId);
}
integer += depositoryRecordService.transferApply(insert, userToken,userkey,usertoken);
integer += depositoryRecordService.transferApply(insert, userToken, userkey, usertoken);
map.put("parentId", insert.get("parentId"));
}
integer += depositoryRecordService.transferApply(map, userToken,userkey,usertoken);
integer += depositoryRecordService.transferApply(map, userToken, userkey, usertoken);
Object id = map.get("parentId");
// 开启一个线程开启审批
SendQyWxMessageThreadPool.execute(() -> {
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplate(crypt, userToken, ObjectFormatUtil.toInteger(id),finalUserkey,finalUsertoken);
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplate(crypt, userToken, ObjectFormatUtil.toInteger(id), finalUserkey, finalUsertoken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", id.toString());
QyWxApprovalMap.put("otherDepartmentIdList", jsonObject.getString("otherDepartmentIdList"));
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
});
}
@ -1213,11 +1345,11 @@ public class DepositoryRecordController {
List<ApplicationModel> list = new ArrayList<>();
for (int i = start; i < end; i++) {
// 获取物料编号
Integer mid = ObjectFormatUtil.toInteger( redisPool.getRedisTemplateByDb(15).opsForList().index("mids" + userToken.getId(), i));
Integer mid = ObjectFormatUtil.toInteger(redisPool.getRedisTemplateByDb(15).opsForList().index("mids" + userToken.getId(), i));
// 获取仓库编号
Integer depositoryId = ObjectFormatUtil.toInteger( redisPool.getRedisTemplateByDb(15).opsForList().index("depositoryIds" + userToken.getId(), i));
Integer depositoryId = ObjectFormatUtil.toInteger(redisPool.getRedisTemplateByDb(15).opsForList().index("depositoryIds" + userToken.getId(), i));
// 获取库位编码
String placeCode = (String) ( redisPool.getRedisTemplateByDb(15).opsForList().index("placeCodes" + userToken.getId(), i));
String placeCode = (String) (redisPool.getRedisTemplateByDb(15).opsForList().index("placeCodes" + userToken.getId(), i));
// 获取物料信息
Inventory materialById = materialService.findInventoryById(mid);
// 获取仓库信息
@ -1368,14 +1500,14 @@ public class DepositoryRecordController {
}
sb.append(workwechat).append(",");
}
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(),finalUserkey,finalUsertoken);
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(), finalUserkey, finalUsertoken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", integerList.toString());
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
}
@ -1392,28 +1524,28 @@ public class DepositoryRecordController {
for (RoleAndDepository mt : materialTypeIdForIn
) {
// 获取管理员数据
UserByPort userByPort = LinkInterfaceUtil.FindUserById(mt.getUserId(), finalUserkey,finalUsertoken);
UserByPort userByPort = LinkInterfaceUtil.FindUserById(mt.getUserId(), finalUserkey, finalUsertoken);
String workwechat = userByPort.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = userByPort.getWechat();
}
sb.append(workwechat).append(",");
}
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(),finalUserkey,finalUsertoken);
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(), finalUserkey, finalUsertoken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", integerList.toString());
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
}
});
} else if ("out".equals(type)) {
// 获取部门负责人
List<UserByPort> departmentHeadByUsers = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(), userkey,usertoken);
List<UserByPort> departmentHeadByUsers = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(), userkey, usertoken);
StringBuilder departmentHeadId = new StringBuilder();
StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (UserByPort departmentHeadByUser : departmentHeadByUsers) {
@ -1435,7 +1567,7 @@ public class DepositoryRecordController {
return new RestResponse("", 666, new StatusInfo("申请失败", "超出最大存储容量"));
}
map.put("mid", mid);
Integer res = depositoryRecordService.insertApplicationOutRecord(map, userToken,userkey,usertoken); // 插入主订单
Integer res = depositoryRecordService.insertApplicationOutRecord(map, userToken, userkey, usertoken); // 插入主订单
if (res == 1) { // 如果插入成功
Object id = map.get("id"); // 获取主订单编号
if (id != null) {
@ -1448,15 +1580,15 @@ public class DepositoryRecordController {
// 开启一个线程开启审批
SendQyWxMessageThreadPool.execute(() -> {
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplate(crypt, userToken, ObjectFormatUtil.toInteger(id),finalUserkey,finalUsertoken);
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplate(crypt, userToken, ObjectFormatUtil.toInteger(id), finalUserkey, finalUsertoken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", id.toString());
QyWxApprovalMap.put("otherDepartmentIdList", jsonObject.getString("otherDepartmentIdList"));
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
});
}
@ -1611,14 +1743,14 @@ public class DepositoryRecordController {
}
sb.append(workwechat).append(",");
}
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(),finalUserkey,finalUsertoken);
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(), finalUserkey, finalUsertoken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", integerList.toString());
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
}
@ -1635,21 +1767,21 @@ public class DepositoryRecordController {
for (RoleAndDepository mt : materialTypeIdForIn
) {
// 获取管理员数据
UserByPort userByPort = LinkInterfaceUtil.FindUserById(mt.getUserId(), finalUserkey,finalUsertoken);
UserByPort userByPort = LinkInterfaceUtil.FindUserById(mt.getUserId(), finalUserkey, finalUsertoken);
String workwechat = userByPort.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = userByPort.getWechat();
}
sb.append(workwechat).append(",");
}
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(),finalUserkey,finalUsertoken);
JSONObject jsonObject = qyWxOperationService.sendApprovalTemplateIn(crypt, userToken, integerList, sb.toString(), finalUserkey, finalUsertoken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", integerList.toString());
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
}
});
@ -1661,7 +1793,7 @@ public class DepositoryRecordController {
sumQuantity += integer;
}
// 获取部门负责人
List<UserByPort> departmentHeadByUsers = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(), userkey,usertoken);
List<UserByPort> departmentHeadByUsers = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(), userkey, usertoken);
StringBuilder departmentHeadId = new StringBuilder();
StringBuilder departMentHeadQyWxName = new StringBuilder();
// for (int i = 0; i < departmentHeadByUsers.size(); i++) {
@ -1679,7 +1811,7 @@ public class DepositoryRecordController {
mainRecord.put("quantity", sumQuantity.toString());
mainRecord.put("departmenthead", departmentHeadId.toString());
// 插入主表
depositoryRecordService.insertApplicationOutRecord(mainRecord, userToken,userkey,usertoken);
depositoryRecordService.insertApplicationOutRecord(mainRecord, userToken, userkey, usertoken);
id = ObjectFormatUtil.toInteger(mainRecord.get("id"));
for (int i = 0; i < iids.size(); i++) {
// 出库物料
@ -1750,15 +1882,15 @@ public class DepositoryRecordController {
Integer finalId = id;
// 开启一个线程开启审批
SendQyWxMessageThreadPool.execute(() -> {
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplate(crypt, userToken, ObjectFormatUtil.toInteger(finalId),finalUserkey,finalUsertoken);
JSONObject jsonObject = qyWxOperationService.sendOutApprovalTemplate(crypt, userToken, ObjectFormatUtil.toInteger(finalId), finalUserkey, finalUsertoken);
String sp_no = jsonObject.getString("sp_no");
Map<String, Object> QyWxApprovalMap = new HashMap<>();
QyWxApprovalMap.put("sp_no", sp_no);
QyWxApprovalMap.put("mainId", finalId.toString());
QyWxApprovalMap.put("otherDepartmentIdList", jsonObject.getString("otherDepartmentIdList"));
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_"+sp_no, QyWxApprovalMap);
redisPool.getRedisTemplateByDb(14).opsForHash().putAll("wms_QyWxMessage_" + sp_no, QyWxApprovalMap);
// 设置过期为7天
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_"+sp_no, 7, TimeUnit.DAYS);
redisPool.getRedisTemplateByDb(14).expire("wms_QyWxMessage_" + sp_no, 7, TimeUnit.DAYS);
});
}
@ -1798,7 +1930,7 @@ public class DepositoryRecordController {
if (barCode != null) {
map.put("barCode", barCode);
}
return depositoryRecordService.completeApplicationOutMinRecord(map, userToken, crypt,userKey,token);
return depositoryRecordService.completeApplicationOutMinRecord(map, userToken, crypt, userKey, token);
}
@ -1814,7 +1946,7 @@ public class DepositoryRecordController {
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
if (map.containsKey("id")) {
Integer id = ObjectFormatUtil.toInteger(map.get("id"));
List<String> strings = excelService.writeExcelForPrint(id, 4, userToken,userKey,token);
List<String> strings = excelService.writeExcelForPrint(id, 4, userToken, userKey, token);
List<File> files = new ArrayList<>();
for (String string : strings) {
File file = new File(string);
@ -1860,7 +1992,7 @@ public class DepositoryRecordController {
String header = request.getHeader("user-agent");
String crypt = Md5.crypt(header);
Integer integer = depositoryRecordService.updateOutMinRecordInfo(map, userToken, crypt,userKey,token);
Integer integer = depositoryRecordService.updateOutMinRecordInfo(map, userToken, crypt, userKey, token);
return CrudUtil.updateHandle(integer, 1);
} else {
throw new MyException("缺少必要参数");

193
src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java

@ -369,6 +369,51 @@ public class MaterialController {
return new RestResponse(map, 1, 200);
}
@GetMapping("/findInventoryByIdForImmediately")
public RestResponse findInventoryByIdForImmediately(@RequestParam(value = "mid", required = false) String mid, HttpServletRequest request) {
String token = request.getHeader("user-token");
if (token == null) {
token = (String) request.getSession().getAttribute("userToken");
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
if ("".equals(mid)) {
return new RestResponse("", 0, 200);
}
Inventory inventoryById = materialService.findInventoryById(ObjectFormatUtil.toInteger(mid));
String mcode = inventoryById.getCode();
Map<String, Object> paramByBarcode = new HashMap<>();
paramByBarcode.put("mcode", mcode);
paramByBarcode.put("codeFlag", 1);
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(paramByBarcode);
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
List<Integer> depositoryIdList = new ArrayList<>();
for (Depository depository : depositoryByAdminorg
) {
depositoryIdList.add(depository.getId());
}
paramByBarcode.remove("codeFlag");
paramByBarcode.put("depositoryIds", depositoryIdList);
List<InventoryP> inventoryList = materialService.findInventory(paramByBarcode);
depositoryIdList = new ArrayList<>();
InventoryP materialP = null;
for (InventoryP inventory : inventoryList
) {
depositoryIdList.add(inventory.getDepositoryId());
materialP = inventory;
}
if (materialP != null) {
List<Depository> depositoryByIds = depositoryService.findDepositoryByIds(depositoryIdList);
materialP.setDepositoryList(depositoryByIds);
List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(materialP.getMid());
materialP.setSplitInfoList(splitInfoByMid);
materialP.setMaterialAndBarCodeList(materialByBarCodeByCondition);
}
Map<String, Object> map = new HashMap<>();
map.put("materialById", materialP);
return new RestResponse(map, 1, 200);
}
/**
* 根据物料id与库位id获取物料
*
@ -455,9 +500,6 @@ public class MaterialController {
List<Integer> depositoryIdList = roleService.findDepositoryIdForUserHas(userToken);
// 获取该用户额外可见的仓库
List<Integer> tempDepositoryIdlist = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userToken);
depositoryIdList = (List<Integer>) CollectionUtils.union(tempDepositoryIdlist, depositoryIdList);
// 用于存储存在库存的仓库id
List<Integer> showDepository = new ArrayList<>();
for (Integer depositoryId : depositoryIdList
@ -523,12 +565,71 @@ public class MaterialController {
}
/**
* 用于通过物料编码获取库存信息用于立即出库
*
* @param map 待查询数据
* @param request
* @return
*/
@GetMapping("/findMaterialByCodeForImmediatelyOut")
public RestResponse findMaterialByCodeForImmediatelyOut(@RequestParam Map<String, Object> map, HttpServletRequest request) {
String token = request.getHeader("user-token");
if (token == null) {
token = (String) request.getSession().getAttribute("userToken");
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
String code = map.get("mcode").toString();
if ("".equals(code)) {
return new RestResponse(null, 1, 200);
}
// 获取当前用户部门所拥有及当前用户管理的仓库
List<Integer> depositoryIdForUser = new ArrayList<>();
List<Depository> depositoryByAdminorgAndUser = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
for (Depository depository : depositoryByAdminorgAndUser
) {
depositoryIdForUser.add(depository.getId());
}
map.put("depositoryIds", depositoryIdForUser);
map.remove("depositoryId");
List<InventoryP> inventoryList = materialService.findInventory(map);
List<Integer> depositoryIdList = new ArrayList<>();
InventoryP inventoryP = null;
for (InventoryP inventory : inventoryList
) {
depositoryIdList.add(inventory.getDepositoryId());
inventoryP = inventory;
}
if (inventoryP != null) {
List<Depository> depositoryByIds = depositoryService.findDepositoryByIds(depositoryIdList);
List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(inventoryP.getMid());
Map<String, Object> paramByPrice = new HashMap<>();
paramByPrice.put("mcode", inventoryP.getCode());
paramByPrice.put("codeFlag", 1);
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(paramByPrice);
inventoryP.setMaterialAndBarCodeList(materialByBarCodeByCondition);
inventoryP.setDepositoryList(depositoryByIds);
inventoryP.setSplitInfoList(splitInfoByMid);
}
return new RestResponse(inventoryP, 1, 200);
}
@PostMapping("/findMaterialByCondition")
public RestResponse findMaterialByCondition(@RequestBody Map<String, Object> map) {
List<MaterialP> materialPByCondition = materialService.findMaterialPByCondition(map);
return new RestResponse(materialPByCondition, materialService.findCountByCondition(map), 200);
}
/**
* 根据条件查询库存记录
*
* @param map 待查询条件
* @param request
* @return
*/
@PostMapping("/findInventoryByCondition")
public RestResponse findInventoryByCondition(@RequestBody Map<String, Object> map, HttpServletRequest request) {
String token = request.getHeader("user-token");
@ -542,14 +643,11 @@ public class MaterialController {
List<Integer> depositoryIdList = roleService.findDepositoryIdForUserHas(userToken);
List<Integer> tempDepositoryIDList = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userToken);
depositoryIdList = (List<Integer>) CollectionUtils.union(tempDepositoryIDList, depositoryIdList);
for (Integer depositoryId : depositoryIdList
) {
map.put("depositoryId", depositoryId);
List<InventoryP> inventoryPS = materialService.findInventory(map);
inventoryPList.addAll(inventoryPS);
}
map.remove("depositoryId");
map.put("depositoryIds", depositoryIdList);
inventoryPList = materialService.findInventory(map);
List<Depository> depositoryByIds = depositoryService.findDepositoryByIds(depositoryIdList);
Map<String, Object> paramByBarcode = new HashMap<>();
for (InventoryP inventoryP : inventoryPList) {
@ -572,11 +670,37 @@ public class MaterialController {
inventoryP.setDepositoryList(depositoryByIds);
inventoryP.setPlacePList(placeList);
}
return new RestResponse(inventoryPList, inventoryPList.size(), 200);
}
/**
* 通过条件获取库存记录用于直接出库
*
* @param map
* @param request
* @return
*/
@PostMapping("/findInventoryByConditionForImmediatelyOut")
public RestResponse findInventoryByConditionForImmediatelyOut(@RequestBody Map<String, Object> map, HttpServletRequest request) {
String token = request.getHeader("user-token");
if (token == null) {
token = (String) request.getSession().getAttribute("userToken");
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
// 获取当前用户部门所有拥有的仓库及其管理的仓库
List<Integer> depositoryIdForUser = new ArrayList<>();
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
for (Depository depository : depositoryByAdminorg) {
depositoryIdForUser.add(depository.getId());
}
map.put("depositoryIds", depositoryIdForUser);
List<InventoryP> inventory = materialService.findInventory(map);
Integer inventoryCount = materialService.findInventoryCount(map);
return new RestResponse(inventory, inventoryCount, 200);
}
// 构造物料二维码
@PostMapping("/createQrCode")
public RestResponse createQrCode(@RequestBody Map<String, Object> map) {
@ -978,11 +1102,17 @@ public class MaterialController {
// 获取物料与条形码的对应关系
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(param);
boolean flag = false;
List<Integer> depositoryIdList = roleService.findDepositoryIdForUserHas(userByPort);
List<Integer> tempDepositoryIdList = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userByPort);
depositoryIdList = (List<Integer>) CollectionUtils.union(depositoryIdList, tempDepositoryIdList);
List<Integer> depositoryIdList = new ArrayList<>();
if (map.containsKey("outType")) {
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString());
for (Depository depository : depositoryByAdminorg
) {
depositoryIdList.add(depository.getId());
}
} else {
depositoryIdList = roleService.findDepositoryIdForUserHas(userByPort);
}
for (Integer depositoryId : depositoryIdList) {
param.put("mcode", mcode);
param.put("depositoryId", depositoryId);
@ -1140,9 +1270,16 @@ public class MaterialController {
// 获取条形码与物料的映射
MaterialAndBarCode materialByBarCode = materialService.findMaterialByBarCode(barCode);
if (materialByBarCode != null) {
List<Integer> depositoryIdList = roleService.findDepositoryIdForUserHas(userByPort);
List<Integer> tempDepositoryIdList = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userByPort);
depositoryIdList = (List<Integer>) CollectionUtils.union(depositoryIdList, tempDepositoryIdList);
List<Integer> depositoryIdList = new ArrayList<>();
if(map.containsKey("outType")){
List<Depository> depositoryByAdminorg = depositoryService.findDepositoryByAdminorg(userByPort.getMaindeparment().toString());
for (Depository depository : depositoryByAdminorg
) {
depositoryIdList.add(depository.getId());
}
}else{
depositoryIdList = roleService.findDepositoryIdForUserHas(userByPort);
}
List<PlaceP> placePList = new ArrayList<>();
for (Integer depositoryId : depositoryIdList) {
boolean isExist = false;
@ -1752,11 +1889,12 @@ public class MaterialController {
/**
* 用于获取当前位置该单位下的库存数量
*
* @param map 待查询条件
* @return
*/
@PostMapping("/getQuantityForLocationAndUnit")
public RestResponse getQuantityForLocationAndUnit(@RequestBody Map<String,String> map){
public RestResponse getQuantityForLocationAndUnit(@RequestBody Map<String, String> map) {
// 当前计量单位
String unit = map.get("unit");
// 当前的仓库id
@ -1805,20 +1943,21 @@ public class MaterialController {
quantity = (inventoryById.getQuantity() * Scale / 100.0);
}
}
Map<String,Object> result = new HashMap<>();
result.put("quantity",quantity);
result.put("placeId",placeId);
Map<String, Object> result = new HashMap<>();
result.put("quantity", quantity);
result.put("placeId", placeId);
return new RestResponse(result);
}
/**
* 根据库存id查询库存记录
*
* @param map 待查询数据
* @return
*/
@PostMapping("/findInventoryById")
public RestResponse findInventoryById(@RequestBody Map<String,String> map){
if(map.containsKey("id")){
public RestResponse findInventoryById(@RequestBody Map<String, String> map) {
if (map.containsKey("id")) {
Integer id = ObjectFormatUtil.toInteger(map.get("id"));
Inventory inventoryById = materialService.findInventoryById(id);
InventoryP inventory = new InventoryP(inventoryById);
@ -1827,13 +1966,13 @@ public class MaterialController {
List<SplitInfo> splitInfoByMid = splitUnitService.findSplitInfoByMid(inventoryById.getMid());
inventory.setSplitInfoList(splitInfoByMid);
return new RestResponse(inventoryById);
}else{
} else {
throw new MyException("缺少必要参数");
}
}
@PostMapping("/findInventoryByMcodeAndDepository")
public RestResponse findInventoryByMcodeAndDepository(@RequestBody Map<String,String> map,HttpServletRequest request){
public RestResponse findInventoryByMcodeAndDepository(@RequestBody Map<String, String> map, HttpServletRequest request) {
String token = request.getHeader("user-token");
if (token == null) {
token = (String) request.getSession().getAttribute("userToken");

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

@ -809,6 +809,18 @@ public class PageController {
return mv;
}
/**
* 跳转到出库申请页面
* @param request
* @return
*/
@GetMapping("/application_out_immediately")
public ModelAndView application_out_immediately(HttpServletRequest request) {
ModelAndView mv = new ModelAndView();
mv.setViewName("pages/applicationForStorageCenter/application-out_admin");
return mv;
}
/**
* 用于跳转到出库申请页面(从库存页面跳转而来)
* @param code 当前物料编码

40
src/main/java/com/dreamchaser/depository_manage/controller/UserController.java

@ -114,6 +114,9 @@ public class UserController {
}
@GetMapping("/loginOut")
public RestResponse loginOut(HttpServletRequest request) {
HttpSession session = request.getSession();
@ -133,15 +136,6 @@ public class UserController {
}
/**
* 退出登录,删除令牌的操作依据在拦截器中完成
*
* @return RESPONSE200
*/
/* @GetMapping("/loginOut")
public RestResponse logout() {
return new RestResponse("",200,new StatusInfo("退出成功","退出成功"));
}*/
@GetMapping("/sys/users")
public RestResponse findUsers(@RequestParam Map<String, Object> map) {
return new RestResponse(userService.findUserPsByCondition(map), userService.findCount(), 200);
@ -161,7 +155,6 @@ public class UserController {
token = (String) request.getSession().getAttribute("userToken");
userkey = (String) request.getSession().getAttribute("userKey");
}
UserByPort userToken = AuthenticationTokenPool.getUserToken(token);
String url = PublicConfig.external_url + "/staff/archiveslist";
if (map.containsKey("company")) {
map.put("company", ObjectFormatUtil.toInteger(map.get("company")));
@ -189,8 +182,8 @@ public class UserController {
}
Integer total = ObjectFormatUtil.toInteger(data.get("total"));
List<UserByPortP> userByPortList = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
UserByPort userByPort = JSONObject.toJavaObject((JSONObject) list.get(i), UserByPort.class);
for (Object o : list) {
UserByPort userByPort = JSONObject.toJavaObject((JSONObject) o, UserByPort.class);
UserByPortP user = new UserByPortP(userByPort);
Map<String, Object> param = new HashMap<>();
param.put("userId", userByPort.getId());
@ -210,6 +203,27 @@ public class UserController {
return new RestResponse(userByPortList, total, 200);
}
@PostMapping("/sys/findUserByName")
public RestResponse findUserByName(@RequestBody Map<String,String> map,HttpServletRequest request){
Map<String, Object> paramForUser = new HashMap<>();
paramForUser.put("name",map.get("name"));
String token = request.getHeader("user-token");
String userkey = request.getHeader("user-key");
if (token == null) {
token = (String) request.getSession().getAttribute("userToken");
userkey = (String) request.getSession().getAttribute("userKey");
}
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForUser, userkey, token);
List<UserByPortP> userByPortP = new ArrayList<>();
for (UserByPort userByPort : userByPortList) {
userByPortP.add(new UserByPortP(userByPort));
}
return new RestResponse(userByPortP,userByPortP.size(),200);
}
/**
* 添加用户管理仓库的权限
*
@ -246,6 +260,8 @@ public class UserController {
}
/**
* 添加用户管理仓库的权限
*

20
src/main/java/com/dreamchaser/depository_manage/security/pool/HandlesOtherFunctionalThreadPool.java

@ -16,4 +16,24 @@ public class HandlesOtherFunctionalThreadPool {
exs.execute(runnable);
}
public static void close(){
exs.shutdown(); // 禁止提交新任务
// 设定最大重试次数
try {
// 等待 60 s
if (!exs.awaitTermination(60, TimeUnit.SECONDS)) {
// 调用 shutdownNow 取消正在执行的任务
exs.shutdownNow();
// 再次等待 60 s,如果还未结束,可以再次尝试,或者直接放弃
if (!exs.awaitTermination(60, TimeUnit.SECONDS))
System.err.println("线程池任务未正常执行结束");
}
} catch (InterruptedException ie) {
// 重新调用 shutdownNow
exs.shutdownNow();
}
}
}

1
src/main/java/com/dreamchaser/depository_manage/service/DepositoryService.java

@ -225,4 +225,5 @@ public interface DepositoryService {
List<InventoryByMTAndDepository> getTodayInventoryInfoByDidAndMt(Integer did);
}

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

@ -817,6 +817,8 @@ public class DepositoryServiceImpl implements DepositoryService {
return result;
}
// 根据id获取子类
public List<Long> findChildForMaterialTypeByParent(Long mtId) {
List<Long> result = new ArrayList<>();

12
src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java

@ -2570,7 +2570,17 @@ public class MaterialServiceImpl implements MaterialService {
// 获取所有物料类型
List<MaterialType> materialTypeAll = materialTypeMapper.findMaterialTypeAll();
// 获取当前用户所可见的仓库id
List<Integer> depositoryIdForUserHas = roleService.findDepositoryIdForUserHas(userToken);
List<Integer> depositoryIdForUserHas = new ArrayList<>();
if("immediately".equals(type)){
List<Depository> depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
for (Depository depository:depositoryByAdminorg
) {
depositoryIdForUserHas.add(depository.getId());
}
type = "2";
}else{
depositoryIdForUserHas = roleService.findDepositoryIdForUserHas(userToken);
}
// 物料总数
int totalVal = materialTypeAll.size();

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

@ -1836,6 +1836,411 @@ public class QyWxOperationService {
}
/**
* 用于发送物料出库审批(用于立即出库)
*
* @param userAgent 加密后的userAgent
* @param userToken 申请人
* @param mainId 出库的主订单
* @return 发送结果
*/
public JSONObject sendOutApprovalTemplateForImmediately(String userAgent, UserByPort userToken, Integer mainId,String userKey,String token) {
// 获取当前出库主订单
ApplicationOutRecord mainRecord = depositoryRecordMapper.findApplicationOutRecordPById(mainId);
// 事先定义其他部门负责人列表
List<String> otherDepartmentIdList = new ArrayList<>();
// 获取当前出库明细
List<ApplicationOutRecordMin> minRecordList = depositoryRecordMapper.findApplicationOutRecordMinByParent(mainId);
// 定义审批模板
ApprovalTemplate approvalTemplate = new ApprovalTemplate();
// 获取申请人的userId
String workwechat = userToken.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) {
workwechat = userToken.getWechat();
}
// 设置申请人
approvalTemplate.setCreator_userid(workwechat);
// 设置模板id
approvalTemplate.setTemplate_id(QyWxConfig.out_approval_template_id);
// 设置审批人模式为通过接口设置(系统内部自定义)
approvalTemplate.setUse_template_approver(0);
//审批流程信息,用于指定审批申请的审批流程,支持单人审批、多人会签、多人或签,可能有多个审批节点,仅use_template_approver为0时生效。
List<Approval_template_approver> approval_template_approver_list = new ArrayList<>();
List<String> userIdList = new ArrayList<>();
List<UserByPort> departmentHeadForUserToken = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(),userKey,token );
for (UserByPort departmentHead : departmentHeadForUserToken
) {
String departmentHeadWorkwechat = departmentHead.getWorkwechat();
if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) {
departmentHeadWorkwechat = departmentHead.getWechat();
}
userIdList.add(departmentHeadWorkwechat);
}
// 获取当前登录用户部门与企业微信部门对照
JSONObject userPortByQyWx = PublicConfig.getUserPortByQyWx(userToken.getMaindeparment());
String portName = userPortByQyWx.getString("name");
Integer portByQyWxInteger = userPortByQyWx.getInteger("wechatorganizationid");
// 用于设置部门负责人流程
Approval_template_approver approval_template_approver_departMentHeader = new Approval_template_approver();
approval_template_approver_departMentHeader.setAttr(1);
userIdList = new ArrayList<>(Collections.singleton("PangFuZhen"));
approval_template_approver_departMentHeader.setUserid(userIdList);
approval_template_approver_list.add(approval_template_approver_departMentHeader);
// 审批申请数据,可定义审批申请中各个控件的值,其中必填项必须有值,选填项可为空,数据结构同“获取审批申请详情”接口返回值中同名参数“apply_data”
Approval_template_apply_data approval_template_apply_data = new Approval_template_apply_data();
// 定义控件列表
List<Approval_template_apply_data_contents> approval_template_apply_data_contents_list = new ArrayList<>();
//定义模板控件——发起人
Approval_template_apply_data_contents approval_template_apply_data_contents_initiator = new Approval_template_apply_data_contents();
// 控件类型
approval_template_apply_data_contents_initiator.setControl("Contact");
// 控件id
approval_template_apply_data_contents_initiator.setId("Contact-1668051509196");
// 成员控件值(control参数为Contact,且value参数为members)
Map<String, Object> members_initiator = new HashMap<>();
Map<String, String> contact_user = new HashMap<>();
List<Map<String, String>> membersMap_initiator = new ArrayList<>();
contact_user.put("userid", workwechat);
contact_user.put("name", userToken.getName());
membersMap_initiator.add(contact_user);
members_initiator.put("members", membersMap_initiator);
approval_template_apply_data_contents_initiator.setValue(members_initiator);
// 添加到控件列表
approval_template_apply_data_contents_list.add(approval_template_apply_data_contents_initiator);
//定义模板控件——发起时间
Approval_template_apply_data_contents approval_template_apply_data_contents_time = new Approval_template_apply_data_contents();
approval_template_apply_data_contents_time.setControl("Date");
approval_template_apply_data_contents_time.setId("Date-1668051535322");
Map<String, Object> members_time = new HashMap<>();
Map<String, String> contact_time = new HashMap<>();
contact_time.put("type", "hour");
contact_time.put("s_timestamp", String.valueOf(System.currentTimeMillis() / 1000));
members_time.put("date", contact_time);
approval_template_apply_data_contents_time.setValue(members_time);
// 添加到控件列表
approval_template_apply_data_contents_list.add(approval_template_apply_data_contents_time);
//定义模板控件——所在部门
Approval_template_apply_data_contents approval_template_apply_data_contents_department = new Approval_template_apply_data_contents();
approval_template_apply_data_contents_department.setControl("Contact");
approval_template_apply_data_contents_department.setId("Contact-1668048405619");
// 部门控件值(control参数为Contact,且value参数为departments)
Map<String, Object> members_department = new HashMap<>();
Map<String, String> contact_department = new HashMap<>();
List<Map<String, String>> membersMap_department = new ArrayList<>();
contact_department.put("openapi_id", portByQyWxInteger.toString());
contact_department.put("name", portName);
membersMap_department.add(contact_department);
members_department.put("departments", membersMap_department);
approval_template_apply_data_contents_department.setValue(members_department);
// 添加到控件列表
approval_template_apply_data_contents_list.add(approval_template_apply_data_contents_department);
// 获取当前登录用户请求时的备注
String applyRemark = mainRecord.getApplyRemark();
if (applyRemark == null) {
applyRemark = "";
}
//定义模板控件——申请备注
Approval_template_apply_data_contents approval_template_apply_data_contents_applyRemark = new Approval_template_apply_data_contents();
approval_template_apply_data_contents_applyRemark.setControl("Textarea");
approval_template_apply_data_contents_applyRemark.setId("Textarea-1668046298633");
Map<String, String> applyRemark_text = new HashMap<>();
applyRemark_text.put("text", applyRemark);
approval_template_apply_data_contents_applyRemark.setValue(applyRemark_text);
// 添加到控件列表
approval_template_apply_data_contents_list.add(approval_template_apply_data_contents_applyRemark);
//定义模板控件——明细
Approval_template_apply_data_contents approval_template_apply_data_contents_info = new Approval_template_apply_data_contents();
approval_template_apply_data_contents_info.setControl("Table");
approval_template_apply_data_contents_info.setId("Table-1668046309360");
// 定义明细列表
List<Object> contents_detail = new ArrayList<>();
// 定义仓库Id列表
List<Integer> depositoryIdList = new ArrayList<>();
for (ApplicationOutRecordMin recordMin : minRecordList) {
// 获取明细信息
// 获取当前出库物料
Inventory materialById = materialMapper.findInventoryById(recordMin.getMid());
// 获取当前物料所在仓库
Integer depositoryId = recordMin.getDepositoryId();
Depository depositoryById = depositoryMapper.findDepositoryById(depositoryId);
if (!depositoryIdList.contains(depositoryId)) {
// 如果当前仓库列表中不存在该仓库id
depositoryIdList.add(depositoryId);
}
Map<String, Object> detail_list = new HashMap<>();
// 定义明细种的控件列表
List<Object> detail_list_control = new ArrayList<>();
// 物料名称
Map<String, Object> detail_list_control_info_materialName = new HashMap<>();
detail_list_control_info_materialName.put("control", "Text");
detail_list_control_info_materialName.put("id", "Text-1668046310921");
Map<String, String> detail_list_control_info_title_materialName = new HashMap<>();
detail_list_control_info_title_materialName.put("text", "物料名称");
detail_list_control_info_title_materialName.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_materialName = new ArrayList<>();
detail_list_control_info_title_list_materialName.add(detail_list_control_info_title_materialName);
detail_list_control_info_materialName.put("title", detail_list_control_info_title_list_materialName);
Map<String, String> detail_list_control_info_value_Mname = new HashMap<>();
detail_list_control_info_value_Mname.put("text", materialById.getMname());
detail_list_control_info_materialName.put("value", detail_list_control_info_value_Mname);
// 物料编码
Map<String, Object> detail_list_control_info_materialCode = new HashMap<>();
detail_list_control_info_materialCode.put("control", "Text");
detail_list_control_info_materialCode.put("id", "Text-1668046336721");
Map<String, String> detail_list_control_info_title_materialCode = new HashMap<>();
detail_list_control_info_title_materialCode.put("text", "物料编码");
detail_list_control_info_title_materialCode.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_Code = new ArrayList<>();
detail_list_control_info_title_list_Code.add(detail_list_control_info_title_materialCode);
detail_list_control_info_materialCode.put("title", detail_list_control_info_title_list_Code);
Map<String, String> detail_list_control_info_value_Code = new HashMap<>();
detail_list_control_info_value_Code.put("text", materialById.getCode());
detail_list_control_info_materialCode.put("value", detail_list_control_info_value_Code);
// 请求数量
Map<String, Object> detail_list_control_info_outNumber = new HashMap<>();
detail_list_control_info_outNumber.put("control", "Number");
detail_list_control_info_outNumber.put("id", "Number-1668051559772");
Map<String, String> detail_list_control_info_title_outNumber = new HashMap<>();
detail_list_control_info_title_outNumber.put("text", "数量");
detail_list_control_info_title_outNumber.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_outNumber = new ArrayList<>();
detail_list_control_info_title_list_outNumber.add(detail_list_control_info_title_outNumber);
detail_list_control_info_outNumber.put("title", detail_list_control_info_title_list_outNumber);
Map<String, String> detail_list_control_info_value_outNumber = new HashMap<>();
detail_list_control_info_value_outNumber.put("new_number", String.valueOf(recordMin.getQuantity() / 100));
detail_list_control_info_outNumber.put("value", detail_list_control_info_value_outNumber);
// 请求单位
Map<String, Object> detail_list_control_info_unit = new HashMap<>();
detail_list_control_info_unit.put("control", "Text");
detail_list_control_info_unit.put("id", "Text-1672816068840");
Map<String, String> detail_list_control_info_title_unit = new HashMap<>();
detail_list_control_info_title_unit.put("text", "单位");
detail_list_control_info_title_unit.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_unit = new ArrayList<>();
detail_list_control_info_title_list_unit.add(detail_list_control_info_title_unit);
detail_list_control_info_unit.put("title", detail_list_control_info_title_list_unit);
Map<String, String> detail_list_control_info_value_unit = new HashMap<>();
// 定义出库单位
String unit = recordMin.getUnit();
if ("-1".equals(unit)) {
unit = materialById.getUnit();
}
detail_list_control_info_value_unit.put("text", unit);
detail_list_control_info_unit.put("value", detail_list_control_info_value_unit);
// 仓库名称
Map<String, Object> detail_list_control_info_depositoryName = new HashMap<>();
detail_list_control_info_depositoryName.put("control", "Text");
detail_list_control_info_depositoryName.put("id", "Text-1668137728919");
Map<String, String> detail_list_control_info_title_depositoryName = new HashMap<>();
detail_list_control_info_title_depositoryName.put("text", "所在仓库");
detail_list_control_info_title_depositoryName.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_depositoryName = new ArrayList<>();
detail_list_control_info_title_list_depositoryName.add(detail_list_control_info_title_depositoryName);
detail_list_control_info_depositoryName.put("title", detail_list_control_info_title_list_depositoryName);
Map<String, String> detail_list_control_info_value_dname = new HashMap<>();
detail_list_control_info_value_dname.put("text", depositoryById.getDname());
detail_list_control_info_depositoryName.put("value", detail_list_control_info_value_dname);
// 物料规格型号
Map<String, Object> detail_list_control_info_version = new HashMap<>();
detail_list_control_info_version.put("control", "Text");
detail_list_control_info_version.put("id", "Text-1672879620723");
Map<String, String> detail_list_control_info_title_version = new HashMap<>();
detail_list_control_info_title_version.put("text", "规格型号");
detail_list_control_info_title_version.put("lang", "zh_CN");
List<Object> detail_list_control_info_title_list_version = new ArrayList<>();
detail_list_control_info_title_list_version.add(detail_list_control_info_title_version);
detail_list_control_info_version.put("title", detail_list_control_info_title_list_version);
Map<String, String> detail_list_control_info_value_version = new HashMap<>();
detail_list_control_info_value_version.put("text", materialById.getVersion() == null ? "" : materialById.getVersion());
detail_list_control_info_version.put("value", detail_list_control_info_value_version);
detail_list_control.add(detail_list_control_info_materialName);
detail_list_control.add(detail_list_control_info_materialCode);
detail_list_control.add(detail_list_control_info_version);
detail_list_control.add(detail_list_control_info_outNumber);
detail_list_control.add(detail_list_control_info_unit);
detail_list_control.add(detail_list_control_info_depositoryName);
detail_list.put("list", detail_list_control);
contents_detail.add(detail_list);
}
Map<String, Object> approval_template_apply_data_contents_info_children = new HashMap<>();
approval_template_apply_data_contents_info_children.put("children", contents_detail);
approval_template_apply_data_contents_info.setValue(approval_template_apply_data_contents_info_children);
// 添加到控件列表
approval_template_apply_data_contents_list.add(approval_template_apply_data_contents_info);
// 将控件列表添加到审批申请数据
approval_template_apply_data.setContents(approval_template_apply_data_contents_list);
// 定义摘要信息,用于显示在审批通知卡片、审批列表的摘要信息,最多3行
List<Object> approval_template_apply_data_contents_summary_list = new ArrayList<>();
Approval_template_summary_info summary_info_name = new Approval_template_summary_info();
summary_info_name.setText("发起人:" + userToken.getName());
summary_info_name.setLang("zh_CN");
Approval_template_summary_info summary_info_time = new Approval_template_summary_info();
summary_info_time.setText("发起时间:" + DateUtil.TimeStampToDateTime(Long.valueOf(mainRecord.getApplicantTime())));
summary_info_time.setLang("zh_CN");
Approval_template_summary_info summary_info_department = new Approval_template_summary_info();
summary_info_department.setText("所在部门:" + portName);
summary_info_department.setLang("zh_CN");
// 发起人
Map<String, Object> summary_info_name_map = new HashMap<>();
List<Approval_template_summary_info> summary_info_name_list = new ArrayList<>();
summary_info_name_list.add(summary_info_name);
summary_info_name_map.put("summary_info", summary_info_name_list);
// 发起时间
Map<String, Object> summary_info_time_map = new HashMap<>();
List<Approval_template_summary_info> summary_info_time_list = new ArrayList<>();
summary_info_time_list.add(summary_info_time);
summary_info_time_map.put("summary_info", summary_info_time_list);
// 所在部门
Map<String, Object> summary_info_department_map = new HashMap<>();
List<Approval_template_summary_info> summary_info_time_department = new ArrayList<>();
summary_info_time_department.add(summary_info_department);
summary_info_department_map.put("summary_info", summary_info_time_department);
approval_template_apply_data_contents_summary_list.add(summary_info_name_map);
approval_template_apply_data_contents_summary_list.add(summary_info_time_map);
approval_template_apply_data_contents_summary_list.add(summary_info_department_map);
// 将摘要信息添加到模板中
approvalTemplate.setSummary_list(approval_template_apply_data_contents_summary_list);
//审批申请数据,可定义审批申请中各个控件的值,其中必填项必须有值,选填项可为空
approvalTemplate.setApply_data(approval_template_apply_data);
//抄送方式:1-提单时抄送(默认值); 2-单据通过后抄送;3-提单和单据通过后抄送。仅use_template_approver为0时生效。
approvalTemplate.setNotify_type(2);
// 获取仓储中心负责人标签的用户userId
List<String> qyWxLabelUserList = QyWxConfig.getQyWxLabelUserList(userAgent);
// 用于设置仓储中心负责人流程
Approval_template_approver approval_template_approver_Label = new Approval_template_approver();
approval_template_approver_Label.setAttr(1);
approval_template_approver_Label.setUserid(qyWxLabelUserList);
approval_template_approver_list.add(approval_template_approver_Label);
for (Integer depositoryId : depositoryIdList
) {
// 获取当前仓库的管理员列表
List<Integer> userIdByDid = roleMapper.findUserIdByDid(depositoryId);
// 获取当前管理员的企业微信userId
List<String> qywxUserIdList = new ArrayList<>();
for (Integer userId : userIdByDid
) {
// 获取对应管理员信息
UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey,token);
String user = userByPort.getWorkwechat();
if (user == null || "".equals(user)) {
user = userByPort.getWechat();
}
qywxUserIdList.add(user);
}
if (qywxUserIdList.size() > 0) {
// 用于设置仓库管理员流程
Approval_template_approver approval_template_approver_depository_manager = new Approval_template_approver();
approval_template_approver_depository_manager.setAttr(1);
approval_template_approver_depository_manager.setUserid(qywxUserIdList);
approval_template_approver_list.add(approval_template_approver_depository_manager);
}
}
// 设置审批流程
approvalTemplate.setApprover(approval_template_approver_list);
// 获取最终模板字符串
String jsonString = JSONObject.toJSONString(approvalTemplate);
String url = String.format("https://qyapi.weixin.qq.com/cgi-bin/oa/applyevent?access_token=%s", QyWxConfig.GetQYWXToken(userAgent));
String s = HttpUtils.doPost(url, jsonString);
JSONObject jsonObject = JSONObject.parseObject(s);
jsonObject.put("otherDepartmentIdList", JSONObject.toJSONString(otherDepartmentIdList));
return jsonObject;
}
/**
* 用于发送入库审批
*

3
src/main/java/com/dreamchaser/depository_manage/service/impl/RoleServiceImpl.java

@ -466,6 +466,9 @@ public class RoleServiceImpl implements RoleService {
}
/**
* 获取当前仓库的子仓库
*

14
src/main/resources/static/css/public.css

@ -297,3 +297,17 @@ body {
left: 15px;
}
.userItem{
margin: 20px 10px ;
}
.userItemLabel{
}
.userItemBtn{
display: inline-block;
}

1996
src/main/resources/templates/pages/applicationForStorageCenter/application-out_admin.html

File diff suppressed because it is too large

10
src/main/resources/templates/pages/applicationForStorageCenter/applicationSeletUser.html

@ -0,0 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>选择人员</title>
</head>
<body>
</body>
</html>

37
src/test/java/com/dreamchaser/depository_manage/OtherTest.java

@ -7,6 +7,7 @@ import com.dreamchaser.depository_manage.entity.UserByPort;
import com.dreamchaser.depository_manage.pojo.callBackXml.approvalCallBackXml.ApprovalInfo_Details;
import com.dreamchaser.depository_manage.pojo.callBackXml.approvalCallBackXml.ApprovalInfo_Details_Approver;
import com.dreamchaser.depository_manage.pojo.callBackXml.callBackXml_button_templatecard.TemplateCard;
import com.dreamchaser.depository_manage.security.pool.HandlesOtherFunctionalThreadPool;
import com.dreamchaser.depository_manage.security.pool.RedisPool;
import com.dreamchaser.depository_manage.mapper.DepositoryMapper;
import com.dreamchaser.depository_manage.service.*;
@ -28,6 +29,9 @@ import org.springframework.test.context.junit4.SpringRunner;
import java.lang.reflect.Field;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ -91,31 +95,12 @@ public class OtherTest {
@Test
public void main() {
// UserByPort userByPort = LinkInterfaceUtil.FindUserById(6235, null, null);
ApprovalInfo_Details approvalInfo_details = new ApprovalInfo_Details();
ApprovalInfo_Details_Approver approver = new ApprovalInfo_Details_Approver();
approver.setUserId("PangFuZhen");
approvalInfo_details.setApprover(approver);
// depositoryRecordService.reviewByQyWxApprovalIn("[141]",approvalInfo_details,"d35f243c9791341c148f7826994829ec","2","202305050008");
// stockTakingService.reviewByQyWxApproval("4",approvalInfo_details,"d35f243c9791341c148f7826994829ec","2","202305050010");
// List<Long> list = new ArrayList<>();
// list.add(4L);
// JSONObject jsonObject = qyWxOperationService.sendQyWxToStockTakingMessage("PangFuZhen,", 4, list, "d35f243c9791341c148f7826994829ec","","");
// Map<String, String> stringObjectMap = objectToMap(userByPort);
// redisPool.getRedisTemplateByDb(5).opsForHash().putAll(PublicConfig.userInfoRedisPrefix+"300450",stringObjectMap);
// System.out.println(stringObjectMap);
// UserByPort userByPort = getLoginUserInformation("e3bfa398fe9d0e1ab78a00ff59eff788");
// System.out.println(userByPort);
// ExecutorService exs = new ThreadPoolExecutor(10, 10, 100, TimeUnit.SECONDS, new LinkedBlockingQueue<>(10));
}
@Test
public void StockTakingTest(){
public void StockTakingTest() {
ApprovalInfo_Details approvalInfo_details = new ApprovalInfo_Details();
ApprovalInfo_Details_Approver approver = new ApprovalInfo_Details_Approver();
approver.setUserId("PangFuZhen");
@ -126,28 +111,28 @@ public class OtherTest {
TemplateCard templateCard = new TemplateCard();
templateCard.setFromUserName("PangFuZhen");
templateCard.setEventKey("wms_completepass_StockTakingId4");
stockTakingService.completeStockTakingByQyWx(templateCard,"e3bfa398fe9d0e1ab78a00ff59eff788");
stockTakingService.completeStockTakingByQyWx(templateCard, "e3bfa398fe9d0e1ab78a00ff59eff788");
}
@Test
public void ApplicationInTest(){
public void ApplicationInTest() {
ApprovalInfo_Details approvalInfo_details = new ApprovalInfo_Details();
ApprovalInfo_Details_Approver approver = new ApprovalInfo_Details_Approver();
approver.setUserId("PangFuZhen");
approvalInfo_details.setApprover(approver);
depositoryRecordService.reviewByQyWxApprovalIn("[142, 143]",approvalInfo_details,"d35f243c9791341c148f7826994829ec","2","202305050015");
depositoryRecordService.reviewByQyWxApprovalIn("[142, 143]", approvalInfo_details, "d35f243c9791341c148f7826994829ec", "2", "202305050015");
}
@Test
public void ApplicationOutTest(){
public void ApplicationOutTest() {
ApprovalInfo_Details approvalInfo_details = new ApprovalInfo_Details();
ApprovalInfo_Details_Approver approver = new ApprovalInfo_Details_Approver();
approver.setUserId("PangFuZhen");
approvalInfo_details.setApprover(approver);
depositoryRecordService.reviewByQyWxApprovalOut("29",approvalInfo_details,"d35f243c9791341c148f7826994829ec","2","",true,2);
depositoryRecordService.reviewByQyWxApprovalOut("29", approvalInfo_details, "d35f243c9791341c148f7826994829ec", "2", "", true, 2);
}
}

Loading…
Cancel
Save