package com.nanometer.smartlab.controller;
|
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
import javax.annotation.Resource;
|
|
import com.nanometer.smartlab.entity.SysUser;
|
import com.nanometer.smartlab.entity.dto.ApplyListDto;
|
import com.nanometer.smartlab.exception.BusinessException;
|
import com.nanometer.smartlab.service.SysUserService;
|
import com.nanometer.smartlab.util.FacesUtils;
|
import com.nanometer.smartlab.util.Utils;
|
import org.apache.commons.lang.StringUtils;
|
import org.apache.log4j.Logger;
|
import org.primefaces.context.RequestContext;
|
import org.primefaces.model.LazyDataModel;
|
import org.primefaces.model.SortOrder;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.context.annotation.Scope;
|
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.stereotype.Controller;
|
|
import com.nanometer.smartlab.entity.OpeUseFlow;
|
import com.nanometer.smartlab.entity.SysReagent;
|
import com.nanometer.smartlab.service.OpeUseFlowService;
|
import com.nanometer.smartlab.service.SysReagentService;
|
|
@Controller
|
@Scope("session")
|
public class OpeUseFlowInfoController extends BaseController {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = -3727385333864550393L;
|
|
private static Logger logger = Logger.getLogger(OpeUseFlowInfoController.class);
|
|
private LazyDataModel<OpeUseFlow> dataModel;
|
|
private String reagentId;
|
|
private String reagentCode;
|
private String houseName;
|
|
private Date startDate;
|
|
private Date endDate;
|
|
private Hashtable printTable;
|
|
private String containerCode;
|
|
private String operatestate;
|
|
public String getHouseName() {
|
return houseName;
|
}
|
|
public void setHouseName(String houseName) {
|
this.houseName = houseName;
|
}
|
|
@Value("${institute.name}")
|
String instituteName;
|
|
@Resource
|
private OpeUseFlowService opeUseFlowService;
|
|
@Resource
|
private SysReagentService sysReagentService;
|
|
@Resource
|
private SysUserService sysUserService;
|
|
|
private List<SysReagent> reagentSelectList;
|
|
private OpeUseFlow selectedOne;
|
|
public List<SysReagent> getReagentSelectList() {
|
if (this.reagentSelectList == null) {
|
this.initReagentSelectList();
|
}
|
return reagentSelectList;
|
}
|
|
public void setReagentSelectList(List<SysReagent> reagentSelectList) {
|
this.reagentSelectList = reagentSelectList;
|
}
|
|
private void initReagentSelectList() {
|
this.setReagentSelectList(this.sysReagentService.getSysReagentList(null,null, null, null, null, null));
|
}
|
|
public void initPage() {
|
this.initReagentSelectList();
|
}
|
|
@SuppressWarnings("serial")
|
public LazyDataModel<OpeUseFlow> getDataModel(){
|
if (this.dataModel == null) {
|
this.dataModel = new LazyDataModel<OpeUseFlow>() {
|
@Override
|
public List<OpeUseFlow> load(int first, int pageSize, String sortField, SortOrder sortOrder,
|
Map<String, Object> filters) {
|
List<OpeUseFlow> list = null;
|
try {
|
int count = opeUseFlowService.getOpeUseFlowTotalCountByName(houseName,reagentId, reagentCode, containerCode,null, getUserId(),startDate,endDate,operatestate);
|
this.setRowCount(count);
|
if (count > 0) {
|
list = opeUseFlowService.getOpeUseFlowListByName(houseName,reagentId, reagentCode, containerCode,null, getUserId(),startDate,endDate, first, pageSize,operatestate);
|
}
|
selectedOne = null;
|
} catch (Exception e) {
|
logger.error(e);
|
}
|
return list;
|
}
|
|
@Override
|
public OpeUseFlow getRowData(String rowKey) {
|
// Iterator<OpeUseFlow> iterator = this.iterator();
|
// OpeUseFlow temp = null;
|
// if(iterator!= null)
|
// {
|
// while(iterator.hasNext())
|
// {
|
// temp=iterator.next();
|
// if(rowKey.equals(temp.getId()))
|
// {
|
// return temp;
|
// }
|
// }
|
// }
|
return opeUseFlowService.selectById(rowKey);
|
}
|
};
|
}
|
|
return dataModel;
|
}
|
|
public void export2Excel() {
|
|
List<Map> list = opeUseFlowService.selectAll(houseName,reagentId, reagentCode, containerCode,getUserId(),startDate,endDate);
|
try{
|
boolean isexport = opeUseFlowService.export2Excel(list);
|
}catch (Exception e){
|
e.printStackTrace();
|
FacesUtils.warn("导出失败");
|
}
|
}
|
|
public String getReagentId() {
|
return reagentId;
|
}
|
|
public void setReagentId(String reagentId) {
|
this.reagentId = reagentId;
|
}
|
|
public String getReagentCode() {
|
return reagentCode;
|
}
|
|
public void setReagentCode(String reagentCode) {
|
this.reagentCode = reagentCode;
|
}
|
|
/**
|
* 生成领用单
|
*/
|
public void generateRecipients(OpeUseFlow ouf) {
|
String receiptNumber = ouf.getReceiptNumber();
|
String code = ouf.getReagentCode();
|
//id:个数
|
Map<String, Integer> printInfo = opeUseFlowService.getRegentInfoFromReceiptNumber(receiptNumber);
|
//无法得到当时的领用单的领用人,试剂状态表没有存入,userId会随时变化
|
printTable = null;
|
Integer sum = 0;
|
printTable = new Hashtable();
|
List<ApplyListDto> applyList = new ArrayList<>();
|
//获取当时操作状态为领取的人员
|
Map<String,String> info= opeUseFlowService.getApplyUserByReagentCode(code);
|
SysUser applyPersonInfo = sysUserService.getUser(info.get("user_id"));
|
printTable.put("head", instituteName);
|
printTable.put("title", "领用单");
|
printTable.put("applyPerson", applyPersonInfo.getName());
|
printTable.put("department", applyPersonInfo.getDepartment());
|
String time = new SimpleDateFormat("yyyy-MM-dd").format(info.get("create_time"));
|
printTable.put("date", time);
|
if (StringUtils.isNotBlank(applyPersonInfo.getPhone())){
|
printTable.put("phone", applyPersonInfo.getPhone());
|
}
|
if (StringUtils.isNotBlank(applyPersonInfo.getProject())){
|
printTable.put("project", applyPersonInfo.getProject());
|
}
|
|
printTable.put("receiptNumber", receiptNumber);
|
for (Map.Entry<String, Integer> map : printInfo.entrySet()) {
|
ApplyListDto lis = new ApplyListDto();
|
Map reagentDetail = sysReagentService.getReagentDetail(map.getKey());
|
lis.setNum(map.getValue().toString()); //数量
|
lis.setMainMetering(String.format("%s%s", reagentDetail.get("main_metering"), reagentDetail.get("unit")));
|
lis.setControlProducts((String) reagentDetail.get("controlProducts"));
|
lis.setProductName((String) reagentDetail.get("name"));
|
lis.setReagentFormat((String) reagentDetail.get("reagentFormat"));
|
lis.setProductCode((String)reagentDetail.get("productCode"));
|
lis.setMemo((String)reagentDetail.get("memo"));
|
applyList.add(lis);
|
sum += map.getValue();
|
}
|
applyList.add(new ApplyListDto("合计", "", "", "", "", String.valueOf(sum), ""));
|
printTable.put("applyList", applyList);
|
|
}
|
public Date getStartDate() {
|
if (null == startDate){
|
Date now = new Date();
|
Calendar cal = Calendar.getInstance();
|
cal.setTime(now);
|
cal.add(Calendar.DATE, -7);
|
return cal.getTime();
|
}else {
|
return startDate;
|
}
|
}
|
|
//报废试剂
|
public void scrapReagent(){
|
if (this.selectedOne == null) {
|
FacesUtils.warn("请选择");
|
return;
|
}
|
try {
|
String reagentCode = this.selectedOne.getReagentCode();
|
String reagentId = this.selectedOne.getReagent().getId();
|
opeUseFlowService.scrapReagent(reagentId, reagentCode, getUserId());
|
FacesUtils.warn("操作成功");
|
} catch (BusinessException e) {
|
FacesUtils.warn(e.getMessage());
|
} catch (Exception e) {
|
e.printStackTrace();
|
FacesUtils.warn("操作失败");
|
}
|
|
}
|
|
public void setStartDate(Date startDate) {
|
this.startDate = startDate;
|
}
|
|
public Date getEndDate() {
|
if (null == endDate){
|
return new Date();
|
}else {
|
return endDate;
|
}
|
}
|
|
public void setEndDate(Date endDate) {
|
this.endDate = endDate;
|
}
|
|
|
public Hashtable getPrintTable() {
|
return printTable;
|
}
|
|
public void setPrintTable(Hashtable printTable) {
|
this.printTable = printTable;
|
}
|
|
public String getContainerCode() {
|
return containerCode;
|
}
|
|
public void setContainerCode(String containerCode) {
|
this.containerCode = containerCode;
|
}
|
|
public OpeUseFlow getSelectedOne() {
|
return selectedOne;
|
}
|
|
public void setSelectedOne(OpeUseFlow selectedOne) {
|
this.selectedOne = selectedOne;
|
}
|
|
public void setOperatestate(String operatestate) {
|
this.operatestate = operatestate;
|
}
|
|
public String getOperatestate(){
|
return operatestate;
|
}
|
}
|