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 @@ +