package platform.modules.government.service; import com.alibaba.fastjson.JSONObject; import com.aliyuncs.exceptions.ClientException; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.apache.poi.ss.formula.functions.T; import org.apache.tomcat.util.bcel.Const; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigurationPackage; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.ModelMap; import org.springframework.util.ObjectUtils; import org.springframework.util.StringUtils; import platform.common.Constant; import platform.common.base.model.DictionaryItem; import platform.common.base.model.Template; import platform.common.base.service.BaseService; import platform.common.base.service.DictionaryItemService; import platform.common.base.service.TemplateService; import platform.common.exception.BaseException; import platform.common.util.AlibabaSMSUtil; import platform.common.util.DateUtil; import platform.common.util.GenerateNoUtil; import platform.common.util.ShiroUtils; import platform.modules.company.entity.ProjectMaterial; import platform.modules.company.entity.ProjectMatters; import platform.modules.company.entity.ProjectProvinces; import platform.modules.company.service.ProjectMaterialService; import platform.modules.company.service.ProjectProvincesService; import platform.modules.government.dao.RetreatOptimizationDao; import platform.modules.government.dto.SearchCondition; import platform.modules.government.entity.*; import platform.modules.sys.entity.*; import platform.modules.sys.service.*; import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.util.StringUtil; import java.util.*; /** * @author kevin * @since 2019/3/14 10:55 AM */ @Service @Transactional public class RetreatOptimizationService extends BaseService { @Autowired private RetreatOptimizationDao retreatOptimizationDao; @Autowired private ProjectMaterialService projectMaterialService; @Autowired private AttachmentService attachmentService; @Autowired private ApprovalService approvalService; @Autowired private TemplateService templateService; @Autowired private UserService userService; @Autowired private DepartmentService departmentService; @Autowired private DictionaryItemService dictionaryItemService; @Autowired private StreetService streetService; @Autowired private MessageService messageService; @Autowired private GroupService groupService; @Autowired private UserGroupService userGroupService; @Autowired private WaitToDoService waitToDoService; /** * 退二优二列表 * * @param condition * @return */ public PageInfo findByCondition(SearchCondition condition) { PageHelper.startPage(condition.getPageNum(), condition.getPageSize()); if (condition.getStreet_id() != null){ condition.setStreet_id(condition.getStreet_id()); } else { condition.setStreet_id(ShiroUtils.getStreetId()); } condition.setUser_type(ShiroUtils.getUserType()); List list = retreatOptimizationDao.findByCondition(condition); if (!ObjectUtils.isEmpty(list)){ for (RetreatOptimization retreatOptimization : list) { Street street = streetService.findById(retreatOptimization.getPlate()); retreatOptimization.setPlateName(street.getName()); //是否可审核 if(null != ShiroUtils.getStreetId()){ //街道用户 if(retreatOptimization.getStatus().equals(Constant.RetreatOptimizationStatus.SUBMIT)){ Group group = groupService.findByNameAndUserType(Constant.RETREAT,null,Constant.UserType.STREET,retreatOptimization.getPlate()); if (null != group) { List userGroups = userGroupService.findByGroupId(group.getId()); for (UserGroup userGroup : userGroups) { if (ShiroUtils.getUserId().equals(userGroup.getUser_id())) { retreatOptimization.setCanAudit(true); } } } } }else{ //政府用户 if(retreatOptimization.getStatus().equals(Constant.RetreatOptimizationStatus.PENDINGRECEIVED)){ Group group = groupService.findByNameAndUserType(Constant.RETREAT,null,Constant.UserType.GOVERNMENT, null); if (null != group) { List userGroups = userGroupService.findByGroupId(group.getId()); for (UserGroup userGroup : userGroups) { if (userGroup.getUser_id().equals(ShiroUtils.getUserId())){ retreatOptimization.setCanAudit(true); break; } } } } } if (retreatOptimization.getStatus().equals(Constant.RetreatOptimizationStatus.REJECT)){ if (retreatOptimization.getCreate_by().equals(ShiroUtils.getUserId())){ retreatOptimization.setCanEdit(true); } } } } return new PageInfo<>(list); } /** * 新建退二优二 * * @param retreatOptimization */ public void saveRetreatOptimization(RetreatOptimization retreatOptimization) { String no = GenerateNoUtil.generateProjectApplyNo(Constant.ProjectNoHeader.RETREAT_OPTIMIZATION); retreatOptimization.setCommit_time(DateUtil.getTimeString(new Date())); retreatOptimization.setStatus(1); retreatOptimization.setNo(no); retreatOptimization.setPlate(ShiroUtils.getStreetId()); retreatOptimization.setIs_read(false); this.insertAndGetId(retreatOptimization); //保存材料 if (retreatOptimization.getMaterials() != null && retreatOptimization.getMaterials().size() > 0){ List