diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java index 346b2eab..b0c85ad2 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/DepositoryRecordController.java @@ -893,14 +893,14 @@ public class DepositoryRecordController { List mids = (List) map.get("iids"); List depositoryIds = (List) map.get("depositoryIds"); List placeCodes = (List) map.get("placeCodes"); - for (int i = 0; i < mids.size(); i++) { - redisTemplateForHash.opsForList().remove("mids" + userToken.getId(), 1, mids.get(i).toString()); + for (Integer mid : mids) { + redisTemplateForHash.opsForList().remove("mids" + userToken.getId(), 1, mid.toString()); } - for (int i = 0; i < depositoryIds.size(); i++) { - redisTemplateForHash.opsForList().remove("depositoryIds" + userToken.getId(), 1, depositoryIds.get(i).toString()); + for (Integer depositoryId : depositoryIds) { + redisTemplateForHash.opsForList().remove("depositoryIds" + userToken.getId(), 1, depositoryId.toString()); } - for (int i = 0; i < placeCodes.size(); i++) { - redisTemplateForHash.opsForList().remove("placeCodes" + userToken.getId(), 1, placeCodes.get(i).toString()); + for (String placeCode : placeCodes) { + redisTemplateForHash.opsForList().remove("placeCodes" + userToken.getId(), 1, placeCode+" "); } return CrudUtil.insertHandle(1, 1); } diff --git a/src/main/java/com/dreamchaser/depository_manage/controller/QyWxOperationController.java b/src/main/java/com/dreamchaser/depository_manage/controller/QyWxOperationController.java index 1ceb446a..ee3f90ee 100644 --- a/src/main/java/com/dreamchaser/depository_manage/controller/QyWxOperationController.java +++ b/src/main/java/com/dreamchaser/depository_manage/controller/QyWxOperationController.java @@ -225,7 +225,7 @@ public class QyWxOperationController { new Thread(new Runnable() { @Override public void run() { - qyWxOperationService.updateTemplateCard(templateCard.getResponseCode(), userByPort.getName(), finalResult, crypt); + qyWxOperationService.updateButtonTemplateCardToUnEnable(templateCard.getResponseCode(), userByPort.getName(), finalResult, crypt); } }).start(); diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java index 8eff6c6c..0c8a7545 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/DepositoryRecordServiceImpl.java @@ -21,10 +21,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import javax.servlet.http.HttpServletRequest; -import java.io.IOException; import java.math.BigDecimal; -import java.nio.charset.StandardCharsets; import java.util.*; import java.util.concurrent.*; @@ -2516,7 +2513,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { //获取申请人信息 String key = "user:" + applicantUser.getNumber() + ":QyWxOutId:" + id; String responseCode = (String) redisTemplate.opsForHash().get(key, "responseCode"); - qyWxOperationService.updateTemplateCard(responseCode, userToken.getName(), finalResult, userAgent); + qyWxOperationService.updateButtonTemplateCardToUnEnable(responseCode, userToken.getName(), finalResult, userAgent); } }).start(); @@ -2702,7 +2699,7 @@ public class DepositoryRecordServiceImpl implements DepositoryRecordService { UserByPort departHead = LinkInterfaceUtil.FindUserById(ObjectFormatUtil.toInteger(record.getDepartmenthead()), userToken); String key = "user:" + departHead.getNumber() + ":QyWxOutId:" + id; String responseCode = (String) redisTemplate.opsForHash().get(key, "responseCode"); - qyWxOperationService.updateTemplateCard(responseCode, userToken.getName(), finalResult, userAgent); + qyWxOperationService.updateButtonTemplateCardToUnEnable(responseCode, userToken.getName(), finalResult, userAgent); } }).start(); } diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java index d6087088..9c7e5784 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/QyWxOperationService.java @@ -1145,14 +1145,8 @@ public class QyWxOperationService { return jsonObject; } - /** - * 给仓库管理员发送出库通知 - * - * @param uid - * @param outMinId - * @return - */ - public JSONObject sendNotificationToDepositoryManager(String uid, Integer outMinId, String userAgent) { + + public TemplateCard_text_notice getTextNoticeCard(Integer outMinId, Integer quantity) { // 需要出库的子订单 ApplicationOutRecordMin recordMin = depositoryRecordMapper.findApplicationOutMinById(outMinId); // 获取其主订单 @@ -1161,21 +1155,6 @@ public class QyWxOperationService { Integer applicantId = outRecordP.getApplicantId(); // 申请人 UserByPort applicant = LinkInterfaceUtil.FindUserById(applicantId, null); - // 定义文本通知型卡片 - TextNotice textNotice = new TextNotice(); - - //设置消息接收者 - String[] split = uid.split(","); - StringBuilder toUserName = new StringBuilder(); - for (int i = 0; i < split.length - 1; i++) { - toUserName.append(split[i]).append("|"); - } - toUserName.append(split[split.length - 1]); - textNotice.setTouser(toUserName.toString()); // 不区分大小写 - - - // 设置agentId - textNotice.setAgentid(QyWxConfig.AgentId); // 定义卡片模板 TemplateCard_text_notice text_notice = new TemplateCard_text_notice(); @@ -1186,8 +1165,6 @@ public class QyWxOperationService { Snowflake snowflake = new Snowflake(10, 10, true); text_notice.setTask_id(snowflake.nextIdStr()); - textNotice.setMsgtype("template_card"); - // 设置主标题 TemplateCard_main_title main_title = new TemplateCard_main_title(); main_title.setTitle(applicant.getName() + "的出库请求"); @@ -1233,7 +1210,12 @@ public class QyWxOperationService { TemplateCard_horizontal_content horizontal_content_quantity = new TemplateCard_horizontal_content(); horizontal_content_quantity.setType(0); horizontal_content_quantity.setKeyname("申请数量:"); - horizontal_content_quantity.setValue(String.valueOf(recordMin.getQuantity() / 100)); + if (quantity != null) { + horizontal_content_quantity.setValue(String.valueOf(quantity / 100)); + } else { + horizontal_content_quantity.setValue(String.valueOf(recordMin.getQuantity() / 100)); + + } // 申请单位 TemplateCard_horizontal_content horizontal_content_unit = new TemplateCard_horizontal_content(); @@ -1282,6 +1264,37 @@ public class QyWxOperationService { jumpList.add(jump); text_notice.setJump_list(jumpList); + return text_notice; + } + + /** + * 给仓库管理员发送出库通知 + * + * @param uid + * @param outMinId + * @return + */ + public JSONObject sendNotificationToDepositoryManager(String uid, Integer outMinId, String userAgent) { + // 定义文本通知型卡片 + TextNotice textNotice = new TextNotice(); + + //设置消息接收者 + String[] split = uid.split(","); + StringBuilder toUserName = new StringBuilder(); + for (int i = 0; i < split.length - 1; i++) { + toUserName.append(split[i]).append("|"); + } + toUserName.append(split[split.length - 1]); + textNotice.setTouser(toUserName.toString()); // 不区分大小写 + + + // 设置agentId + textNotice.setAgentid(QyWxConfig.AgentId); + + textNotice.setMsgtype("template_card"); + + // 获取卡片模板 + TemplateCard_text_notice text_notice = getTextNoticeCard(outMinId,null); textNotice.setTemplate_card(text_notice); String s = JSONObject.toJSONString(textNotice); @@ -1301,6 +1314,7 @@ public class QyWxOperationService { return jsonObject; } + /** * 用于撤回发送给企业微信的消息 * @@ -1331,7 +1345,7 @@ public class QyWxOperationService { * @param response_code * @return */ - public JSONObject updateTemplateCard(String response_code, String userName, String state, String userAgent) { + public JSONObject updateButtonTemplateCardToUnEnable(String response_code, String userName, String state, String userAgent) { String url = String.format("https://qyapi.weixin.qq.com/cgi-bin/message/update_template_card?access_token=" + QyWxConfig.GetQYWXToken(userAgent) + "&debug=1"); Map map = new HashMap<>(); map.put("atall", 1); @@ -1347,6 +1361,23 @@ public class QyWxOperationService { } + public JSONObject updateTemplateCardToQuantity(String response_code, Integer quantity, String userAgent, Integer outMinId) { + String url = String.format("https://qyapi.weixin.qq.com/cgi-bin/message/update_template_card?access_token=" + QyWxConfig.GetQYWXToken(userAgent) + "&debug=1"); + Map map = new HashMap<>(); + map.put("atall", 1); + map.put("agentid", QyWxConfig.AgentId); + map.put("response_code", response_code); + map.put("enable_id_trans", 0); + TemplateCard_text_notice text_notice = getTextNoticeCard(outMinId,quantity); + map.put("template_card",text_notice); + String jsonString = JSONObject.toJSONString(map); + System.out.println(jsonString); + String s1 = HttpUtils.doPost(url, jsonString); + JSONObject jsonObject = JSON.parseObject(s1); + return jsonObject; + } + + /** * 获取审批模板详细 * diff --git a/src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java b/src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java index 789ff843..cbdbbcfc 100644 --- a/src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java +++ b/src/main/java/com/dreamchaser/depository_manage/service/impl/StockTakingServiceImpl.java @@ -25,7 +25,6 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.servlet.http.HttpServletRequest; -import java.math.BigDecimal; import java.util.*; import java.util.concurrent.TimeUnit; @@ -1147,7 +1146,7 @@ public class StockTakingServiceImpl implements StockTakingService { //获取申请人信息 String key = "user:" + userByPort.getNumber() + ":QyWxStockTakingCompleteId:" + mainId; String responseCode = (String) redisTemplate.opsForHash().get(key, "responseCode"); - qyWxOperationService.updateTemplateCard(responseCode, userToken.getName(), "处理", userAgent); + qyWxOperationService.updateButtonTemplateCardToUnEnable(responseCode, userToken.getName(), "处理", userAgent); } }).start(); diff --git a/src/main/resources/templates/pages/application/application_multi.html b/src/main/resources/templates/pages/application/application_multi.html index bc1a30cb..4784eeb6 100644 --- a/src/main/resources/templates/pages/application/application_multi.html +++ b/src/main/resources/templates/pages/application/application_multi.html @@ -147,6 +147,9 @@ if(obj.event==='delete'){ if(req.mids.length > 0) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { + for (i = 0, len = data.length; i < len; i++) { + req.placeCodes[i] = data[i].placeCodes.toString().replace(","," ") + } $.ajax({ url: "/depositoryRecord/deleteApplicationToRedis", type: "post", @@ -170,8 +173,10 @@ } } }) + }) - }else{ + } + else{ layer.msg("未选中记录,请确认!"); return false; } diff --git a/src/test/java/com/dreamchaser/depository_manage/TestForOther.java b/src/test/java/com/dreamchaser/depository_manage/TestForOther.java index b3e79443..98053f97 100644 --- a/src/test/java/com/dreamchaser/depository_manage/TestForOther.java +++ b/src/test/java/com/dreamchaser/depository_manage/TestForOther.java @@ -56,11 +56,14 @@ public class TestForOther { @Autowired MaterialMapper materialMapper; + @Autowired + QyWxOperationService qyWxOperationService; + @Test public void run() { - ApprovalInfo_Details approvalInfo = new ApprovalInfo_Details(); +// ApprovalInfo_Details approvalInfo = new ApprovalInfo_Details(); // ApprovalInfo_Details_Approver approver = new ApprovalInfo_Details_Approver(); // approver.setUserId("PangFuZhen"); // approvalInfo.setApprover(approver); @@ -68,7 +71,7 @@ public class TestForOther { // depositoryRecordService.reviewByQyWxApprovalIn("[1]",approvalInfo,"460f46eaefb46bb0c171029f62e2cea6","2","202303220009"); // UserByPort userByPort = LinkInterfaceUtil.FindUserById(78, null); // List s = excelService.writeExcelForPrint(2, 4,userByPort); - // 需要出库的子订单 + } diff --git a/target/classes/templates/pages/application/application_multi.html b/target/classes/templates/pages/application/application_multi.html index bc1a30cb..4784eeb6 100644 --- a/target/classes/templates/pages/application/application_multi.html +++ b/target/classes/templates/pages/application/application_multi.html @@ -147,6 +147,9 @@ if(obj.event==='delete'){ if(req.mids.length > 0) { layer.confirm('真的删除么', {icon: 2, title: '提示'}, function (index) { + for (i = 0, len = data.length; i < len; i++) { + req.placeCodes[i] = data[i].placeCodes.toString().replace(","," ") + } $.ajax({ url: "/depositoryRecord/deleteApplicationToRedis", type: "post", @@ -170,8 +173,10 @@ } } }) + }) - }else{ + } + else{ layer.msg("未选中记录,请确认!"); return false; } diff --git a/target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html b/target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html index 34681c1b..de677293 100644 --- a/target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html +++ b/target/classes/templates/pages/scanQrCode/ScanBarOrQrCodeOut.html @@ -57,7 +57,7 @@ let flagForForm = false; layui.$(function () { - /*let wxScan = parent.parent.parent; + let wxScan = parent.parent.parent; if (wxScan.wx !== undefined) { wxScan = wxScan.wx; } else { @@ -82,11 +82,7 @@ } - });*/ - var result = "1638361349087338496";//当needResult为1时返回处理结果 - var req = {}; - req.qrCode = result; - outboundLogic(req); + }); });