| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521 |
- package platform.modules.government.service;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import org.apache.commons.lang3.StringEscapeUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import platform.common.Constant;
- import platform.common.base.model.DictionaryItem;
- import platform.common.base.service.DictionaryItemService;
- import platform.common.util.DateUtil;
- import platform.common.util.MathHepler;
- import platform.common.util.ShiroUtils;
- import platform.modules.build.entity.Company;
- import platform.modules.build.service.CompanyService;
- import platform.modules.company.service.*;
- import platform.modules.government.dto.*;
- import platform.modules.government.entity.ScreenBusinessData;
- import platform.modules.government.entity.ScreenCenterWin;
- import platform.modules.government.entity.ScreenServerData;
- import platform.modules.government.entity.User;
- import platform.modules.home.request.FindRequest;
- import platform.modules.home.response.FindResponseProject;
- import platform.modules.home.response.ListResponse;
- import platform.modules.sys.dao.ActivityDetailDao;
- import platform.modules.sys.entity.ActivityDetail;
- import platform.modules.sys.entity.Approval;
- import platform.modules.sys.entity.Department;
- import platform.modules.sys.service.ApprovalService;
- import platform.modules.sys.service.DepartmentService;
- import platform.modules.sys.web.ResponseMessage;
- import tk.mybatis.mapper.entity.Example;
- import java.time.LocalDate;
- import java.time.format.DateTimeFormatter;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.Iterator;
- import java.util.List;
- @Service
- public class GovScreenService {
- @Autowired
- private CompanyService companyService;
- @Autowired
- private ProjectApplicationService projectApplicationService;
- @Autowired
- private ProjectFillingService projectFillingService;
- @Autowired
- private ProjectIntelligentService projectIntelligentService;
- @Autowired
- private ProjectMattersService projectMattersService;
- @Autowired
- private ProjectProvincesService projectProvincesService;
- @Autowired
- private ApprovalService approvalService;
- @Autowired
- private DepartmentService departmentService;
- @Autowired
- private ActivityDetailDao activityDetailDao;
- @Autowired
- private UserService userService;
- @Autowired
- private ScreenCenterWinService screenCenterWinService;
- @Autowired
- private ScreenBusinessDataService screenBusinessDataService;
- @Autowired
- private ScreenServerDataService screenServerDataService;
- @Autowired
- ProjectDeclarationService projectDeclarationService;
- @Autowired
- DictionaryItemService dictionaryItemService;
- public List<StreetCompanys> getStreetCompanys() {
- // List<StreetCompanys> companysList = new ArrayList<>();
- // if (isCustomize()){
- // List<ScreenBusinessData> screenBusinessDataList = findScreenBusinessDate(3);
- // if (screenBusinessDataList != null && screenBusinessDataList.size() > 0){
- // for (ScreenBusinessData businessData : screenBusinessDataList){
- // StreetCompanys streetCompanys = new StreetCompanys();
- // streetCompanys.setCompanyNum(businessData.getCompanyNum().toString());
- // streetCompanys.setStreetName(businessData.getStreetName());
- // companysList.add(streetCompanys);
- // }
- // }
- // }
- // else {
- // companysList = companyService.getStreetCompanys();
- // }
- return companyService.getStreetCompanys();
- }
- public Integer getTotalCompanys() {
- List<Company> companyList = companyService.getTotalCompanys();
- return companyList.size();
- }
- public GovScreenDto getBusiness() {
- GovScreenDto govScreenDto = new GovScreenDto();
- if (isCustomize()) {
- ScreenServerData screenServerData = findScreenServerDate();
- govScreenDto.setProjectNum(screenServerData.getProjectNum());
- govScreenDto.setFillingNum(screenServerData.getFillingNum());
- govScreenDto.setInteligentNum(screenServerData.getInteligentNum());
- govScreenDto.setMattersNum(screenServerData.getMattersNum());
- govScreenDto.setProvincesNum(screenServerData.getProvincesNum());
- } else {
- govScreenDto.setProjectNum(projectApplicationService.getProjectNum());
- govScreenDto.setFillingNum(projectFillingService.getFillingNum());
- govScreenDto.setInteligentNum(projectIntelligentService.getIntelligentNum());
- govScreenDto.setMattersNum(projectMattersService.getMattersNum());
- govScreenDto.setProvincesNum(projectProvincesService.getProvincesNum());
- }
- return govScreenDto;
- }
- public GovScreenDto getCenterBusiness(String department) {
- GovScreenDto govScreenDto = new GovScreenDto();
- if (isCustomize()) {
- ScreenServerData screenServerData = findScreenServerDate();
- govScreenDto.setProjectNum(screenServerData.getProjectServiceNum());
- govScreenDto.setMattersNum(screenServerData.getMattersServiceNum());
- govScreenDto.setFillingNum(screenServerData.getFillingServiceNum());
- govScreenDto.setProvincesNum(screenServerData.getProvincesServiceNum());
- } else {
- Department dep = departmentService.findByDepartmentName(department);
- govScreenDto.setProjectNum(projectApplicationService.getprojectDecNum(dep.getId()) +
- projectIntelligentService.getIntelligentDecNum(dep.getId()));
- govScreenDto.setFillingNum(projectMattersService.getProjectServiceTypeNum(2));
- govScreenDto.setMattersNum(projectMattersService.getProjectServiceTypeNum(3));
- govScreenDto.setProvincesNum(projectMattersService.getProjectServiceTypeNum(1));
- }
- return govScreenDto;
- }
- public GovScreenDto getBusinessVolume(BusinessSearchDto businessSearchDto) {
- GovScreenDto govScreenDto = new GovScreenDto();
- // int businessVolume = approvalService.getBusinessVolume(businessSearchDto);
- int businessVolume = approvalService.getBusinessAcceptNum(businessSearchDto);
- ScreenServerData screenServerData = findScreenServerDate();
- //受理业务量
- if (businessSearchDto.getAccept()) {
- if (isCustomize()) {
- if (businessSearchDto.getWeek()) {
- govScreenDto.setBusinessVolume(screenServerData.getWeekAccept());
- }
- if (businessSearchDto.getMonth()) {
- govScreenDto.setBusinessVolume(screenServerData.getMonthAccept());
- }
- } else {
- govScreenDto.setBusinessVolume(businessVolume);
- }
- }
- //办理业务量
- if (businessSearchDto.getHandle()) {
- // if (isCustomize()){
- // if (businessSearchDto.getWeek()){
- // govScreenDto.setBusinessVolume(screenServerData.getWeekAccept());
- // }
- // if (businessSearchDto.getMonth()){
- // govScreenDto.setBusinessVolume(screenServerData.getMonthAccept());
- // }
- // }
- // else {
- businessSearchDto.setStatus("1");
- int undoVolume = approvalService.getBusinessVolume(businessSearchDto);
- govScreenDto.setBusinessVolume(businessVolume - undoVolume);
- // }
- }
- return govScreenDto;
- }
- public GovScreenDto getWeekBusinessDistributed() {
- List<CenterBusiness> businessList = new ArrayList<>();
- GovScreenDto govScreenDto = new GovScreenDto();
- BusinessSearchDto businessSearchDto = new BusinessSearchDto();
- businessSearchDto.setMonth(true);
- businessSearchDto.setDepartment(Constant.DepartmentName.CENTER);
- //自定义数据
- if (isCustomize()) {
- List<ScreenBusinessData> screenBusinessDataList = findScreenBusinessDate(1);
- if (screenBusinessDataList != null && screenBusinessDataList.size() > 0) {
- for (ScreenBusinessData businessData : screenBusinessDataList) {
- CenterBusiness centerBusiness = new CenterBusiness();
- centerBusiness.setType(businessData.getType());
- centerBusiness.setBusinessNum(businessData.getBusinessNum());
- businessList.add(centerBusiness);
- }
- }
- } else {
- int projectAcceptVnme = projectApplicationService.getProjectAcceptVolume(businessSearchDto).size();
- businessList.add(new CenterBusiness("区资金扶持", projectAcceptVnme));
- int fillingAcceptVolume = projectFillingService.getFillingacceptVolume(businessSearchDto).size();
- businessList.add(new CenterBusiness("报表填报", fillingAcceptVolume));
- int mattersAcceptVolume = projectMattersService.getMattersAcceptVolume(businessSearchDto).size();
- businessList.add(new CenterBusiness("服务事项", mattersAcceptVolume));
- int intelligentAcceptVolume = projectIntelligentService.getIntelligentAcceptVolume(businessSearchDto).size();
- businessList.add(new CenterBusiness("区智能制造", intelligentAcceptVolume));
- int provincesAcceptVolume = projectProvincesService.getProvincesAcceptVolume(businessSearchDto).size();
- businessList.add(new CenterBusiness("省市申报", provincesAcceptVolume));
- //中心受理业务数
- int businessVolume = approvalService.getBusinessVolume(businessSearchDto);
- //中心窗口未处理业务
- businessSearchDto.setStatus("1");
- int unprocessed = approvalService.getBusinessVolume(businessSearchDto);
- govScreenDto.setCenterDoneNum(businessVolume - unprocessed);
- businessList.add(new CenterBusiness("业务已办理", businessVolume - unprocessed));
- govScreenDto.setCenterUndoNum(unprocessed);
- businessList.add(new CenterBusiness("业务未办理", unprocessed));
- }
- govScreenDto.setCenterBusinesses(businessList);
- return govScreenDto;
- }
- public List<ActivityDetail> getHotActivity() {
- return activityDetailDao.getHotActivity();
- }
- public List<CenterBusiness> getBusinessHandleRate(BusinessSearchDto businessSearchDto) {
- businessSearchDto.setDepartment(Constant.DepartmentName.CENTER);
- List<CenterBusiness> businessList = approvalService.getCenterBusiness(businessSearchDto);
- //未处理业务量
- businessSearchDto.setStatus("1");
- List<CenterBusiness> undoList = approvalService.getCenterBusiness(businessSearchDto);
- if (businessList != null && businessList.size() > 0) {
- for (CenterBusiness business : businessList) {
- if (business.getType().equals(Constant.DictionaryType.PROJECT_APPLICATION)) {
- business.setType("区资金扶持");
- }
- if (business.getType().equals(Constant.DictionaryType.PROJECT_INTELLIGENT)) {
- business.setType("区智能制造");
- }
- if (business.getType().equals(Constant.DictionaryType.PROJECT_FILLING)) {
- business.setType("报表填报");
- }
- if (undoList != null && undoList.size() > 0) {
- for (CenterBusiness undoBusiness : undoList) {
- if (business.getType().equals(undoBusiness.getType())) {
- int handleNum = business.getBusinessNum() - undoBusiness.getBusinessNum();
- business.setHandleNum(handleNum);
- business.setUndoNum(undoBusiness.getBusinessNum());
- business.setRate(MathHepler.div(business.getBusinessNum(), handleNum, 2) * 100);
- }
- }
- } else {
- business.setHandleNum(business.getBusinessNum());
- business.setUndoNum(0);
- business.setRate(100d);
- }
- }
- }
- return businessList;
- }
- public List<CenterWindow> getWindowBusiness(BusinessSearchDto businessSearchDto) {
- List<CenterWindow> centerWindowList = new ArrayList<>();
- Department department = departmentService.findByDepartmentName(Constant.DepartmentName.CENTER);
- if (department != null) {
- //自定义数据
- if (isCustomize()) {
- List<ScreenCenterWin> screenCenterWinList = getScreenCenterWin();
- if (screenCenterWinList != null && screenCenterWinList.size() > 0) {
- for (ScreenCenterWin screenCenterWin : screenCenterWinList) {
- CenterWindow centerWindow = new CenterWindow();
- centerWindow.setWindowName(screenCenterWin.getWindowName());
- centerWindow.setProjectNum(screenCenterWin.getProjectNum());
- centerWindow.setFillingNum(screenCenterWin.getFillingNum());
- centerWindow.setInteligentNum(screenCenterWin.getInteligentNum());
- centerWindow.setProvincesNum(screenCenterWin.getProvincesNum());
- centerWindow.setMattersNum(screenCenterWin.getMattersNum());
- centerWindowList.add(centerWindow);
- }
- }
- } else {
- List<Department> departmentList = departmentService.findByPid(department.getId());
- if (departmentList != null && departmentList.size() > 0) {
- for (Department dep : departmentList) {
- List<User> userList = userService.getUserByDepartment(dep.getId());
- if (userList != null && userList.size() > 0) {
- int userId = userList.get(0).getId();
- businessSearchDto.setUserId(userId);
- }
- CenterWindow centerWindow = approvalService.getWindowBusiness(businessSearchDto);
- centerWindow.setWindowName(dep.getName());
- centerWindowList.add(centerWindow);
- }
- }
- }
- }
- return centerWindowList;
- }
- public List<CenterWindow> getMonthStatistical(BusinessSearchDto businessSearchDto) {
- List<CenterWindow> centerWindowList = new ArrayList<>();
- if (businessSearchDto.getMonth()) {
- CenterWindow weekOne = approvalService.getMonthStatistical(businessSearchDto, 0);
- weekOne.setXname("第四周");
- CenterWindow weekTwo = approvalService.getMonthStatistical(businessSearchDto, 1);
- weekTwo.setXname("第三周");
- CenterWindow weekThree = approvalService.getMonthStatistical(businessSearchDto, 2);
- weekThree.setXname("第二周");
- CenterWindow weekFour = approvalService.getMonthStatistical(businessSearchDto, 3);
- weekFour.setXname("第一周");
- centerWindowList.add(weekOne);
- centerWindowList.add(weekTwo);
- centerWindowList.add(weekThree);
- centerWindowList.add(weekFour);
- }
- if (businessSearchDto.getYear()) {
- CenterWindow quarterOne = approvalService.getMonthStatistical(businessSearchDto, 0);
- quarterOne.setXname("四季度");
- CenterWindow quarterTwo = approvalService.getMonthStatistical(businessSearchDto, 1);
- quarterTwo.setXname("三季度");
- CenterWindow quarterThree = approvalService.getMonthStatistical(businessSearchDto, 2);
- quarterThree.setXname("二季度");
- CenterWindow quarterFour = approvalService.getMonthStatistical(businessSearchDto, 3);
- quarterFour.setXname("一季度");
- centerWindowList.add(quarterOne);
- centerWindowList.add(quarterTwo);
- centerWindowList.add(quarterThree);
- centerWindowList.add(quarterFour);
- }
- return centerWindowList;
- }
- public List<CenterWindow> getNear3MonthStatistical() {
- List<CenterWindow> centerWindowList = new ArrayList<>();
- if (isCustomize()) {
- List<ScreenBusinessData> screenBusinessDataList = findScreenBusinessDate(2);
- if (screenBusinessDataList != null && screenBusinessDataList.size() > 0) {
- for (ScreenBusinessData businessData : screenBusinessDataList) {
- CenterWindow centerWindow = new CenterWindow();
- centerWindow.setXname(businessData.getXname());
- centerWindow.setTotalBusinessNum(businessData.getTotalBusinessNum());
- centerWindowList.add(centerWindow);
- }
- }
- } else {
- //获取当前月份
- for (int i = 2; i >= 0; i--) {
- LocalDate today = LocalDate.now();
- today = today.minusMonths(i);
- DateTimeFormatter formatters = DateTimeFormatter.ofPattern("M");
- List<Approval> baseEntityList = approvalService.getNear3MonthStatistical(i);
- CenterWindow centerWindow = new CenterWindow();
- centerWindow.setTotalBusinessNum(baseEntityList.size());
- centerWindowList.add(centerWindow);
- centerWindow.setXname(formatters.format(today) + "月份");
- }
- }
- return centerWindowList;
- }
- public static void main(String[] args) {
- for (int i = 0; i <= 2; i++) {
- System.out.println(i);
- LocalDate today = LocalDate.now();
- DateTimeFormatter formatters = DateTimeFormatter.ofPattern("M");
- today = today.minusMonths(i);
- System.out.println(formatters.format(today));
- }
- }
- public void saveScreenCenterWin(ScreenCenterWin screenCenterWin) {
- screenCenterWin.setCreate_time(DateUtil.getTimeString(new Date()));
- screenCenterWin.setCreate_by(ShiroUtils.getUserId());
- screenCenterWin.setCreate_name(ShiroUtils.getUserName());
- screenCenterWinService.saveScreenCenterWin(screenCenterWin);
- }
- public List<ScreenCenterWin> getScreenCenterWin() {
- Example example = new Example(ScreenCenterWin.class);
- Example.Criteria criteria = example.createCriteria();
- criteria.andEqualTo("del_flag", 0);
- return screenCenterWinService.selectByExample(example);
- }
- /**
- * 保存自定义数据
- *
- * @param serverData
- * @param businessArr
- * @param centerArr
- */
- public void saveDataMange(String serverData, String businessArr, String centerArr) {
- //将" 转义回双引号("")
- String data = StringEscapeUtils.unescapeHtml4(centerArr);
- //本月窗口业务量
- //遍历JSONArray对象
- JSONArray array = JSONArray.parseArray(data);
- for (Iterator iterator = array.iterator(); iterator.hasNext(); ) {
- JSONObject jsonObject = (JSONObject) iterator.next();
- //JSONObject转换为JavaBean对象
- ScreenCenterWin screenCenterWin = JSON.parseObject(String.valueOf(jsonObject), ScreenCenterWin.class);
- if (screenCenterWin.getId() != null) {
- screenCenterWinService.updateSelective(screenCenterWin);
- } else {
- screenCenterWinService.insertAndGetId(screenCenterWin);
- }
- }
- //街道企业、近三个月业务数量、本月各类型业务占比
- String business = StringEscapeUtils.unescapeHtml4(businessArr);
- JSONArray businessArray = JSONArray.parseArray(business);
- for (Iterator iterator = businessArray.iterator(); iterator.hasNext(); ) {
- JSONObject jsonObject = (JSONObject) iterator.next();
- //JSONObject转换为JavaBean对象
- ScreenBusinessData screenBusinessData = JSON.parseObject(String.valueOf(jsonObject), ScreenBusinessData.class);
- if (screenBusinessData.getId() != null) {
- screenBusinessDataService.updateSelective(screenBusinessData);
- } else {
- screenBusinessDataService.insertAndGetId(screenBusinessData);
- }
- }
- //中心窗口服务事项、中心窗口服务业务总量、总企业数
- String server = StringEscapeUtils.unescapeHtml4(serverData);
- ScreenServerData screenServerData = JSON.parseObject(server, ScreenServerData.class);
- if (screenServerData.getId() != null) {
- screenServerDataService.updateSelective(screenServerData);
- } else {
- screenServerDataService.insertAndGetId(screenServerData);
- }
- }
- public ScreenServerData findScreenServerDate() {
- Example example = new Example(ScreenServerData.class);
- Example.Criteria criteria = example.createCriteria();
- criteria.andEqualTo("del_flag", 0);
- List<ScreenServerData> screenServerDataList = screenServerDataService.selectByExample(example);
- if (screenServerDataList != null && screenServerDataList.size() > 0) {
- return screenServerDataList.get(0);
- }
- return new ScreenServerData();
- }
- public List<ScreenBusinessData> findScreenBusinessDate(Integer type) {
- Example example = new Example(ScreenBusinessData.class);
- Example.Criteria criteria = example.createCriteria();
- criteria.andEqualTo("del_flag", 0);
- if (type != null) {
- criteria.andEqualTo("tableType", type);
- }
- List<ScreenBusinessData> screenBusinessDataList = screenBusinessDataService.selectByExample(example);
- if (screenBusinessDataList != null && screenBusinessDataList.size() > 0) {
- return screenBusinessDataList;
- }
- return null;
- }
- /**
- * 是否使用自定义数据
- *
- * @return
- */
- public boolean isCustomize() {
- Boolean isCustomize = false;
- ScreenServerData screenServerData = findScreenServerDate();
- if (screenServerData.getCustomize()) {
- isCustomize = true;
- }
- return isCustomize;
- }
- public void saveCustomize(Integer id, Integer customize) {
- ScreenServerData screenServerData = new ScreenServerData();
- if (id != null) {
- screenServerData.setId(id);
- if (customize == 1) {
- screenServerData.setCustomize(true);
- } else {
- screenServerData.setCustomize(false);
- }
- screenServerDataService.updateSelective(screenServerData);
- } else {
- if (customize == 1) {
- screenServerData.setCustomize(true);
- } else {
- screenServerData.setCustomize(false);
- }
- screenServerDataService.insertAndGetId(screenServerData);
- }
- }
- public Object findProject(FindRequest request) {
- FindResponseProject ret = projectDeclarationService.findProejctsOnHome(request);
- List<DictionaryItem> projectSourceList = dictionaryItemService.findListByTypeName(Constant.DictionaryType.PROJECT_SOURCE);
- List<DictionaryItem> projectStatusList = dictionaryItemService.findListByTypeName(Constant.DictionaryType.PROJECT_STATUS);
- ret.setProjectSourceList(projectSourceList);
- ret.setProjectStatusList(projectStatusList);
- return ret;
- }
- }
|