Browse Source

1.所有内勤人员可见企管部备品备件库中的物料

2.出库带有备品备件库中的物料时同一次提交仅可出现这一个仓库中的物料
liwx
liwenxuan 2 years ago
parent
commit
88fdc2a7d8
  1. 74
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java
  2. 40
      src/main/java/com/dreamchaser/depository_manage/controller/MaterialController.java
  3. 7
      src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.java
  4. 7
      src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.xml
  5. 13
      src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java
  6. 8
      src/main/java/com/dreamchaser/depository_manage/service/UserService.java
  7. 6
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  8. 17
      src/main/java/com/dreamchaser/depository_manage/service/impl/MaterialServiceImpl.java
  9. 104
      src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java
  10. 16
      src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java
  11. 4
      src/main/resources/templates/pages/application/application-out.html
  12. 87
      src/main/resources/templates/pages/application/application-review.html
  13. 4
      src/main/resources/templates/pages/applicationForStorageCenter/application-out.html
  14. 4
      src/main/resources/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html

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

@ -755,6 +755,9 @@ public class DepositoryRecordController {
// 出库申请 // 出库申请
@PostMapping("/applicationOut") @PostMapping("/applicationOut")
public RestResponse insertApplicationOutRecord(@RequestBody Map<String, Object> map, HttpServletRequest request) { public RestResponse insertApplicationOutRecord(@RequestBody Map<String, Object> map, HttpServletRequest request) {
String usertoken = request.getHeader("user-token"); String usertoken = request.getHeader("user-token");
String userkey = request.getHeader("user-key"); String userkey = request.getHeader("user-key");
if (usertoken == null) { if (usertoken == null) {
@ -766,6 +769,58 @@ public class DepositoryRecordController {
String crypt = Md5.crypt(header); String crypt = Md5.crypt(header);
map.put("applicantId", userToken.getId()); map.put("applicantId", userToken.getId());
map.put("createUid", userToken.getId()); map.put("createUid", userToken.getId());
/** version3 start
*多个物料且物料中有非用户所在部门备品备件库中的物料时,返回失败信息"其它部门备品备件库中的物料需单独走流程申请."
*/
//遍历map的key,当所有key中含mid的多于一个时,则申请了多个物料
//获取申请者部门
UserByPort userByPort_version3 = userService.findUserByIdForNoPack(userToken.getId());
String applicantAdminorg_version3 = userByPort_version3.getAdminorg().toString();
//获取各物料所属仓库和所属部门
int materialCount_version3 = 0;//本次要出库的物料数量
HashSet<String> set_version3 = new HashSet<>();
List<String> midList_version3 = new ArrayList<>();
List<String> didList_version3 = new ArrayList<>();
for (Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println("key = " + entry.getKey() + ", value = " + entry.getValue());
if(entry.getKey().contains("mid")){
materialCount_version3++;
midList_version3.add(entry.getValue().toString());
Inventory inventoryById = materialService.findInventoryById(Long.valueOf(entry.getValue().toString()));
Depository depositoryById = depositoryService.findDepositoryById(inventoryById.getDepositoryId());
String entryAdminorg = depositoryById.getAdminorg();//当前物料的仓库所属部门
if(!entryAdminorg.equals(applicantAdminorg_version3) && inventoryById.getDepositoryName().contains("备品备件库")){//是备品备件库,且不是当前用户所属部门的备品备件库
set_version3.add(depositoryById.getId().toString());//把所有非当前用户所属部门的其它备品备件库的仓库id放入Hashset完成去重
didList_version3.add(depositoryById.getId().toString());//把所有非当前用户所属部门的其它备品备件库的仓库id放入List
}
}
}
if(set_version3.size()>1){//
return new RestResponse("", 666, new StatusInfo("提交失败,不能一起出库,当出库其它部门备品备件库中的物料时,各部门备品备件库中的物料都需单独走流程申请", "当出库其它部门备品备件库中的物料时,各部门备品备件库中的物料都需单独走流程申请"));
}else{
if(set_version3.size()==1 && materialCount_version3>1){//有一个非当前用户所属部门的备品备件库中的物料,且当前要出库的物料数量>1
int count= 0;//list和set中不同的仓库id的个数
for(String item:didList_version3){
Iterator it = set_version3.iterator();
while (it.hasNext()) {
if(it.next().equals(item)){
}else{
count++;
}
}
}
if(count>0){
return new RestResponse("", 666, new StatusInfo("提交失败,不能一起出库,其它部门备品备件库中的物料需单独走流程申请", "其它部门备品备件库中的物料需单独走流程申请"));
}
}
}
//version3 end
// 获取当前部门负责人 // 获取当前部门负责人
List<UserByPort> departmentHeadByUsers = userService.getDepartmentHeaderByIdForNoPack(userToken.getMaindeparment()); List<UserByPort> departmentHeadByUsers = userService.getDepartmentHeaderByIdForNoPack(userToken.getMaindeparment());
StringBuilder departmentHeadId = new StringBuilder(); StringBuilder departmentHeadId = new StringBuilder();
@ -1740,6 +1795,25 @@ public class DepositoryRecordController {
} }
// 仓储中心负责人 // 仓储中心负责人
String manager = recordPById.getDepositoryManager(); String manager = recordPById.getDepositoryManager();
//version3 start目前,物料所属仓库的所属部门负责人是depository_manager字段.
//通过判断该条记录的仓储中心负责人是不是综合办的负责人,来判断是不是这种流程(申请人申请出库其它部门备品备件库中的物料的流程).
// 获取综合办负责人
List<UserByPort> departmentHeadByUser = PublicConfig.findDepartmentHeadByUser(268L, userKey, token);
int flag = 0;//如果flag=0则说明当前记录是(申请人申请出库其它部门备品备件库中的物料的流程)
for (UserByPort userByPort : departmentHeadByUser) {
if(userByPort.getId().toString().equals(manager)){
flag++;
}
}
if(flag == 0){
recordPById.setMaterialNotUserOrg("notFromUserOrg");
}else{
recordPById.setMaterialNotUserOrg("isFromUserOrg");
}
//version3 end
String depositoryManagerPass = recordPById.getDepositoryManagerPass(); String depositoryManagerPass = recordPById.getDepositoryManagerPass();
if (!"4".equals(depositoryManagerPass)) { if (!"4".equals(depositoryManagerPass)) {
String[] depositoryManagerId = new String[0]; String[] depositoryManagerId = new String[0];

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

@ -55,6 +55,9 @@ public class MaterialController {
@Autowired @Autowired
MaterialTypeService materialTypeService; MaterialTypeService materialTypeService;
@Autowired
UserService userService;
/** /**
* 根据物料进行查询 * 根据物料进行查询
@ -501,7 +504,16 @@ public class MaterialController {
List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(paramByBarcode); List<MaterialAndBarCode> materialByBarCodeByCondition = materialService.findMaterialByBarCodeByCondition(paramByBarcode);
if (inventoryPS.size() > 0) { if (inventoryPS.size() > 0) {
List<Long> depositoryIdList = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userToken); List<Long> depositoryIdList = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userToken);
//version3 内勤人员有企管部办公用品库权限 start
Boolean neiqinFlag = userService.isUserNeiQin(userToken.getId());
if(neiqinFlag){
depositoryIdList.add(56L);
}
//version3 end
List<Long> depositoryIdList1 = roleService.findDepositoryIdForUserHas(userToken); List<Long> depositoryIdList1 = roleService.findDepositoryIdForUserHas(userToken);
if(neiqinFlag){
depositoryIdList1.add(56L);
}
List<Long> tempDepositoryID = new ArrayList<>(); List<Long> tempDepositoryID = new ArrayList<>();
List<Long> tempDepositoryID1 = new ArrayList<>(); List<Long> tempDepositoryID1 = new ArrayList<>();
List<Long> tempDepositoryID2 = new ArrayList<>(); List<Long> tempDepositoryID2 = new ArrayList<>();
@ -684,6 +696,15 @@ public class MaterialController {
List<Long> depositoryIdList = roleService.findDepositoryIdForUserHas(userToken); List<Long> depositoryIdList = roleService.findDepositoryIdForUserHas(userToken);
List<Long> depositoryIdList1 = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userToken); List<Long> depositoryIdList1 = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userToken);
//version3 内勤人员有企管部办公用品库权限 start
Boolean neiqinFlag = userService.isUserNeiQin(userToken.getId());
if(neiqinFlag){
depositoryIdList.add(56L);
depositoryIdList1.add(56L);
}
//version3 end
// 用于存储存在库存的仓库id // 用于存储存在库存的仓库id
List<Long> showDepository = new ArrayList<>(); List<Long> showDepository = new ArrayList<>();
List<Long> showDepository1 = new ArrayList<>(); List<Long> showDepository1 = new ArrayList<>();
@ -951,7 +972,12 @@ public class MaterialController {
List<InventoryP> inventoryPList = new ArrayList<>(); List<InventoryP> inventoryPList = new ArrayList<>();
List<Long> depositoryIdList = roleService.findDepositoryIdForUserHas(userToken); List<Long> depositoryIdList = roleService.findDepositoryIdForUserHas(userToken);
//version3 内勤人员有企管部办公用品库权限 start
Boolean neiqinFlag = userService.isUserNeiQin(userToken.getId());
if(neiqinFlag){
depositoryIdList.add(56L);
}
//version3 end
map.remove("depositoryId"); map.remove("depositoryId");
map.put("depositoryIds", depositoryIdList); map.put("depositoryIds", depositoryIdList);
inventoryPList = materialService.findInventory(map); inventoryPList = materialService.findInventory(map);
@ -1685,8 +1711,18 @@ public class MaterialController {
} }
} else { } else {
depositoryIdList = roleService.findDepositoryIdForUserHas(userByPort); depositoryIdList = roleService.findDepositoryIdForUserHas(userByPort);
//version3 内勤人员有企管部办公用品库权限 start
Boolean neiqinFlag = userService.isUserNeiQin(userByPort.getId());
if(neiqinFlag){
depositoryIdList.add(56L);
}
//version3 end
List<Long> depositoryIdList1 = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userByPort); List<Long> depositoryIdList1 = roleService.findDepositoryIdForWareHouseVisiblePermissionByUser(userByPort);
//version3 内勤人员有企管部办公用品库权限 start
if(neiqinFlag){
depositoryIdList1.add(56L);
}
//version3 end
//version2 start 20230926 //version2 start 20230926

7
src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.java

@ -72,4 +72,11 @@ public interface UserMapper {
* @return * @return
*/ */
List<UserByPort> findUserByName(String name); List<UserByPort> findUserByName(String name);
/**
* 查询所有内勤
* @return
*/
List<UserByPort> findAllNeiqinUser();
} }

7
src/main/java/com/dreamchaser/depository_manage/hrNew_mapper/UserMapper.xml

@ -71,6 +71,13 @@
where id = #{id} where id = #{id}
</select> </select>
<select id="findAllNeiqinUser" resultMap="userMap">
select
<include refid="manContAllColumn"/>
from man_cont
where position IN ( SELECT id FROM position WHERE NAME LIKE '%内勤%' )
</select>
<select id="findUserByNumber" parameterType="string" resultMap="userMap"> <select id="findUserByNumber" parameterType="string" resultMap="userMap">
select select

13
src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordP.java

@ -310,6 +310,19 @@ public class ApplicationOutRecordP {
*/ */
private Integer flagForOpenDepository; private Integer flagForOpenDepository;
/**
* 仓储中心负责人不是综合办的负责人,(申请人申请出库其它部门备品备件库中的物料的流程)
* notFromUserOrg/isFromUserOrg
* @param aor
*
* version3
*/
private String materialNotUserOrg;
public ApplicationOutRecordP(ApplicationOutRecord aor) { public ApplicationOutRecordP(ApplicationOutRecord aor) {
this.id = aor.getId(); this.id = aor.getId();
this.aormid = aor.getAormid(); this.aormid = aor.getAormid();

8
src/main/java/com/dreamchaser/depository_manage/service/UserService.java

@ -98,6 +98,10 @@ public interface UserService {
*/ */
List<UserByPort> findUserByName(String name); List<UserByPort> findUserByName(String name);
/**
* 判断当前用户是否是内勤
* @param id
* @return
*/
Boolean isUserNeiQin(Long id);
} }

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

@ -3502,9 +3502,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
/* /*
* 对于带有平衡岗的审批流程,不在企业微信中的通知中审批,而是进入应用里面我的任务中进行审批的话,流程走不通, * 对于带有平衡岗的审批流程,不在企业微信中的通知中审批,而是进入应用里面我的任务中进行审批的话,流程走不通,
* 会陷入平衡岗无限循环审批bug,其实不算bug,我看了代码,这部分内容只开发了一半就上线了.这样的话,想在测试 * 会陷入平衡岗无限循环审批bug,其实不算bug,我看了代码,这部分内容只开发了一半就上线了.
* 涉及到平衡岗的流程只能在生产环境让所有相关人员协助测试,这样根本不现实.所以之前根本就不测试......接手 *
* 此系统后好多违反开发常识的绝不应该出现的事情接连发生,真是令我大开眼界... 2023.09.20 liwenxuan * 2023.09.20 liwenxuan
* */ * */
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)

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

@ -59,6 +59,9 @@ public class MaterialServiceImpl implements MaterialService {
@Autowired @Autowired
DepositoryRecordMapper depositoryRecordMapper; DepositoryRecordMapper depositoryRecordMapper;
@Autowired
UserService userService;
/** /**
* 用于深度拷贝列表 * 用于深度拷贝列表
* *
@ -2627,15 +2630,29 @@ public class MaterialServiceImpl implements MaterialService {
List<MaterialType> materialTypeAll = materialTypeMapper.findMaterialTypeAll(); List<MaterialType> materialTypeAll = materialTypeMapper.findMaterialTypeAll();
// 获取当前用户所可见的仓库id // 获取当前用户所可见的仓库id
List<Long> depositoryIdForUserHas = new ArrayList<>(); List<Long> depositoryIdForUserHas = new ArrayList<>();
//version3 内勤人员有企管部办公用品库权限
Boolean neiqinFlag = userService.isUserNeiQin(userToken.getId());
if ("immediately".equals(type)) { if ("immediately".equals(type)) {
List<Depository> depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(userToken.getMaindeparment().toString()); List<Depository> depositoryByAdminorg = depositoryMapper.findDepositoryByAdminorg(userToken.getMaindeparment().toString());
for (Depository depository : depositoryByAdminorg for (Depository depository : depositoryByAdminorg
) { ) {
depositoryIdForUserHas.add(depository.getId()); depositoryIdForUserHas.add(depository.getId());
//version3 内勤人员有企管部办公用品库权限 start
if(neiqinFlag){
depositoryIdForUserHas.add(56L);
}
//version3 end
} }
type = "2"; type = "2";
} else { } else {
depositoryIdForUserHas = roleService.findDepositoryIdForUserHas(userToken); depositoryIdForUserHas = roleService.findDepositoryIdForUserHas(userToken);
//version3 内勤人员有企管部办公用品库权限 start
if(neiqinFlag){
depositoryIdForUserHas.add(56L);
}
//version3 end
} }
// 物料总数 // 物料总数

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

@ -1887,35 +1887,81 @@ public class QyWxOperationService {
} }
else if (flag == 12) { else if (flag == 12) {
//此时分为申领申领者本部门备品备件库和申领其它部门备品备件库,当申领的为本部门的时,延续当前写法,当申领的为其他部门的时,将第一节点的审批人换为他部门的领导. version3
//申请者id
Long applicantId_version3 = mainRecord.getApplicantId();
//获取申请者部门
UserByPort userByPort_version3 = userService.findUserByIdForNoPack(applicantId_version3);
String applicantAdminorg_version3 = userByPort_version3.getAdminorg().toString();
//获取申请物料所属部门
Depository depositoryById_version3 = depositoryMapper.findDepositoryById(mainRecord.getDepositoryId());
String materialOrg_version3 = depositoryById_version3.getAdminorg();
if(materialOrg_version3.equals(applicantAdminorg_version3)){//申请的时本部门的备品备件库
System.out.println("申请的是申请者所在部门的备品备件库");
}else{
System.out.println("申请的不是申请者所在部门的备品备件库");
}
/*Depository depositoryById = depositoryMapper.findDepositoryById(mainRecord.getDepositoryId());
String adminorg = depositoryById.getAdminorg();
List<UserByPort> departmentHeadByUser = userService.getDepartmentHeaderByIdForNoPack(ObjectFormatUtil.toLong(applicantAdminorg_version3));*/
//获取当前用户部门号与物料出库管理者部门号比较(depository.adminorg),,
/**
*
*/
// 如果是备品备件库 // 如果是备品备件库
// 获取申请用户所在部门的设备员 // 获取申请用户所在部门的设备员
List<UserByPort> userByPortList = PublicConfig.findUserByAdminorgAndPosition(applicantUser.getMaindeparment(), "设备员", userKey, token); List<UserByPort> userByPortList = PublicConfig.findUserByAdminorgAndPosition(applicantUser.getMaindeparment(), "设备员", userKey, token);
List<UserByPort> departmentHeadForUserToken = userService.getDepartmentHeaderByIdForNoPack(applicantUser.getMaindeparment()); List<UserByPort> departmentHeadForUserToken = userService.getDepartmentHeaderByIdForNoPack(applicantUser.getMaindeparment());
if (userByPortList.size() > 0) {
// 如果有设备员 if(materialOrg_version3.equals(applicantAdminorg_version3)){
for (UserByPort userByPort : userByPortList) {
String other_workwechat = userByPort.getWorkwechat();
if (other_workwechat == null || "".equals(other_workwechat)) { if (userByPortList.size() > 0) {
other_workwechat = userByPort.getWechat(); // 如果有设备员
for (UserByPort userByPort : userByPortList) {
String other_workwechat = userByPort.getWorkwechat();
if (other_workwechat == null || "".equals(other_workwechat)) {
other_workwechat = userByPort.getWechat();
}
// 添加到审批节点
userIdList.add(other_workwechat);
// 添加到抄送节点
notifyerList.add(other_workwechat);
} }
// 添加到审批节点 for (UserByPort departmentHead : departmentHeadForUserToken
userIdList.add(other_workwechat); ) {
// 添加到抄送节点 String departmentHeadWorkwechat = departmentHead.getWorkwechat();
notifyerList.add(other_workwechat); if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) {
} departmentHeadWorkwechat = departmentHead.getWechat();
for (UserByPort departmentHead : departmentHeadForUserToken }
) { // 添加到抄送节点
String departmentHeadWorkwechat = departmentHead.getWorkwechat(); notifyerList.add(departmentHeadWorkwechat);
if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) { }
departmentHeadWorkwechat = departmentHead.getWechat(); } else {
// 如果没有
for (UserByPort departmentHead : departmentHeadForUserToken
) {
String departmentHeadWorkwechat = departmentHead.getWorkwechat();
if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) {
departmentHeadWorkwechat = departmentHead.getWechat();
}
// 添加到审批节点
userIdList.add(departmentHeadWorkwechat);
// 添加到抄送节点
notifyerList.add(departmentHeadWorkwechat);
} }
// 添加到抄送节点
notifyerList.add(departmentHeadWorkwechat);
} }
} else { }else{//申请的不是申请者所在部门的备品备件库
// 如果没有 List<UserByPort> departmentHeadByUser_version3 = userService.getDepartmentHeaderByIdForNoPack(ObjectFormatUtil.toLong(applicantAdminorg_version3));
for (UserByPort departmentHead : departmentHeadForUserToken for (UserByPort departmentHead : departmentHeadByUser_version3
) { ) {
String departmentHeadWorkwechat = departmentHead.getWorkwechat(); String departmentHeadWorkwechat = departmentHead.getWorkwechat();
if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) { if (departmentHeadWorkwechat == null || "".equals(departmentHeadWorkwechat)) {
@ -1928,6 +1974,8 @@ public class QyWxOperationService {
} }
} }
} }
approvalTemplate.setNotifyer(notifyerList); approvalTemplate.setNotifyer(notifyerList);
@ -2014,7 +2062,7 @@ public class QyWxOperationService {
otherDepartmentIdList.add(departmentHeadWorkwechat); otherDepartmentIdList.add(departmentHeadWorkwechat);
} }
//liwenxuan //liwenxuan
otherDepartmentIdList = new ArrayList<String>(Collections.singleton("LiWenXuan")); //otherDepartmentIdList = new ArrayList<String>(Collections.singleton("LiWenXuan"));
// 用于设置其他部门负责人审批 // 用于设置其他部门负责人审批
@ -2158,12 +2206,18 @@ public class QyWxOperationService {
String jsonString = JSONObject.toJSONString(approvalTemplate); 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 url = String.format("https://qyapi.weixin.qq.com/cgi-bin/oa/applyevent?access_token=%s", QyWxConfig.GetQYWXToken(userAgent));
//测试用 version3 上线要改回来. start
//System.out.println(jsonString);
String s = HttpUtils.doPost(url, jsonString); String s = HttpUtils.doPost(url, jsonString);
//String s = "[]";
//测试用 version3 上线要改回来. start
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 + ";发送给企业微信的数据:" + jsonString); log.info("发送出库审批结果:" + s + ";发送给企业微信的数据:" + jsonString);
return jsonObject; return jsonObject;
/**
* nideshijieyimumufenfeimenwaideqiangweidaicishangrendehenzhijieguoqubeifanyuejiejvmantiandefengxue
*/
} }
@ -2238,7 +2292,7 @@ public class QyWxOperationService {
Approval_template_approver approval_template_approver_departMentHeader = new Approval_template_approver(); Approval_template_approver approval_template_approver_departMentHeader = new Approval_template_approver();
approval_template_approver_departMentHeader.setAttr(1); approval_template_approver_departMentHeader.setAttr(1);
//liwenxuan //liwenxuan
userIdList = new ArrayList<>(Collections.singleton("LiWenXuan")); //userIdList = new ArrayList<>(Collections.singleton("LiWenXuan"));
approval_template_approver_departMentHeader.setUserid(userIdList); approval_template_approver_departMentHeader.setUserid(userIdList);
@ -3035,7 +3089,7 @@ public class QyWxOperationService {
} }
notifyerList.add(user); notifyerList.add(user);
//liwenxuan //liwenxuan
workwechat = "LiWenXuan"; //workwechat = "LiWenXuan";
notifyerList.add(workwechat); notifyerList.add(workwechat);
approvalTemplate.setNotifyer(notifyerList); approvalTemplate.setNotifyer(notifyerList);

