package com.nanometer.smartlab.controller;
|
|
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 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.model.LazyDataModel;
|
import org.primefaces.model.SortOrder;
|
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.io.IOException;
|
import java.io.InputStream;
|
import java.math.BigDecimal;
|
import java.sql.Timestamp;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
/**
|
* Created by nph on 18/04/30.
|
*/
|
@Controller
|
@Scope("session")
|
public class SupplierOrderMngController extends BaseController {
|
|
/**
|
*
|
*/
|
private static final long serialVersionUID = 1L;
|
|
private static Logger logger = Logger.getLogger(SupplierOrderMngController.class);
|
|
@Resource
|
private OpeOrderService opeOrderService;
|
|
@Resource
|
private BaseMetaService baseMetaService;
|
|
@Resource
|
private OpeApplyService opeApplyService;
|
|
@Resource
|
private BaseRoleService roleService;
|
|
@Resource
|
private SysReagentService sysReagentService;
|
|
@Resource
|
private SysProjectService sysProjectService;
|
|
@Resource
|
private OpeApplyOrderService opeApplyOrderService;
|
|
public List<OpeOrder> getAllOpeOrder() {
|
return allOpeOrder;
|
}
|
|
public void setAllOpeOrder(List<OpeOrder> allOpeOrder) {
|
this.allOpeOrder = allOpeOrder;
|
}
|
|
public List<SupplierOrder> getSelectedList() {
|
return selectedList;
|
}
|
|
public void setSelectedList(List<SupplierOrder> selectedList) {
|
this.selectedList = selectedList;
|
}
|
|
public List<SysReagent> getReagents() {
|
return reagents;
|
}
|
|
public void setReagents(List<SysReagent> reagents) {
|
this.reagents = reagents;
|
}
|
|
public String getOrderCode() {
|
return orderCode;
|
}
|
|
public void setOrderCode(String orderCode) {
|
this.orderCode = orderCode;
|
}
|
|
public String getApplyCode() {
|
return applyCode;
|
}
|
|
public void setApplyCode(String applyCode) {
|
this.applyCode = applyCode;
|
}
|
|
public Timestamp getOrderTime() {
|
return orderTime;
|
}
|
|
public void setOrderTime(Timestamp orderTime) {
|
this.orderTime = orderTime;
|
}
|
|
public Integer getStatus() {
|
return status;
|
}
|
|
public void setStatus(Integer status) {
|
this.status = status;
|
}
|
|
public String getReagentId() {
|
return reagentId;
|
}
|
|
public void setReagentId(String reagentId) {
|
this.reagentId = reagentId;
|
}
|
|
public Map<String, Integer> getMap() {
|
return map;
|
}
|
|
public void setMap(Map<String, Integer> map) {
|
this.map = map;
|
}
|
|
public List<ApplyStatus> getOrderStatusSelectList() {
|
if (this.orderStatusSelectList == null) {
|
this.orderStatusSelectList = Arrays.asList(ApplyStatus.values());
|
}
|
return orderStatusSelectList;
|
}
|
|
public void setOrderStatusSelectList(List<ApplyStatus> orderStatusSelectList) {
|
this.orderStatusSelectList = orderStatusSelectList;
|
}
|
|
public void setDataModel(LazyDataModel<SupplierOrder> dataModel) {
|
this.dataModel = dataModel;
|
}
|
|
@Resource
|
private SysUserService sysUserService;
|
|
@Resource
|
private SysSupplierService sysSupplierService;
|
|
@Resource
|
private SysSequenceService sysSequenceService;
|
|
|
@Resource
|
private MenuController menuController;
|
|
@Resource
|
private SupplierOpeOrderService supplierOpeOrderService;
|
|
private List<OpeOrder> allOpeOrder;
|
|
private LazyDataModel<SupplierOrder> dataModel;
|
|
private List<SupplierOrder> selectedList;
|
|
private List<OpeApply> selectedViewList;
|
private OpeApply viewOpeApply;
|
private List<OpeApply> stockFlagList;
|
|
private List<OpeApply> opeApplyList;
|
|
private List<SysReagent> reagentSelectList;
|
|
public List<OpeApply> getStockFlagList() {
|
return stockFlagList;
|
}
|
|
public void setStockFlagList(List<OpeApply> stockFlagList) {
|
this.stockFlagList = stockFlagList;
|
}
|
|
public OpeApply getViewOpeApply(){
|
return viewOpeApply;
|
}
|
|
public void setViewOpeApply(OpeApply viewOpeApply){
|
this.viewOpeApply=viewOpeApply;
|
}
|
|
public List<OpeApply> getSelectedViewList(){
|
return selectedViewList;
|
}
|
|
public void setSelectedViewList(List<OpeApply> selectedViewList){
|
this.selectedViewList=selectedViewList;
|
}
|
|
public List<OpeApply> getOpeApplyList() {
|
return opeApplyList;
|
}
|
|
public void setOpeApplyList(List<OpeApply> opeApplyList) {
|
this.opeApplyList = opeApplyList;
|
}
|
|
private List<SysReagent> reagents;
|
|
public List<SysReagent> getReagentSelectList() {
|
return reagentSelectList;
|
}
|
|
public void setReagentSelectList(List<SysReagent> reagentSelectList) {
|
this.reagentSelectList = reagentSelectList;
|
}
|
|
private String orderCode;
|
|
private String applyCode;
|
|
private Timestamp orderTime;
|
|
private Timestamp orderEndTime;
|
|
private Integer status;
|
|
private String reagentId;
|
|
private Map<String,Integer> map;//键是试剂id,值是申购数量
|
|
private List<ApplyStatus> orderStatusSelectList;
|
|
public Timestamp getOrderEndTime() {
|
return orderEndTime;
|
}
|
|
public void setOrderEndTime(Timestamp orderEndTime) {
|
this.orderEndTime = orderEndTime;
|
}
|
|
public void initOpeOrder()
|
{
|
SysUser user = sysUserService.getSysUser(getUserId());
|
String roleId = user.getRoleId();
|
if(!roleId.equalsIgnoreCase("15fc90a1f7bf43bda01313904b543195") && !roleId.equalsIgnoreCase("b2f15b6f57984f1ca36cdb82812d559b"))
|
{
|
allOpeOrder = new ArrayList<OpeOrder>();
|
return;
|
}
|
|
this.allOpeOrder = this.opeOrderService.getOpeOrderList(null, null, null, null, status, null,null, null);
|
}
|
|
@SuppressWarnings("serial")
|
public LazyDataModel<SupplierOrder> getDataModel()
|
{
|
if(this.dataModel == null)
|
{
|
this.dataModel = new LazyDataModel<SupplierOrder>() {
|
@Override
|
public List<SupplierOrder> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, Object> filters) {
|
List<SupplierOrder> list = new ArrayList<SupplierOrder>();
|
try {
|
if(allOpeOrder != null && allOpeOrder.size() > 0)
|
{
|
int count = allOpeOrder.size();
|
this.setRowCount(count);
|
|
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) {
|
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());
|
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());
|
}
|
}
|
}
|
selectedList = new ArrayList<> ();
|
} catch (Exception e) {
|
logger.error(e);
|
}
|
return list;
|
}
|
|
@Override
|
public SupplierOrder getRowData(String rowKey) {
|
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(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;
|
}
|
};
|
}
|
|
return dataModel;
|
}
|
|
private List<SupplierOrder> queryByPage() {
|
List<SupplierOrder> list = new ArrayList<SupplierOrder>();
|
try {
|
if(allOpeOrder != null && allOpeOrder.size() > 0)
|
{
|
int count = allOpeOrder.size();
|
List<String> opeApplyIds = new ArrayList<String>();
|
for(int i=0;i<count;i++)
|
{
|
SupplierOrder order = new SupplierOrder();
|
if(orderCode != null && !orderCode.equalsIgnoreCase(""))
|
{
|
if(!allOpeOrder.get(i).getOrderCode().equalsIgnoreCase(orderCode))
|
{
|
continue;
|
}
|
}
|
if(status != null)
|
{
|
if(allOpeOrder.get(i).getStatus().getKey() != status)
|
{
|
continue;
|
}
|
}
|
order.setId(allOpeOrder.get(i).getId());
|
order.setCreateTime(allOpeOrder.get(i).getCreateTime());
|
order.setOrderCode(allOpeOrder.get(i).getOrderCode());
|
order.setOrderUserName(allOpeOrder.get(i).getOrderUserName());
|
List<OpeApplyOrder> results = opeApplyOrderService.getOpeApplyOrderList(allOpeOrder.get(i).getId(), null);
|
List<String> approves = new ArrayList<String>();
|
Double price = 0.00;
|
opeApplyIds.clear();
|
for(OpeApplyOrder item : results)
|
{
|
OpeApply apply = opeApplyService.getOpeApply(item.getOpeApplyId());
|
if(apply == null)
|
{
|
continue;
|
}
|
opeApplyIds.add(apply.getId());
|
price = price + apply.getReagent().getPrice().floatValue()*apply.getNum();
|
SysUser user = sysUserService.getSysUser(apply.getApproveUserId());
|
if(user == null)
|
{
|
continue;
|
}
|
if(!approves.contains(user.getName()))
|
{
|
approves.add(user.getName());
|
}
|
|
}
|
order.setApplyIds(opeApplyIds);
|
order.setTotalPrice(price);
|
StringBuilder approveNames = new StringBuilder();
|
int size = approves.size();
|
for(int k=0;k<size;k++)
|
{
|
approveNames.append(approves.get(k));
|
if(k != size-1)
|
{
|
approveNames.append(",");
|
}
|
}
|
order.setApproveUserName(approveNames.toString());
|
order.setStatus(allOpeOrder.get(i).getStatus());
|
list.add(order);
|
|
}
|
|
|
|
}
|
} catch (Exception e) {
|
logger.error(e);
|
}
|
return list;
|
}
|
|
|
public HSSFWorkbook exportExcelNew(List<String> headerList, List<OpeApply> dataList) {
|
|
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
|
|
|
Integer total = null;
|
HSSFSheet sheet = hssfWorkbook.createSheet("订单详情");
|
HSSFRow titlerRow = sheet.createRow(0);
|
for(int i = 0; i < headerList.size(); i++) {
|
titlerRow.createCell(i).setCellValue(headerList.get(i));
|
}
|
for (int i = 0; i < dataList.size(); i++) {
|
HSSFRow dataRow = sheet.createRow(i + 1);
|
dataRow.createCell(0).setCellValue(dataList.get(i).getApplyCode()== null ? "": String.valueOf(dataList.get(i).getApplyCode()));
|
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()));
|
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(9).setCellValue(total== null ? "0": String.valueOf(dataList.get(i).getReagent().getPrice().multiply(new BigDecimal(total))));
|
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(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(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()));
|
dataRow.createCell(20).setCellValue(String.valueOf(dataList.get(i).getApplyUserName()));
|
dataRow.createCell(21).setCellValue(baseMetaService.getBaseMetaValue(dataList.get(i).getOwnerDepartment()));
|
SysUser user=sysUserService.getSysUserForSuppllier(dataList.get(i).getApplyUserId());
|
BaseMeta company=baseMetaService.getBaseMeta(user.getCompany());
|
if(company==null){
|
dataRow.createCell(22).setCellValue("");
|
}else {
|
dataRow.createCell(22).setCellValue(String.valueOf(company.getMetaValue()));
|
}
|
|
}
|
|
return hssfWorkbook;
|
}
|
|
public void onUpdateStockClick(){
|
if (this.selectedViewList == null
|
|| this.selectedViewList.size() == 0) {
|
FacesUtils.warn("请选择数据。");
|
return;
|
}
|
if (this.selectedViewList.size() > 1) {
|
FacesUtils.warn("只能选择一个数据进行修改。");
|
return;
|
}
|
this.viewOpeApply=this.opeApplyService.getOpeApply(this.selectedViewList.get(0).getId());
|
RequestContext.getCurrentInstance().execute("PF('dialogStock').show()");
|
}
|
|
public void onOutOfStock(){
|
System.out.println(this.viewOpeApply.getStockFlag());
|
/*if (this.selectedViewList == null
|
|| this.selectedViewList.size() == 0) {
|
FacesUtils.warn("请选择数据。");
|
return;
|
}*/
|
/*if (this.selectedViewList.size() > 1) {
|
FacesUtils.warn("只能选择一个数据进行修改。");
|
return;
|
}*/
|
try {
|
this.opeApplyService.updaetOpeApplyStockFlag(this.viewOpeApply.getStockFlag(), this.viewOpeApply.getId());
|
FacesUtils.info("修改成功。");
|
refreshTable();
|
RequestContext.getCurrentInstance().execute("PF('dialogStock').hide()");
|
}catch(Exception e){
|
logger.error("操作失败。", e);
|
FacesUtils.warn("操作失败。");
|
}
|
}
|
|
public void onUpdatePrice(){
|
if (this.selectedViewList == null
|
|| this.selectedViewList.size() == 0) {
|
FacesUtils.warn("请选择数据。");
|
return;
|
}
|
if (this.selectedViewList.size() > 1) {
|
FacesUtils.warn("只能选择一个数据进行修改。");
|
return;
|
}
|
this.viewOpeApply=this.opeApplyService.getOpeApply(this.selectedViewList.get(0).getId());
|
if(this.viewOpeApply.getApplyPrice()!=null){
|
|
}else{
|
this.viewOpeApply.setApplyPrice(this.viewOpeApply.getReagent().getPrice());
|
}
|
System.out.println("实际售价"+this.viewOpeApply.getApplyPrice());
|
RequestContext.getCurrentInstance().execute("PF('dialog').show()");
|
}
|
|
public void onSavePrice(){
|
System.out.println(this.viewOpeApply.getApplyPrice());
|
try {
|
this.opeApplyService.updaetOpeApplyPrice(this.viewOpeApply.getApplyPrice(),this.viewOpeApply.getId());
|
FacesUtils.info("修改成功。");
|
refreshTable();
|
RequestContext.getCurrentInstance().execute("PF('dialog').hide()");
|
}catch (Exception e){
|
logger.error("操作失败。", e);
|
FacesUtils.warn("操作失败。");
|
}
|
|
}
|
|
public void refreshTable(){
|
List<SysReagent> tempReagents = new ArrayList<SysReagent>();
|
List<OpeApply> opeApplyList1 = new ArrayList<>();
|
map=null;
|
Map<String, Integer> tempMap = new HashMap<String,Integer>();
|
|
for(SupplierOrder order :selectedList)
|
{
|
for(String applyId : order.getApplyIds())
|
{
|
OpeApply apply = opeApplyService.getOpeApply(applyId);
|
if(apply.getApplyPrice()!=null){
|
|
}else {
|
apply.setApplyPrice(apply.getReagent().getPrice());
|
}
|
if(apply.getStockFlag()!=0){
|
apply.setStockFlagValue("不缺货");
|
}else{
|
apply.setStockFlagValue("缺货");
|
}
|
tempReagents.add(apply.getReagent());
|
opeApplyList1.add(apply);
|
if(tempMap.containsKey(apply.getReagent().getId()))
|
{
|
Integer result = apply.getNum();
|
if(map != null){
|
result = map.get(apply.getReagent().getId());
|
result = result + apply.getNum();
|
}
|
System.out.println("====="+tempMap.remove(apply.getReagent().getId()));
|
tempMap.put(apply.getReagent().getId(), result);
|
}else
|
{
|
tempMap.put(apply.getReagent().getId(), apply.getNum());
|
}
|
}
|
}
|
//this.setReagentSelectList(this.sysReagentService.getSysReagentList(null, null, null, null, null));
|
this.setMap(tempMap);
|
this.setReagents(tempReagents);
|
this.setOpeApplyList(opeApplyList1);
|
}
|
|
public void onDestoryClickNew(){
|
if (this.selectedList == null
|
|| this.selectedList.size() == 0) {
|
FacesUtils.warn("请选择数据。");
|
return;
|
}
|
for(SupplierOrder order :selectedList)
|
{
|
if(order.getStatus().getKey() != 4)
|
{
|
FacesUtils.warn("请选择待入库状态的订单!");
|
return;
|
}
|
}
|
try{
|
for(SupplierOrder order :selectedList)
|
{
|
this.supplierOpeOrderService.updateDestoryFlagById(order);
|
}
|
FacesUtils.info("报销成功。");
|
}catch (Exception e){
|
logger.error("操作失败。", e);
|
FacesUtils.warn("操作失败。");
|
}
|
|
}
|
|
public void onConfirmBtnClick()
|
{
|
if (this.selectedList == null
|
|| this.selectedList.size() == 0) {
|
FacesUtils.warn("请选择数据。");
|
return;
|
}
|
for(SupplierOrder order :selectedList)
|
{
|
if(order.getStatus().getKey() != 3)
|
{
|
FacesUtils.warn("请选择待采购状态的订单!");
|
return;
|
}
|
}
|
this.menuController.goToPage(Constants.PAGE_CONFIRM_ORDER_MNG, Constants.PAGE_SUPPLIER_ORDER_MNG);
|
}
|
|
public void onViewBtnClick()
|
{
|
if (this.selectedList == null || this.selectedList.size() == 0) {
|
FacesUtils.warn("请选择数据。");
|
return;
|
}
|
|
if (this.selectedList.size() > 1) {
|
FacesUtils.warn("只能选择一个数据进行查看。");
|
return;
|
}
|
|
this.menuController.goToPage(Constants.PAGE_VIEW_ORDER_MNG, Constants.PAGE_SUPPLIER_ORDER_MNG);
|
}
|
|
public void onExportFileBtnClick() {
|
// String fileName = aPo.getFilename();
|
// String path = aPo.getFilePath();
|
ServletOutputStream out = null;
|
InputStream is = null;
|
try {
|
FacesContext ctx = FacesContext.getCurrentInstance();
|
ctx.responseComplete();
|
String contentType = "application/x-download";
|
HttpServletResponse response = (HttpServletResponse) ctx
|
.getExternalContext().getResponse();
|
response.setContentType(contentType);
|
StringBuffer contentDisposition = new StringBuffer();
|
contentDisposition.append("attachment;");
|
contentDisposition.append("filename=\"");
|
contentDisposition.append(".xls");
|
contentDisposition.append("\"");
|
response.setHeader(
|
"Content-Disposition",
|
new String(contentDisposition.toString().getBytes(
|
System.getProperty("file.encoding")), "ISO8859-1"));
|
out = response.getOutputStream();
|
|
List<List<Object>> dataList = new ArrayList<>();
|
|
List<SupplierOrder> tableList = queryByPage();
|
Iterator<SupplierOrder> iterator = tableList.iterator();
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
while (iterator.hasNext()) {
|
SupplierOrder supplierOrder = iterator.next();
|
List<Object> realDataList = new ArrayList<>();
|
realDataList.add(supplierOrder.getStatus().getText());
|
realDataList.add(supplierOrder.getOrderCode());
|
realDataList.add(supplierOrder.getOrderUserName());
|
realDataList.add(supplierOrder.getApproveUserName());
|
realDataList.add(sdf.format(supplierOrder.getCreateTime()));
|
realDataList.add(supplierOrder.getTotalPrice());
|
dataList.add(realDataList);
|
}
|
List<String> headerList = new ArrayList<>();
|
headerList.add("状态");
|
headerList.add("订单编号");
|
headerList.add("下单者");
|
headerList.add("确认者");
|
headerList.add("下单时间");
|
headerList.add("总价");
|
|
HSSFWorkbook hssfWorkbook =ExcelUtil.exportExcel(headerList, dataList);
|
hssfWorkbook.write(out);
|
out.flush();
|
ctx.responseComplete();
|
} catch (Exception e) {
|
if(is!=null){
|
try {
|
is.close();
|
} catch (IOException e1) {
|
e1.printStackTrace();
|
}
|
}
|
if(out!=null){
|
try {
|
out.close();
|
} catch (IOException e1) {
|
e1.printStackTrace();
|
}
|
}
|
e.printStackTrace();
|
}finally {
|
if (is != null) {
|
try {
|
is.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
if (out != null) {
|
try {
|
out.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
}
|
public void onExportFileBtnClickNew() {
|
ServletOutputStream out = null;
|
InputStream is = null;
|
try {
|
FacesContext ctx = FacesContext.getCurrentInstance();
|
ctx.responseComplete();
|
String contentType = "application/x-download";
|
HttpServletResponse response = (HttpServletResponse) ctx
|
.getExternalContext().getResponse();
|
response.setContentType(contentType);
|
StringBuffer contentDisposition = new StringBuffer();
|
contentDisposition.append("attachment;");
|
contentDisposition.append("filename=\"");
|
contentDisposition.append("供应商订单管理.xls");
|
contentDisposition.append("\"");
|
response.setHeader(
|
"Content-Disposition",
|
new String(contentDisposition.toString().getBytes(
|
System.getProperty("file.encoding")), "ISO8859-1"));
|
out = response.getOutputStream();
|
|
//List<SupplierOrder> tableList = queryByPage();
|
//Map<String,List<OpeApply>> realDataMap = new HashMap<>();
|
|
|
Map<String, Integer> tempMap = new HashMap<String,Integer>();
|
List<OpeApply> realDataList = new ArrayList<>();
|
map=null;
|
List<SysProject> projects = null;
|
OpeApply opeApply = null;
|
SysUser user = null;
|
List<SupplierOrder> exportList=selectedList;
|
if(exportList==null || exportList.size()==0){
|
exportList=supplierOpeOrderService.getSupplierOpeOrderList(orderCode,applyCode,status,orderTime,orderEndTime,null,null);
|
}
|
|
for(SupplierOrder order :exportList)
|
{
|
if(order.getIds()!=null&&!order.getIds().equals("")){
|
List ids = Arrays.asList(order.getIds().split(","));
|
order.setApplyIds(ids);
|
}
|
for(String applyId : order.getApplyIds())
|
{
|
opeApply = opeApplyService.getOpeApply(applyId);
|
System.out.println("objective==========="+opeApply.getObjective());
|
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());
|
}
|
|
//opeApply.setOwnerDepartment(user1.getDepartment());
|
//System projectUser=
|
opeApply.setOwnerDepartment(sysUserService.getSysUserForSuppllier(opeApply.getApplyUserId()).getDepartment());
|
opeApply.setProjectId(opeApply.getObjective());
|
projects = sysProjectService.getSysProjectListByProjectId(opeApply.getObjective());
|
if(projects != null && !projects.isEmpty())
|
{
|
opeApply.setProjectOwner(projects.get(0).getUsername());
|
|
opeApply.setProjectName(projects.get(0).getProjectName());
|
/*user = sysUserService.getSysUser(projects.get(0).getSysUserId());
|
if(user != null)
|
{
|
opeApply.setProjectOwner(user.getName());
|
}else
|
{
|
opeApply.setProjectOwner(opeApply.getApproveUserName());
|
}*/
|
}
|
if(tempMap.containsKey(opeApply.getReagent().getId()))
|
{
|
Integer result = 0;
|
if(map != null){
|
result = map.get(opeApply.getReagent().getId());
|
if(result == null){
|
result =0;
|
}
|
}
|
|
result = result + opeApply.getNum();
|
tempMap.remove(opeApply.getReagent().getId());
|
tempMap.put(opeApply.getReagent().getId(), result);
|
}else
|
{
|
tempMap.put(opeApply.getReagent().getId(), opeApply.getNum());
|
}
|
realDataList.add(opeApply);
|
}
|
|
}
|
}
|
}
|
/* Collections.sort(realDataList,new Comparator<OpeApply>() {
|
|
@Override
|
public int compare(OpeApply o1, OpeApply o2) {
|
if(o1==null || o2==null){
|
return
|
}
|
if(o1.getProjectOwner().compareTo(o2.getProjectOwner()) == 0)
|
{
|
return 1;
|
}else
|
{
|
return o1.getProjectOwner().compareTo(o2.getProjectOwner());
|
}
|
}
|
|
}
|
);*/
|
this.setMap(tempMap);
|
|
List<String> headerList = new ArrayList<>();
|
headerList.add("申购编号");
|
headerList.add("申购日期");
|
headerList.add("产品编号");
|
headerList.add("试剂名称");
|
headerList.add("管制品");
|
headerList.add("规格型号");
|
headerList.add("包装");
|
headerList.add("数量");
|
headerList.add("含税售价");
|
headerList.add("含税总价");
|
headerList.add("实际售价");
|
headerList.add("实际总价");
|
headerList.add("CAS号");
|
headerList.add("危险性质");
|
headerList.add("厂家");
|
headerList.add("供应商");
|
headerList.add("试剂类型");
|
headerList.add("课题负责人(一级审批者)");
|
headerList.add("课题编号");
|
headerList.add("课题组");
|
headerList.add("申购人");
|
headerList.add("部门");
|
headerList.add("单位");
|
HSSFWorkbook hssfWorkbook =exportExcelNew(headerList, realDataList);
|
hssfWorkbook.write(out);
|
out.flush();
|
ctx.responseComplete();
|
} catch (Exception e) {
|
if(is!=null){
|
try {
|
is.close();
|
} catch (IOException e1) {
|
e1.printStackTrace();
|
}
|
}
|
if(out!=null){
|
try {
|
out.close();
|
} catch (IOException e1) {
|
e1.printStackTrace();
|
}
|
}
|
e.printStackTrace();
|
}finally {
|
if (is != null) {
|
try {
|
is.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
if (out != null) {
|
try {
|
out.close();
|
} catch (IOException e) {
|
e.printStackTrace();
|
}
|
}
|
}
|
}
|
|
|
public void constructConfirmData()
|
{
|
List<SysReagent> tempReagents = new ArrayList<SysReagent>();
|
List<OpeApply> opeApplyList1 = new ArrayList<>();
|
|
Map<String, Integer> tempMap = new HashMap<String,Integer>();
|
|
for(SupplierOrder order :selectedList)
|
{
|
for(String applyId : order.getApplyIds())
|
{
|
OpeApply apply = opeApplyService.getOpeApply(applyId);
|
if(apply.getApplyPrice()!=null){
|
|
}else {
|
apply.setApplyPrice(apply.getReagent().getPrice());
|
}
|
tempReagents.add(apply.getReagent());
|
opeApplyList1.add(apply);
|
if(tempMap.containsKey(apply.getReagent().getId()))
|
{
|
Integer result = 0;
|
if(map != null){
|
result = map.get(apply.getReagent().getId());
|
result = result + apply.getNum();
|
}
|
tempMap.remove(apply.getReagent().getId());
|
tempMap.put(apply.getReagent().getId(), result);
|
}else
|
{
|
tempMap.put(apply.getReagent().getId(), apply.getNum());
|
}
|
}
|
}
|
this.setReagentSelectList(this.sysReagentService.getSysReagentList(null, null, null,null, null, null));
|
this.setMap(tempMap);
|
this.setReagents(tempReagents);
|
this.setOpeApplyList(opeApplyList1);
|
}
|
|
public void constructCancelData()
|
{
|
List<SysReagent> tempReagents = new ArrayList<SysReagent>();
|
|
Map<String, Integer> tempMap = new HashMap<String,Integer>();
|
|
for(SupplierOrder order :selectedList)
|
{
|
for(String applyId : order.getApplyIds())
|
{
|
OpeApply apply = opeApplyService.getOpeApply(applyId);
|
tempReagents.add(apply.getReagent());
|
if(tempMap.containsKey(apply.getReagent().getId()))
|
{
|
Integer result = 0;
|
if(map != null){
|
result = map.get(apply.getReagent().getId());
|
result = result + apply.getNum();
|
}
|
tempMap.remove(apply.getReagent().getId());
|
tempMap.put(apply.getReagent().getId(), result);
|
}else
|
{
|
tempMap.put(apply.getReagent().getId(), apply.getNum());
|
}
|
}
|
}
|
|
this.setMap(tempMap);
|
this.setReagents(tempReagents);
|
}
|
|
public void onCancelBtnClick()
|
{
|
if (this.selectedList == null
|
|| this.selectedList.size() == 0) {
|
FacesUtils.warn("请选择数据。");
|
return;
|
}
|
|
for(SupplierOrder order :selectedList)
|
{
|
if(order.getStatus().getKey() != 3)
|
{
|
FacesUtils.warn("请选择待采购状态的订单!");
|
return;
|
}
|
}
|
|
this.menuController.goToPage(Constants.PAGE_CANCEL_ORDER_MNG, Constants.PAGE_SUPPLIER_ORDER_MNG);
|
}
|
|
public Integer getReagentNum(String key)
|
{
|
if(map == null)
|
{
|
return null;
|
}
|
return map.get(key);
|
}
|
|
public void onOrderConfirmBtnClick()
|
{
|
OpeApply opeApply = null;
|
for(SupplierOrder order :selectedList)
|
{
|
OpeOrder temp = opeOrderService.getOpeOrder(order.getId());
|
for(String id : order.getApplyIds())
|
{
|
opeApply = opeApplyService.getOpeApply(id);
|
if(opeApply != null)
|
{
|
opeApply.setStatus(ApplyStatus.SUPPLIER_CONFIRM);
|
opeApplyService.updateOpeApply(opeApply);
|
}
|
}
|
temp.setStatus(ApplyStatus.SUPPLIER_CONFIRM);
|
opeOrderService.updateOpeOrder(temp);
|
}
|
|
initOpeOrder();
|
this.menuController.backToPage();
|
}
|
|
public void onOrderCancelBtnClick()
|
{
|
for(SupplierOrder order :selectedList)
|
{
|
OpeOrder temp = opeOrderService.getOpeOrder(order.getId());
|
temp.setStatus(ApplyStatus.SUPPLIER_CANCEL);
|
opeOrderService.updateOpeOrder(temp);
|
}
|
initOpeOrder();
|
this.menuController.backToPage();
|
}
|
|
public void onBackBtnClick()
|
{
|
this.menuController.backToPage();
|
}
|
}
|