Commit 5b3df9e0 authored by eddie.woo's avatar eddie.woo

merge

parents c4501047 fd4a320a
package pwc.taxtech.atms.dto.vatdto; package pwc.taxtech.atms.dto.vatdto;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Select;
import pwc.taxtech.atms.common.util.MyAsserts; import pwc.taxtech.atms.common.util.MyAsserts;
import pwc.taxtech.atms.entity.Project; import pwc.taxtech.atms.entity.Project;
import pwc.taxtech.atms.entity.Template; import pwc.taxtech.atms.entity.Template;
...@@ -27,9 +34,8 @@ public class WrapPeriodJobDto { ...@@ -27,9 +34,8 @@ public class WrapPeriodJobDto {
job.setProjectId(projectId); job.setProjectId(projectId);
job.setPeriod(period); job.setPeriod(period);
job.setId(UUID.randomUUID().toString()); job.setId(UUID.randomUUID().toString());
job.setStatus(STATUS_BEGIN);
job.setCurrentStep(STEP_UPDATE_CONFIG); job.setCurrentStep(STEP_UPDATE_CONFIG);
setStatus(job,STEP_UPDATE_CONFIG,STATUS_BEGIN);
StringBuilder builder = new StringBuilder(STEP_UPDATE_CONFIG); StringBuilder builder = new StringBuilder(STEP_UPDATE_CONFIG);
templates.forEach(m -> { templates.forEach(m -> {
builder.append(",").append(m.getCode()); builder.append(",").append(m.getCode());
...@@ -38,4 +44,53 @@ public class WrapPeriodJobDto { ...@@ -38,4 +44,53 @@ public class WrapPeriodJobDto {
job.setStepsCode(builder.toString()); job.setStepsCode(builder.toString());
return job; return job;
} }
@Getter
@Setter
public static class Task {
String code;
String status;
}
public static List<Task> fromJson(String taskJson) {
return JSON.parseObject(taskJson, new TypeReference<List<Task>>() {});
}
public static String toJson(List<Task> tasks) {
return JSON.toJSONString(tasks);
}
public static void setStatus(PeriodJob periodJob, String code, String status) {
List<Task> list;
if (StringUtils.isBlank(periodJob.getStatus())) {
list = new ArrayList<>();
} else {
list = fromJson(periodJob.getStatus());
}
Task t = new Task();
t.code = code;
t.status = status;
boolean contains = false;
for (Task m : list) {
if (m.code.equals(t.code)) {
m.status = status;
contains = true;
break;
}
}
if(!contains)list.add(t);
periodJob.setStatus(toJson(list));
}
public static void setStatus(PeriodJob periodJob, String status) {
List<Task> list;
if (StringUtils.isBlank(periodJob.getStatus())) {
list = new ArrayList<>();
} else {
list = fromJson(periodJob.getStatus());
}
list.get(list.size()-1).status=status;
periodJob.setStatus(toJson(list));
}
} }
...@@ -44,6 +44,7 @@ import java.util.stream.Collectors; ...@@ -44,6 +44,7 @@ import java.util.stream.Collectors;
import static pwc.taxtech.atms.common.util.SpringContextUtil.reportMapper; import static pwc.taxtech.atms.common.util.SpringContextUtil.reportMapper;
import static pwc.taxtech.atms.constant.Constant.EMPTY; import static pwc.taxtech.atms.constant.Constant.EMPTY;
import static pwc.taxtech.atms.dto.vatdto.WrapPeriodJobDto.*;
@Component @Component
public class ReportGeneratorImpl { public class ReportGeneratorImpl {
...@@ -86,16 +87,15 @@ public class ReportGeneratorImpl { ...@@ -86,16 +87,15 @@ public class ReportGeneratorImpl {
return periodResources; return periodResources;
} }
@Transactional
public void updateWorkbookCaclsValueToDb(String projectId, Integer period, Workbook workbook, PeriodResources resources, public void updateWorkbookCaclsValueToDb(String projectId, Integer period, Workbook workbook, PeriodResources resources,
Boolean isMergeMunual, PeriodJob job) { Boolean isMergeMunual, PeriodJob job) {
for (int i = 0; i < workbook.getNumberOfSheets(); i++) { for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
Sheet sheet = workbook.getSheetAt(i); Sheet sheet = workbook.getSheetAt(i);
String code = sheet.getSheetName(); String code = sheet.getSheetName();
logger.info("-------------------------------------Begin Job [{}]------------------------------------------------------",code); logger.info("-------------------------------------Begin Job [{}]------------------------------------------------------", code);
job.setCurrentStep(code); setStatus(job,code,STATUS_BEGIN);
periodJobMapper.updateByPrimaryKey(job);
try {
Optional<PeriodTemplate> periodTemplate = resources.getPeriodTemplates().stream() Optional<PeriodTemplate> periodTemplate = resources.getPeriodTemplates().stream()
.filter(a -> a.getCode().equals(code)) .filter(a -> a.getCode().equals(code))
.findFirst(); .findFirst();
...@@ -348,7 +348,7 @@ public class ReportGeneratorImpl { ...@@ -348,7 +348,7 @@ public class ReportGeneratorImpl {
cellDataSource.setProjectId(projectId); cellDataSource.setProjectId(projectId);
SpringContextUtil.periodCellDataSourceMapper.insertSelective(cellDataSource); SpringContextUtil.periodCellDataSourceMapper.insertSelective(cellDataSource);
periodCellDataMapper.updateByPrimaryKeySelective(cellData); periodCellDataMapper.updateByPrimaryKeySelective(cellData);
}else if(cellDataList.isEmpty()){ } else if (cellDataList.isEmpty()) {
PeriodCellData cellData = new PeriodCellData(); PeriodCellData cellData = new PeriodCellData();
Long cellDataId = distributedIdService.nextId(); Long cellDataId = distributedIdService.nextId();
cellData.setId(cellDataId); cellData.setId(cellDataId);
...@@ -376,7 +376,7 @@ public class ReportGeneratorImpl { ...@@ -376,7 +376,7 @@ public class ReportGeneratorImpl {
cellDataSource.setProjectId(projectId); cellDataSource.setProjectId(projectId);
SpringContextUtil.periodCellDataSourceMapper.insertSelective(cellDataSource); SpringContextUtil.periodCellDataSourceMapper.insertSelective(cellDataSource);
periodCellDataMapper.insert(cellData); periodCellDataMapper.insert(cellData);
}else { } else {
logger.warn("should not be !!!"); logger.warn("should not be !!!");
} }
...@@ -385,21 +385,14 @@ public class ReportGeneratorImpl { ...@@ -385,21 +385,14 @@ public class ReportGeneratorImpl {
} }
} }
} }
setStatus(job,code,STATUS_END);
} catch (Exception e) {
e.printStackTrace();
job.setStatus(WrapPeriodJobDto.STATUS_ERROR);
job.setErrorMsg("cacals report for code " + code + " failed with msg "+e.getMessage());
throw e;
} finally {
periodJobMapper.updateByPrimaryKey(job); periodJobMapper.updateByPrimaryKey(job);
} logger.info("-------------------------------------End Job [{}]------------------------------------------------------", code);
logger.info("-------------------------------------End Job [{}]------------------------------------------------------",code);
} }
} }
private List<PeriodReport> createReportsByTemplates(Workbook workbook, List<PeriodTemplate> periodTemplateList, String projectId, Integer period) { private List<PeriodReport> createReportsByTemplates(Workbook
workbook, List<PeriodTemplate> periodTemplateList, String projectId, Integer period) {
List<PeriodReport> reports = new ArrayList<>(); List<PeriodReport> reports = new ArrayList<>();
for (int i = 0; i < workbook.getNumberOfSheets(); i++) { for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
Sheet sheet = workbook.getSheetAt(i); Sheet sheet = workbook.getSheetAt(i);
...@@ -500,14 +493,16 @@ public class ReportGeneratorImpl { ...@@ -500,14 +493,16 @@ public class ReportGeneratorImpl {
return periodTemplateMapper.selectByExample(periodTemplateExample); return periodTemplateMapper.selectByExample(periodTemplateExample);
} }
private List<PeriodCellTemplate> queryPeriodCellTemplates(String projectId, Integer period, List<Long> periodTemplateIdList) { private List<PeriodCellTemplate> queryPeriodCellTemplates(String projectId, Integer
period, List<Long> periodTemplateIdList) {
PeriodCellTemplateExample periodCellTemplateExample = new PeriodCellTemplateExample(); PeriodCellTemplateExample periodCellTemplateExample = new PeriodCellTemplateExample();
if (periodTemplateIdList.isEmpty()) periodTemplateIdList.add(Long.MAX_VALUE); if (periodTemplateIdList.isEmpty()) periodTemplateIdList.add(Long.MAX_VALUE);
periodCellTemplateExample.createCriteria().andProjectIdEqualTo(projectId).andReportTemplateIdIn(periodTemplateIdList).andPeriodEqualTo(period); periodCellTemplateExample.createCriteria().andProjectIdEqualTo(projectId).andReportTemplateIdIn(periodTemplateIdList).andPeriodEqualTo(period);
return periodCellTemplateMapper.selectByExample(periodCellTemplateExample); return periodCellTemplateMapper.selectByExample(periodCellTemplateExample);
} }
private List<PeriodCellTemplateConfig> queryPeriodCellTemplateConfigs(String projectId, Integer period, List<Long> periodTemplateIdList) { private List<PeriodCellTemplateConfig> queryPeriodCellTemplateConfigs(String projectId, Integer
period, List<Long> periodTemplateIdList) {
PeriodCellTemplateConfigExample periodCellTemplateConfigExample = new PeriodCellTemplateConfigExample(); PeriodCellTemplateConfigExample periodCellTemplateConfigExample = new PeriodCellTemplateConfigExample();
periodCellTemplateConfigExample.createCriteria().andProjectIdEqualTo(projectId).andReportTemplateIdIn(periodTemplateIdList).andPeriodEqualTo(period); periodCellTemplateConfigExample.createCriteria().andProjectIdEqualTo(projectId).andReportTemplateIdIn(periodTemplateIdList).andPeriodEqualTo(period);
return periodCellTemplateConfigMapper.selectByExample(periodCellTemplateConfigExample); return periodCellTemplateConfigMapper.selectByExample(periodCellTemplateConfigExample);
...@@ -590,7 +585,8 @@ public class ReportGeneratorImpl { ...@@ -590,7 +585,8 @@ public class ReportGeneratorImpl {
workbook.addToolPack(udfToolpack); workbook.addToolPack(udfToolpack);
} }
public List<CellCalcInfoDto> getCellCalcInfo(List<Long> templateIdList, Integer periodParam, String projectId) { public List<CellCalcInfoDto> getCellCalcInfo(List<Long> templateIdList, Integer periodParam, String
projectId) {
//already finished by 20180711 //already finished by 20180711
int period = 0; int period = 0;
if (periodParam != null) { if (periodParam != null) {
...@@ -633,7 +629,8 @@ public class ReportGeneratorImpl { ...@@ -633,7 +629,8 @@ public class ReportGeneratorImpl {
return cellCalcInfoDtos; return cellCalcInfoDtos;
} }
private void fixedPCTParsedFormula(List<PeriodCellTemplateConfigExtendDto> periodCellTemplateConfigExtendDtos, String projectId, int period) { private void fixedPCTParsedFormula
(List<PeriodCellTemplateConfigExtendDto> periodCellTemplateConfigExtendDtos, String projectId, int period) {
Map<String, List<PCTEntity>> formulaMapToPCT = new HashMap<>(); Map<String, List<PCTEntity>> formulaMapToPCT = new HashMap<>();
Map<PeriodCellTemplateConfig, List<String>> configMapToPCTs = new HashMap<>(); Map<PeriodCellTemplateConfig, List<String>> configMapToPCTs = new HashMap<>();
Set<PCTEntity> parameter = new HashSet<>(); Set<PCTEntity> parameter = new HashSet<>();
......
...@@ -42,6 +42,8 @@ import java.util.regex.Matcher; ...@@ -42,6 +42,8 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static pwc.taxtech.atms.dto.vatdto.WrapPeriodJobDto.*;
@Component @Component
public class ReportServiceImpl { public class ReportServiceImpl {
private final static Logger logger = LoggerFactory.getLogger(ReportServiceImpl.class); private final static Logger logger = LoggerFactory.getLogger(ReportServiceImpl.class);
...@@ -244,24 +246,17 @@ public class ReportServiceImpl { ...@@ -244,24 +246,17 @@ public class ReportServiceImpl {
} }
@Transactional private void updateConfig(String projectId, Integer period, Boolean isMergeManualData, List<Template> templates, PeriodJob job) {
public void updateConfig(String projectId, Integer period, Boolean isMergeManualData, List<Template> templates, PeriodJob job) { setStatus(job, STATUS_BEGIN);
try { periodJobMapper.updateByPrimaryKey(job);
job.setStatus(WrapPeriodJobDto.STATUS_BEGIN);
List<Long> exceptTemplateIds = templateMapper.getIdsForExceptTemplate(); List<Long> exceptTemplateIds = templateMapper.getIdsForExceptTemplate();
clearPeriodData(projectId, period, exceptTemplateIds, isMergeManualData); clearPeriodData(projectId, period, exceptTemplateIds, isMergeManualData);
copyTemplateAndConfigFromAdmin(projectId, templates, period); copyTemplateAndConfigFromAdmin(projectId, templates, period);
} catch (Exception ex) { setStatus(job, STATUS_END);
job.setStatus(WrapPeriodJobDto.STATUS_ERROR);
job.setErrorMsg("error update config with projectId " + projectId + " period" + period);
logger.error(ex.getMessage(), ex);
} finally {
periodJobMapper.updateByPrimaryKey(job); periodJobMapper.updateByPrimaryKey(job);
} }
}
private List<Template> getTemplatesByProjectId(String projectId) { private List<Template> getTemplatesByProjectId(String projectId) {
MyAsserts.assertNotEmpty(projectId, Exceptions.PROJECT_PROJECT_EXCEPTION); MyAsserts.assertNotEmpty(projectId, Exceptions.PROJECT_PROJECT_EXCEPTION);
...@@ -489,13 +484,9 @@ public class ReportServiceImpl { ...@@ -489,13 +484,9 @@ public class ReportServiceImpl {
evaluator.evaluateAll(); evaluator.evaluateAll();
reportGenerator.updateWorkbookCaclsValueToDb(projectId, periodParam, workbook, resources, isMergeManualData, genJob); reportGenerator.updateWorkbookCaclsValueToDb(projectId, periodParam, workbook, resources, isMergeManualData, genJob);
genJob.setStatus(WrapPeriodJobDto.STATUS_END);
periodJobMapper.updateByPrimaryKey(genJob);
} catch (Exception e) { } catch (Exception e) {
genJob.setStatus(WrapPeriodJobDto.STATUS_ERROR); setStatus(genJob, STATUS_ERROR);
genJob.setErrorMsg("Sever error "+e.getMessage()); genJob.setErrorMsg("Sever error " + e.getMessage());
periodJobMapper.updateByPrimaryKey(genJob); periodJobMapper.updateByPrimaryKey(genJob);
e.printStackTrace(); e.printStackTrace();
} }
......
jdbc_url=jdbc:oracle:thin:@10.158.230.144:11521:XE jdbc_url=jdbc:oracle:thin:@10.158.230.144:11521:XE
jdbc_user=TAX_ADMIN jdbc_user=tax_admin_longi
jdbc_password=taxadmin2018 jdbc_password=tax_admin_longi
#jdbc_password=111111 #jdbc_password=111111
jdbc_admin_db=tax_admin jdbc_admin_db=tax_admin_longi
#jdbc_url=jdbc:oracle:thin:@10.158.230.144:11521:XE #jdbc_url=jdbc:oracle:thin:@10.158.230.144:11521:XE
#jdbc_user=tax_admin_longi #jdbc_user=tax_admin_longi
......
...@@ -2579,6 +2579,8 @@ ...@@ -2579,6 +2579,8 @@
$scope.agreeApproval =function(){ $scope.agreeApproval =function(){
vatApproveService.checkTask(vatSessionService.approvalInfo.instanceId,'agreed',$scope.comment).success(function(){ vatApproveService.checkTask(vatSessionService.approvalInfo.instanceId,'agreed',$scope.comment).success(function(){
vatCommonService.setProjectStatus(vatSessionService.project.id, vatSessionService.month, constant.ProjectStatusEnum.Completed
, constant.DictionaryDictKey.WFDataProcess, enums.FinishStatusEnum.Finished);
$("#ApprovalComment").modal('hide'); $("#ApprovalComment").modal('hide');
}); });
} }
......
...@@ -570,6 +570,8 @@ ...@@ -570,6 +570,8 @@
item.status = 'completed'; item.status = 'completed';
if($scope.timer){ if($scope.timer){
$interval.cancel($scope.timer); $interval.cancel($scope.timer);
vatCommonService.setProjectStatus(vatSessionService.project.id, vatSessionService.month, constant.ProjectStatusEnum.Generated
, constant.DictionaryDictKey.WFDataProcess, enums.FinishStatusEnum.Finished);
} }
}else if(job.status == 'Begin'){ }else if(job.status == 'Begin'){
item.status = 'processing'; item.status = 'processing';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment