| package com.moral.api.service.impl; | 
|   | 
|   | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.util.ObjectUtils; | 
| import org.springframework.web.context.request.RequestContextHolder; | 
| import org.springframework.web.context.request.ServletRequestAttributes; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.Date; | 
| import java.util.LinkedHashMap; | 
| import java.util.List; | 
| import java.util.Map; | 
| import java.util.Objects; | 
| import javax.servlet.http.HttpServletRequest; | 
|   | 
| import com.alibaba.fastjson.JSONArray; | 
| import com.alibaba.fastjson.JSONObject; | 
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | 
| import com.baomidou.mybatisplus.extension.plugins.pagination.Page; | 
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | 
| import com.moral.api.entity.ResponsibilityUnit; | 
| import com.moral.api.entity.SysArea; | 
| import com.moral.api.mapper.ResponsibilityUnitMapper; | 
| import com.moral.api.pojo.redisBean.AccountInfoDTO; | 
| import com.moral.api.service.ResponsibilityUnitService; | 
| import com.moral.api.service.SysAreaService; | 
| import com.moral.constant.Constants; | 
| import com.moral.util.TokenUtils; | 
|   | 
| @Service | 
| public class ResponsibilityUnitServiceImpl extends ServiceImpl<ResponsibilityUnitMapper, ResponsibilityUnit> implements ResponsibilityUnitService { | 
|   | 
|   | 
|     @Autowired | 
|     private ResponsibilityUnitMapper responsibilityUnitMapper; | 
|     @Autowired | 
|     private SysAreaService  sysAreaService; | 
|   | 
|   | 
|     /** | 
|      * 新增表单 | 
|      * @param responsibilityUnit | 
|      * @return | 
|      */ | 
|     @Override | 
|     public Integer insert(ResponsibilityUnit responsibilityUnit) { | 
|         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); | 
|         String token = request.getHeader("token"); | 
|         AccountInfoDTO accountInfoDTO = (AccountInfoDTO) TokenUtils.getUserInfoByToken(token); | 
|         QueryWrapper<ResponsibilityUnit> wrapper = new QueryWrapper<>(); | 
|         wrapper.eq("unit_name",responsibilityUnit.getUnitName()); | 
|   | 
|         List<ResponsibilityUnit> units = responsibilityUnitMapper.selectList(wrapper); | 
|         if (ObjectUtils.isEmpty(units)){ | 
|             responsibilityUnit.setIsDel(Constants.NOT_DELETE); | 
|             responsibilityUnit.setCreateTime(new Date()); | 
|             responsibilityUnit.setIsInvalid(0); | 
|             responsibilityUnit.setCreateId(accountInfoDTO.getAccount().getId()); | 
|             responsibilityUnit.setCreateName(accountInfoDTO.getAccount().getUserName()); | 
|             responsibilityUnit.setCreateTime(new Date()); | 
|             responsibilityUnit.setUpdateId(accountInfoDTO.getAccount().getId()); | 
|             responsibilityUnit.setUpdateName(accountInfoDTO.getAccount().getUserName()); | 
|             responsibilityUnit.setUpdateTime(new Date()); | 
|             responsibilityUnit.setValue(JSONArray.toJSONString(responsibilityUnit.getParentCodeList())); | 
|             responsibilityUnitMapper.insert(responsibilityUnit); | 
|             return 200; | 
|         } | 
|         return -1; | 
|     } | 
|   | 
|     /** | 
|      * 查询表单 | 
|      * @param parameters | 
|      * @return | 
|      */ | 
|     @Override | 
|     public Map<String, Object> selectUnit(Map<String, Object> parameters) { | 
|         QueryWrapper<ResponsibilityUnit> wrapper = new QueryWrapper<>(); | 
|         wrapper.eq("is_del",Constants.NOT_DELETE); | 
| //        wrapper.eq("is_invalid",0); | 
|         int page = Integer.parseInt(parameters.get("page").toString()); | 
|         int size = Integer.parseInt(parameters.get("size").toString()); | 
|         Object parentName1 = parameters.get("parentCode"); | 
|         Object areaName1 = parameters.get("areaCode"); | 
|         //名称模糊查询 | 
|         if (!ObjectUtils.isEmpty(parameters.get("name"))){ | 
|             wrapper.like("unit_name",parameters.get("name").toString()); | 
|         } | 
|         //上级区域查询 | 
|         if (!ObjectUtils.isEmpty(parentName1)){ | 
|             wrapper.eq("parent_code",Integer.parseInt(parentName1.toString())); | 
|         } | 
|         //所属区域查询 | 
|         if (!ObjectUtils.isEmpty(areaName1)){ | 
|             wrapper.eq("parent_code",Integer.parseInt(areaName1.toString())); | 
|         } | 
|         Page<ResponsibilityUnit> pageList = new Page<>(page, size); | 
|         Page<ResponsibilityUnit> responsibilityUnitPage = responsibilityUnitMapper.selectPage(pageList, wrapper); | 
|         for (ResponsibilityUnit record : responsibilityUnitPage.getRecords()) { | 
|             Integer areaCode = record.getAreaCode(); | 
|             SysArea sysArea= sysAreaService.select(areaCode); | 
|             Integer parentCode = record.getParentCode(); | 
|             SysArea parentArea = sysAreaService.select(parentCode); | 
|             if (ObjectUtils.isEmpty(sysArea) || ObjectUtils.isEmpty(parentArea)){ | 
|                 continue; | 
|             } | 
|             record.setAreaName(sysArea.getAreaName()); | 
|             record.setParentName(parentArea.getAreaName()); | 
|             record.setParentCodeList(JSONObject.parseObject(record.getValue(),List.class)); | 
|         } | 
|         Map<String, Object> result = new LinkedHashMap<>(); | 
|         result.put("total", pageList.getTotal()); | 
|         result.put("totalPage", pageList.getPages()); | 
|         result.put("current", pageList.getCurrent()); | 
|         result.put("pageSize", pageList.getSize()); | 
|         result.put("item", responsibilityUnitPage.getRecords()); | 
| //        responsibilityUnitPage.getOrders() | 
|         return result; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 修改表单 | 
|      * @param responsibilityUnit | 
|      * @return | 
|      */ | 
|     @Override | 
|     public Integer updateUnit(ResponsibilityUnit responsibilityUnit) { | 
|         QueryWrapper<ResponsibilityUnit> wrapper = new QueryWrapper<>(); | 
|         wrapper.eq("unit_name",responsibilityUnit.getUnitName()); | 
|         wrapper.eq("area_code",responsibilityUnit.getAreaCode()); | 
|         ResponsibilityUnit responsibilityUnit2 = responsibilityUnitMapper.selectOne(wrapper); | 
|         if (ObjectUtils.isEmpty(responsibilityUnit2)){ | 
|                 AccountInfoDTO account = getAccount(); | 
|                 responsibilityUnit.setUpdateId(account.getAccount().getId()); | 
|                 responsibilityUnit.setUpdateName(account.getAccount().getUserName()); | 
|                 responsibilityUnit.setUpdateTime(new Date()); | 
|                 responsibilityUnit.setValue(JSONArray.toJSONString(responsibilityUnit.getParentCodeList())); | 
| //                responsibilityUnit.setParentCodeList(JSONObject.parseObject(responsibilityUnit.getValue(),List.class)); | 
|                 responsibilityUnitMapper.updateById(responsibilityUnit); | 
|                 return 200; | 
|         } | 
|         return -1; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 修改状态 | 
|      * | 
|      */ | 
|     @Override | 
|     public void updateState(Integer unitId) { | 
|         ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(unitId); | 
|         responsibilityUnit.setState(Constants.NOT_DELETE); | 
|         AccountInfoDTO account = getAccount(); | 
|         responsibilityUnit.setUpdateId(account.getAccount().getId()); | 
|         responsibilityUnit.setUpdateName(account.getAccount().getUserName()); | 
|         responsibilityUnit.setUpdateTime(new Date()); | 
|         responsibilityUnitMapper.updateById(responsibilityUnit); | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 是否作废 | 
|      * @param unitId | 
|      * @param code | 
|      */ | 
|     @Override | 
|     public void updateInvalid(Integer unitId, String code) { | 
|         ResponsibilityUnit responsibilityUnit = responsibilityUnitMapper.selectById(unitId); | 
|   | 
|         responsibilityUnit.setIsInvalid(1); | 
|         if (!ObjectUtils.isEmpty(code)){ | 
|             responsibilityUnit.setInvalidReason(code); | 
|         } | 
|         AccountInfoDTO account = getAccount(); | 
|         responsibilityUnit.setUpdateId(account.getAccount().getId()); | 
|         responsibilityUnit.setUpdateName(account.getAccount().getUserName()); | 
|         responsibilityUnit.setUpdateTime(new Date()); | 
|         responsibilityUnitMapper.updateById(responsibilityUnit); | 
|   | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 获取用户信息 | 
|      * @return | 
|      */ | 
|     private AccountInfoDTO getAccount(){ | 
|         HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest(); | 
|         String token = request.getHeader("token"); | 
|         AccountInfoDTO accountInfoDTO = (AccountInfoDTO) TokenUtils.getUserInfoByToken(token); | 
|         return accountInfoDTO; | 
|     } | 
| } |