package cn.timer.api.controller.htzz; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.Lists; import cn.hutool.core.util.StrUtil; import cn.hutool.cron.CronUtil; import cn.hutool.cron.task.Task; import cn.timer.api.bean.admin.AdminAssoTxjlb; import cn.timer.api.bean.htzz.HtzzAdminZzda; import cn.timer.api.bean.htzz.HtzzAssoHtgx; import cn.timer.api.bean.htzz.HtzzAssoZztx; import cn.timer.api.bean.qyzx.businessService.QyzxRemainingQuantity; import cn.timer.api.bean.yggl.YgglMainEmp; import cn.timer.api.config.annotation.CurrentUser; import cn.timer.api.config.annotation.UserBean; import cn.timer.api.dao.htzz.HtzzAdminZzdaMapper; import cn.timer.api.dto.htzz.HtzzQueryDto; import cn.timer.api.dto.htzz.NotifyPersonDto; import cn.timer.api.dto.htzz.QueryNoReadingDto; import cn.timer.api.utils.Result; import cn.timer.api.utils.ResultUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @Api(tags = "7.0合同证照") @RestController @Transactional @RequestMapping(value = "/htzz", produces = { "application/json" }) public class HtzzController { @Autowired private HtzzAdminZzdaMapper htzzAdminZzdaMapper; /** * 新增证件 * * @param userBean * @param htzzAdminZzda 证照档案实体 * @return 新增证件结果 */ @PostMapping("/addzj") @ApiOperation(value = "新增合同证件", httpMethod = "POST", notes = "接口发布说明") public Result<Object> addzj(@CurrentUser UserBean userBean, @RequestBody HtzzAdminZzda zzda) { Integer orgCode = userBean.getOrgCode(); QyzxRemainingQuantity quantity = QyzxRemainingQuantity.builder().build().selectOne( new LambdaQueryWrapper<QyzxRemainingQuantity>().eq(QyzxRemainingQuantity::getOrgCode, orgCode) .eq(QyzxRemainingQuantity::getPmid, 1).gt(QyzxRemainingQuantity::getRemainder, 0)); Date date = null; Integer remainder = null; if (quantity != null) { remainder = quantity.getRemainder(); date = quantity.getExpireDate(); } if (quantity == null || remainder == null || remainder <= 0) { // 判断充了钱没 return ResultUtil.error("请充值后使用短信功能!"); } if (date != null && date.getTime() <= new Date().getTime()) { Logoutput("企业 " + orgCode + " :短信套餐已过期"); return ResultUtil.error("短信套餐已到期!"); } if (zzda.getId() == null) { zzda.setTxkgType(1);//默认开启提醒 } zzda.setLrrid(userBean.getEmpNum()); zzda.setLrsjTime(new Date()); zzda.setOrgCode(orgCode); zzda.setSendingStatus(0);//0:未发;1:已发 zzda.setTemplateId(zzda.getTemplateId());//消息模板id // zzda.insert(); zzda.insertOrUpdate(); /** * 新增通知关系表,每人一个 */ List<NotifyPersonDto> ids = zzda.getIds();//通知人 用户id+手机号码 List<HtzzAssoHtgx> htgxs = Lists.newArrayList(); for (NotifyPersonDto pre : ids) { HtzzAssoHtgx.builder().build().delete(new QueryWrapper<HtzzAssoHtgx>().lambda().eq(HtzzAssoHtgx::getOrgCode, orgCode).eq(HtzzAssoHtgx::getTzrid, pre.getEmpNum()) .eq(HtzzAssoHtgx::getPhone, pre.getPhone())); HtzzAssoHtgx htgx = HtzzAssoHtgx.builder().build(); htgx.setHtid(zzda.getId()); htgx.setTzrid(pre.getEmpNum()); htgx.setName(pre.getEmpName()); htgx.setPhone(pre.getPhone()); htgx.setOrgCode(orgCode); htgx.insert(); htgxs.add(htgx); } HtzzAssoZztx zztx = zzda.getZztx(); zztx.setZzdaId(zzda.getId()); zztx.setOrgCode(orgCode); zztx.setLrrid(userBean.getEmpNum()); zztx.setLrsjTime(new Date()); zztx.insertOrUpdate(); return ResultUtil.datas(zzda, htgxs, "新增证件成功!"); } @GetMapping("/modifytx/{id}") @ApiOperation(value = "修改提醒数据", httpMethod = "GET", notes = "接口发布说明") public Result<Object> modifytx(@CurrentUser UserBean userBean, @PathVariable Integer id) { List<NotifyPersonDto> tzids = new ArrayList<NotifyPersonDto>(); List<HtzzAssoHtgx> httxs = HtzzAssoHtgx.builder().build().selectList(new QueryWrapper<HtzzAssoHtgx>().lambda().eq(HtzzAssoHtgx::getHtid, id)); for(HtzzAssoHtgx gx : httxs) { NotifyPersonDto predto = NotifyPersonDto.builder().build(); predto.setEmpName(gx.getName()); predto.setEmpNum(gx.getTzrid()); predto.setPhone(gx.getPhone()); tzids.add(predto); } HtzzAdminZzda zzda = HtzzAdminZzda.builder().id(id).build().selectById(); HtzzAssoZztx zztx = HtzzAssoZztx.builder().build().selectOne(new QueryWrapper<HtzzAssoZztx>().lambda().eq(HtzzAssoZztx::getZzdaId, id)); zzda.setZztx(zztx); zzda.setIds(tzids); return ResultUtil.data(zzda, "新增成功"); } /** * 按条件搜索(关键字、到期时间) * * @param userBean * @return */ @GetMapping("/queryht") @ApiOperation(value = "按条件搜索(关键字、到期时间)", httpMethod = "GET", notes = "接口发布说明") public Result<Object> queryht(@CurrentUser UserBean userBean, HtzzQueryDto htzzQueryDto) { String e = htzzQueryDto.getEndTime(); String q = htzzQueryDto.getQuery(); Page<HtzzAdminZzda> page = new Page<HtzzAdminZzda>( htzzQueryDto.getCurrentPage() == null ? 1 : htzzQueryDto.getCurrentPage(), htzzQueryDto.getTotalPage() == null ? 10 : htzzQueryDto.getTotalPage()); QueryWrapper<HtzzAdminZzda> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("org_code", userBean.getOrgCode()) .select("id", "zjmc", "czry", "czrdh", "fzrq", "yxdqr", "txkg_type").eq("is_delete", 0) .gt(!StrUtil.hasBlank(e), "yxdqr", !StrUtil.hasBlank(e) ? e : "9999-01-01 00:00:00") .and(!StrUtil.hasBlank(q), wq -> wq.like("zjmc", q).or().like("czry", q)).orderByDesc("lrsj_time"); IPage<HtzzAdminZzda> zPage = HtzzAdminZzda.builder().build().selectPage(page, queryWrapper); List<HtzzAdminZzda> zccrkgls = zPage.getRecords(); zPage.getCurrent(); zPage.getPages(); zPage.getTotal(); zPage.getSize(); return ResultUtil.data(zPage, zccrkgls, "搜索成功"); } /** * 根据id查合同 * * @param id * @return */ @PostMapping(value = "/queryHt/{id}") @ApiOperation(value = "根据id查合同", httpMethod = "POST", notes = "接口发布说明") public Result<Object> queryHt(@CurrentUser UserBean userBean, @PathVariable Integer id) { List<Object> list = new ArrayList<Object>(); list.add(HtzzAdminZzda.builder().build().selectOne(new QueryWrapper<HtzzAdminZzda>() .eq("org_code", userBean.getOrgCode()).eq("is_delete", 0).eq("id", id))); QueryWrapper<HtzzAssoHtgx> q = new QueryWrapper<HtzzAssoHtgx>(); q.select("id", "name").eq("htid", id); List<HtzzAssoHtgx> htgx = HtzzAssoHtgx.builder().build().selectList(q); for (HtzzAssoHtgx gx : htgx) { String name = gx.getName(); list.add(name); } return ResultUtil.data(list); } /** * 根据id删除合同 * * @param id * @return */ @DeleteMapping(value = "/delHt") @ApiOperation(value = "根据id删除合同", httpMethod = "DELETE", notes = "接口发布说明") public Result<Object> delHt(@CurrentUser UserBean userBean, @RequestParam Integer htid) { // 删除提醒关系 HtzzAssoHtgx.builder().build().delete(new QueryWrapper<HtzzAssoHtgx>().eq("org_code", userBean.getOrgCode()).eq("htid", htid)); //删除证照提醒表配置 HtzzAssoZztx.builder().build().delete(new QueryWrapper<HtzzAssoZztx>().lambda().eq(HtzzAssoZztx::getZzdaId, htid)); // 设置证照删除状态 return ResultUtil.data(HtzzAdminZzda.builder().id(htid).isDelete(1).build().updateById()); } /** * 修改提醒状态 * * @param id * @return */ @PostMapping(value = "/changeTx") @ApiOperation(value = "修改提醒状态", httpMethod = "POST", notes = "接口发布说明") public Result<Object> changeTx(@CurrentUser UserBean userBean, @RequestParam Integer htid) { QueryWrapper<HtzzAdminZzda> queryWrapper = new QueryWrapper<>(); queryWrapper.select("txkg_type").eq("id", htid); HtzzAdminZzda zzda = HtzzAdminZzda.builder().build().selectOne(queryWrapper); UpdateWrapper<HtzzAdminZzda> updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("id", htid); HtzzAdminZzda w = HtzzAdminZzda.builder().orgCode(userBean.getOrgCode()).id(htid) .txkgType(zzda.getTxkgType() == 0 ? 1 : 0).build(); htzzAdminZzdaMapper.update(w, updateWrapper); return ResultUtil.success("修改成功"); } /** * 查詢全部員工id、姓名 * * @param id * @return */ @GetMapping(value = "/queryYg") @ApiOperation(value = "查詢全部員工id、姓名", httpMethod = "GET", notes = "接口发布说明") public Result<Object> queryYg(@CurrentUser UserBean userBean) { return ResultUtil.data(YgglMainEmp.builder().build().selectList( new QueryWrapper<YgglMainEmp>().select("emp_num", "name", "phone").eq("org_code", userBean.getOrgCode()))); } @GetMapping(value = "/test") @ApiOperation(value = "test", httpMethod = "GET", notes = "接口发布说明") public Result<Void> test(String schedulingPattern) { CronUtil.schedule("*/2 * * 24 * *", new Task() { @Override public void execute() { Logoutput("start:" + new Date()); } }); CronUtil.setMatchSecond(true); CronUtil.start(); return ResultUtil.success("操作成功"); } @Value("${config-8timer.environmental-science}") public String environmental_science; public void Logoutput(String science) { if(!("pro").equals(environmental_science)) { System.out.println(science); }else { System.out.println(""); } } }