Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package org.jleaf.erp.sls.services.deliveryorder.triggers;
- import java.io.File;
- import java.util.ArrayList;
- import org.jleaf.core.BusinessFunction;
- import org.jleaf.core.BusinessTransaction;
- import org.jleaf.core.Dto;
- import org.jleaf.erp.master.MasterConstants;
- import org.jleaf.erp.sls.SalesConstants;
- import org.jleaf.erp.sls.services.util.IOUtil;
- import org.jleaf.serviceflow.util.MessageForwardingUtil;
- import org.jleaf.util.DateUtil;
- import org.jleaf.workflow.core.engine.TriggerCall;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Qualifier;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Component;
- /**
- * @author fredie, 02 June 2013
- */
- /**
- * Custom untuk Paloma terkait sync stock SDP
- * modified by Adrian
- * Jun 11, 2018
- */
- @Component("approvedDeliveryOrderPostEventFired")
- public class ApprovedDeliveryOrderPostEventFiredForPaloma implements TriggerCall {
- private final static Logger log = LoggerFactory.getLogger(ApprovedDeliveryOrderPostEventFiredForPaloma.class);
- @Autowired
- @Qualifier("sendProcessToQueue")
- private BusinessTransaction sendProcessToQueue;
- @Autowired
- @Qualifier("generateAutoNum")
- private BusinessTransaction generateAutoNum;
- @Autowired
- @Qualifier("getDeliveryOrderDataForSdp")
- private BusinessFunction getDeliveryOrderDataForSdp;
- @Value("${sdp.intgr.sync.stock.dir}")
- private String sdpSyncDirectory;
- @Override
- public void execute(Dto inputDto) throws Exception {
- log.info("[TRIGGER] ApprovedDeliveryOrderPostEventFired.beginExecute");
- String processName = "sl_submit_do";
- Dto param = inputDto.getDto("param");
- log.info("PARAM: " + param.toString());
- String processNo = param.getLong("doId").toString() + "_" + inputDto.getString("docNo");
- Long tenantId = inputDto.getLong("tenantId");
- Long userId = inputDto.getLong("userId");
- Dto paramDto = new Dto();
- // Adding completing message forwarding
- if (MessageForwardingUtil.isForwardEnabled(param)) {
- Dto inputDtoForGenerateAutoNum = new Dto();
- inputDtoForGenerateAutoNum.put("tenantId", tenantId);
- inputDtoForGenerateAutoNum.put("scheme", param.getString("autonumScheme"));
- inputDtoForGenerateAutoNum.put("docDate", param.getString("autonumDocDate"));
- inputDtoForGenerateAutoNum.put("docData", param.getString("autonumDocData"));
- inputDtoForGenerateAutoNum.put("userId", param.getLong("userId"));
- inputDtoForGenerateAutoNum.put("datetime", param.getString("datetime"));
- Dto outputDtoForGenerateAutoNum = generateAutoNum.execute(inputDtoForGenerateAutoNum);
- Dto paramForwardDto = new Dto();
- paramForwardDto.put(MasterConstants.FORWARD_KEY_LINE_QUEUE, param.getString("forwardLineQueue"));
- paramForwardDto.put(MasterConstants.FORWARD_KEY_PROCESS_NAME, param.getString("forwardProcessName"));
- paramForwardDto.put(MasterConstants.FORWARD_KEY_SEPARATOR + "doId", param.getLong("doId"));
- paramForwardDto.put(MasterConstants.FORWARD_KEY_SEPARATOR + "userId", param.getLong("userId"));
- paramForwardDto.put(MasterConstants.FORWARD_KEY_SEPARATOR + "datetime", param.getString("datetime"));
- paramForwardDto.put(MasterConstants.FORWARD_KEY_SEPARATOR + "autoNumId", outputDtoForGenerateAutoNum.getLong("autoNumId"));
- paramForwardDto.put(MasterConstants.FORWARD_KEY_SEPARATOR + "jobOrderNo", outputDtoForGenerateAutoNum.getString("autoNumValue"));
- MessageForwardingUtil.putForwardingData(paramForwardDto, paramDto);
- }
- paramDto.put("doId", param.getLong("doId"));
- paramDto.put("userId", param.getLong("userId"));
- paramDto.put("datetime", param.getString("datetime"));
- log.info("paramDto: " + paramDto.toString());
- Dto paramQueueDto = new Dto();
- paramQueueDto.put("processName", processName);
- paramQueueDto.put("processNo", processNo);
- paramQueueDto.put("tenantId", tenantId);
- paramQueueDto.put("parameterDto", paramDto);
- paramQueueDto.put("parameterList", new ArrayList<Dto>());
- paramQueueDto.put("lineQueue", SalesConstants.SALES_LINE_QUEUE);
- paramQueueDto.put("propertiesPath", SalesConstants.SERVER_CONFIG_PATH);
- paramQueueDto.put("userLoginId", userId);
- log.info("paramQueueDto: " + paramQueueDto.toString());
- log.info("Start sendProcessToQueue: " + DateUtil.dateTimeNow());
- sendProcessToQueue.execute(paramQueueDto);
- log.info("End sendProcessToQueue: " + DateUtil.dateTimeNow());
- // Sync stock to SDP
- // Adrian, Jun 8, 2018
- writeSdpSyncFile(param, tenantId);
- log.info("[TRIGGER] ApprovedDeliveryOrderPostEventFired.endExecute");
- }
- private void writeSdpSyncFile(Dto param, Long tenantId) throws Exception{
- Long docId = param.getLong("doId");
- Dto outputGetDataForSdp = getDeliveryOrderDataForSdp.execute(new Dto()
- .put("id", docId).put("tenantId", tenantId));
- log.debug("========================================");
- log.debug("Output SDP data for docId "+docId );
- log.debug(""+outputGetDataForSdp);
- log.debug("========================================");
- if( outputGetDataForSdp!=null && !outputGetDataForSdp.isEmpty() ){
- try{
- String dateNow = DateUtil.dateNow();
- String fileName = dateNow+"_"+docId+"_"+System.currentTimeMillis() + ".json";
- log.debug("sdpSyncDirectory: "+sdpSyncDirectory);
- File fileSync = new File( sdpSyncDirectory + "/" + fileName);
- IOUtil.writeStringToFile(outputGetDataForSdp.toString(), fileSync);
- } catch(Exception e){
- log.error("Error write file for SDP sync", e);
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment