|
|
@ -19,6 +19,9 @@ import com.hxhq.business.enums.archive.ArchiveLogTypeEnum; |
|
|
import com.hxhq.business.enums.study.StudyFormFillResourceTypeEnum; |
|
|
import com.hxhq.business.enums.study.StudyFormFillResourceTypeEnum; |
|
|
import com.hxhq.business.enums.zykgl.*; |
|
|
import com.hxhq.business.enums.zykgl.*; |
|
|
import com.hxhq.business.form.gyzj.*; |
|
|
import com.hxhq.business.form.gyzj.*; |
|
|
|
|
|
import com.hxhq.business.form.study.StudyFormConfigurationForm; |
|
|
|
|
|
import com.hxhq.business.form.study.StudyFormFillSubpackageForm; |
|
|
|
|
|
import com.hxhq.business.form.study.StudyFormFillSubpackageItemForm; |
|
|
import com.hxhq.business.service.*; |
|
|
import com.hxhq.business.service.*; |
|
|
import com.hxhq.business.utils.CalUnitTools; |
|
|
import com.hxhq.business.utils.CalUnitTools; |
|
|
import com.hxhq.business.utils.JctUtil; |
|
|
import com.hxhq.business.utils.JctUtil; |
|
|
@ -66,9 +69,127 @@ public class GyzjServiceImpl extends ServiceImpl implements IG |
|
|
@Autowired |
|
|
@Autowired |
|
|
private IStudyGyzjService studyGyzjService; |
|
|
private IStudyGyzjService studyGyzjService; |
|
|
|
|
|
|
|
|
|
|
|
//region 表单 |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 开始配置 |
|
|
|
|
|
* @param form |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
@Override |
|
|
|
|
|
public void startConfiguration(StudyFormConfigurationForm form){ |
|
|
|
|
|
Gyzj gyzj = this.getInfoByBh(form.getBh()); |
|
|
|
|
|
if(gyzj == null) { |
|
|
|
|
|
gyzj = new Gyzj(); |
|
|
|
|
|
gyzj.setBh(form.getBh()); |
|
|
|
|
|
gyzj.setStudyId(form.getStudyId()); |
|
|
|
|
|
gyzj.setBdId(form.getStudyFormId()); |
|
|
|
|
|
this.save(gyzj); |
|
|
|
|
|
} else { |
|
|
|
|
|
gyzj.setStudyId(form.getStudyId()); |
|
|
|
|
|
gyzj.setBdId(form.getStudyFormId()); |
|
|
|
|
|
this.updateById(gyzj); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 配置完成 |
|
|
|
|
|
* @param form |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
@Override |
|
|
|
|
|
public void configurationCompleted(StudyFormConfigurationForm form){ |
|
|
|
|
|
Gyzj gyzj = this.getInfoByBh(form.getBh()); |
|
|
|
|
|
if(gyzj == null) { |
|
|
|
|
|
gyzj = new Gyzj(); |
|
|
|
|
|
gyzj.setBh(form.getBh()); |
|
|
|
|
|
gyzj.setKc(form.getKc()); |
|
|
|
|
|
gyzj.setKcdw(form.getKcdw()); |
|
|
|
|
|
gyzj.setStudyId(form.getStudyId()); |
|
|
|
|
|
gyzj.setBdId(form.getStudyFormId()); |
|
|
|
|
|
gyzj.setNd(form.getNd()); |
|
|
|
|
|
gyzj.setNddw(form.getNddw()); |
|
|
|
|
|
gyzj.setZjzt(ZjztEnum.rk.getValue()); |
|
|
|
|
|
gyzj.setJyzt(JyztEnum.wjy.getValue()); |
|
|
|
|
|
this.save(gyzj); |
|
|
|
|
|
} else { |
|
|
|
|
|
gyzj.setBh(form.getBh()); |
|
|
|
|
|
gyzj.setKc(form.getKc()); |
|
|
|
|
|
gyzj.setKcdw(form.getKcdw()); |
|
|
|
|
|
gyzj.setStudyId(form.getStudyId()); |
|
|
|
|
|
gyzj.setBdId(form.getStudyFormId()); |
|
|
|
|
|
gyzj.setNd(form.getNd()); |
|
|
|
|
|
gyzj.setNddw(form.getNddw()); |
|
|
|
|
|
gyzj.setZjzt(ZjztEnum.rk.getValue()); |
|
|
|
|
|
gyzj.setJyzt(JyztEnum.wjy.getValue()); |
|
|
|
|
|
this.updateById(gyzj); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 分装 |
|
|
|
|
|
* @param form |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
@Override |
|
|
|
|
|
public void subpackage(StudyFormFillSubpackageForm form){ |
|
|
|
|
|
Gyzj gyzj = this.getInfoByBh(form.getBh()); |
|
|
|
|
|
if(gyzj == null) { |
|
|
|
|
|
gyzj = new Gyzj(); |
|
|
|
|
|
gyzj.setBh(form.getBh()); |
|
|
|
|
|
this.save(gyzj); |
|
|
|
|
|
} |
|
|
|
|
|
LambdaQueryWrapper<Gyzj> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
queryWrapper.eq(Gyzj::getParentBh, form.getBh()); |
|
|
|
|
|
this.remove(queryWrapper); |
|
|
|
|
|
List<StudyFormFillSubpackageItemForm> list = form.getList(); |
|
|
|
|
|
List<Gyzj> gyzjList = new ArrayList<>(); |
|
|
|
|
|
List<String> fz = new ArrayList<>(); |
|
|
|
|
|
for (StudyFormFillSubpackageItemForm gyzjSubpackageItemForm : list) { |
|
|
|
|
|
Gyzj subpackageGyzj = new Gyzj(); |
|
|
|
|
|
subpackageGyzj.setParentBh(form.getBh()); |
|
|
|
|
|
subpackageGyzj.setBh(gyzjSubpackageItemForm.getBh()); |
|
|
|
|
|
subpackageGyzj.setKc(gyzjSubpackageItemForm.getKc()); |
|
|
|
|
|
subpackageGyzj.setKcdw(gyzjSubpackageItemForm.getKcdw()); |
|
|
|
|
|
subpackageGyzj.setNd(form.getNd()); |
|
|
|
|
|
subpackageGyzj.setNddw(form.getNddw()); |
|
|
|
|
|
subpackageGyzj.setStudyId(form.getStudyId()); |
|
|
|
|
|
subpackageGyzj.setBdId(form.getStudyFormId()); |
|
|
|
|
|
gyzjList.add(subpackageGyzj); |
|
|
|
|
|
fz.add(gyzjSubpackageItemForm.getBh() + "(" + gyzjSubpackageItemForm.getKc() + gyzjSubpackageItemForm.getKcdw() + ")"); |
|
|
|
|
|
} |
|
|
|
|
|
this.saveBatch(gyzjList); |
|
|
|
|
|
//稽查轨迹 |
|
|
|
|
|
Map<String, String> formData = new LinkedHashMap<>(); |
|
|
|
|
|
formData.put("母液编号", form.getBh()); |
|
|
|
|
|
formData.put("分装个数", String.valueOf(form.getList().size())); |
|
|
|
|
|
formData.put("分装后编号及体积",String.join(",", fz)); |
|
|
|
|
|
formData.put("分装人", SecurityUtils.getNickName()); |
|
|
|
|
|
gyzjJcgjService.saveJcgj(gyzj.getId(), JcgjlxEnum.lc.getValue(), "分装", JcmcysEnum.orange.getValue(), formData, SecurityUtils.getLoginUser().getSysUser(), null); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//region 资源库管理 |
|
|
//region 资源库管理 |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
|
|
|
* 通过编号获取给药制剂 |
|
|
|
|
|
* @param bh |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
@Override |
|
|
|
|
|
public Gyzj getInfoByBh(String bh){ |
|
|
|
|
|
QueryWrapper<Gyzj> queryWrapper = Wrappers.query(); |
|
|
|
|
|
queryWrapper.eq("bh", bh); |
|
|
|
|
|
return this.getOne(queryWrapper,false); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
* 列表 |
|
|
* 列表 |
|
|
* |
|
|
* |
|
|
* @param form 暂存柜 |
|
|
* @param form 暂存柜 |
|
|
@ -1405,8 +1526,9 @@ public class GyzjServiceImpl extends ServiceImpl implements IG |
|
|
//更新 Resource |
|
|
//更新 Resource |
|
|
studyFormFill.setResource(JSONObject.toJSONString(studyFormFillResourceList)); |
|
|
studyFormFill.setResource(JSONObject.toJSONString(studyFormFillResourceList)); |
|
|
} |
|
|
} |
|
|
// 处置、存储 |
|
|
|
|
|
czCc(studyFormFill, gyzjMap, jcgjList, tzList, remark, qmr); |
|
|
|
|
|
|
|
|
// 存储、处置 |
|
|
|
|
|
cc(studyFormFill, gyzjMap, jcgjList, tzList, remark, qmr); |
|
|
|
|
|
cz(studyFormFill, gyzjMap, jcgjList, tzList, remark, qmr); |
|
|
} |
|
|
} |
|
|
if (jcgjList.size() > 0) { |
|
|
if (jcgjList.size() > 0) { |
|
|
gyzjJcgjService.saveBatch(jcgjList); |
|
|
gyzjJcgjService.saveBatch(jcgjList); |
|
|
@ -1427,11 +1549,65 @@ public class GyzjServiceImpl extends ServiceImpl implements IG |
|
|
*/ |
|
|
*/ |
|
|
@Override |
|
|
@Override |
|
|
public void storageResource(StudyFormFill studyFormFill, Template template,String remark){ |
|
|
public void storageResource(StudyFormFill studyFormFill, Template template,String remark){ |
|
|
|
|
|
|
|
|
|
|
|
Boolean mark = template.getProduct().equals(StudyFormFillResourceTypeEnum.gyzj.getValue()) ? true : false; |
|
|
|
|
|
SysUser qmr = sysUserService.selectUserById(SecurityUtils.getUserId()); |
|
|
|
|
|
Long studyId = studyFormFill.getStudyId(); |
|
|
|
|
|
String resource = studyFormFill.getResource(); |
|
|
|
|
|
Map<String, Gyzj> gyzjMap = new HashMap<>(10); |
|
|
|
|
|
List<Gyzj> gyzjList = new ArrayList<>(); |
|
|
|
|
|
LinkedList<GyzjJcgj> jcgjList = new LinkedList<>(); |
|
|
|
|
|
LinkedList<GyzjTz> tzList = new LinkedList<>(); |
|
|
|
|
|
String empty = "[]"; |
|
|
|
|
|
if (StringUtils.isNotEmpty(resource) && !StringUtils.equals(empty, resource)) { |
|
|
|
|
|
List<StudyFormFillResource> studyFormFillResourceList = JSONUtil.toList(resource, StudyFormFillResource.class); |
|
|
|
|
|
List<StudyFormFillResource> tmp = studyFormFillResourceList.stream().filter(p -> (p.getType() == null && mark) || (p.getType() != null && StudyFormFillResourceTypeEnum.gyzj.getValue() == p.getType())).collect(Collectors.toList()); |
|
|
|
|
|
// 根据编号获取需要处置的列表 |
|
|
|
|
|
if (tmp.size() > 0) { |
|
|
|
|
|
List<String> bhList = tmp.stream().map(StudyFormFillResource::getBh).collect(Collectors.toList()); |
|
|
|
|
|
LambdaQueryWrapper<Gyzj> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
queryWrapper.in(Gyzj::getBh, bhList); |
|
|
|
|
|
gyzjList = this.list(queryWrapper); |
|
|
|
|
|
for (Gyzj gyzj : gyzjList) { |
|
|
|
|
|
gyzjMap.put(gyzj.getBh(), gyzj); |
|
|
|
|
|
} |
|
|
|
|
|
for (StudyFormFillResource studyFormFillResource : studyFormFillResourceList) { |
|
|
|
|
|
Gyzj gyzj = gyzjMap.get(studyFormFillResource.getBh()); |
|
|
|
|
|
//配置的更新type |
|
|
|
|
|
if (studyFormFillResource.getType() == null) { |
|
|
|
|
|
studyFormFillResource.setType(StudyFormFillResourceTypeEnum.gyzj.getValue()); |
|
|
|
|
|
} else { |
|
|
|
|
|
//使用的更新 |
|
|
|
|
|
studyFormFillResource.setMc(gyzj.getMc()); |
|
|
|
|
|
studyFormFillResource.setNd(gyzj.getNd()); |
|
|
|
|
|
studyFormFillResource.setNddw(gyzj.getNddw()); |
|
|
|
|
|
studyFormFillResource.setLy(gyzj.getLy()); |
|
|
|
|
|
if (gyzj.getSxrq() != null) { |
|
|
|
|
|
studyFormFillResource.setSxrq(DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", gyzj.getSxrq())); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
gyzj.setCczt(CcztEnum.Cc.getValue()); |
|
|
|
|
|
this.updateById(gyzj); |
|
|
|
|
|
gyzjMap.put(gyzj.getBh(), gyzj); |
|
|
|
|
|
} |
|
|
|
|
|
//更新 Resource |
|
|
|
|
|
studyFormFill.setResource(JSONObject.toJSONString(studyFormFillResourceList)); |
|
|
|
|
|
} |
|
|
|
|
|
// 存储 |
|
|
|
|
|
cc(studyFormFill, gyzjMap, jcgjList, tzList, remark, qmr); |
|
|
|
|
|
} |
|
|
|
|
|
if (jcgjList.size() > 0) { |
|
|
|
|
|
gyzjJcgjService.saveBatch(jcgjList); |
|
|
|
|
|
} |
|
|
|
|
|
if (tzList.size() > 0) { |
|
|
|
|
|
gyzjTzService.saveBatch(tzList); |
|
|
|
|
|
} |
|
|
|
|
|
if (gyzjList.size() > 0) { |
|
|
|
|
|
studyGyzjService.saveBatch(studyId, gyzjList); |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 处置、存储 |
|
|
|
|
|
|
|
|
* 存储 |
|
|
* |
|
|
* |
|
|
* @param studyFormFill |
|
|
* @param studyFormFill |
|
|
* @param gyzjMap |
|
|
* @param gyzjMap |
|
|
@ -1439,7 +1615,7 @@ public class GyzjServiceImpl extends ServiceImpl implements IG |
|
|
* @param tzList |
|
|
* @param tzList |
|
|
* @param remark |
|
|
* @param remark |
|
|
*/ |
|
|
*/ |
|
|
public void czCc(StudyFormFill studyFormFill, Map<String, Gyzj> gyzjMap, LinkedList<GyzjJcgj> jcgjList, LinkedList<GyzjTz> tzList, String remark, SysUser qmr) { |
|
|
|
|
|
|
|
|
public void cc(StudyFormFill studyFormFill, Map<String, Gyzj> gyzjMap, LinkedList<GyzjJcgj> jcgjList, LinkedList<GyzjTz> tzList, String remark, SysUser qmr) { |
|
|
String empty = "[]"; |
|
|
String empty = "[]"; |
|
|
if (gyzjMap.size() > 0) { |
|
|
if (gyzjMap.size() > 0) { |
|
|
// 存储 |
|
|
// 存储 |
|
|
@ -1467,6 +1643,22 @@ public class GyzjServiceImpl extends ServiceImpl implements IG |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 处置 |
|
|
|
|
|
* |
|
|
|
|
|
* @param studyFormFill |
|
|
|
|
|
* @param gyzjMap |
|
|
|
|
|
* @param jcgjList |
|
|
|
|
|
* @param tzList |
|
|
|
|
|
* @param remark |
|
|
|
|
|
*/ |
|
|
|
|
|
public void cz(StudyFormFill studyFormFill, Map<String, Gyzj> gyzjMap, LinkedList<GyzjJcgj> jcgjList, LinkedList<GyzjTz> tzList, String remark, SysUser qmr) { |
|
|
|
|
|
String empty = "[]"; |
|
|
|
|
|
if (gyzjMap.size() > 0) { |
|
|
|
|
|
|
|
|
// 处置,库存全变为0 |
|
|
// 处置,库存全变为0 |
|
|
String czlist = studyFormFill.getCzlist(); |
|
|
String czlist = studyFormFill.getCzlist(); |
|
|
if (StringUtils.isNotEmpty(czlist) && !StringUtils.equals(empty, czlist)) { |
|
|
if (StringUtils.isNotEmpty(czlist) && !StringUtils.equals(empty, czlist)) { |
|
|
@ -1494,6 +1686,8 @@ public class GyzjServiceImpl extends ServiceImpl implements IG |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//endregion |
|
|
//endregion |
|
|
|
|
|
|
|
|
//region 档案管理 |
|
|
//region 档案管理 |
|
|
|