李宇
2021-01-27 d6c65a4e3d1ca7d9a7bd6806c99fee035d0a44eb
src/main/java/com/nanometer/smartlab/controller/OpeUseFlowInfoController.java
@@ -1,13 +1,21 @@
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.service.SysUserService;
import com.nanometer.smartlab.util.Utils;
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;
@@ -37,6 +45,8 @@
   private Date endDate;
   private Hashtable printTable;
   public String getHouseName() {
      return houseName;
   }
@@ -45,11 +55,18 @@
      this.houseName = houseName;
   }
   @Value("${institute.name}")
   String instituteName;
   @Resource
   private OpeUseFlowService opeUseFlowService;
   @Resource
   private SysReagentService sysReagentService;
   @Resource
   private SysUserService sysUserService;
   private List<SysReagent> reagentSelectList;
@@ -132,7 +149,48 @@
      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);
      Map applyPersonInfo = sysUserService.getUser(info.get("user_id"));
      printTable.put("head", instituteName);
      printTable.put("title", "领用单");
      printTable.put("applyPerson", applyPersonInfo.get("name"));
      printTable.put("department", applyPersonInfo.get("meta_value"));
      String time = new SimpleDateFormat("yyyy-MM-dd").format(info.get("create_time"));
      printTable.put("date", time);
      printTable.put("phone", applyPersonInfo.get("phone"));
      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();
@@ -160,4 +218,13 @@
   public void setEndDate(Date endDate) {
      this.endDate = endDate;
   }
   public Hashtable getPrintTable() {
      return printTable;
   }
   public void setPrintTable(Hashtable printTable) {
      this.printTable = printTable;
   }
}