| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- package com.jeesite.modules.mes.service;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import com.jeesite.common.collect.ListUtils;
- import com.jeesite.common.config.Global;
- import com.jeesite.modules.mes.entity.MesMaterialPrebind;
- import com.jeesite.modules.mes.resp.BindMaterialResp;
- import com.jeesite.modules.mes.resp.CommonResp;
- import com.jeesite.modules.mes.util.CommonUitl;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import com.jeesite.common.entity.Page;
- import com.jeesite.common.service.CrudService;
- import com.jeesite.modules.mes.entity.MesLineProcessMaterial;
- import com.jeesite.modules.mes.dao.MesLineProcessMaterialDao;
- /**
- * 生产工序物料表Service
- * @author mes
- * @version 2024-04-02
- */
- @Service
- public class MesLineProcessMaterialService extends CrudService<MesLineProcessMaterialDao, MesLineProcessMaterial> {
- @Autowired
- private MesLineProcessMaterialDao mesLineProcessMaterialDao;
- @Autowired
- private MesMaterialPrebindService mesMaterialPrebindService;
- /**
- * 获取单条数据
- * @param mesLineProcessMaterial
- * @return
- */
- @Override
- public MesLineProcessMaterial get(MesLineProcessMaterial mesLineProcessMaterial) {
- return super.get(mesLineProcessMaterial);
- }
- public MesLineProcessMaterial findInfo(MesLineProcessMaterial mesLineProcessMaterial) {
- return mesLineProcessMaterialDao.findInfo(mesLineProcessMaterial);
- }
-
- /**
- * 查询分页数据
- * @param mesLineProcessMaterial 查询条件
- * @param mesLineProcessMaterial.page 分页对象
- * @return
- */
- @Override
- public Page<MesLineProcessMaterial> findPage(MesLineProcessMaterial mesLineProcessMaterial) {
- return super.findPage(mesLineProcessMaterial);
- }
-
- /**
- * 查询列表数据
- * @param mesLineProcessMaterial
- * @return
- */
- @Override
- public List<MesLineProcessMaterial> findList(MesLineProcessMaterial mesLineProcessMaterial) {
- return super.findList(mesLineProcessMaterial);
- }
-
- /**
- * 保存数据(插入或更新)
- * @param mesLineProcessMaterial
- */
- @Override
- @Transactional
- public void save(MesLineProcessMaterial mesLineProcessMaterial) {
- super.save(mesLineProcessMaterial);
- }
-
- /**
- * 更新状态
- * @param mesLineProcessMaterial
- */
- @Override
- @Transactional
- public void updateStatus(MesLineProcessMaterial mesLineProcessMaterial) {
- super.updateStatus(mesLineProcessMaterial);
- }
-
- /**
- * 删除数据
- * @param mesLineProcessMaterial
- */
- @Override
- @Transactional
- public void delete(MesLineProcessMaterial mesLineProcessMaterial) {
- super.delete(mesLineProcessMaterial);
- }
- // 获取绑定的物料
- public List<BindMaterialResp> getBindMaterial(String oprno, String lineSn){
- String oldOprno = oprno;
- oprno = CommonUitl.formatOprno(oprno);
- // 工序物料表
- MesLineProcessMaterial mesLineProcessMaterial = new MesLineProcessMaterial();
- mesLineProcessMaterial.setOprno(oprno);
- mesLineProcessMaterial.setLineSn(lineSn);
- //mesLineProcessMaterial.setStatus("0");
- List<MesLineProcessMaterial> lists = findList(mesLineProcessMaterial);
- if(ListUtils.isEmpty(lists)){
- return null; // 不需要绑定物料
- }
- // 工位绑定物料批次表:按工艺号建索引,避免双层循环
- MesMaterialPrebind mesMaterialPrebind = new MesMaterialPrebind();
- mesMaterialPrebind.setOprno(oldOprno);
- mesMaterialPrebind.setLineSn(lineSn);
- List<MesMaterialPrebind> mmps = mesMaterialPrebindService.findList(mesMaterialPrebind);
- Map<String, MesMaterialPrebind> prebindByCraft = new HashMap<>();
- if (!ListUtils.isEmpty(mmps)) {
- for (MesMaterialPrebind prebind : mmps) {
- if (prebind.getCraft() != null) {
- prebindByCraft.put(prebind.getCraft(), prebind);
- }
- }
- }
- List<BindMaterialResp> mlists = new ArrayList<>();
- for (MesLineProcessMaterial mesLineProcessMaterial1 : lists) {
- BindMaterialResp bindMaterialResp = new BindMaterialResp();
- bindMaterialResp.setMaterialId(mesLineProcessMaterial1.getMaterialId());
- bindMaterialResp.setMaterialTitle(mesLineProcessMaterial1.getMaterialTitle());
- bindMaterialResp.setCraft(mesLineProcessMaterial1.getCraft());
- bindMaterialResp.setBatchSn("");
- bindMaterialResp.setLastTimes("");
- bindMaterialResp.setMesMaterialPrebind(null);
- bindMaterialResp.setType(mesLineProcessMaterial1.getType());
- bindMaterialResp.setConsumeNums(mesLineProcessMaterial1.getConsumeNums());
- bindMaterialResp.setOprno(oldOprno);
- MesMaterialPrebind matched = prebindByCraft.get(mesLineProcessMaterial1.getCraft());
- if (matched != null) {
- bindMaterialResp.setBatchSn(matched.getBatchSn());
- bindMaterialResp.setLastTimes(matched.getLastTimes() + "");
- bindMaterialResp.setType(matched.getType());
- bindMaterialResp.setMesMaterialPrebind(matched);
- }
- mlists.add(bindMaterialResp);
- }
- return mlists;
- }
- }
|