| | |
| | | package com.nanometer.smartlab.controller; |
| | | |
| | | import cn.hutool.extra.qrcode.QrCodeUtil; |
| | | import cn.hutool.extra.qrcode.QrConfig; |
| | | import com.nanometer.smartlab.dao.OpeReagentCodeDao; |
| | | import com.nanometer.smartlab.entity.*; |
| | | import com.nanometer.smartlab.entity.enumtype.ApplyStatus; |
| | | import com.nanometer.smartlab.service.*; |
| | | import com.nanometer.smartlab.util.Constants; |
| | | import com.nanometer.smartlab.util.ExcelUtil; |
| | | import com.nanometer.smartlab.util.FacesUtils; |
| | | import com.nanometer.smartlab.util.StringToolUtils; |
| | | import org.apache.log4j.Logger; |
| | | import org.apache.poi.hssf.usermodel.HSSFRow; |
| | | import org.apache.poi.hssf.usermodel.HSSFSheet; |
| | | import org.apache.poi.hssf.usermodel.HSSFWorkbook; |
| | | import org.primefaces.context.RequestContext; |
| | | import org.primefaces.model.LazyDataModel; |
| | | import org.primefaces.model.SortOrder; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Scope; |
| | | import org.springframework.stereotype.Controller; |
| | | import org.primefaces.context.RequestContext; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.faces.context.FacesContext; |
| | | import javax.servlet.ServletOutputStream; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.awt.*; |
| | | import java.awt.image.BufferedImage; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.math.BigDecimal; |
| | | import java.sql.Timestamp; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * Created by nph on 18/04/30. |
| | |
| | | this.status = status; |
| | | } |
| | | |
| | | public String getReagentId() { |
| | | public Long getReagentId() { |
| | | return reagentId; |
| | | } |
| | | |
| | | public void setReagentId(String reagentId) { |
| | | public void setReagentId(Long reagentId) { |
| | | this.reagentId = reagentId; |
| | | } |
| | | |
| | | public Map<String, Integer> getMap() { |
| | | public Map<Long, Integer> getMap() { |
| | | return map; |
| | | } |
| | | |
| | | public void setMap(Map<String, Integer> map) { |
| | | public void setMap(Map<Long, Integer> map) { |
| | | this.map = map; |
| | | } |
| | | |
| | |
| | | |
| | | private Integer status; |
| | | |
| | | private String reagentId; |
| | | private Long reagentId; |
| | | |
| | | private Map<String,Integer> map;//键是试剂id,值是申购数量 |
| | | private Map<Long,Integer> map;//键是试剂id,值是申购数量 |
| | | |
| | | private List<ApplyStatus> orderStatusSelectList; |
| | | |
| | | private List<OpeReagentCode> reagentCodeList; |
| | | |
| | | private List<Map> viewReagentCodeList; |
| | | |
| | | @Resource |
| | | private OpeReagentCodeDao opeReagentCodeDao; |
| | | |
| | | |
| | | public Timestamp getOrderEndTime() { |
| | | return orderEndTime; |
| | |
| | | public void initOpeOrder() |
| | | { |
| | | SysUser user = sysUserService.getSysUser(getUserId()); |
| | | String roleId = user.getRoleId(); |
| | | if(!roleId.equalsIgnoreCase("15fc90a1f7bf43bda01313904b543195") && !roleId.equalsIgnoreCase("b2f15b6f57984f1ca36cdb82812d559b")) |
| | | Long roleId = user.getRoleId(); |
| | | if(roleId!=1l && roleId!=4l) |
| | | { |
| | | allOpeOrder = new ArrayList<OpeOrder>(); |
| | | return; |
| | |
| | | Double a=0.00; |
| | | BigDecimal total=BigDecimal.valueOf(a); |
| | | for (int j=0;j<ids.size();j++) { |
| | | OpeApply app=opeApplyService.getOpeApply(ids.get(j).toString()); |
| | | OpeApply app=opeApplyService.getOpeApply(Long.valueOf(ids.get(j).toString())); |
| | | if(app.getStockFlag()!=0){//判断申购试剂是否缺货 |
| | | if(app.getApplyPrice()!=null){//判断试剂是否有实际售价 |
| | | BigDecimal b=app.getApplyPrice().multiply(BigDecimal.valueOf(app.getNum())); |
| | |
| | | Double a=0.00; |
| | | BigDecimal total=BigDecimal.valueOf(a); |
| | | for (int j=0;j<ids.size();j++) { |
| | | OpeApply app=opeApplyService.getOpeApply(ids.get(j).toString()); |
| | | OpeApply app=opeApplyService.getOpeApply(Long.valueOf(ids.get(j).toString())); |
| | | if(app.getStockFlag()!=0){//判断申购试剂是否缺货 |
| | | if(app.getApplyPrice()!=null){//判断试剂是否有实际售价 |
| | | BigDecimal b=app.getApplyPrice().multiply(BigDecimal.valueOf(app.getNum())); |
| | |
| | | if(allOpeOrder != null && allOpeOrder.size() > 0) |
| | | { |
| | | int count = allOpeOrder.size(); |
| | | List<String> opeApplyIds = new ArrayList<String>(); |
| | | List<Long> opeApplyIds = new ArrayList<Long>(); |
| | | for(int i=0;i<count;i++) |
| | | { |
| | | SupplierOrder order = new SupplierOrder(); |
| | |
| | | dataRow.createCell(1).setCellValue(String.valueOf(dataList.get(i).getCreateTime())); |
| | | dataRow.createCell(2).setCellValue(dataList.get(i).getReagent().getProductSn()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductSn())); |
| | | dataRow.createCell(3).setCellValue(dataList.get(i).getReagent().getName()== null ? "": String.valueOf(dataList.get(i).getReagent().getName())); |
| | | dataRow.createCell(4).setCellValue(dataList.get(i).getReagent().getControlProducts()== null ? "": String.valueOf(baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getControlProducts()))); |
| | | dataRow.createCell(5).setCellValue(dataList.get(i).getReagent().getReagentFormat()== null ? "": String.valueOf(baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getReagentFormat()))); |
| | | dataRow.createCell(6).setCellValue(dataList.get(i).getReagent().getMainMetering()== null ? "": String.valueOf(dataList.get(i).getReagent().getMainMetering())+baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getReagentUnit())); |
| | | dataRow.createCell(4).setCellValue(dataList.get(i).getReagent().getControlProducts()== null ? "": String.valueOf(dataList.get(i).getReagent().getControlProducts())); |
| | | dataRow.createCell(5).setCellValue(dataList.get(i).getReagent().getReagentFormat()== null ? "": String.valueOf(dataList.get(i).getReagent().getReagentFormat())); |
| | | dataRow.createCell(6).setCellValue(dataList.get(i).getReagent().getMainMetering()== null ? "": String.valueOf(dataList.get(i).getReagent().getMainMetering())+dataList.get(i).getReagent().getReagentUnit()); |
| | | total = dataList.get(i).getNum();//getReagentNum(dataList.get(i).getReagent().getId()); |
| | | dataRow.createCell(7).setCellValue(String.valueOf(total)); |
| | | dataRow.createCell(8).setCellValue(dataList.get(i).getReagent().getPrice()== null ? "": String.valueOf(dataList.get(i).getReagent().getPrice())); |
| | |
| | | dataRow.createCell(10).setCellValue(dataList.get(i).getApplyPrice()==null ? String.valueOf(dataList.get(i).getReagent().getPrice()):String.valueOf(dataList.get(i).getApplyPrice())); |
| | | dataRow.createCell(11).setCellValue(dataList.get(i).getApplyPrice()==null?String.valueOf(dataList.get(i).getReagent().getPrice().multiply(new BigDecimal(total))):String.valueOf(dataList.get(i).getApplyPrice().multiply(new BigDecimal(total)))); |
| | | dataRow.createCell(12).setCellValue(dataList.get(i).getReagent().getCas()== null ? "": String.valueOf(dataList.get(i).getReagent().getCas())); |
| | | dataRow.createCell(13).setCellValue(dataList.get(i).getReagent().getReagentCharacter()== null ? "": String.valueOf(baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getReagentCharacter()))); |
| | | dataRow.createCell(13).setCellValue(dataList.get(i).getReagent().getReagentCharacter()== null ? "": String.valueOf(dataList.get(i).getReagent().getReagentCharacter())); |
| | | dataRow.createCell(14).setCellValue(dataList.get(i).getReagent().getProductHomeName()== null ? "": String.valueOf(dataList.get(i).getReagent().getProductHomeName())); |
| | | dataRow.createCell(15).setCellValue(dataList.get(i).getReagent().getSupplierName()== null ? "":String.valueOf(dataList.get(i).getReagent().getSupplierName())); |
| | | dataRow.createCell(16).setCellValue(dataList.get(i).getReagent().getReagentType()== null ? "": String.valueOf(baseMetaService.getBaseMetaValue(dataList.get(i).getReagent().getReagentType()))); |
| | | dataRow.createCell(16).setCellValue(dataList.get(i).getReagent().getReagentType()== null ? "": String.valueOf(dataList.get(i).getReagent().getReagentType())); |
| | | dataRow.createCell(17).setCellValue(String.valueOf(dataList.get(i).getProjectOwner())); |
| | | dataRow.createCell(18).setCellValue(String.valueOf(dataList.get(i).getProjectId())); |
| | | dataRow.createCell(19).setCellValue(String.valueOf(dataList.get(i).getProjectName())); |
| | |
| | | } |
| | | this.viewOpeApply=this.opeApplyService.getOpeApply(this.selectedViewList.get(0).getId()); |
| | | RequestContext.getCurrentInstance().execute("PF('dialogStock').show()"); |
| | | } |
| | | |
| | | public void onPrintBarcodeClick(){ |
| | | if (this.selectedViewList == null |
| | | || this.selectedViewList.size() == 0) { |
| | | FacesUtils.warn("请选择数据。"); |
| | | return; |
| | | } |
| | | if (this.selectedViewList.size() > 1) { |
| | | FacesUtils.warn("只能选择一个数据进行打印。"); |
| | | return; |
| | | } |
| | | List<OpeReagentCode> reagentCodes=this.opeReagentCodeDao.getReagentCodeByApplyId(this.selectedViewList.get(0).getId()); |
| | | if(reagentCodes.size()==0){ |
| | | FacesUtils.warn("未生成标签编码"); |
| | | return; |
| | | } |
| | | //生成标签 |
| | | for(OpeReagentCode opeReagentCode:reagentCodes){ |
| | | List<String> rCodes=new ArrayList<>(); |
| | | int startCode=opeReagentCode.getStartCode(); |
| | | int endCode=opeReagentCode.getEndCode(); |
| | | for(int i=startCode;i<=endCode;i++){ |
| | | String lastCode= StringToolUtils.addZeroForNum(String.valueOf(i),4); |
| | | String rcode=String.format("%s%s",opeReagentCode.getCodePrex(),lastCode); |
| | | rCodes.add(rcode); |
| | | } |
| | | opeReagentCode.setReagentCodes(rCodes); |
| | | //获取试剂信息 |
| | | opeReagentCode.setReagent(opeApplyService.getReagentByApplyId(opeReagentCode.getApplyId())); |
| | | } |
| | | this.reagentCodeList=reagentCodes; |
| | | RequestContext.getCurrentInstance().execute("PF('dialogReagentCode').show()"); |
| | | } |
| | | public void onPrintSingleBarcodeClick(String reagentCode){ |
| | | List<OpeReagentCode>tmpList=this.reagentCodeList; |
| | | List<String> rCodes=new ArrayList<>(); |
| | | rCodes.add(reagentCode); |
| | | tmpList.get(0).setReagentCodes(rCodes); |
| | | this.reagentCodeList=tmpList; |
| | | RequestContext.getCurrentInstance().execute("PF('dialogReagentCode').show()"); |
| | | } |
| | | |
| | | public void onViewBarcodeClick(){ |
| | | if (this.selectedViewList == null |
| | | || this.selectedViewList.size() == 0) { |
| | | FacesUtils.warn("请选择数据。"); |
| | | return; |
| | | } |
| | | if (this.selectedViewList.size() > 1) { |
| | | FacesUtils.warn("只能选择一个数据进行打印。"); |
| | | return; |
| | | } |
| | | List<OpeReagentCode> reagentCodes=this.opeReagentCodeDao.getReagentCodeByApplyId(this.selectedViewList.get(0).getId()); |
| | | if(reagentCodes.size()==0){ |
| | | FacesUtils.warn("未生成标签编码"); |
| | | return; |
| | | } |
| | | List<Map> reagentCodeList=new ArrayList<>(); |
| | | |
| | | for(OpeReagentCode opeReagentCode:reagentCodes) { |
| | | //获取试剂信息 |
| | | SysReagent reagent=opeApplyService.getReagentByApplyId(opeReagentCode.getApplyId()); |
| | | //生成标签 |
| | | List<String> rCodes=new ArrayList<>(); |
| | | int startCode=opeReagentCode.getStartCode(); |
| | | int endCode=opeReagentCode.getEndCode(); |
| | | for (int i = startCode; i <= endCode; i++) { |
| | | Map reagentMap = new HashMap(); |
| | | String lastCode = StringToolUtils.addZeroForNum(String.valueOf(i), 4); |
| | | String rcode = String.format("%s%s", opeReagentCode.getCodePrex(), lastCode); |
| | | rCodes.add(rcode); |
| | | reagentMap.put("applyId", opeReagentCode.getApplyId()); |
| | | reagentMap.put("reagentCode", rcode); |
| | | reagentMap.put("name", reagent.getName()); |
| | | reagentMap.put("cas", reagent.getCas()); |
| | | reagentMap.put("reagentCharacter", reagent.getReagentCharacter()); |
| | | reagentCodeList.add(reagentMap); |
| | | } |
| | | opeReagentCode.setReagentCodes(rCodes); |
| | | //获取试剂信息 |
| | | opeReagentCode.setReagent(reagent); |
| | | } |
| | | this.viewReagentCodeList=reagentCodeList; |
| | | this.reagentCodeList=reagentCodes; |
| | | RequestContext.getCurrentInstance().execute("PF('viewReagentCodeList').show()"); |
| | | } |
| | | |
| | | public String getQrcode(String reagentCode){ |
| | | QrConfig qrConfig=new QrConfig(50,50); |
| | | //设置边距,即二维码和边框的距离 |
| | | qrConfig.setMargin(1); |
| | | // qrConfig.setForeColor(Color.WHITE.getRGB()); |
| | | // qrConfig.setBackColor(Color.BLACK.getRGB()); |
| | | byte[] image= QrCodeUtil.generatePng(reagentCode,qrConfig); |
| | | String base64Image= Base64.getEncoder().encodeToString(image); |
| | | return base64Image; |
| | | |
| | | } |
| | | |
| | | public void onCancelPrintBtnClick(){ |
| | | this.reagentCodeList = new ArrayList<>(); |
| | | RequestContext.getCurrentInstance().execute("PF('dialogReagentCode').hide()"); |
| | | } |
| | | |
| | | public void onPrintClick(){ |
| | | //打印条码 |
| | | this.reagentCodeList = new ArrayList<>(); |
| | | RequestContext.getCurrentInstance().execute("PF('dialogReagentCode').hide()"); |
| | | } |
| | | |
| | | public void onOutOfStock(){ |
| | |
| | | List<SysReagent> tempReagents = new ArrayList<SysReagent>(); |
| | | List<OpeApply> opeApplyList1 = new ArrayList<>(); |
| | | map=null; |
| | | Map<String, Integer> tempMap = new HashMap<String,Integer>(); |
| | | Map<Long, Integer> tempMap = new HashMap<Long,Integer>(); |
| | | |
| | | for(SupplierOrder order :selectedList) |
| | | { |
| | | for(String applyId : order.getApplyIds()) |
| | | for(Object applyId : order.getApplyIds()) |
| | | { |
| | | OpeApply apply = opeApplyService.getOpeApply(applyId); |
| | | |
| | | OpeApply apply = opeApplyService.getOpeApply(Long.valueOf((String) applyId)); |
| | | if(apply.getApplyPrice()!=null){ |
| | | |
| | | }else { |
| | |
| | | //Map<String,List<OpeApply>> realDataMap = new HashMap<>(); |
| | | |
| | | |
| | | Map<String, Integer> tempMap = new HashMap<String,Integer>(); |
| | | Map<Long, Integer> tempMap = new HashMap<Long,Integer>(); |
| | | List<OpeApply> realDataList = new ArrayList<>(); |
| | | map=null; |
| | | List<SysProject> projects = null; |
| | |
| | | List ids = Arrays.asList(order.getIds().split(",")); |
| | | order.setApplyIds(ids); |
| | | } |
| | | for(String applyId : order.getApplyIds()) |
| | | for(Long applyId : order.getApplyIds()) |
| | | { |
| | | opeApply = opeApplyService.getOpeApply(applyId); |
| | | System.out.println("objective==========="+opeApply.getObjective()); |
| | | System.out.println("projectId==========="+opeApply.getProjectId()); |
| | | System.out.println(opeApply.getReagent().getName()+" "+opeApply.getReagent().getControlProducts()); |
| | | if( opeApply != null) |
| | | { |
| | |
| | | //opeApply.setOwnerDepartment(user1.getDepartment()); |
| | | //System projectUser= |
| | | opeApply.setOwnerDepartment(sysUserService.getSysUserForSuppllier(opeApply.getApplyUserId()).getDepartment()); |
| | | opeApply.setProjectId(opeApply.getObjective()); |
| | | projects = sysProjectService.getSysProjectListByProjectId(opeApply.getObjective()); |
| | | opeApply.setProjectId(opeApply.getProjectId()); |
| | | projects = sysProjectService.getSysProjectListByProjectNo("opeApply.getProjectId()"); |
| | | if(projects != null && !projects.isEmpty()) |
| | | { |
| | | opeApply.setProjectOwner(projects.get(0).getUsername()); |
| | |
| | | List<SysReagent> tempReagents = new ArrayList<SysReagent>(); |
| | | List<OpeApply> opeApplyList1 = new ArrayList<>(); |
| | | |
| | | Map<String, Integer> tempMap = new HashMap<String,Integer>(); |
| | | Map<Long, Integer> tempMap = new HashMap<Long,Integer>(); |
| | | |
| | | for(SupplierOrder order :selectedList) |
| | | { |
| | | for(String applyId : order.getApplyIds()) |
| | | for(Long applyId : order.getApplyIds()) |
| | | { |
| | | OpeApply apply = opeApplyService.getOpeApply(applyId); |
| | | if(apply.getApplyPrice()!=null){ |
| | |
| | | { |
| | | List<SysReagent> tempReagents = new ArrayList<SysReagent>(); |
| | | |
| | | Map<String, Integer> tempMap = new HashMap<String,Integer>(); |
| | | Map<Long, Integer> tempMap = new HashMap<Long,Integer>(); |
| | | |
| | | for(SupplierOrder order :selectedList) |
| | | { |
| | | for(String applyId : order.getApplyIds()) |
| | | for(Long applyId : order.getApplyIds()) |
| | | { |
| | | OpeApply apply = opeApplyService.getOpeApply(applyId); |
| | | tempReagents.add(apply.getReagent()); |
| | |
| | | this.menuController.goToPage(Constants.PAGE_CANCEL_ORDER_MNG, Constants.PAGE_SUPPLIER_ORDER_MNG); |
| | | } |
| | | |
| | | public Integer getReagentNum(String key) |
| | | public Integer getReagentNum(Long key) |
| | | { |
| | | if(map == null) |
| | | { |
| | |
| | | for(SupplierOrder order :selectedList) |
| | | { |
| | | OpeOrder temp = opeOrderService.getOpeOrder(order.getId()); |
| | | for(String id : order.getApplyIds()) |
| | | for(Object id : order.getApplyIds()) |
| | | { |
| | | opeApply = opeApplyService.getOpeApply(id); |
| | | opeApply = opeApplyService.getOpeApply(Long.valueOf((String)id)); |
| | | if(opeApply != null) |
| | | { |
| | | opeApply.setStatus(ApplyStatus.SUPPLIER_CONFIRM); |
| | |
| | | { |
| | | this.menuController.backToPage(); |
| | | } |
| | | |
| | | public List<OpeReagentCode> getReagentCodeList() { |
| | | return reagentCodeList; |
| | | } |
| | | |
| | | public List<Map> getViewReagentCodeList() { |
| | | return viewReagentCodeList; |
| | | } |
| | | public void setReagentCodeList(List<OpeReagentCode> reagentCodeList) { |
| | | this.reagentCodeList = reagentCodeList; |
| | | } |
| | | } |