16
src/main/java/com/dreamchaser/depository_manage/service/impl/UserServiceImpl.java

@ -193,6 +193,22 @@ public class UserServiceImpl implements UserService {
public List<UserByPort> findUserByName(String name) { public List<UserByPort> findUserByName(String name) {
return userMapper.findUserByName(name); return userMapper.findUserByName(name);
} }
/**
* 判断当前用户是否是内勤
* @param id
* @return
*/
@Override
public Boolean isUserNeiQin(Long id) {
Boolean flag = false;
List<UserByPort> neiqinList = userMapper.findAllNeiqinUser();
for(UserByPort item: neiqinList){
if(item.getId().equals(id)){
flag = true;
}
}
return flag;
}
public UserByPort packForOne(UserByPort userByPort) { public UserByPort packForOne(UserByPort userByPort) {

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

@ -630,8 +630,8 @@
success: function (data) { success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 //layer.msg(data.statusInfo.message);//失败的表情
layer.alert(data.statusInfo.message);
} else { } else {
layer.msg("申请提交成功", { layer.msg("申请提交成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情

87
src/main/resources/templates/pages/application/application-review.html

@ -92,7 +92,7 @@
<div class="layui-input-block"> <div class="layui-input-block">
<div class="layui-col-xs6 " style="padding: 7.5px"> <div class="layui-col-xs6 " style="padding: 7.5px">
<button type="button" class="layui-btn" onclick="review(1)"> <button type="button" class="layui-btn" onclick="review(1)">
&emsp;同意&emsp; &emsp;111&emsp;
</button> </button>
</div> </div>
<div class="layui-col-xs6" style="padding: 7.5px"> <div class="layui-col-xs6" style="padding: 7.5px">
@ -148,7 +148,7 @@
<div class="layui-input-block"> <div class="layui-input-block">
<div class="layui-col-xs6 " style="padding: 7.5px"> <div class="layui-col-xs6 " style="padding: 7.5px">
<button type="button" class="layui-btn" onclick="reviewForBalance(1)"> <button type="button" class="layui-btn" onclick="reviewForBalance(1)">
&emsp;同意&emsp; &emsp;222&emsp;
</button> </button>
</div> </div>
<div class="layui-col-xs6" style="padding: 7.5px"> <div class="layui-col-xs6" style="padding: 7.5px">
@ -177,7 +177,7 @@
<div class="layui-input-block"> <div class="layui-input-block">
<div class="layui-col-xs6 " style="padding: 7.5px"> <div class="layui-col-xs6 " style="padding: 7.5px">
<button type="button" class="layui-btn" onclick="reviewForBalanceM(1)"> <button type="button" class="layui-btn" onclick="reviewForBalanceM(1)">
&emsp;同意&emsp; &emsp;333&emsp;
</button> </button>
</div> </div>
<div class="layui-col-xs6" style="padding: 7.5px"> <div class="layui-col-xs6" style="padding: 7.5px">
@ -207,7 +207,7 @@
<div class="layui-input-block"> <div class="layui-input-block">
<div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px"> <div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px">
<button type="button" class="layui-btn" onclick="check(1)"> <button type="button" class="layui-btn" onclick="check(1)">
&emsp;同意&emsp; &emsp;444&emsp;
</button> </button>
</div> </div>
<div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px"> <div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px">
@ -377,7 +377,7 @@
success: function (res) { success: function (res) {
record = res.data; record = res.data;
//liwenxuan 测试 //liwenxuan 测试
//console.log(record); console.log(record);
// 用于创造时间线节点 // 用于创造时间线节点
let timeLineStartItem = `<div class="layui-timeline-item" id="placeholder"> let timeLineStartItem = `<div class="layui-timeline-item" id="placeholder">
<i class="layui-icon layui-timeline-axis layui-icon-friends"></i> <i class="layui-icon layui-timeline-axis layui-icon-friends"></i>
@ -403,7 +403,7 @@
// 获取平衡岗人员相关信息 // 获取平衡岗人员相关信息
let balancePoster = record.balancePoster; let balancePoster = record.balancePoster;
let balancePosterPass = record.balancePosterPass; let balancePosterPass = record.balancePosterPass;
let materialNotUserOrg = record.materialNotUserOrg;
if (departmentheadPass !== "3") { if (departmentheadPass !== "3") {
// 如果已经进行了审批 // 如果已经进行了审批
firstApprovalNodeIcon.removeClass("layui-icon-friends"); // 删除当前图标 firstApprovalNodeIcon.removeClass("layui-icon-friends"); // 删除当前图标
@ -427,26 +427,26 @@
// 配置平衡岗节点(第二个节点) // 配置平衡岗节点(第二个节点)
if (balancePoster !== "" && departmentheadPass === "1") { if (balancePoster !== "" && departmentheadPass === "1") {
//liwenxuan 测试 //liwenxuan 测试
//alert('配置平衡岗节点(第二个节点)') alert('配置平衡岗节点(第二个节点)')
let nodeName = "balancePoster"; let nodeName = "balancePoster";
let timeLineStartItemForId = timeLineStartItem.replace("placeholder", "secondApprovalNode"); let timeLineStartItemForId = timeLineStartItem.replace("placeholder", "secondApprovalNode");
let approvalNode = createApprovalNode(nodeName, record, timeLineStartItemForId); let approvalNode = createApprovalNode(nodeName, record, timeLineStartItemForId);
// 如果需要平衡岗且第一个节点审批完成 // 如果需要平衡岗且第一个节点审批完成
if (balancePosterPass === "3") { if (balancePosterPass === "3") {
//alert('373') alert('balancePosterPass === "3"')
$("#review").hide(); $("#review").hide();
$("#reviewForBalance").show(); $("#reviewForBalance").show();
flagForBalancerNode = -1; // 不展示 flagForBalancerNode = -1; // 不展示
} else { } else {
if (balancePosterPass === "1") { if (balancePosterPass === "1") {
//alert('379') alert('balancePosterPass === "1"')
// 如果平衡岗审批通过 // 如果平衡岗审批通过
$("#review").hide(); $("#review").hide();
$("#reviewForBalanceM").show(); $("#reviewForBalanceM").show();
flagForBalancerNode = 3; // 为第三个节点 flagForBalancerNode = 3; // 为第三个节点
} else if (balancePosterPass === "2") { } else if (balancePosterPass === "2") {
//alert('383') alert('balancePosterPass === "2"')
// 如果平衡岗未审批通过 // 如果平衡岗未审批通过
flagForBalancerNode = -1; // 不展示 flagForBalancerNode = -1; // 不展示
} }
@ -456,31 +456,60 @@
// 配置仓储管理员节点(第三或第二个节点) // 配置仓储管理员节点(第三或第二个节点)
if (depositoryManagerPass !== "4" && departmentheadPass === "1" && flagForBalancerNode !== -1) { if (depositoryManagerPass !== "4" && departmentheadPass === "1" && flagForBalancerNode !== -1) {
//alert('393') //alert('459flagForBalancerNode:'+flagForBalancerNode+'')
let timeLineStartItemForId; if(materialNotUserOrg==="notFromUserOrg"){//申请人申请出库其它部门备品备件库中的物料
if (flagForBalancerNode === 2) {
// 如果是第二个节点
timeLineStartItemForId = timeLineStartItem.replace("placeholder", "secondApprovalNode");
} else {
// 如果是第三个节点
timeLineStartItemForId = timeLineStartItem.replace("placeholder", "thirdApprovalNode");
}
// 如果可以查看该节点 $("#review").hide();
let nodeName = "depositoryManager"; $("#reviewForBalanceM").show();
let approvalNode = createApprovalNode(nodeName, record, timeLineStartItemForId);
if (flagForBalancerNode === 2) {
// 如果是第二个节点
firstApprovalNode.after(approvalNode); let timeLineStartItemForId;
} else { if (flagForBalancerNode === 2) {
// 如果是第三个节点 // 如果是第二个节点
$("#secondApprovalNode").after(approvalNode); timeLineStartItemForId = timeLineStartItem.replace("placeholder", "secondApprovalNode");
} else {
// 如果是第三个节点
timeLineStartItemForId = timeLineStartItem.replace("placeholder", "thirdApprovalNode");
}
// 如果可以查看该节点
let nodeName = "depositoryManager";
let approvalNode = createApprovalNode(nodeName, record, timeLineStartItemForId);
if (flagForBalancerNode === 2) {
// 如果是第二个节点
firstApprovalNode.after(approvalNode);
} else {
// 如果是第三个节点
$("#secondApprovalNode").after(approvalNode);
}
}else{
let timeLineStartItemForId;
if (flagForBalancerNode === 2) {
// 如果是第二个节点
timeLineStartItemForId = timeLineStartItem.replace("placeholder", "secondApprovalNode");
} else {
// 如果是第三个节点
timeLineStartItemForId = timeLineStartItem.replace("placeholder", "thirdApprovalNode");
}
// 如果可以查看该节点
let nodeName = "depositoryManager";
let approvalNode = createApprovalNode(nodeName, record, timeLineStartItemForId);
if (flagForBalancerNode === 2) {
// 如果是第二个节点
firstApprovalNode.after(approvalNode);
} else {
// 如果是第三个节点
$("#secondApprovalNode").after(approvalNode);
}
} }
} }
// 配置出库人员节点 // 配置出库人员节点
if (departmentheadPass === "1" && (depositoryManagerPass === "4" || depositoryManagerPass === "1")) { if (departmentheadPass === "1" && (depositoryManagerPass === "4" || depositoryManagerPass === "1")) {
alert('415') alert('483')
let completeOutTime = record.outTime; let completeOutTime = record.outTime;
let pass = record.pass; let pass = record.pass;
let approvalNodeForCompleteOutUserName = '<h3 class="layui-timeline-title">出库人员:'; let approvalNodeForCompleteOutUserName = '<h3 class="layui-timeline-title">出库人员:';

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

@ -684,8 +684,8 @@
success: function (data) { success: function (data) {
layer.close(this.layerIndex); layer.close(this.layerIndex);
if (data.status >= 300) { if (data.status >= 300) {
layer.msg(data.statusInfo.message);//失败的表情 //layer.msg(data.statusInfo.message);//失败的表情
layer.alert(data.statusInfo.message);
} else { } else {
layer.msg("申请提交成功", { layer.msg("申请提交成功", {
icon: 6,//成功的表情 icon: 6,//成功的表情

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

@ -86,7 +86,7 @@
});*/ });*/
var result = "1701796293431828480";//当needResult为1时返回处理结果 1701795870830534656 var result = "1207080357";//当needResult为1时返回处理结果 1701795870830534656
var req = {}; var req = {};
req.qrCode = result; req.qrCode = result;
outboundLogic(req); outboundLogic(req);
@ -293,7 +293,7 @@
} }
})*/ })*/
// 回调 // 回调
var result = '1648852355050151936';//1638091255811710976当needResult为1时返回处理结果1641262864907149312 var result = '1641260862546419712';//1638091255811710976当needResult为1时返回处理结果1641262864907149312
var req = {}; var req = {};
req.qrCode = result; req.qrCode = result;
outboundLogic(req); outboundLogic(req);

Loading…
Cancel
Save