20241215 更新

1.更新贵阳需求文档
2.添加鉴定事项确认书需要委托单位打印,也就是委托单位需要在审核完成并委托送件后,同时能够打印委托书与确认书
master
陈江保 2 months ago
parent c26e75a6e7
commit fb3fc4d14f
  1. BIN
      doc/assets/2024-12-23-11-13-59-image.png
  2. BIN
      doc/assets/2024-12-23-11-14-56-image.png
  3. 16
      doc/贵阳禁毒送检受理委托新增需求文档.md
  4. 31
      src/main/java/digital/laboratory/platform/entrustment/service/impl/EntrustmentServiceImpl.java

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

@ -268,3 +268,19 @@ DESC LIMIT 1;
### 1 解决方案 ### 1 解决方案
通过在远接口添加参数解决 通过在远接口添加参数解决
## 20241223-1 鉴定事项确认书需要委托单位打印,也就是委托单位需要在审核完成并委托送件后,同时能够打印委托书与确认书。
### 1 主要问题
目前主要是解决确认书生成数据缺失的问题,因为委托方在送检后,受理方可能还未受理,也就导致了数据缺失,生成失败的问题。
### 2 解决方案
在生成鉴定事项确认书时,在代码上进行逻辑判断,如果是在未受理前则不填充相关的受理数据,检材排序时使用生成的检材编号排序,受理后的逻辑不变。下面是修改后的代码
![](assets/2024-12-23-11-13-59-image.png)
![](assets/2024-12-23-11-14-56-image.png)

