BOM明细查询修改
This commit is contained in:
parent
a39a6a1c64
commit
3e0c9de015
@ -67,11 +67,7 @@ public interface ProcessBomDetailMapper extends BaseMapperX<ProcessBomDetailDO>
|
|||||||
List<ProcessBomDetailDO> selectStandardListByBomId(@Param("bomId") Long bomId);
|
List<ProcessBomDetailDO> selectStandardListByBomId(@Param("bomId") Long bomId);
|
||||||
|
|
||||||
|
|
||||||
@Select("SELECT p.*, IFNULL(SUM(s.storage_ok_qty), 0) AS storage_ok_qty " +
|
@Select("SELECT p.* FROM pro_process_bom_detail p WHERE p.bom_id = #{bomId} and p.type = 1 AND p.deleted IN (0, 1) ")
|
||||||
"FROM pro_process_bom_detail p " +
|
|
||||||
"LEFT JOIN v_storage_material_now s ON p.material_name = s.mat_name " +
|
|
||||||
"WHERE p.bom_id = #{bomId} and p.type = 1 AND p.deleted IN (0, 1) " +
|
|
||||||
"GROUP BY p.material_name")
|
|
||||||
//2025 0601 因为bom明细页查询到结果 由 group by materialcode转换为 group by id
|
//2025 0601 因为bom明细页查询到结果 由 group by materialcode转换为 group by id
|
||||||
List<ProcessBomDetailDO> selectStandardListByBomId20250609(@Param("bomId") Long bomId);
|
List<ProcessBomDetailDO> selectStandardListByBomId20250609(@Param("bomId") Long bomId);
|
||||||
default Long getBomDetailByBluePrintNoAndBomId(String bomCode,String bluePrintNo){
|
default Long getBomDetailByBluePrintNoAndBomId(String bomCode,String bluePrintNo){
|
||||||
|
@ -16,6 +16,7 @@ import org.apache.poi.hpsf.Decimal;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -106,7 +107,7 @@ public interface StorageLogNowMapper extends BaseMapperX<StorageLogNowDO> {
|
|||||||
|
|
||||||
List<StorageLogNowDO> selectNowList(StorageNowAllReqVO reqVO);
|
List<StorageLogNowDO> selectNowList(StorageNowAllReqVO reqVO);
|
||||||
|
|
||||||
|
List<StorageLogNowDO> selectAllByMatNames(@Param("matNames") List<String> matNames);
|
||||||
List<StorageLogNowDO> selectNowByMatPnId(@Param("matId")Long matId,@Param("pnId")Long pnId);
|
List<StorageLogNowDO> selectNowByMatPnId(@Param("matId")Long matId,@Param("pnId")Long pnId);
|
||||||
|
|
||||||
default PageResult<StorageLogNowDO> getStorageNowPricePage(StorageLogPageReqVO reqVO) {
|
default PageResult<StorageLogNowDO> getStorageNowPricePage(StorageLogPageReqVO reqVO) {
|
||||||
|
@ -33,6 +33,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.shenhe.ShenheDO;
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.shenhe.ShenheDO;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper;
|
||||||
@ -42,6 +43,7 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.plantask.PlanTaskMapper;
|
|||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomDetailMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.processbom.ProcessBomMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.shenhe.ShenheMapper;
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.shenhe.ShenheMapper;
|
||||||
|
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog.StorageLogNowMapper;
|
||||||
import com.chanko.yunxi.mes.module.heli.enums.ProcessBomStatusEnum;
|
import com.chanko.yunxi.mes.module.heli.enums.ProcessBomStatusEnum;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService;
|
import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService;
|
||||||
import com.chanko.yunxi.mes.module.heli.service.composition.CompositionService;
|
import com.chanko.yunxi.mes.module.heli.service.composition.CompositionService;
|
||||||
@ -123,6 +125,8 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
private MaterialPlanMapper materialPlanMapper;
|
private MaterialPlanMapper materialPlanMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private MaterialPlanBoomMapper materialPlanBoomMapper;
|
private MaterialPlanBoomMapper materialPlanBoomMapper;
|
||||||
|
@Resource
|
||||||
|
private StorageLogNowMapper storageLogNowMapper;
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Long createProcessBom(ProcessBomSaveReqVO createReqVO) {
|
public Long createProcessBom(ProcessBomSaveReqVO createReqVO) {
|
||||||
@ -808,6 +812,29 @@ public class ProcessBomServiceImpl implements ProcessBomService {
|
|||||||
list.addAll(processBomDetailMapper.selectStandardListByBomId20250609(bomId));
|
list.addAll(processBomDetailMapper.selectStandardListByBomId20250609(bomId));
|
||||||
// Map<Long, List<ProcessBomDetailDO>> standardGroupByMatId = processBomDetailDOS.stream().collect(Collectors.groupingBy(vo -> vo.getMaterialId() == null ? -1 : vo.getMaterialId()));
|
// Map<Long, List<ProcessBomDetailDO>> standardGroupByMatId = processBomDetailDOS.stream().collect(Collectors.groupingBy(vo -> vo.getMaterialId() == null ? -1 : vo.getMaterialId()));
|
||||||
//查非标准件的
|
//查非标准件的
|
||||||
|
if (CollUtil.isNotEmpty(list)){
|
||||||
|
HashSet<String> materialNameSet = new HashSet<>();
|
||||||
|
for (ProcessBomDetailDO processBomDetailDO : list) {
|
||||||
|
processBomDetailDO.setStorageOkQty(BigDecimal.ZERO);
|
||||||
|
if (processBomDetailDO.getMaterialName() != null) {
|
||||||
|
materialNameSet.add(processBomDetailDO.getMaterialName());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (CollUtil.isNotEmpty(materialNameSet)){
|
||||||
|
List<StorageLogNowDO> storageLogNowDOS = storageLogNowMapper.selectAllByMatNames(new ArrayList<>(materialNameSet));
|
||||||
|
for (ProcessBomDetailDO processBomDetailDO : list) {
|
||||||
|
for (StorageLogNowDO storageLogNowDO : storageLogNowDOS) {
|
||||||
|
if (processBomDetailDO.getMaterialName()!= null && storageLogNowDO.getMatName().equals(processBomDetailDO.getMaterialName())) {
|
||||||
|
processBomDetailDO.setStorageOkQty(storageLogNowDO.getStorageOkQty());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
List<ProcessBomDetailDO> processBomDetailNoStandardDOS = processBomDetailMapper.selectListNoStandardList(bomId);
|
List<ProcessBomDetailDO> processBomDetailNoStandardDOS = processBomDetailMapper.selectListNoStandardList(bomId);
|
||||||
List<ProcessBomDetailDO> noStandardList = processBomDetailNoStandardDOS.stream()
|
List<ProcessBomDetailDO> noStandardList = processBomDetailNoStandardDOS.stream()
|
||||||
|
@ -71,10 +71,16 @@
|
|||||||
</where>
|
</where>
|
||||||
order by t.mat_code
|
order by t.mat_code
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectNowByMatPnId" resultType="com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO">
|
<select id="selectNowByMatPnId" resultType="com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO">
|
||||||
select * from v_storage_material_now where id=#{matId} and pn_id=#{pnId} order by mat_code
|
select * from v_storage_material_now where id=#{matId} and pn_id=#{pnId} order by mat_code
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectAllByMatNames" resultType="com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO">
|
||||||
|
select mat_name as matName,IFNULL(SUM(storage_ok_qty), 0) AS storage_ok_qty from v_storage_material_now where mat_name in
|
||||||
|
<foreach collection="matNames" open="(" close=")" separator="," item="name">
|
||||||
|
#{name}
|
||||||
|
</foreach>
|
||||||
|
group by mat_name
|
||||||
|
</select>
|
||||||
<select id="selectMaterialWithNow"
|
<select id="selectMaterialWithNow"
|
||||||
parameterType="com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.StorageNowAllReqVO"
|
parameterType="com.chanko.yunxi.mes.module.heli.controller.admin.storagelog.vo.StorageNowAllReqVO"
|
||||||
resultType="com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO">
|
resultType="com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO">
|
||||||
|
Loading…
Reference in New Issue
Block a user