14 changed files with 1016 additions and 6 deletions
@ -0,0 +1,124 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.elink.esua.epdc.dto; |
|||
|
|||
import java.io.Serializable; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
import lombok.Data; |
|||
|
|||
|
|||
/** |
|||
* 街道人员目标表 |
|||
* |
|||
* @author zhangyong |
|||
* @since v1.0.0 2020-04-22 |
|||
*/ |
|||
@Data |
|||
public class StreetPersionGoalMonthDTO implements Serializable { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 主键 |
|||
*/ |
|||
private String id; |
|||
|
|||
/** |
|||
* 街道 |
|||
*/ |
|||
private String street; |
|||
|
|||
/** |
|||
* 街道ID |
|||
*/ |
|||
private Long streetId; |
|||
|
|||
/** |
|||
* 年月 |
|||
*/ |
|||
private String monthYear; |
|||
|
|||
/** |
|||
* 群众目标数 |
|||
*/ |
|||
private Integer residentGoalNum; |
|||
|
|||
/** |
|||
* 党员目标数 |
|||
*/ |
|||
private Integer partyGoalNum; |
|||
|
|||
/** |
|||
* 企业目标数 |
|||
*/ |
|||
private Integer companyGoalNum; |
|||
|
|||
/** |
|||
* 乐观锁 |
|||
*/ |
|||
private Integer revision; |
|||
|
|||
/** |
|||
* 创建人 |
|||
*/ |
|||
private String createdBy; |
|||
|
|||
/** |
|||
* 创建时间 |
|||
*/ |
|||
private Date createdTime; |
|||
|
|||
/** |
|||
* 更新人 |
|||
*/ |
|||
private String updatedBy; |
|||
|
|||
/** |
|||
* 更新时间 |
|||
*/ |
|||
private Date updatedTime; |
|||
|
|||
/** |
|||
* 删除标记 |
|||
*/ |
|||
private String delFlag; |
|||
|
|||
// 虚字段
|
|||
|
|||
/** |
|||
* 街道id集合 |
|||
*/ |
|||
private List<Long> streetIdList; |
|||
|
|||
/** |
|||
* 本次要增加目标人数 的key,确定要为那个目标增加人数 |
|||
*/ |
|||
private String personBasicNumberKey; |
|||
|
|||
/** |
|||
* 本次要增加的目标人数 |
|||
*/ |
|||
private int goalNumber; |
|||
|
|||
/** |
|||
* isDisabled = 1 页面按钮:批量设置 不可使用,0可使用 |
|||
*/ |
|||
private String isDisabled; |
|||
} |
@ -0,0 +1,134 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.elink.esua.epdc.controller; |
|||
|
|||
import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; |
|||
import com.elink.esua.epdc.commons.tools.utils.Result; |
|||
import com.elink.esua.epdc.commons.tools.validator.AssertUtils; |
|||
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; |
|||
import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; |
|||
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; |
|||
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; |
|||
import com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO; |
|||
import com.elink.esua.epdc.excel.StreetPersionGoalMonthExcel; |
|||
import com.elink.esua.epdc.service.StreetPersionGoalMonthService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
|
|||
/** |
|||
* 街道人员目标表 |
|||
* |
|||
* @author zhangyong |
|||
* @since v1.0.0 2020-04-22 |
|||
*/ |
|||
@RestController |
|||
@RequestMapping("streetpersiongoalmonth") |
|||
public class StreetPersionGoalMonthController { |
|||
|
|||
@Autowired |
|||
private StreetPersionGoalMonthService streetPersionGoalMonthService; |
|||
|
|||
@GetMapping("{id}") |
|||
public Result<StreetPersionGoalMonthDTO> get(@PathVariable("id") String id){ |
|||
StreetPersionGoalMonthDTO data = streetPersionGoalMonthService.get(id); |
|||
return new Result<StreetPersionGoalMonthDTO>().ok(data); |
|||
} |
|||
|
|||
/** |
|||
* @Description: 新增功能:根据街道人员底数 * 目标比例 = 保存所有街道某个月的群众目标数、党员目标数、企业目标数 |
|||
* @Description: 需要判断 所选月份,目标数是否存在,存在返回错误提示信息。 |
|||
* @Param: [dto] |
|||
* @return: com.elink.esua.epdc.commons.tools.utils.Result |
|||
* @Author: zy |
|||
* @Date: 2020-04-26 |
|||
*/ |
|||
@PostMapping |
|||
public Result save(@RequestBody StreetPersionGoalMonthDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); |
|||
return streetPersionGoalMonthService.save(dto); |
|||
} |
|||
|
|||
@PutMapping |
|||
public Result update(@RequestBody StreetPersionGoalMonthDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); |
|||
streetPersionGoalMonthService.update(dto); |
|||
return new Result(); |
|||
} |
|||
|
|||
@DeleteMapping |
|||
public Result delete(@RequestBody String[] ids){ |
|||
//效验数据
|
|||
AssertUtils.isArrayEmpty(ids, "id"); |
|||
streetPersionGoalMonthService.delete(ids); |
|||
return new Result(); |
|||
} |
|||
|
|||
@GetMapping("export") |
|||
public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws Exception { |
|||
List<StreetPersionGoalMonthDTO> list = streetPersionGoalMonthService.list(params); |
|||
ExcelUtils.exportExcelToTarget(response, null, list, StreetPersionGoalMonthExcel.class); |
|||
} |
|||
|
|||
/** |
|||
* @Description: 获取街道目标表的 街道名称 |
|||
* @Param: [] |
|||
* @return: java.util.List<com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO> |
|||
* @Author: zy |
|||
* @Date: 2020-04-22 |
|||
*/ |
|||
@GetMapping("queryStreetGoalName") |
|||
public Result<List<StreetPersionGoalMonthDTO>> queryStreetGoalName(){ |
|||
List<StreetPersionGoalMonthDTO> streetName = streetPersionGoalMonthService.lisStreetGoalName(); |
|||
return new Result<List<StreetPersionGoalMonthDTO>>().ok(streetName); |
|||
} |
|||
|
|||
/** |
|||
* @Description: 获取街道每月的目标数 |
|||
* @Param: [params] |
|||
* @return: com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.commons.tools.page.PageData<com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO>> |
|||
* @Author: zy |
|||
* @Date: 2020-04-24 |
|||
*/ |
|||
@GetMapping("streetGoalScore") |
|||
public Result<List<Map<String,String>>> streetGoalScore(@RequestParam Map<String, Object> params){ |
|||
List<Map<String,String>> page = streetPersionGoalMonthService.listStreetGoalScore(); |
|||
return new Result<List<Map<String,String>>>().ok(page); |
|||
} |
|||
|
|||
/** |
|||
* @Description: 修改街道某个目标数,根据日期和街道ID |
|||
* @Param: [dto] |
|||
* @return: com.elink.esua.epdc.commons.tools.utils.Result |
|||
* @Author: zy |
|||
* @Date: 2020-04-26 |
|||
*/ |
|||
@PostMapping("updateStreetGoalScore") |
|||
public Result updateStreetGoalScore(@RequestBody StreetPersionGoalMonthDTO dto){ |
|||
//效验数据
|
|||
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); |
|||
streetPersionGoalMonthService.modifyStreetGoalScore(dto); |
|||
return new Result(); |
|||
} |
|||
} |
@ -0,0 +1,90 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.elink.esua.epdc.dao; |
|||
|
|||
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; |
|||
import com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO; |
|||
import com.elink.esua.epdc.dto.StreetPersonBaseDTO; |
|||
import com.elink.esua.epdc.entity.StreetPersionGoalMonthEntity; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* 街道人员目标表 |
|||
* |
|||
* @author zhangyong |
|||
* @since v1.0.0 2020-04-22 |
|||
*/ |
|||
@Mapper |
|||
public interface StreetPersionGoalMonthDao extends BaseDao<StreetPersionGoalMonthEntity> { |
|||
|
|||
/** |
|||
* @Description: 获取街道目标表的 街道名称 |
|||
* @Param: [] |
|||
* @return: java.util.List<com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO> |
|||
* @Author: zy |
|||
* @Date: 2020-04-22 |
|||
*/ |
|||
List<StreetPersionGoalMonthDTO> selectListStreetGoalName(); |
|||
|
|||
/** |
|||
* @Description: 获取街道目标表的 街道目标分数、街道ID、日期 |
|||
* @Param: |
|||
* @return: java.util.List<com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO> |
|||
* @Author: zy |
|||
* @Date: 2020-04-22 |
|||
*/ |
|||
List<StreetPersionGoalMonthDTO> selectListStreetGoalScore(); |
|||
|
|||
/** |
|||
* @Description: 判断所选月份 是否存在 目标数 |
|||
* @Param: [dto] |
|||
* @return: int |
|||
* @Author: zy |
|||
* @Date: 2020-04-26 |
|||
*/ |
|||
int checkTheGoalOfStreetThisMonth(StreetPersionGoalMonthDTO dto); |
|||
|
|||
/** |
|||
* @Description: 修改街道目标数 |
|||
* @Param: [dto] |
|||
* @return: void |
|||
* @Author: zy |
|||
* @Date: 2020-04-26 |
|||
*/ |
|||
void updateStreetGoalScore(StreetPersionGoalMonthDTO dto); |
|||
|
|||
/** |
|||
* @Description: 获取全部的街道、街道id、群众、党员、企业 底数 |
|||
* @Param: [] |
|||
* @return: java.util.List<com.elink.esua.epdc.dto.StreetPersonBaseDTO> |
|||
* @Author: zy |
|||
* @Date: 2020-04-26 |
|||
*/ |
|||
List<StreetPersonBaseDTO> selectListStreetPersonBase(); |
|||
|
|||
/** |
|||
* @Description: 根据街道id、月份 查询街道目标表的主键ID |
|||
* @Param: [entity] |
|||
* @return: java.lang.String |
|||
* @Author: zy |
|||
* @Date: 2020-04-27 |
|||
*/ |
|||
String selectOneStreetGoalId(StreetPersionGoalMonthEntity entity); |
|||
} |
@ -0,0 +1,71 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.elink.esua.epdc.entity; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
|
|||
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity; |
|||
import lombok.Data; |
|||
import lombok.EqualsAndHashCode; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 街道人员目标表 |
|||
* |
|||
* @author zhangyong |
|||
* @since v1.0.0 2020-04-22 |
|||
*/ |
|||
@Data |
|||
@EqualsAndHashCode(callSuper=false) |
|||
@TableName("epdc_street_persion_goal_month") |
|||
public class StreetPersionGoalMonthEntity extends BaseEpdcEntity { |
|||
|
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
/** |
|||
* 街道 |
|||
*/ |
|||
private String street; |
|||
|
|||
/** |
|||
* 街道ID |
|||
*/ |
|||
private Long streetId; |
|||
|
|||
/** |
|||
* 年月 |
|||
*/ |
|||
private String monthYear; |
|||
|
|||
/** |
|||
* 群众目标数 |
|||
*/ |
|||
private Integer residentGoalNum; |
|||
|
|||
/** |
|||
* 党员目标数 |
|||
*/ |
|||
private Integer partyGoalNum; |
|||
|
|||
/** |
|||
* 企业目标数 |
|||
*/ |
|||
private Integer companyGoalNum; |
|||
|
|||
} |
@ -0,0 +1,74 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.elink.esua.epdc.excel; |
|||
|
|||
import cn.afterturn.easypoi.excel.annotation.Excel; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
|
|||
/** |
|||
* 街道人员目标表 |
|||
* |
|||
* @author elink elink@elink-cn.com |
|||
* @since v1.0.0 2020-04-22 |
|||
*/ |
|||
@Data |
|||
public class StreetPersionGoalMonthExcel { |
|||
|
|||
@Excel(name = "主键") |
|||
private String id; |
|||
|
|||
@Excel(name = "街道") |
|||
private String street; |
|||
|
|||
@Excel(name = "街道ID") |
|||
private Long streetId; |
|||
|
|||
@Excel(name = "年月") |
|||
private String monthYear; |
|||
|
|||
@Excel(name = "群众目标数") |
|||
private Integer residentGoalNum; |
|||
|
|||
@Excel(name = "党员目标数") |
|||
private Integer partyGoalNum; |
|||
|
|||
@Excel(name = "企业目标数") |
|||
private Integer companyGoalNum; |
|||
|
|||
@Excel(name = "乐观锁") |
|||
private Integer revision; |
|||
|
|||
@Excel(name = "创建人") |
|||
private String createdBy; |
|||
|
|||
@Excel(name = "创建时间") |
|||
private Date createdTime; |
|||
|
|||
@Excel(name = "更新人") |
|||
private String updatedBy; |
|||
|
|||
@Excel(name = "更新时间") |
|||
private Date updatedTime; |
|||
|
|||
@Excel(name = "删除标记") |
|||
private String delFlag; |
|||
|
|||
|
|||
} |
@ -0,0 +1,47 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.elink.esua.epdc.redis; |
|||
|
|||
import com.elink.esua.epdc.commons.tools.redis.RedisUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
/** |
|||
* 街道人员目标表 |
|||
* |
|||
* @author zhangyong |
|||
* @since v1.0.0 2020-04-22 |
|||
*/ |
|||
@Component |
|||
public class StreetPersionGoalMonthRedis { |
|||
@Autowired |
|||
private RedisUtils redisUtils; |
|||
|
|||
public void delete(Object[] ids) { |
|||
|
|||
} |
|||
|
|||
public void set(){ |
|||
|
|||
} |
|||
|
|||
public String get(String id){ |
|||
return null; |
|||
} |
|||
|
|||
} |
@ -0,0 +1,123 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.elink.esua.epdc.service; |
|||
|
|||
import com.elink.esua.epdc.commons.mybatis.service.BaseService; |
|||
import com.elink.esua.epdc.commons.tools.page.PageData; |
|||
import com.elink.esua.epdc.commons.tools.utils.Result; |
|||
import com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO; |
|||
import com.elink.esua.epdc.entity.StreetPersionGoalMonthEntity; |
|||
|
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
/** |
|||
* 街道人员目标表 |
|||
* |
|||
* @author zhangyong |
|||
* @since v1.0.0 2020-04-22 |
|||
*/ |
|||
public interface StreetPersionGoalMonthService extends BaseService<StreetPersionGoalMonthEntity> { |
|||
|
|||
/** |
|||
* 默认分页 |
|||
* |
|||
* @param params |
|||
* @return PageData<StreetPersionGoalMonthDTO> |
|||
* @author generator |
|||
* @date 2020-04-22 |
|||
*/ |
|||
PageData<StreetPersionGoalMonthDTO> page(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 默认查询 |
|||
* |
|||
* @param params |
|||
* @return java.util.List<StreetPersionGoalMonthDTO> |
|||
* @author generator |
|||
* @date 2020-04-22 |
|||
*/ |
|||
List<StreetPersionGoalMonthDTO> list(Map<String, Object> params); |
|||
|
|||
/** |
|||
* 单条查询 |
|||
* |
|||
* @param id |
|||
* @return StreetPersionGoalMonthDTO |
|||
* @author generator |
|||
* @date 2020-04-22 |
|||
*/ |
|||
StreetPersionGoalMonthDTO get(String id); |
|||
|
|||
/** |
|||
* @Description: 新增功能:根据街道人员底数 * 目标比例 = 保存所有街道某个月的群众目标数、党员目标数、企业目标数 |
|||
* @Description: 需要判断 所选月份,目标数是否存在,存在返回错误提示信息。 |
|||
* @Param: [dto] |
|||
* @return: com.elink.esua.epdc.commons.tools.utils.Result |
|||
* @Author: zy |
|||
* @Date: 2020-04-26 |
|||
*/ |
|||
Result save(StreetPersionGoalMonthDTO dto); |
|||
|
|||
/** |
|||
* 默认更新 |
|||
* |
|||
* @param dto |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-04-22 |
|||
*/ |
|||
void update(StreetPersionGoalMonthDTO dto); |
|||
|
|||
/** |
|||
* 批量删除 |
|||
* |
|||
* @param ids |
|||
* @return void |
|||
* @author generator |
|||
* @date 2020-04-22 |
|||
*/ |
|||
void delete(String[] ids); |
|||
|
|||
/** |
|||
* @Description: 获取街道目标表的 街道名称 |
|||
* @Param: [] |
|||
* @return: java.util.List<com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO> |
|||
* @Author: zy |
|||
* @Date: 2020-04-22 |
|||
*/ |
|||
List<StreetPersionGoalMonthDTO> lisStreetGoalName(); |
|||
|
|||
/** |
|||
* @Description: 获取街道目标表的 街道目标分数、街道ID、日期 |
|||
* @Param: |
|||
* @return: |
|||
* @Author: zy |
|||
* @Date: 2020-04-24 |
|||
*/ |
|||
List<Map<String,String>> listStreetGoalScore(); |
|||
|
|||
/** |
|||
* @Description: 修改街道目标数 |
|||
* @Param: [dto] |
|||
* @return: void |
|||
* @Author: zy |
|||
* @Date: 2020-04-26 |
|||
*/ |
|||
void modifyStreetGoalScore(StreetPersionGoalMonthDTO dto); |
|||
} |
@ -0,0 +1,194 @@ |
|||
/** |
|||
* Copyright 2018 人人开源 https://www.renren.io
|
|||
* <p> |
|||
* This program is free software: you can redistribute it and/or modify |
|||
* it under the terms of the GNU General Public License as published by |
|||
* the Free Software Foundation, either version 3 of the License, or |
|||
* (at your option) any later version. |
|||
* <p> |
|||
* This program is distributed in the hope that it will be useful, |
|||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
* GNU General Public License for more details. |
|||
* <p> |
|||
* You should have received a copy of the GNU General Public License |
|||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
*/ |
|||
|
|||
package com.elink.esua.epdc.service.impl; |
|||
|
|||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; |
|||
import com.elink.esua.epdc.commons.tools.page.PageData; |
|||
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser; |
|||
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; |
|||
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; |
|||
import com.elink.esua.epdc.commons.tools.utils.Result; |
|||
import com.elink.esua.epdc.dao.StreetPersionGoalMonthDao; |
|||
import com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO; |
|||
import com.elink.esua.epdc.dto.StreetPersonBaseDTO; |
|||
import com.elink.esua.epdc.entity.StreetPersionGoalMonthEntity; |
|||
import com.elink.esua.epdc.redis.StreetPersionGoalMonthRedis; |
|||
import com.elink.esua.epdc.service.StreetPersionGoalMonthService; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.util.*; |
|||
|
|||
/** |
|||
* 街道人员目标表 |
|||
* |
|||
* @author zhangyong |
|||
* @since v1.0.0 2020-04-22 |
|||
*/ |
|||
@Service |
|||
public class StreetPersionGoalMonthServiceImpl extends BaseServiceImpl<StreetPersionGoalMonthDao, StreetPersionGoalMonthEntity> implements StreetPersionGoalMonthService { |
|||
|
|||
@Autowired |
|||
private StreetPersionGoalMonthRedis streetPersionGoalMonthRedis; |
|||
|
|||
@Override |
|||
public PageData<StreetPersionGoalMonthDTO> page(Map<String, Object> params) { |
|||
IPage<StreetPersionGoalMonthEntity> page = baseDao.selectPage( |
|||
getPage(params, FieldConstant.CREATED_TIME, false), |
|||
getWrapper(params) |
|||
); |
|||
return getPageData(page, StreetPersionGoalMonthDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
public List<StreetPersionGoalMonthDTO> list(Map<String, Object> params) { |
|||
List<StreetPersionGoalMonthEntity> entityList = baseDao.selectList(getWrapper(params)); |
|||
|
|||
return ConvertUtils.sourceToTarget(entityList, StreetPersionGoalMonthDTO.class); |
|||
} |
|||
|
|||
private QueryWrapper<StreetPersionGoalMonthEntity> getWrapper(Map<String, Object> params){ |
|||
String id = (String)params.get(FieldConstant.ID_HUMP); |
|||
|
|||
QueryWrapper<StreetPersionGoalMonthEntity> wrapper = new QueryWrapper<>(); |
|||
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); |
|||
|
|||
return wrapper; |
|||
} |
|||
|
|||
@Override |
|||
public StreetPersionGoalMonthDTO get(String id) { |
|||
StreetPersionGoalMonthEntity entity = baseDao.selectById(id); |
|||
return ConvertUtils.sourceToTarget(entity, StreetPersionGoalMonthDTO.class); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public Result save(StreetPersionGoalMonthDTO dto) { |
|||
// 判断所选月份 是否存在目标分数
|
|||
int isTargetScore = baseDao.checkTheGoalOfStreetThisMonth(dto); |
|||
if (isTargetScore > 0) { |
|||
return new Result().error("所选月份已设定目标分数,请重新选择月份"); |
|||
} |
|||
// 查询每个街道的人员底数
|
|||
List<StreetPersonBaseDTO> streetBaseScore = baseDao.selectListStreetPersonBase(); |
|||
for (StreetPersonBaseDTO baseDTO :streetBaseScore) { |
|||
// 乘以目标比例,计算 所选月份 的目标数
|
|||
StreetPersionGoalMonthEntity entity = this.streetGoalScoreCount(dto, baseDTO); |
|||
insert(entity); |
|||
} |
|||
return new Result(); |
|||
} |
|||
|
|||
/** |
|||
* @Description: 根据街道人员底数 * 街道目标比例 = 具体目标数 |
|||
* @Param: [dto, baseDTO] |
|||
* @return: com.elink.esua.epdc.entity.StreetPersionGoalMonthEntity |
|||
* @Author: zy |
|||
* @Date: 2020-04-26 |
|||
*/ |
|||
private StreetPersionGoalMonthEntity streetGoalScoreCount(StreetPersionGoalMonthDTO dto, StreetPersonBaseDTO baseDTO) { |
|||
StreetPersionGoalMonthEntity entity = new StreetPersionGoalMonthEntity(); |
|||
entity.setMonthYear(dto.getMonthYear()); |
|||
entity.setStreet(baseDTO.getStreet()); |
|||
entity.setStreetId(baseDTO.getStreetId()); |
|||
int residentGoalNum = Math.round(baseDTO.getResidentBaseNum() * dto.getResidentGoalNum() / 100); |
|||
entity.setResidentGoalNum(residentGoalNum); |
|||
int partyGoalNum = Math.round(baseDTO.getPartyBaseNum() * dto.getPartyGoalNum() / 100); |
|||
entity.setPartyGoalNum(partyGoalNum); |
|||
int companyGoalNum = Math.round(baseDTO.getCompanyBaseNum() * dto.getCompanyGoalNum() / 100); |
|||
entity.setCompanyGoalNum(companyGoalNum); |
|||
return entity; |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void update(StreetPersionGoalMonthDTO dto) { |
|||
// 查询每个街道的人员底数
|
|||
List<StreetPersonBaseDTO> streetBaseScore = baseDao.selectListStreetPersonBase(); |
|||
for (StreetPersonBaseDTO baseDTO :streetBaseScore) { |
|||
// 乘以目标比例,计算 所选月份 的目标数
|
|||
StreetPersionGoalMonthEntity entity = this.streetGoalScoreCount(dto, baseDTO); |
|||
//根据街道id 和 月份 查询 街道目标表id
|
|||
String goalId = baseDao.selectOneStreetGoalId(entity); |
|||
entity.setId(goalId); |
|||
updateById(entity); |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
@Transactional(rollbackFor = Exception.class) |
|||
public void delete(String[] ids) { |
|||
// 逻辑删除(@TableLogic 注解)
|
|||
baseDao.deleteBatchIds(Arrays.asList(ids)); |
|||
} |
|||
|
|||
@Override |
|||
public List<StreetPersionGoalMonthDTO> lisStreetGoalName() { |
|||
List<StreetPersionGoalMonthDTO> streetName = baseDao.selectListStreetGoalName(); //获取街道名称
|
|||
return streetName; |
|||
} |
|||
|
|||
@Override |
|||
public List<Map<String,String>> listStreetGoalScore() { |
|||
List<StreetPersionGoalMonthDTO> data = baseDao.selectListStreetGoalScore(); |
|||
List<Map<String,String>> list = new ArrayList<>(); |
|||
Map<String, String> map = new HashMap<>(); |
|||
String month = ""; //当前循环月份
|
|||
for (StreetPersionGoalMonthDTO dto : data) { |
|||
if(month.equals(dto.getMonthYear())){ |
|||
map = this.splicingStreetGoalScore(map, dto); //拼接街道每月目标数
|
|||
}else{ |
|||
if(map.size() > 0){ |
|||
list.add(map); |
|||
map = new HashMap<>(); |
|||
} |
|||
month = dto.getMonthYear(); //赋值循环新的当前月份
|
|||
map = this.splicingStreetGoalScore(map, dto); //拼接街道每月目标数
|
|||
} |
|||
} |
|||
list.add(map); |
|||
return list; |
|||
} |
|||
|
|||
@Override |
|||
public void modifyStreetGoalScore(StreetPersionGoalMonthDTO dto) { |
|||
dto.setUpdatedBy(SecurityUser.getUserId().toString()); |
|||
baseDao.updateStreetGoalScore(dto); |
|||
} |
|||
|
|||
/** |
|||
* @Description: 拼接街道每月目标数 |
|||
* @Param: [map, dto] |
|||
* @return: java.util.Map<java.lang.String,java.lang.String> |
|||
* @Author: zy |
|||
* @Date: 2020-04-24 |
|||
*/ |
|||
private Map<String, String> splicingStreetGoalScore(Map<String, String> map, StreetPersionGoalMonthDTO dto) { |
|||
map.put("isDisabled", dto.getIsDisabled()); |
|||
map.put("monthYear", dto.getMonthYear()); |
|||
map.put(dto.getStreetId() + "-CompanyGoalNum", dto.getCompanyGoalNum().toString()); |
|||
map.put(dto.getStreetId() + "-ResidentGoalNum", dto.getResidentGoalNum().toString()); |
|||
map.put(dto.getStreetId() + "-PartyGoalNum", dto.getPartyGoalNum().toString()); |
|||
return map; |
|||
} |
|||
} |
@ -0,0 +1,107 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
|
|||
<mapper namespace="com.elink.esua.epdc.dao.StreetPersionGoalMonthDao"> |
|||
|
|||
<resultMap type="com.elink.esua.epdc.entity.StreetPersionGoalMonthEntity" id="streetPersionGoalMonthMap"> |
|||
<result property="id" column="ID"/> |
|||
<result property="street" column="STREET"/> |
|||
<result property="streetId" column="STREET_ID"/> |
|||
<result property="monthYear" column="MONTH_YEAR"/> |
|||
<result property="residentGoalNum" column="RESIDENT_GOAL_NUM"/> |
|||
<result property="partyGoalNum" column="PARTY_GOAL_NUM"/> |
|||
<result property="companyGoalNum" column="COMPANY_GOAL_NUM"/> |
|||
<result property="revision" column="REVISION"/> |
|||
<result property="createdBy" column="CREATED_BY"/> |
|||
<result property="createdTime" column="CREATED_TIME"/> |
|||
<result property="updatedBy" column="UPDATED_BY"/> |
|||
<result property="updatedTime" column="UPDATED_TIME"/> |
|||
<result property="delFlag" column="DEL_FLAG"/> |
|||
</resultMap> |
|||
|
|||
<select id="selectListStreetGoalName" resultType="com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO"> |
|||
SELECT |
|||
DISTINCT STREET, |
|||
STREET_ID |
|||
FROM epdc_street_persion_goal_month |
|||
WHERE DEL_FLAG = 0 |
|||
ORDER BY CREATED_TIME |
|||
</select> |
|||
|
|||
<select id="selectListStreetGoalScore" resultType="com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO"> |
|||
SELECT |
|||
d.ID, |
|||
d.streetId, |
|||
d.STREET, |
|||
d.monthYear, |
|||
d.residentGoalNum, |
|||
d.partyGoalNum, |
|||
d.companyGoalNum, |
|||
CASE |
|||
WHEN d.isDisabled > d.monthYear THEN '0' |
|||
ELSE '1' END isDisabled |
|||
FROM( |
|||
SELECT |
|||
ID, |
|||
STREET_ID streetId, |
|||
STREET, |
|||
MONTH_YEAR monthYear, |
|||
IFNULL(RESIDENT_GOAL_NUM,0) residentGoalNum, |
|||
IFNULL(PARTY_GOAL_NUM,0) partyGoalNum, |
|||
IFNULL(COMPANY_GOAL_NUM,0) companyGoalNum, |
|||
date_format(CURDATE(), '%Y-%m') isDisabled |
|||
FROM |
|||
epdc_street_persion_goal_month |
|||
WHERE |
|||
DEL_FLAG = 0 |
|||
) d |
|||
ORDER BY d.monthYear |
|||
</select> |
|||
|
|||
<update id="updateStreetGoalScore" parameterType="com.elink.esua.epdc.dto.StreetPersionGoalMonthDTO"> |
|||
UPDATE epdc_street_persion_goal_month |
|||
SET |
|||
UPDATED_TIME = NOW(), |
|||
UPDATED_BY = #{updatedBy}, |
|||
<if test='personBasicNumberKey != null and personBasicNumberKey != "" and personBasicNumberKey == "CompanyGoalNum"'> |
|||
COMPANY_GOAL_NUM = #{goalNumber} |
|||
</if> |
|||
<if test='personBasicNumberKey != null and personBasicNumberKey != "" and personBasicNumberKey == "ResidentGoalNum"'> |
|||
RESIDENT_GOAL_NUM = #{goalNumber} |
|||
</if> |
|||
<if test='personBasicNumberKey != null and personBasicNumberKey != "" and personBasicNumberKey == "PartyGoalNum"'> |
|||
PARTY_GOAL_NUM = #{goalNumber} |
|||
</if> |
|||
WHERE MONTH_YEAR = #{monthYear} and STREET_ID = #{streetId} |
|||
</update> |
|||
|
|||
<select id="checkTheGoalOfStreetThisMonth" resultType="int"> |
|||
SELECT |
|||
count(1) |
|||
FROM |
|||
epdc_street_persion_goal_month |
|||
WHERE |
|||
DEL_FLAG = 0 |
|||
AND MONTH_YEAR = #{monthYear} |
|||
</select> |
|||
|
|||
<select id="selectListStreetPersonBase" resultType="com.elink.esua.epdc.dto.StreetPersonBaseDTO"> |
|||
SELECT |
|||
STREET_ID streetId, |
|||
STREET street, |
|||
RESIDENT_BASE_NUM residentBaseNum, |
|||
PARTY_BASE_NUM partyBaseNum, |
|||
COMPANY_BASE_NUM companyBaseNum |
|||
FROM epdc_street_person_base |
|||
WHERE DEL_FLAG = 0 |
|||
</select> |
|||
|
|||
<select id="selectOneStreetGoalId" resultType="String"> |
|||
SELECT |
|||
ID id |
|||
FROM epdc_street_persion_goal_month |
|||
WHERE DEL_FLAG = 0 |
|||
and STREET_ID = #{streetId} |
|||
and MONTH_YEAR = #{monthYear} |
|||
</select> |
|||
</mapper> |
Loading…
Reference in new issue