@ -440,17 +440,22 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
@Override @Override
public Boolean generateIdentifyItemsBook(String entrustId) { public Boolean generateIdentifyItemsBook(String entrustId) {
Entrustment entrustment = this.getOne(Wrappers.<Entrustment>query() Entrustment entrustment = this.getOne(Wrappers.<Entrustment>query().eq("id", entrustId));
.eq("id", entrustId)); // 标记该委托是否已经受理
List<EntrustmentIdentificationMaterial> materialList = entrustmentIdentificationMaterialService.list(Wrappers.<EntrustmentIdentificationMaterial>query() int isAccepted = entrustment.getStatus().compareTo(EntrustmentStatusConstants.ENTRUSTMENT_STATUS_ACCEPTED.getStatus());
.eq("entrustment_id", entrustId) List<EntrustmentIdentificationMaterial> materialList = entrustmentIdentificationMaterialService.list(Wrappers.<EntrustmentIdentificationMaterial>lambdaQuery()
.orderByAsc("accept_no")); .eq(EntrustmentIdentificationMaterial::getEntrustmentId, entrustId)
.orderByAsc(isAccepted != -1, EntrustmentIdentificationMaterial::getAcceptNo)
.orderByAsc(isAccepted == -1, EntrustmentIdentificationMaterial::getImNo));
if (isAccepted != -1) {
// 受理过的才进行排序,否则采用检材编号排序
Collections.sort(materialList, new Comparator<EntrustmentIdentificationMaterial>() { Collections.sort(materialList, new Comparator<EntrustmentIdentificationMaterial>() {
@Override @Override
public int compare(EntrustmentIdentificationMaterial o1, EntrustmentIdentificationMaterial o2) { public int compare(EntrustmentIdentificationMaterial o1, EntrustmentIdentificationMaterial o2) {
return Integer.parseInt(o1.getAcceptNo().split("-")[2]) - Integer.parseInt(o2.getAcceptNo().split("-")[2]); return Integer.parseInt(o1.getAcceptNo().split("-")[2]) - Integer.parseInt(o2.getAcceptNo().split("-")[2]);
} }
}); });
}
CaseEvent caseEvent = caseEventService.getOne(Wrappers.<CaseEvent>query() CaseEvent caseEvent = caseEventService.getOne(Wrappers.<CaseEvent>query()
.eq("id", entrustment.getCaseId())); .eq("id", entrustment.getCaseId()));
String templatePath = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + entrustment.getId() + "/" + "鉴定事项确认书-" + entrustment.getAcceptNo(); String templatePath = OSSDirectoryConstants.IDENTIFY_BOOK_DIRECTORY + "/" + entrustment.getId() + "/" + "鉴定事项确认书-" + entrustment.getAcceptNo();
@ -465,7 +470,7 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
listNameCollection.add("materialRList"); listNameCollection.add("materialRList");
//把筛查物列表转为一行字符串 //把筛查物列表转为一行字符串
entrustmentIdentificationMaterialService.conformityDrugs(materialList); entrustmentIdentificationMaterialService.conformityDrugs(materialList);
Map<String, Object> data = generateIdentifyItemsData(caseEvent, entrustment, materialList); Map<String, Object> data = generateIdentifyItemsData(caseEvent, entrustment, materialList, isAccepted);
R ret = remoteGenerateWordService.generateWord(templateName, originalFilename, templatePath, fileType, QRContent, listNameCollection, false, data); R ret = remoteGenerateWordService.generateWord(templateName, originalFilename, templatePath, fileType, QRContent, listNameCollection, false, data);
if (ret.getCode() == 0) { if (ret.getCode() == 0) {
System.out.println("鉴定事项书生成完毕..........................."); System.out.println("鉴定事项书生成完毕...........................");
@ -482,11 +487,10 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
* @param caseEvent * @param caseEvent
* @param entrustment * @param entrustment
* @param materialList * @param materialList
* @param isAccepted -1 未受理0 1 受理之后的状态
* @return * @return
*/ */
private Map<String, Object> generateIdentifyItemsData(CaseEvent caseEvent, Entrustment entrustment, List<EntrustmentIdentificationMaterial> materialList) { private Map<String, Object> generateIdentifyItemsData(CaseEvent caseEvent, Entrustment entrustment, List<EntrustmentIdentificationMaterial> materialList, int isAccepted) {
R<SysUser> sysUserR = remoteUserService.innerGetById(entrustment.getAcceptUser());
String acceptName = sysUserR.getData().getName();
Map<String, Object> dm = new HashMap<>(); Map<String, Object> dm = new HashMap<>();
//构建案件部分需要的参数值 //构建案件部分需要的参数值
dm.put("caseName", caseEvent.getCaseName()); dm.put("caseName", caseEvent.getCaseName());
@ -506,8 +510,6 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
dm.put("deliverStatement", "本人及所属委托鉴定单位忠于案(事)件事实,保证检材及相关资料真实、合法,如有虚假,由本人及所属委托鉴定单位承担相关法律责任。");//送检人声明 dm.put("deliverStatement", "本人及所属委托鉴定单位忠于案(事)件事实,保证检材及相关资料真实、合法,如有虚假,由本人及所属委托鉴定单位承担相关法律责任。");//送检人声明
dm.put("sendDate", LocalDateTimeUtil.format(entrustment.getDeliverTime(), "yyyy年MM月dd日"));//送检日期 dm.put("sendDate", LocalDateTimeUtil.format(entrustment.getDeliverTime(), "yyyy年MM月dd日"));//送检日期
dm.put("identityStatement", "本鉴定机构工作遵循公正独立、程序规范、方法科学、结论准确的原则,严格履行质量承诺。");//鉴定机构声明 dm.put("identityStatement", "本鉴定机构工作遵循公正独立、程序规范、方法科学、结论准确的原则,严格履行质量承诺。");//鉴定机构声明
dm.put("acceptDate", LocalDateTimeUtil.format(entrustment.getAcceptTime(), "yyyy年MM月dd日"));//受理日期
dm.put("acceptName", acceptName);
dm.put("materialList", getMaterialBookVoList(materialList));//检材列表 dm.put("materialList", getMaterialBookVoList(materialList));//检材列表
//设置取样方法 //设置取样方法
dm.put("samplingMethod", getSamplingMethod(materialList)); dm.put("samplingMethod", getSamplingMethod(materialList));
@ -534,9 +536,16 @@ public class EntrustmentServiceImpl extends ServiceImpl<EntrustmentMapper, Entru
dm.put("materialMount", getAllMaterialMount(materialList, "A"));//检材总的质量-分析样 dm.put("materialMount", getAllMaterialMount(materialList, "A"));//检材总的质量-分析样
dm.put("materialMount1", getAllMaterialMount(materialList, "R"));//检材总的质量-留存样 dm.put("materialMount1", getAllMaterialMount(materialList, "R"));//检材总的质量-留存样
// 填充受理数据
if (isAccepted != -1) {
R<SysUser> sysUserR = remoteUserService.innerGetById(entrustment.getAcceptUser());
String acceptName = sysUserR.getData().getName();
dm.put("acceptDate", LocalDateTimeUtil.format(entrustment.getAcceptTime(), "yyyy年MM月dd日"));//受理日期
dm.put("acceptName", acceptName);
dm.put("ac_yy", entrustment.getAcceptTime().getYear());//受理年 dm.put("ac_yy", entrustment.getAcceptTime().getYear());//受理年
dm.put("ac_mm", entrustment.getAcceptTime().getMonthValue());//受理月 dm.put("ac_mm", entrustment.getAcceptTime().getMonthValue());//受理月
dm.put("ac_day", entrustment.getAcceptTime().getDayOfMonth());//受理日 dm.put("ac_day", entrustment.getAcceptTime().getDayOfMonth());//受理日
}
dm.put("value1", "☑");//受理日 dm.put("value1", "☑");//受理日
//条形码 因为调用feign接口的原因,图片传输过程中会受影响,这里改为在生成的地方再生成 //条形码 因为调用feign接口的原因,图片传输过程中会受影响,这里改为在生成的地方再生成
return dm; return dm;

Loading…
Cancel
Save