diff --git a/src/main/java/com/dsic/gj_erp/config/JapConfig.java b/src/main/java/com/dsic/gj_erp/config/JapConfig.java index 7870e2e..3799e77 100644 --- a/src/main/java/com/dsic/gj_erp/config/JapConfig.java +++ b/src/main/java/com/dsic/gj_erp/config/JapConfig.java @@ -81,6 +81,7 @@ public class JapConfig { jpaProperties.put("hibernate.show_sql", env.getProperty("hibernate.show_sql")); //字段驼峰转下划线 jpaProperties.put("hibernate.physical_naming_strategy", env.getProperty("hibernate.naming.physical_strategy")); + jpaProperties.put("hibernate.dialect",env.getProperty("hibernate.dialect")); factory.setJpaProperties(jpaProperties); return factory; } diff --git a/src/main/java/com/dsic/gj_erp/datasync/Config.java b/src/main/java/com/dsic/gj_erp/datasync/Config.java new file mode 100644 index 0000000..7af0035 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/datasync/Config.java @@ -0,0 +1,48 @@ +package com.dsic.gj_erp.datasync; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Getter +@Setter +//@Component +//@ConfigurationProperties(prefix = "data-sync",ignoreInvalidFields = true) +public class Config { + + private String host; + private String port; + private Map uri; + + private Integer tokenExpTime=4*60*60;//token超时时长,默认4个小时 + + //发送请求需要携带head名称 + private String tokenName; + private String typeName; + private String authType; + private String channelCodeName; + private String channelCode; + private String _channelCodeName; + private String _channelCode; + private String userCodeName; + private String xAuthTokenName; + + //登录账号密码,密码采用md5加密 + private String account; + private String pwd;//已加密,aff462d5872e714dadf9f17109527406 + + public String getRequestUrl(String name){ + return host+":"+port+uri.get(name); + } + + public Map getLoginFormData(){ + return new HashMap(){{ + put("usercode",account); + put("passwd",pwd); + }}; + } +} diff --git a/src/main/java/com/dsic/gj_erp/datasync/DataHandler.java b/src/main/java/com/dsic/gj_erp/datasync/DataHandler.java new file mode 100644 index 0000000..fffd096 --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/datasync/DataHandler.java @@ -0,0 +1,68 @@ +package com.dsic.gj_erp.datasync; + +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.util.ObjUtil; +import cn.hutool.http.HttpUtil; +import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.DependsOn; +import org.springframework.stereotype.Component; + +import java.util.Map; + +//@Component +@DependsOn("config") +@RequiredArgsConstructor +public class DataHandler { + + private final Config config; + private String token; + private DateTime expTime; + private String userCode; + private String xAuthToken; + + public JSONObject execute(String methodName, JSONObject param){ + if (ObjUtil.isEmpty(expTime)||DateTime.now().after(expTime)){ + this.getToken(); + } + + String result = HttpUtil.createPost(config.getRequestUrl(methodName)) + .header(config.getTokenName(), token) + .header(config.getTypeName(), config.getAuthType()) + .header(config.getChannelCodeName(), config.getChannelCode()) + .header(config.get_channelCodeName(), config.get_channelCode()) + .header(config.getXAuthTokenName(), xAuthToken) + .header(config.getUserCodeName(), userCode) + .body(JSONObject.toJSONString(param)) + .execute().body(); + try { + return JSONObject.parseObject(result); + }catch (Exception e){ + e.printStackTrace(); + } + return null; + } + + public JSONObject getToken(){ + Map loginFormData = config.getLoginFormData(); + String result = HttpUtil.createPost(config.getRequestUrl(MethodType.login.name())) + .header(config.getTypeName(), config.getAuthType()) + .header(config.getChannelCodeName(), config.getChannelCode()) + .header(config.get_channelCodeName(), config.get_channelCode()) + .form(loginFormData) + .execute().body(); + try { + JSONObject loginResult = JSONObject.parseObject(result); + this.token=loginResult.getString(config.getTokenName()); + this.expTime =DateTime.now().offset(DateField.SECOND,config.getTokenExpTime()-120); + this.xAuthToken=loginResult.getString(config.getXAuthTokenName()); + this.userCode= (String) loginFormData.get("usercode"); + }catch (Exception e){ + e.printStackTrace(); + } + + return null; + } + +} diff --git a/src/main/java/com/dsic/gj_erp/datasync/MethodType.java b/src/main/java/com/dsic/gj_erp/datasync/MethodType.java new file mode 100644 index 0000000..4a9267a --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/datasync/MethodType.java @@ -0,0 +1,5 @@ +package com.dsic.gj_erp.datasync; + +public enum MethodType { + login +} diff --git a/src/main/java/com/dsic/gj_erp/datasync/package-info.java b/src/main/java/com/dsic/gj_erp/datasync/package-info.java new file mode 100644 index 0000000..23af94c --- /dev/null +++ b/src/main/java/com/dsic/gj_erp/datasync/package-info.java @@ -0,0 +1,3 @@ +package com.dsic.gj_erp.datasync; + +//读取数据用 \ No newline at end of file diff --git a/src/main/java/com/dsic/gj_erp/pc/DataFactory.java b/src/main/java/com/dsic/gj_erp/pc/DataFactory.java index 721e630..d26e833 100644 --- a/src/main/java/com/dsic/gj_erp/pc/DataFactory.java +++ b/src/main/java/com/dsic/gj_erp/pc/DataFactory.java @@ -62,12 +62,12 @@ public class DataFactory { }else { latch.countDown(); } - if(atomicBoolean.get()){ - String errText = StrUtil.format("船号:{},批量:{},图号:{},需求日期:{},不满足上料需求", - bom.getDcch(), bom.getPl(), bom.getTzbh(), bom.getXzglxq()); - 清理冗余数据(list); - throw new RuntimeException(errText); - } +// if(atomicBoolean.get()){ +// String errText = StrUtil.format("船号:{},批量:{},图号:{},需求日期:{},不满足上料需求", +// bom.getDcch(), bom.getPl(), bom.getTzbh(), bom.getXzglxq()); +// 清理冗余数据(list); +// throw new RuntimeException(errText); +// } }); try { latch.await(10, TimeUnit.SECONDS);// 指定超时时间 @@ -75,7 +75,6 @@ public class DataFactory { throw new RuntimeException(e); } }); - System.out.println(Manager.排产结果.size()); 清理冗余数据(list); } diff --git a/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java b/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java index bcca281..e76ef30 100644 --- a/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java +++ b/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java @@ -41,21 +41,17 @@ public abstract class 套料图工序 implements 套料图工序接口 { double 需求数量 = 1; this.工序.forEach(_工序 -> { if (!this.占用资源(_工序,需求数量)){ - if (bom.get已排工序().size()==0||bom.get已排工序().get(0) != _工序) { - //可用资源最大前推日期设置为N天,最大前推日期意味从上料开始最小施工周期 - //fixme 这里应该安装工序设置,暂时写死一个日期 - Optional<资源> 可用资源 = 搜索可用资源(_工序, DateUtil.parse(from, "yyyy/MM/dd"), DateUtil.offsetDay(this._需求日期,0), 需求数量); - if (可用资源!=null){ - 可用资源.ifPresent(_资源 -> { - if (_资源.占用资源(_工序,this.bom,需求数量)){ - this.bom.set所在资源(_资源); - this.bom.get已排工序().add(0,_工序); - } - }); + //可用资源最大前推日期设置为N天,最大前推日期意味从上料开始最小施工周期 + //fixme 这里应该安装工序设置,暂时写死一个日期 + Optional<资源> 可用资源 = 搜索可用资源(_工序, DateUtil.parse(from, "yyyy/MM/dd"), DateUtil.offsetDay(this._需求日期,0), 需求数量); + 可用资源.ifPresent(_资源 -> { + if (_资源.占用资源(_工序,this.bom,需求数量)){ + this.bom.set所在资源(_资源); + this.bom.get已排工序().add(0,_工序); } - } + }); - if (bom.get已排工序().size()==0||bom.get已排工序().get(0) != Constant.工序.上料) { + if (bom.get已排工序().size()==0) { Manager.排产结果.add(this.bom); atomicBoolean.set(true); } diff --git a/src/main/java/com/dsic/gj_erp/pc/service/套料图工序接口.java b/src/main/java/com/dsic/gj_erp/pc/service/套料图工序接口.java index 61f66e2..a18016a 100644 --- a/src/main/java/com/dsic/gj_erp/pc/service/套料图工序接口.java +++ b/src/main/java/com/dsic/gj_erp/pc/service/套料图工序接口.java @@ -11,4 +11,8 @@ public interface 套料图工序接口 extends Runnable { 套料图工序 钢料需求(钢料需求 _钢料需求); + default void run(){ + + } + } diff --git a/src/main/java/com/dsic/gj_erp/service/ApiService.java b/src/main/java/com/dsic/gj_erp/service/ApiService.java index e57d1c6..0625c53 100644 --- a/src/main/java/com/dsic/gj_erp/service/ApiService.java +++ b/src/main/java/com/dsic/gj_erp/service/ApiService.java @@ -13,6 +13,7 @@ import com.dsic.gj_erp.util.IPUtils; import com.dsic.gj_erp.util.JwtUtil; import com.dsic.gj_erp.util.MD5Util; import com.querydsl.jpa.impl.JPAQueryFactory; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; @@ -23,6 +24,7 @@ import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; +@Slf4j @Service public class ApiService { @@ -55,6 +57,7 @@ public class ApiService { public Map userLogin(LoginBean loginBean, HttpServletRequest request) throws CustomException { String pwd=""; String ip= IPUtils.getIpAddr(request); + log.info("账号:{},登录IP:{}",loginBean.getYhdm(),ip); String macAddress=IPUtils.getMACAddress(ip); if (!StringUtils.isEmpty(loginBean.getPwd())){ @@ -65,6 +68,9 @@ public class ApiService { if (syuserp == null) { throw new CustomException(10201, "登陆失败,账号密码错误!"); } + if (syuserp.getIpAddress()==null ) { + throw new CustomException(10201, "登陆失败,IP地址未配置!"); + } if (!syuserp.getIpAddress().equals(ip) ) { throw new CustomException(10201, "登陆失败,IP地址未授权!"); } diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java index 271b61e..0cc4302 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java @@ -59,10 +59,10 @@ public class DmSygdxqServiceImpl extends ServiceImpl i l.setDrr(username); l.setDrrq(day); //状态 2拖期 1提前 - if (l.getXzglxq().compareTo(sygdxq.getXzglxq())>0){ + if (sygdxq.getXzglxq()!=null&&l.getXzglxq().compareTo(sygdxq.getXzglxq())>0){ l.setXqzt("2"); } - if (l.getXzglxq().compareTo(sygdxq.getXzglxq())<0){ + if (sygdxq.getXzglxq()!=null&&l.getXzglxq().compareTo(sygdxq.getXzglxq())<0){ l.setXqzt("1"); } this.update(new UpdateWrapper() diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index f14cdf8..4f20f1a 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -22,8 +22,8 @@ spring.servlet.multipart.enabled = true server.port=8081 spring.datasource.master.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver -spring.datasource.sl.url=jdbc:sqlserver://192.127.0.3:1433;DatabaseName=GJ_ERP_Java -spring.datasource.sl.jdbc-url=jdbc:sqlserver://192.127.0.3:1433;DatabaseName=GJ_ERP_Java +spring.datasource.master.url=jdbc:sqlserver://192.127.0.3:1433;DatabaseName=GJ_ERP_Java +spring.datasource.master.jdbc-url=jdbc:sqlserver://192.127.0.3:1433;DatabaseName=GJ_ERP_Java spring.datasource.master.username=sa spring.datasource.master.password=gjerp spring.datasource.master.initialize=true @@ -36,6 +36,8 @@ spring.datasource.jiuzhou.initialize=true hibernate.naming.physical_strategy=com.dsic.gj_erp.config.MyPhysicalNamingStrategy hibernate.show_sql=true +hibernate.connection.autocommit=true +'hibernate.dialect=org.hibernate.dialect.SQLServer2008Dialect mybatis-plus.configuration.batch-size=5000 diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml index bb8cc23..9c74a28 100644 --- a/src/main/resources/logback-spring.xml +++ b/src/main/resources/logback-spring.xml @@ -35,7 +35,7 @@ - 2MB + 20MB @@ -62,7 +62,7 @@ 90 - 2MB + 20MB