aadddrr

ApprovedDeliveryOrderPostEventFiredForPaloma

Oct 19th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.60 KB | None | 0 0
  1. package org.jleaf.erp.sls.services.deliveryorder.triggers;
  2.  
  3. import java.io.File;
  4. import java.util.ArrayList;
  5.  
  6. import org.jleaf.core.BusinessFunction;
  7. import org.jleaf.core.BusinessTransaction;
  8. import org.jleaf.core.Dto;
  9. import org.jleaf.erp.master.MasterConstants;
  10. import org.jleaf.erp.sls.SalesConstants;
  11. import org.jleaf.erp.sls.services.util.IOUtil;
  12. import org.jleaf.serviceflow.util.MessageForwardingUtil;
  13. import org.jleaf.util.DateUtil;
  14. import org.jleaf.workflow.core.engine.TriggerCall;
  15. import org.slf4j.Logger;
  16. import org.slf4j.LoggerFactory;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.beans.factory.annotation.Qualifier;
  19. import org.springframework.beans.factory.annotation.Value;
  20. import org.springframework.stereotype.Component;
  21.  
  22. /**
  23.  * @author fredie, 02 June 2013
  24.  */
  25. /**
  26.  * Custom untuk Paloma terkait sync stock SDP
  27.  * modified by Adrian
  28.  * Jun 11, 2018
  29.  */
  30.  
  31. @Component("approvedDeliveryOrderPostEventFired")
  32. public class ApprovedDeliveryOrderPostEventFiredForPaloma implements TriggerCall {
  33.     private final static Logger log = LoggerFactory.getLogger(ApprovedDeliveryOrderPostEventFiredForPaloma.class);
  34.  
  35.     @Autowired
  36.     @Qualifier("sendProcessToQueue")
  37.     private BusinessTransaction sendProcessToQueue;
  38.  
  39.     @Autowired
  40.     @Qualifier("generateAutoNum")
  41.     private BusinessTransaction generateAutoNum;
  42.  
  43.     @Autowired
  44.     @Qualifier("getDeliveryOrderDataForSdp")
  45.     private BusinessFunction getDeliveryOrderDataForSdp;
  46.    
  47.     @Value("${sdp.intgr.sync.stock.dir}")
  48.     private String sdpSyncDirectory;
  49.    
  50.     @Override
  51.     public void execute(Dto inputDto) throws Exception {
  52.         log.info("[TRIGGER] ApprovedDeliveryOrderPostEventFired.beginExecute");
  53.        
  54.         String processName = "sl_submit_do";
  55.         Dto param = inputDto.getDto("param");
  56.        
  57.         log.info("PARAM: " + param.toString());
  58.  
  59.         String processNo = param.getLong("doId").toString() + "_" + inputDto.getString("docNo");
  60.         Long tenantId = inputDto.getLong("tenantId");
  61.         Long userId = inputDto.getLong("userId");
  62.  
  63.         Dto paramDto = new Dto();
  64.  
  65.         // Adding completing message forwarding
  66.         if (MessageForwardingUtil.isForwardEnabled(param)) {
  67.             Dto inputDtoForGenerateAutoNum = new Dto();
  68.             inputDtoForGenerateAutoNum.put("tenantId", tenantId);
  69.             inputDtoForGenerateAutoNum.put("scheme", param.getString("autonumScheme"));
  70.             inputDtoForGenerateAutoNum.put("docDate", param.getString("autonumDocDate"));
  71.             inputDtoForGenerateAutoNum.put("docData", param.getString("autonumDocData"));
  72.             inputDtoForGenerateAutoNum.put("userId", param.getLong("userId"));
  73.             inputDtoForGenerateAutoNum.put("datetime", param.getString("datetime"));
  74.            
  75.             Dto outputDtoForGenerateAutoNum = generateAutoNum.execute(inputDtoForGenerateAutoNum);
  76.            
  77.             Dto paramForwardDto = new Dto();
  78.             paramForwardDto.put(MasterConstants.FORWARD_KEY_LINE_QUEUE, param.getString("forwardLineQueue"));
  79.             paramForwardDto.put(MasterConstants.FORWARD_KEY_PROCESS_NAME, param.getString("forwardProcessName"));
  80.             paramForwardDto.put(MasterConstants.FORWARD_KEY_SEPARATOR + "doId", param.getLong("doId"));
  81.             paramForwardDto.put(MasterConstants.FORWARD_KEY_SEPARATOR + "userId", param.getLong("userId"));
  82.             paramForwardDto.put(MasterConstants.FORWARD_KEY_SEPARATOR + "datetime", param.getString("datetime"));
  83.             paramForwardDto.put(MasterConstants.FORWARD_KEY_SEPARATOR + "autoNumId", outputDtoForGenerateAutoNum.getLong("autoNumId"));
  84.             paramForwardDto.put(MasterConstants.FORWARD_KEY_SEPARATOR + "jobOrderNo", outputDtoForGenerateAutoNum.getString("autoNumValue"));
  85.            
  86.             MessageForwardingUtil.putForwardingData(paramForwardDto, paramDto);
  87.         }
  88.  
  89.         paramDto.put("doId", param.getLong("doId"));
  90.         paramDto.put("userId", param.getLong("userId"));
  91.         paramDto.put("datetime", param.getString("datetime"));
  92.        
  93.         log.info("paramDto: " + paramDto.toString());
  94.  
  95.         Dto paramQueueDto = new Dto();
  96.  
  97.         paramQueueDto.put("processName", processName);
  98.         paramQueueDto.put("processNo", processNo);
  99.         paramQueueDto.put("tenantId", tenantId);
  100.         paramQueueDto.put("parameterDto", paramDto);
  101.         paramQueueDto.put("parameterList", new ArrayList<Dto>());
  102.         paramQueueDto.put("lineQueue", SalesConstants.SALES_LINE_QUEUE);
  103.         paramQueueDto.put("propertiesPath", SalesConstants.SERVER_CONFIG_PATH);
  104.         paramQueueDto.put("userLoginId", userId);
  105.  
  106.         log.info("paramQueueDto: " + paramQueueDto.toString());
  107.  
  108.         log.info("Start sendProcessToQueue: " + DateUtil.dateTimeNow());
  109.  
  110.         sendProcessToQueue.execute(paramQueueDto);
  111.  
  112.         log.info("End sendProcessToQueue: " + DateUtil.dateTimeNow());
  113.  
  114.         // Sync stock to SDP
  115.         // Adrian, Jun 8, 2018
  116.         writeSdpSyncFile(param, tenantId);
  117.        
  118.         log.info("[TRIGGER] ApprovedDeliveryOrderPostEventFired.endExecute");
  119.     }
  120.  
  121.     private void writeSdpSyncFile(Dto param, Long tenantId) throws Exception{
  122.         Long docId = param.getLong("doId");
  123.         Dto outputGetDataForSdp = getDeliveryOrderDataForSdp.execute(new Dto()
  124.                 .put("id", docId).put("tenantId", tenantId));
  125.         log.debug("========================================");
  126.         log.debug("Output SDP data for docId "+docId );
  127.         log.debug(""+outputGetDataForSdp);
  128.         log.debug("========================================");
  129.         if( outputGetDataForSdp!=null && !outputGetDataForSdp.isEmpty() ){
  130.             try{
  131.                 String dateNow = DateUtil.dateNow();
  132.                 String fileName = dateNow+"_"+docId+"_"+System.currentTimeMillis() + ".json";
  133.                        
  134.                 log.debug("sdpSyncDirectory: "+sdpSyncDirectory);
  135.                
  136.                 File fileSync = new File( sdpSyncDirectory + "/" + fileName);
  137.                 IOUtil.writeStringToFile(outputGetDataForSdp.toString(), fileSync);
  138.             } catch(Exception e){
  139.                 log.error("Error write file for SDP sync", e);
  140.             }
  141.         }
  142.     }
  143.    
  144. }
Add Comment
Please, Sign In to add comment