package com.shlanbao.tzsc.pms.md.mat.service.impl;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import com.shlanbao.tzsc.utils.tools.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import com.shlanbao.tzsc.base.dao.MdMatDaoI;
|
import com.shlanbao.tzsc.base.dao.MdMaterialLkDaoI;
|
import com.shlanbao.tzsc.base.mapping.MdMat;
|
import com.shlanbao.tzsc.base.mapping.MdMatType;
|
import com.shlanbao.tzsc.base.mapping.MdMaterialLk;
|
import com.shlanbao.tzsc.base.mapping.MdUnit;
|
import com.shlanbao.tzsc.base.mapping.SchWorkorder;
|
import com.shlanbao.tzsc.base.model.DataGrid;
|
import com.shlanbao.tzsc.base.model.PageParams;
|
import com.shlanbao.tzsc.base.service.BaseService;
|
import com.shlanbao.tzsc.plugin.service.LoadComboboxServiceI;
|
import com.shlanbao.tzsc.pms.md.mat.beans.MatBean;
|
import com.shlanbao.tzsc.pms.md.mat.service.MatServiceI;
|
import com.shlanbao.tzsc.utils.params.ComboboxType;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@Service
|
public class MatServiceImpl extends BaseService implements MatServiceI{
|
@Autowired
|
private MdMatDaoI mdMatDao;
|
@Autowired
|
private MdMaterialLkDaoI mdMaterialLkDao;
|
@Autowired
|
private LoadComboboxServiceI loadComboboxService;
|
@Autowired
|
private HttpServletRequest request;
|
|
@Override
|
public List<MatBean> queryAllMatsForComboBox() throws Exception {
|
String hql = "from MdMat o where o.mdMatType.code=?" ;
|
//mdMatType.code=1 成品 2辅料
|
return BeanConvertor.copyList(mdMatDao.query(hql,"1"), MatBean.class);
|
}
|
@LogAnno(operateType = "新增物料")
|
@Override
|
public void addMat(MatBean matBean) throws Exception {
|
MdMat o = new MdMat();
|
BeanConvertor.copyProperties(matBean, o);
|
if(StringUtil.notNull(matBean.getUnit())){
|
o.setMdUnit(new MdUnit(matBean.getUnit()));
|
}
|
if(StringUtil.notNull(matBean.getMatType())){
|
o.setMdMatType(new MdMatType(matBean.getMatType()));
|
}
|
o.setLastUpdateTime(new Date());
|
o.setDel("0");
|
FillUserInfoUtil.fillCreateUserInfo(o,request);
|
mdMatDao.save(o);
|
loadComboboxService.initCombobox(ComboboxType.MATPROD);
|
}
|
@LogAnno(operateType = "编辑物料")
|
@Override
|
public void editMat(MatBean matBean) throws Exception {
|
MdMat o = mdMatDao.findById(MdMat.class, matBean.getId());
|
|
BeanConvertor.copyProperties(matBean, o);
|
o.setLastUpdateTime(new Date());
|
|
if(StringUtil.notNull(matBean.getUnit())){
|
o.setMdUnit(new MdUnit(matBean.getUnit()));
|
}
|
|
if(StringUtil.notNull(matBean.getMatType())){
|
o.setMdMatType(new MdMatType(matBean.getMatType()));
|
}
|
FillUserInfoUtil.fillUpdateUserInfo(o,request);
|
loadComboboxService.initCombobox(ComboboxType.MATPROD);
|
}
|
@LogAnno(operateType = "删除物料")
|
@Override
|
public void deleteMat(String id) throws Exception {
|
mdMatDao.updateByParams("update MdMat o set o.del='1' where o.id=?", id);
|
loadComboboxService.initCombobox(ComboboxType.MATPROD);
|
}
|
@Override
|
public DataGrid getAllMats(MatBean matBean,PageParams pageParams) throws Exception {
|
|
String hql = "from MdMat o left join fetch o.mdMatType t left join fetch o.mdUnit u where o.del='0'";
|
|
if(StringUtil.notNull(matBean.getMatType())){
|
hql = hql.concat(" and o.mdMatType.id = "+matBean.getMatType());
|
}
|
|
if(matBean.getEnable() != null){
|
hql = hql.concat(" and o.enable = "+matBean.getEnable());
|
}
|
|
if(StringUtil.notNull(matBean.getCode())){
|
hql = hql.concat(" and o.code like '%"+matBean.getCode()+"%'");
|
}
|
|
if(StringUtil.notNull(matBean.getName())){
|
hql = hql.concat(" and o.name like '%"+matBean.getName()+"%'");
|
}
|
List<MdMat> mdMats = mdMatDao.queryByPage(hql+" order by o.lastUpdateTime desc ", pageParams);
|
|
List<MatBean> list = new ArrayList<MatBean>();
|
|
for (MdMat mdMat : mdMats) {
|
MatBean bean = BeanConvertor.copyProperties(mdMat, MatBean.class);
|
if(mdMat.getMdUnit()!=null){
|
bean.setUnit(mdMat.getMdUnit().getName());
|
bean.setUnitId(mdMat.getMdUnit().getId());
|
}
|
if(mdMat.getMdMatType()!=null){
|
bean.setMatType(mdMat.getMdMatType().getName());
|
}
|
FillUserInfoUtil.fillCreateAndUpdateUserInfo(mdMat,bean);
|
list.add(bean);
|
}
|
|
hql= "select count(o) ".concat(hql.replace("fetch", ""));
|
|
Long count = mdMatDao.queryTotal(hql);
|
|
return new DataGrid(list, count);
|
}
|
@Override
|
public MatBean getMatById(String id) throws Exception{
|
|
MdMat mdMat = mdMatDao.findById(MdMat.class, id);
|
|
MatBean bean = BeanConvertor.copyProperties(mdMat,MatBean.class);
|
|
if(mdMat.getMdUnit()!=null){
|
bean.setUnit(mdMat.getMdUnit().getId());
|
}
|
|
if(mdMat.getMdMatType()!=null){
|
bean.setMatType(mdMat.getMdMatType().getId());
|
}
|
|
return bean;
|
}
|
@Override
|
public List<MatBean> queryAllProdMat() throws Exception {
|
List<MatBean> list = new ArrayList<MatBean>();
|
String hql = "from MdMat o where o.del='0' and o.mdMatType.code='1'";
|
List<MdMat> mats=mdMatDao.query(hql);
|
if(mats!=null &&mats.size()>0){
|
MatBean matBean=null;
|
for (MdMat mdMat : mats) {
|
matBean = new MatBean(mdMat.getId(), mdMat.getName());
|
list.add(matBean);
|
}
|
}
|
return list;
|
}
|
@Override
|
public Map<String, String[]> getAllMatMap() {
|
List<?> ls=mdMatDao.queryBySql("SELECT code,id,tid from md_mat where ENABLE=1 and del=0");
|
Map<String,String[]> map=new HashMap<>();
|
try {
|
if(ls!=null && ls.size()>0){
|
for (Object obj : ls) {//需要修改
|
Object[] str=(Object[]) obj;
|
if(StringUtil.notEmpty(str[0]) && StringUtil.notEmpty(str[1])){
|
map.put(str[0].toString(), new String[]{str[1].toString(),str[2].toString()});
|
}
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return map;
|
}
|
|
@Override
|
public Map<String, String[]> getAllMatMapJB() {
|
List<?> ls=mdMatDao.queryBySql("SELECT code,id,tid from md_mat where ENABLE=1 and del=0 and tid not in ('14') ");
|
Map<String,String[]> map=new HashMap<>();
|
try {
|
if(ls!=null && ls.size()>0){
|
for (Object obj : ls) {//需要修改
|
Object[] str=(Object[]) obj;
|
if(StringUtil.notEmpty(str[0]) && StringUtil.notEmpty(str[1])){
|
map.put(str[0].toString(), new String[]{str[1].toString(),str[2].toString()});
|
}
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return map;
|
}
|
|
/**得到所有牌号*/
|
@Override
|
public Map<String, String[]> getAllMatMapCx() {
|
List<?> ls=mdMatDao.queryBySql("SELECT code,id,tid from md_mat where ENABLE=1 and del=0 and tid in ('1','14') ");
|
Map<String,String[]> map=new HashMap<>();
|
try {
|
if(ls!=null && ls.size()>0){
|
for (Object obj : ls) {//需要修改
|
Object[] str=(Object[]) obj;
|
if(StringUtil.notEmpty(str[0]) && StringUtil.notEmpty(str[1])){
|
map.put(str[0].toString(), new String[]{str[1].toString(),str[2].toString()});
|
}
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return map;
|
}
|
|
/**
|
* 存放成型机牌号
|
*
|
* */
|
@Override
|
public Map<String, String[]> getAllMatMapFiller() {
|
List<?> ls=mdMatDao.queryBySql("SELECT code,id,tid from md_mat where ENABLE=1 and del=0 and tid='14' ");
|
Map<String,String[]> map=new HashMap<>();
|
try {
|
if(ls!=null && ls.size()>0){
|
for (Object obj : ls) {//需要修改
|
Object[] str=(Object[]) obj;
|
if(StringUtil.notEmpty(str[0]) && StringUtil.notEmpty(str[1])){
|
map.put(str[0].toString(), new String[]{str[1].toString(),str[2].toString()});
|
}
|
}
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return map;
|
}
|
|
/**
|
* 功能说明:查询当天时间的工厂日历
|
*
|
* */
|
@Override
|
public Map<String, String[]> getAllSchCalendar(SchWorkorder schWorkorder) {
|
try {
|
String sql="select shift,etim,WORKSHOP from SCH_CALENDAR where to_char(date_,'yyyy-MM-dd')='"+DateUtil.datetoStr(schWorkorder.getDate(), "yyyy-MM-dd") +"' and WORKSHOP=1 ";
|
List<?> ls=mdMatDao.queryBySql(sql);
|
Map<String,String[]> map=new HashMap<String, String[]>();
|
if(ls!=null && ls.size()>0){
|
for (Object obj : ls) {//需要修改
|
Object[] str=(Object[]) obj;
|
if(StringUtil.notEmpty(str[0]) && StringUtil.notEmpty(str[1])){
|
map.put(str[0].toString(), new String[]{str[1].toString(),str[2].toString()});
|
}
|
}
|
}
|
return map;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
@Override
|
public List<MatBean> getMatFiller() {
|
List<MatBean> list = new ArrayList<MatBean>();
|
String hql = "from MdMat o where o.del='0' and o.mdMatType.code='14'";
|
List<MdMat> mats=mdMatDao.query(hql);
|
if(mats!=null &&mats.size()>0){
|
MatBean matBean=null;
|
for (MdMat mdMat : mats) {
|
matBean = new MatBean(mdMat.getId(), mdMat.getName());
|
list.add(matBean);
|
}
|
}
|
return list;
|
}
|
@Override
|
public List<MatBean> getFlFiller() {
|
List<MatBean> list = new ArrayList<MatBean>();
|
String hql = "from MdMat o where o.del='0' and o.mdMatType.code='4'";
|
List<MdMat> mats=mdMatDao.query(hql);
|
if(mats!=null &&mats.size()>0){
|
MatBean matBean=null;
|
for (MdMat mdMat : mats) {
|
matBean = new MatBean(mdMat.getId(), mdMat.getName());
|
list.add(matBean);
|
}
|
}
|
return list;
|
}
|
|
/**
|
* [说明]:查询物料是否存在
|
* @author wanchanghuang
|
* @date 2019年5月7日10:46:36
|
* */
|
@Override
|
public long queryMdMatType(MdMat mdMat) {
|
try {
|
String hql = "from MdMat o where o.del='0' and o.code=?";
|
List<MdMat> list=mdMatDao.query(hql, mdMat.getCode());
|
if(list!=null) {
|
return list.size();
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return 0;
|
}
|
/**
|
* [说明]:插入对象
|
* @author wanchanghuang
|
* @date 2019年5月7日10:46:36
|
* */
|
@Override
|
public void saveMdMat(MdMat mdMat) {
|
mdMatDao.save(mdMat);
|
}
|
/**
|
* [说明]:物料锁定-修改
|
* @author wanchanghuang
|
* @create 2019年5月15日14:03:26
|
*/
|
@Override
|
public void updateMdMaterail(MdMaterialLk wkorder) {
|
String sql="update MD_MATERIAL_LK set type='"+wkorder.getType()+"' where material_code='"+wkorder.getMaterialCode()+"' and material_batch_code='"+wkorder.getMaterialBatchCode()+"' ";
|
//mdMaterialLkDao.queryBySql(sql);
|
mdMaterialLkDao.updateBySql(sql, null);
|
}
|
/**
|
* [说明]:物料锁定-查询
|
* @author wanchanghuang
|
* @create 2019年5月15日14:03:26
|
*/
|
@Override
|
public long queryMdMaterailAll(MdMaterialLk wkorder) {
|
try {
|
String hql = "from MdMaterialLk o where o.type='1' and o.materialCode=? and o.materialBatchCode=? ";
|
List<MdMaterialLk> list=mdMaterialLkDao.query(hql, wkorder.getMaterialCode(),wkorder.getMaterialBatchCode());
|
if(list!=null) {
|
return list.size();
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return 0;
|
}
|
/**
|
* [说明]:物料锁定-添加
|
* @author wanchanghuang
|
* @create 2019年5月15日14:03:26
|
*/
|
@Override
|
public void addMdMaterail(MdMaterialLk wkorder) {
|
mdMaterialLkDao.save(wkorder);
|
}
|
|
@LogAnno(operateType = "批量删除物料")
|
@Override
|
public void batchDeleteMat(String ids) {
|
String[] split = ids.split(",");
|
for (int i = 0; i < split.length; i++) {
|
mdMatDao.updateByParams("update MdMat o set o.del='1' where o.id=?", split[i]);
|
}
|
loadComboboxService.initCombobox(ComboboxType.MATPROD);
|
}
|
|
|
@Override
|
public List<?> getProdByMonth(String month) {
|
|
|
return mdMatDao.queryBySql("select b.CODE,b.NAME from SCH_WORKORDER a join md_mat b on a.mat = b.id where to_char(a.DATE_,'yyyy-mm') = ? and a.TYPE in (1,2) group by b.CODE,b.NAME ",month);
|
}
|
}
|