From c5262c92b8dcc226e631165f801862cebdad0ffe Mon Sep 17 00:00:00 2001
From: liux <963924687@qq.com>
Date: Tue, 11 Jun 2024 10:34:14 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=BA=8C=E6=AC=A1=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 7 +-
.../manager/config/BnsSecurityConfig.java | 6 +
.../service/impl/UserDetailsServiceImpl.java | 4 +
.../energy/manager/utils/AesCbcUtils.java | 118 ++++++++++++++++++
.../controller/MaterialUploadController.java | 46 ++++++-
.../impl/New_SubCheckManageServiceImpl.java | 2 +-
.../energy/task/task/BallStatusPushTask.java | 10 +-
src/main/resources/static/js/ace/AesCbc.js | 71 +++++++++++
.../js/work/newSub/datumChecDetails_new.js | 59 +++++----
src/main/resources/static/login.html | 5 +-
10 files changed, 295 insertions(+), 33 deletions(-)
create mode 100644 src/main/java/com/bonus/nxdt/energy/manager/utils/AesCbcUtils.java
create mode 100644 src/main/resources/static/js/ace/AesCbc.js
diff --git a/pom.xml b/pom.xml
index 6f0c87a..99bff99 100644
--- a/pom.xml
+++ b/pom.xml
@@ -319,7 +319,12 @@
org.springframework.boot
spring-boot-starter-amqp
-
+
+ com.alibaba.fastjson2
+ fastjson2
+ 2.0.9
+
+
diff --git a/src/main/java/com/bonus/nxdt/energy/manager/config/BnsSecurityConfig.java b/src/main/java/com/bonus/nxdt/energy/manager/config/BnsSecurityConfig.java
index c38cf89..eb268cf 100644
--- a/src/main/java/com/bonus/nxdt/energy/manager/config/BnsSecurityConfig.java
+++ b/src/main/java/com/bonus/nxdt/energy/manager/config/BnsSecurityConfig.java
@@ -2,6 +2,7 @@ package com.bonus.nxdt.energy.manager.config;
import com.bonus.nxdt.energy.manager.filter.TokenFilter;
import com.bonus.nxdt.energy.manager.filter.VerifyFilter;
+import com.bonus.nxdt.energy.manager.service.impl.UserDetailsServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
@@ -37,6 +38,10 @@ public class BnsSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private UserDetailsService userDetailsService;
+
+ @Autowired
+ private UserDetailsServiceImpl service;
+
@Autowired
private TokenFilter tokenFilter;
@@ -77,6 +82,7 @@ public class BnsSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
+ auth.authenticationProvider(new DecodePwdAuthenticationProvider(service));
auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder());
}
diff --git a/src/main/java/com/bonus/nxdt/energy/manager/service/impl/UserDetailsServiceImpl.java b/src/main/java/com/bonus/nxdt/energy/manager/service/impl/UserDetailsServiceImpl.java
index b9a41bf..3f7c05f 100644
--- a/src/main/java/com/bonus/nxdt/energy/manager/service/impl/UserDetailsServiceImpl.java
+++ b/src/main/java/com/bonus/nxdt/energy/manager/service/impl/UserDetailsServiceImpl.java
@@ -5,6 +5,7 @@ import com.bonus.nxdt.energy.manager.entity.LoginUser;
import com.bonus.nxdt.energy.manager.model.Permission;
import com.bonus.nxdt.energy.manager.model.SysUser;
import com.bonus.nxdt.energy.manager.service.UserService;
+import com.bonus.nxdt.energy.manager.utils.AesCbcUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
@@ -29,8 +30,11 @@ public class UserDetailsServiceImpl implements UserDetailsService {
@Autowired
private PermissionDao permissionDao;
+
+
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+ username= AesCbcUtils.decrypt(username);
SysUser sysUser = userService.getUser(username);
if (sysUser == null) {
throw new AuthenticationCredentialsNotFoundException("用户名不存在");
diff --git a/src/main/java/com/bonus/nxdt/energy/manager/utils/AesCbcUtils.java b/src/main/java/com/bonus/nxdt/energy/manager/utils/AesCbcUtils.java
new file mode 100644
index 0000000..5bc4c76
--- /dev/null
+++ b/src/main/java/com/bonus/nxdt/energy/manager/utils/AesCbcUtils.java
@@ -0,0 +1,118 @@
+package com.bonus.nxdt.energy.manager.utils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.security.Security;
+
+/**
+ *
+ * AES加密工具类
+ * @author HeiZi
+ */
+@Slf4j
+public class AesCbcUtils {
+ //使用AES-256-CBC加密模式,key需要为16位,key和iv可以相同!
+ /**
+ * 密钥算法
+ */
+ private static final String KEY_ALGORITHM = "AES";
+
+ /**
+ * 加密/解密算法 / 工作模式 / 填充方式
+ * Java 6支持PKCS5Padding填充方式
+ * Bouncy Castle支持PKCS7Padding填充方式
+ */
+ private static final String CIPHER_ALGORITHM = "AES/CBC/PKCS7Padding";
+
+ /**
+ * 偏移量,只有CBC模式才需要
+ */
+ private final static String IV_PARAMETER = "1234567812345678";
+
+
+ /**
+ * AES要求密钥长度为128位或192位或256位,java默认限制AES密钥长度最多128位
+ */
+ public static String sKey = "zhgd@bonus@zhgd@bonus@1234567890";
+
+ /**
+ * 编码格式导出
+ */
+ public static final String ENCODING = "utf-8";
+
+ static {
+ //如果是PKCS7Padding填充方式,则必须加上下面这行
+ Security.addProvider(new BouncyCastleProvider());
+ }
+
+ /**
+ * AES加密
+ *(CBC模式)
+ * @param source 源字符串
+ * @param
+ * @throws Exception
+ * @return 加密后的密文
+ */
+ public static String encrypt(String source ) {
+ try{
+ String key=sKey;
+ byte[] sourceBytes = source.getBytes(ENCODING);
+ byte[] keyBytes = key.getBytes(ENCODING);
+ Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM, "BC");
+ IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes(ENCODING));
+ cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(keyBytes, KEY_ALGORITHM), iv);
+ byte[] decrypted = cipher.doFinal(sourceBytes);
+ return Base64.encodeBase64String(decrypted);
+ }catch (Exception e){
+ log.error(e.toString(),e);
+ }
+ return null;
+ }
+
+ public static void main(String[] args) {
+ // String json="";
+
+ String json="{\"username\":\"guest\",\"password\":\"admin@123\"}";
+ String data=encrypt(json);
+ System.err.println(data);
+ String jm=decrypt("2rrMRoOfoo9n17MTPSRTidwgXeatSLxWFQfPNSCUJdHvqT58extTi87f1e5LJS0DdMcjzIdtFoHvur9gP7desQ==");
+ String jiemi=decrypt(data);
+ System.err.println(jm);
+ System.err.println(jiemi);
+ }
+
+ /**
+ * AES解密
+ *(CBC模式)
+ * @param data 加密后的密文
+ * @param
+ * @throws Exception
+ * @return 源字符串
+ */
+ public static String decrypt(String data) {
+ try{
+ String encryptStr="";
+ if(StringHelper.isNotEmpty(data)){
+ encryptStr=data.replace(" ","+");
+ }
+ String key=sKey;
+ byte[] sourceBytes = Base64.decodeBase64(encryptStr);
+ byte[] keyBytes = key.getBytes(ENCODING);
+ Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM, "BC");
+ IvParameterSpec iv = new IvParameterSpec(IV_PARAMETER.getBytes(ENCODING));
+ cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(keyBytes, KEY_ALGORITHM), iv);
+ byte[] decoded = cipher.doFinal(sourceBytes);
+ return new String(decoded, ENCODING);
+ }catch (Exception e){
+ log.info("------------------->请求加密参数不正确");
+ log.error(e.toString(),e);
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/bonus/nxdt/energy/material/controller/MaterialUploadController.java b/src/main/java/com/bonus/nxdt/energy/material/controller/MaterialUploadController.java
index 71f6203..4437a9d 100644
--- a/src/main/java/com/bonus/nxdt/energy/material/controller/MaterialUploadController.java
+++ b/src/main/java/com/bonus/nxdt/energy/material/controller/MaterialUploadController.java
@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject;
import com.bonus.nxdt.energy.GetResponsibleFor.entity.ApprovalProcessBean;
import com.bonus.nxdt.energy.GetResponsibleFor.service.GetResponsibleForService;
import com.bonus.nxdt.energy.constrator.entity.*;
+import com.bonus.nxdt.energy.manager.config.MessageSender;
+import com.bonus.nxdt.energy.manager.config.RabbitMQConfig;
import com.bonus.nxdt.energy.manager.table.PageTableHandler;
import com.bonus.nxdt.energy.manager.table.PageTableRequest;
import com.bonus.nxdt.energy.manager.table.PageTableResponse;
@@ -20,11 +22,14 @@ import com.bonus.nxdt.energy.material.entity.PersonBean;
import com.bonus.nxdt.energy.material.service.MaterialUploadService;
import com.bonus.nxdt.energy.newSubApply.dao.NewsConsDao;
import com.bonus.nxdt.energy.newSubApply.entity.SubEntranceBean;
-import com.bonus.nxdt.energy.newSubApply.service.NewconsService;
+import com.rabbitmq.client.Channel;
+import com.rabbitmq.client.Connection;
+import com.rabbitmq.client.ConnectionFactory;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@@ -54,6 +59,45 @@ public class MaterialUploadController {
@Resource
private NewsConsDao newsConsDao;
+ // 注入RabbitMQ操作模板
+ @Autowired
+ private AmqpTemplate amqpTemplate;
+
+ @Autowired
+ private MessageSender messageSender;
+
+
+
+ /**
+ * 测试
+ * @return
+ */
+ @RequestMapping(value = "sendMes", method = RequestMethod.POST)
+ @ResponseBody
+ public String sendMes() throws Exception{
+ //amqpTemplate.convertAndSend("test", RabbitMQConfig.bindingKey,"测试消息发送成功!");
+ // messageSender.sendMessage(RabbitMQConfig.bindingKey,"测试消息发送成功");
+ ConnectionFactory connectionFactory = new ConnectionFactory();
+ connectionFactory.setHost("127.0.0.1");
+ connectionFactory.setPort(5672);
+ connectionFactory.setVirtualHost("/bonus");
+ connectionFactory.setUsername("bonus");
+ connectionFactory.setPassword("bonus@admin");
+ //2 创建Connection
+ Connection connection = connectionFactory.newConnection();
+ //3 创建Channel
+ Channel channel = connection.createChannel();
+ //4 声明
+ String exchangeName = "topicExchange";
+ //定义三个routingKey 其中第三个我们再消费者中故意匹配不成功
+ //5 发送
+ String msg = "Test Topic Exchange Message";
+ channel.basicPublish(exchangeName, RabbitMQConfig.bindingKey , null , msg.getBytes());
+ channel.close();
+ connection.close();
+ return "发送消息";
+ }
+
@RequestMapping(value = "getWorkType", method = RequestMethod.POST)
@ResponseBody
diff --git a/src/main/java/com/bonus/nxdt/energy/newcheck/service/impl/New_SubCheckManageServiceImpl.java b/src/main/java/com/bonus/nxdt/energy/newcheck/service/impl/New_SubCheckManageServiceImpl.java
index 8fd87e9..2828b5d 100644
--- a/src/main/java/com/bonus/nxdt/energy/newcheck/service/impl/New_SubCheckManageServiceImpl.java
+++ b/src/main/java/com/bonus/nxdt/energy/newcheck/service/impl/New_SubCheckManageServiceImpl.java
@@ -1188,7 +1188,7 @@ public class New_SubCheckManageServiceImpl implements New_SubCheckManageService
checkManageDao.insertCheckMsg(nextId, msg, o.getAuditStatus(), o.getMsgId(), o.getProId());
listAfter.forEach(i -> {
String msg1 = "【" + o.getContractorName() + "-" + o.getNewDataMsg() + "】" + loginName + "(" + phone + ") 将" + o.getNewDataMsg() + "材料提交至 -" + i.getValue() + "- 处,请注意及时审核";
-// setPhoneMsg(i.getPhone(), msg1);
+ setPhoneMsg(i.getPhone(), msg1);
});
} else {
//终审
diff --git a/src/main/java/com/bonus/nxdt/energy/task/task/BallStatusPushTask.java b/src/main/java/com/bonus/nxdt/energy/task/task/BallStatusPushTask.java
index 1190aa2..e6984c7 100644
--- a/src/main/java/com/bonus/nxdt/energy/task/task/BallStatusPushTask.java
+++ b/src/main/java/com/bonus/nxdt/energy/task/task/BallStatusPushTask.java
@@ -15,7 +15,7 @@ import javax.annotation.Resource;
* @date 2023-01-30 17:30:00
*/
@Configuration
-//@EnableScheduling
+@EnableScheduling
@Slf4j
public class BallStatusPushTask {
@@ -28,7 +28,7 @@ public class BallStatusPushTask {
* 球机在离线状态更新定时器
* 60S执行一次
*/
- @Scheduled(fixedRate = 1000*60)
+ @Scheduled(fixedRate = 1000*60*5)
@Async
public void ballStatusTask(){
log.info("--------球机在离线状态更新定时器启动--------");
@@ -38,21 +38,21 @@ public class BallStatusPushTask {
// 项目负责人黑名单
- @Scheduled(fixedRate = 1000*60)
+ @Scheduled(fixedRate = 1000*60*60*24)
public int addProBlackList() {
log.info("--------项目负责人黑名单--------");
return consBlackService.addProBlackList();
}
//承包商黑名单
- @Scheduled(fixedRate = 1000*60)
+ @Scheduled(fixedRate = 1000*60*60*25)
public int addConsBlackList() {
log.info("--------承包商黑名单--------");
return consBlackService.addConsBlackList();
}
// 施工人员黑名单
- @Scheduled(fixedRate = 1000*60)
+ @Scheduled(fixedRate = 1000*60*60*26)
public int addSgBlackList() {
log.info("--------施工人员黑名单--------");
return consBlackService.addSgBlackList();
diff --git a/src/main/resources/static/js/ace/AesCbc.js b/src/main/resources/static/js/ace/AesCbc.js
new file mode 100644
index 0000000..219f4dc
--- /dev/null
+++ b/src/main/resources/static/js/ace/AesCbc.js
@@ -0,0 +1,71 @@
+!function(t,n){"object"==typeof exports?module.exports=exports=n():"function"==typeof define&&define.amd?define([],n):t.CryptoJS=n()}(this,function(){var t=t||function(t,n){var i=Object.create||function(){function t(){}return function(n){var i;return t.prototype=n,i=new t,t.prototype=null,i}}(),e={},r=e.lib={},o=r.Base=function(){return{extend:function(t){var n=i(this);return t&&n.mixIn(t),n.hasOwnProperty("init")&&this.init!==n.init||(n.init=function(){n.$super.init.apply(this,arguments)}),n.init.prototype=n,n.$super=this,n},create:function(){var t=this.extend();return t.init.apply(t,arguments),t},init:function(){},mixIn:function(t){for(var n in t)t.hasOwnProperty(n)&&(this[n]=t[n]);t.hasOwnProperty("toString")&&(this.toString=t.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),s=r.WordArray=o.extend({init:function(t,i){t=this.words=t||[],i!=n?this.sigBytes=i:this.sigBytes=4*t.length},toString:function(t){return(t||c).stringify(this)},concat:function(t){var n=this.words,i=t.words,e=this.sigBytes,r=t.sigBytes;if(this.clamp(),e%4)for(var o=0;o>>2]>>>24-o%4*8&255;n[e+o>>>2]|=s<<24-(e+o)%4*8}else for(var o=0;o>>2]=i[o>>>2];return this.sigBytes+=r,this},clamp:function(){var n=this.words,i=this.sigBytes;n[i>>>2]&=4294967295<<32-i%4*8,n.length=t.ceil(i/4)},clone:function(){var t=o.clone.call(this);return t.words=this.words.slice(0),t},random:function(n){for(var i,e=[],r=function(n){var n=n,i=987654321,e=4294967295;return function(){i=36969*(65535&i)+(i>>16)&e,n=18e3*(65535&n)+(n>>16)&e;var r=(i<<16)+n&e;return r/=4294967296,r+=.5,r*(t.random()>.5?1:-1)}},o=0;o>>2]>>>24-r%4*8&255;e.push((o>>>4).toString(16)),e.push((15&o).toString(16))}return e.join("")},parse:function(t){for(var n=t.length,i=[],e=0;e>>3]|=parseInt(t.substr(e,2),16)<<24-e%8*4;return new s.init(i,n/2)}},u=a.Latin1={stringify:function(t){for(var n=t.words,i=t.sigBytes,e=[],r=0;r>>2]>>>24-r%4*8&255;e.push(String.fromCharCode(o))}return e.join("")},parse:function(t){for(var n=t.length,i=[],e=0;e>>2]|=(255&t.charCodeAt(e))<<24-e%4*8;return new s.init(i,n)}},f=a.Utf8={stringify:function(t){try{return decodeURIComponent(escape(u.stringify(t)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(t){return u.parse(unescape(encodeURIComponent(t)))}},h=r.BufferedBlockAlgorithm=o.extend({reset:function(){this._data=new s.init,this._nDataBytes=0},_append:function(t){"string"==typeof t&&(t=f.parse(t)),this._data.concat(t),this._nDataBytes+=t.sigBytes},_process:function(n){var i=this._data,e=i.words,r=i.sigBytes,o=this.blockSize,a=4*o,c=r/a;c=n?t.ceil(c):t.max((0|c)-this._minBufferSize,0);var u=c*o,f=t.min(4*u,r);if(u){for(var h=0;h>>6-o%4*2;n[i>>>2]|=(f|c)<<24-i%4*8,i++}return a.create(n,i)}var t=r,n=t.lib,a=n.WordArray,i=t.enc;i.Base64={stringify:function(r){var e=r.words,t=r.sigBytes,n=this._map;r.clamp();for(var a=[],i=0;i>>2]>>>24-i%4*8&255,f=e[i+1>>>2]>>>24-(i+1)%4*8&255,c=e[i+2>>>2]>>>24-(i+2)%4*8&255,s=o<<16|f<<8|c,h=0;h<4&&i+.75*h>>6*(3-h)&63));var p=n.charAt(64);if(p)for(;a.length%4;)a.push(p);return a.join("")},parse:function(r){var t=r.length,n=this._map,a=this._reverseMap;if(!a){a=this._reverseMap=[];for(var i=0;i>>2];e.sigBytes-=t}},y=(i.BlockCipher=d.extend({cfg:d.cfg.extend({mode:l,padding:v}),reset:function(){d.reset.call(this);var e=this.cfg,t=e.iv,r=e.mode;if(this._xformMode==this._ENC_XFORM_MODE)var i=r.createEncryptor;else{var i=r.createDecryptor;this._minBufferSize=1}this._mode&&this._mode.__creator==i?this._mode.init(this,t&&t.words):(this._mode=i.call(r,this,t&&t.words),this._mode.__creator=i)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e=this.cfg.padding;if(this._xformMode==this._ENC_XFORM_MODE){e.pad(this._data,this.blockSize);var t=this._process(!0)}else{var t=this._process(!0);e.unpad(t)}return t},blockSize:4}),i.CipherParams=n.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}})),m=r.format={},k=m.OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;if(r)var i=c.create([1398893684,1701076831]).concat(r).concat(t);else var i=t;return i.toString(a)},parse:function(e){var t=a.parse(e),r=t.words;if(1398893684==r[0]&&1701076831==r[1]){var i=c.create(r.slice(2,4));r.splice(0,4),t.sigBytes-=16}return y.create({ciphertext:t,salt:i})}},x=i.SerializableCipher=n.extend({cfg:n.extend({format:k}),encrypt:function(e,t,r,i){i=this.cfg.extend(i);var n=e.createEncryptor(r,i),c=n.finalize(t),o=n.cfg;return y.create({ciphertext:c,key:r,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:i.format})},decrypt:function(e,t,r,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var n=e.createDecryptor(r,i).finalize(t.ciphertext);return n},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),g=r.kdf={},S=g.OpenSSL={execute:function(e,t,r,i){i||(i=c.random(8));var n=p.create({keySize:t+r}).compute(e,i),o=c.create(n.words.slice(t),4*r);return n.sigBytes=4*t,y.create({key:n,iv:o,salt:i})}},B=i.PasswordBasedCipher=x.extend({cfg:x.cfg.extend({kdf:S}),encrypt:function(e,t,r,i){i=this.cfg.extend(i);var n=i.kdf.execute(r,e.keySize,e.ivSize);i.iv=n.iv;var c=x.encrypt.call(this,e,t,n.key,i);return c.mixIn(n),c},decrypt:function(e,t,r,i){i=this.cfg.extend(i),t=this._parse(t,i.format);var n=i.kdf.execute(r,e.keySize,e.ivSize,t.salt);i.iv=n.iv;var c=x.decrypt.call(this,e,t,n.key,i);return c}})}()});
+//# sourceMappingURL=cipher-core.min.js.map
+!function(e,i){"object"==typeof exports?module.exports=exports=i(require("./core.min")):"function"==typeof define&&define.amd?define(["./core.min"],i):i(e.CryptoJS)}(this,function(e){!function(){var i=e,t=i.lib,n=t.Base,s=i.enc,r=s.Utf8,o=i.algo;o.HMAC=n.extend({init:function(e,i){e=this._hasher=new e.init,"string"==typeof i&&(i=r.parse(i));var t=e.blockSize,n=4*t;i.sigBytes>n&&(i=e.finalize(i)),i.clamp();for(var s=this._oKey=i.clone(),o=this._iKey=i.clone(),a=s.words,f=o.words,c=0;c>>8^255&o^99,t[i]=o,c[o]=i;var p=e[i],l=e[p],_=e[l],k=257*e[o]^16843008*o;s[i]=k<<24|k>>>8,f[i]=k<<16|k>>>16,a[i]=k<<8|k>>>24,d[i]=k;var k=16843009*_^65537*l^257*p^16843008*i;u[o]=k<<24|k>>>8,v[o]=k<<16|k>>>16,h[o]=k<<8|k>>>24,y[o]=k,i?(i=p^e[e[e[_^p]]],n^=e[e[n]]):i=n=1}}();var p=[0,1,2,4,8,16,32,64,128,27,54],l=o.AES=n.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,r=e.words,i=e.sigBytes/4,n=this._nRounds=i+6,o=4*(n+1),c=this._keySchedule=[],s=0;s6&&s%i==4&&(f=t[f>>>24]<<24|t[f>>>16&255]<<16|t[f>>>8&255]<<8|t[255&f]):(f=f<<8|f>>>24,f=t[f>>>24]<<24|t[f>>>16&255]<<16|t[f>>>8&255]<<8|t[255&f],f^=p[s/i|0]<<24),c[s]=c[s-i]^f}for(var a=this._invKeySchedule=[],d=0;d>>24]]^v[t[f>>>16&255]]^h[t[f>>>8&255]]^y[t[255&f]]}}},encryptBlock:function(e,r){this._doCryptBlock(e,r,this._keySchedule,s,f,a,d,t)},decryptBlock:function(e,r){var i=e[r+1];e[r+1]=e[r+3],e[r+3]=i,this._doCryptBlock(e,r,this._invKeySchedule,u,v,h,y,c);var i=e[r+1];e[r+1]=e[r+3],e[r+3]=i},_doCryptBlock:function(e,r,i,n,o,t,c,s){for(var f=this._nRounds,a=e[r]^i[0],d=e[r+1]^i[1],u=e[r+2]^i[2],v=e[r+3]^i[3],h=4,y=1;y>>24]^o[d>>>16&255]^t[u>>>8&255]^c[255&v]^i[h++],l=n[d>>>24]^o[u>>>16&255]^t[v>>>8&255]^c[255&a]^i[h++],_=n[u>>>24]^o[v>>>16&255]^t[a>>>8&255]^c[255&d]^i[h++],k=n[v>>>24]^o[a>>>16&255]^t[d>>>8&255]^c[255&u]^i[h++];a=p,d=l,u=_,v=k}var p=(s[a>>>24]<<24|s[d>>>16&255]<<16|s[u>>>8&255]<<8|s[255&v])^i[h++],l=(s[d>>>24]<<24|s[u>>>16&255]<<16|s[v>>>8&255]<<8|s[255&a])^i[h++],_=(s[u>>>24]<<24|s[v>>>16&255]<<16|s[a>>>8&255]<<8|s[255&d])^i[h++],k=(s[v>>>24]<<24|s[a>>>16&255]<<16|s[d>>>8&255]<<8|s[255&u])^i[h++];e[r]=p,e[r+1]=l,e[r+2]=_,e[r+3]=k},keySize:8});r.AES=n._createHelper(l)}(),e.AES});
+//# sourceMappingURL=aes.min.js.map
+!function(e,n){"object"==typeof exports?module.exports=exports=n(require("./core.min")):"function"==typeof define&&define.amd?define(["./core.min"],n):n(e.CryptoJS)}(this,function(e){return e.enc.Utf8});
+//# sourceMappingURL=enc-utf8.min.js.map
+var cbc_key = CryptoJS.enc.Utf8.parse("zhgd@bonus@zhgd@bonus@1234567890");
+var cbc_iv = CryptoJS.enc.Utf8.parse("1234567812345678");
+function encryptCBC(word){
+ if(!aqEnnable){
+ return word;
+ }
+ var srcs = CryptoJS.enc.Utf8.parse(word)
+ var encrypted = CryptoJS.AES.encrypt(srcs, cbc_key, {
+ iv: cbc_iv,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7
+ });
+ return encrypted.toString();
+}
+/**
+ * 解密
+ * @param word
+ * @returns {*}
+ */
+function decryptCBC(word){
+ if(!aqEnnable){
+ return word;
+ }
+ var encrypted = CryptoJS.AES.decrypt(word, cbc_key, {
+ iv: cbc_iv,
+ mode: CryptoJS.mode.CBC,
+ padding: CryptoJS.pad.Pkcs7
+ });
+ return encrypted.toString(CryptoJS.enc.Utf8);
+}
+
+
+/**
+ * @param {Object} fmt
+ * @param {Object} date时间格式化工具类
+ */
+function dateFtt(fmt, date) { //author: meizz
+ var o = {
+ "M+": date.getMonth() + 1, //月份
+ "d+": date.getDate(), //日
+ "h+": date.getHours(), //小时
+ "m+": date.getMinutes(), //分
+ "s+": date.getSeconds(), //秒
+ "q+": Math.floor((date.getMonth() + 3) / 3), //季度
+ "S": date.getMilliseconds() //毫秒
+ };
+ if(/(y+)/.test(fmt))
+ fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
+ for(var k in o)
+ if(new RegExp("(" + k + ")").test(fmt))
+ fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
+ return fmt;
+}
\ No newline at end of file
diff --git a/src/main/resources/static/js/work/newSub/datumChecDetails_new.js b/src/main/resources/static/js/work/newSub/datumChecDetails_new.js
index db06665..79b6db9 100644
--- a/src/main/resources/static/js/work/newSub/datumChecDetails_new.js
+++ b/src/main/resources/static/js/work/newSub/datumChecDetails_new.js
@@ -40,30 +40,43 @@ layui.use(['table', 'form', 'laydate', 'dropdown' ,'util'], function () {
if (options.title === '开工申请') {
openFrameTwo('开工申请', './startWorkApplication.html',"", consId, proId, startWorkStatus, proName, consName,"");
}else{
- if(startWorkStatus === "2"){
- //根据 title 做出不同操作
- if (options.title === '增加人员') {
- openFrame('增加人员', './personAdd.html', consId, proId, proName, consName,"");
- } else if (options.title === '增加设备') {
- openFrame('增加设备', './addEquipmentForm.html', consId, proId, proName, consName,"");
- } else if (options.title === '分包入场') {
- openFrame('分包入场', './subAdmissionApplication.html', consId, proId, proName, consName,"");
- } else if (options.title === '人员出场') {
- openFrame('人员出场', './personExitSet.html', consId, proId, proName, consName,"");
- } else if (options.title === '承包商出场') {
- openFrameTwo('承包商出场', 'cbsAppearApply.html',ifMaster, consId, proId, consApplyStatus, proName, consName,"");
- }else if (options.title === '人员出场延期申请'){
- openFrame('人员出场延期申请', './deferExitApply.html', consId, proId, proName, consName,"");
- }
- }else if (startWorkStatus === "10"){
- layer.alert("未提交开工申请,不能进行操作");
- }else if (startWorkStatus === "1"){
- layer.alert("开工申请未审核通过,不能进行操作");
- }else if (startWorkStatus === "0"){
- layer.alert("开工申请审核中,不能进行操作");
- }else if (startWorkStatus === "5"){
- layer.alert("开工申请已撤回,不能进行操作");
+ if (options.title === '增加人员') {
+ openFrame('增加人员', './personAdd.html', consId, proId, proName, consName,"");
+ } else if (options.title === '增加设备') {
+ openFrame('增加设备', './addEquipmentForm.html', consId, proId, proName, consName,"");
+ } else if (options.title === '分包入场') {
+ openFrame('分包入场', './subAdmissionApplication.html', consId, proId, proName, consName,"");
+ } else if (options.title === '人员出场') {
+ openFrame('人员出场', './personExitSet.html', consId, proId, proName, consName,"");
+ } else if (options.title === '承包商出场') {
+ openFrameTwo('承包商出场', 'cbsAppearApply.html',ifMaster, consId, proId, consApplyStatus, proName, consName,"");
+ }else if (options.title === '人员出场延期申请'){
+ openFrame('人员出场延期申请', './deferExitApply.html', consId, proId, proName, consName,"");
}
+ // if(startWorkStatus === "2"){
+ // //根据 title 做出不同操作
+ // if (options.title === '增加人员') {
+ // openFrame('增加人员', './personAdd.html', consId, proId, proName, consName,"");
+ // } else if (options.title === '增加设备') {
+ // openFrame('增加设备', './addEquipmentForm.html', consId, proId, proName, consName,"");
+ // } else if (options.title === '分包入场') {
+ // openFrame('分包入场', './subAdmissionApplication.html', consId, proId, proName, consName,"");
+ // } else if (options.title === '人员出场') {
+ // openFrame('人员出场', './personExitSet.html', consId, proId, proName, consName,"");
+ // } else if (options.title === '承包商出场') {
+ // openFrameTwo('承包商出场', 'cbsAppearApply.html',ifMaster, consId, proId, consApplyStatus, proName, consName,"");
+ // }else if (options.title === '人员出场延期申请'){
+ // openFrame('人员出场延期申请', './deferExitApply.html', consId, proId, proName, consName,"");
+ // }
+ // }else if (startWorkStatus === "10"){
+ // layer.alert("未提交开工申请,不能进行操作");
+ // }else if (startWorkStatus === "1"){
+ // layer.alert("开工申请未审核通过,不能进行操作");
+ // }else if (startWorkStatus === "0"){
+ // layer.alert("开工申请审核中,不能进行操作");
+ // }else if (startWorkStatus === "5"){
+ // layer.alert("开工申请已撤回,不能进行操作");
+ // }
}
diff --git a/src/main/resources/static/login.html b/src/main/resources/static/login.html
index 3c53e02..3ff6018 100644
--- a/src/main/resources/static/login.html
+++ b/src/main/resources/static/login.html
@@ -63,6 +63,7 @@
+