打印接口

This commit is contained in:
z 2025-07-09 20:58:58 +08:00
parent 7ba9e18346
commit f8cd8db633
20 changed files with 469 additions and 13 deletions

View File

@ -159,9 +159,9 @@ public class bdgzsomthingController {
//@Scheduled(cron = "0 2 0 * * ?") //每天十天执行一次
@PostConstruct
public void init() {
selectHasPrice();
selectSafeStorageAndDeliverOneYear();
bdgzsomthingService.selectds();
// selectHasPrice();
// selectSafeStorageAndDeliverOneYear();
// bdgzsomthingService.selectds();
}
@Scheduled(cron = "0 0 2 * * ?")
public void selectHasPrice(){

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.chanko.yunxi.mes.module.heli.controller.admin.outsourcestockboom.vo.OutsourceStockBoomSaveReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagein.StorageInDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO;
@ -325,4 +326,11 @@ public class StorageController {
public CommonResult<Boolean> procurementAndStorage(@Valid @RequestBody StorageSaveReqVO createReqVO) {
return storageService.procurementAndStorage(createReqVO);
}
@GetMapping("/isPrint")
@Operation(summary = "打印")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
public CommonResult<StorageDO> isPrint(@RequestParam("id") Long id) {
return success(storageService.isPrint(id));
}
}

View File

@ -1,5 +1,7 @@
package com.chanko.yunxi.mes.module.heli.dal.dataobject.storage;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
import lombok.*;
import java.math.BigDecimal;
@ -126,6 +128,15 @@ public class StorageDO extends BaseDO {
private String unit;
@TableField(exist = false)
private BigDecimal caiGouMoney;
@TableField(exist = false)
private String supplierName;
@TableField(exist = false)
private List<StorageMatDO> storageMatDOList;
@TableField(exist = false)
private String userName;
@TableField(exist = false)
private String signature;
@TableField(exist = false)
private Date date;
}

View File

@ -80,4 +80,11 @@ public class StorageInDO extends BaseDO {
private String supplierName;
@TableField(exist = false)
private List<StorageInDetailDO> storageInDetailDOList;
@TableField(exist = false)
private String userName;
@TableField(exist = false)
private String signature;
@TableField(exist = false)
private Date date;
}

View File

@ -171,5 +171,14 @@ public class StorageInDetailDO extends BaseDO {
*/
@TableField(exist = false)
private String materialCode;
/**
* 单位名称
*/
@TableField(exist = false)
private String unit;
/**
* 单价
*/
@TableField(exist = false)
private BigDecimal price;
}

View File

@ -130,5 +130,9 @@ public class StorageMatDO extends BaseDO {
@TableField(exist = false)
private BigDecimal matRest;
@TableField(exist = false)
private BigDecimal unitPrice;
@TableField(exist = false)
private BigDecimal totalPrice;
}

View File

@ -10,6 +10,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorder.PurchaseOrd
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagein.StorageInDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.dict.DictDataDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper;
import com.chanko.yunxi.mes.module.heli.controller.admin.storageindetail.vo.*;
@ -62,12 +63,15 @@ public interface StorageInDetailMapper extends BaseMapperX<StorageInDetailDO> {
query.selectAll(StorageInDetailDO.class)
.select("sup.name as supplierName","m.code as materialCode")
.select("d.label as unit")
.leftJoin(SupplierDO.class,"sup", SupplierDO::getId, StorageInDetailDO::getSupplierId)
.leftJoin(MaterialDO.class,"m", MaterialDO::getId, StorageInDetailDO::getMaterialId)
.leftJoin(DictDataDO.class,"d",DictDataDO::getValue, StorageInDetailDO::getBoomUnit)
.groupBy(StorageInDetailDO::getId)
.disableSubLogicDel()
.orderByDesc(StorageInDetailDO::getCreateTime);
query.eq(pageReqVO.getStorageNoId() != null, StorageInDetailDO::getStorageNoId, pageReqVO.getStorageNoId());
query.eq(pageReqVO.getStorageNoId() != null, StorageInDetailDO::getStorageNoId, pageReqVO.getStorageNoId())
.eq("d.dict_type","heli_material_unit");
return selectPage(pageReqVO, query);
}
}

View File

@ -12,10 +12,13 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrder
import com.chanko.yunxi.mes.module.heli.dal.dataobject.projectorder.ProjectOrderSubDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.rg.RgDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelogNow.StorageLogNowDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.warehouse.WarehouseDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.dept.DeptDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.dict.DictDataDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper;
@ -101,4 +104,24 @@ public interface StorageMatMapper extends BaseMapperX<StorageMatDO> {
}
List<StorageMatValidRespVO> selectStorageMatValid(Long whId);
default List<StorageMatDO> selectMatByStorckId(Long stockId) {
MPJLambdaWrapper<StorageMatDO> query = new MPJLambdaWrapper<>();
query.selectAll(StorageMatDO.class)
.select("o.project_name as projectName ,l.name as matName ,l.material_type as matType,l.spec as matSpec,d.label as matUnit")
.select("w.price as unitPrice,ROUND(COALESCE(t.storage_ok_qty * w.price, 0), 1) AS totalPrice")
.leftJoin(MaterialDO.class,"l",MaterialDO::getId,StorageMatDO::getMatId)
.leftJoin(DictDataDO.class,"d",DictDataDO::getValue, MaterialDO::getUnit)
.leftJoin("wms_storage_inventory w on t.wh_id=w.wh_id and t.rg_id=w.rg_id and t.pn_id=w.pn_id and t.mat_id=w.material_id and w.tenant_id=2 and w.deleted=0")
.leftJoin(ProjectOrderSubDO.class,"sub",ProjectOrderSubDO::getId,StorageMatDO::getProjectNo)
.leftJoin(ProjectOrderDO.class,"o",ProjectOrderDO::getId,ProjectOrderSubDO::getProjectOrderId)
.disableSubLogicDel()
.orderByDesc(StorageMatDO::getId)
.groupBy(StorageMatDO::getId)
.eq(StorageMatDO::getStockId, stockId)
.eq("d.dict_type","heli_material_unit");
return selectList(query);
}
}

