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 | 299 +++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 228 insertions(+), 71 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/controller/SupplierOrderMngController.java b/src/main/java/com/nanometer/smartlab/controller/SupplierOrderMngController.java index 645d012..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; @@ -269,35 +286,28 @@ try { if(allOpeOrder != null && allOpeOrder.size() > 0) { - int count = allOpeOrder.size(); - this.setRowCount(count); - //list = queryByPage(); - list = supplierOpeOrderService.getSupplierOpeOrderList(orderCode,applyCode,status,orderTime,orderEndTime,first,pageSize); - for(int i=0;i<list.size();i++){ - System.out.println(list.get(i)); - /*if(list.get(i).getSecondUserName()!=null&&!list.get(i).getSecondUserName().equals("")){ - String name=list.get(i).getApproveUserName(); - list.get(i).setApproveUserName(list.get(i).getSecondUserName()); - list.get(i).setSecondUserName(name); - }*/ - if(list.get(i).getBeforeApproveUserId()!=null&&!list.get(i).getBeforeApproveUserId().equals("")){ - String name=list.get(i).getApproveUserName(); - list.get(i).setFirst(list.get(i).getFirName()); - list.get(i).setSecond(name); - }else { - list.get(i).setFirst(list.get(i).getApproveUserName()); - list.get(i).setSecond(list.get(i).getSecondUserName()); - } +// int count = allOpeOrder.size(); + this.setRowCount(supplierOpeOrderService.SupplierOpeOrderTotal(orderCode,applyCode,status,orderTime,orderEndTime)); + + list = supplierOpeOrderService.getSupplierOpeOrderList(orderCode,applyCode,status,orderTime,orderEndTime,first,pageSize); + for (int i=0;i<list.size();i++) { + if (list.get(i).getBeforeApproveUserId() != null && !list.get(i).getBeforeApproveUserId().equals("")) { + String name = list.get(i).getApproveUserName(); + list.get(i).setFirst(list.get(i).getFirName()); + list.get(i).setSecond(name); + } else { + list.get(i).setFirst(list.get(i).getApproveUserName()); + list.get(i).setSecond(list.get(i).getSecondUserName()); } - for (SupplierOrder supplierOrder:list - ) { + } + for (SupplierOrder supplierOrder:list) { if(supplierOrder.getIds()!=null&&!supplierOrder.getIds().equals("")){ List ids = Arrays.asList(supplierOrder.getIds().split(",")); supplierOrder.setApplyIds(ids); 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())); @@ -313,6 +323,7 @@ } } } + selectedList = new ArrayList<> (); } catch (Exception e) { logger.error(e); } @@ -321,17 +332,36 @@ @Override public SupplierOrder getRowData(String rowKey) { - Iterator<SupplierOrder> iterator = this.iterator(); - if (iterator != null) { - SupplierOrder ss = null; - while (iterator.hasNext()) { - ss = iterator.next(); - if (rowKey.equals(ss.getId())) { - return ss; - } - } - } - return null; + SupplierOrder supplierOrder = supplierOpeOrderService.selectById(rowKey); + if (supplierOrder.getBeforeApproveUserId() != null && !supplierOrder.getBeforeApproveUserId().equals("")) { + String name = supplierOrder.getApproveUserName(); + supplierOrder.setFirst(supplierOrder.getFirName()); + supplierOrder.setSecond(name); + } else { + supplierOrder.setFirst(supplierOrder.getApproveUserName()); + supplierOrder.setSecond(supplierOrder.getSecondUserName()); + } + + if(supplierOrder.getIds()!=null&&!supplierOrder.getIds().equals("")){ + List ids = Arrays.asList(supplierOrder.getIds().split(",")); + supplierOrder.setApplyIds(ids); + Double a=0.00; + BigDecimal total=BigDecimal.valueOf(a); + for (int j=0;j<ids.size();j++) { + 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())); + total=b.add(total); + }else{ + BigDecimal c=app.getReagent().getPrice().multiply(BigDecimal.valueOf(app.getNum())); + total=c.add(total); + } + } + } + supplierOrder.setTotalPrice(total.doubleValue()); + } + return supplierOrder; } }; } @@ -345,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(); @@ -436,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())); @@ -446,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())); @@ -462,7 +492,8 @@ }else { dataRow.createCell(22).setCellValue(String.valueOf(company.getMetaValue())); } - + dataRow.createCell(23).setCellValue(String.valueOf(dataList.get(i).getStatus().getText())); + dataRow.createCell(24).setCellValue(String.valueOf(dataList.get(i).getOrderStatus().getText())); } return hssfWorkbook; @@ -480,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(){ @@ -528,6 +668,9 @@ System.out.println(this.viewOpeApply.getApplyPrice()); try { this.opeApplyService.updaetOpeApplyPrice(this.viewOpeApply.getApplyPrice(),this.viewOpeApply.getId()); + if (this.viewOpeApply.getReagent() != null && this.viewOpeApply.getReagent().getId() != null) { + sysReagentService.updateSysReagentPrice(this.viewOpeApply.getReagent().getId(), this.viewOpeApply.getApplyPrice()); + } FacesUtils.info("修改成功。"); refreshTable(); RequestContext.getCurrentInstance().execute("PF('dialog').hide()"); @@ -542,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 { @@ -751,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; @@ -768,26 +912,25 @@ 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) { if(opeApply.getStockFlag()!=0){ - SysUser user1=null; - if(opeApply.getBeforeApproveUserId()!=null&&!opeApply.getBeforeApproveUserId().equals("")){ - user1=sysUserService.getSysUserForSuppllier(opeApply.getBeforeApproveUserId()); - }else { - user1 = sysUserService.getSysUserForSuppllier(opeApply.getApproveUserId()); - } - +// SysUser user1=null; +// if(opeApply.getBeforeApproveUserId()!=null&&!opeApply.getBeforeApproveUserId().equals("")){ +// user1=sysUserService.getSysUserForSuppllier(opeApply.getBeforeApproveUserId()); +// }else { +// user1 = sysUserService.getSysUserForSuppllier(opeApply.getApproveUserId()); +// } //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()); @@ -819,6 +962,7 @@ { tempMap.put(opeApply.getReagent().getId(), opeApply.getNum()); } + opeApply.setOrderStatus(order.getStatus()); realDataList.add(opeApply); } @@ -869,6 +1013,8 @@ headerList.add("申购人"); headerList.add("部门"); headerList.add("单位"); + headerList.add("申购单状态"); + headerList.add("订单状态"); HSSFWorkbook hssfWorkbook =exportExcelNew(headerList, realDataList); hssfWorkbook.write(out); out.flush(); @@ -913,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){ @@ -952,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()); @@ -1000,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) { @@ -1015,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); @@ -1048,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