Browse Source

feat: [试验管理] 赋值试验的表单数量

fix: [稽查轨迹] 对象字段变化支持null
master
memorylkf 1 week ago
parent
commit
b4a762ab61
6 changed files with 92 additions and 13 deletions
  1. +42
    -8
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyController.java
  2. +7
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/mapper/StudyMapper.java
  3. +7
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/IStudyService.java
  4. +20
    -0
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudyServiceImpl.java
  5. +5
    -5
      hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java
  6. +11
    -0
      hxhq-modules/hxhq-system/src/main/resources/mapper/business/StudyMapper.xml

+ 42
- 8
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/controller/StudyController.java View File

@ -1,7 +1,9 @@
package com.hxhq.business.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import com.alibaba.fastjson2.JSONObject;
import com.hxhq.business.domain.MjyJcgj;
@ -58,9 +60,19 @@ public class StudyController extends BaseController
* @return
*/
private List<StudyListDto> initFormCount(List<StudyListDto> list){
for(StudyListDto l : list){
l.setFormCount(0);
l.setFormFinishCount(0);
if(list.size()>0){
List<StudyListDto> countList = studyService.queryFormCountList(list.stream().map(o->o.getId()).collect(Collectors.toList()));
for(StudyListDto l : list){
List<StudyListDto> matchList = countList.stream().filter(o->o.getId().equals(l.getId())).collect(Collectors.toList());
if(matchList.size()>0){
l.setFormCount(matchList.get(0).getFormCount());
l.setFormFinishCount(matchList.get(0).getFormFinishCount());
}else{
l.setFormCount(0);
l.setFormFinishCount(0);
}
}
}
return list;
}
@ -68,6 +80,7 @@ public class StudyController extends BaseController
/**
* 获取试验详细信息
*/
@RequiresPermissions({"business:study:add", "business:study:edit", "business:study:detail"})
@GetMapping(value = "/info")
public AjaxResult getInfo(Long id)
{
@ -76,12 +89,19 @@ public class StudyController extends BaseController
return AjaxResult.error("信息不存在");
}
StudyListDto info = JSONObject.parseObject(JSONObject.toJSONString(study),StudyListDto.class);
info.setFormCount(0);
List<Long> idList = new ArrayList<>();
idList.add(info.getId());
List<StudyListDto> countList = studyService.queryFormCountList(idList);
if(countList.size()>0){
info.setFormCount(countList.get(0).getFormCount());
}else{
info.setFormCount(0);
}
return AjaxResult.success(info);
}
/**
* 新增试验信息
* 新增/编辑试验信息
*/
@RequiresPermissions({"business:study:add", "business:study:edit"})
@PostMapping("/save")
@ -110,6 +130,12 @@ public class StudyController extends BaseController
return AjaxResult.success();
}
/**
* 稽查轨迹列表
* @param form
* @return
*/
@RequiresPermissions({"business:study:detail"})
@GetMapping("/jcgjList")
public TableDataInfo jcgjList(StudyJcgj form)
{
@ -138,7 +164,9 @@ public class StudyController extends BaseController
}
/**
* 删除试验信息
* 归档
* @param form
* @return
*/
@RequiresPermissions({"business:study:gd"})
@PostMapping("/gd")
@ -157,7 +185,9 @@ public class StudyController extends BaseController
}
/**
* 删除试验信息
* 解锁
* @param form
* @return
*/
@RequiresPermissions({"business:study:js"})
@PostMapping("/js")
@ -176,7 +206,9 @@ public class StudyController extends BaseController
}
/**
* 删除试验信息
* 解档
* @param form
* @return
*/
@RequiresPermissions({"business:study:jd"})
@PostMapping("/jd")
@ -196,6 +228,8 @@ public class StudyController extends BaseController
/**
* 借阅
* @param form
* @return
*/
@RequiresPermissions({"business:study:jy"})
@PostMapping("/jy")

+ 7
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/mapper/StudyMapper.java View File

@ -22,4 +22,11 @@ public interface StudyMapper extends BaseMapper
* @return
*/
List<StudyListDto> queryList(@Param("ew") Wrapper<StudyListDto> queryWrapper);
/**
* 获取表单数量
* @param idList
* @return
*/
List<StudyListDto> queryFormCountList(@Param("idList") List<Long> idList);
}