View File

@ -308,7 +308,64 @@ public class MaterialPlanServiceImpl implements MaterialPlanService {
}
// materialPlanBoomMapper.insertBatch(materialPlanBoomDOList);
taskDispatchDetailMapper.insertOrUpdateBatch(list);
return true;
List<AttentiontodoDO> attentiontodook = attentiontodoMapper.selectByIdlist(8);//查找该类型的待办和关注人
String nickname = userApi.getUser( SecurityFrameworkUtils.getLoginUser().getId()).getNickname();
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(8);
if (attentiontodook1.size()<1){
{
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
attentiontodoDO.setEvent("《物料需求计划》提交后");
attentiontodoDO.setAttr5("1");
attentiontodoDO.setAttr4(nickname);
attentiontodoDO.setLevel("1");
attentiontodook.add(attentiontodoDO);
}
}
for (AttentiontodoDO attentiontodoRespVO : attentiontodook) {
{
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("物料需求计划单号:" + planDO.getProjectMaterialPlanNo() + "已提交");//事件名称
BdgzsomthingDO.setAttr2(planDO.getProjectMaterialPlanNo());//跳转携带参数
BdgzsomthingDO.setAttr3(planDO.getProjectMaterialPlanNo());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期
// BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写
if (attentiontodoRespVO.getAttr5().equals("1")) {//提醒状态
BdgzsomthingDO.setDborgz("待办");
} else if (attentiontodoRespVO.getAttr5().equals("2")) {
BdgzsomthingDO.setDborgz("关注");
}
//提醒人
if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())) {
AdminUserDO user = adminUserService.getUser(Long.valueOf(planDO.getCreator()));
if (ObjectUtil.isNotEmpty(user)) {
BdgzsomthingDO.setClick(user.getNickname());
}
} else {
BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());
}
if (attentiontodoRespVO.getLevel().equals("1")) {
BdgzsomthingDO.setLevel("紧急");
} else if (attentiontodoRespVO.getLevel().equals("2")) {
BdgzsomthingDO.setLevel("一般");
} else if (attentiontodoRespVO.getLevel().equals("3")) {
BdgzsomthingDO.setLevel("非紧急");
}
// BdgzsomthingDO.setClick(attentiontodoRespVO.getRemindman());//提醒人
BdgzsomthingDO.setYesorno("0");//是否点击
BdgzsomthingDO.setAttr4("0");//是否已处理
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件
bdgzsomthingMapper.insert(BdgzsomthingDO);
}
}
return true;
}
@Override

View File

