Browse Source

完成出库审批流程修改

lwx_dev
erdanergou 2 years ago
parent
commit
62a8c60179
  1. 3
      src/main/java/com/dreamchaser/depository_manage/config/PublicConfig.java
  2. 7
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java
  3. 2
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  4. 5
      src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecordMin.java
  5. 6
      src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml
  6. 6
      src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordMinP.java
  7. 3
      src/main/java/com/dreamchaser/depository_manage/security/pool/AuthenticationTokenPool.java
  8. 60
      src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java
  9. 18
      src/main/resources/templates/pages/application/form-step-look_back.html
  10. 21
      src/test/java/com/dreamchaser/depository_manage/SomeTest.java
  11. 18
      target/classes/templates/pages/application/form-step-look_back.html

3
src/main/java/com/dreamchaser/depository_manage/config/PublicConfig.java

@ -339,9 +339,6 @@ public class PublicConfig {
JSONObject jsonObject = JSONObject.parseObject(post); JSONObject jsonObject = JSONObject.parseObject(post);
JSONObject data = (JSONObject) jsonObject.get("data"); JSONObject data = (JSONObject) jsonObject.get("data");
UserByPort userByPort = JSONObject.toJavaObject(data, UserByPort.class); UserByPort userByPort = JSONObject.toJavaObject(data, UserByPort.class);
if ("302299".equals(userByPort.getNumber())) {
userByPort.setMaindeparment(280);
}
if("300732".equals(userByPort.getNumber())){ if("300732".equals(userByPort.getNumber())){
userByPort.setMaindeparment(361); userByPort.setMaindeparment(361);
userByPort.setMaindeparmentname("仓储中心"); userByPort.setMaindeparmentname("仓储中心");

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

@ -1468,12 +1468,11 @@ public class DepositoryRecordController {
managerList.add(userByPort); managerList.add(userByPort);
} }
} }
} }
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
Map<String, String> completeUserIconMap = new HashMap<>(); Map<String, String> completeUserIconMap = new HashMap<>();
for (UserByPort userByPort : managerList) { for (UserByPort userByPort : managerList) {
String name = userByPort.getName(); String name = userByPort.getMaindeparmentname() + "-" + userByPort.getName();
sb.append(name).append(","); sb.append(name).append(",");
completeUserIconMap.put(name, userByPort.getIconphoto()); completeUserIconMap.put(name, userByPort.getIconphoto());
} }
@ -1494,7 +1493,7 @@ public class DepositoryRecordController {
for (String s : split) { for (String s : split) {
if (!"".equals(s)) { if (!"".equals(s)) {
UserByPort userByPort = PublicConfig.FindUserById(ObjectFormatUtil.toInteger(s), userKey, token); UserByPort userByPort = PublicConfig.FindUserById(ObjectFormatUtil.toInteger(s), userKey, token);
String name = userByPort.getName(); String name = userByPort.getMaindeparmentname() + "-" + userByPort.getName();
balancePosterIconPhoto.put(name, userByPort.getIconphoto()); balancePosterIconPhoto.put(name, userByPort.getIconphoto());
balancePosterName.append(name).append(","); balancePosterName.append(name).append(",");
} }
@ -1523,7 +1522,7 @@ public class DepositoryRecordController {
} }
Integer managerid = ObjectFormatUtil.toInteger(s); Integer managerid = ObjectFormatUtil.toInteger(s);
UserByPort user = PublicConfig.FindUserById(managerid, userKey, token); UserByPort user = PublicConfig.FindUserById(managerid, userKey, token);
String name = user.getName(); String name = user.getMaindeparmentname() + "-" + user.getName();
depositoryManagerIconPhoto.put(name, user.getIconphoto()); depositoryManagerIconPhoto.put(name, user.getIconphoto());
depositoryManagerNames.append(name); depositoryManagerNames.append(name);

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

@ -2522,7 +2522,7 @@ public class PageController {
continue; continue;
} }
UserByPort departmenthead = PublicConfig.FindUserById(ObjectFormatUtil.toInteger(value), userKey, token); UserByPort departmenthead = PublicConfig.FindUserById(ObjectFormatUtil.toInteger(value), userKey, token);
String name = departmenthead.getName(); String name = departmenthead.getMaindeparmentname()+"-"+departmenthead.getName();
departmentHeadUserIcon.put(name,departmenthead.getIconphoto()); departmentHeadUserIcon.put(name,departmenthead.getIconphoto());
departmentHeadName.append(name).append(","); departmentHeadName.append(name).append(",");
useAdminorgName = departmenthead.getMaindeparmentname(); useAdminorgName = departmenthead.getMaindeparmentname();

5
src/main/java/com/dreamchaser/depository_manage/entity/ApplicationOutRecordMin.java

@ -74,4 +74,9 @@ public class ApplicationOutRecordMin {
*/ */
private String project; private String project;
/**
* 完成时间
*/
private String completeOutTime;
} }

