package com.jsh.erp.service.material; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.datasource.entities.Material; import com.jsh.erp.datasource.entities.MaterialExample; import com.jsh.erp.datasource.entities.MaterialVo4Unit; import com.jsh.erp.datasource.mappers.MaterialMapper; import com.jsh.erp.utils.StringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; @Service public class MaterialService { private Logger logger = LoggerFactory.getLogger(MaterialService.class); @Resource private MaterialMapper materialMapper; public Material getMaterial(long id) { return materialMapper.selectByPrimaryKey(id); } public List getMaterial() { MaterialExample example = new MaterialExample(); return materialMapper.selectByExample(example); } public List select(String name, String model,Long categoryId, String categoryIds,String mpList, int offset, int rows) { String[] mpArr = mpList.split(","); List resList = new ArrayList(); List list = materialMapper.selectByConditionMaterial(name, model,categoryId,categoryIds,mpList, offset, rows); if (null != list) { for (MaterialVo4Unit m : list) { //扩展信息 String materialOther = ""; for (int i = 0; i < mpArr.length; i++) { if (mpArr[i].equals("颜色")) { materialOther = materialOther + ((m.getColor() == null || m.getColor().equals("")) ? "" : "(" + m.getColor() + ")"); } if (mpArr[i].equals("规格")) { materialOther = materialOther + ((m.getStandard() == null || m.getStandard().equals("")) ? "" : "(" + m.getStandard() + ")"); } if (mpArr[i].equals("制造商")) { materialOther = materialOther + ((m.getMfrs() == null || m.getMfrs().equals("")) ? "" : "(" + m.getMfrs() + ")"); } if (mpArr[i].equals("自定义1")) { materialOther = materialOther + ((m.getOtherfield1() == null || m.getOtherfield1().equals("")) ? "" : "(" + m.getOtherfield1() + ")"); } if (mpArr[i].equals("自定义2")) { materialOther = materialOther + ((m.getOtherfield2() == null || m.getOtherfield2().equals("")) ? "" : "(" + m.getOtherfield2() + ")"); } if (mpArr[i].equals("自定义3")) { materialOther = materialOther + ((m.getOtherfield3() == null || m.getOtherfield3().equals("")) ? "" : "(" + m.getOtherfield3() + ")"); } } m.setMaterialOther(materialOther); resList.add(m); } } return resList; } public int countMaterial(String name, String model,Long categoryId, String categoryIds,String mpList) { return materialMapper.countsByMaterial(name, model,categoryId,categoryIds,mpList); } @Transactional(value = "transactionManager", rollbackFor = Exception.class) public int insertMaterial(String beanJson, HttpServletRequest request) { Material material = JSONObject.parseObject(beanJson, Material.class); material.setEnabled(true); return materialMapper.insertSelective(material); } @Transactional(value = "transactionManager", rollbackFor = Exception.class) public int updateMaterial(String beanJson, Long id) { Material material = JSONObject.parseObject(beanJson, Material.class); material.setId(id); int res = materialMapper.updateByPrimaryKeySelective(material); Long unitId = material.getUnitid(); if(unitId != null) { materialMapper.updatePriceNullByPrimaryKey(id); //将价格置空 } else { materialMapper.updateUnitIdNullByPrimaryKey(id); //将多单位置空 } return res; } @Transactional(value = "transactionManager", rollbackFor = Exception.class) public int deleteMaterial(Long id) { return materialMapper.deleteByPrimaryKey(id); } @Transactional(value = "transactionManager", rollbackFor = Exception.class) public int batchDeleteMaterial(String ids) { List idList = StringUtil.strToLongList(ids); MaterialExample example = new MaterialExample(); example.createCriteria().andIdIn(idList); return materialMapper.deleteByExample(example); } public int checkIsNameExist(Long id, String name) { MaterialExample example = new MaterialExample(); example.createCriteria().andIdNotEqualTo(id).andNameEqualTo(name); List list = materialMapper.selectByExample(example); return list.size(); } public int checkIsExist(Long id, String name, String model, String color, String standard, String mfrs, String otherField1, String otherField2, String otherField3, String unit, Long unitId) { MaterialExample example = new MaterialExample(); MaterialExample.Criteria criteria = example.createCriteria(); criteria.andNameEqualTo(name).andModelEqualTo(model).andColorEqualTo(color) .andStandardEqualTo(standard).andMfrsEqualTo(mfrs) .andOtherfield1EqualTo(otherField1).andOtherfield2EqualTo(otherField2).andOtherfield2EqualTo(otherField3); if (id > 0) { criteria.andIdNotEqualTo(id); } if (!StringUtil.isEmpty(unit)) { criteria.andUnitEqualTo(unit); } if (unitId !=null) { criteria.andUnitidEqualTo(unitId); } List list = materialMapper.selectByExample(example); return list.size(); } @Transactional(value = "transactionManager", rollbackFor = Exception.class) public int batchSetEnable(Boolean enabled, String materialIDs) { List ids = StringUtil.strToLongList(materialIDs); Material material = new Material(); material.setEnabled(enabled); MaterialExample example = new MaterialExample(); example.createCriteria().andIdIn(ids); return materialMapper.updateByExampleSelective(material, example); } public String findUnitName(Long mId){ return materialMapper.findUnitName(mId); } public List findById(Long id){ return materialMapper.findById(id); } public List findBySelect(){ return materialMapper.findBySelect(); } public List findByOrder(){ MaterialExample example = new MaterialExample(); example.setOrderByClause("Name,Model asc"); return materialMapper.selectByExample(example); } }