| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- package cn.com.goldenwater.dcproj.service.impl.ducha;
- import cn.com.goldenwater.dcproj.dao.AttInspTypeDao;
- import cn.com.goldenwater.dcproj.dao.BisInspWorkInfoDao;
- import cn.com.goldenwater.dcproj.dao.GeneralInfoDao;
- import cn.com.goldenwater.dcproj.model.AttInspType;
- import cn.com.goldenwater.dcproj.model.BisInspWorkInfo;
- import cn.com.goldenwater.dcproj.model.GwComFile;
- import cn.com.goldenwater.dcproj.model.SttmEntm;
- import cn.com.goldenwater.dcproj.param.BisInspWorkInfoParam;
- import cn.com.goldenwater.dcproj.service.CountTaskService;
- import cn.com.goldenwater.dcproj.service.ErrorService;
- import cn.com.goldenwater.dcproj.service.GwComFileService;
- import cn.com.goldenwater.id.util.UuidUtil;
- import org.apache.commons.io.FileUtils;
- import org.apache.commons.lang3.StringUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Service;
- import javax.servlet.http.HttpServletRequest;
- import java.io.File;
- import java.io.FileInputStream;
- import java.util.List;
- import java.util.concurrent.ExecutorService;
- import java.util.concurrent.Executors;
- @Service
- public class CountTaskServiceImpl implements CountTaskService {
- private Logger logger = LoggerFactory.getLogger(getClass());
- @Autowired
- private GeneralInfoDao generalInfoDao;
- @Autowired
- private BisInspWorkInfoDao inspWorkInfoDao;
- @Autowired
- private AttInspTypeDao attInspTypeDao;
- @Autowired
- private ErrorService errorService;
- @Value("${getFile.prefix}")
- public String prefix;
- @Value("${web.upload-path}")
- public String fileDir;
- @Autowired
- private GwComFileService gwComFileService;
- @Override
- public void countData(String ptype) {
- ExecutorService executorService = Executors.newCachedThreadPool();
- final List<AttInspType> inspTypeList=attInspTypeDao.findList(null);
- for (int i = 0; i < inspTypeList.size(); i++) {
- String code=inspTypeList.get(i).getCode();
- int iType=Integer.parseInt(code);
- Mythread thread=new Mythread(iType+"","");
- // 在未来某个时间执行给定的命令
- executorService.execute(thread);
- }
- executorService.shutdown();
- logger.info("end with count data");
- }
- @Override
- public void washWxPic(HttpServletRequest request) {
- List<GwComFile> gwComFiles =gwComFileService.findLongFileExt();
- if(gwComFiles==null ||gwComFiles.isEmpty()){
- logger.info("无图片需要处理");
- return ;
- }
- logger.info("处理图片数量:"+gwComFiles.size());
- for(GwComFile comFile:gwComFiles){
- String path=comFile.getFilePath().replace(prefix,"");
- String pathFile=fileDir+path;
- File oldFile=new File(pathFile);
- String target=comFile.getId()+"."+comFile.getFileExt();
- String savePath=pathFile.replace(target,"");
- logger.info("savePath-->"+savePath);
- try {
- FileInputStream inputStream=new FileInputStream(oldFile);
- comFile.setFilePath(comFile.getFilePath().replace(comFile.getFileExt(),"png"));
- comFile.setFileExt("png");
- File newFile=new File(savePath, comFile.getId() + ".png" );
- FileUtils.copyInputStreamToFile(inputStream, newFile);
- gwComFileService.update(comFile);
- inputStream.close();
- }catch (Exception e){
- errorService.addError(e,request);
- }
- }
- }
- //创建数据
- private void modeData(String ptype,String province){
- List<BisInspWorkInfo> workInfoList = generalInfoDao.getWorkInfoByPersId(ptype,province);
- if (workInfoList.size() > 0) {
- BisInspWorkInfoParam workInfoParam=new BisInspWorkInfoParam();
- BisInspWorkInfo oldBispWorkInfo=null;
- SttmEntm sttmEntm=null;
- for (BisInspWorkInfo workInfo : workInfoList) {
- if (workInfo.getLon() != null && workInfo.getLat() != null) {
- //获取督查该对象的开始时间和结束时间
- if(StringUtils.isBlank(workInfo.getPersId())){
- continue;
- }
- sttmEntm = generalInfoDao.getMaxSttmEntm(workInfo.getPersId(), workInfo.getLon(), workInfo.getLat());
- if (sttmEntm != null) {
- if(StringUtils.isNotBlank(sttmEntm.getEntm())&& StringUtils.isNotBlank(sttmEntm.getSttm())) {
- workInfo.setSttm(sttmEntm.getSttm());
- workInfo.setEntm(sttmEntm.getEntm());
- workInfo.setId(UuidUtil.uuid());
- workInfoParam.setPersId(workInfo.getPersId());
- workInfoParam.setObjId(workInfo.getObjId());
- oldBispWorkInfo = inspWorkInfoDao.getBy(workInfoParam);
- if (oldBispWorkInfo != null) {
- workInfo.setId(oldBispWorkInfo.getId());
- logger.info("更新操作--->" + workInfo.toString());
- inspWorkInfoDao.update(workInfo);
- } else {
- logger.info("添加操作---->" + workInfo.toString());
- inspWorkInfoDao.insert(workInfo);
- }
- }
- }
- }
- }
- }
- }
- class Mythread implements Runnable{
- private String ptype;
- private String province;
- public Mythread(String ptype,String province){
- this.ptype=ptype;
- this.province=province;
- }
- @Override
- public void run() {
- modeData(ptype,province);
- }
- }
- }
|