package com.shlanbao.tzsc.pms.md.matparam.service.impl;
|
|
import java.util.*;
|
|
import com.shlanbao.tzsc.base.dao.impl.SchWorkorderBomDaoImpl;
|
import com.shlanbao.tzsc.base.dao.impl.SchWorkorderDaoImpl;
|
import com.shlanbao.tzsc.utils.tools.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import com.shlanbao.tzsc.base.dao.MdMatParamDaoI;
|
import com.shlanbao.tzsc.base.mapping.MdMat;
|
import com.shlanbao.tzsc.base.mapping.MdMatParam;
|
import com.shlanbao.tzsc.base.model.DataGrid;
|
import com.shlanbao.tzsc.base.service.BaseService;
|
import com.shlanbao.tzsc.pms.md.matparam.beans.MatParamBean;
|
import com.shlanbao.tzsc.pms.md.matparam.service.MatParamServiceI;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@Service
|
public class MatParamServiceImpl extends BaseService implements MatParamServiceI{
|
@Autowired
|
private MdMatParamDaoI mdMatParamDao;
|
@Autowired
|
private HttpServletRequest request;
|
@Autowired
|
private SchWorkorderDaoImpl schWorkorderDao;
|
@Autowired
|
private SchWorkorderBomDaoImpl schWorkorderBomDao;
|
|
@LogAnno(operateType = "新增辅料系数")
|
@Override
|
public void addMatParam(MatParamBean MatParamBean) throws Exception {
|
MdMatParam o = new MdMatParam();
|
BeanConvertor.copyProperties(MatParamBean, o);
|
o.setMdMat(new MdMat(MatParamBean.getMat()));
|
FillUserInfoUtil.fillCreateUserInfo(o,request);
|
mdMatParamDao.save(o);
|
}
|
@LogAnno(operateType = "编辑辅料系数")
|
@Override
|
public void editMatParam(MatParamBean MatParamBean) throws Exception {
|
MdMatParam o = mdMatParamDao.findById(MdMatParam.class, MatParamBean.getId());
|
BeanConvertor.copyProperties(MatParamBean, o);
|
o.setMdMat(new MdMat(MatParamBean.getMat()));
|
mdMatParamDao.save(o);
|
FillUserInfoUtil.fillUpdateUserInfo(o,request);
|
}
|
@LogAnno(operateType = "删除辅料系数")
|
@Override
|
public void deleteMatParam(String id) throws Exception {
|
mdMatParamDao.deleteById(id, MdMatParam.class);
|
}
|
@Override
|
public DataGrid getAllMatParams(MatParamBean matParamBean) throws Exception {
|
|
String hql = "from MdMatParam o where 1=1 ";
|
|
if(StringUtil.notNull(matParamBean.getMatType())){
|
|
hql = hql.concat(" and o.mdMat.mdMatType.id='"+matParamBean.getMatType()+"'");
|
|
}
|
//and o.name like '%"+MatParam.getName()+"%' order by o.seq asc";
|
List<MatParamBean> list = new ArrayList<MatParamBean>();
|
List<MdMatParam> ts=mdMatParamDao.query(hql);
|
for (MdMatParam mdMatParam :ts) {
|
MatParamBean bean = new MatParamBean();
|
bean.setId(mdMatParam.getId());
|
bean.setLength(mdMatParam.getLength());
|
bean.setWidth(mdMatParam.getWidth());
|
bean.setDensity(mdMatParam.getDensity());
|
bean.setVal(mdMatParam.getVal());
|
bean.setDes(mdMatParam.getDes());
|
if(mdMatParam.getMdMat()!=null){
|
bean.setMatName(mdMatParam.getMdMat().getId()); // 辅料ID
|
bean.setMat(mdMatParam.getMdMat().getName());//辅料
|
bean.setMatType(mdMatParam.getMdMat().getMdMatType().getId());
|
}
|
/*MatParamBean bean = BeanConvertor.copyProperties(mdMatParam, MatParamBean.class);
|
if(mdMatParam.getMdMat()!=null){
|
bean.setMatName(mdMatParam.getMdMat().getId());
|
bean.setMat(mdMatParam.getMdMat().getName());//辅料
|
}*/
|
FillUserInfoUtil.fillCreateAndUpdateUserInfo(mdMatParam,bean);
|
list.add(bean);
|
|
}
|
|
return new DataGrid(list, 0L);
|
}
|
@Override
|
public MatParamBean getMatParamById(String id) throws Exception{
|
|
MdMatParam MdMatParam = mdMatParamDao.findById(MdMatParam.class, id);
|
|
MatParamBean bean = BeanConvertor.copyProperties(MdMatParam, MatParamBean.class);
|
|
if(MdMatParam.getMdMat()!= null){
|
|
bean.setMat(MdMatParam.getMdMat().getId());//辅料
|
bean.setMatName(MdMatParam.getMdMat().getName());//辅料
|
|
}
|
|
return bean;
|
|
}
|
@LogAnno(operateType = "批量删除辅料系数")
|
@Override
|
public void batchDeleteMatParam(String ids) {
|
String[] split = ids.split(",");
|
for (int i = 0; i < split.length; i++) {
|
mdMatParamDao.deleteById(split[i], MdMatParam.class);
|
}
|
|
}
|
|
@Override
|
public void initCalcValue(){
|
StringBuilder sb=new StringBuilder();
|
sb.append("select ")
|
.append(" id,type,shift,team,eqp,mat,date_ ,bom_version, ")
|
.append(" (select code from MD_EQP_TYPE where id=(select eqp_type_id from MD_EQUIPMENT where id=eqp) ) as eqptype, ")
|
.append(" ( select equipment_code from MD_EQUIPMENT where id=eqp) as eqpcode ")
|
.append(" from SCH_WORKORDER ")
|
.append(" where del=0 ")
|
.append(" and to_char(date_,'yyyy-MM-dd')= to_char(sysdate,'yyyy-MM-dd') ")
|
.append(" and shift in (select shift from SCH_CALENDAR where 1=1 and del=0 and sysdate between stim and etim) ");
|
//查询当前班次所有工单
|
List<Object[]> schWorkorders=(List<Object[]>)schWorkorderDao.queryBySql(sb.toString());
|
List<Object[]> listfl=null;
|
if( schWorkorders!=null && schWorkorders.size()>0 ) {
|
for (Object[] s : schWorkorders) {
|
Map<String, String> map = new HashMap<>();
|
if (s[9] != null) {
|
RedisUtil.del(s[9] + "CC");
|
//查询当前工单的辅料系数 、设备类型、辅料类型
|
StringBuilder sb2 = new StringBuilder();
|
sb2.append("select ")
|
.append(" mp.val as flxsVal, ")
|
.append(" MP.EQP_TYPE as eqptype, ")
|
.append(" ( ")
|
.append(" select code from MD_MAT_TYPE where id=(select tid from MD_MAT where id=mp.mat) ")
|
.append(" ) as matTypeCode ")
|
.append(" from Sch_Workorder_Bom bom,Md_Mat_Param mp where 1=1 ")
|
.append(" and bom.del=0 ")
|
.append(" and bom.mat=mp.mat ")
|
.append(" and bom_lot_id= '" + s[7] + "'");
|
listfl = (List<Object[]>) schWorkorderBomDao.queryBySql(sb2.toString());
|
|
if ("1".equals(StringUtil.convertObjToString(s[1]))) {
|
Double shuisongzhiValue = null; //水松纸系数
|
if (listfl != null && listfl.size() > 0) {
|
for (Object[] fl : listfl) {
|
if ("3".equals(StringUtil.convertObjToString(fl[2]))) {
|
String flxsVal = StringUtil.convertObjToString(fl[0]);
|
if (!"" .equals(flxsVal)) {
|
shuisongzhiValue = Double.valueOf(flxsVal);
|
}
|
}
|
}
|
}
|
//判断是否配置完整
|
if (shuisongzhiValue == null) {
|
shuisongzhiValue = 1D;
|
log.error("工单ID:" + s[0] + " 水松纸转换参数未配置");
|
}
|
map.put("ssz", shuisongzhiValue.toString());
|
}
|
|
if ("2".equals(StringUtil.convertObjToString(s[1]))) { //包装机
|
if (listfl != null && listfl.size() > 0) {
|
Double xiaohemoValue = null; //小盒膜系数
|
Double tiaohemoValue = null; //条盒膜系数
|
Double neichenzhiValue = null;//内衬纸系数
|
for (Object[] fl : listfl) { //7-小盒纸 8-条盒纸 5小盒膜 6条盒膜9内衬纸
|
if ("5".equals(StringUtil.convertObjToString(fl[2]))) {
|
String flxsVal = StringUtil.convertObjToString(fl[0]);
|
if (!"" .equals(flxsVal)) {
|
xiaohemoValue = Double.valueOf(flxsVal);
|
}
|
} else if ("6".equals(StringUtil.convertObjToString(fl[2]))) {
|
String flxsVal = StringUtil.convertObjToString(fl[0]);
|
if (!"" .equals(flxsVal)) {
|
tiaohemoValue = Double.valueOf(flxsVal);
|
}
|
} else if ("9".equals(StringUtil.convertObjToString(fl[2]))) {
|
String flxsVal = StringUtil.convertObjToString(fl[0]);
|
if (!"" .equals(flxsVal)) {
|
neichenzhiValue = Double.valueOf(flxsVal);
|
}
|
}
|
}
|
//判断是否配置完整
|
if (xiaohemoValue == null) {
|
xiaohemoValue = 1D;
|
log.error("工单ID:" + s[0] + " 小盒膜辅料计数参数未配置");
|
}
|
if (tiaohemoValue == null) {
|
tiaohemoValue = 1D;
|
log.error("工单ID:" + s[0] + " 条盒膜辅料计数参数未配置");
|
}
|
if (neichenzhiValue == null) {
|
neichenzhiValue = 1D;
|
log.error("工单ID:" + s[0] + " 内衬纸辅料计数参数未配置");
|
}
|
map.put("xhm", xiaohemoValue.toString());
|
map.put("thm", tiaohemoValue.toString());
|
map.put("ncz", neichenzhiValue.toString());
|
}
|
}
|
RedisUtil.setMap(s[9]+"CC",map);
|
}
|
}
|
}
|
}
|
|
}
|