@ -1110,6 +1110,72 @@ public class ProcessBomServiceImpl implements ProcessBomService {
}
materialPlanBoomMapper.insertBatch(materialPlanBoomDOList);
processBomDetailMapper.insertOrUpdateBatch(list);
List<AttentiontodoDO> attentiontodook = attentiontodoMapper.selectByIdlist(8);//查找该类型的待办和关注人
String nickname = userApi.getUser( SecurityFrameworkUtils.getLoginUser().getId()).getNickname();
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(8);
if (attentiontodook1.size()<1){
{
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
attentiontodoDO.setEvent("《物料需求计划》提交后");
attentiontodoDO.setAttr5("1");
attentiontodoDO.setAttr4(nickname);
attentiontodoDO.setLevel("1");
attentiontodook.add(attentiontodoDO);
}
}
for (AttentiontodoDO attentiontodoRespVO : attentiontodook) {
{
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("物料需求计划单号:"+planDO.getProjectMaterialPlanNo()+"已提交");//事件名称
BdgzsomthingDO.setAttr2(planDO.getProjectMaterialPlanNo());//跳转携带参数
BdgzsomthingDO.setAttr3(planDO.getProjectMaterialPlanNo());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期
// BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写
if(attentiontodoRespVO.getAttr5().equals("1")){//提醒状态
BdgzsomthingDO.setDborgz("待办");
}
else if(attentiontodoRespVO.getAttr5().equals("2")){
BdgzsomthingDO.setDborgz("关注");
}
//提醒人
if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){
AdminUserDO user = adminUserService.getUser(Long.valueOf(planDO.getCreator()));
if (ObjectUtil.isNotEmpty(user)){
BdgzsomthingDO.setClick(user.getNickname());
}
}else {
BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());
}
if(attentiontodoRespVO.getLevel().equals("1")){
BdgzsomthingDO.setLevel("紧急");
}
else if(attentiontodoRespVO.getLevel().equals("2")){
BdgzsomthingDO.setLevel("一般");
}
else if(attentiontodoRespVO.getLevel().equals("3")){
BdgzsomthingDO.setLevel("非紧急");
}
// BdgzsomthingDO.setClick(attentiontodoRespVO.getRemindman());//提醒人
BdgzsomthingDO.setYesorno("0");//是否点击
BdgzsomthingDO.setAttr4("0");//是否已处理
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件
bdgzsomthingMapper.insert(BdgzsomthingDO);
// }
}
}
return true;
}

View File

