From 47a751cb301d05276ae5d75145d57b2d090fe4e1 Mon Sep 17 00:00:00 2001 From: kongzy <kongzy> Date: 星期一, 01 七月 2024 10:58:35 +0800 Subject: [PATCH] change --- src/main/java/com/nanometer/smartlab/controller/SupplierOrderMngController.java | 202 ++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 170 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/controller/SupplierOrderMngController.java b/src/main/java/com/nanometer/smartlab/controller/SupplierOrderMngController.java index f845f17..bc010cf 100644 --- a/src/main/java/com/nanometer/smartlab/controller/SupplierOrderMngController.java +++ b/src/main/java/com/nanometer/smartlab/controller/SupplierOrderMngController.java @@ -1,30 +1,39 @@ 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. @@ -117,19 +126,19 @@ 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; } @@ -230,11 +239,19 @@ 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; @@ -247,8 +264,8 @@ 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; @@ -290,7 +307,7 @@ 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())); @@ -331,7 +348,7 @@ 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())); @@ -358,7 +375,7 @@ 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(); @@ -449,9 +466,9 @@ 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())); @@ -459,10 +476,10 @@ 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())); @@ -494,6 +511,115 @@ } 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(){ @@ -559,13 +685,14 @@ 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 { @@ -768,7 +895,7 @@ //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; @@ -785,10 +912,10 @@ 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) { @@ -802,8 +929,8 @@ //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()); @@ -932,11 +1059,11 @@ 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){ @@ -971,11 +1098,11 @@ { 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()); @@ -1019,7 +1146,7 @@ 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) { @@ -1034,9 +1161,9 @@ 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); @@ -1067,4 +1194,15 @@ { this.menuController.backToPage(); } + + public List<OpeReagentCode> getReagentCodeList() { + return reagentCodeList; + } + + public List<Map> getViewReagentCodeList() { + return viewReagentCodeList; + } + public void setReagentCodeList(List<OpeReagentCode> reagentCodeList) { + this.reagentCodeList = reagentCodeList; + } } -- Gitblit v1.9.2