From 3ec412f3cdc8b114cf629e866a7b7b80687a3442 Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: Mon, 18 Jan 2021 10:09:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'remotes/origin/yufei' into master
---
src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java | 79 ++++++++++++++++++++++++++++++++++++++-
1 files changed, 77 insertions(+), 2 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java
index 1f61365..08482d6 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeApplyServiceImpl.java
@@ -3,6 +3,7 @@
import com.nanometer.smartlab.dao.OpeApplyDao;
import com.nanometer.smartlab.entity.OpeApply;
import com.nanometer.smartlab.entity.OpeApplyReserve;
+import com.nanometer.smartlab.entity.OpeOrder;
import com.nanometer.smartlab.entity.SysUser;
import com.nanometer.smartlab.entity.enumtype.ApplyStatus;
import com.nanometer.smartlab.entity.enumtype.SeeFlag;
@@ -40,6 +41,12 @@
@Resource(name = "opeApplyDao")
OpeApplyDao opeApplyDao;
+ @Resource
+ OpeOrderService opeOrderService;
+ @Resource
+ OpeReagentStatusService opeReagentStatusService;
+ @Resource
+ OpeWarehouseReserveService opeWarehouseReserveService;
@Resource
private SysUserService sysUserService;
@@ -519,12 +526,15 @@
}
@Override
- public int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName) {
+ public int getOpeApplyReserveTotalCountByNameFor(String id,String reagentName, String personName,String productSn,String applyCode,Integer status) {
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("reagentName", reagentName);
params.put("personName", personName);
params.put("userId",id);
+ params.put("productSn",productSn);
+ params.put("applyCode",applyCode);
+ params.put("status",status);
return this.opeApplyDao.getOpeApplyReserveTotalCountFor(params);
} catch (DataAccessException e) {
logger.error(e.getMessage(), e);
@@ -534,7 +544,7 @@
}
@Override
public List<OpeApplyReserve> getOpeApplyReserveListByNameFor(String id,String reagentName, String personName, Integer first,
- Integer pageSize) {
+ Integer pageSize,String productSn,String applyCode,Integer status) {
try {
Map<String, Object> params = new HashMap<String, Object>();
params.put("reagentName", reagentName);
@@ -542,6 +552,9 @@
params.put("userId",id);
params.put("first", first);
params.put("pageSize", pageSize);
+ params.put("productSn",productSn);
+ params.put("applyCode",applyCode);
+ params.put("status",status);
return this.opeApplyDao.getOpeApplyReserveListFor(params);
} catch (DataAccessException e) {
logger.error(e.getMessage(), e);
@@ -633,4 +646,66 @@
params.put("oldReId",oldReId);
this.opeApplyDao.updateByReId(params);
}
+
+ @Override
+ public OpeApplyReserve getOpeApplyDetail(String id) {
+ return opeApplyDao.getOpeApplyDetail(id);
+ }
+
+ @Override
+ public void updateOpeApplyInfo(ApplyStatus storage, String consigneeId, Timestamp arrivalTime, String applyId) {
+ Map<String,Object> params = new HashMap();
+ params.put("status", storage);
+ params.put("consigneeId", consigneeId);
+ params.put("arrivalTime", arrivalTime);
+ params.put("applyId", applyId);
+ opeApplyDao.updateOpeApplyInfo(params);
+ }
+
+ @Override
+ @Transactional
+ public void orderInputWarehouse(List<OpeApplyReserve> opeApplyList,String consigneeId,Timestamp arrivalTime) {
+ for (OpeApplyReserve opeApplyReserve:opeApplyList) {
+ //0.1获取该申购单的订单
+ OpeOrder oo = opeOrderService.getOrder(opeApplyReserve.getId());
+ if (oo == null) {
+ throw new BusinessException(ExceptionEnumCode.ORDER_ERROR,"订单不存在");
+ }
+ //0.2检查条码->得到试剂条码列表
+ List<String> codeList = opeReagentStatusService
+ .checkReagentCode(opeApplyReserve.getStartReagentCode2(), opeApplyReserve.getEndReagentCode2(), opeApplyReserve.getArrivalNum());
+ //1.入库
+ if (codeList == null){
+ //无条码入库 不需要增加状态和流向
+ //1.1库存表增加
+ opeWarehouseReserveService.insertOpeWarehouseReserve2(opeApplyReserve, oo);
+ }else{
+ //条码入库
+ assert codeList.size() > 0;
+ //1.1入库(库存表增加)
+ opeWarehouseReserveService.insertOpeWarehouseReserve2(opeApplyReserve, oo);
+ //1.2试剂状态表增加,流向增加
+ opeReagentStatusService.orderInputWarehouseReagentStatusAndUseFlow(opeApplyReserve,consigneeId,codeList,oo);
+ }
+ //2.更改申购单所属订单状态(判断子订单是否全部完成)
+ //2.1更改该申购单的状态,收货人和到货时间
+ this.updateOpeApplyInfo(ApplyStatus.STORAGE,consigneeId,arrivalTime, opeApplyReserve.getId());
+ //2.2更改订单状态
+ List<OpeApply> oas = opeOrderService.getOpeApplyListByOrder(oo.getId());
+ assert oas.size() > 0;
+ //子订单是否全部入库,是则父单为完成,否则未完成
+ boolean flag = oas.stream().allMatch(oa -> oa.getStatus() == ApplyStatus.STORAGE);
+ oo.setConsigneeUserId(consigneeId);
+ oo.setArrivalTime(arrivalTime);
+ if (flag){
+ oo.setStatus(ApplyStatus.FINISHED);
+ opeOrderService.updateOpeOrderStatus(oo);
+ }else{
+ oo.setStatus(ApplyStatus.UNCOMPLETED);
+ opeOrderService.updateOpeOrder(oo);
+ }
+
+ }
+ }
+
}
--
Gitblit v1.9.2