@ -4,27 +4,38 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.chanko.yunxi.mes.framework.common.exception.ErrorCode;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.MaterialPlanDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO;
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.purchaseorderno.PurchaseOrderNoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplan.MaterialPlanMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplanboom.MaterialPlanBoomMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.materialplandetail.MaterialPlanDetailMapper;
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.purchaseorderno.PurchaseOrderNoMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper;
import com.chanko.yunxi.mes.module.heli.enums.CodeEnum;
import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService;
import com.chanko.yunxi.mes.module.heli.service.procedure.ProcedureService;
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
import com.chanko.yunxi.mes.module.heli.service.storage.StorageService;
import com.chanko.yunxi.mes.module.system.api.user.AdminUserApi;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
import com.sun.scenario.effect.impl.prism.PrTexture;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -34,6 +45,8 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordernodetail.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
@ -78,8 +91,19 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe
private StorageMatMapper storageMatMapper;
@Resource
private StorageService storageService;
@Resource
private PurchaseOrderNoMapper purchaseOrderNoMapper;
@Resource
private AdminUserApi userApi;
@Resource
private AttentiontodoService attentiontodoService;
@Resource
private com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper bdgzsomthingMapper;
@Resource
private AdminUserService adminUserService;
@Resource
private AttentiontodoMapper attentiontodoMapper;
@Override
public Long createPurchaseOrderNoDetail(PurchaseOrderNoDetailSaveReqVO createReqVO) {
@ -250,7 +274,98 @@ public class PurchaseOrderNoDetailServiceImpl implements PurchaseOrderNoDetailSe
storageService.updateMatLogList(out.getId(),2);
storageMapper.deleteById(storageDO);
storageMapper.deleteById(out);
// materialMapper.insertBatch(materialDOList);
List<Long> idList = list.stream()
.filter(Objects::nonNull) // 过滤空对象
.map(PurchaseOrderNoDetailDO::getId)
.filter(Objects::nonNull) // 过滤空ID
.collect(Collectors.toList());
LambdaQueryWrapper<PurchaseOrderNoDetailDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(PurchaseOrderNoDetailDO::getId,idList);
List<PurchaseOrderNoDetailDO> purchaseOrderNoDetailDOS = purchaseOrderNoDetailMapper.selectList(lambdaQueryWrapper);
List<Long> ids = purchaseOrderNoDetailDOS.stream()
.filter(Objects::nonNull) // 过滤空对象
.map(PurchaseOrderNoDetailDO::getPurchaseOrderId)
.filter(Objects::nonNull) // 过滤空ID
.collect(Collectors.toList());
LambdaQueryWrapper<PurchaseOrderNoDO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(PurchaseOrderNoDO::getId,ids);
List<PurchaseOrderNoDO> purchaseOrderNoDOS = purchaseOrderNoMapper.selectList(queryWrapper);
for (PurchaseOrderNoDO purchaseOrderNoDO : purchaseOrderNoDOS) {
LambdaQueryWrapper<PurchaseOrderNoDetailDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PurchaseOrderNoDetailDO::getPurchaseOrderId, purchaseOrderNoDO.getId());
List<PurchaseOrderNoDetailDO> lists = purchaseOrderNoDetailMapper.selectList(wrapper);
// 方法1使用 Stream API最简洁
boolean allStatus3 = lists != null &&
!lists.isEmpty() &&
lists.stream()
.allMatch(detail -> detail.getReceivingStatus()==3);
if (allStatus3) {
//采购订单收货完成
List<AttentiontodoDO> attentiontodook = attentiontodoMapper.selectByIdlist(10);//查找该类型的待办和关注人
String nickname = userApi.getUser(SecurityFrameworkUtils.getLoginUser().getId()).getNickname();
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(10);
if (attentiontodook1.size() < 1) {
{
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
attentiontodoDO.setEvent("《采购订单》到货时通知检验");
attentiontodoDO.setAttr5("1");
attentiontodoDO.setAttr4(nickname);
attentiontodoDO.setLevel("1");
attentiontodook.add(attentiontodoDO);
}
}
for (AttentiontodoDO attentiontodoRespVO : attentiontodook) {
{
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("采购订单" + purchaseOrderNoDO.getPurchaseNo() + "已完成收货");//事件名称
BdgzsomthingDO.setAttr2(purchaseOrderNoDO.getPurchaseNo());//跳转携带参数
BdgzsomthingDO.setAttr3(purchaseOrderNoDO.getPurchaseNo());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期
// BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写
if (attentiontodoRespVO.getAttr5().equals("1")) {//提醒状态
BdgzsomthingDO.setDborgz("待办");
} else if (attentiontodoRespVO.getAttr5().equals("2")) {
BdgzsomthingDO.setDborgz("关注");
}
if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())) {
AdminUserDO user = adminUserService.getUser(Long.valueOf(purchaseOrderNoDO.getCreator()));
if (ObjectUtil.isNotEmpty(user)) {
BdgzsomthingDO.setClick(user.getNickname());
}
} else {
BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());
}//提醒人
if (attentiontodoRespVO.getLevel().equals("1")) {
BdgzsomthingDO.setLevel("紧急");
} else if (attentiontodoRespVO.getLevel().equals("2")) {
BdgzsomthingDO.setLevel("一般");
} else if (attentiontodoRespVO.getLevel().equals("3")) {
BdgzsomthingDO.setLevel("非紧急");
}
// BdgzsomthingDO.setClick(attentiontodoRespVO.getRemindman());//提醒人
BdgzsomthingDO.setYesorno("0");//是否点击
BdgzsomthingDO.setAttr4("0");//是否已处理
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件
bdgzsomthingMapper.insert(BdgzsomthingDO);
// }
}
}
}
}
return success(true);
}

View File

@ -75,4 +75,6 @@ public interface StorageService {
List<StorageDO> getList(Long id, Long projectSubId);
CommonResult<Boolean> procurementAndStorage(StorageSaveReqVO createReqVO);
StorageDO isPrint(Long id);
}

View File

