Browse Source

修改我的任务、我的申请页面,并修复出库申请bug

lwx_dev
erdanergou 2 years ago
parent
commit
675622e1a0
  1. 2
      src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java
  2. 99
      src/main/java/com/dreamchaser/depository_manage/controller/PageController.java
  3. 8
      src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java
  4. 335
      src/main/resources/templates/pages/application/application-review.html
  5. 2
      src/main/resources/templates/pages/application/my-task.html
  6. 335
      target/classes/templates/pages/application/application-review.html
  7. 2
      target/classes/templates/pages/application/my-task.html

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

@ -1492,6 +1492,8 @@ public class DepositoryRecordController {
recordPById.setApplicantTime(DateUtil.TimeStampToDateTime(ObjectFormatUtil.toLong(recordPById.getApplicantTime())));
recordPById.setDepartmentheadTime(DateUtil.TimeStampToDateTime(ObjectFormatUtil.toLong(recordPById.getDepartmentheadTime())));
recordPById.setDepositoryManagerTime(DateUtil.TimeStampToDateTime(ObjectFormatUtil.toLong(recordPById.getDepositoryManagerTime())));
// 获取平衡岗人员
String balancePoster = recordPById.getBalancePoster();
Map<String, String> balancePosterIconPhoto = new HashMap<>();

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

@ -2143,52 +2143,25 @@ public class PageController {
}
}
// 申请人
UserByPort userByPort = PublicConfig.FindUserById(recordP.getApplicantId(), userKey, token);
UserByPort applicantUser = PublicConfig.FindUserById(recordP.getApplicantId(), userKey, token);
// 部门负责人
String departmentheads = recordP.getDepartmenthead();
String[] split = departmentheads.split(",");
// 获取部门负责人人员
String departmenthead = recordP.getDepartmenthead();
StringBuilder departmentHeadName = new StringBuilder();
for (String value : split) {
if ("".equals(value)) {
continue;
}
UserByPort departmenthead = PublicConfig.FindUserById(ObjectFormatUtil.toInteger(value.trim()), userKey, token);
departmentHeadName.append(departmenthead.getName()).append(",");
}
// 仓储中心负责人
String manager = recordP.getDepositoryManager();
String[] depositoryManagerId = new String[0];
if (manager != null) {
depositoryManagerId = manager.split(",");
}
List<UserByPort> depositoryManager = new ArrayList<>();
// 仓储中心负责人名称
StringBuilder depositoryManagerNames = new StringBuilder();
for (String s : depositoryManagerId) {
if ("".equals(s)) {
continue;
}
Integer managerid = ObjectFormatUtil.toInteger(s.trim());
UserByPort user = PublicConfig.FindUserById(managerid, userKey, token);
depositoryManager.add(user);
depositoryManagerNames.append(user.getName()).append(",");
}
// 平衡岗人员
String balancePoster = recordP.getBalancePoster();
StringBuilder balancePosterName = new StringBuilder();
if (balancePoster != null && !"".equals(balancePoster)) {
String[] strings = balancePoster.split(",");
for (String string : strings) {
if (!"".equals(string)) {
UserByPort user = PublicConfig.FindUserById(ObjectFormatUtil.toInteger(string), userKey, token);
balancePosterName.append(user.getName()).append(",");
Map<String, String> departmentHeadIconPhoto = new HashMap<>();
if (departmenthead != null) {
String[] split = departmenthead.split(",");
for (String s : split) {
if (!"".equals(s)) {
UserByPort departmentUser = PublicConfig.FindUserById(ObjectFormatUtil.toInteger(s), userKey, token);
String name = departmentUser.getMaindeparmentname() + "-" + departmentUser.getName();
departmentHeadIconPhoto.put(name, departmentUser.getIconphoto());
departmentHeadName.append("name").append(",");
}
}
String balancePosterTime = recordP.getBalancePosterTime();
if (balancePosterTime != null && !"".equals(balancePosterTime) && !"0".equals(balancePosterTime)) {
recordP.setBalancePosterTime(DateUtil.TimeStampToDateTime(ObjectFormatUtil.toLong(balancePosterTime)));
}
recordP.setDepartmentheadUserIconPhoto(departmentHeadIconPhoto);
recordP.setDepartmenthead(departmentHeadName.toString());
}
// 获取出库的所有仓库
@ -2212,10 +2185,10 @@ public class PageController {
recordP.setPCode(placeCode.toString());
recordP.setApplicantTime(DateUtil.TimeStampToDateTime(ObjectFormatUtil.toLong(recordP.getApplicantTime())));
recordP.setDepartmentheadTime(DateUtil.TimeStampToDateTime(ObjectFormatUtil.toLong(recordP.getDepartmentheadTime())));
recordP.setDepositoryManagerName(depositoryManagerNames.toString());
recordP.setBalancePosterName(balancePosterName.toString());
recordP.setApplicantName(userByPort.getMaindeparmentname() + "_" + userByPort.getName());
recordP.setApplicantName(applicantUser.getMaindeparmentname() + "_" + applicantUser.getName());
recordP.setApplicantUserIconPhoto(applicantUser.getIconphoto());
recordP.setDepartmentheadName(departmentHeadName.toString());
recordP.setDepartmentheadUserIconPhoto(departmentHeadIconPhoto);
recordP.setDepositoryName(depositoryName.toString());
recordP.setQuantity(sumQuantity);
recordP.setPrice(sumPrice);
@ -2517,23 +2490,6 @@ public class PageController {
// 获取当前仓库是否为开放仓库
mv.addObject("depositoryManagerText", "负责人");
// 获取平衡岗人员
String balancePoster = applicationOutRecordPById.getBalancePoster();
StringBuilder balancePosterName = new StringBuilder();
if (balancePoster != null) {
String[] split = balancePoster.split(",");
for (String s : split) {
if (!"".equals(s)) {
UserByPort userByPort = PublicConfig.FindUserById(ObjectFormatUtil.toInteger(s), userKey, token);
balancePosterName.append(userByPort.getName()).append(",");
}
}
applicationOutRecordPById.setBalancePosterTime(DateUtil.TimeStampToDateTime(ObjectFormatUtil.toLong(applicationOutRecordPById.getBalancePosterTime())));
} else {
applicationOutRecordPById.setBalancePosterTime("");
applicationOutRecordPById.setBalancePoster("");
}
// 获取出库子单
List<ApplicationOutRecordMinP> applicationOutRecordMinByParent = depositoryRecordService.findApplicationOutRecordMinByParent(applicationOutRecordPById.getId());
// 展示物料名
@ -2665,21 +2621,6 @@ public class PageController {
departmentHeadName.append(name).append(",");
useAdminorgName = departmenthead.getMaindeparmentname();
}
// 仓储中心负责人
String manager = applicationOutRecordPById.getDepositoryManager();
String[] depositoryManagerId = new String[0];
if (manager != null) {
depositoryManagerId = manager.split(",");
}
StringBuilder depositoryManagerNames = new StringBuilder();
for (String s : depositoryManagerId) {
if ("".equals(s)) {
continue;
}
Integer managerid = ObjectFormatUtil.toInteger(s);
UserByPort user = PublicConfig.FindUserById(managerid, userKey, token);
depositoryManagerNames.append(user.getName());
}
// 设置使用部门为第一个审批节点人所在的部门
applicationOutRecordPById.setUseAdminorgName(useAdminorgName);
@ -2713,17 +2654,13 @@ public class PageController {
applicationOutRecordPById.setApplicantUserIconPhoto(userByPort.getIconphoto());
applicationOutRecordPById.setDepartmentheadName(departmentHeadName.toString());
applicationOutRecordPById.setDepartmentheadUserIconPhoto(departmentHeadUserIcon);
applicationOutRecordPById.setDepositoryManagerName(depositoryManagerNames.toString());
applicationOutRecordPById.setApplicantTime(DateUtil.TimeStampToDateTime(ObjectFormatUtil.toLong(applicationOutRecordPById.getApplicantTime())));
applicationOutRecordPById.setDepartmentheadTime(DateUtil.TimeStampToDateTime(ObjectFormatUtil.toLong(applicationOutRecordPById.getDepartmentheadTime())));
applicationOutRecordPById.setDepositoryManagerTime(DateUtil.TimeStampToDateTime(ObjectFormatUtil.toLong(applicationOutRecordPById.getDepositoryManagerTime())));
applicationOutRecordPById.setPrice(sumPrice);
applicationOutRecordPById.setQuantity(sumQuantity);
applicationOutRecordPById.setMname(mname.toString());
applicationOutRecordPById.setMcode(mcode.toString());
applicationOutRecordPById.setDepositoryName(depositoryName.toString());
applicationOutRecordPById.setPCode(placeCode.toString());
applicationOutRecordPById.setBalancePosterName(balancePosterName.toString());
mv.addObject("record", applicationOutRecordPById);
mv.addObject("outDisposer", outDisposer.toString());
mv.addObject("recordMinList", recordMinPList);

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

@ -1786,8 +1786,8 @@ public class QyWxOperationService {
// 获取第一个节点成员uid
List<String> userIdList = new ArrayList<>();
if (flag == 11) {
// 如果是办公用品库
if (flag == 11 || flag == 21) {
// 如果是办公用品库或中心仓
List<UserByPort> departmentHeadForUserToken = PublicConfig.findDepartmentHeadByUser(applicantUser.getMaindeparment(), userKey, token);
@ -1803,7 +1803,7 @@ public class QyWxOperationService {
}
else if (flag == 12) {
else if (flag == 12 ) {
// 如果是备品备件库
// 获取申请用户所在部门的设备员
@ -2058,7 +2058,7 @@ public class QyWxOperationService {
String s = HttpUtils.doPost(url, jsonString);
JSONObject jsonObject = JSONObject.parseObject(s);
jsonObject.put("otherDepartmentIdList", JSONObject.toJSONString(otherDepartmentIdList));
log.info("发送出库审批结果:" + s);
log.info("发送出库审批结果:" + s+";发送给企业微信的数据:"+jsonString);
return jsonObject;
}

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

@ -32,7 +32,7 @@
<tbody>
<tr>
<td>申请编号</td>
<td id="id" style="display: none" th:text="${record.getId()}">123456</td>
<input style="display: none" id="id" th:value="${record.getId()}">
<td id="code" th:text="${record.getCode()}">123456</td>
</tr>
<tr>
@ -72,63 +72,8 @@
<td id="state" th:text="${record.getState()}">状态</td>
<td id="pass" th:text="${record.getPass()}" style="display:none;"></td>
</tr>
<tr>
<td>申请人</td>
<td id="applicantName" th:text="${record.getApplicantName()}">申请人</td>
</tr>
<tr>
<td>请求提交时间</td>
<td id="applicantTime" th:text="${record.getApplicantTime() }">1970-01-01 08:00:00
</td>
</tr>
<tr>
<tr>
<td>申请备注</td>
<td id="applyRemarks" th:text="${record.getApplyRemark()}">申请备注</td>
</tr>
<tr>
<td>负责人</td>
<td id="departmentheadName" th:text="${record.getDepartmentheadName()}">部门负责人</td>
</tr>
<tr id="departmentheadMessageT" style="display: none">
<td>审核意见</td>
<td id="departmentheadMessage" th:text="${record.getDepartmentheadMessage()}">审核意见
</td>
</tr>
<tr id="departmentheadTimeT" style="display: none">
<td>审核时间</td>
<td id="departmentheadTime"
th:text="${record.getDepartmentheadTime().equals('1970-01-01 08:00:00')?'':record.getDepartmentheadTime()}">
1970-01-01 08:00:00
</td>
</tr>
<tr id="balancePosterNameT" style="display: none">
<td>负责人</td>
<td id="balancePosterName" th:text="${record.getBalancePosterName()}"></td>
</tr>
<tr id="balancePosterMessageT" style="display: none">
<td>审核意见</td>
<td id="balancePosterMessage" th:text="${record.getBalancePosterMessage()}">审核意见
</td>
</tr>
<tr id="balancePosterTimeT" style="display: none">
<td>审核时间</td>
<td id="balancePosterTime"
th:text="${record.getBalancePosterTime().equals('1970-01-01 08:00:00')?'':record.getBalancePosterTime()}">
1970-01-01 08:00:00
</td>
</tr>
<tr id="depositoryManagerNameT" style="display: none">
<td th:text="${depositoryManagerText}"></td>
<td id="depositoryManagerName" th:text="${record.getDepositoryManagerName()}">
负责人
</td>
</tr>
</tbody>
</table>
</div>
</div>
@ -143,14 +88,14 @@
</div>
</div>
<div class="layui-row layui-col-space15">
<div class="layui-row">
<div class="layui-input-block">
<div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px">
<div class="layui-col-xs6 " style="padding: 7.5px">
<button type="button" class="layui-btn" onclick="review(1)">
&emsp;同意&emsp;
</button>
</div>
<div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px">
<div class="layui-col-xs6" style="padding: 7.5px">
<button type="button" class="layui-btn layui-btn-danger"
onclick="review(2)">
&emsp;驳回&emsp;
@ -219,6 +164,34 @@
</div>
</div>
<!-- 用于展示审批流程-->
<div class="layui-timeline">
<div class="layui-timeline-item" id="applicantNode">
<i class="layui-icon layui-timeline-axis layui-icon-friends"></i>
<div class="layui-timeline-content layui-text">
<h3 class="layui-timeline-title">申请人:</h3>
<p>
<img th:src="${record.getApplicantUserIconPhoto()}"
style="vertical-align:middle;height: 50px;margin: 0px 10px">
<span th:text="${record.getApplicantName()}"></span>
</p>
<p th:text="'申请时间:'+${record.getApplicantTime()}"></p>
<p th:text="'申请事由:'+${record.getApplyRemark()}"></p>
</div>
</div>
<div class="layui-timeline-item" id="firstApprovalNode">
<i id="firstApprovalNodeIcon"
class="layui-icon layui-timeline-axis layui-icon-friends"></i>
<div class="layui-timeline-content layui-text">
<h3 id="firstApprovalNodeTitle" class="layui-timeline-title">审批人:审批中</h3>
<div th:each="d,iterStar:${record.getDepartmentheadUserIconPhoto()}">
<img th:src="${d.getValue()}"
style="vertical-align:middle;height: 50px;margin: 0px 10px">
<span id="firstApprovalNodeUserName" th:text="${d.getKey()}"></span>
</div>
</div>
</div>
</div>
</div>
@ -243,6 +216,11 @@
}
// 用于构造审批节点
function createApprovalNode(nodeName, record, timeLineStartItemForId) {
}
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'step'], function () {
@ -261,38 +239,222 @@
stepItems: []
});
let departmentheadTime = $("#departmentheadTime").text();
let balancePosterTime = $("#balancePosterTime").text();
if (departmentheadTime != null && departmentheadTime !== "" && departmentheadTime !== "0") {
$("#departmentheadTimeT").show();
$("#departmentheadMessageT").show();
$("#review").hide();
if (balancePosterTime !== null && balancePosterTime === "0") {
// 如果不是空且为0
$("#balancePosterNameT").show();
$("#reviewForBalance").show();
} else if(balancePosterTime !== null && balancePosterTime !== "0" && balancePosterTime !== ""){
$("#depositoryManagerNameT").show();
$("#balancePosterNameT").show();
$("#balancePosterMessageT").show();
$("#balancePosterTimeT").show();
$("#check").show();
}else{
$("#depositoryManagerNameT").show();
$("#check").show();
let id = $("#id").val();
/**
* 用于生成审批节点
* @param nodeName 当前节点名称
* @param record 当前数据
* @param timeLineStartItemForId 开始行
*/
createApprovalNode = function (nodeName, record, timeLineStartItemForId) {
let timeLineEndItem = `</div></div>`;
let approvalNode;
let nodeState = record[nodeName + "Pass"];
if (nodeState === "3") {
// 如果平衡岗未审批
let approvalNodeForTitleName = '<h3 class="layui-timeline-title">审批人:审批中</h3>';
let UserIconPhoto = record[nodeName + "UserIconPhoto"];
let approvalNodeForIconPhoto = '';
for (let key in UserIconPhoto) {
if (UserIconPhoto.hasOwnProperty(key)) {
let depositoryManagerIconPhotoItem = '<div>' +
'<img alt="头像" src="' + UserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;">' +
'<span>' + key + '</span>' +
'</div>';
approvalNodeForIconPhoto += depositoryManagerIconPhotoItem;
}
}
approvalNode = timeLineStartItemForId + approvalNodeForTitleName + approvalNodeForIconPhoto + timeLineEndItem;
} else {
let approvalNodeForTitleName = '<h3 class="layui-timeline-title">审批人:';
let approvalNodeForDisposeMessage = '<p>审批意见:' + record[nodeName + "Message"] + '</p>';
let timeLineStartItemForIcon;
let UserIconPhoto = record[nodeName + "UserIconPhoto"];
let approvalNodeForIconPhoto = '';
for (let key in UserIconPhoto) {
if (UserIconPhoto.hasOwnProperty(key)) {
let IconPhotoItem = '<div>' +
'<img alt="头像" src="' + UserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;margin:0px 10px">' +
'<span>' + key + '</span>' +
'<div style="position: absolute;right: 0;top: 35px">';
if (nodeState === "1") {
IconPhotoItem += '已通过&nbsp;&nbsp;&nbsp;&nbsp;';
} else if (nodeState === "2") {
IconPhotoItem += '已驳回&nbsp;&nbsp;&nbsp;&nbsp;';
}
IconPhotoItem += record[nodeName + "Time"] + '</div></div>';
approvalNodeForIconPhoto += IconPhotoItem;
}
}
if (nodeState === "1") {
// 如果审批通过
timeLineStartItemForIcon = timeLineStartItemForId.replace("layui-icon-friends", "layui-icon-ok");
approvalNodeForTitleName += '已通过</h3>';
} else if (nodeState === "2") {
timeLineStartItemForIcon = timeLineStartItemForId.replace("layui-icon-friends", "layui-icon-close");
approvalNodeForTitleName += '已驳回</h3>';
}
approvalNode = timeLineStartItemForIcon + approvalNodeForTitleName + approvalNodeForIconPhoto + approvalNodeForDisposeMessage + timeLineEndItem;
}
return approvalNode;
};
}
$.ajax({
url: "/depositoryRecord/getApplicationOutRecord",
type: "post",
dataType: 'json',
data: JSON.stringify({"id": id}),
contentType: "application/json;charset=utf-8",
beforeSend: function () {
this.layerIndex = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
},
success: function (res) {
record = res.data;
// 用于创造时间线节点
let timeLineStartItem = `<div class="layui-timeline-item" id="placeholder">
<i class="layui-icon layui-timeline-axis layui-icon-friends"></i>
<div class="layui-timeline-content layui-text">`;
let timeLineEndItem = `</div></div>`;
// 获取第一个审批节点
let firstApprovalNode = $("#firstApprovalNode");
// 获取第一个审批节点图标
let firstApprovalNodeIcon = $("#firstApprovalNodeIcon");
// 获取第一个审批节点标题
let firstApprovalNodeTitle = $("#firstApprovalNodeTitle");
// 获取第一个审批节点用户名
let firstApprovalNodeUserName = $("#firstApprovalNodeUserName");
// 获取部门负责人节点审批相关信息(第一个节点)
let departmentheadTime = record.departmentheadTime;
let departmentheadPass = record.departmentheadPass;
let departmentheadMessage = record.departmentheadMessage;
// 获取仓储中心负责人节点审批相关信息(第二个节点)
let depositoryManagerPass = record.depositoryManagerPass;
// 获取平衡岗人员相关信息
let balancePoster = record.balancePoster;
let balancePosterPass = record.balancePosterPass;
if (departmentheadPass !== "3") {
// 如果已经进行了审批
firstApprovalNodeIcon.removeClass("layui-icon-friends"); // 删除当前图标
let firstApprovalTime = '<div style="position: absolute;right: 0;top: 35px">';
// 如果部门负责人审批时间不为空
if (departmentheadPass === "1") {
firstApprovalNodeTitle.text("审批人:已通过");
firstApprovalNodeIcon.addClass("layui-icon-ok"); // 更换为审批通过
firstApprovalTime += "已通过&nbsp&nbsp&nbsp&nbsp";
} else {
firstApprovalTime += "已驳回&nbsp&nbsp&nbsp&nbsp";
firstApprovalNodeTitle.text("审批人:已驳回");
firstApprovalNodeIcon.addClass("layui-icon-close"); // 更换为审批未通过
}
firstApprovalTime = firstApprovalTime + departmentheadTime + '</div></div>';
firstApprovalNodeUserName.after(firstApprovalTime);
firstApprovalNodeUserName.after("<p>审批意见:" + departmentheadMessage + "</p>");
// 声明用于depositoryManager节点是第几个节点(默认第二个审批节点)
let flagForBalancerNode = 2;
// 配置平衡岗节点(第二个节点)
if (balancePoster !== "" && departmentheadPass === "1") {
let nodeName = "balancePoster";
let timeLineStartItemForId = timeLineStartItem.replace("placeholder", "secondApprovalNode");
let approvalNode = createApprovalNode(nodeName, record, timeLineStartItemForId);
// 如果需要平衡岗且第一个节点审批完成
if (balancePosterPass === "3") {
flagForBalancerNode = -1; // 不展示
} else {
if (balancePosterPass === "1") {
// 如果平衡岗审批通过
flagForBalancerNode = 3; // 为第三个节点
} else if (balancePosterPass === "2") {
// 如果平衡岗未审批通过
flagForBalancerNode = -1; // 不展示
}
}
firstApprovalNode.after(approvalNode);
}
// 配置仓储管理员节点(第三或第二个节点)
if (depositoryManagerPass !== "4" && departmentheadPass === "1" && flagForBalancerNode !== -1) {
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")) {
let completeOutTime = record.outTime;
let pass = record.pass;
let approvalNodeForCompleteOutUserName = '<h3 class="layui-timeline-title">出库人员:';
let approvalCompleteOutNode;
let completeOutUserIconPhoto = record.completeOutUserIconPhoto;
let approvalNodeForCompleteOutUserIconPhoto = '';
for (let key in completeOutUserIconPhoto) {
if (completeOutUserIconPhoto.hasOwnProperty(key)) {
let depositoryManagerIconPhotoItem = '<p>' +
'<img alt="头像" src="' + completeOutUserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;">' +
'<span>' + key + '</span>' +
'</p>';
approvalNodeForCompleteOutUserIconPhoto += depositoryManagerIconPhotoItem;
}
}
if (pass === 1) {
approvalNodeForCompleteOutUserName += '</h3>';
let approvalNodeForCompleteOutState = '<p>处理状态:出库完成</p>';
let approvalNodeForCompleteOutTime = '<p>完成时间:' + completeOutTime + '</p>';
approvalCompleteOutNode = timeLineStartItem.replace("layui-icon-friends", "layui-icon-ok") + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + approvalNodeForCompleteOutState + approvalNodeForCompleteOutTime + timeLineEndItem;
} else {
approvalNodeForCompleteOutUserName += '出库中</h3>';
approvalCompleteOutNode = timeLineStartItem + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + timeLineEndItem;
}
if (flagForBalancerNode === 2) {
if (depositoryManagerPass !== "4") {
$("#secondApprovalNode").after(approvalCompleteOutNode);
} else {
firstApprovalNode.after(approvalCompleteOutNode);
}
} else if (flagForBalancerNode === 3) {
$("#thirdApprovalNode").after(approvalCompleteOutNode);
}
}
}
layer.close(this.layerIndex);
}
});
reviewForBalance = function (pass) {
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
data.id = id;
if (pass === 1) {
data.balancePosterPass = 1;
} else {
@ -307,7 +469,7 @@
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
data.id = id;
if (pass === 1) {
data.departmentheadPass = 1;
} else {
@ -318,12 +480,11 @@
}
};
check = function (pass) {
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
data.id = id;
if (pass === 1) {
data.depositoryManagerPass = 1;
} else {

2
src/main/resources/templates/pages/application/my-task.html

@ -393,7 +393,7 @@
area: ['30%', '100%'],
content: '/application_review?id=' + item,
end: function () {
flow.reload()
initIncompleteOutTask()
}
});
}

335
target/classes/templates/pages/application/application-review.html

@ -32,7 +32,7 @@
<tbody>
<tr>
<td>申请编号</td>
<td id="id" style="display: none" th:text="${record.getId()}">123456</td>
<input style="display: none" id="id" th:value="${record.getId()}">
<td id="code" th:text="${record.getCode()}">123456</td>
</tr>
<tr>
@ -72,63 +72,8 @@
<td id="state" th:text="${record.getState()}">状态</td>
<td id="pass" th:text="${record.getPass()}" style="display:none;"></td>
</tr>
<tr>
<td>申请人</td>
<td id="applicantName" th:text="${record.getApplicantName()}">申请人</td>
</tr>
<tr>
<td>请求提交时间</td>
<td id="applicantTime" th:text="${record.getApplicantTime() }">1970-01-01 08:00:00
</td>
</tr>
<tr>
<tr>
<td>申请备注</td>
<td id="applyRemarks" th:text="${record.getApplyRemark()}">申请备注</td>
</tr>
<tr>
<td>负责人</td>
<td id="departmentheadName" th:text="${record.getDepartmentheadName()}">部门负责人</td>
</tr>
<tr id="departmentheadMessageT" style="display: none">
<td>审核意见</td>
<td id="departmentheadMessage" th:text="${record.getDepartmentheadMessage()}">审核意见
</td>
</tr>
<tr id="departmentheadTimeT" style="display: none">
<td>审核时间</td>
<td id="departmentheadTime"
th:text="${record.getDepartmentheadTime().equals('1970-01-01 08:00:00')?'':record.getDepartmentheadTime()}">
1970-01-01 08:00:00
</td>
</tr>
<tr id="balancePosterNameT" style="display: none">
<td>负责人</td>
<td id="balancePosterName" th:text="${record.getBalancePosterName()}"></td>
</tr>
<tr id="balancePosterMessageT" style="display: none">
<td>审核意见</td>
<td id="balancePosterMessage" th:text="${record.getBalancePosterMessage()}">审核意见
</td>
</tr>
<tr id="balancePosterTimeT" style="display: none">
<td>审核时间</td>
<td id="balancePosterTime"
th:text="${record.getBalancePosterTime().equals('1970-01-01 08:00:00')?'':record.getBalancePosterTime()}">
1970-01-01 08:00:00
</td>
</tr>
<tr id="depositoryManagerNameT" style="display: none">
<td th:text="${depositoryManagerText}"></td>
<td id="depositoryManagerName" th:text="${record.getDepositoryManagerName()}">
负责人
</td>
</tr>
</tbody>
</table>
</div>
</div>
@ -143,14 +88,14 @@
</div>
</div>
<div class="layui-row layui-col-space15">
<div class="layui-row">
<div class="layui-input-block">
<div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px">
<div class="layui-col-xs6 " style="padding: 7.5px">
<button type="button" class="layui-btn" onclick="review(1)">
&emsp;同意&emsp;
</button>
</div>
<div class="layui-col-xs12 layui-col-md3" style="padding: 7.5px">
<div class="layui-col-xs6" style="padding: 7.5px">
<button type="button" class="layui-btn layui-btn-danger"
onclick="review(2)">
&emsp;驳回&emsp;
@ -219,6 +164,34 @@
</div>
</div>
<!-- 用于展示审批流程-->
<div class="layui-timeline">
<div class="layui-timeline-item" id="applicantNode">
<i class="layui-icon layui-timeline-axis layui-icon-friends"></i>
<div class="layui-timeline-content layui-text">
<h3 class="layui-timeline-title">申请人:</h3>
<p>
<img th:src="${record.getApplicantUserIconPhoto()}"
style="vertical-align:middle;height: 50px;margin: 0px 10px">
<span th:text="${record.getApplicantName()}"></span>
</p>
<p th:text="'申请时间:'+${record.getApplicantTime()}"></p>
<p th:text="'申请事由:'+${record.getApplyRemark()}"></p>
</div>
</div>
<div class="layui-timeline-item" id="firstApprovalNode">
<i id="firstApprovalNodeIcon"
class="layui-icon layui-timeline-axis layui-icon-friends"></i>
<div class="layui-timeline-content layui-text">
<h3 id="firstApprovalNodeTitle" class="layui-timeline-title">审批人:审批中</h3>
<div th:each="d,iterStar:${record.getDepartmentheadUserIconPhoto()}">
<img th:src="${d.getValue()}"
style="vertical-align:middle;height: 50px;margin: 0px 10px">
<span id="firstApprovalNodeUserName" th:text="${d.getKey()}"></span>
</div>
</div>
</div>
</div>
</div>
@ -243,6 +216,11 @@
}
// 用于构造审批节点
function createApprovalNode(nodeName, record, timeLineStartItemForId) {
}
// 用于标志是否为第一次提交
let flagForForm = false;
layui.use(['form', 'step'], function () {
@ -261,38 +239,222 @@
stepItems: []
});
let departmentheadTime = $("#departmentheadTime").text();
let balancePosterTime = $("#balancePosterTime").text();
if (departmentheadTime != null && departmentheadTime !== "" && departmentheadTime !== "0") {
$("#departmentheadTimeT").show();
$("#departmentheadMessageT").show();
$("#review").hide();
if (balancePosterTime !== null && balancePosterTime === "0") {
// 如果不是空且为0
$("#balancePosterNameT").show();
$("#reviewForBalance").show();
} else if(balancePosterTime !== null && balancePosterTime !== "0" && balancePosterTime !== ""){
$("#depositoryManagerNameT").show();
$("#balancePosterNameT").show();
$("#balancePosterMessageT").show();
$("#balancePosterTimeT").show();
$("#check").show();
}else{
$("#depositoryManagerNameT").show();
$("#check").show();
let id = $("#id").val();
/**
* 用于生成审批节点
* @param nodeName 当前节点名称
* @param record 当前数据
* @param timeLineStartItemForId 开始行
*/
createApprovalNode = function (nodeName, record, timeLineStartItemForId) {
let timeLineEndItem = `</div></div>`;
let approvalNode;
let nodeState = record[nodeName + "Pass"];
if (nodeState === "3") {
// 如果平衡岗未审批
let approvalNodeForTitleName = '<h3 class="layui-timeline-title">审批人:审批中</h3>';
let UserIconPhoto = record[nodeName + "UserIconPhoto"];
let approvalNodeForIconPhoto = '';
for (let key in UserIconPhoto) {
if (UserIconPhoto.hasOwnProperty(key)) {
let depositoryManagerIconPhotoItem = '<div>' +
'<img alt="头像" src="' + UserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;">' +
'<span>' + key + '</span>' +
'</div>';
approvalNodeForIconPhoto += depositoryManagerIconPhotoItem;
}
}
approvalNode = timeLineStartItemForId + approvalNodeForTitleName + approvalNodeForIconPhoto + timeLineEndItem;
} else {
let approvalNodeForTitleName = '<h3 class="layui-timeline-title">审批人:';
let approvalNodeForDisposeMessage = '<p>审批意见:' + record[nodeName + "Message"] + '</p>';
let timeLineStartItemForIcon;
let UserIconPhoto = record[nodeName + "UserIconPhoto"];
let approvalNodeForIconPhoto = '';
for (let key in UserIconPhoto) {
if (UserIconPhoto.hasOwnProperty(key)) {
let IconPhotoItem = '<div>' +
'<img alt="头像" src="' + UserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;margin:0px 10px">' +
'<span>' + key + '</span>' +
'<div style="position: absolute;right: 0;top: 35px">';
if (nodeState === "1") {
IconPhotoItem += '已通过&nbsp;&nbsp;&nbsp;&nbsp;';
} else if (nodeState === "2") {
IconPhotoItem += '已驳回&nbsp;&nbsp;&nbsp;&nbsp;';
}
IconPhotoItem += record[nodeName + "Time"] + '</div></div>';
approvalNodeForIconPhoto += IconPhotoItem;
}
}
if (nodeState === "1") {
// 如果审批通过
timeLineStartItemForIcon = timeLineStartItemForId.replace("layui-icon-friends", "layui-icon-ok");
approvalNodeForTitleName += '已通过</h3>';
} else if (nodeState === "2") {
timeLineStartItemForIcon = timeLineStartItemForId.replace("layui-icon-friends", "layui-icon-close");
approvalNodeForTitleName += '已驳回</h3>';
}
approvalNode = timeLineStartItemForIcon + approvalNodeForTitleName + approvalNodeForIconPhoto + approvalNodeForDisposeMessage + timeLineEndItem;
}
return approvalNode;
};
}
$.ajax({
url: "/depositoryRecord/getApplicationOutRecord",
type: "post",
dataType: 'json',
data: JSON.stringify({"id": id}),
contentType: "application/json;charset=utf-8",
beforeSend: function () {
this.layerIndex = layer.open({type: 3, shade: [0.25, '#000'], icon: 2, speed: 0});
},
success: function (res) {
record = res.data;
// 用于创造时间线节点
let timeLineStartItem = `<div class="layui-timeline-item" id="placeholder">
<i class="layui-icon layui-timeline-axis layui-icon-friends"></i>
<div class="layui-timeline-content layui-text">`;
let timeLineEndItem = `</div></div>`;
// 获取第一个审批节点
let firstApprovalNode = $("#firstApprovalNode");
// 获取第一个审批节点图标
let firstApprovalNodeIcon = $("#firstApprovalNodeIcon");
// 获取第一个审批节点标题
let firstApprovalNodeTitle = $("#firstApprovalNodeTitle");
// 获取第一个审批节点用户名
let firstApprovalNodeUserName = $("#firstApprovalNodeUserName");
// 获取部门负责人节点审批相关信息(第一个节点)
let departmentheadTime = record.departmentheadTime;
let departmentheadPass = record.departmentheadPass;
let departmentheadMessage = record.departmentheadMessage;
// 获取仓储中心负责人节点审批相关信息(第二个节点)
let depositoryManagerPass = record.depositoryManagerPass;
// 获取平衡岗人员相关信息
let balancePoster = record.balancePoster;
let balancePosterPass = record.balancePosterPass;
if (departmentheadPass !== "3") {
// 如果已经进行了审批
firstApprovalNodeIcon.removeClass("layui-icon-friends"); // 删除当前图标
let firstApprovalTime = '<div style="position: absolute;right: 0;top: 35px">';
// 如果部门负责人审批时间不为空
if (departmentheadPass === "1") {
firstApprovalNodeTitle.text("审批人:已通过");
firstApprovalNodeIcon.addClass("layui-icon-ok"); // 更换为审批通过
firstApprovalTime += "已通过&nbsp&nbsp&nbsp&nbsp";
} else {
firstApprovalTime += "已驳回&nbsp&nbsp&nbsp&nbsp";
firstApprovalNodeTitle.text("审批人:已驳回");
firstApprovalNodeIcon.addClass("layui-icon-close"); // 更换为审批未通过
}
firstApprovalTime = firstApprovalTime + departmentheadTime + '</div></div>';
firstApprovalNodeUserName.after(firstApprovalTime);
firstApprovalNodeUserName.after("<p>审批意见:" + departmentheadMessage + "</p>");
// 声明用于depositoryManager节点是第几个节点(默认第二个审批节点)
let flagForBalancerNode = 2;
// 配置平衡岗节点(第二个节点)
if (balancePoster !== "" && departmentheadPass === "1") {
let nodeName = "balancePoster";
let timeLineStartItemForId = timeLineStartItem.replace("placeholder", "secondApprovalNode");
let approvalNode = createApprovalNode(nodeName, record, timeLineStartItemForId);
// 如果需要平衡岗且第一个节点审批完成
if (balancePosterPass === "3") {
flagForBalancerNode = -1; // 不展示
} else {
if (balancePosterPass === "1") {
// 如果平衡岗审批通过
flagForBalancerNode = 3; // 为第三个节点
} else if (balancePosterPass === "2") {
// 如果平衡岗未审批通过
flagForBalancerNode = -1; // 不展示
}
}
firstApprovalNode.after(approvalNode);
}
// 配置仓储管理员节点(第三或第二个节点)
if (depositoryManagerPass !== "4" && departmentheadPass === "1" && flagForBalancerNode !== -1) {
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")) {
let completeOutTime = record.outTime;
let pass = record.pass;
let approvalNodeForCompleteOutUserName = '<h3 class="layui-timeline-title">出库人员:';
let approvalCompleteOutNode;
let completeOutUserIconPhoto = record.completeOutUserIconPhoto;
let approvalNodeForCompleteOutUserIconPhoto = '';
for (let key in completeOutUserIconPhoto) {
if (completeOutUserIconPhoto.hasOwnProperty(key)) {
let depositoryManagerIconPhotoItem = '<p>' +
'<img alt="头像" src="' + completeOutUserIconPhoto[key] + '" style="vertical-align: middle;height: 50px;">' +
'<span>' + key + '</span>' +
'</p>';
approvalNodeForCompleteOutUserIconPhoto += depositoryManagerIconPhotoItem;
}
}
if (pass === 1) {
approvalNodeForCompleteOutUserName += '</h3>';
let approvalNodeForCompleteOutState = '<p>处理状态:出库完成</p>';
let approvalNodeForCompleteOutTime = '<p>完成时间:' + completeOutTime + '</p>';
approvalCompleteOutNode = timeLineStartItem.replace("layui-icon-friends", "layui-icon-ok") + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + approvalNodeForCompleteOutState + approvalNodeForCompleteOutTime + timeLineEndItem;
} else {
approvalNodeForCompleteOutUserName += '出库中</h3>';
approvalCompleteOutNode = timeLineStartItem + approvalNodeForCompleteOutUserName + approvalNodeForCompleteOutUserIconPhoto + timeLineEndItem;
}
if (flagForBalancerNode === 2) {
if (depositoryManagerPass !== "4") {
$("#secondApprovalNode").after(approvalCompleteOutNode);
} else {
firstApprovalNode.after(approvalCompleteOutNode);
}
} else if (flagForBalancerNode === 3) {
$("#thirdApprovalNode").after(approvalCompleteOutNode);
}
}
}
layer.close(this.layerIndex);
}
});
reviewForBalance = function (pass) {
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
data.id = id;
if (pass === 1) {
data.balancePosterPass = 1;
} else {
@ -307,7 +469,7 @@
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
data.id = id;
if (pass === 1) {
data.departmentheadPass = 1;
} else {
@ -318,12 +480,11 @@
}
};
check = function (pass) {
if (!flagForForm) {
flagForForm = true;
let data = {};
data.id = $("#id").text();
data.id = id;
if (pass === 1) {
data.depositoryManagerPass = 1;
} else {

2
target/classes/templates/pages/application/my-task.html

@ -393,7 +393,7 @@
area: ['30%', '100%'],
content: '/application_review?id=' + item,
end: function () {
flow.reload()
initIncompleteOutTask()
}
});
}

Loading…
Cancel
Save