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

261 lines
7.8 KiB
Plaintext
Raw Normal View History

2025-06-20 17:47:53 +08:00
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;
}
}