518 lines
18 KiB
Java
518 lines
18 KiB
Java
package com.jsh.action.asset;
|
||
|
||
import java.io.IOException;
|
||
import java.io.InputStream;
|
||
import java.sql.Timestamp;
|
||
import java.text.ParseException;
|
||
import java.util.Calendar;
|
||
import java.util.Date;
|
||
import java.util.HashMap;
|
||
import java.util.List;
|
||
import java.util.Map;
|
||
|
||
import net.sf.json.JSONArray;
|
||
import net.sf.json.JSONObject;
|
||
|
||
import org.springframework.dao.DataAccessException;
|
||
|
||
import com.jsh.base.BaseAction;
|
||
import com.jsh.base.Log;
|
||
import com.jsh.util.AssetConstants;
|
||
import com.jsh.util.JshException;
|
||
import com.jsh.model.po.Asset;
|
||
import com.jsh.model.po.Assetname;
|
||
import com.jsh.model.po.Basicuser;
|
||
import com.jsh.model.po.Logdetails;
|
||
import com.jsh.model.po.Supplier;
|
||
import com.jsh.model.vo.asset.AssetModel;
|
||
import com.jsh.service.asset.AssetIService;
|
||
import com.jsh.service.basic.AssetNameIService;
|
||
import com.jsh.service.basic.CategoryIService;
|
||
import com.jsh.service.basic.SupplierIService;
|
||
import com.jsh.service.basic.UserIService;
|
||
import com.jsh.util.PageUtil;
|
||
import com.jsh.util.Tools;
|
||
|
||
@SuppressWarnings("serial")
|
||
public class AssetAction extends BaseAction<AssetModel>
|
||
{
|
||
private AssetModel model = new AssetModel();
|
||
private AssetIService assetService;
|
||
private CategoryIService categoryService;
|
||
private SupplierIService supplierService;
|
||
private UserIService userService;
|
||
private AssetNameIService assetnameService;
|
||
|
||
@SuppressWarnings({ "rawtypes", "unchecked" })
|
||
public String getBasicData()
|
||
{
|
||
Map<String,List> mapData = model.getShowModel().getMap();
|
||
PageUtil pageUtil = new PageUtil();
|
||
pageUtil.setPageSize(0);
|
||
pageUtil.setCurPage(0);
|
||
try
|
||
{
|
||
Map<String,Object> condition = pageUtil.getAdvSearch();
|
||
condition.put("id_s_order", "desc");
|
||
categoryService.find(pageUtil);
|
||
mapData.put("categoryList", pageUtil.getPageList());
|
||
supplierService.find(pageUtil);
|
||
mapData.put("supplierList", pageUtil.getPageList());
|
||
|
||
condition.put("isystem_n_eq", 1);
|
||
condition.put("id_s_order", "desc");
|
||
userService.find(pageUtil);
|
||
mapData.put("userList", pageUtil.getPageList());
|
||
|
||
//清除搜索条件 防止对查询有影响
|
||
condition.remove("isystem_n_eq");
|
||
|
||
assetnameService.find(pageUtil);
|
||
mapData.put("assetnameList", pageUtil.getPageList());
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>>>查找系统基础数据信息异常", e);
|
||
model.getShowModel().setMsgTip("exceptoin");
|
||
}
|
||
return SUCCESS;
|
||
}
|
||
|
||
/**
|
||
* 增加资产
|
||
* @return
|
||
*/
|
||
public void create()
|
||
{
|
||
Log.infoFileSync("==================开始调用增加资产方法===================");
|
||
Boolean flag = false;
|
||
try
|
||
{
|
||
Asset asset = new Asset();
|
||
//添加设置
|
||
asset.setAssetname(new Assetname(model.getAssetNameID()));
|
||
|
||
asset.setLocation(model.getLocation());
|
||
asset.setStatus(model.getStatus());
|
||
asset.setPrice(model.getPrice());
|
||
|
||
if(null != model.getUserID())
|
||
{
|
||
asset.setUser( new Basicuser(model.getUserID()));
|
||
}
|
||
try
|
||
{
|
||
//购买日期
|
||
asset.setPurchasedate(new Timestamp(Tools.parse(model.getPurchasedate(), "yyyy-MM-dd").getTime()));
|
||
//有效日期
|
||
asset.setPeriodofvalidity(new Timestamp(Tools.parse(model.getPeriodofvalidity(), "yyyy-MM-dd").getTime()));
|
||
//保修日期
|
||
asset.setWarrantydate(new Timestamp(Tools.parse(model.getWarrantydate(), "yyyy-MM-dd").getTime()));
|
||
}
|
||
catch (ParseException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>>>>>解析购买日期格式异常", e);
|
||
}
|
||
|
||
asset.setAssetnum(model.getAssetnum());
|
||
asset.setSerialnum(model.getSerialnum());
|
||
asset.setLabels(model.getLabels());
|
||
|
||
asset.setSupplier( new Supplier(model.getSupplierID()));
|
||
asset.setDescription(model.getDescription());
|
||
|
||
asset.setCreatetime(new Timestamp(new Date().getTime()));
|
||
asset.setCreator(getUser());
|
||
asset.setUpdatetime(new Timestamp(new Date().getTime()));
|
||
asset.setUpdator(getUser());
|
||
asset.setAddMonth(Tools.getCurrentMonth());
|
||
assetService.create(asset);
|
||
//========标识位===========
|
||
flag = true;
|
||
//记录操作日志使用
|
||
tipMsg = "成功";
|
||
tipType = 0;
|
||
}
|
||
catch (DataAccessException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>>>>>>>>>增加资产异常", e);
|
||
flag = false;
|
||
tipMsg = "失败";
|
||
tipType = 1;
|
||
}
|
||
finally
|
||
{
|
||
try
|
||
{
|
||
toClient(flag.toString());
|
||
}
|
||
catch (IOException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>>增加资产回写客户端结果异常", e);
|
||
}
|
||
}
|
||
|
||
logService.create(new Logdetails(getUser(), "增加资产", model.getClientIp(),
|
||
new Timestamp(System.currentTimeMillis())
|
||
, tipType, "增加资产名称ID为 "+ model.getAssetNameID() + " " + tipMsg + "!", "增加资产" + tipMsg));
|
||
Log.infoFileSync("==================结束调用增加资产方法===================");
|
||
}
|
||
|
||
/**
|
||
* 删除资产
|
||
* @return
|
||
*/
|
||
public String delete()
|
||
{
|
||
Log.infoFileSync("====================开始调用删除资产信息方法delete()================");
|
||
try
|
||
{
|
||
assetService.delete(model.getAssetID());
|
||
tipMsg = "成功";
|
||
tipType = 0;
|
||
}
|
||
catch (DataAccessException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>删除ID为 " + model.getAssetID() + " 的资产异常", e);
|
||
tipMsg = "失败";
|
||
tipType = 1;
|
||
}
|
||
model.getShowModel().setMsgTip(tipMsg);
|
||
logService.create(new Logdetails(getUser(), "删除资产", model.getClientIp(),
|
||
new Timestamp(System.currentTimeMillis())
|
||
, tipType, "删除资产ID为 "+ model.getAssetID() + " " + tipMsg + "!", "删除资产" + tipMsg));
|
||
Log.infoFileSync("====================结束调用删除资产信息方法delete()================");
|
||
return SUCCESS;
|
||
}
|
||
|
||
/**
|
||
* 更新资产
|
||
* @return
|
||
*/
|
||
public void update()
|
||
{
|
||
Boolean flag = false;
|
||
try
|
||
{
|
||
Asset asset = assetService.get(model.getAssetID());
|
||
|
||
//设置要更新的熟悉值
|
||
asset.setAssetname(new Assetname(model.getAssetNameID()));
|
||
|
||
asset.setLocation(model.getLocation());
|
||
asset.setStatus(model.getStatus());
|
||
asset.setPrice(model.getPrice());
|
||
|
||
if(null != model.getUserID())
|
||
asset.setUser(new Basicuser(model.getUserID()));
|
||
else
|
||
asset.setUser(null);
|
||
try
|
||
{
|
||
//购买日期
|
||
asset.setPurchasedate(new Timestamp(Tools.parse(model.getPurchasedate(), "yyyy-MM-dd").getTime()));
|
||
//有效日期
|
||
asset.setPeriodofvalidity(new Timestamp(Tools.parse(model.getPeriodofvalidity(), "yyyy-MM-dd").getTime()));
|
||
//保修日期
|
||
asset.setWarrantydate(new Timestamp(Tools.parse(model.getWarrantydate(), "yyyy-MM-dd").getTime()));
|
||
}
|
||
catch (ParseException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>>>>>解析购买日期格式异常", e);
|
||
}
|
||
|
||
asset.setAssetnum(model.getAssetnum());
|
||
asset.setSerialnum(model.getSerialnum());
|
||
asset.setLabels(model.getLabels());
|
||
|
||
asset.setSupplier(new Supplier(model.getSupplierID()));
|
||
asset.setDescription(model.getDescription());
|
||
|
||
asset.setUpdatetime(new Timestamp(new Date().getTime()));
|
||
asset.setUpdator(getUser());
|
||
assetService.update(asset);
|
||
flag = true;
|
||
tipMsg = "成功";
|
||
tipType = 0;
|
||
}
|
||
catch (DataAccessException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>>>修改资产ID为 : " + model.getAssetID() + "信息失败", e);
|
||
flag = false;
|
||
tipMsg = "失败";
|
||
tipType = 1;
|
||
}
|
||
finally
|
||
{
|
||
try
|
||
{
|
||
toClient(flag.toString());
|
||
}
|
||
catch (IOException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>>修改资产回写客户端结果异常", e);
|
||
}
|
||
}
|
||
logService.create(new Logdetails(getUser(), "更新资产", model.getClientIp(),
|
||
new Timestamp(System.currentTimeMillis())
|
||
, tipType, "更新资产ID为 "+ model.getAssetID() + " " + tipMsg + "!", "更新资产" + tipMsg));
|
||
}
|
||
|
||
/**
|
||
* 批量删除指定ID资产
|
||
* @return
|
||
*/
|
||
public String batchDelete()
|
||
{
|
||
try
|
||
{
|
||
assetService.batchDelete(model.getAssetIDs());
|
||
model.getShowModel().setMsgTip("成功");
|
||
//记录操作日志使用
|
||
tipMsg = "成功";
|
||
tipType = 0;
|
||
}
|
||
catch (DataAccessException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>批量删除资产ID为:" + model.getAssetIDs() + "信息异常", e);
|
||
tipMsg = "失败";
|
||
tipType = 1;
|
||
}
|
||
|
||
logService.create(new Logdetails(getUser(), "批量删除资产", model.getClientIp(),
|
||
new Timestamp(System.currentTimeMillis())
|
||
, tipType, "批量删除资产ID为 "+ model.getAssetIDs() + " " + tipMsg + "!", "批量删除资产" + tipMsg));
|
||
return SUCCESS;
|
||
}
|
||
|
||
/**
|
||
* 查找资产信息
|
||
* @return
|
||
*/
|
||
public void findBy()
|
||
{
|
||
try
|
||
{
|
||
PageUtil<Asset> pageUtil = new PageUtil<Asset>();
|
||
pageUtil.setPageSize(model.getPageSize());
|
||
pageUtil.setCurPage(model.getPageNo());
|
||
pageUtil.setAdvSearch(getCondition());
|
||
assetService.find(pageUtil);
|
||
|
||
getSession().put("pageUtil", pageUtil);
|
||
List<Asset> dataList = pageUtil.getPageList();
|
||
|
||
//开始拼接json数据
|
||
// {"total":28,"rows":[
|
||
// {"productid":"AV-CB-01","attr1":"Adult Male","itemid":"EST-18"}
|
||
// ]}
|
||
JSONObject outer = new JSONObject();
|
||
outer.put("total", pageUtil.getTotalCount());
|
||
//存放数据json数组
|
||
JSONArray dataArray = new JSONArray();
|
||
if(null != dataList)
|
||
{
|
||
for(Asset asset:dataList)
|
||
{
|
||
JSONObject item = new JSONObject();
|
||
item.put("id", asset.getId());
|
||
//添加资产属性
|
||
item.put("assetname", asset.getAssetname().getAssetname());
|
||
item.put("assetnameID", asset.getAssetname().getId());
|
||
//单价
|
||
item.put("price", Tools.dealNullStr(asset.getPrice() + ""));
|
||
//分类
|
||
item.put("category", asset.getAssetname().getCategory().getAssetname());
|
||
item.put("categoryID", asset.getAssetname().getCategory().getId());
|
||
//资产的状态:0==在库,1==在用,2==消费
|
||
item.put("status", getStatusInfo(asset.getStatus()));
|
||
item.put("statushort", asset.getStatus());
|
||
//在用用户名称
|
||
item.put("username", asset.getUser()==null?"":asset.getUser().getUsername());
|
||
item.put("userID", asset.getUser()==null?"":asset.getUser().getId());
|
||
//位置
|
||
item.put("location", Tools.dealNullStr(asset.getLocation()));
|
||
|
||
//购买日期
|
||
item.put("purchasedate", asset.getPurchasedate()==null?"":Tools.getCurrentMonth(asset.getPurchasedate()));
|
||
//有效日期
|
||
item.put("periodofvalidity", asset.getPeriodofvalidity()==null?"":Tools.getCurrentMonth(asset.getPeriodofvalidity()));
|
||
//保修日期
|
||
item.put("warrantydate", asset.getWarrantydate()==null?"":Tools.getCurrentMonth(asset.getWarrantydate()));
|
||
//资产编号
|
||
item.put("assetnum", Tools.dealNullStr(asset.getAssetnum()));
|
||
//资产序列号
|
||
item.put("serialnum", Tools.dealNullStr(asset.getSerialnum()));
|
||
//供应商
|
||
item.put("supplier", asset.getSupplier()==null?"":asset.getSupplier().getSupplier());
|
||
//供应商
|
||
item.put("supplierID", asset.getSupplier()==null?"":asset.getSupplier().getId());
|
||
//标签
|
||
item.put("labels", Tools.dealNullStr(asset.getLabels()));
|
||
item.put("description", Tools.dealNullStr(asset.getDescription()));
|
||
item.put("op", 1);
|
||
dataArray.add(item);
|
||
}
|
||
}
|
||
outer.put("rows", dataArray);
|
||
//回写查询结果
|
||
toClient(outer.toString());
|
||
}
|
||
catch (DataAccessException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>查找资产信息异常", e);
|
||
}
|
||
catch (IOException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>回写查询资产信息结果异常", e);
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 导出excel表格
|
||
* @return
|
||
*/
|
||
@SuppressWarnings("unchecked")
|
||
public String exportExcel()
|
||
{
|
||
Log.infoFileSync("===================调用导出资产信息action方法exportExcel开始=======================");
|
||
try
|
||
{
|
||
PageUtil<Asset> pageUtil = (PageUtil<Asset>)getSession().get("pageUtil");
|
||
|
||
pageUtil.setPageSize(model.getPageSize());
|
||
pageUtil.setCurPage(model.getPageNo());
|
||
//pageUtil.setAdvSearch(getCondition());
|
||
String isCurrentPage = model.getIsAllData();
|
||
model.setFileName(Tools.changeUnicode(model.getFileName() + ".xls",model.getBrowserType()));
|
||
model.setExcelStream(assetService.exmportExcel(isCurrentPage,pageUtil));
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>>>>>>>>>>>>调用导出资产信息action方法exportExcel异常",e);
|
||
model.getShowModel().setMsgTip("export excel exception");
|
||
}
|
||
Log.infoFileSync("===================调用导出资产信息action方法exportExcel结束==================");
|
||
return AssetConstants.BusinessForExcel.EXCEL;
|
||
}
|
||
|
||
|
||
/**
|
||
* 导入资产excel表格内容
|
||
*/
|
||
public String importExcel()
|
||
{
|
||
//资产excel表格file
|
||
Boolean result = false;
|
||
String returnStr = "";
|
||
try
|
||
{
|
||
InputStream in = assetService.importExcel(model.getAssetFile(), model.getIsCheck());
|
||
|
||
if(null != in)
|
||
{
|
||
model.setFileName(Tools.getRandomChar() + Tools.getNow2(Calendar.getInstance().getTime()) + "_wrong.xls");
|
||
model.setExcelStream(in);
|
||
returnStr = AssetConstants.BusinessForExcel.EXCEL;
|
||
}
|
||
else
|
||
{
|
||
result = true;
|
||
try
|
||
{
|
||
toClient(result.toString());
|
||
}
|
||
catch (IOException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>回写导入资产信息结果异常", e);
|
||
}
|
||
//导入数据成功
|
||
returnStr = SUCCESS;
|
||
}
|
||
|
||
}
|
||
catch (JshException e)
|
||
{
|
||
Log.errorFileSync(">>>>>>>>>>>>>>>>>>>导入excel表格信息异常", e);
|
||
}
|
||
return returnStr;
|
||
}
|
||
|
||
/**
|
||
* 拼接搜索条件
|
||
* @return
|
||
*/
|
||
private Map<String,Object> getCondition()
|
||
{
|
||
/**
|
||
* 拼接搜索条件
|
||
*/
|
||
Map<String,Object> condition = new HashMap<String,Object>();
|
||
condition.put("assetname.id_n_eq", model.getAssetNameID());
|
||
condition.put("assetname.category.id_n_eq", model.getAssetCategoryID());
|
||
condition.put("user.id_n_eq", model.getUserID());
|
||
condition.put("status_n_eq", model.getStatus());
|
||
condition.put("supplier.id_n_eq", model.getSupplierID());
|
||
condition.put("createtime_s_order", "desc");
|
||
return condition;
|
||
}
|
||
|
||
/**
|
||
* 根据状态码转化成说明字符串
|
||
* 资产的状态:0==在库,1==在用,2==消费
|
||
* @param statusCode
|
||
* @return
|
||
*/
|
||
private String getStatusInfo(short statusCode)
|
||
{
|
||
String statusInfo = "";
|
||
switch(statusCode)
|
||
{
|
||
case AssetConstants.BusinessForExcel.EXCEl_STATUS_ZAIKU:
|
||
statusInfo = "在库";
|
||
break;
|
||
|
||
case AssetConstants.BusinessForExcel.EXCEl_STATUS_INUSE:
|
||
statusInfo = "在用";
|
||
break;
|
||
|
||
case AssetConstants.BusinessForExcel.EXCEl_STATUS_CONSUME:
|
||
statusInfo = "消费";
|
||
break;
|
||
}
|
||
return statusInfo;
|
||
}
|
||
|
||
//=========Spring注入以及model驱动公共方法===========
|
||
public void setAssetService(AssetIService assetService)
|
||
{
|
||
this.assetService = assetService;
|
||
}
|
||
|
||
public void setCategoryService(CategoryIService categoryService)
|
||
{
|
||
this.categoryService = categoryService;
|
||
}
|
||
|
||
public void setSupplierService(SupplierIService supplierService)
|
||
{
|
||
this.supplierService = supplierService;
|
||
}
|
||
|
||
public void setUserService(UserIService userService)
|
||
{
|
||
this.userService = userService;
|
||
}
|
||
|
||
public void setAssetnameService(AssetNameIService assetnameService)
|
||
{
|
||
this.assetnameService = assetnameService;
|
||
}
|
||
|
||
@Override
|
||
public AssetModel getModel()
|
||
{
|
||
return model;
|
||
}
|
||
}
|