package com.thhy.materials.modules.biz.concret.service.impl;
|
|
import cn.hutool.core.io.IoUtil;
|
import cn.hutool.poi.excel.ExcelWriter;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.util.StringUtil;
|
import com.thhy.general.common.BasicResult;
|
import com.thhy.general.config.SysUserInfo;
|
import com.thhy.general.utils.UserInfoUtils;
|
import com.thhy.materials.modules.biz.concret.entity.SysSteel;
|
import com.thhy.materials.modules.biz.concret.entity.SysSteelCorrection;
|
import com.thhy.materials.modules.biz.concret.entity.dto.RestDataByOneDto;
|
import com.thhy.materials.modules.biz.concret.entity.dto.SteelCheckDto;
|
import com.thhy.materials.modules.biz.concret.mapper.SysSteelMapper;
|
import com.thhy.materials.modules.biz.concret.service.SysSteelService;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletResponse;
|
import java.io.IOException;
|
import java.io.OutputStream;
|
import java.text.DecimalFormat;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
|
@Service
|
public class SysSteelServiceImpl implements SysSteelService {
|
|
@Resource
|
private SysSteelMapper steelMapper;
|
|
|
@Override
|
public BasicResult steelInsert(Map<String, Object> values) {
|
//当前登录人 分公司id
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
String companyId = sysUserInfo.getCompanyId();
|
values.put("companyId",companyId);
|
|
String steelName = values.get("steelName").toString();
|
String steelModel = values.get("steelModel").toString();
|
|
String steelId = steelMapper.steelNameAndModelByOne(steelName,steelModel,companyId);
|
if(!StringUtil.isEmpty(steelId)){
|
return BasicResult.faild("11111","error","该类型已存在");
|
}
|
values.put("steelId","");
|
steelMapper.steelInsert(values);
|
return BasicResult.success("添加成功");
|
}
|
|
@Override
|
public BasicResult steelList(Map<String, Object> values) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
String companyId = sysUserInfo.getCompanyId();
|
values.put("companyId",companyId);
|
|
Integer pageNum = Integer.valueOf(values.get("pageNum").toString());
|
Integer pageSize = Integer.valueOf(values.get("pageSize").toString());
|
PageHelper.startPage(pageNum,pageSize);
|
List<SysSteel> steels = steelMapper.steelList(values);
|
steels.stream().forEach(sysSteel -> {
|
if(sysSteel.getStock()!=null &&sysSteel.getStock()>0){
|
DecimalFormat df = new DecimalFormat("#.####");
|
String formattedNumber = df.format(sysSteel.getStock());
|
sysSteel.setStock(Double.valueOf(formattedNumber));
|
}
|
});
|
PageInfo<SysSteel> sysSteelPageInfo = new PageInfo<>(steels);
|
return BasicResult.success(sysSteelPageInfo);
|
}
|
@Override
|
public BasicResult steelThingJsList(String token) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(token);
|
String companyId = sysUserInfo.getCompanyId();
|
List<SysSteel> steels = steelMapper.steelThingJsList(companyId);
|
return BasicResult.success(steels);
|
}
|
|
|
@Override
|
public BasicResult steelDel(String steelId) {
|
List<String> ids = steelMapper.steelCorrection(steelId);
|
if(ids!=null && ids.size()>0){
|
return BasicResult.faild("11111","该类型已被占用","error");
|
}
|
steelMapper.steelDel(steelId);
|
return BasicResult.success("删除成功");
|
}
|
|
@Override
|
public BasicResult steelInfo(String steelId) {
|
SysSteel steel = steelMapper.steelInfo(steelId);
|
return BasicResult.success(steel);
|
}
|
|
@Override
|
public BasicResult steelUpdate(Map<String, Object> values) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
String companyId = sysUserInfo.getCompanyId();
|
|
String steelId1 = values.get("steelId").toString();
|
String steelName = values.get("steelName").toString();
|
String steelModel = values.get("steelModel").toString();
|
String steelId = steelMapper.steelNameAndModelByOne(steelName,steelModel,companyId);
|
if(!StringUtil.isEmpty(steelId)&&!steelId1.equals(steelId)){
|
return BasicResult.faild("11111","error","该类型已存在");
|
}
|
steelMapper.steelUpdate(values);
|
return BasicResult.success("修改成功");
|
}
|
|
@Override
|
@Transactional
|
public BasicResult steelCheck(Map<String, Object> values) {
|
//校正后数量
|
Double correctionAfter = Double.valueOf(values.get("correctionAfter").toString());
|
//校正 钢筋id
|
String steelId = values.get("steelId").toString();
|
//修改库存
|
steelMapper.steelStockUp(steelId,correctionAfter);
|
//添加校正记录
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
values.put("createUser",sysUserInfo.getUserId());
|
values.put("ids","");
|
steelMapper.steelCheckInsert(values);
|
return BasicResult.success("校正成功");
|
}
|
|
@Override
|
public BasicResult steelCheckList(Map<String, Object> values) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
String companyId = sysUserInfo.getCompanyId();
|
values.put("companyId",companyId);
|
Integer pageNum = Integer.valueOf(values.get("pageNum").toString());
|
Integer pageSize = Integer.valueOf(values.get("pageSize").toString());
|
PageHelper.startPage(pageNum,pageSize);
|
List<SysSteelCorrection> steelCorrections = steelMapper.steelCheckList(values);
|
PageInfo<SysSteelCorrection> sysSteelCorrectionPageInfo = new PageInfo<>(steelCorrections);
|
return BasicResult.success(sysSteelCorrectionPageInfo);
|
}
|
|
@Override
|
public void steelCheckExport(Map<String, Object> values, HttpServletResponse response) {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
String companyId = sysUserInfo.getCompanyId();
|
values.put("companyId",companyId);
|
List<SysSteelCorrection> steelCorrections = steelMapper.steelCheckList(values);
|
|
List<SteelCheckDto> recordDtos = new ArrayList<>();
|
for (SysSteelCorrection steelCorrection : steelCorrections){
|
SteelCheckDto recordDto = new SteelCheckDto();
|
recordDto.setCreateTime(steelCorrection.getCreateTime());
|
recordDto.setSteelName(steelCorrection.getSteelName());
|
recordDto.setSteelModel(steelCorrection.getSteelModel());
|
recordDto.setUnit(steelCorrection.getUnit());
|
recordDto.setCorrectionNum(steelCorrection.getCorrectionNum());
|
recordDto.setCorrectionBefore(steelCorrection.getCorrectionBefore());
|
recordDto.setCorrectionAfter(steelCorrection.getCorrectionAfter());
|
recordDto.setRemark(steelCorrection.getRemark());
|
recordDto.setRealName(steelCorrection.getRealName());
|
recordDtos.add(recordDto);
|
}
|
|
ExcelWriter excel = new ExcelWriter();//定义excel
|
excel.addHeaderAlias("createTime", "校正时间");
|
excel.addHeaderAlias("steelName", "钢筋名称");
|
excel.addHeaderAlias("steelModel", "规格型号");
|
excel.addHeaderAlias("unit", "计量单位");
|
excel.addHeaderAlias("correctionNum", "校正数量");
|
excel.addHeaderAlias("correctionBefore", "校正前库存");
|
excel.addHeaderAlias("correctionAfter", "校正后库存");
|
excel.addHeaderAlias("remark", "备注");
|
excel.addHeaderAlias("realName", "校正人");
|
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
|
response.setHeader("Content-Disposition", "attachment;filename=test.xls");
|
OutputStream out = null;
|
try {
|
out = response.getOutputStream();
|
excel.write(recordDtos);
|
excel.flush(out, true);
|
} catch (IOException e) {
|
e.printStackTrace();
|
} finally {
|
// 关闭writer,释放内存
|
excel.close();
|
}
|
IoUtil.close(out);
|
|
}
|
|
@Override
|
public BasicResult steelPull() {
|
SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo();
|
String companyId = sysUserInfo.getCompanyId();
|
List<SysSteel> steels = steelMapper.steelPull(companyId);
|
return BasicResult.success(steels);
|
}
|
|
/***
|
* 预警值设置
|
* @param steelId
|
* @param alarmCount
|
* @return
|
*/
|
@Override
|
public BasicResult steelAlertSettings(String steelId, Integer alarmCount) {
|
steelMapper.steelAlertSettings(steelId,alarmCount);
|
return BasicResult.success("成功");
|
}
|
|
/**
|
* web端预警弹窗
|
* @return
|
*/
|
@Override
|
public BasicResult selectSteelAlert() {
|
return BasicResult.success(steelMapper.selectsteelAlert());
|
}
|
|
@Override
|
public BasicResult restDataByOne(String deviceId) {
|
RestDataByOneDto restDataByOneDto = steelMapper.restDataByOne(deviceId);
|
return BasicResult.success(restDataByOneDto);
|
}
|
|
}
|