GZMachinesWeb/.svn/pristine/ae/ae584a8544a1886f0b59e2bcbf0...

261 lines
7.8 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.bonus.newInput.service;
import java.io.File;
import java.io.IOException;
import java.text.DecimalFormat;
import java.util.Enumeration;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bonus.bm.beans.LogBean;
import com.bonus.bm.dao.LogDao;
import com.bonus.core.DateTimeHelper;
import com.bonus.ma.beans.MachineBean;
import com.bonus.ma.beans.MachineTypeBean;
import com.bonus.ma.dao.MachineDao;
import com.bonus.ma.dao.MachineTypeDao;
import com.bonus.newInput.beans.NewInputBean;
import com.bonus.newInput.dao.InputDetailsDao;
import com.bonus.newInput.dao.NewInputDao;
import com.bonus.sys.BaseServiceImp;
import com.bonus.sys.Page;
import com.bonus.sys.UserShiroHelper;
import com.bonus.wf.beans.TaskRecordBean;
import com.bonus.wf.dao.TaskRecordDao;
import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;
@Service("new")
public class NewInputServiceImp extends BaseServiceImp<NewInputBean> implements NewInputService{
@Autowired
private NewInputDao dao;
@Autowired
private TaskRecordDao trDao;
@Autowired
private InputDetailsDao idDao;
@Autowired
MachineDao maDao;
@Autowired
MachineTypeDao mtDao;
@Autowired
LogDao logDao;
@Override
public void add(NewInputBean o) {
addTaskRecord(o);
}
/**
* 新购任务建立
* @param o
*/
private void addTaskRecord(NewInputBean o){
String userId = UserShiroHelper.getRealCurrentUser().getId()+"";
TaskRecordBean bean = new TaskRecordBean();
bean.setOperationTime(DateTimeHelper.getNowTime());
bean.setOperationUserId(userId);
bean.setDefinitionId("12");
bean.setProcessId("7");
bean.setIsFinish("0");
bean.setCompanyId(o.getCompanyId());
trDao.insert(bean);
o.setTaskId(bean.getId());
o.setLaunchId(userId);
dao.add(o);
}
@Override
public Object uploadPhoto(HttpServletRequest request,NewInputBean o) {
String fileName = "";
String newName = "";
String suffix = "";
// 文件上传采用cos组件上传可更换为commons-fileupload上传文件上传后保存在upload文件夹
// 获取文件上传路径
String saveDirectory = request.getSession().getServletContext().getRealPath("/lossImg");
File file = new File(saveDirectory);
if (!file.exists()) {
file.mkdirs();
}
// 打印上传路径信息
System.out.println("文件保存路径=" + saveDirectory);
// 每个文件最大50m
int maxPostSize = 200 * 1024 * 1024;
MultipartRequest multi = null;
DefaultFileRenamePolicy dfp = new DefaultFileRenamePolicy();
try {
multi = new MultipartRequest(request, saveDirectory, maxPostSize, "UTF-8",dfp);
} catch (IOException e) {
e.printStackTrace();
}
// 输出反馈信息
Enumeration<?> files = multi.getFileNames();
while (files.hasMoreElements()) {
String name = (String) files.nextElement();
File f = multi.getFile(name);
System.err.println("f=" + f);
if (f != null) {
fileName = multi.getFilesystemName(name);
newName = DateTimeHelper.getNowTimeFomart();
int begin = fileName.indexOf(".");
int last = fileName.length();
suffix = fileName.substring(begin,last);
//更换文件名称
if (!fileName.equals(newName)) {// 新的文件名和以前文件名不同时,才有必要进行重命名
File oldfile = new File(saveDirectory + "/" + fileName);
File newfile = new File(saveDirectory + "/" + newName + suffix);
if (!oldfile.exists()) {
logger.error("需要重命名的文件不存在");
}
if (newfile.exists()) {// 若在该目录下已经有一个文件和新文件名相同,则不允许重命名
logger.error(newName + "已经存在!");
} else {
oldfile.renameTo(newfile);
}
} else {
logger.error("新文件名和旧文件名相同...");
}
}
return newName + suffix;
}
return null;
}
@Override
public void isExamine(NewInputBean o) {
o.setIsExamine("1");
dao.isExamine(o);
}
/**
* 批准 1.修改机具状态,增加库存 2.修改任务状态3.修改批准状态
*/
@Override
public void isApproval(NewInputBean o) {
//添加日志
LogBean logBean= new LogBean();
logBean.setModel("新购批准");
logBean.setFun("/backstage/new/isApproval");
logBean.setTask(o.getTaskId());
logBean.setTypeId(o.getMaModelId());
LogBean inBean=logDao.findInNum(logBean);
String description="在库数:"+inBean.getInNum()+";批准数:"+o.getNums();
logBean.setDescription(description);
String time = DateTimeHelper.currentDateTime();
logBean.setTime(time);
String userId = UserShiroHelper.getRealCurrentUser().getId()+"";
logBean.setCreator(userId);
logDao.insertLog(logBean);
LogBean total = logDao.findTotalNum(logBean);
float num1 = Float.parseFloat(total.getTotal());
float num2 = Float.parseFloat(o.getNums());
float num3 = num1+num2;
String description2 =total.getTotal()+"=>:"+num3;
total.setTask(o.getTaskId());
total.setTaskCode("新购批准入库");
total.setCreator(userId);
total.setTime(time);
total.setDescription(description2);
logDao.insertTotalLog(total);
//修改批准状态
updateIsApproval(o);
//判断任务是否满足完成 满足改为已完成
boolean tf = updateTaskStatus(o);
TaskRecordBean bean = new TaskRecordBean();
if (tf) {
bean.setIsFinish("1");
bean.setId(o.getTaskId());
trDao.update(bean);
}
//修改机具状态 和库存
updateDevStatus(o);
}
public void updateIsApproval(NewInputBean o){
o.setIsApproval("1");
dao.isApproval(o);
}
public boolean updateTaskStatus(NewInputBean o){
List<NewInputBean> list = dao.findDetailsByTask(o);
for (NewInputBean bean : list) {
if ("0".equals(bean.getIsApproval()) || "0".equals(bean.getIsExamine())) {
return false;
}
}
return true;
}
//修改机具状态,改库存
public void updateDevStatus(NewInputBean o) {
MachineTypeBean mmtBean = new MachineTypeBean();
mmtBean.setMaModelId(o.getMaModelId());
MachineTypeBean mmBean = mtDao.findByModelId(mmtBean);
if (mmBean.getIsCount().equals("0")) {
List<NewInputBean> list = dao.findCodeByModel(o);
MachineBean maBean = new MachineBean();
for (NewInputBean bean : list) {
maBean.setTypeId(o.getMaModelId());
maBean.setDeviceCode(bean.getDeviceCode());
maBean.setBatchStatus("5");
// 改状态
maDao.updateMachineStatus(maBean);
}
updateMaNum(o);
}else{
updateMaNum(o);
}
}
public void updateMaNum(NewInputBean o) {
MachineBean maBean = new MachineBean();
maBean.setTypeId(o.getMaModelId());
MachineBean mBean = maDao.findMachineNum(maBean);
// 修改库存
float sums = Float.parseFloat(mBean.getSums());
float nums = Float.parseFloat(o.getNums());
float maNum = sums + nums;
DecimalFormat mFormat = new DecimalFormat(".000");
String formatNum = mFormat.format(maNum);
MachineTypeBean mtBean = new MachineTypeBean();
mtBean.setId(o.getMaModelId());
mtBean.setNums(formatNum);
// 修改库存
mtDao.update(mtBean);
}
@Override
public Page<NewInputBean> findIsExamine(NewInputBean o, Page<NewInputBean> page) {
page.setResults(dao.findIsExamine(o, page));
return page;
}
@Override
public Page<NewInputBean> findIsApproval(NewInputBean o, Page<NewInputBean> page) {
page.setResults(dao.findIsApproval(o, page));
return page;
}
@Override
public List<NewInputBean> newPurchaseReceipt(NewInputBean o) {
// TODO Auto-generated method stub
return dao.newPurchaseReceipt(o);
}
public int deleteQrcode(NewInputBean o) {
int res = 0;
List<NewInputBean> list = dao.findMaId(o);
if (list != null) {
for(NewInputBean input : list){
res = res + dao.deleteMachine(input);
}
}
dao.delete(o);
return res;
}
}