Browse Source

修改审批后的管理员获取

lwx_dev
erdanergou 3 years ago
parent
commit
08c3c3b052
  1. 1
      src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java
  2. 391
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  3. 205
      src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java
  4. 65
      src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java

1
src/main/java/com/dreamchaser/depository_manage/mapper/RoleMapper.java

@ -101,6 +101,7 @@ public interface RoleMapper {
*/ */
List<Integer> findUserIdByMtId(Long mtId); List<Integer> findUserIdByMtId(Long mtId);
/** /**
* 根据条件获取权限 * 根据条件获取权限
* *

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

@ -270,7 +270,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
map.put("code", code); map.put("code", code);
map.put("pass", 3); map.put("pass", 3);
map.put("quantity", quantity); map.put("quantity", quantity);
log.info("插入出库申请主表:"+JSONObject.toJSONString(map)); log.info("插入出库申请主表:" + JSONObject.toJSONString(map));
return depositoryRecordMapper.insertApplicationOutRecord(map); return depositoryRecordMapper.insertApplicationOutRecord(map);
} }
@ -732,10 +732,26 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
flagForApproval = true; flagForApproval = true;
StringBuilder approverId = new StringBuilder(); StringBuilder approverId = new StringBuilder();
for (RoleAndDepository roleAndDepository : roleAndDepositoryByDid) { for (RoleAndDepository roleAndDepository : roleAndDepositoryByDid) {
approverId.append(roleAndDepository.getUserId()).append(","); // 获取该权限类型
int classes = roleAndDepository.getClasses();
// 获取userid
Integer userId = roleAndDepository.getUserId();
if (classes == 1) {
// 如果是对人设置权限
approverId.append(userId).append(",");
} else {
// 如果是对岗位
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndDepository.getUserId());
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, null, null);
for (UserByPort userByPort : userByPortList) {
approverId.append(userByPort.getId()).append(",");
}
}
} }
map.put("approverId", approverId.toString()); map.put("approverId", approverId.toString());
} }
if (isApprovalPass) { if (isApprovalPass) {
if (flagForApproval) { if (flagForApproval) {
@ -752,12 +768,23 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
map.put("inType", "mt"); map.put("inType", "mt");
// 获取当前类别物料是否需要审批 // 获取当前类别物料是否需要审批
List<RoleAndMaterialType> roleAndMaterials = roleService.findRoleAndMaterialTypeByMtId(materialById.getMaterialTypeId()); List<RoleAndMaterialType> roleAndMaterials = roleService.findRoleAndMaterialTypeByMtId(materialById.getMaterialTypeId());
if (roleAndMaterials.size() > 0) { if (roleAndMaterials.size() > 0) {
flagForApproval = true; flagForApproval = true;
StringBuilder approverId = new StringBuilder(); StringBuilder approverId = new StringBuilder();
for (RoleAndMaterialType roleAndMaterialType : roleAndMaterials) { for (RoleAndMaterialType roleAndMaterialType : roleAndMaterials) {
approverId.append(roleAndMaterialType.getUid()).append(","); Integer classes = roleAndMaterialType.getClasses();
Integer uid = roleAndMaterialType.getUid();
if (classes == 1) {
approverId.append(uid).append(",");
} else {
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", uid);
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, null, null);
for (UserByPort userByPort : userByPortList) {
approverId.append(userByPort.getId()).append(",");
}
}
} }
map.put("approverId", approverId.toString()); map.put("approverId", approverId.toString());
} }
@ -913,7 +940,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 修改库存记录 // 修改库存记录
materialMapper.updateInventory(inventoryById); materialMapper.updateInventory(inventoryById);
} }
log.info("插入出库申请子表"+JSONObject.toJSONString(map)); log.info("插入出库申请子表" + JSONObject.toJSONString(map));
return depositoryRecordMapper.insertApplicationOutRecordMin(map); return depositoryRecordMapper.insertApplicationOutRecordMin(map);
} }
@ -2277,6 +2304,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
if (!flagForMtOrDepository) { if (!flagForMtOrDepository) {
// 如果是通过类型 // 如果是通过类型
StringBuilder QyWxUid = new StringBuilder();
// 获取当前仓库下的子订单 // 获取当前仓库下的子订单
Long materialTypeId = inventory.getMaterialTypeId(); Long materialTypeId = inventory.getMaterialTypeId();
if (!findThisIdIsExistForMaterialType(materialTypeIdList, materialTypeId)) { if (!findThisIdIsExistForMaterialType(materialTypeIdList, materialTypeId)) {
@ -2292,26 +2321,46 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
minIdList.add(applicationOutRecordMin.getId()); minIdList.add(applicationOutRecordMin.getId());
minIdByMaterialType.put("materialType" + materialTypeId, minIdList); minIdByMaterialType.put("materialType" + materialTypeId, minIdList);
// 获取该物料所处仓库的仓库管理员 // 获取该物料所处类型的管理员
List<Integer> userIdByDid = new ArrayList<>(); List<Integer> userIdByDid = new ArrayList<>();
userIdByDid = roleService.findUserIdByMtId(inventory.getMaterialTypeId());
StringBuilder QyWxUid = new StringBuilder(); // 用于查询对应的管理员权限
Map<String, Object> paramForUserManager = new HashMap<>();
paramForUserManager.put("mtid", materialTypeId);
List<RoleAndMaterialType> roleAndMaterialTypeByCondition = roleService.findRoleAndMaterialTypeByCondition(paramForUserManager);
for (RoleAndMaterialType roleAndMaterialType : roleAndMaterialTypeByCondition) {
int classes = roleAndMaterialType.getClasses();
if (classes == 1) {
// 如果是对人设置的权限
userIdByDid.add(roleAndMaterialType.getUid());
} else {
// 如果是对岗位
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndMaterialType.getUid());
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, userKey, token);
for (UserByPort userByPort1 : userByPortList) {
Integer userId1 = userByPort1.getId();
// 修改redis中用户的数据
updateRedisDataForUserManager(userId1, minRecordKey);
minRecordManage.append(userId1).append(",");
// 获取企业微信id或微信id
String userByPortWorkwechat = userByPort1.getWorkwechat();
if (userByPortWorkwechat == null || "".equals(userByPortWorkwechat)) {
userByPortWorkwechat = userByPort1.getWechat();
}
QyWxUid.append(userByPortWorkwechat).append(",");
}
}
}
for (Integer integer : userIdByDid) { for (Integer integer : userIdByDid) {
// 获取仓库管理员信息 // 获取仓库管理员信息
UserByPort manager = LinkInterfaceUtil.FindUserById(integer, null, null); UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token);
// 仓库管理员订单信息 updateRedisDataForUserManager(integer, minRecordKey);
Map<String, Object> userRecord = new HashMap<>();
// 用户当前子订单
String userMinRecord = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get("user:" + integer, "minRecord");
if (userMinRecord == null) { // 如果当前用户没有子订单
userRecord.put("minRecord", "[" + minRecordKey + "," + "]"); // 插入一条子订单
} else { // 如果当前用户已经有子订单
StringBuilder minRecordList = new StringBuilder(userMinRecord); // 转为stringbuilder类型
minRecordList.insert(1, minRecordKey + ",");// 将当前子订单插入头部
userRecord.put("minRecord", minRecordList.toString());
}
// 更新redis中用户记录
redisPool.getRedisTemplateByDb(15).opsForHash().putAll("user:" + integer, userRecord);
minRecordManage.append(integer).append(","); minRecordManage.append(integer).append(",");
String workwechat = manager.getWorkwechat(); String workwechat = manager.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) { if (workwechat == null || "".equals(workwechat)) {
@ -2335,6 +2384,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 如果是通过仓库 // 如果是通过仓库
StringBuilder QyWxUid = new StringBuilder();
if (!findThisIdIsExistForDepository(depositoryIdList, depositoryId)) { if (!findThisIdIsExistForDepository(depositoryIdList, depositoryId)) {
// 如果当前仓库id没有存入过 // 如果当前仓库id没有存入过
depositoryIdList.add(depositoryId); depositoryIdList.add(depositoryId);
@ -2350,24 +2401,45 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 获取该物料所处仓库的仓库管理员 // 获取该物料所处仓库的仓库管理员
List<Integer> userIdByDid = new ArrayList<>(); List<Integer> userIdByDid = new ArrayList<>();
userIdByDid = roleService.findUserIdByDid(depositoryId);
StringBuilder QyWxUid = new StringBuilder(); // 用于查询对应的管理员权限
Map<String, Object> paramForUserManager = new HashMap<>();
paramForUserManager.put("depositoryId", depositoryId);
List<RoleAndDepository> roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(paramForUserManager);
for (RoleAndDepository roleAndDepository : roleAndDepositoryByCondition) {
int classes = roleAndDepository.getClasses();
if (classes == 1) {
// 如果是对人设置的权限
userIdByDid.add(roleAndDepository.getUserId());
} else {
// 如果是对岗位
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndDepository.getUserId());
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, userKey, token);
for (UserByPort userByPort1 : userByPortList) {
Integer userId1 = userByPort1.getId();
// 修改redis中用户的数据
updateRedisDataForUserManager(userId1, minRecordKey);
minRecordManage.append(userId1).append(",");
// 获取企业微信id或微信id
String userByPortWorkwechat = userByPort1.getWorkwechat();
if (userByPortWorkwechat == null || "".equals(userByPortWorkwechat)) {
userByPortWorkwechat = userByPort1.getWechat();
}
QyWxUid.append(userByPortWorkwechat).append(",");
}
}
}
for (Integer integer : userIdByDid) { for (Integer integer : userIdByDid) {
// 修改redis中用户的数据
updateRedisDataForUserManager(integer, minRecordKey);
// 获取仓库管理员信息 // 获取仓库管理员信息
UserByPort manager = LinkInterfaceUtil.FindUserById(integer, null, null); UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token);
// 仓库管理员订单信息
Map<String, Object> userRecord = new HashMap<>();
// 用户当前子订单
String userMinRecord = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get("user:" + integer, "minRecord");
if (userMinRecord == null) { // 如果当前用户没有子订单
userRecord.put("minRecord", "[" + minRecordKey + "," + "]"); // 插入一条子订单
} else { // 如果当前用户已经有子订单
StringBuilder minRecordList = new StringBuilder(userMinRecord); // 转为stringbuilder类型
minRecordList.insert(1, minRecordKey + ",");// 将当前子订单插入头部
userRecord.put("minRecord", minRecordList.toString());
}
// 更新redis中用户记录
redisPool.getRedisTemplateByDb(15).opsForHash().putAll("user:" + integer, userRecord);
minRecordManage.append(integer).append(","); minRecordManage.append(integer).append(",");
String workwechat = manager.getWorkwechat(); String workwechat = manager.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) { if (workwechat == null || "".equals(workwechat)) {
@ -2421,8 +2493,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 将当前redis中存储的spno删除 // 将当前redis中存储的spno删除
redisPool.getRedisTemplateByDb(14).delete("wms_QyWxMessage_" + spNo); redisPool.getRedisTemplateByDb(14).delete("wms_QyWxMessage_" + spNo);
} }
} } else {
else {
// 如果是部门负责人 // 如果是部门负责人
String departmentheadTime = recordP.getDepartmentheadTime(); String departmentheadTime = recordP.getDepartmentheadTime();
@ -2476,7 +2547,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
if (flag) { if (flag) {
return 1; return 1;
} }
log.info("出库审批参数 “flagForFirst:"+flagForFirst+"”,“flagForDepository:"+flagForDepository+"”,审批人:"+userByPort.getNumber()+userByPort.getName()+"出库审批修改数据:"+JSONObject.toJSONString(map)); log.info("出库审批参数 “flagForFirst:" + flagForFirst + "”,“flagForDepository:" + flagForDepository + "”,审批人:" + userByPort.getNumber() + userByPort.getName() + "出库审批修改数据:" + JSONObject.toJSONString(map));
map.put("id", outId); map.put("id", outId);
return depositoryRecordMapper.updateApplicationOutRecord(map); return depositoryRecordMapper.updateApplicationOutRecord(map);
@ -2779,6 +2850,28 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
} }
} }
/**
* 修改redis中用户当前的子订单数据
*
* @param integer 用户id
* @param minRecordKey
*/
private void updateRedisDataForUserManager(Integer integer, String minRecordKey) {
// 仓库管理员订单信息
Map<String, Object> userRecord = new HashMap<>();
// 用户当前子订单
String userMinRecord = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get("user:" + integer, "minRecord");
if (userMinRecord == null) { // 如果当前用户没有子订单
userRecord.put("minRecord", "[" + minRecordKey + "," + "]"); // 插入一条子订单
} else { // 如果当前用户已经有子订单
StringBuilder minRecordList = new StringBuilder(userMinRecord); // 转为stringbuilder类型
minRecordList.insert(1, minRecordKey + ",");// 将当前子订单插入头部
userRecord.put("minRecord", minRecordList.toString());
}
// 更新redis中用户记录
redisPool.getRedisTemplateByDb(15).opsForHash().putAll("user:" + integer, userRecord);
}
/** /**
* 审核申请 * 审核申请
* *
@ -3019,6 +3112,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
if (!flagForMtOrDepository) { if (!flagForMtOrDepository) {
// 如果是通过类型 // 如果是通过类型
// 用于存储企业微信uid
StringBuilder QyWxUid = new StringBuilder();
// 获取具体物料类型 // 获取具体物料类型
Long materialTypeId = inventory.getMaterialTypeId(); Long materialTypeId = inventory.getMaterialTypeId();
if (!findThisIdIsExistForMaterialType(materialTypeIdList, materialTypeId)) { if (!findThisIdIsExistForMaterialType(materialTypeIdList, materialTypeId)) {
@ -3034,26 +3130,46 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
minIdList.add(applicationOutRecordMin.getId()); minIdList.add(applicationOutRecordMin.getId());
minIdByMaterialType.put("materialType" + materialTypeId, minIdList); minIdByMaterialType.put("materialType" + materialTypeId, minIdList);
// 获取该物料所处仓库的仓库管理员 // 获取该物料所处类型的管理员
List<Integer> userIdByDid = new ArrayList<>(); List<Integer> userIdByDid = new ArrayList<>();
userIdByDid = roleService.findUserIdByMtId(inventory.getMaterialTypeId());
StringBuilder QyWxUid = new StringBuilder(); // 用于查询对应的管理员权限
Map<String, Object> paramForUserManager = new HashMap<>();
paramForUserManager.put("mtid", materialTypeId);
List<RoleAndMaterialType> roleAndMaterialTypeByCondition = roleService.findRoleAndMaterialTypeByCondition(paramForUserManager);
for (RoleAndMaterialType roleAndMaterialType : roleAndMaterialTypeByCondition) {
int classes = roleAndMaterialType.getClasses();
if (classes == 1) {
// 如果是对人设置的权限
userIdByDid.add(roleAndMaterialType.getUid());
} else {
// 如果是对岗位
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndMaterialType.getUid());
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, userKey, token);
for (UserByPort userByPort : userByPortList) {
Integer userId = userByPort.getId();
// 修改redis中用户的数据
updateRedisDataForUserManager(userId, minRecordKey);
minRecordManage.append(userId).append(",");
// 获取企业微信id或微信id
String userByPortWorkwechat = userByPort.getWorkwechat();
if (userByPortWorkwechat == null || "".equals(userByPortWorkwechat)) {
userByPortWorkwechat = userByPort.getWechat();
}
QyWxUid.append(userByPortWorkwechat).append(",");
}
}
}
for (Integer integer : userIdByDid) { for (Integer integer : userIdByDid) {
// 获取仓库管理员信息 // 获取仓库管理员信息
UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token); UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token);
// 仓库管理员订单信息 updateRedisDataForUserManager(integer, minRecordKey);
Map<String, Object> userRecord = new HashMap<>();
// 用户当前子订单
String userMinRecord = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get("user:" + integer, "minRecord");
if (userMinRecord == null) { // 如果当前用户没有子订单
userRecord.put("minRecord", "[" + minRecordKey + "," + "]"); // 插入一条子订单
} else { // 如果当前用户已经有子订单
StringBuilder minRecordList = new StringBuilder(userMinRecord); // 转为stringbuilder类型
minRecordList.insert(1, minRecordKey + ",");// 将当前子订单插入头部
userRecord.put("minRecord", minRecordList.toString());
}
// 更新redis中用户记录
redisPool.getRedisTemplateByDb(15).opsForHash().putAll("user:" + integer, userRecord);
minRecordManage.append(integer).append(","); minRecordManage.append(integer).append(",");
String workwechat = manager.getWorkwechat(); String workwechat = manager.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) { if (workwechat == null || "".equals(workwechat)) {
@ -3076,6 +3192,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
} else { } else {
// 如果是通过仓库 // 如果是通过仓库
// 用于存储企业微信uid
StringBuilder QyWxUid = new StringBuilder();
if (!findThisIdIsExistForDepository(depositoryIdList, depositoryId)) { if (!findThisIdIsExistForDepository(depositoryIdList, depositoryId)) {
// 如果当前仓库id没有存入过 // 如果当前仓库id没有存入过
@ -3092,24 +3210,45 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 获取该物料所处仓库的仓库管理员 // 获取该物料所处仓库的仓库管理员
List<Integer> userIdByDid = new ArrayList<>(); List<Integer> userIdByDid = new ArrayList<>();
userIdByDid = roleService.findUserIdByDid(depositoryId);
StringBuilder QyWxUid = new StringBuilder(); // 用于查询对应的管理员权限
Map<String, Object> paramForUserManager = new HashMap<>();
paramForUserManager.put("depositoryId", depositoryId);
List<RoleAndDepository> roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(paramForUserManager);
for (RoleAndDepository roleAndDepository : roleAndDepositoryByCondition) {
int classes = roleAndDepository.getClasses();
if (classes == 1) {
// 如果是对人设置的权限
userIdByDid.add(roleAndDepository.getUserId());
} else {
// 如果是对岗位
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndDepository.getUserId());
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, userKey, token);
for (UserByPort userByPort : userByPortList) {
Integer userId = userByPort.getId();
// 修改redis中用户的数据
updateRedisDataForUserManager(userId, minRecordKey);
minRecordManage.append(userId).append(",");
// 获取企业微信id或微信id
String userByPortWorkwechat = userByPort.getWorkwechat();
if (userByPortWorkwechat == null || "".equals(userByPortWorkwechat)) {
userByPortWorkwechat = userByPort.getWechat();
}
QyWxUid.append(userByPortWorkwechat).append(",");
}
}
}
for (Integer integer : userIdByDid) { for (Integer integer : userIdByDid) {
// 修改redis中用户的数据
updateRedisDataForUserManager(integer, minRecordKey);
// 获取仓库管理员信息 // 获取仓库管理员信息
UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token); UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token);
// 仓库管理员订单信息
Map<String, Object> userRecord = new HashMap<>();
// 用户当前子订单
String userMinRecord = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get("user:" + integer, "minRecord");
if (userMinRecord == null) { // 如果当前用户没有子订单
userRecord.put("minRecord", "[" + minRecordKey + "," + "]"); // 插入一条子订单
} else { // 如果当前用户已经有子订单
StringBuilder minRecordList = new StringBuilder(userMinRecord); // 转为stringbuilder类型
minRecordList.insert(1, minRecordKey + ",");// 将当前子订单插入头部
userRecord.put("minRecord", minRecordList.toString());
}
// 更新redis中用户记录
redisPool.getRedisTemplateByDb(15).opsForHash().putAll("user:" + integer, userRecord);
minRecordManage.append(integer).append(","); minRecordManage.append(integer).append(",");
String workwechat = manager.getWorkwechat(); String workwechat = manager.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) { if (workwechat == null || "".equals(workwechat)) {
@ -3453,6 +3592,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 获取具体物料类型 // 获取具体物料类型
Long materialTypeId = inventory.getMaterialTypeId(); Long materialTypeId = inventory.getMaterialTypeId();
StringBuilder QyWxUid = new StringBuilder();
if (!findThisIdIsExistForMaterialType(materialTypeIdList, materialTypeId)) { if (!findThisIdIsExistForMaterialType(materialTypeIdList, materialTypeId)) {
// 如果当前仓库id没有存入过 // 如果当前仓库id没有存入过
materialTypeIdList.add(materialTypeId); materialTypeIdList.add(materialTypeId);
@ -3466,26 +3607,46 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
minIdList.add(applicationOutRecordMin.getId()); minIdList.add(applicationOutRecordMin.getId());
minIdByMaterialType.put("materialType" + materialTypeId, minIdList); minIdByMaterialType.put("materialType" + materialTypeId, minIdList);
// 获取该物料所处仓库的仓库管理员 // 获取该物料所处类型的管理员
List<Integer> userIdByDid = new ArrayList<>(); List<Integer> userIdByDid = new ArrayList<>();
userIdByDid = roleService.findUserIdByMtId(inventory.getMaterialTypeId());
StringBuilder QyWxUid = new StringBuilder(); // 用于查询对应的管理员权限
Map<String, Object> paramForUserManager = new HashMap<>();
paramForUserManager.put("mtid", materialTypeId);
List<RoleAndMaterialType> roleAndMaterialTypeByCondition = roleService.findRoleAndMaterialTypeByCondition(paramForUserManager);
for (RoleAndMaterialType roleAndMaterialType : roleAndMaterialTypeByCondition) {
int classes = roleAndMaterialType.getClasses();
if (classes == 1) {
// 如果是对人设置的权限
userIdByDid.add(roleAndMaterialType.getUid());
} else {
// 如果是对岗位
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndMaterialType.getUid());
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, userKey, token);
for (UserByPort userByPort1 : userByPortList) {
Integer userId = userByPort1.getId();
// 修改redis中用户的数据
updateRedisDataForUserManager(userId, minRecordKey);
minRecordManage.append(userId).append(",");
// 获取企业微信id或微信id
String userByPortWorkwechat = userByPort1.getWorkwechat();
if (userByPortWorkwechat == null || "".equals(userByPortWorkwechat)) {
userByPortWorkwechat = userByPort1.getWechat();
}
QyWxUid.append(userByPortWorkwechat).append(",");
}
}
}
for (Integer integer : userIdByDid) { for (Integer integer : userIdByDid) {
// 获取仓库管理员信息 // 获取仓库管理员信息
UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token); UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token);
// 仓库管理员订单信息 updateRedisDataForUserManager(integer, minRecordKey);
Map<String, Object> userRecord = new HashMap<>();
// 用户当前子订单
String userMinRecord = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get("user:" + integer, "minRecord");
if (userMinRecord == null) { // 如果当前用户没有子订单
userRecord.put("minRecord", "[" + minRecordKey + "," + "]"); // 插入一条子订单
} else { // 如果当前用户已经有子订单
StringBuilder minRecordList = new StringBuilder(userMinRecord); // 转为stringbuilder类型
minRecordList.insert(1, minRecordKey + ",");// 将当前子订单插入头部
userRecord.put("minRecord", minRecordList.toString());
}
// 更新redis中用户记录
redisPool.getRedisTemplateByDb(15).opsForHash().putAll("user:" + integer, userRecord);
minRecordManage.append(integer).append(","); minRecordManage.append(integer).append(",");
String workwechat = manager.getWorkwechat(); String workwechat = manager.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) { if (workwechat == null || "".equals(workwechat)) {
@ -3509,6 +3670,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 如果是通过仓库 // 如果是通过仓库
StringBuilder QyWxUid = new StringBuilder();
if (!findThisIdIsExistForDepository(depositoryIdList, depositoryId)) { if (!findThisIdIsExistForDepository(depositoryIdList, depositoryId)) {
// 如果当前仓库id没有存入过 // 如果当前仓库id没有存入过
depositoryIdList.add(depositoryId); depositoryIdList.add(depositoryId);
@ -3524,24 +3686,45 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 获取该物料所处仓库的仓库管理员 // 获取该物料所处仓库的仓库管理员
List<Integer> userIdByDid = new ArrayList<>(); List<Integer> userIdByDid = new ArrayList<>();
userIdByDid = roleService.findUserIdByDid(depositoryId);
StringBuilder QyWxUid = new StringBuilder(); // 用于查询对应的管理员权限
Map<String, Object> paramForUserManager = new HashMap<>();
paramForUserManager.put("depositoryId", depositoryId);
List<RoleAndDepository> roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(paramForUserManager);
for (RoleAndDepository roleAndDepository : roleAndDepositoryByCondition) {
int classes = roleAndDepository.getClasses();
if (classes == 1) {
// 如果是对人设置的权限
userIdByDid.add(roleAndDepository.getUserId());
} else {
// 如果是对岗位
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndDepository.getUserId());
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, userKey, token);
for (UserByPort userByPort1 : userByPortList) {
Integer userId = userByPort1.getId();
// 修改redis中用户的数据
updateRedisDataForUserManager(userId, minRecordKey);
minRecordManage.append(userId).append(",");
// 获取企业微信id或微信id
String userByPortWorkwechat = userByPort1.getWorkwechat();
if (userByPortWorkwechat == null || "".equals(userByPortWorkwechat)) {
userByPortWorkwechat = userByPort1.getWechat();
}
QyWxUid.append(userByPortWorkwechat).append(",");
}
}
}
for (Integer integer : userIdByDid) { for (Integer integer : userIdByDid) {
// 修改redis中用户的数据
updateRedisDataForUserManager(integer, minRecordKey);
// 获取仓库管理员信息 // 获取仓库管理员信息
UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token); UserByPort manager = LinkInterfaceUtil.FindUserById(integer, userKey, token);
// 仓库管理员订单信息
Map<String, Object> userRecord = new HashMap<>();
// 用户当前子订单
String userMinRecord = (String) redisPool.getRedisTemplateByDb(15).opsForHash().get("user:" + integer, "minRecord");
if (userMinRecord == null) { // 如果当前用户没有子订单
userRecord.put("minRecord", "[" + minRecordKey + "," + "]"); // 插入一条子订单
} else { // 如果当前用户已经有子订单
StringBuilder minRecordList = new StringBuilder(userMinRecord); // 转为stringbuilder类型
minRecordList.insert(1, minRecordKey + ",");// 将当前子订单插入头部
userRecord.put("minRecord", minRecordList.toString());
}
// 更新redis中用户记录
redisPool.getRedisTemplateByDb(15).opsForHash().putAll("user:" + integer, userRecord);
minRecordManage.append(integer).append(","); minRecordManage.append(integer).append(",");
String workwechat = manager.getWorkwechat(); String workwechat = manager.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) { if (workwechat == null || "".equals(workwechat)) {

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

@ -10,6 +10,8 @@ import com.dreamchaser.depository_manage.config.QyWx_template_card.*;
import com.dreamchaser.depository_manage.entity.*; import com.dreamchaser.depository_manage.entity.*;
import com.dreamchaser.depository_manage.exception.MyException; import com.dreamchaser.depository_manage.exception.MyException;
import com.dreamchaser.depository_manage.mapper.*; import com.dreamchaser.depository_manage.mapper.*;
import com.dreamchaser.depository_manage.pojo.RoleAndDepository;
import com.dreamchaser.depository_manage.pojo.RoleAndMaterialType;
import com.dreamchaser.depository_manage.utils.DateUtil; import com.dreamchaser.depository_manage.utils.DateUtil;
import com.dreamchaser.depository_manage.utils.HttpUtils; import com.dreamchaser.depository_manage.utils.HttpUtils;
import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil; import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil;
@ -59,14 +61,14 @@ public class QyWxOperationService {
* @param flag 用于判断发送类型是部门负责人还是仓储负责人(true为部门false为仓储) * @param flag 用于判断发送类型是部门负责人还是仓储负责人(true为部门false为仓储)
* @return * @return
*/ */
public JSONObject sendQyWxToApplicationOutMessage(String uid, Integer outId, Boolean flag, String userAgent,String userKey,String token) { public JSONObject sendQyWxToApplicationOutMessage(String uid, Integer outId, Boolean flag, String userAgent, String userKey, String token) {
// 获取将要发送申请的订单记录 // 获取将要发送申请的订单记录
ApplicationOutRecord applicationOutRecordPById = depositoryRecordMapper.findApplicationOutRecordPById(outId); ApplicationOutRecord applicationOutRecordPById = depositoryRecordMapper.findApplicationOutRecordPById(outId);
// 申请人id // 申请人id
Integer applicantId = applicationOutRecordPById.getApplicantId(); Integer applicantId = applicationOutRecordPById.getApplicantId();
// 申请人 // 申请人
UserByPort applicant = LinkInterfaceUtil.FindUserById(applicantId, userKey,token); UserByPort applicant = LinkInterfaceUtil.FindUserById(applicantId, userKey, token);
// 获取所有子订单 // 获取所有子订单
List<ApplicationOutRecordMin> applicationOutRecordMinByParent = depositoryRecordMapper.findApplicationOutRecordMinByParent(outId); List<ApplicationOutRecordMin> applicationOutRecordMinByParent = depositoryRecordMapper.findApplicationOutRecordMinByParent(outId);
@ -238,7 +240,7 @@ public class QyWxOperationService {
// 将返回结果转为json对象 // 将返回结果转为json对象
JSONObject jsonObject = JSON.parseObject(s1); JSONObject jsonObject = JSON.parseObject(s1);
log.info("发送企业微信出库消息结果"+s1); log.info("发送企业微信出库消息结果" + s1);
// 返回 // 返回
return jsonObject; return jsonObject;
} }
@ -251,7 +253,7 @@ public class QyWxOperationService {
* @param mainId 盘点记录编号 * @param mainId 盘点记录编号
* @return * @return
*/ */
public JSONObject sendQyWxToStockTakingDepartmentManagerMessage(String uid, Integer mainId, String userAgent,String userKey,String token) { public JSONObject sendQyWxToStockTakingDepartmentManagerMessage(String uid, Integer mainId, String userAgent, String userKey, String token) {
// 获取盘点主记录 // 获取盘点主记录
StockTaking mainRecord = stockTakingMapper.selectStockTakingById(mainId); StockTaking mainRecord = stockTakingMapper.selectStockTakingById(mainId);
@ -261,7 +263,7 @@ public class QyWxOperationService {
// 申请人id // 申请人id
Integer getOriginator = mainRecord.getOriginator(); Integer getOriginator = mainRecord.getOriginator();
// 申请人 // 申请人
UserByPort originator = LinkInterfaceUtil.FindUserById(getOriginator, userKey,token); UserByPort originator = LinkInterfaceUtil.FindUserById(getOriginator, userKey, token);
// 盘点物料名称 // 盘点物料名称
StringBuilder mname = new StringBuilder(); StringBuilder mname = new StringBuilder();
@ -484,7 +486,7 @@ public class QyWxOperationService {
* @param mainId 盘点记录编号 * @param mainId 盘点记录编号
* @return * @return
*/ */
public JSONObject sendQyWxToStockTakingMessage(String uid, Integer mainId, List<Long> normalMinId, String userAgent,String userKey,String token) { public JSONObject sendQyWxToStockTakingMessage(String uid, Integer mainId, List<Long> normalMinId, String userAgent, String userKey, String token) {
// 获取盘点主记录 // 获取盘点主记录
StockTaking mainRecord = stockTakingMapper.selectStockTakingById(mainId); StockTaking mainRecord = stockTakingMapper.selectStockTakingById(mainId);
@ -498,7 +500,7 @@ public class QyWxOperationService {
// 申请人id // 申请人id
Integer getOriginator = mainRecord.getOriginator(); Integer getOriginator = mainRecord.getOriginator();
// 申请人 // 申请人
UserByPort originator = LinkInterfaceUtil.FindUserById(getOriginator, userKey,token); UserByPort originator = LinkInterfaceUtil.FindUserById(getOriginator, userKey, token);
// 盘点物料名称 // 盘点物料名称
StringBuilder mname = new StringBuilder(); StringBuilder mname = new StringBuilder();
@ -708,7 +710,7 @@ public class QyWxOperationService {
// 将返回结果转为json对象 // 将返回结果转为json对象
JSONObject jsonObject = JSON.parseObject(s1); JSONObject jsonObject = JSON.parseObject(s1);
log.info("发送企业微信盘点消息结果"+s1); log.info("发送企业微信盘点消息结果" + s1);
// 返回 // 返回
return jsonObject; return jsonObject;
@ -721,13 +723,13 @@ public class QyWxOperationService {
* @param outId 订单编号 * @param outId 订单编号
* @return * @return
*/ */
public JSONObject sendCcMessageToUsers(String uid, Integer outId, String userAgent,String userKey,String token) { public JSONObject sendCcMessageToUsers(String uid, Integer outId, String userAgent, String userKey, String token) {
// 获取已经完成的订单 // 获取已经完成的订单
ApplicationOutRecord recordP = depositoryRecordMapper.findApplicationOutRecordPById(outId); ApplicationOutRecord recordP = depositoryRecordMapper.findApplicationOutRecordPById(outId);
// 申请人id // 申请人id
Integer applicantId = recordP.getApplicantId(); Integer applicantId = recordP.getApplicantId();
// 申请人 // 申请人
UserByPort applicant = LinkInterfaceUtil.FindUserById(applicantId, userKey,token); UserByPort applicant = LinkInterfaceUtil.FindUserById(applicantId, userKey, token);
// 获取所有子订单 // 获取所有子订单
List<ApplicationOutRecordMin> applicationOutRecordMinByParent = depositoryRecordMapper.findApplicationOutRecordMinByParent(outId); List<ApplicationOutRecordMin> applicationOutRecordMinByParent = depositoryRecordMapper.findApplicationOutRecordMinByParent(outId);
@ -761,7 +763,7 @@ public class QyWxOperationService {
// 获取仓库信息 // 获取仓库信息
Depository depositoryRecordById = depositoryMapper.findDepositoryById(recordMin.getDepositoryId()); Depository depositoryRecordById = depositoryMapper.findDepositoryById(recordMin.getDepositoryId());
// 获取处理人信息 // 获取处理人信息
UserByPort userByPort = LinkInterfaceUtil.FindUserById(recordMin.getCheckId(), userKey,token); UserByPort userByPort = LinkInterfaceUtil.FindUserById(recordMin.getCheckId(), userKey, token);
// 获取对应出库单位 // 获取对应出库单位
String unit = recordMin.getUnit(); String unit = recordMin.getUnit();
@ -791,7 +793,7 @@ public class QyWxOperationService {
// 将返回结果转为json对象 // 将返回结果转为json对象
JSONObject jsonObject = JSON.parseObject(s1); JSONObject jsonObject = JSON.parseObject(s1);
log.info("发送企业微信抄送结果:"+s1); log.info("发送企业微信抄送结果:" + s1);
// 返回 // 返回
return jsonObject; return jsonObject;
@ -805,7 +807,7 @@ public class QyWxOperationService {
* @param map * @param map
* @return * @return
*/ */
public JSONObject sendCcStockTakingMessageToHead(String uid, Map<String, Object> map, UserByPort userToken, StockTaking mainRecord, String userAgent,String userKey,String token) { public JSONObject sendCcStockTakingMessageToHead(String uid, Map<String, Object> map, UserByPort userToken, StockTaking mainRecord, String userAgent, String userKey, String token) {
/** /**
* 获取完成的订单 * 获取完成的订单
@ -832,7 +834,7 @@ public class QyWxOperationService {
// 抄送内容 // 抄送内容
StringBuilder content = new StringBuilder("## `抄送信息:`%n"); StringBuilder content = new StringBuilder("## `抄送信息:`%n");
// 获取发起人信息 // 获取发起人信息
UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), userKey,token); UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), userKey, token);
// 设置content // 设置content
content.append(">### **").append(originator.getName()).append("的物料调账记录** %n<font color='warning'>时间:").append(DateUtil.TimeStampToDateTime(mainRecord.getCreateTime())).append("</font> %n"); content.append(">### **").append(originator.getName()).append("的物料调账记录** %n<font color='warning'>时间:").append(DateUtil.TimeStampToDateTime(mainRecord.getCreateTime())).append("</font> %n");
@ -882,10 +884,10 @@ public class QyWxOperationService {
} }
content.append(">- 物料名称:").append(material.getMname()).append("%n"); content.append(">- 物料名称:").append(material.getMname()).append("%n");
content.append(">- 盘点位置:").append(fromLocation).append("%n"); content.append(">- 盘点位置:").append(fromLocation).append("%n");
content.append(">- 原库存数量:").append((int)(minRecord.getOldInventory() / 100.0)).append("%n"); content.append(">- 原库存数量:").append((int) (minRecord.getOldInventory() / 100.0)).append("%n");
content.append(">- 盘点数量:").append((int)(minRecord.getNewInventory() / 100.0)).append("%n"); content.append(">- 盘点数量:").append((int) (minRecord.getNewInventory() / 100.0)).append("%n");
content.append(">- 盘点单位:").append(unit).append("%n"); content.append(">- 盘点单位:").append(unit).append("%n");
content.append(">- 盈亏数量:").append((int)(minRecord.getInventory()/ 100.0)).append("%n"); content.append(">- 盈亏数量:").append((int) (minRecord.getInventory() / 100.0)).append("%n");
content.append(">- 盘点结果:").append(takingResult).append("%n"); content.append(">- 盘点结果:").append(takingResult).append("%n");
content.append("%n---%n"); content.append("%n---%n");
} }
@ -906,7 +908,7 @@ public class QyWxOperationService {
// 将返回结果转为json对象 // 将返回结果转为json对象
JSONObject jsonObject = JSON.parseObject(s1); JSONObject jsonObject = JSON.parseObject(s1);
log.info("抄送库存盘点消息结果"+s1); log.info("抄送库存盘点消息结果" + s1);
// 返回 // 返回
return jsonObject; return jsonObject;
@ -920,7 +922,7 @@ public class QyWxOperationService {
* @param mainRecord 主订单 * @param mainRecord 主订单
* @return * @return
*/ */
public JSONObject sendStockTakingErrMessageToHead(String uid, List<Long> errIds, StockTaking mainRecord, UserByPort userToken, String userAgent,String userKey,String token) { public JSONObject sendStockTakingErrMessageToHead(String uid, List<Long> errIds, StockTaking mainRecord, UserByPort userToken, String userAgent, String userKey, String token) {
MessageByMarkDown markDown = new MessageByMarkDown(); MessageByMarkDown markDown = new MessageByMarkDown();
//设置消息接收者 //设置消息接收者
@ -942,7 +944,7 @@ public class QyWxOperationService {
// 抄送内容 // 抄送内容
StringBuilder content = new StringBuilder("## `盘点发生错误:`%n"); StringBuilder content = new StringBuilder("## `盘点发生错误:`%n");
// 获取发起人信息 // 获取发起人信息
UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), userKey,token); UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), userKey, token);
// 设置content // 设置content
content.append(">### **" + originator.getName() + "的物料盘点记录** %n<font color='warning'>时间:" + DateUtil.TimeStampToDateTime(mainRecord.getCreateTime()) + "</font> %n"); content.append(">### **" + originator.getName() + "的物料盘点记录** %n<font color='warning'>时间:" + DateUtil.TimeStampToDateTime(mainRecord.getCreateTime()) + "</font> %n");
@ -1001,7 +1003,7 @@ public class QyWxOperationService {
// 将返回结果转为json对象 // 将返回结果转为json对象
JSONObject jsonObject = JSON.parseObject(s1); JSONObject jsonObject = JSON.parseObject(s1);
log.info("发送库存盘点错误消息结果"+s1); log.info("发送库存盘点错误消息结果" + s1);
// 返回 // 返回
return jsonObject; return jsonObject;
} }
@ -1013,7 +1015,7 @@ public class QyWxOperationService {
* @param map * @param map
* @return * @return
*/ */
public JSONObject sendCcStockTakingTransferMessageToHead(String uid, Map<String, Object> map, UserByPort userToken, StockTaking mainRecord, String userAgent,String userKey,String token) { public JSONObject sendCcStockTakingTransferMessageToHead(String uid, Map<String, Object> map, UserByPort userToken, StockTaking mainRecord, String userAgent, String userKey, String token) {
/** /**
* 获取要转移的订单 * 获取要转移的订单
@ -1040,7 +1042,7 @@ public class QyWxOperationService {
// 抄送内容 // 抄送内容
StringBuilder content = new StringBuilder("## `抄送信息:`%n"); StringBuilder content = new StringBuilder("## `抄送信息:`%n");
// 获取发起人信息 // 获取发起人信息
UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), userKey,token); UserByPort originator = LinkInterfaceUtil.FindUserById(mainRecord.getOriginator(), userKey, token);
// 设置content // 设置content
content.append(">### **" + originator.getName() + "的物料转移记录** %n<font color='warning'>时间:" + DateUtil.TimeStampToDateTime(mainRecord.getCreateTime()) + "</font> %n"); content.append(">### **" + originator.getName() + "的物料转移记录** %n<font color='warning'>时间:" + DateUtil.TimeStampToDateTime(mainRecord.getCreateTime()) + "</font> %n");
@ -1136,14 +1138,14 @@ public class QyWxOperationService {
// 将返回结果转为json对象 // 将返回结果转为json对象
JSONObject jsonObject = JSON.parseObject(s1); JSONObject jsonObject = JSON.parseObject(s1);
log.info("抄送库存盘点转移消息结果"+s1); log.info("抄送库存盘点转移消息结果" + s1);
// 返回 // 返回
return jsonObject; return jsonObject;
} }
// 获取文本卡片模板 // 获取文本卡片模板
public TemplateCard_text_notice getTextNoticeCard(Integer outMinId, Integer quantity,String userKey,String token) { public TemplateCard_text_notice getTextNoticeCard(Integer outMinId, Integer quantity, String userKey, String token) {
// 需要出库的子订单 // 需要出库的子订单
ApplicationOutRecordMin recordMin = depositoryRecordMapper.findApplicationOutMinById(outMinId); ApplicationOutRecordMin recordMin = depositoryRecordMapper.findApplicationOutMinById(outMinId);
// 获取其主订单 // 获取其主订单
@ -1151,7 +1153,7 @@ public class QyWxOperationService {
// 申请人id // 申请人id
Integer applicantId = outRecordP.getApplicantId(); Integer applicantId = outRecordP.getApplicantId();
// 申请人 // 申请人
UserByPort applicant = LinkInterfaceUtil.FindUserById(applicantId, userKey,token); UserByPort applicant = LinkInterfaceUtil.FindUserById(applicantId, userKey, token);
// 定义卡片模板 // 定义卡片模板
TemplateCard_text_notice text_notice = new TemplateCard_text_notice(); TemplateCard_text_notice text_notice = new TemplateCard_text_notice();
@ -1271,7 +1273,7 @@ public class QyWxOperationService {
* @param outMinId * @param outMinId
* @return * @return
*/ */
public JSONObject sendNotificationToDepositoryManager(String uid, Integer outMinId, String userAgent,String userKey,String token) { public JSONObject sendNotificationToDepositoryManager(String uid, Integer outMinId, String userAgent, String userKey, String token) {
// 定义文本通知型卡片 // 定义文本通知型卡片
TextNotice textNotice = new TextNotice(); TextNotice textNotice = new TextNotice();
@ -1291,7 +1293,7 @@ public class QyWxOperationService {
textNotice.setMsgtype("template_card"); textNotice.setMsgtype("template_card");
// 获取卡片模板 // 获取卡片模板
TemplateCard_text_notice text_notice = getTextNoticeCard(outMinId, null,userKey,token); TemplateCard_text_notice text_notice = getTextNoticeCard(outMinId, null, userKey, token);
textNotice.setTemplate_card(text_notice); textNotice.setTemplate_card(text_notice);
String s = JSONObject.toJSONString(textNotice); String s = JSONObject.toJSONString(textNotice);
@ -1307,7 +1309,7 @@ public class QyWxOperationService {
// 将返回结果转为json对象 // 将返回结果转为json对象
JSONObject jsonObject = JSON.parseObject(s1); JSONObject jsonObject = JSON.parseObject(s1);
log.info("给仓库管理员发送出库通知结果:"+s1); log.info("给仓库管理员发送出库通知结果:" + s1);
// 返回 // 返回
return jsonObject; return jsonObject;
} }
@ -1359,14 +1361,14 @@ public class QyWxOperationService {
} }
public JSONObject updateTemplateCardToQuantity(String response_code, Integer quantity, String userAgent, Integer outMinId,String userKey,String token) { public JSONObject updateTemplateCardToQuantity(String response_code, Integer quantity, String userAgent, Integer outMinId, String userKey, String token) {
String url = String.format("https://qyapi.weixin.qq.com/cgi-bin/message/update_template_card?access_token=" + QyWxConfig.GetQYWXToken(userAgent) + "&debug=1"); String url = String.format("https://qyapi.weixin.qq.com/cgi-bin/message/update_template_card?access_token=" + QyWxConfig.GetQYWXToken(userAgent) + "&debug=1");
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("atall", 1); map.put("atall", 1);
map.put("agentid", QyWxConfig.AgentId); map.put("agentid", QyWxConfig.AgentId);
map.put("response_code", response_code); map.put("response_code", response_code);
map.put("enable_id_trans", 0); map.put("enable_id_trans", 0);
TemplateCard_text_notice text_notice = getTextNoticeCard(outMinId, quantity,userKey,token); TemplateCard_text_notice text_notice = getTextNoticeCard(outMinId, quantity, userKey, token);
map.put("template_card", text_notice); map.put("template_card", text_notice);
String jsonString = JSONObject.toJSONString(map); String jsonString = JSONObject.toJSONString(map);
System.out.println(jsonString); System.out.println(jsonString);
@ -1400,7 +1402,7 @@ public class QyWxOperationService {
* @param mainId 出库的主订单 * @param mainId 出库的主订单
* @return 发送结果 * @return 发送结果
*/ */
public JSONObject sendOutApprovalTemplate(String userAgent, UserByPort userToken, Integer mainId,String userKey,String token) { public JSONObject sendOutApprovalTemplate(String userAgent, UserByPort userToken, Integer mainId, String userKey, String token) {
// 获取当前出库主订单 // 获取当前出库主订单
ApplicationOutRecord mainRecord = depositoryRecordMapper.findApplicationOutRecordPById(mainId); ApplicationOutRecord mainRecord = depositoryRecordMapper.findApplicationOutRecordPById(mainId);
@ -1435,7 +1437,7 @@ public class QyWxOperationService {
List<String> userIdList = new ArrayList<>(); List<String> userIdList = new ArrayList<>();
List<UserByPort> departmentHeadForUserToken = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(),userKey,token ); List<UserByPort> departmentHeadForUserToken = PublicConfig.findDepartmentHeadByUser(userToken.getMaindeparment(), userKey, token);
for (UserByPort departmentHead : departmentHeadForUserToken for (UserByPort departmentHead : departmentHeadForUserToken
) { ) {
String departmentHeadWorkwechat = departmentHead.getWorkwechat(); String departmentHeadWorkwechat = departmentHead.getWorkwechat();
@ -1576,7 +1578,7 @@ public class QyWxOperationService {
depositoryIdList.add(depositoryId); depositoryIdList.add(depositoryId);
} }
Long materialTypeId = materialById.getMaterialTypeId(); Long materialTypeId = materialById.getMaterialTypeId();
if(!materialTypeIdList.contains(materialTypeId)){ if (!materialTypeIdList.contains(materialTypeId)) {
materialTypeIdList.add(materialTypeId); materialTypeIdList.add(materialTypeId);
} }
@ -1769,8 +1771,7 @@ public class QyWxOperationService {
approval_template_approver_list.add(approval_template_approver_Label); approval_template_approver_list.add(approval_template_approver_Label);
} } else {
else {
// 如果不是中心仓下的仓库 // 如果不是中心仓下的仓库
if (Integer.compare(2, flagForOpenDepository) == 0) { if (Integer.compare(2, flagForOpenDepository) == 0) {
// 如果该仓库是通过开放仓库获取到的 // 如果该仓库是通过开放仓库获取到的
@ -1780,7 +1781,7 @@ public class QyWxOperationService {
// 获取当前仓库所属的部门 // 获取当前仓库所属的部门
String adminorg = depositoryById.getAdminorg(); String adminorg = depositoryById.getAdminorg();
List<UserByPort> departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(adminorg), userKey,token); List<UserByPort> departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(ObjectFormatUtil.toInteger(adminorg), userKey, token);
for (UserByPort departmentHead : departmentHeadByUser for (UserByPort departmentHead : departmentHeadByUser
) { ) {
String departmentHeadWorkwechat = departmentHead.getWorkwechat(); String departmentHeadWorkwechat = departmentHead.getWorkwechat();
@ -1802,8 +1803,8 @@ public class QyWxOperationService {
} }
if(!flag){ if (!flag) {
for (Long mtId:materialTypeIdList for (Long mtId : materialTypeIdList
) { ) {
// 获取当前仓库的管理员列表 // 获取当前仓库的管理员列表
List<Integer> userIdByDid = roleMapper.findUserIdByMtId(mtId); List<Integer> userIdByDid = roleMapper.findUserIdByMtId(mtId);
@ -1812,7 +1813,7 @@ public class QyWxOperationService {
for (Integer userId : userIdByDid for (Integer userId : userIdByDid
) { ) {
// 获取对应管理员信息 // 获取对应管理员信息
UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey,token); UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey, token);
String user = userByPort.getWorkwechat(); String user = userByPort.getWorkwechat();
if (user == null || "".equals(user)) { if (user == null || "".equals(user)) {
user = userByPort.getWechat(); user = userByPort.getWechat();
@ -1828,8 +1829,7 @@ public class QyWxOperationService {
approval_template_approver_list.add(approval_template_approver_depository_manager); approval_template_approver_list.add(approval_template_approver_depository_manager);
} }
} }
} } else {
else{
for (Integer depositoryId : depositoryIdList for (Integer depositoryId : depositoryIdList
) { ) {
@ -1840,7 +1840,7 @@ public class QyWxOperationService {
for (Integer userId : userIdByDid for (Integer userId : userIdByDid
) { ) {
// 获取对应管理员信息 // 获取对应管理员信息
UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey,token); UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey, token);
String user = userByPort.getWorkwechat(); String user = userByPort.getWorkwechat();
if (user == null || "".equals(user)) { if (user == null || "".equals(user)) {
user = userByPort.getWechat(); user = userByPort.getWechat();
@ -1860,7 +1860,6 @@ public class QyWxOperationService {
} }
// 设置审批流程 // 设置审批流程
approvalTemplate.setApprover(approval_template_approver_list); approvalTemplate.setApprover(approval_template_approver_list);
@ -1872,7 +1871,7 @@ public class QyWxOperationService {
String s = HttpUtils.doPost(url, jsonString); String s = HttpUtils.doPost(url, jsonString);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
jsonObject.put("otherDepartmentIdList", JSONObject.toJSONString(otherDepartmentIdList)); jsonObject.put("otherDepartmentIdList", JSONObject.toJSONString(otherDepartmentIdList));
log.info("发送出库审批结果:"+s); log.info("发送出库审批结果:" + s);
return jsonObject; return jsonObject;
} }
@ -1885,7 +1884,7 @@ public class QyWxOperationService {
* @param mainId 出库的主订单 * @param mainId 出库的主订单
* @return 发送结果 * @return 发送结果
*/ */
public JSONObject sendOutApprovalTemplateForImmediately(String userAgent, UserByPort userToken, Integer mainId,String userKey,String token) { public JSONObject sendOutApprovalTemplateForImmediately(String userAgent, UserByPort userToken, Integer mainId, String userKey, String token) {
// 获取当前出库主订单 // 获取当前出库主订单
ApplicationOutRecord mainRecord = depositoryRecordMapper.findApplicationOutRecordPById(mainId); ApplicationOutRecord mainRecord = depositoryRecordMapper.findApplicationOutRecordPById(mainId);
@ -1920,9 +1919,9 @@ public class QyWxOperationService {
List<String> userIdList = new ArrayList<>(); List<String> userIdList = new ArrayList<>();
String[] departmentHeadS = mainRecord.getDepartmenthead().split(","); String[] departmentHeadS = mainRecord.getDepartmenthead().split(",");
for (String department:departmentHeadS for (String department : departmentHeadS
) { ) {
if("".equals(department)){ if ("".equals(department)) {
continue; continue;
} }
UserByPort departmentHead = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(department), userKey, token); UserByPort departmentHead = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(department), userKey, token);
@ -2245,12 +2244,11 @@ public class QyWxOperationService {
approvalTemplate.setNotify_type(2); approvalTemplate.setNotify_type(2);
String[] depositoryManagerS = mainRecord.getDepositoryManager().split(","); String[] depositoryManagerS = mainRecord.getDepositoryManager().split(",");
List<String> depositoryManagerWorkWechats = new ArrayList<>(); List<String> depositoryManagerWorkWechats = new ArrayList<>();
for (String depositorymanager:depositoryManagerS for (String depositorymanager : depositoryManagerS
) { ) {
if("".equals(depositorymanager)){ if ("".equals(depositorymanager)) {
continue; continue;
} }
UserByPort depositoryManage = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(depositorymanager), userKey, token); UserByPort depositoryManage = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(depositorymanager), userKey, token);
@ -2269,20 +2267,43 @@ public class QyWxOperationService {
approval_template_approver_list.add(approval_template_approver_Label); approval_template_approver_list.add(approval_template_approver_Label);
if (!flag) {
// 用于查询对应的管理员权限
Map<String, Object> paramForUserManager = new HashMap<>();
if(!flag){ for (Long mtId : materialTypeIdList
for (Long mtId:materialTypeIdList
) { ) {
// 获取当前仓库的管理员列表 // 定义存储当前管理员的企业微信userId
List<Integer> userIdByDid = roleMapper.findUserIdByMtId(mtId);
// 获取当前管理员的企业微信userId
List<String> qywxUserIdList = new ArrayList<>(); List<String> qywxUserIdList = new ArrayList<>();
for (Integer userId : userIdByDid // 用于获取当前仓库的管理员列表
List<Integer> userIdByMtId = new ArrayList<>();
paramForUserManager.put("mtid", mainId);
List<RoleAndMaterialType> roleAndMaterialTypeByCondition = roleMapper.findRoleAndMaterialTypeByCondition(paramForUserManager);
for (RoleAndMaterialType roleAndMaterialType : roleAndMaterialTypeByCondition) {
int classes = roleAndMaterialType.getClasses();
if (classes == 1) {
// 如果是对人设置的权限
userIdByMtId.add(roleAndMaterialType.getUid());
} else {
// 如果是对岗位
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndMaterialType.getUid());
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, userKey, token);
for (UserByPort userByPort : userByPortList) {
String userByPortWorkwechat = userByPort.getWorkwechat();
if (userByPortWorkwechat == null || "".equals(userByPortWorkwechat)) {
userByPortWorkwechat = userByPort.getWechat();
}
qywxUserIdList.add(userByPortWorkwechat);
}
}
}
for (Integer userId : userIdByMtId
) { ) {
// 获取对应管理员信息 // 获取对应管理员信息
UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey,token); UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey, token);
String user = userByPort.getWorkwechat(); String user = userByPort.getWorkwechat();
if (user == null || "".equals(user)) { if (user == null || "".equals(user)) {
user = userByPort.getWechat(); user = userByPort.getWechat();
@ -2298,19 +2319,50 @@ public class QyWxOperationService {
approval_template_approver_list.add(approval_template_approver_depository_manager); approval_template_approver_list.add(approval_template_approver_depository_manager);
} }
} }
} } else {
else{
// 用于查询对应的管理员权限
Map<String, Object> paramForUserManager = new HashMap<>();
for (Integer depositoryId : depositoryIdList for (Integer depositoryId : depositoryIdList
) { ) {
// 获取当前仓库的管理员列表 paramForUserManager.put("depositoryId", depositoryId);
List<Integer> userIdByDid = roleMapper.findUserIdByDid(depositoryId);
// 获取当前管理员的企业微信userId // 获取当前管理员的企业微信userId
List<String> qywxUserIdList = new ArrayList<>(); List<String> qywxUserIdList = new ArrayList<>();
// 获取当前仓库的管理员列表
List<Integer> userIdByDid = new ArrayList<>();
List<RoleAndDepository> roleAndDepositoryByCondition = roleMapper.findRoleAndDepositoryByCondition(paramForUserManager);
for (RoleAndDepository roleAndDepository : roleAndDepositoryByCondition) {
int classes = roleAndDepository.getClasses();
if (classes == 1) {
// 如果是对人设置的权限
userIdByDid.add(roleAndDepository.getUserId());
} else {
// 如果是对岗位
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndDepository.getUserId());
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, userKey, token);
for (UserByPort userByPort : userByPortList) {
String userByPortWorkwechat = userByPort.getWorkwechat();
if (userByPortWorkwechat == null || "".equals(userByPortWorkwechat)) {
userByPortWorkwechat = userByPort.getWechat();
}
qywxUserIdList.add(userByPortWorkwechat);
}
}
}
for (Integer userId : userIdByDid for (Integer userId : userIdByDid
) { ) {
// 获取对应管理员信息 // 获取对应管理员信息
UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey,token); UserByPort userByPort = LinkInterfaceUtil.FindUserById(userId, userKey, token);
String user = userByPort.getWorkwechat(); String user = userByPort.getWorkwechat();
if (user == null || "".equals(user)) { if (user == null || "".equals(user)) {
user = userByPort.getWechat(); user = userByPort.getWechat();
@ -2341,12 +2393,11 @@ public class QyWxOperationService {
String s = HttpUtils.doPost(url, jsonString); String s = HttpUtils.doPost(url, jsonString);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
jsonObject.put("otherDepartmentIdList", JSONObject.toJSONString(otherDepartmentIdList)); jsonObject.put("otherDepartmentIdList", JSONObject.toJSONString(otherDepartmentIdList));
log.info("发送出库审批(立即出库)结果:"+s); log.info("发送出库审批(立即出库)结果:" + s);
return jsonObject; return jsonObject;
} }
/** /**
* 用于发送入库审批 * 用于发送入库审批
* *
@ -2356,7 +2407,7 @@ public class QyWxOperationService {
* @param QyWxUid 接收人 * @param QyWxUid 接收人
* @return * @return
*/ */
public JSONObject sendApprovalTemplateIn(String userAgent, UserByPort userToken, List<Integer> recordIdList, String QyWxUid,String userKey,String token) { public JSONObject sendApprovalTemplateIn(String userAgent, UserByPort userToken, List<Integer> recordIdList, String QyWxUid, String userKey, String token) {
// 获取当前出库明细 // 获取当前出库明细
List<ApplicationInRecord> minRecordList = depositoryRecordMapper.findApplicationInRecordsByIds(recordIdList); List<ApplicationInRecord> minRecordList = depositoryRecordMapper.findApplicationInRecordsByIds(recordIdList);
@ -2369,7 +2420,7 @@ public class QyWxOperationService {
// 获取申请人的userId // 获取申请人的userId
UserByPort userByPort = LinkInterfaceUtil.FindUserById(minRecordList.get(0).getApplicantId(), userKey,token); UserByPort userByPort = LinkInterfaceUtil.FindUserById(minRecordList.get(0).getApplicantId(), userKey, token);
String workwechat = userByPort.getWorkwechat(); String workwechat = userByPort.getWorkwechat();
if (workwechat == null || "".equals(workwechat)) { if (workwechat == null || "".equals(workwechat)) {
workwechat = userByPort.getWechat(); workwechat = userByPort.getWechat();
@ -2673,7 +2724,7 @@ public class QyWxOperationService {
String s = HttpUtils.doPost(url, jsonString); String s = HttpUtils.doPost(url, jsonString);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
log.info("发送入库审批结果:"+s); log.info("发送入库审批结果:" + s);
return jsonObject; return jsonObject;
} }
@ -3119,7 +3170,7 @@ public class QyWxOperationService {
String s = HttpUtils.doPost(url, jsonString); String s = HttpUtils.doPost(url, jsonString);
JSONObject jsonObject = JSONObject.parseObject(s); JSONObject jsonObject = JSONObject.parseObject(s);
log.info("发送库存盘点审批结果:"+s); log.info("发送库存盘点审批结果:" + s);
return jsonObject; return jsonObject;
} }
@ -3131,7 +3182,7 @@ public class QyWxOperationService {
* @param userAgent md5加密后user-agent * @param userAgent md5加密后user-agent
* @return * @return
*/ */
public JSONObject sendNoticeForAllUser(Integer nid, String userAgent,String userKey,String token) { public JSONObject sendNoticeForAllUser(Integer nid, String userAgent, String userKey, String token) {
// 获取当前要发生的公告信息 // 获取当前要发生的公告信息
Notice noticeById = noticeMapper.findNoticeById(nid); Notice noticeById = noticeMapper.findNoticeById(nid);
TextTemplateCard textTemplateCard = new TextTemplateCard(); TextTemplateCard textTemplateCard = new TextTemplateCard();
@ -3150,7 +3201,7 @@ public class QyWxOperationService {
textCardContent.setTitle(noticeById.getTitle()); textCardContent.setTitle(noticeById.getTitle());
String noticeContent = "<div class='gray'>" + DateUtil.TimeStampToDateTime(noticeById.getTime()) + String noticeContent = "<div class='gray'>" + DateUtil.TimeStampToDateTime(noticeById.getTime()) +
"</div><div class='normal'>" + noticeById.getContent() + "</div><div class='highlight'>" + "</div><div class='normal'>" + noticeById.getContent() + "</div><div class='highlight'>" +
LinkInterfaceUtil.FindUserById(noticeById.getUserId(), userKey,token).getName() + "</div>"; LinkInterfaceUtil.FindUserById(noticeById.getUserId(), userKey, token).getName() + "</div>";
// 设置内容 // 设置内容
textCardContent.setDescription(noticeContent); textCardContent.setDescription(noticeContent);
// 设置点击后跳转的链接 // 设置点击后跳转的链接
@ -3188,7 +3239,7 @@ public class QyWxOperationService {
* @param flag 标志当前是什么申请 1出库2盘点 * @param flag 标志当前是什么申请 1出库2盘点
* @return * @return
*/ */
public JSONObject sendMessageForOtherUserByCard(Integer mainId, String uid, String userAgent, Integer flag,String userKey,String token) { public JSONObject sendMessageForOtherUserByCard(Integer mainId, String uid, String userAgent, Integer flag, String userKey, String token) {
// 获取当前申请主订单 // 获取当前申请主订单
ApplicationOutRecord aorp = null; ApplicationOutRecord aorp = null;
@ -3235,7 +3286,7 @@ public class QyWxOperationService {
applicantTime = stockTaking.getCreateTime(); applicantTime = stockTaking.getCreateTime();
tempMessageTitle = "库存盘点审批"; tempMessageTitle = "库存盘点审批";
} }
UserByPort userByPort = LinkInterfaceUtil.FindUserById(applicantId, userKey,token); UserByPort userByPort = LinkInterfaceUtil.FindUserById(applicantId, userKey, token);
// 设置content // 设置content
content.append(">### **%n<font color='warning'>对于" + userByPort.getName() + "在" + DateUtil.TimeStampToDateTime(applicantTime) + "提起" + tempMessageTitle + "的转至应用发送的消息进行审批,审批应用中的流程请忽略</font> %n**"); content.append(">### **%n<font color='warning'>对于" + userByPort.getName() + "在" + DateUtil.TimeStampToDateTime(applicantTime) + "提起" + tempMessageTitle + "的转至应用发送的消息进行审批,审批应用中的流程请忽略</font> %n**");
content.append("%n---%n"); content.append("%n---%n");
@ -3255,7 +3306,7 @@ public class QyWxOperationService {
// 将返回结果转为json对象 // 将返回结果转为json对象
JSONObject jsonObject = JSON.parseObject(s1); JSONObject jsonObject = JSON.parseObject(s1);
log.info("用于当在系统内进行审批后向其他所有用户发送消息结果:"+s1); log.info("用于当在系统内进行审批后向其他所有用户发送消息结果:" + s1);
// 返回 // 返回
return jsonObject; return jsonObject;
} }

65
src/main/java/com/dreamchaser/depository_manage/service/impl/SplitUnitServiceImpl.java

@ -7,6 +7,7 @@ import com.dreamchaser.depository_manage.pojo.RoleAndMaterialType;
import com.dreamchaser.depository_manage.pojo.SplitInfoP; import com.dreamchaser.depository_manage.pojo.SplitInfoP;
import com.dreamchaser.depository_manage.service.DepositoryRecordService; import com.dreamchaser.depository_manage.service.DepositoryRecordService;
import com.dreamchaser.depository_manage.service.SplitUnitService; import com.dreamchaser.depository_manage.service.SplitUnitService;
import com.dreamchaser.depository_manage.utils.LinkInterfaceUtil;
import com.dreamchaser.depository_manage.utils.ObjectFormatUtil; import com.dreamchaser.depository_manage.utils.ObjectFormatUtil;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -107,51 +108,80 @@ public class SplitUnitServiceImpl implements SplitUnitService {
flagForMtOrDepository = false; flagForMtOrDepository = false;
} }
boolean flagForApproval = false; // 默认不需要 boolean flagForApproval = false; // 默认不需要
if(flagForMtOrDepository){ if (flagForMtOrDepository) {
// 如果是仓库 // 如果是仓库
// 设置审批权限 // 设置审批权限
map.put("inType","d"); map.put("inType", "d");
if(!map.containsKey("flagForApproval")){ if (!map.containsKey("flagForApproval")) {
paramForMtRole.put("depositoryId",depositoryId); paramForMtRole.put("depositoryId", depositoryId);
List<RoleAndDepository> roleAndDepositoryByDid = roleMapper.findRoleAndDepositoryByCondition(paramForMtRole); List<RoleAndDepository> roleAndDepositoryByDid = roleMapper.findRoleAndDepositoryByCondition(paramForMtRole);
// 用于标志该仓库是否需要进行审批 // 用于标志该仓库是否需要进行审批
if (roleAndDepositoryByDid.size() > 0) { if (roleAndDepositoryByDid.size() > 0) {
flagForApproval = true; flagForApproval = true;
StringBuilder approverId = new StringBuilder(); StringBuilder approverId = new StringBuilder();
for (RoleAndDepository roleAndDepository : roleAndDepositoryByDid) { for (RoleAndDepository roleAndDepository : roleAndDepositoryByDid) {
approverId.append(roleAndDepository.getUserId()).append(","); // 获取该权限类型
int classes = roleAndDepository.getClasses();
// 获取userid
Integer userId = roleAndDepository.getUserId();
if (classes == 1) {
// 如果是对人设置权限
approverId.append(userId).append(",");
} else {
// 如果是对岗位
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndDepository.getUserId());
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, null, null);
for (UserByPort userByPort : userByPortList) {
approverId.append(userByPort.getId()).append(",");
}
}
} }
map.put("approverId", approverId.toString()); map.put("approverId", approverId.toString());
} }
map.put("flagForApproval", flagForApproval); map.put("flagForApproval", flagForApproval);
}else{ } else {
flagForApproval = ObjectFormatUtil.toBoolean(map.get("flagForApproval")); flagForApproval = ObjectFormatUtil.toBoolean(map.get("flagForApproval"));
} }
}else{ } else {
// 设置审批权限 // 设置审批权限
map.put("inType","mt"); map.put("inType", "mt");
if(!map.containsKey("flagForApproval")){ if (!map.containsKey("flagForApproval")) {
List<RoleAndMaterialType> roleAndMaterials = roleMapper.findRoleAndMaterialTypeByCondition(paramForMtRole); List<RoleAndMaterialType> roleAndMaterials = roleMapper.findRoleAndMaterialTypeByCondition(paramForMtRole);
// 用于标志该仓库是否需要进行审批 // 用于标志该仓库是否需要进行审批
if (roleAndMaterials.size() > 0) { if (roleAndMaterials.size() > 0) {
flagForApproval = true; flagForApproval = true;
StringBuilder approverId = new StringBuilder(); StringBuilder approverId = new StringBuilder();
for (RoleAndMaterialType roleAndMaterialType : roleAndMaterials) { for (RoleAndMaterialType roleAndMaterialType : roleAndMaterials) {
approverId.append(roleAndMaterialType.getUid()).append(","); Integer classes = roleAndMaterialType.getClasses();
Integer uid = roleAndMaterialType.getUid();
if (classes == 1) {
approverId.append(uid).append(",");
} else {
// 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", uid);
List<UserByPort> userByPortList = LinkInterfaceUtil.FindUserByMap(paramForGetUserByPost, null, null);
for (UserByPort userByPort : userByPortList) {
approverId.append(userByPort.getId()).append(",");
}
}
} }
map.put("approverId", approverId.toString()); map.put("approverId", approverId.toString());
} }
map.put("flagForApproval", flagForApproval); map.put("flagForApproval", flagForApproval);
}else{ } else {
flagForApproval = ObjectFormatUtil.toBoolean(map.get("flagForApproval")); flagForApproval = ObjectFormatUtil.toBoolean(map.get("flagForApproval"));
} }
} }
// 用于存储最终计算结果 // 用于存储最终计算结果
Integer result = 0; Integer result = 0;
@ -188,8 +218,7 @@ public class SplitUnitServiceImpl implements SplitUnitService {
// 查询当前库存是否有该拆单的处理记录 // 查询当前库存是否有该拆单的处理记录
splitInventory = splitUnitMapper.findSplitInventoryByIidAndSid(paramForInsertSplitInventory); splitInventory = splitUnitMapper.findSplitInventoryByIidAndSid(paramForInsertSplitInventory);
} }
} } else {
else {
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("depositoryId", map.get("depositoryId")); param.put("depositoryId", map.get("depositoryId"));
param.put("mid", map.get("mid")); param.put("mid", map.get("mid"));
@ -220,7 +249,7 @@ public class SplitUnitServiceImpl implements SplitUnitService {
// 如果是入库并且不需要审批 // 如果是入库并且不需要审批
map.remove("approverId"); map.remove("approverId");
result = realInInventoryToDepository(quantity, splitInventory, map, splitInfoForUnit, placeAndMaterialByMidAndPid, false); result = realInInventoryToDepository(quantity, splitInventory, map, splitInfoForUnit, placeAndMaterialByMidAndPid, false);
map.put("applicationInIdForOut",map.get("applicationInId")); map.put("applicationInIdForOut", map.get("applicationInId"));
map.remove("applicationInId"); map.remove("applicationInId");
} else if ("in".equals(type)) { } else if ("in".equals(type)) {
// 如果是入库且需要审批 // 如果是入库且需要审批
@ -663,7 +692,7 @@ public class SplitUnitServiceImpl implements SplitUnitService {
// 定义当前实际修改数量 // 定义当前实际修改数量
double new_saveQuantity = ((double)splitInventory.getSaveQuantity() / 100) + saveQuantity - splitInfo.getQuantity(); double new_saveQuantity = ((double) splitInventory.getSaveQuantity() / 100) + saveQuantity - splitInfo.getQuantity();
// 令计算处理数量+1 // 令计算处理数量+1
disposeQuantity += 1; disposeQuantity += 1;
@ -778,9 +807,9 @@ public class SplitUnitServiceImpl implements SplitUnitService {
} }
map.put("sstate", state); map.put("sstate", state);
List<SplitInfoP> splitInfoPByCondition = splitUnitMapper.findSplitInfoPByCondition(map); List<SplitInfoP> splitInfoPByCondition = splitUnitMapper.findSplitInfoPByCondition(map);
for (SplitInfoP splitInfoP:splitInfoPByCondition for (SplitInfoP splitInfoP : splitInfoPByCondition
) { ) {
if(splitInfoP.getBrand() == null){ if (splitInfoP.getBrand() == null) {
splitInfoP.setBrand(""); splitInfoP.setBrand("");
} }
} }

Loading…
Cancel
Save