@ -37,6 +37,8 @@ import com.chanko.yunxi.mes.module.heli.enums.CodeEnum;
import com.chanko.yunxi.mes.module.heli.service.master.MasterService;
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
import com.chanko.yunxi.mes.module.heli.service.storagelog.StorageLogService;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -101,6 +103,8 @@ public class StorageServiceImpl implements StorageService {
private PurchaseOrderNoDetailMapper purchaseOrderNoDetailMapper;
@Resource
private StorageInventoryMapper storageInventoryMapper;
@Resource
private AdminUserService adminUserService;
@Resource
private StorageLogService storageLogService;
@ -511,4 +515,20 @@ private StorageLogService storageLogService;
return CommonResult.success(true);
}
@Override
public StorageDO isPrint(Long id) {
StorageDO storageDO = storageMapper.selectById(id);
if (ObjectUtil.isNotEmpty(storageDO)){
storageDO.setSupplierName("");
storageDO.setSignature("");
AdminUserDO user = adminUserService.getUser(getLoginUser().getId());
if (ObjectUtil.isNotEmpty(user)){
storageDO.setUserName(user.getNickname());
}
List<StorageMatDO> storageMatDOS = storageMatMapper.selectMatByStorckId(id);
storageDO.setStorageMatDOList(storageMatDOS);
}
return storageDO;
}
}

View File

