lyfO_o
2021-06-25 1b0cec788ca49a6c641f84c2bf0e616049c22e70
src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
@@ -8,9 +8,7 @@
import javax.annotation.Resource;
import com.nanometer.smartlab.dao.BaseMetaDao;
import com.nanometer.smartlab.dao.SysLaboratoryContainerDao;
import com.nanometer.smartlab.dao.SysWarehouseContainerDao;
import com.nanometer.smartlab.dao.*;
import com.nanometer.smartlab.entity.*;
import com.nanometer.smartlab.entity.dto.PersonUseDetail;
import com.nanometer.smartlab.entity.enumtype.OperateStatus;
@@ -25,7 +23,6 @@
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.nanometer.smartlab.dao.OpeUseFlowDao;
import com.nanometer.smartlab.entity.enumtype.ArrivalStatus;
import com.nanometer.smartlab.entity.enumtype.SeeFlag;
import com.nanometer.smartlab.exception.AlarmCode;
@@ -59,6 +56,8 @@
    private SysReagentService sysReagentService;
    @Resource
    private BaseMetaDao baseMetaDao;
    @Resource
    private OpeReagentStatusDao opeReagentStatusDao;
    @Transactional(propagation = Propagation.REQUIRED)
@@ -540,4 +539,41 @@
        return opeUseFlowDao.countOpeUseFlow(opeUseFlow);
    }
    @Override
    @Transactional
    public void scrapReagent(String reagentId,String reagentCode, String userId) {
        //1.试剂状态表更新试剂状态为报废
        OpeReagentStatus status = opeReagentStatusService.getStatus(reagentId, reagentCode);
        if (status.getStatus() == ArrivalStatus.SCRAP) {
            throw new BusinessException(ExceptionEnumCode.PARAM_ERR,"该试剂已是报废状态,无法进行操作");
        }
        //报废
        status.setStatus(ArrivalStatus.SCRAP);
        status.setUserId(userId);
        opeReagentStatusDao.updateOpeReagentStatusDao(status);
        //2.插入一条报废的流向记录
        OpeUseFlow useFlow = new OpeUseFlow();
        //获取报废状态id
        Map<String, Object> params = new HashMap<>();
        params.put("groupId", "operate_status");
        params.put("metaKey", String.valueOf(OperateStatus.SCRAP.getKey()));
        List<BaseMeta> baseMetas = baseMetaDao.getBaseMetaList(params);
        useFlow.setOperateState(baseMetas.get(0).getId());
        useFlow.setReagentCode(reagentCode);
        useFlow.setContainerId(status.getContainerId());
        useFlow.setHouseId(status.getHouseId());
        useFlow.setUserId(userId);
        useFlow.setPlace(status.getPlace());
        useFlow.setRemainder(status.getRemainder());
        useFlow.setStoreType(status.getStoreType());
        useFlow.setProject(status.getProjectNum());
        useFlow.setArticleNumber(status.getArticleNumber());
        useFlow.setCreateTime(new Timestamp(new Date().getTime()));
        useFlow.setId(IDUtils.uuid());
        opeUseFlowDao.insertOpeUseFlow(useFlow);
    }
}