|
@@ -6,6 +6,9 @@ import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
+import cn.com.qmth.examcloud.service.core.dto.OrgDto;
|
|
|
+import cn.com.qmth.examcloud.service.core.entity.ExamSite;
|
|
|
+import cn.com.qmth.examcloud.service.core.repo.ExamSiteRepo;
|
|
|
import cn.com.qmth.examcloud.service.core.service.sync.DataSendService;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -33,40 +36,97 @@ public class OrgService {
|
|
|
@Autowired
|
|
|
UserRepo userRepo;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ ExamSiteRepo examSiteRepo;
|
|
|
+
|
|
|
@Autowired
|
|
|
DataSendService dataSendService;
|
|
|
|
|
|
@Transactional
|
|
|
public List<ExcelError> importLearnCenter(Long orgId, InputStream inputStream) {
|
|
|
- List<Org> list = new ArrayList<Org>();
|
|
|
- Org parentOrg = orgRepo.findOne(orgId);
|
|
|
- ExcelReader excelReader = new ExcelReader(Org.class);
|
|
|
+ ExcelReader excelReader = new ExcelReader(OrgDto.class);
|
|
|
List<ExcelError> excelErrors = excelReader.reader(inputStream, new ExcelReaderHandle() {
|
|
|
@Override
|
|
|
public ExcelError handle(Object obj) {
|
|
|
- Org dto = (Org) obj;
|
|
|
- dto.setRootId(orgId);
|
|
|
- dto.setParentId(orgId);
|
|
|
- dto.setApps(parentOrg.getApps());
|
|
|
- dto.setCreateTime(new Date());
|
|
|
- dto.setEnable(true);
|
|
|
+ OrgDto dto = (OrgDto) obj;
|
|
|
+ dto.setParentId(orgId);
|
|
|
+ dto.setRootId(orgId);
|
|
|
ExcelError error = importCheck(dto);
|
|
|
if (error == null) {
|
|
|
- list.add(dto);
|
|
|
+ saveOrgAndExamSite(dto);
|
|
|
}
|
|
|
return error;
|
|
|
}
|
|
|
});
|
|
|
- orgRepo.save(list);
|
|
|
return excelErrors;
|
|
|
}
|
|
|
|
|
|
- private ExcelError importCheck(Org dto) {
|
|
|
+ private void saveOrgAndExamSite(OrgDto orgDto){
|
|
|
+ Org org = orgRepo.findFirstByParentIdAndCode(orgDto.getParentId(),orgDto.getCode());
|
|
|
+ if(org == null){
|
|
|
+
|
|
|
+ Org tempOrg = orgRepo.save(orgAssembler(orgDto));
|
|
|
+ orgDto.setId(tempOrg.getId());
|
|
|
+ examSiteRepo.save(examSiteAssembler(orgDto));
|
|
|
+
|
|
|
+ }else{
|
|
|
+
|
|
|
+ org.setName(orgDto.getName());
|
|
|
+ org.setContacts(orgDto.getContacts());
|
|
|
+ org.setTelphone(orgDto.getTelphone());
|
|
|
+ orgRepo.save(org);
|
|
|
+
|
|
|
+ orgDto.setId(org.getId());
|
|
|
+ ExamSite examSite = examSiteRepo.findFirstByOrgIdAndCode(org.getId(),orgDto.getExamSiteCode());
|
|
|
+ if(examSite == null){
|
|
|
+ examSiteRepo.save(examSiteAssembler(orgDto));
|
|
|
+ }else{
|
|
|
+ examSite.setName(orgDto.getExamSiteName());
|
|
|
+ examSite.setContacts(orgDto.getContacts());
|
|
|
+ examSite.setTelphone(orgDto.getTelphone());
|
|
|
+ examSiteRepo.save(examSite);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private Org orgAssembler(OrgDto orgDto){
|
|
|
+ Org org = new Org();
|
|
|
+ org.setRootId(orgDto.getRootId());
|
|
|
+ org.setParentId(orgDto.getParentId());
|
|
|
+ org.setCode(orgDto.getCode());
|
|
|
+ org.setName(orgDto.getName());
|
|
|
+ org.setContacts(orgDto.getContacts());
|
|
|
+ org.setTelphone(orgDto.getTelphone());
|
|
|
+ org.setCreateTime(new Date());
|
|
|
+ org.setEnable(true);
|
|
|
+ return org;
|
|
|
+ }
|
|
|
+
|
|
|
+ private ExamSite examSiteAssembler(OrgDto orgDto){
|
|
|
+ ExamSite examSite = new ExamSite();
|
|
|
+ examSite.setCode(orgDto.getExamSiteCode());
|
|
|
+ examSite.setName(orgDto.getExamSiteName());
|
|
|
+ examSite.setOrgId(orgDto.getId());
|
|
|
+ examSite.setContacts(orgDto.getContacts());
|
|
|
+ examSite.setTelphone(orgDto.getTelphone());
|
|
|
+ examSite.setCreateTime(new Date());
|
|
|
+ examSite.setEnable(true);
|
|
|
+ return examSite;
|
|
|
+ }
|
|
|
+
|
|
|
+ private ExcelError importCheck(OrgDto dto) {
|
|
|
if(StringUtils.isEmpty(dto.getCode())){
|
|
|
- return new ExcelError("代码不能为空");
|
|
|
+ return new ExcelError("中心代码不能为空");
|
|
|
}
|
|
|
if(StringUtils.isEmpty(dto.getName())){
|
|
|
- return new ExcelError("名称不能为空");
|
|
|
+ return new ExcelError("中心名称不能为空");
|
|
|
+ }
|
|
|
+ if(StringUtils.isEmpty(dto.getExamSiteCode())){
|
|
|
+ return new ExcelError("考点代码不能为空");
|
|
|
+ }
|
|
|
+ if(StringUtils.isEmpty(dto.getExamSiteName())){
|
|
|
+ return new ExcelError("考点名称不能为空");
|
|
|
}
|
|
|
if(StringUtils.isEmpty(dto.getContacts())){
|
|
|
return new ExcelError("联系人不能为空");
|
|
@@ -74,10 +134,6 @@ public class OrgService {
|
|
|
if(StringUtils.isEmpty(dto.getTelphone())){
|
|
|
return new ExcelError("联系电话不能为空");
|
|
|
}
|
|
|
- Org org = orgRepo.findFirstByParentIdAndCode(dto.getParentId(),dto.getCode());
|
|
|
- if(org!=null){
|
|
|
- return new ExcelError("代码已存在");
|
|
|
- }
|
|
|
return null;
|
|
|
}
|
|
|
|