diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/controller/PreExaminationMattersFieldController.java b/service-management-system/src/main/java/org/jeecg/modules/ai/controller/PreExaminationMattersFieldController.java new file mode 100644 index 0000000..c6c9da4 --- /dev/null +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/controller/PreExaminationMattersFieldController.java @@ -0,0 +1,206 @@ +package org.jeecg.modules.ai.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.ai.entity.PreExaminationMattersField; +import org.jeecg.modules.ai.qo.PreExaminationMattersFieldQuery; +import org.jeecg.modules.ai.service.IPreExaminationMattersFieldService; +import org.jeecg.modules.ai.vo.PreExaminationMattersFieldVo; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 事项表单回显字段与材料对应关系表 + * @Author: jeecg-boot + * @Date: 2023-11-29 + * @Version: V1.0 + */ +@Api(tags="事项表单回显字段与材料对应关系表") +@RestController +@RequestMapping("/ai/preExaminationMattersField") +@Slf4j +public class PreExaminationMattersFieldController extends JeecgController { + @Autowired + private IPreExaminationMattersFieldService preExaminationMattersFieldService; + + /** + * 分页列表查询 + * + * @param preExaminationMattersField + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "事项表单回显字段与材料对应关系表-分页列表查询") + @ApiOperation(value="事项表单回显字段与材料对应关系表-分页列表查询", notes="事项表单回显字段与材料对应关系表-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(PreExaminationMattersField preExaminationMattersField, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(preExaminationMattersField, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = preExaminationMattersFieldService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 分页列表查询 + * + * @param preExaminationMattersField + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "事项表单回显字段与材料对应关系表") + @ApiOperation(value="事项表单回显字段与材料对应关系表", notes="事项表单回显字段与材料对应关系表") + @GetMapping(value = "/list") + public Result queryList(PreExaminationMattersFieldQuery query, + HttpServletRequest req) { + List list = preExaminationMattersFieldService.getPreExaminationMattersFieldListByEvent(query); + return Result.OK(list); + } + + /** + * 添加 + * + * @param preExaminationMattersField + * @return + */ + @AutoLog(value = "事项表单回显字段与材料对应关系表-添加") + @ApiOperation(value="事项表单回显字段与材料对应关系表-添加", notes="事项表单回显字段与材料对应关系表-添加") + @PostMapping(value = "/saveInfo") + public Result saveInfo(@RequestBody String reviewInfo) { + preExaminationMattersFieldService.saveInfo(reviewInfo); + return Result.OK("添加成功!"); + } + + /** + * 添加 + * + * @param preExaminationMattersField + * @return + */ + @AutoLog(value = "事项表单回显字段与材料对应关系表-添加") + @ApiOperation(value="事项表单回显字段与材料对应关系表-添加", notes="事项表单回显字段与材料对应关系表-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody PreExaminationMattersField preExaminationMattersField) { + preExaminationMattersFieldService.save(preExaminationMattersField); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param preExaminationMattersField + * @return + */ + @AutoLog(value = "事项表单回显字段与材料对应关系表-编辑") + @ApiOperation(value="事项表单回显字段与材料对应关系表-编辑", notes="事项表单回显字段与材料对应关系表-编辑") + @PostMapping(value = "/edit") + public Result edit(@RequestBody PreExaminationMattersField preExaminationMattersField) { + preExaminationMattersFieldService.updateById(preExaminationMattersField); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "事项表单回显字段与材料对应关系表-通过id删除") + @ApiOperation(value="事项表单回显字段与材料对应关系表-通过id删除", notes="事项表单回显字段与材料对应关系表-通过id删除") + @PostMapping(value = "/delete") + public Result delete(@RequestBody PreExaminationMattersField preExaminationMattersField) { + preExaminationMattersFieldService.removeById(preExaminationMattersField.getId()); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "事项表单回显字段与材料对应关系表-批量删除") + @ApiOperation(value="事项表单回显字段与材料对应关系表-批量删除", notes="事项表单回显字段与材料对应关系表-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.preExaminationMattersFieldService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("批量删除成功!"); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @AutoLog(value = "事项表单回显字段与材料对应关系表-通过id查询") + @ApiOperation(value="事项表单回显字段与材料对应关系表-通过id查询", notes="事项表单回显字段与材料对应关系表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + PreExaminationMattersField preExaminationMattersField = preExaminationMattersFieldService.getById(id); + if(preExaminationMattersField==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(preExaminationMattersField); + } + + /** + * 导出excel + * + * @param request + * @param preExaminationMattersField + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, PreExaminationMattersField preExaminationMattersField) { + return super.exportXls(request, preExaminationMattersField, PreExaminationMattersField.class, "事项表单回显字段与材料对应关系表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, PreExaminationMattersField.class); + } + +} diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/controller/PreReviewMaterialController.java b/service-management-system/src/main/java/org/jeecg/modules/ai/controller/PreReviewMaterialController.java index 4a66b8a..f1b63ff 100644 --- a/service-management-system/src/main/java/org/jeecg/modules/ai/controller/PreReviewMaterialController.java +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/controller/PreReviewMaterialController.java @@ -17,6 +17,7 @@ import org.jeecg.modules.ai.qo.PreReviewMaterialQuery; import org.jeecg.modules.ai.service.IPreReviewMaterialService; import org.jeecg.modules.ai.vo.PreReviewMaterialVo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -73,6 +74,24 @@ public class PreReviewMaterialController extends JeecgController queryList(PreReviewMaterialQuery preReviewMaterialQuery, + HttpServletRequest req) { + List pageList = preReviewMaterialService.getPreReviewMaterialList(preReviewMaterialQuery.getEventCode()); + return Result.OK(pageList); + } + /** * 添加 * diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/entity/PreExaminationMattersField.java b/service-management-system/src/main/java/org/jeecg/modules/ai/entity/PreExaminationMattersField.java new file mode 100644 index 0000000..3d3c0eb --- /dev/null +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/entity/PreExaminationMattersField.java @@ -0,0 +1,58 @@ +package org.jeecg.modules.ai.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 事项表单回显字段与材料对应关系表 + * @Author: jeecg-boot + * @Date: 2023-11-29 + * @Version: V1.0 + */ +@Data +@TableName("pre_examination_matters_field") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="pre_examination_matters_field对象", description="事项表单回显字段与材料对应关系表") +public class PreExaminationMattersField implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + /**预审事项编码*/ + @Excel(name = "预审事项编码", width = 15) + @ApiModelProperty(value = "预审事项编码") + private java.lang.String eventCode; + /**回显字段名称*/ + @Excel(name = "回显字段名称", width = 15) + @ApiModelProperty(value = "回显字段名称") + private java.lang.String fieldName; + /**回显字段编码*/ + @Excel(name = "回显字段编码", width = 15) + @ApiModelProperty(value = "回显字段编码") + private java.lang.String fieldCode; + /**材料编码*/ + @Excel(name = "材料编码", width = 15) + @ApiModelProperty(value = "材料编码") + private java.lang.String materialCode; + /**状态 1 可用 0 禁用*/ + @Excel(name = "状态 1 可用 0 禁用", width = 15) + @ApiModelProperty(value = "状态 1 可用 0 禁用") + private java.lang.Integer status; +} diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/entity/PreReviewRecords.java b/service-management-system/src/main/java/org/jeecg/modules/ai/entity/PreReviewRecords.java index 2a11874..b00d83d 100644 --- a/service-management-system/src/main/java/org/jeecg/modules/ai/entity/PreReviewRecords.java +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/entity/PreReviewRecords.java @@ -79,7 +79,17 @@ public class PreReviewRecords implements Serializable { @ApiModelProperty(value = "用户身份标识") private java.lang.String userId; /**评价星级*/ - @Excel(name = "评价星级", width = 15) - @ApiModelProperty(value = "用户身份标识") + @Excel(name = "评价星级", width = 2) + @ApiModelProperty(value = "评价星级") private Integer star; + /**评价星级*/ + @Excel(name = "短信发送标志", width = 2) + @ApiModelProperty(value = "短信发送标志") + private Integer sendSmsFlag; + + /**发送短信时间*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "发送短信时间") + private java.util.Date sendSmsTime; } diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/job/SendSmsJob.java b/service-management-system/src/main/java/org/jeecg/modules/ai/job/SendSmsJob.java new file mode 100644 index 0000000..aecfadd --- /dev/null +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/job/SendSmsJob.java @@ -0,0 +1,35 @@ +package org.jeecg.modules.ai.job; + +import java.util.List; + +import org.jeecg.modules.ai.entity.PreReviewRecords; +import org.jeecg.modules.ai.service.IPreReviewRecordsService; +import org.jeecg.modules.system.util.SendSmsUtil; +import org.quartz.Job; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.springframework.beans.factory.annotation.Autowired; + +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class SendSmsJob implements Job{ + + @Autowired + private IPreReviewRecordsService preReviewRecordsService; + + @Override + public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { + log.info("-------------->开始发送统计数量"); + List list = preReviewRecordsService.getSendMsgRecordsCount(); + String msg = ""; + for(PreReviewRecords record:list) { + + } + String result = new SendSmsUtil().sendSms("", "", "", ""); + + log.info("--------短信发送内容---------->"+msg); + log.info("--------短信发送结果---------->"+result); + } + +} diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreExaminationMattersFieldMapper.java b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreExaminationMattersFieldMapper.java new file mode 100644 index 0000000..c5437ec --- /dev/null +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreExaminationMattersFieldMapper.java @@ -0,0 +1,27 @@ +package org.jeecg.modules.ai.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.ai.entity.PreExaminationMattersField; +import org.jeecg.modules.ai.qo.PreExaminationMattersFieldQuery; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 事项表单回显字段与材料对应关系表 + * @Author: jeecg-boot + * @Date: 2023-11-29 + * @Version: V1.0 + */ +public interface PreExaminationMattersFieldMapper extends BaseMapper { + + /** + * 查询数据列表 + * @param queryWrapper + * @return + */ + List selectByEventCode(String eventCode); + +} diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreReviewMaterialMapper.java b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreReviewMaterialMapper.java index bec82ef..ed6b0b5 100644 --- a/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreReviewMaterialMapper.java +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreReviewMaterialMapper.java @@ -34,4 +34,11 @@ public interface PreReviewMaterialMapper extends BaseMapper { * @return */ List getPreReviewMaterialList(@Param("query") PreReviewMaterialQuery query); + + /** + * 更加编码获取对象 + * @param code + * @return + */ + PreReviewMaterialVo getPreReviewMaterialByCode(String code); } diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreReviewRecordsMapper.java b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreReviewRecordsMapper.java index 1c2919e..cf67e81 100644 --- a/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreReviewRecordsMapper.java +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/PreReviewRecordsMapper.java @@ -1,6 +1,8 @@ package org.jeecg.modules.ai.mapper; +import java.util.List; + import org.apache.ibatis.annotations.Param; import org.jeecg.modules.ai.entity.PreReviewRecords; import org.jeecg.modules.ai.qo.PreReviewRecordsQuery; @@ -25,4 +27,10 @@ public interface PreReviewRecordsMapper extends BaseMapper { * @return */ IPage getPreReviewRecordsList(Page page, @Param("query") PreReviewRecordsQuery query); + + /** + * 按事项分类统计当日发送短信数量 + * @return + */ + List getSendMsgRecordsCount(); } diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreExaminationMattersFieldMapper.xml b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreExaminationMattersFieldMapper.xml new file mode 100644 index 0000000..de52aa4 --- /dev/null +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreExaminationMattersFieldMapper.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreReviewMaterialMapper.xml b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreReviewMaterialMapper.xml index fd34845..618c738 100644 --- a/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreReviewMaterialMapper.xml +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreReviewMaterialMapper.xml @@ -16,6 +16,10 @@ a.id,b.material_name,b.material_type,a.material_code,a.valid_status,c.depart_name,b.material_url,a.event_code + + + a.id,b.material_name,b.material_type,a.material_code,a.valid_status,b.material_url,a.event_code + @@ -35,4 +39,11 @@ left join sys_depart c on a.sys_org_code = c.depart_code + + \ No newline at end of file diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreReviewRecordsMapper.xml b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreReviewRecordsMapper.xml index 8a1ec3a..b8bb536 100644 --- a/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreReviewRecordsMapper.xml +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/mapper/xml/PreReviewRecordsMapper.xml @@ -34,5 +34,13 @@ left join material_bag c on a.material_bag = c.code + + + \ No newline at end of file diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/qo/PreExaminationMattersFieldQuery.java b/service-management-system/src/main/java/org/jeecg/modules/ai/qo/PreExaminationMattersFieldQuery.java new file mode 100644 index 0000000..1c600e0 --- /dev/null +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/qo/PreExaminationMattersFieldQuery.java @@ -0,0 +1,11 @@ +package org.jeecg.modules.ai.qo; + +import lombok.Data; + +@Data +public class PreExaminationMattersFieldQuery { + + private String eventCode; + private Integer status; + +} diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/service/IPreExaminationMattersFieldService.java b/service-management-system/src/main/java/org/jeecg/modules/ai/service/IPreExaminationMattersFieldService.java new file mode 100644 index 0000000..4e58065 --- /dev/null +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/service/IPreExaminationMattersFieldService.java @@ -0,0 +1,32 @@ +package org.jeecg.modules.ai.service; + +import java.util.List; + +import org.jeecg.modules.ai.entity.PreExaminationMattersField; +import org.jeecg.modules.ai.qo.PreExaminationMattersFieldQuery; +import org.jeecg.modules.ai.vo.PreExaminationMattersFieldVo; + +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 事项表单回显字段与材料对应关系表 + * @Author: jeecg-boot + * @Date: 2023-11-29 + * @Version: V1.0 + */ +public interface IPreExaminationMattersFieldService extends IService { + + /** + * 获取已经配置的表单字段 + * @param preExaminationMattersField + * @return + */ + public List getPreExaminationMattersFieldListByEvent(PreExaminationMattersFieldQuery query); + + /** + * 保存表单数据 + * @param reviewInfo + * @return + */ + public boolean saveInfo(String reviewInfo) ; +} diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/service/IPreReviewRecordsService.java b/service-management-system/src/main/java/org/jeecg/modules/ai/service/IPreReviewRecordsService.java index c945255..aef1622 100644 --- a/service-management-system/src/main/java/org/jeecg/modules/ai/service/IPreReviewRecordsService.java +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/service/IPreReviewRecordsService.java @@ -1,5 +1,7 @@ package org.jeecg.modules.ai.service; +import java.util.List; + import org.jeecg.modules.ai.entity.PreReviewRecords; import org.jeecg.modules.ai.qo.PreExaminationMattersQuery; import org.jeecg.modules.ai.qo.PreReviewRecordsApiQuery; @@ -47,4 +49,10 @@ public interface IPreReviewRecordsService extends IService { * @return */ public String downLoad(PreReviewRecords preReviewRecords); + + /** + * 按事项分类统计当日发送短信数量 + * @return + */ + public List getSendMsgRecordsCount(); } diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/service/impl/PreExaminationMattersFieldServiceImpl.java b/service-management-system/src/main/java/org/jeecg/modules/ai/service/impl/PreExaminationMattersFieldServiceImpl.java new file mode 100644 index 0000000..d0be5e6 --- /dev/null +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/service/impl/PreExaminationMattersFieldServiceImpl.java @@ -0,0 +1,84 @@ +package org.jeecg.modules.ai.service.impl; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Resource; + +import org.jeecg.modules.ai.entity.PreExaminationMattersField; +import org.jeecg.modules.ai.entity.PreReviewMaterial; +import org.jeecg.modules.ai.mapper.PreExaminationMattersFieldMapper; +import org.jeecg.modules.ai.mapper.PreReviewMaterialMapper; +import org.jeecg.modules.ai.qo.PreExaminationMattersFieldQuery; +import org.jeecg.modules.ai.service.IPreExaminationMattersFieldService; +import org.jeecg.modules.ai.vo.PreExaminationMattersFieldVo; +import org.jeecg.modules.ai.vo.PreReviewMaterialVo; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import ch.qos.logback.core.joran.util.beans.BeanUtil; + +/** + * @Description: 事项表单回显字段与材料对应关系表 + * @Author: jeecg-boot + * @Date: 2023-11-29 + * @Version: V1.0 + */ +@Service +public class PreExaminationMattersFieldServiceImpl extends ServiceImpl implements IPreExaminationMattersFieldService { + + @Resource + private PreExaminationMattersFieldMapper preExaminationMattersFieldMapper; + @Resource + private PreReviewMaterialMapper preReviewMaterialMapper; + + /** + * 获取已经配置的表单字段 + * @param preExaminationMattersField + * @return + */ + public List getPreExaminationMattersFieldListByEvent(PreExaminationMattersFieldQuery query){ + + List list = preExaminationMattersFieldMapper.selectByEventCode(query.getEventCode()); + List listPreExaminationMattersFieldVo = new ArrayList(); + for(PreExaminationMattersField field:list) { + PreExaminationMattersFieldVo vo = new PreExaminationMattersFieldVo(); + BeanUtils.copyProperties(field, vo); + PreReviewMaterialVo material = preReviewMaterialMapper.getPreReviewMaterialByCode(field.getMaterialCode()); + vo.setMaterialName(material.getMaterialName()); + listPreExaminationMattersFieldVo.add(vo); + } + return listPreExaminationMattersFieldVo; + } + + /** + * 保存表单数据 + */ + @Override + public boolean saveInfo(String reviewInfo) { + JSONObject json = JSONObject.parseObject(reviewInfo); + String eventCode = json.getString("eventCode"); + JSONArray listMaterial = json.getJSONArray("listMaterial"); + if(listMaterial.size()>0) { + //删除旧数据 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + queryWrapper.eq(PreExaminationMattersField::getEventCode, eventCode); + preExaminationMattersFieldMapper.delete(queryWrapper); + } + for(int i=0;i getSendMsgRecordsCount() { + return preReviewRecordsMapper.getSendMsgRecordsCount(); + } } diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/vo/PreExaminationMattersFieldVo.java b/service-management-system/src/main/java/org/jeecg/modules/ai/vo/PreExaminationMattersFieldVo.java new file mode 100644 index 0000000..df2b772 --- /dev/null +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/vo/PreExaminationMattersFieldVo.java @@ -0,0 +1,11 @@ +package org.jeecg.modules.ai.vo; + +import org.jeecg.modules.ai.entity.PreExaminationMattersField; + +import lombok.Data; + +@Data +public class PreExaminationMattersFieldVo extends PreExaminationMattersField{ + + private String materialName; +} diff --git a/service-management-system/src/main/java/org/jeecg/modules/ai/vo/PreReviewRecordsVo.java b/service-management-system/src/main/java/org/jeecg/modules/ai/vo/PreReviewRecordsVo.java index 0418a69..a661189 100644 --- a/service-management-system/src/main/java/org/jeecg/modules/ai/vo/PreReviewRecordsVo.java +++ b/service-management-system/src/main/java/org/jeecg/modules/ai/vo/PreReviewRecordsVo.java @@ -21,5 +21,6 @@ public class PreReviewRecordsVo { @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm") @DateTimeFormat(pattern="yyyy-MM-dd HH:mm") private Date createTime; + private Integer sendCount; } diff --git a/service-management-system/src/main/java/org/jeecg/modules/system/util/SendSmsUtil.java b/service-management-system/src/main/java/org/jeecg/modules/system/util/SendSmsUtil.java new file mode 100644 index 0000000..e99be9a --- /dev/null +++ b/service-management-system/src/main/java/org/jeecg/modules/system/util/SendSmsUtil.java @@ -0,0 +1,60 @@ +package org.jeecg.modules.system.util; + +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; + +import org.springframework.beans.factory.annotation.Value; + +import com.aliyun.auth.credentials.Credential; +import com.aliyun.auth.credentials.provider.StaticCredentialProvider; +import com.aliyun.sdk.service.dysmsapi20170525.AsyncClient; +import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsRequest; +import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsResponse; +import com.google.gson.Gson; + +import darabonba.core.client.ClientOverrideConfiguration; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +public class SendSmsUtil { + + @Value(value = "${aliyun.accessKey}") + private static String ALIBABA_CLOUD_ACCESS_KEY_ID; + @Value(value = "${aliyun.accessKeySecret}") + private static String ALIBABA_CLOUD_ACCESS_KEY_SECRET; + + private static AsyncClient client; + + static { + StaticCredentialProvider provider = StaticCredentialProvider + .create(Credential.builder().accessKeyId(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID")) + .accessKeySecret(System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET")).build()); + client = AsyncClient.builder().region("cn-hangzhou").credentialsProvider(provider).overrideConfiguration( + ClientOverrideConfiguration.create().setEndpointOverride("dysmsapi.aliyuncs.com")).build(); + } + + /** + * 发送短信 + * @param signName + * @param phone + * @param templateCode + * @param templateParam + */ + public String sendSms(String signName, String phone, String templateCode, String templateParam) { + SendSmsRequest sendSmsRequest = SendSmsRequest.builder().signName(signName).templateCode(templateCode) + .phoneNumbers(phone).templateParam(templateParam).build(); + CompletableFuture response = client.sendSms(sendSmsRequest); + SendSmsResponse resp; + try { + resp = response.get(); + log.info(phone+"--------短信发送结果----------->"+new Gson().toJson(resp)); + return new Gson().toJson(resp); + } catch (Exception e) { + e.printStackTrace(); + } finally { + client.close(); + } + return null; + } + +}