6
src/main/java/com/dreamchaser/depository_manage/mapper/DepositoryRecordMapper.xml

@ -148,6 +148,7 @@
<result column="code" property="code" jdbcType="VARCHAR"/> <result column="code" property="code" jdbcType="VARCHAR"/>
<result column="transferId" property="transferId" jdbcType="INTEGER"/> <result column="transferId" property="transferId" jdbcType="INTEGER"/>
<result column="unit" property="unit" jdbcType="VARCHAR"/> <result column="unit" property="unit" jdbcType="VARCHAR"/>
<result column="completeOutTime" property="completeOutTime" jdbcType="VARCHAR"/>
</resultMap> </resultMap>
<!-- 表查询字段 --> <!-- 表查询字段 -->
@ -190,7 +191,7 @@
</sql> </sql>
<sql id="ApplicationOutRecordMinInfo"> <sql id="ApplicationOutRecordMinInfo">
aorm.id,aorm.mid,aorm.depositoryId,aorm.placeId,aorm.quantity,aorm.code,aorm.checkId,aorm.parentId,aorm.transferId,aorm.trueOut,aorm.unit,aorm.project aorm.id,aorm.mid,aorm.depositoryId,aorm.placeId,aorm.quantity,aorm.code,aorm.checkId,aorm.parentId,aorm.transferId,aorm.trueOut,aorm.unit,aorm.project,aorm.completeOutTime
</sql> </sql>
<!-- 查询所有数据行数 --> <!-- 查询所有数据行数 -->
<select id="findCount" resultType="integer"> <select id="findCount" resultType="integer">
@ -1443,6 +1444,9 @@
<if test="checkId != null"> <if test="checkId != null">
checkId = #{checkId}, checkId = #{checkId},
</if> </if>
<if test="minRecordCompleteTime != null">
completeOutTime = #{minRecordCompleteTime},
</if>
<if test="parentId != null "> <if test="parentId != null ">
parentId = #{parentId}, parentId = #{parentId},
</if> </if>

6
src/main/java/com/dreamchaser/depository_manage/pojo/ApplicationOutRecordMinP.java

@ -119,6 +119,11 @@ public class ApplicationOutRecordMinP {
private String project; private String project;
/**
* 完成时间
*/
private String minRecordCompleteTime;
public ApplicationOutRecordMinP(ApplicationOutRecordMin recordMin) { public ApplicationOutRecordMinP(ApplicationOutRecordMin recordMin) {
this.id = recordMin.getId(); this.id = recordMin.getId();
@ -134,5 +139,6 @@ public class ApplicationOutRecordMinP {
this.transferId = recordMin.getTransferId(); this.transferId = recordMin.getTransferId();
this.trueOut =(double) (recordMin.getTrueOut() / 100); this.trueOut =(double) (recordMin.getTrueOut() / 100);
this.project = recordMin.getProject(); this.project = recordMin.getProject();
this.minRecordCompleteTime = recordMin.getCompleteOutTime();
} }
} }

3
src/main/java/com/dreamchaser/depository_manage/security/pool/AuthenticationTokenPool.java