+ 7
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/IStudyService.java View File

@ -25,6 +25,13 @@ public interface IStudyService extends IService
public List<StudyListDto> queryList(StudySearchForm form);
/**
* 获取表单数量
* @param idList
* @return
*/
List<StudyListDto> queryFormCountList(List<Long> idList);
/**
* 保存
* @param form
*/

+ 20
- 0
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/service/impl/StudyServiceImpl.java View File

@ -80,6 +80,14 @@ public class StudyServiceImpl extends ServiceImpl implements
}
@Override
public List<StudyListDto> queryFormCountList(List<Long> idList) {
if(idList==null || idList.size()<1){
return new ArrayList<>();
}
return baseMapper.queryFormCountList(idList);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void saveInfo(StudySaveForm form) {
Study study = form.getStudy();
@ -107,6 +115,7 @@ public class StudyServiceImpl extends ServiceImpl implements
throw new ServiceException("当前状态不允许修改");
}
//修改字段的稽查轨迹
List<StudyJcgj> jcgjList = new ArrayList<>();
List<ObjectCompareUtil.FieldChange> fieldChanges = ObjectCompareUtil.compareObjects(old, study);
if (fieldChanges.size() > 0) {
@ -127,6 +136,17 @@ public class StudyServiceImpl extends ServiceImpl implements
}
studyJcgjService.saveBatch(jcgjList);
//修改试验负责人的稽查轨迹
if(!old.getLeaderName().equals(study.getLeaderName())){
Map<String, String> formData = new LinkedHashMap<>();
formData.put("新增人员", study.getLeaderName());
formData.put("删除人员", old.getLeaderName());
if(study.getStatus().equals(StudyStatusEnum.cg.getValue())){
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.ry, JcmcysEnum.blue,"人员变更", JctUtil.formatStr(formData), null,null,null);
}else{
studyJcgjService.saveInfo(study.getId(), JcgjlxEnum.ry, JcmcysEnum.blue,"人员变更", JctUtil.formatStr(formData), SecurityUtils.getUserId(),SecurityUtils.getNickName(),sign.getRemark());
}
}
if(study.getStatus().equals(StudyStatusEnum.cg.getValue())){
Map<String, String> formData = new LinkedHashMap<>();

+ 5
- 5
hxhq-modules/hxhq-system/src/main/java/com/hxhq/business/utils/ObjectCompareUtil.java View File

@ -30,9 +30,9 @@ public class ObjectCompareUtil {
public static List<FieldChange> compareObjects(Object oldObj, Object newObj) {
List<FieldChange> changes = new ArrayList<>();
if (oldObj == null || newObj == null) {
return changes;
}
// if (oldObj == null || newObj == null) {
// return changes;
// }
// 获取所有字段
Field[] fields = oldObj.getClass().getDeclaredFields();
@ -82,7 +82,7 @@ public class ObjectCompareUtil {
}
}
if (StringUtils.isNoneBlank(oldValueStr) && StringUtils.isNoneBlank(newValueStr)) {
// if (StringUtils.isNoneBlank(oldValueStr) && StringUtils.isNoneBlank(newValueStr)) {
// 对比字段值
if (!Objects.equals(oldValue, newValue)) {
FieldChange change = new FieldChange();
@ -93,7 +93,7 @@ public class ObjectCompareUtil {
change.setFieldType(field.getType().getSimpleName());
changes.add(change);
}
}
// }
} catch (Exception ex) {
// 忽略没有的字段

+ 11
- 0
hxhq-modules/hxhq-system/src/main/resources/mapper/business/StudyMapper.xml View File

@ -11,4 +11,15 @@
</where>
</if>
</select>
<select id="queryFormCountList" resultType="com.hxhq.business.dto.study.StudyListDto">
SELECT study_id AS id, COUNT(0) AS formCount,COUNT(IF(bdzt=5 OR bdzt=7 OR bdzt=9 OR bdzt=11,id,NULL)) AS formFinishCount
FROM `t_study_form_fill`
WHERE del_flag='0'
AND study_id IN
<foreach collection="idList" item="id" open="(" separator="," close=")">
#{id}
</foreach>
GROUP BY study_id
</select>
</mapper>

Loading…
Cancel
Save