@ -4,21 +4,30 @@ import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils;
import com.chanko.yunxi.mes.module.heli.controller.admin.storageindetail.vo.StorageInDetailPageReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.attentiontodo.AttentiontodoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.bdgzsomthing.bdgzsomthingDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseorderno.PurchaseOrderNoDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordernodetail.PurchaseOrderNoDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageindetail.StorageInDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDO;
import com.chanko.yunxi.mes.module.heli.dal.mysql.attentiontodo.AttentiontodoMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storageindetail.StorageInDetailMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper;
import com.chanko.yunxi.mes.module.heli.enums.CodeEnum;
import com.chanko.yunxi.mes.module.heli.service.attentiontodo.AttentiontodoService;
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
import com.chanko.yunxi.mes.module.heli.service.storage.StorageService;
import com.chanko.yunxi.mes.module.system.api.user.AdminUserApi;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
import com.sun.corba.se.spi.ior.IdentifiableFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@ -70,6 +79,16 @@ public class StorageInServiceImpl implements StorageInService {
private StorageMatMapper storageMatMapper;
@Resource
private StorageService storageService;
@Resource
private AdminUserService adminUserService;
@Resource
private AttentiontodoMapper attentiontodoMapper;
@Resource
private AdminUserApi userApi;
@Resource
private AttentiontodoService attentiontodoService;
@Resource
private com.chanko.yunxi.mes.module.heli.dal.mysql.bdgzsomthing.bdgzsomthingMapper bdgzsomthingMapper;
@Override
public Long createStorageIn(StorageInSaveReqVO createReqVO) {
// 插入
@ -142,10 +161,21 @@ public class StorageInServiceImpl implements StorageInService {
public StorageInDO isPrint(Long id) {
StorageInDO storageInDO = storageInMapper.selectById(id);
if (ObjectUtil.isNotEmpty(storageInDO)){
AdminUserDO user = adminUserService.getUser(getLoginUser().getId());
if (ObjectUtil.isNotEmpty(user)){
storageInDO.setUserName(user.getNickname());
}
storageInDO.setSignature("");
StorageInDetailPageReqVO page = new StorageInDetailPageReqVO();
page.setStorageNoId(id);
page.setPageSize(PageParam.PAGE_SIZE_NONE);
List<StorageInDetailDO> list = storageInDetailMapper.getByStorageId(page).getList();
if (ObjectUtil.isNotEmpty(list)){
storageInDO.setSupplierName(list.get(0).getSupplierName());
for (StorageInDetailDO storageInDetailDO : list) {
storageInDetailDO.setPrice(storageInDetailDO.getEstimatedPrice().divide(storageInDetailDO.getStorageAmount(),1, RoundingMode.HALF_UP));
}
}
storageInDO.setStorageInDetailDOList(list);
}
return storageInDO;
@ -177,7 +207,6 @@ public class StorageInServiceImpl implements StorageInService {
}
LambdaQueryWrapper<StorageInDetailDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StorageInDetailDO::getPurchaseOrderNoDetailId,purchaseOrderNoDetailDO.getId());
wrapper.eq(StorageInDetailDO::getDeleted,0);
List<StorageInDetailDO> storageInDetailDOS = storageInDetailMapper.selectList(wrapper);
BigDecimal sum=BigDecimal.ZERO;
BigDecimal StorageAmount=BigDecimal.ZERO;
@ -325,6 +354,94 @@ public class StorageInServiceImpl implements StorageInService {
storageService.updateMatLogList(out.getId(),2);
storageMapper.deleteById(storageDO);
storageMapper.deleteById(out);
List<Long> ids = purchaseOrderNoDetailDOS.stream()
.filter(Objects::nonNull) // 过滤空对象
.map(PurchaseOrderNoDetailDO::getPurchaseOrderId)
.filter(Objects::nonNull) // 过滤空ID
.collect(Collectors.toList());
LambdaQueryWrapper<PurchaseOrderNoDO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(PurchaseOrderNoDO::getId,ids);
List<PurchaseOrderNoDO> purchaseOrderNoDOS = purchaseOrderNoMapper.selectList(queryWrapper);
for (PurchaseOrderNoDO purchaseOrderNoDO : purchaseOrderNoDOS) {
LambdaQueryWrapper<PurchaseOrderNoDetailDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PurchaseOrderNoDetailDO::getPurchaseOrderId,purchaseOrderNoDO.getId());
List<PurchaseOrderNoDetailDO> lists = purchaseOrderNoDetailMapper.selectList(wrapper);
// 方法1使用 Stream API最简洁
boolean allStatus3 = lists != null &&
!lists.isEmpty() &&
lists.stream()
.allMatch(detail -> detail.getReceivingStatus()==3);
if (allStatus3){
//采购订单收货完成
List<AttentiontodoDO> attentiontodook = attentiontodoMapper.selectByIdlist(10);//查找该类型的待办和关注人
String nickname = userApi.getUser( SecurityFrameworkUtils.getLoginUser().getId()).getNickname();
List<AttentiontodoDO> attentiontodook1 = attentiontodoService.getAttentiontodolistdaiban(10);
if (attentiontodook1.size()<1){
{
AttentiontodoDO attentiontodoDO = new AttentiontodoDO();
attentiontodoDO.setEvent("《采购订单》到货时通知检验");
attentiontodoDO.setAttr5("1");
attentiontodoDO.setAttr4(nickname);
attentiontodoDO.setLevel("1");
attentiontodook.add(attentiontodoDO);
}
}
for (AttentiontodoDO attentiontodoRespVO : attentiontodook) {
{
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("采购订单"+purchaseOrderNoDO.getPurchaseNo()+"已完成收货");//事件名称
BdgzsomthingDO.setAttr2(purchaseOrderNoDO.getPurchaseNo());//跳转携带参数
BdgzsomthingDO.setAttr3(purchaseOrderNoDO.getPurchaseNo());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期
// BdgzsomthingDO.setShowname(new Date());比较创建时间,不用单独填写
if(attentiontodoRespVO.getAttr5().equals("1")){//提醒状态
BdgzsomthingDO.setDborgz("待办");
}
else if(attentiontodoRespVO.getAttr5().equals("2")){
BdgzsomthingDO.setDborgz("关注");
}
if (ObjectUtil.isEmpty(attentiontodoRespVO.getAttr4())){
AdminUserDO user = adminUserService.getUser(Long.valueOf(purchaseOrderNoDO.getCreator()));
if (ObjectUtil.isNotEmpty(user)){
BdgzsomthingDO.setClick(user.getNickname());
}
}else {
BdgzsomthingDO.setClick(attentiontodoRespVO.getAttr4());
}//提醒人
if(attentiontodoRespVO.getLevel().equals("1")){
BdgzsomthingDO.setLevel("紧急");
}
else if(attentiontodoRespVO.getLevel().equals("2")){
BdgzsomthingDO.setLevel("一般");
}
else if(attentiontodoRespVO.getLevel().equals("3")){
BdgzsomthingDO.setLevel("非紧急");
}
// BdgzsomthingDO.setClick(attentiontodoRespVO.getRemindman());//提醒人
BdgzsomthingDO.setYesorno("0");//是否点击
BdgzsomthingDO.setAttr4("0");//是否已处理
// BdgzsomthingDO.setShowname(operateReqVO.getCreateTime());//获取数据当前表的创建事件
bdgzsomthingMapper.insert(BdgzsomthingDO);
// }
}
}
}
}
return CommonResult.success(true);
}

View File

@ -59,6 +59,7 @@ import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Function;
import java.util.stream.Collectors;
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
/**
@ -115,6 +116,7 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
serialNumberDO.setSerialNumber(serialNumberDO.getSerialNumber()+1);
taskDispatch.setCode(taskDispatchTypeEnum.getCodeEnum().getCode(serialNumberDO.getSerialNumber().toString()));
taskDispatch.setDispatchStatus(TaskDispatchStatusEnum.valueOf(createReqVO.getActive()).getCode());
taskDispatch.setCreator(getLoginUser().getId().toString());
taskDispatchMapper.insert(taskDispatch);
// 回写序列记录
@ -236,12 +238,14 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
//2025-01-17 取消提交 - 如果已报工完成的工序报工状态还是已完成
if (taskDispatchDetailDO.getProcedureStatus() != 2){
taskDispatchDetailDO.setProcedureStatus(TaskDispatchProcedureStatusEnum.DEFAULT.getCode());
}
});
}
}
updateObj.setDispatchStatus(TaskDispatchStatusEnum.valueOf(updateReqVO.getActive()).getCode());
if (ObjectUtil.isEmpty(updateObj.getCreator())){
updateObj.setCreator(getLoginUser().getId().toString());
}
taskDispatchMapper.updateById(updateObj);
// 更新子表
if(operateTypeEnum != OperateTypeEnum.CANCEL_SUBMIT){

View File

@ -22,7 +22,6 @@ FROM (
a.id
FROM project_material_plan_boom a
JOIN project_material_plan b ON a.project_material_plan_id = b.id
JOIN base_material bm ON a.material_id = bm.id
WHERE CURDATE() >= DATE_SUB(a.boom_arrive_date, INTERVAL #{evday} DAY)
AND b.tenant_id = #{id}
and a.deleted=0

View File

@ -63,7 +63,6 @@ FROM (
a.id
FROM project_material_plan_boom a
JOIN project_material_plan b ON a.project_material_plan_id = b.id
JOIN base_material bm ON a.material_id = bm.id
WHERE CURDATE() >= DATE_SUB(a.boom_arrive_date, INTERVAL 10 DAY)
AND b.tenant_id = 2
and a.deleted=0

View File

@ -65,3 +65,7 @@ export const exportStorage = async (params) => {
export const procurementAndStorage = async (data) => {
return await request.post({ url: `/heli/storage/procurementAndStorage`, data })
}
// 查询入库详情
export const isPrint = async (id: number) => {
return await request.get({ url: `/heli/storage/isPrint?id=` + id })
}

View File

@ -350,6 +350,8 @@ link type="primary" size="small" :disabled="ctrView || ctrDelete"
</el-form>
<div class="hl-footer text-center">
<el-button @click="() => router.go(-1)" size="large"> </el-button>
<el-button @click="isPrint()" type="primary" size="large" >打印</el-button>
<el-button @click="submitForm" type="success" v-if="btnSave" size="large">
</el-button>
<el-button @click="handleStatus(2)" type="primary" v-if="btnSave" size="large">
@ -388,6 +390,7 @@ import materials from './materialsin.vue'
import projects from './subproject.vue'
import {Search} from "@element-plus/icons-vue";
import purchaseorderDialog from '@/views/heli/outsourcestock/purchaseorderDialog.vue'
import * as StorageinApi from "@/api/heli/storagein";
const reload: any = inject('reload')
@ -450,6 +453,10 @@ const openMatForm = () => {
// formData.value.whId
matOpenFormRef.value.open(formData.value.whId,'in')
}
const isPrint = async () => {
var newVar = await StorageApi.isPrint(query.id);
console.log(newVar)
}
const handleSelectedProjectPurchaseorder = (arr) => {
if (arr) {
formData.value.headerNo = arr.purchaseNo

View File

@ -189,8 +189,8 @@ class="!w-260px" v-model="formData.createTime" type="date" value-format="x"
<el-checkbox label="磨床" size="large" border />
<el-checkbox label="数控1" size="large" border />
<el-checkbox label="数控2" size="large" border />
<el-checkbox label="线切割" size="large" border />
<el-checkbox label="火花" size="large" border />
<el-checkbox label="线切割" size="large" border />
<el-checkbox label="刻字" size="large" border />
<el-checkbox label="网格" size="large" border />
<el-checkbox label="深孔钻" size="large" border />