@ -35,9 +35,6 @@ public class AuthenticationTokenPool {
//判断令牌是否过期 //判断令牌是否过期
if (userToken.isValid()) { if (userToken.isValid()) {
if("302299".equals(userToken.getNumber())){
userToken.setMaindeparment(280);
}
return userToken; return userToken;
} else { } else {
//清除过期令牌 //清除过期令牌

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

@ -2171,6 +2171,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 设置新库位 // 设置新库位
applicationOutMinById.setPlaceId(placeId); applicationOutMinById.setPlaceId(placeId);
applicationOutMinById.setCompleteOutTime(""+System.currentTimeMillis());
// 修改子订单 // 修改子订单
depositoryRecordMapper.updateApplicationOutRecordMin(applicationOutMinById); depositoryRecordMapper.updateApplicationOutRecordMin(applicationOutMinById);
@ -2273,12 +2274,14 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 获取当前出库的仓库是否为开放仓库 // 获取当前出库的仓库是否为开放仓库
int flagForOpenDepository = recordP.getFlagForOpenDepository(); int flagForOpenDepository = recordP.getFlagForOpenDepository();
if (!flagForFirst) { if (!flagForFirst) {
// 如果不是第一个审批节点
// 获取审批时间
String depositoryManagerTime = recordP.getDepositoryManagerTime(); String depositoryManagerTime = recordP.getDepositoryManagerTime();
if ("0".equals(depositoryManagerTime)) { if ("0".equals(depositoryManagerTime)) {
// 如果当前申请没有处理 // 如果当前申请没有处理
flag = false; flag = false;
// 如果点击的是通过
String simpleTime = DateUtil.getSimpleTime(new Date()); String simpleTime = DateUtil.getSimpleTime(new Date());
map.put("depositoryManagerTime", DateUtil.DateTimeToTimeStamp(simpleTime)); map.put("depositoryManagerTime", DateUtil.DateTimeToTimeStamp(simpleTime));
map.put("depositoryManager", userByPort.getId()); map.put("depositoryManager", userByPort.getId());
@ -2287,7 +2290,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 获取部门负责人审批时间 // 获取部门负责人审批时间
String departmentheadTime = recordP.getDepartmentheadTime(); String departmentheadTime = recordP.getDepartmentheadTime();
// 定义标志位为部门负责人已经审批 // 声明标志位,部门负责人是否已经审批(默认已经审批)
boolean flagForDepartmentHeadPass = false; boolean flagForDepartmentHeadPass = false;
if ("0".equals(departmentheadTime)) { if ("0".equals(departmentheadTime)) {
// 如果没有审批 // 如果没有审批
@ -2297,17 +2300,17 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
if ("2".equals(spStatus)) { if ("2".equals(spStatus)) {
// 如果点击的是通过 // 如果点击的是通过
map.put("depositoryManagerPass", 1); map.put("depositoryManagerPass", 1);
// 声明子单的stringbuilder
StringBuilder minRecordByMain = new StringBuilder("[]"); StringBuilder minRecordByMain = new StringBuilder("[]");
// 根据物料类型分类明细
Map<String, Object> minIdByMaterialType = new HashMap<>();
// 定义类型列表 // 定义类型列表
List<Long> materialTypeIdList = new ArrayList<>(); List<Long> materialTypeIdList = new ArrayList<>();
// 定义仓库列表 // 定义仓库列表
List<Integer> depositoryIdList = new ArrayList<>(); List<Integer> depositoryIdList = new ArrayList<>();
// 遍历子单给对应的出库人员发送出库通知
for (ApplicationOutRecordMin applicationOutRecordMin : applicationOutRecordMinByParent) { for (ApplicationOutRecordMin applicationOutRecordMin : applicationOutRecordMinByParent) {
// 获取子单信息 // 获取子单信息
@ -2322,13 +2325,13 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 获取出库仓库 // 获取出库仓库
Integer depositoryId = applicationOutRecordMin.getDepositoryId(); Integer depositoryId = applicationOutRecordMin.getDepositoryId();
Depository depositoryById = depositoryMapper.findDepositoryById(depositoryId); Depository depositoryById = depositoryMapper.findDepositoryById(depositoryId);
// 获取当前仓库的顶级父仓库
Depository parentDepository = findParentDepository(depositoryById, depositoryAll); Depository parentDepository = findParentDepository(depositoryById, depositoryAll);
if (!parentDepository.getDname().contains("前置仓")) { if (!parentDepository.getDname().contains("前置仓")) {
// 如果不是前置仓下的仓库 // 如果不是前置仓下的仓库
flagForMtOrDepository = false; flagForMtOrDepository = false;
} }
//设置子订单在redis中的主键 //设置子订单在redis中的主键
String minRecordKey = "minRecord:" + applicationOutRecordMin.getId(); String minRecordKey = "minRecord:" + applicationOutRecordMin.getId();
// 将子订单主键插入到主订单的子订单列表 // 将子订单主键插入到主订单的子订单列表
@ -2344,42 +2347,40 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
if (!flagForMtOrDepository) { if (!flagForMtOrDepository) {
// 如果是通过类型 // 如果是通过类型
// 声明要进行出库的人员企业微信id
StringBuilder QyWxUid = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder();
// 获取当前仓库下的子订单 // 获取当前出库物料的类型id
Long materialTypeId = inventory.getMaterialTypeId(); Long materialTypeId = inventory.getMaterialTypeId();
if (!findThisIdIsExistForMaterialType(materialTypeIdList, materialTypeId)) { if (!findThisIdIsExistForMaterialType(materialTypeIdList, materialTypeId)) {
// 如果当前仓库id没有存入过 // 如果当前仓库id没有存入过
materialTypeIdList.add(materialTypeId); materialTypeIdList.add(materialTypeId);
} }
List<Integer> minIdList = new ArrayList<>(); List<Integer> minIdList = new ArrayList<>();
Object o = minIdByMaterialType.get("materialType" + materialTypeId);
if (o != null) {
minIdList = (List<Integer>) o;
}
// 将当前子订单添加到该仓库下的子订单列表中 // 将当前子订单添加到该仓库下的子订单列表中
minIdList.add(applicationOutRecordMin.getId()); minIdList.add(applicationOutRecordMin.getId());
minIdByMaterialType.put("materialType" + materialTypeId, minIdList);
// 获取该物料所处类型的管理员 // 获取该物料所处类型的管理员
List<Integer> userIdByDid = new ArrayList<>(); List<Integer> userIdByMtId = new ArrayList<>();
// 用于查询对应的管理员权限 // 用于查询对应的管理员权限
Map<String, Object> paramForUserManager = new HashMap<>(); Map<String, Object> paramForUserManager = new HashMap<>();
paramForUserManager.put("mtid", materialTypeId); paramForUserManager.put("mtid", materialTypeId);
// 获取当前类型的管理记录
List<RoleAndMaterialType> roleAndMaterialTypeByCondition = roleService.findRoleAndMaterialTypeByCondition(paramForUserManager); List<RoleAndMaterialType> roleAndMaterialTypeByCondition = roleService.findRoleAndMaterialTypeByCondition(paramForUserManager);
for (RoleAndMaterialType roleAndMaterialType : roleAndMaterialTypeByCondition) { for (RoleAndMaterialType roleAndMaterialType : roleAndMaterialTypeByCondition) {
// 获取当前记录类型(1是人2是岗位)
int classes = roleAndMaterialType.getClasses(); int classes = roleAndMaterialType.getClasses();
if (classes == 1) { if (classes == 1) {
// 如果是对人设置的权限 // 如果是对人设置的权限
userIdByDid.add(roleAndMaterialType.getUid()); userIdByMtId.add(roleAndMaterialType.getUid());
} else { } else {
// 如果是对岗位 // 如果是对岗位
// 定义用于获取当前岗位下的人的参数map // 定义用于获取当前岗位下的人的参数map
Map<String, Object> paramForGetUserByPost = new HashMap<>(); Map<String, Object> paramForGetUserByPost = new HashMap<>();
paramForGetUserByPost.put("position", roleAndMaterialType.getUid()); paramForGetUserByPost.put("position", roleAndMaterialType.getUid());
// 获取当前岗位对应的人员
List<UserByPort> userByPortList = PublicConfig.FindUserByMap(paramForGetUserByPost, userKey, token); List<UserByPort> userByPortList = PublicConfig.FindUserByMap(paramForGetUserByPost, userKey, token);
for (UserByPort userByPort1 : userByPortList) { for (UserByPort userByPort1 : userByPortList) {
Integer userId1 = userByPort1.getId(); Integer userId1 = userByPort1.getId();
@ -2396,8 +2397,8 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
} }
} }
// 将没有插入的用户进行插入
for (Integer integer : userIdByDid) { for (Integer integer : userIdByMtId) {
// 获取仓库管理员信息 // 获取仓库管理员信息
UserByPort manager = PublicConfig.FindUserById(integer, userKey, token); UserByPort manager = PublicConfig.FindUserById(integer, userKey, token);
updateRedisDataForUserManager(integer, minRecordKey); updateRedisDataForUserManager(integer, minRecordKey);
@ -2409,6 +2410,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// QyWxUid.append(workwechat+","); // QyWxUid.append(workwechat+",");
} }
QyWxUid.append("PangFuZhen,"); QyWxUid.append("PangFuZhen,");
// 将当前子单的管理员插入到子单记录中
minRecord.put("manager", minRecordManage.toString()); minRecord.put("manager", minRecordManage.toString());
// 添加子订单到redis中 // 添加子订单到redis中
redisPool.getRedisTemplateByDb(15).opsForHash().putAll(minRecordKey, minRecord); redisPool.getRedisTemplateByDb(15).opsForHash().putAll(minRecordKey, minRecord);
@ -2423,21 +2425,15 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
} else { } else {
// 如果是通过仓库 // 如果是通过仓库
// 声明要发送的企业微信uid记录
StringBuilder QyWxUid = new StringBuilder(); StringBuilder QyWxUid = new StringBuilder();
if (!findThisIdIsExistForDepository(depositoryIdList, depositoryId)) { if (!findThisIdIsExistForDepository(depositoryIdList, depositoryId)) {
// 如果当前仓库id没有存入过 // 如果当前仓库id没有存入过
depositoryIdList.add(depositoryId); depositoryIdList.add(depositoryId);
} }
List<Integer> minIdList = new ArrayList<>(); List<Integer> minIdList = new ArrayList<>();
Object o = minIdByMaterialType.get("depository" + depositoryId);
if (o != null) {
minIdList = (List<Integer>) o;
}
// 将当前子订单添加到该仓库下的子订单列表中 // 将当前子订单添加到该仓库下的子订单列表中
minIdList.add(applicationOutRecordMin.getId()); minIdList.add(applicationOutRecordMin.getId());
minIdByMaterialType.put("depository" + depositoryId, minIdList);
// 获取该物料所处仓库的仓库管理员 // 获取该物料所处仓库的仓库管理员
List<Integer> userIdByDid = new ArrayList<>(); List<Integer> userIdByDid = new ArrayList<>();
@ -2445,9 +2441,10 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 用于查询对应的管理员权限 // 用于查询对应的管理员权限
Map<String, Object> paramForUserManager = new HashMap<>(); Map<String, Object> paramForUserManager = new HashMap<>();
paramForUserManager.put("depositoryId", depositoryId); paramForUserManager.put("depositoryId", depositoryId);
// 获取当前仓库的管理记录
List<RoleAndDepository> roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(paramForUserManager); List<RoleAndDepository> roleAndDepositoryByCondition = roleService.findRoleAndDepositoryByCondition(paramForUserManager);
for (RoleAndDepository roleAndDepository : roleAndDepositoryByCondition) { for (RoleAndDepository roleAndDepository : roleAndDepositoryByCondition) {
// 获取当前管理记录的类型(1人2岗位)
int classes = roleAndDepository.getClasses(); int classes = roleAndDepository.getClasses();
if (classes == 1) { if (classes == 1) {
// 如果是对人设置的权限 // 如果是对人设置的权限
@ -2508,8 +2505,9 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
// 将主订单插入到redis中 // 将主订单插入到redis中
redisPool.getRedisTemplateByDb(15).opsForHash().put("record:" + recordP.getId(), "minRecord", minRecordByMain.toString()); redisPool.getRedisTemplateByDb(15).opsForHash().put("record:" + recordP.getId(), "minRecord", minRecordByMain.toString());
map.put("state", userByPort.getName() + "审核通过"); map.put("state", userByPort.getName() + "审核通过");
if (flagForDepartmentHeadPass || flagForOpenDepository == 2) { // if (flagForDepartmentHeadPass || flagForOpenDepository == 2) {
map.put("state", userByPort.getName() + "审核通过"); if (flagForDepartmentHeadPass) {
// 如果前一个节点没有进行审批
map.put("depositoryManagerPass", 4); map.put("depositoryManagerPass", 4);
if ("0".equals(departmentheadTime)) { if ("0".equals(departmentheadTime)) {
map.put("departmenthead", userByPort.getId()); map.put("departmenthead", userByPort.getId());
@ -2524,11 +2522,10 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService {
map.put("depositoryManagerPass", 2); map.put("depositoryManagerPass", 2);
map.put("pass", 2); map.put("pass", 2);
map.put("state", userByPort.getName() + "审核未通过"); map.put("state", userByPort.getName() + "审核未通过");
if (flagForDepartmentHeadPass || flagForOpenDepository == 2) { // if (flagForDepartmentHeadPass || flagForOpenDepository == 2) {
map.put("state", userByPort.getName() + "审核未通过"); if (flagForDepartmentHeadPass) {
map.put("depositoryManagerPass", 4); map.put("depositoryManagerPass", 4);
if ("0".equals(departmentheadTime)) { if ("0".equals(departmentheadTime)) {
map.put("departmentheadPass", 2); map.put("departmentheadPass", 2);
map.put("departmentheadTime", DateUtil.DateTimeToTimeStamp(simpleTime)); map.put("departmentheadTime", DateUtil.DateTimeToTimeStamp(simpleTime));
map.put("departmenthead", userByPort.getId()); map.put("departmenthead", userByPort.getId());
@ -2538,8 +2535,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 {
// 如果是前两个审批节点 // 如果是前两个审批节点
//定义处理时间 //定义处理时间

18
src/main/resources/templates/pages/application/form-step-look_back.html

@ -97,7 +97,7 @@
<h3 class="layui-timeline-title">申请人:</h3> <h3 class="layui-timeline-title">申请人:</h3>
<p> <p>
<img th:src="${record.getApplicantUserIconPhoto()}" <img th:src="${record.getApplicantUserIconPhoto()}"
style="vertical-align:middle;height: 50px"> style="vertical-align:middle;height: 50px;margin: 0px 10px">
<span th:text="${record.getApplicantName()}"></span> <span th:text="${record.getApplicantName()}"></span>
</p> </p>
<p th:text="'申请时间:'+${record.getApplicantTime()}"></p> <p th:text="'申请时间:'+${record.getApplicantTime()}"></p>
@ -110,7 +110,7 @@
<div class="layui-timeline-content layui-text"> <div class="layui-timeline-content layui-text">
<h3 id="firstApprovalNodeTitle" class="layui-timeline-title">审批人:审批中</h3> <h3 id="firstApprovalNodeTitle" class="layui-timeline-title">审批人:审批中</h3>
<div th:each="d,iterStar:${record.getDepartmentheadUserIconPhoto()}"> <div th:each="d,iterStar:${record.getDepartmentheadUserIconPhoto()}">
<img th:src="${d.getValue()}" style="vertical-align:middle;height: 50px"> <img th:src="${d.getValue()}" style="vertical-align:middle;height: 50px;margin: 0px 10px">
<span id="firstApprovalNodeUserName" th:text="${d.getKey()}"></span> <span id="firstApprovalNodeUserName" th:text="${d.getKey()}"></span>
</div> </div>
</div> </div>
@ -174,8 +174,8 @@
let nodeState = record[nodeName + "Pass"]; let nodeState = record[nodeName + "Pass"];
if (nodeState === "3") { if (nodeState === "3") {
// 如果平衡岗未审批 // 如果平衡岗未审批
let approvalNodeForTitleName = '<h3 class="layui-timeline-title">审批人:</h3>'; let approvalNodeForTitleName = '<h3 class="layui-timeline-title">审批人:审批中</h3>';
let UserIconPhoto = record[nodeState + "UserIconPhoto"]; let UserIconPhoto = record[nodeName + "UserIconPhoto"];
let approvalNodeForIconPhoto = ''; let approvalNodeForIconPhoto = '';
for (let key in UserIconPhoto) { for (let key in UserIconPhoto) {
if (UserIconPhoto.hasOwnProperty(key)) { if (UserIconPhoto.hasOwnProperty(key)) {
@ -197,7 +197,7 @@
for (let key in UserIconPhoto) { for (let key in UserIconPhoto) {
if (UserIconPhoto.hasOwnProperty(key)) { if (UserIconPhoto.hasOwnProperty(key)) {
let IconPhotoItem = '<div>' + let IconPhotoItem = '<div>' +
'<img alt="头像" src="' + UserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;">' + '<img alt="头像" src="' + UserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;margin:0px 10px">' +
'<span>' + key + '</span>' + '<span>' + key + '</span>' +
'<div style="position: absolute;right: 0;top: 35px">'; '<div style="position: absolute;right: 0;top: 35px">';
if (nodeState === "1") { if (nodeState === "1") {
@ -327,10 +327,9 @@
// 配置出库人员节点 // 配置出库人员节点
if (departmentheadPass === "1" && (depositoryManagerPass === "4" || depositoryManagerPass === "1")) { if (departmentheadPass === "1" && (depositoryManagerPass === "4" || depositoryManagerPass === "1")) {
let completeOutUserName = record.completeOutUserName;
let completeOutTime = record.outTime; let completeOutTime = record.outTime;
let pass = record.pass; let pass = record.pass;
let approvalNodeForCompleteOutUserName = '<h3 class="layui-timeline-title">出库处理人:</h3>'; let approvalNodeForCompleteOutUserName = '<h3 class="layui-timeline-title">出库人:';
let approvalCompleteOutNode; let approvalCompleteOutNode;
let completeOutUserIconPhoto = record.completeOutUserIconPhoto; let completeOutUserIconPhoto = record.completeOutUserIconPhoto;
let approvalNodeForCompleteOutUserIconPhoto = ''; let approvalNodeForCompleteOutUserIconPhoto = '';
@ -344,10 +343,12 @@
} }
} }
if (pass === 1) { if (pass === 1) {
approvalNodeForCompleteOutUserName+='</h3>';
let approvalNodeForCompleteOutState = '<p>处理状态:出库完成</p>'; let approvalNodeForCompleteOutState = '<p>处理状态:出库完成</p>';
let approvalNodeForCompleteOutTime = '<p>出库时间:' + completeOutTime + '</p>'; let approvalNodeForCompleteOutTime = '<p>完成时间:' + completeOutTime + '</p>';
approvalCompleteOutNode = timeLineStartItem.replace("layui-icon-friends", "layui-icon-ok") + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + approvalNodeForCompleteOutState + approvalNodeForCompleteOutTime + timeLineEndItem; approvalCompleteOutNode = timeLineStartItem.replace("layui-icon-friends", "layui-icon-ok") + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + approvalNodeForCompleteOutState + approvalNodeForCompleteOutTime + timeLineEndItem;
} else { } else {
approvalNodeForCompleteOutUserName+='出库中</h3>';
approvalCompleteOutNode = timeLineStartItem + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + timeLineEndItem; approvalCompleteOutNode = timeLineStartItem + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + timeLineEndItem;
} }
if (flagForBalancerNode === 2) { if (flagForBalancerNode === 2) {
@ -387,7 +388,6 @@
}; };
downloadExcel = function () { downloadExcel = function () {
window.open("/depositoryRecord/downloadOutRecord?id=" + id, "_self"); window.open("/depositoryRecord/downloadOutRecord?id=" + id, "_self");
}; };

21
src/test/java/com/dreamchaser/depository_manage/SomeTest.java

@ -252,7 +252,7 @@ public class SomeTest {
ApprovalInfo approvalInfo = new ApprovalInfo(); ApprovalInfo approvalInfo = new ApprovalInfo();
approvalInfo.setTemplateId("3WKiKVCzyLv3Y1LaHZxp4DimQEpCdvYP52HsAUtF"); approvalInfo.setTemplateId("3WKiKVCzyLv3Y1LaHZxp4DimQEpCdvYP52HsAUtF");
approvalInfo.setSpNo("202307050007"); approvalInfo.setSpNo("202307060001");
// 模拟第一个节点(部门负责人) // 模拟第一个节点(部门负责人)
@ -262,22 +262,22 @@ public class SomeTest {
List<ApprovalInfo_Details> approvalInfo_Details1 = new ArrayList<>(); List<ApprovalInfo_Details> approvalInfo_Details1 = new ArrayList<>();
ApprovalInfo_Details ad1 = new ApprovalInfo_Details(); ApprovalInfo_Details ad1 = new ApprovalInfo_Details();
ad1.setSpStatus("2"); ad1.setSpStatus("2");
ad1.setSpTime("1688520723000"); ad1.setSpTime("1688601734000");
ApprovalInfo_Details_Approver approver1 = new ApprovalInfo_Details_Approver(); ApprovalInfo_Details_Approver approver1 = new ApprovalInfo_Details_Approver();
approver1.setUserId("PangFuZhen"); approver1.setUserId("WoBenShanLiang_3");
ad1.setApprover(approver1); ad1.setApprover(approver1);
approvalInfo_Details1.add(ad1); approvalInfo_Details1.add(ad1);
asr1.setDetails(approvalInfo_Details1); asr1.setDetails(approvalInfo_Details1);
// 模拟第二个节点(宋倩倩,平衡岗) // 模拟第二个节点(宋倩倩,平衡岗)
ApprovalInfo_SpRecord asr2 = new ApprovalInfo_SpRecord(); ApprovalInfo_SpRecord asr2 = new ApprovalInfo_SpRecord();
asr2.setSpStatus("1"); asr2.setSpStatus("2");
List<ApprovalInfo_Details> approvalInfo_Details2 = new ArrayList<>(); List<ApprovalInfo_Details> approvalInfo_Details2 = new ArrayList<>();
ApprovalInfo_Details ad2 = new ApprovalInfo_Details(); ApprovalInfo_Details ad2 = new ApprovalInfo_Details();
ad2.setSpStatus("1"); ad2.setSpStatus("2");
ad2.setSpTime("0"); ad2.setSpTime("1688602004000");
ApprovalInfo_Details_Approver approver2 = new ApprovalInfo_Details_Approver(); ApprovalInfo_Details_Approver approver2 = new ApprovalInfo_Details_Approver();
approver2.setUserId("YangYangBaoBei"); approver2.setUserId("XinPing");
ad2.setApprover(approver2); ad2.setApprover(approver2);
approvalInfo_Details2.add(ad2); approvalInfo_Details2.add(ad2);
asr2.setDetails(approvalInfo_Details2); asr2.setDetails(approvalInfo_Details2);
@ -310,9 +310,9 @@ public class SomeTest {
spRecord_list.add(asr1); spRecord_list.add(asr1);
// spRecord_list.add(asr2); spRecord_list.add(asr2);
// spRecord_list.add(asr3); spRecord_list.add(asr3);
spRecord_list.add(asr4); // spRecord_list.add(asr4);
approvalInfo.setSpRecord(spRecord_list); approvalInfo.setSpRecord(spRecord_list);
approvalInfo.setStatuChangeEvent("2"); approvalInfo.setStatuChangeEvent("2");
@ -345,4 +345,5 @@ public class SomeTest {
System.out.println(days); System.out.println(days);
System.out.println(DateUtil.getLastTimeInterval()); System.out.println(DateUtil.getLastTimeInterval());
} }
} }

18
target/classes/templates/pages/application/form-step-look_back.html

@ -97,7 +97,7 @@
<h3 class="layui-timeline-title">申请人:</h3> <h3 class="layui-timeline-title">申请人:</h3>
<p> <p>
<img th:src="${record.getApplicantUserIconPhoto()}" <img th:src="${record.getApplicantUserIconPhoto()}"
style="vertical-align:middle;height: 50px"> style="vertical-align:middle;height: 50px;margin: 0px 10px">
<span th:text="${record.getApplicantName()}"></span> <span th:text="${record.getApplicantName()}"></span>
</p> </p>
<p th:text="'申请时间:'+${record.getApplicantTime()}"></p> <p th:text="'申请时间:'+${record.getApplicantTime()}"></p>
@ -110,7 +110,7 @@
<div class="layui-timeline-content layui-text"> <div class="layui-timeline-content layui-text">
<h3 id="firstApprovalNodeTitle" class="layui-timeline-title">审批人:审批中</h3> <h3 id="firstApprovalNodeTitle" class="layui-timeline-title">审批人:审批中</h3>
<div th:each="d,iterStar:${record.getDepartmentheadUserIconPhoto()}"> <div th:each="d,iterStar:${record.getDepartmentheadUserIconPhoto()}">
<img th:src="${d.getValue()}" style="vertical-align:middle;height: 50px"> <img th:src="${d.getValue()}" style="vertical-align:middle;height: 50px;margin: 0px 10px">
<span id="firstApprovalNodeUserName" th:text="${d.getKey()}"></span> <span id="firstApprovalNodeUserName" th:text="${d.getKey()}"></span>
</div> </div>
</div> </div>
@ -174,8 +174,8 @@
let nodeState = record[nodeName + "Pass"]; let nodeState = record[nodeName + "Pass"];
if (nodeState === "3") { if (nodeState === "3") {
// 如果平衡岗未审批 // 如果平衡岗未审批
let approvalNodeForTitleName = '<h3 class="layui-timeline-title">审批人:</h3>'; let approvalNodeForTitleName = '<h3 class="layui-timeline-title">审批人:审批中</h3>';
let UserIconPhoto = record[nodeState + "UserIconPhoto"]; let UserIconPhoto = record[nodeName + "UserIconPhoto"];
let approvalNodeForIconPhoto = ''; let approvalNodeForIconPhoto = '';
for (let key in UserIconPhoto) { for (let key in UserIconPhoto) {
if (UserIconPhoto.hasOwnProperty(key)) { if (UserIconPhoto.hasOwnProperty(key)) {
@ -197,7 +197,7 @@
for (let key in UserIconPhoto) { for (let key in UserIconPhoto) {
if (UserIconPhoto.hasOwnProperty(key)) { if (UserIconPhoto.hasOwnProperty(key)) {
let IconPhotoItem = '<div>' + let IconPhotoItem = '<div>' +
'<img alt="头像" src="' + UserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;">' + '<img alt="头像" src="' + UserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;margin:0px 10px">' +
'<span>' + key + '</span>' + '<span>' + key + '</span>' +
'<div style="position: absolute;right: 0;top: 35px">'; '<div style="position: absolute;right: 0;top: 35px">';
if (nodeState === "1") { if (nodeState === "1") {
@ -327,10 +327,9 @@
// 配置出库人员节点 // 配置出库人员节点
if (departmentheadPass === "1" && (depositoryManagerPass === "4" || depositoryManagerPass === "1")) { if (departmentheadPass === "1" && (depositoryManagerPass === "4" || depositoryManagerPass === "1")) {
let completeOutUserName = record.completeOutUserName;
let completeOutTime = record.outTime; let completeOutTime = record.outTime;
let pass = record.pass; let pass = record.pass;
let approvalNodeForCompleteOutUserName = '<h3 class="layui-timeline-title">出库处理人:</h3>'; let approvalNodeForCompleteOutUserName = '<h3 class="layui-timeline-title">出库人:';
let approvalCompleteOutNode; let approvalCompleteOutNode;
let completeOutUserIconPhoto = record.completeOutUserIconPhoto; let completeOutUserIconPhoto = record.completeOutUserIconPhoto;
let approvalNodeForCompleteOutUserIconPhoto = ''; let approvalNodeForCompleteOutUserIconPhoto = '';
@ -344,10 +343,12 @@
} }
} }
if (pass === 1) { if (pass === 1) {
approvalNodeForCompleteOutUserName+='</h3>';
let approvalNodeForCompleteOutState = '<p>处理状态:出库完成</p>'; let approvalNodeForCompleteOutState = '<p>处理状态:出库完成</p>';
let approvalNodeForCompleteOutTime = '<p>出库时间:' + completeOutTime + '</p>'; let approvalNodeForCompleteOutTime = '<p>完成时间:' + completeOutTime + '</p>';
approvalCompleteOutNode = timeLineStartItem.replace("layui-icon-friends", "layui-icon-ok") + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + approvalNodeForCompleteOutState + approvalNodeForCompleteOutTime + timeLineEndItem; approvalCompleteOutNode = timeLineStartItem.replace("layui-icon-friends", "layui-icon-ok") + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + approvalNodeForCompleteOutState + approvalNodeForCompleteOutTime + timeLineEndItem;
} else { } else {
approvalNodeForCompleteOutUserName+='出库中</h3>';
approvalCompleteOutNode = timeLineStartItem + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + timeLineEndItem; approvalCompleteOutNode = timeLineStartItem + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + timeLineEndItem;
} }
if (flagForBalancerNode === 2) { if (flagForBalancerNode === 2) {
@ -387,7 +388,6 @@
}; };
downloadExcel = function () { downloadExcel = function () {
window.open("/depositoryRecord/downloadOutRecord?id=" + id, "_self"); window.open("/depositoryRecord/downloadOutRecord?id=" + id, "_self");
}; };

Loading…
Cancel
Save