SyncProductWIPTask.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package com.uas.eis.task;
  2. import com.uas.eis.dao.BaseDao;
  3. import com.uas.eis.dao.SqlRowList;
  4. import com.uas.eis.task.httpclient.X5JsonHttpClient;
  5. import com.uas.eis.utils.Configuration;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.scheduling.annotation.EnableAsync;
  10. import org.springframework.scheduling.annotation.EnableScheduling;
  11. import org.springframework.scheduling.annotation.Scheduled;
  12. import org.springframework.stereotype.Component;
  13. import javax.annotation.Resource;
  14. import java.text.SimpleDateFormat;
  15. import java.util.*;
  16. /**
  17. * @Author chenwei
  18. * @Date 2022-06-14
  19. */
  20. @Component
  21. @EnableAsync
  22. @EnableScheduling
  23. public class SyncProductWIPTask {
  24. @Autowired
  25. private BaseDao baseDao;
  26. @Resource(name = "configuration")
  27. private Configuration configuration;
  28. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  29. //@Scheduled(cron = "0 0 2,8,14,20 * * ?")
  30. //@Scheduled(cron = "0 0 2,8,14,20 * * ?")
  31. @Scheduled(cron = "0 0/2 * * * ?")
  32. public void SyncProductWIP() {
  33. SqlRowList rs2 = baseDao.queryForRowSet("select TO_CHAR(SYSDATE,'HH24') v_hour,TO_CHAR(SYSDATE,'MI') v_mi from dual");
  34. while(rs2.next()){
  35. String V_HOUR = rs2.getGeneralString("v_hour");
  36. String V_MI = rs2.getGeneralString("v_mi");
  37. if(("02".equals(V_HOUR) || "08".equals(V_HOUR) || "14".equals(V_HOUR) || "20".equals(V_HOUR) || "15".equals(V_HOUR) || "16".equals(V_HOUR) )
  38. //&& ("00".equals(V_MI) || "04".equals(V_MI) || "06".equals(V_MI))
  39. ){
  40. X5JsonHttpClient x5JsonHttpClient = new X5JsonHttpClient(configuration.getX5appid(),configuration.getX5appkey(),configuration.getX5ProductWIPUrl());
  41. Map<String,Object> data = new HashMap<>();
  42. SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  43. String format = sf.format(new Date());
  44. data.put("request_time",format);
  45. List<Map<String,Object>> list = new ArrayList<>();
  46. String Sql="select * from (select rownum rn,to_char(cd_date_1,'yyyy-mm-dd hh24:mi:ss') cd_date_ywfs, A.* from (select ct_id,ct_code,CUSTOMTABLEDETAIL.* from CUSTOMTABLE left join CUSTOMTABLEDETAIL on ct_id=cd_ctid " +
  47. " where ct_caller='XiaoMiProductWIP' and ct_id= " +
  48. " (select ct_id from (select ct_id from CUSTOMTABLE where ct_caller='XiaoMiProductWIP' " +
  49. //"and trunc(ct_recorddate)=trunc(sysdate) " +
  50. "and ct_statuscode='AUDITED' and nvl(CT_SENDSTATUS,' ')<>'已上传' order by ct_id ) where rownum=1)" +
  51. " order by cd_detno) A) where rn<=1000";
  52. SqlRowList rs = baseDao.queryForRowSet(Sql);
  53. while (rs.next()){
  54. Map<String,Object> map = new HashMap<>();
  55. map.put("factory_code",configuration.getX5vendercode());
  56. map.put("component_code",rs.getGeneralString("cd_varchar50_1"));
  57. map.put("process",rs.getGeneralString("cd_varchar50_2"));
  58. map.put("line_id",rs.getGeneralString("cd_varchar50_3"));
  59. map.put("site_name",rs.getGeneralString("cd_varchar50_4"));
  60. map.put("wip_num",rs.getInt("cd_number_1"));
  61. map.put("project_name",rs.getGeneralString("cd_varchar50_5"));
  62. map.put("product_code",rs.getGeneralString("cd_varchar50_6"));
  63. map.put("fact_date",rs.getGeneralString("cd_date_ywfs"));
  64. map.put("ct_id",rs.getGeneralInt("ct_id"));
  65. list.add(map);
  66. }
  67. data.put("data",list);
  68. if(list.size()>0){
  69. x5JsonHttpClient.post(data, configuration, baseDao, "ProductWIP");
  70. }
  71. }
  72. }
  73. }
  74. }