diff --git a/hw-api/hw-api-system/src/main/java/com/hw/system/api/model/LoginUser.java b/hw-api/hw-api-system/src/main/java/com/hw/system/api/model/LoginUser.java index 58b4dfce..8caf1a14 100644 --- a/hw-api/hw-api-system/src/main/java/com/hw/system/api/model/LoginUser.java +++ b/hw-api/hw-api-system/src/main/java/com/hw/system/api/model/LoginUser.java @@ -68,6 +68,11 @@ public class LoginUser implements Serializable */ private Integer processFloor; + /** + * 用户昵称 + */ + private String nickname; + public String getToken() { return token; @@ -173,4 +178,12 @@ public class LoginUser implements Serializable public void setProcessFloor(Integer processFloor) { this.processFloor = processFloor; } + + public String getNickname() { + return nickname; + } + + public void setNickname(String nickname) { + this.nickname = nickname; + } } diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java index 2610be73..8ac47c6a 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/MesConstants.java @@ -310,4 +310,11 @@ public class MesConstants { */ public static final String MES_PURCHASE_APPALY_SYNC_YES="1";//已同步 public static final String MES_PURCHASE_APPALY_SYNC_NO="0";//未同步 + + /**生产告警信息类型*/ + public static final String MES_ALARM_INFO_TYPE_STOCK_NOTENOUGH = "1";//库存报警 + + /**生产告警信息处理状态*/ + public static final String MES_ALARM_INFO_HANDLE_STATUS_NO= "0";//未处理 + public static final String MES_ALARM_INFO_HANDLE_STATUS_YES= "1";//已处理 } diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/SecurityConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/SecurityConstants.java index dadfb033..feae86f6 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/SecurityConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/SecurityConstants.java @@ -57,4 +57,9 @@ public class SecurityConstants * 工位编码字段 */ public static final String DETAILS_PROCESS_FLOOR = "process_floor"; + + /** + * 用户昵称字段 + */ + public static final String DETAILS_NICKNAME = "nickname"; } diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java index 0dd1aef2..1b43d171 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/constant/WmsConstants.java @@ -21,7 +21,7 @@ public class WmsConstants { public static final String WMS_OPERATION_TYPE_MANUAL = "1";//人工 public static final String WMS_OPERATION_TYPE_FORCED = "2";//强制 public static final String MWS_OPERATION_TYPE_DISPATCHD = "3";//调度 - + public static final String MWS_OPERATION_TYPE_SPLIT = "4";//合并拆分 /*原材料入库记录入库类型*/ public static final String RAW_INSTOCK_INSTOCK_TYPE_PURCHASE = "1";//采购入库 diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/context/SecurityContextHolder.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/context/SecurityContextHolder.java index 77f48463..4c8b4d17 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/context/SecurityContextHolder.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/context/SecurityContextHolder.java @@ -117,4 +117,14 @@ public class SecurityContextHolder set(SecurityConstants.DETAILS_PROCESS_FLOOR, processFloor); } + public static String getNickName() + { + return get(SecurityConstants.DETAILS_NICKNAME); + } + + public static void setNickName(String nickname) + { + set(SecurityConstants.DETAILS_NICKNAME, nickname); + } + } diff --git a/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/JwtUtils.java b/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/JwtUtils.java index 42e32400..c40c3603 100644 --- a/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/JwtUtils.java +++ b/hw-common/hw-common-core/src/main/java/com/hw/common/core/utils/JwtUtils.java @@ -143,4 +143,17 @@ public class JwtUtils { return getValue(claims, SecurityConstants.DETAILS_PROCESS_FLOOR); } + + + /** + * 根据身份信息获取用户昵称 + * + * @param claims 身份信息 + * @return 用户名 + */ + public static String getNickName(Claims claims) + { + return getValue(claims, SecurityConstants.DETAILS_NICKNAME); + } + } diff --git a/hw-common/hw-common-security/src/main/java/com/hw/common/security/interceptor/HeaderInterceptor.java b/hw-common/hw-common-security/src/main/java/com/hw/common/security/interceptor/HeaderInterceptor.java index c280de3b..1783b73a 100644 --- a/hw-common/hw-common-security/src/main/java/com/hw/common/security/interceptor/HeaderInterceptor.java +++ b/hw-common/hw-common-security/src/main/java/com/hw/common/security/interceptor/HeaderInterceptor.java @@ -33,6 +33,7 @@ public class HeaderInterceptor implements AsyncHandlerInterceptor SecurityContextHolder.setUserKey(ServletUtils.getHeader(request, SecurityConstants.USER_KEY)); SecurityContextHolder.setProcessId(ServletUtils.getHeader(request, SecurityConstants.DETAILS_PROCESS_ID)); SecurityContextHolder.setProcessFloor(ServletUtils.getHeader(request, SecurityConstants.DETAILS_PROCESS_FLOOR)); + SecurityContextHolder.setProcessFloor(ServletUtils.getHeader(request, SecurityConstants.DETAILS_NICKNAME)); String token = SecurityUtils.getToken(); if (StringUtils.isNotEmpty(token)) diff --git a/hw-common/hw-common-security/src/main/java/com/hw/common/security/service/TokenService.java b/hw-common/hw-common-security/src/main/java/com/hw/common/security/service/TokenService.java index 2577daec..e545e282 100644 --- a/hw-common/hw-common-security/src/main/java/com/hw/common/security/service/TokenService.java +++ b/hw-common/hw-common-security/src/main/java/com/hw/common/security/service/TokenService.java @@ -50,6 +50,7 @@ public class TokenService String token = IdUtils.fastUUID(); Long userId = loginUser.getSysUser().getUserId(); String userName = loginUser.getSysUser().getUserName(); + String nickName = loginUser.getSysUser().getNickName(); loginUser.setToken(token); loginUser.setUserid(userId); loginUser.setUsername(userName); @@ -63,7 +64,7 @@ public class TokenService claimsMap.put(SecurityConstants.DETAILS_USERNAME, userName); claimsMap.put(SecurityConstants.DETAILS_PROCESS_ID, loginUser.getProcessId()); claimsMap.put(SecurityConstants.DETAILS_PROCESS_FLOOR, loginUser.getProcessFloor()); - + claimsMap.put(SecurityConstants.DETAILS_NICKNAME, nickName); // 接口返回信息 Map rspMap = new HashMap(); rspMap.put("access_token", JwtUtils.createToken(claimsMap)); diff --git a/hw-common/hw-common-security/src/main/java/com/hw/common/security/utils/SecurityUtils.java b/hw-common/hw-common-security/src/main/java/com/hw/common/security/utils/SecurityUtils.java index 3c5d5325..a37b558f 100644 --- a/hw-common/hw-common-security/src/main/java/com/hw/common/security/utils/SecurityUtils.java +++ b/hw-common/hw-common-security/src/main/java/com/hw/common/security/utils/SecurityUtils.java @@ -56,6 +56,14 @@ public class SecurityUtils return SecurityContextHolder.getProcessFloor(); } + /** + * 获取用户昵称 + */ + public static String getNickname() + { + return SecurityContextHolder.getNickName(); + } + /** * 获取登录用户信息 */ diff --git a/hw-modules/hw-dms/src/main/java/com/hw/dms/service/impl/DmsBaseDeviceLedgerServiceImpl.java b/hw-modules/hw-dms/src/main/java/com/hw/dms/service/impl/DmsBaseDeviceLedgerServiceImpl.java index 5f52ef77..da08a1a3 100644 --- a/hw-modules/hw-dms/src/main/java/com/hw/dms/service/impl/DmsBaseDeviceLedgerServiceImpl.java +++ b/hw-modules/hw-dms/src/main/java/com/hw/dms/service/impl/DmsBaseDeviceLedgerServiceImpl.java @@ -165,8 +165,8 @@ public class DmsBaseDeviceLedgerServiceImpl implements IDmsBaseDeviceLedgerServi printContentJson.put("printContent", printInfoJsonArr.toString()); try { -// String hostIp = IpUtils.getIpAddr(); - String hostIp="10.10.3.119"; + String hostIp = IpUtils.getIpAddr(); +// String hostIp="10.10.3.119"; String printKey = "print_" + hostIp; redisTemplate.opsForList().rightPush(printKey, printContentJson.toString()); redisTemplate.expire(printKey,1, TimeUnit.DAYS); diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesAlarmInfoController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesAlarmInfoController.java index 07f176fe..dd5e7360 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesAlarmInfoController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesAlarmInfoController.java @@ -3,6 +3,8 @@ package com.hw.mes.controller; import java.util.List; import java.io.IOException; import javax.servlet.http.HttpServletResponse; + +import com.hw.mes.domain.MesStockAlarmDetail; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -102,4 +104,17 @@ public class MesAlarmInfoController extends BaseController { return toAjax(mesAlarmInfoService.deleteMesAlarmInfoByAlarmInfoIds(alarmInfoIds)); } + + + /** + * 查询生产告警信息列表 + */ + @RequiresPermissions("mes:alarmInfo:list") + @GetMapping("/listStockAlarmDetail") + public TableDataInfo listStockAlarmDetail(MesStockAlarmDetail mesStockAlarmDetail) + { + startPage(); + List list = mesAlarmInfoService.selectMesStockAlarmDetailList(mesStockAlarmDetail); + return getDataTable(list); + } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java index bd9ac2a9..dcc7ae12 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesApiController.java @@ -8,10 +8,7 @@ import com.hw.common.log.annotation.Log; import com.hw.common.log.enums.BusinessType; import com.hw.common.security.annotation.RequiresPermissions; import com.hw.common.security.utils.SecurityUtils; -import com.hw.mes.api.domain.MesBaseBarcodeInfo; -import com.hw.mes.api.domain.MesBaseMaterialInfo; -import com.hw.mes.api.domain.MesBaseStationInfo; -import com.hw.mes.api.domain.MesSaleOrderRelate; +import com.hw.mes.api.domain.*; import com.hw.mes.domain.MesMaterialBom; import com.hw.mes.domain.MesProductPlan; import com.hw.mes.domain.MesProductPlanDetail; @@ -56,6 +53,9 @@ public class MesApiController extends BaseController { @Autowired private IMesSaleOrderService mesSaleOrderService; + @Autowired + private IMesPurchaseOrderService mesPurchaseOrderService; + /** * 查询当前登录工位信息 @@ -400,4 +400,17 @@ public class MesApiController extends BaseController { List list = mesSaleOrderService.selectMesSaleOrderRelateJoinProductList(mesSaleOrderRelate); return getDataTable(list); } + + + /** + * 获取销售订单绑定的采购订单信息 + * @param mesPurchaseOrder + * @return + */ + @GetMapping("/selectBindPurchaseOrders") + public TableDataInfo selectBindPurchaseOrders(MesPurchaseOrder mesPurchaseOrder) { + startPage(); + List list = mesPurchaseOrderService.selectBindPurchaseOrders(mesPurchaseOrder); + return getDataTable(list); + } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseMaterialInfoController.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseMaterialInfoController.java index 3c3d09fb..c8a5f42c 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseMaterialInfoController.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/controller/MesBaseMaterialInfoController.java @@ -173,4 +173,15 @@ public class MesBaseMaterialInfoController extends BaseController return success(list); } + + /** + * 定时计算库存预警信息 + * + * @return + */ + @PostMapping(("/stockAlarm")) + public AjaxResult stockAlarm() { + return toAjax(mesBaseMaterialInfoService.stockAlarm()); + } + } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesAlarmInfo.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesAlarmInfo.java index 4a24e71d..31907277 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesAlarmInfo.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/domain/MesAlarmInfo.java @@ -30,12 +30,12 @@ public class MesAlarmInfo extends BaseEntity private String handleStatus; /** 创建时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd") private Date createDate; /** 最后更新时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "最后更新时间", width = 30, dateFormat = "yyyy-MM-dd") private Date updateDate; diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesStockAlarmDetailMapper.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesStockAlarmDetailMapper.java new file mode 100644 index 00000000..5042e199 --- /dev/null +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/mapper/MesStockAlarmDetailMapper.java @@ -0,0 +1,61 @@ +package com.hw.mes.mapper; + +import java.util.List; +import com.hw.mes.domain.MesStockAlarmDetail; + +/** + * 库存告警信息明细Mapper接口 + * + * @author xins + * @date 2024-11-21 + */ +public interface MesStockAlarmDetailMapper +{ + /** + * 查询库存告警信息明细 + * + * @param stockAlarmDetailId 库存告警信息明细主键 + * @return 库存告警信息明细 + */ + public MesStockAlarmDetail selectMesStockAlarmDetailByStockAlarmDetailId(Long stockAlarmDetailId); + + /** + * 查询库存告警信息明细列表 + * + * @param mesStockAlarmDetail 库存告警信息明细 + * @return 库存告警信息明细集合 + */ + public List selectMesStockAlarmDetailList(MesStockAlarmDetail mesStockAlarmDetail); + + /** + * 新增库存告警信息明细 + * + * @param mesStockAlarmDetail 库存告警信息明细 + * @return 结果 + */ + public int insertMesStockAlarmDetail(MesStockAlarmDetail mesStockAlarmDetail); + + /** + * 修改库存告警信息明细 + * + * @param mesStockAlarmDetail 库存告警信息明细 + * @return 结果 + */ + public int updateMesStockAlarmDetail(MesStockAlarmDetail mesStockAlarmDetail); + + /** + * 删除库存告警信息明细 + * + * @param stockAlarmDetailId 库存告警信息明细主键 + * @return 结果 + */ + public int deleteMesStockAlarmDetailByStockAlarmDetailId(Long stockAlarmDetailId); + + /** + * 批量删除库存告警信息明细 + * + * @param stockAlarmDetailIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteMesStockAlarmDetailByStockAlarmDetailIds(Long[] stockAlarmDetailIds); +} diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesAlarmInfoService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesAlarmInfoService.java index 168b4efe..76785705 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesAlarmInfoService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesAlarmInfoService.java @@ -2,6 +2,7 @@ package com.hw.mes.service; import java.util.List; import com.hw.mes.domain.MesAlarmInfo; +import com.hw.mes.domain.MesStockAlarmDetail; /** * 生产告警信息Service接口 @@ -58,4 +59,12 @@ public interface IMesAlarmInfoService * @return 结果 */ public int deleteMesAlarmInfoByAlarmInfoId(Long alarmInfoId); + + /** + * 查询生产告警明细列表 + * + * @param mesStockAlarmDetail 生产告警信息 + * @return 生产告警信息 + */ + public List selectMesStockAlarmDetailList(MesStockAlarmDetail mesStockAlarmDetail); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseMaterialInfoService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseMaterialInfoService.java index 46f6d791..0e36af7a 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseMaterialInfoService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesBaseMaterialInfoService.java @@ -2,6 +2,7 @@ package com.hw.mes.service; import java.util.List; import com.hw.mes.api.domain.MesBaseMaterialInfo; +import org.springframework.transaction.annotation.Transactional; /** * 物料信息Service接口 @@ -87,4 +88,9 @@ public interface IMesBaseMaterialInfoService * @return 物料信息 */ public MesBaseMaterialInfo selectMesBaseMaterialInfoByErpId(Long erpId); + + /** + * 库存告警计算 + */ + public int stockAlarm(); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesPurchaseOrderService.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesPurchaseOrderService.java index 8cc6df75..125f3dc6 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesPurchaseOrderService.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/IMesPurchaseOrderService.java @@ -166,4 +166,12 @@ public interface IMesPurchaseOrderService * @return 采购订单信息 */ public MesPurchaseOrder selectMesPurchaseOrderJoinMaterialByPurchaseOrderId(Long purchaseOrderId); + + /** + * 查询绑定销售订单的采购订单信息,join material + * + * @param mesPurchaseOrder 采购订单信息 + * @return 采购订单信息 + */ + public List selectBindPurchaseOrders(MesPurchaseOrder mesPurchaseOrder); } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesAlarmInfoServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesAlarmInfoServiceImpl.java index afa1f51d..36162c52 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesAlarmInfoServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesAlarmInfoServiceImpl.java @@ -1,6 +1,8 @@ package com.hw.mes.service.impl; import java.util.List; + +import com.hw.mes.mapper.MesStockAlarmDetailMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; @@ -23,6 +25,9 @@ public class MesAlarmInfoServiceImpl implements IMesAlarmInfoService @Autowired private MesAlarmInfoMapper mesAlarmInfoMapper; + @Autowired + private MesStockAlarmDetailMapper mesStockAlarmDetailMapper; + /** * 查询生产告警信息 * @@ -128,4 +133,18 @@ public class MesAlarmInfoServiceImpl implements IMesAlarmInfoService } } } + + + + /** + * 查询生产告警明细列表 + * + * @param mesStockAlarmDetail 生产告警信息 + * @return 生产告警信息 + */ + @Override + public List selectMesStockAlarmDetailList(MesStockAlarmDetail mesStockAlarmDetail) + { + return mesStockAlarmDetailMapper.selectMesStockAlarmDetailList(mesStockAlarmDetail); + } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseMaterialInfoServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseMaterialInfoServiceImpl.java index f597d184..3acc5dee 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseMaterialInfoServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesBaseMaterialInfoServiceImpl.java @@ -1,10 +1,15 @@ package com.hw.mes.service.impl; import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; import java.util.List; +import com.alibaba.fastjson2.JSONObject; import com.github.pagehelper.PageHelper; import com.hw.common.core.constant.MesConstants; +import com.hw.common.core.constant.SecurityConstants; +import com.hw.common.core.constant.SystemConstants; import com.hw.common.core.exception.ServiceException; import com.hw.common.core.utils.DateUtils; import com.hw.common.core.utils.StringUtils; @@ -13,8 +18,14 @@ import com.hw.common.core.utils.uuid.Seq; import com.hw.common.core.web.page.PageDomain; import com.hw.common.core.web.page.TableSupport; import com.hw.common.security.utils.SecurityUtils; +import com.hw.mes.api.RemoteMesService; +import com.hw.mes.domain.MesAlarmInfo; +import com.hw.mes.domain.MesStockAlarmDetail; +import com.hw.mes.mapper.MesAlarmInfoMapper; import com.hw.mes.mapper.MesBaseBarcodeInfoMapper; import com.hw.mes.mapper.MesOrderBindMapper; +import com.hw.system.api.RemoteSysCommonService; +import com.hw.system.api.domain.common.SysPointRouter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.hw.mes.mapper.MesBaseMaterialInfoMapper; @@ -22,6 +33,8 @@ import com.hw.mes.api.domain.MesBaseMaterialInfo; import com.hw.mes.service.IMesBaseMaterialInfoService; import org.springframework.transaction.annotation.Transactional; +import javax.annotation.Resource; + /** * 物料信息Service业务层处理 * @@ -39,6 +52,12 @@ public class MesBaseMaterialInfoServiceImpl implements IMesBaseMaterialInfoServi @Autowired private MesOrderBindMapper mesOrderBindMapper; + @Autowired + private MesAlarmInfoMapper mesAlarmInfoMapper; + + @Resource + private RemoteSysCommonService remoteSysCommonService; + /** * 查询物料信息 * @@ -180,36 +199,89 @@ public class MesBaseMaterialInfoServiceImpl implements IMesBaseMaterialInfoServi } + /** + * 库存告警计算 + */ + @Override @Transactional(rollbackFor = Exception.class) - public void stockAlarm(){ + public int stockAlarm() { + String nickName = "auto"; + Date currentDate = new Date(); + MesAlarmInfo mesAlarmInfo = new MesAlarmInfo(); + mesAlarmInfo.setAlarmInfoType(MesConstants.MES_BARCODE_TYPE_RAW); + mesAlarmInfo.setHandleStatus(MesConstants.MES_ALARM_INFO_HANDLE_STATUS_NO); + mesAlarmInfo.setCreateDate(currentDate); + mesAlarmInfo.setCreateBy(nickName); + mesAlarmInfoMapper.insertMesAlarmInfo(mesAlarmInfo); - //return list - stockAlarm(1); + Long alarmInfoId = mesAlarmInfo.getAlarmInfoId(); + List allStockAlarmDetailList = new ArrayList<>(); + stockAlarm(allStockAlarmDetailList, alarmInfoId, 1, nickName, currentDate); + if (allStockAlarmDetailList.size() <= 0) { + throw new ServiceException("无报警信息"); + } else { + List sysPointRouterList = new ArrayList<>(); + SysPointRouter sysPointRouter = getSysPointRouter(alarmInfoId, nickName, currentDate); + sysPointRouterList.add(sysPointRouter); + remoteSysCommonService.insertSysPointRouterPort(sysPointRouterList, SecurityConstants.INNER); + + + } + return 1; } - public void stockAlarm(Integer startRow){ + private static SysPointRouter getSysPointRouter(Long alarmInfoId, String nickName, Date currentDate) { + SysPointRouter sysPointRouter = new SysPointRouter(); + sysPointRouter.setModuleCode("MES"); + sysPointRouter.setPointType(SystemConstants.SYS_ROUTER_POINT_TYPE_ALARM); + sysPointRouter.setRouterAddress("/mes/info/alarmInfo"); + JSONObject routerAddressDetailJson = new JSONObject(); + routerAddressDetailJson.put("alarmInfoId", alarmInfoId); + sysPointRouter.setRouterAddressDetail(routerAddressDetailJson.toString()); + sysPointRouter.setRemark("库存不足报警"); + sysPointRouter.setCreateBy(nickName); + sysPointRouter.setCreateTime(currentDate); + return sysPointRouter; + } + + public void stockAlarm(List stockAlarmDetailList, Long alarmInfoId, Integer startRow, String nickName, Date currentDate) { + List allStockAlarmDetailList = new ArrayList<>(); MesBaseMaterialInfo queryMaterialInfo = new MesBaseMaterialInfo(); Integer pageSize = 100; - Integer pageNum = startRow/pageSize+1; - PageHelper.startPage(1, 100, ""); + Integer pageNum = startRow / pageSize + 1; + PageHelper.startPage(pageNum, 100, ""); List mesBaseMaterialInfoList = mesBaseMaterialInfoMapper.selectMaterialInfoStockInfos(queryMaterialInfo); - for(MesBaseMaterialInfo mesBaseMaterialInfo:mesBaseMaterialInfoList){ + for (MesBaseMaterialInfo mesBaseMaterialInfo : mesBaseMaterialInfoList) { BigDecimal safeStockAmount = mesBaseMaterialInfo.getSafeStockAmount(); - if(safeStockAmount!=null){ - BigDecimal stockAmount = mesBaseMaterialInfo.getStockAmount()==null?BigDecimal.ZERO:mesBaseMaterialInfo.getStockAmount(); + if (safeStockAmount != null) { + BigDecimal stockAmount = mesBaseMaterialInfo.getStockAmount() == null ? BigDecimal.ZERO : mesBaseMaterialInfo.getStockAmount(); //如果库存数量小于安全库存 - if(stockAmount.compareTo(safeStockAmount)<1){ - + if (stockAmount.compareTo(safeStockAmount) < 1) { + MesStockAlarmDetail mesStockAlarmDetail = new MesStockAlarmDetail(); + mesStockAlarmDetail.setAlarmInfoId(alarmInfoId); + mesStockAlarmDetail.setMaterialId(mesBaseMaterialInfo.getMaterialId()); + mesStockAlarmDetail.setMaterialCode(mesBaseMaterialInfo.getMaterialCode()); + mesStockAlarmDetail.setMaterialName(mesBaseMaterialInfo.getMaterialName()); + mesStockAlarmDetail.setMaterialSpec(mesBaseMaterialInfo.getMaterialSpec()); + mesStockAlarmDetail.setSafeStockAmount(mesBaseMaterialInfo.getSafeStockAmount()); + mesStockAlarmDetail.setStockAmount(mesBaseMaterialInfo.getStockAmount()); + mesStockAlarmDetail.setCreateDate(currentDate); + mesStockAlarmDetail.setCreateBy(nickName); + stockAlarmDetailList.add(mesStockAlarmDetail); + allStockAlarmDetailList.add(mesStockAlarmDetail); } } } + if (stockAlarmDetailList != null && !stockAlarmDetailList.isEmpty()) { + mesAlarmInfoMapper.batchMesStockAlarmDetail(stockAlarmDetailList); + } + //如果返回的数组的数量等于分页数量,则继续获取下一页数据 if (mesBaseMaterialInfoList.size() == pageSize) { //通过递归同步所有供应商,测试先不用 - stockAlarm(startRow + mesBaseMaterialInfoList.size()); + stockAlarm(allStockAlarmDetailList, alarmInfoId, startRow + mesBaseMaterialInfoList.size(), nickName, currentDate); } - } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseOrderServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseOrderServiceImpl.java index 6366011d..d0a5861a 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseOrderServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesPurchaseOrderServiceImpl.java @@ -597,4 +597,18 @@ public class MesPurchaseOrderServiceImpl implements IMesPurchaseOrderService { public MesPurchaseOrder selectMesPurchaseOrderJoinMaterialByPurchaseOrderId(Long purchaseOrderId) { return mesPurchaseOrderMapper.selectMesPurchaseOrderJoinMaterialByPurchaseOrderId(purchaseOrderId); } + + + + /** + * 查询绑定销售订单的采购订单信息,join material + * + * @param mesPurchaseOrder 采购订单信息 + * @return 采购订单信息 + */ + @Override + public List selectBindPurchaseOrders(MesPurchaseOrder mesPurchaseOrder) { + mesPurchaseOrder.setBindFlag("1"); + return mesPurchaseOrderMapper.selectMesPurchaseOrderJoinList(mesPurchaseOrder); + } } diff --git a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java index 4242491e..0e392f15 100644 --- a/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java +++ b/hw-modules/hw-mes/src/main/java/com/hw/mes/service/impl/MesSaleOrderServiceImpl.java @@ -287,6 +287,8 @@ public class MesSaleOrderServiceImpl implements IMesSaleOrderService { public int updateMesSaleOrderMaterials(List mesSaleOrderMaterialList) { List toInsertedMesSaleOrderMaterialList = new ArrayList<>(); // List toUpdatedMesSaleOrderMateriaList = new ArrayList<>(); + Date currentDate = new Date(); + String nickName = SecurityUtils.getLoginUser().getNickname(); for (MesSaleOrderMaterial mesSaleOrderMaterial : mesSaleOrderMaterialList) { if (mesSaleOrderMaterial.getUsedAmount() != null && mesSaleOrderMaterial.getUsedAmount().compareTo(BigDecimal.ZERO) > 0) { BigDecimal realOutstockAmount = mesSaleOrderMaterial.getRealOutstockAmount(); @@ -304,10 +306,13 @@ public class MesSaleOrderServiceImpl implements IMesSaleOrderService { if (mesSaleOrderMaterial.getSaleOrderMaterialId() != null) { // toUpdatedMesSaleOrderMateriaList.add(mesSaleOrderMaterial); - + mesSaleOrderMaterial.setUpdateBy(nickName); + mesSaleOrderMaterial.setUpdateTime(currentDate); mesSaleOrderMaterialMapper.updateMesSaleOrderMaterial(mesSaleOrderMaterial); } else { + mesSaleOrderMaterial.setCreateTime(currentDate); + mesSaleOrderMaterial.setCreateBy(nickName); toInsertedMesSaleOrderMaterialList.add(mesSaleOrderMaterial); } } diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesAlarmInfoMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesAlarmInfoMapper.xml index 53b5a402..b13bb3f4 100644 --- a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesAlarmInfoMapper.xml +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesAlarmInfoMapper.xml @@ -45,6 +45,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and create_date = #{createDate} and update_date = #{updateDate} + order by alarm_info_id desc diff --git a/hw-modules/hw-mes/src/main/resources/mapper/mes/MesStockAlarmDetailMapper.xml b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesStockAlarmDetailMapper.xml new file mode 100644 index 00000000..0a01c7d2 --- /dev/null +++ b/hw-modules/hw-mes/src/main/resources/mapper/mes/MesStockAlarmDetailMapper.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + select stock_alarm_detail_id, alarm_info_id, material_id, material_code, material_name, material_spec, safe_stock_amount, stock_amount, create_by, create_date, update_by, update_date from mes_stock_alarm_detail + + + + + + + + insert into mes_stock_alarm_detail + + alarm_info_id, + material_id, + material_code, + material_name, + material_spec, + safe_stock_amount, + stock_amount, + create_by, + create_date, + update_by, + update_date, + + + #{alarmInfoId}, + #{materialId}, + #{materialCode}, + #{materialName}, + #{materialSpec}, + #{safeStockAmount}, + #{stockAmount}, + #{createBy}, + #{createDate}, + #{updateBy}, + #{updateDate}, + + + + + update mes_stock_alarm_detail + + alarm_info_id = #{alarmInfoId}, + material_id = #{materialId}, + material_code = #{materialCode}, + material_name = #{materialName}, + material_spec = #{materialSpec}, + safe_stock_amount = #{safeStockAmount}, + stock_amount = #{stockAmount}, + create_by = #{createBy}, + create_date = #{createDate}, + update_by = #{updateBy}, + update_date = #{updateDate}, + + where stock_alarm_detail_id = #{stockAlarmDetailId} + + + + delete from mes_stock_alarm_detail where stock_alarm_detail_id = #{stockAlarmDetailId} + + + + delete from mes_stock_alarm_detail where stock_alarm_detail_id in + + #{stockAlarmDetailId} + + + \ No newline at end of file diff --git a/hw-modules/hw-system/src/main/java/com/hw/system/common/controller/SysPointRouterController.java b/hw-modules/hw-system/src/main/java/com/hw/system/common/controller/SysPointRouterController.java index 13bd58a4..c491ac7b 100644 --- a/hw-modules/hw-system/src/main/java/com/hw/system/common/controller/SysPointRouterController.java +++ b/hw-modules/hw-system/src/main/java/com/hw/system/common/controller/SysPointRouterController.java @@ -3,6 +3,7 @@ package com.hw.system.common.controller; import java.util.List; import javax.servlet.http.HttpServletResponse; +import com.hw.common.security.annotation.InnerAuth; import com.hw.common.security.utils.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -104,9 +105,12 @@ public class SysPointRouterController extends BaseController { * @param sysPointRouterList * @return */ + @InnerAuth @Log(title = "提示路由信息", businessType = BusinessType.INSERT) @PostMapping("/insertPointRouterInfo") public AjaxResult insertPointRouterInfo(@RequestBody List sysPointRouterList) { return toAjax(sysPointRouterService.insertSysPointRouterList(sysPointRouterList)); } + + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java index 1b8288c1..21fc4dcd 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsApiController.java @@ -300,4 +300,14 @@ public class WmsApiController extends BaseController { return success(wmsTransferService.checkSemiOutstock(wmsTransfer)); } + + /** + * 获取申请物料信息 + */ + @GetMapping("/getRawOutstocks") + public TableDataInfo getRawOutstocks(WmsRawOutstock wmsRawOutstock) { + startPage(); + List list = wmsRawOutstockService.selectWmsRawOutstockJoinMaterialList(wmsRawOutstock); + return getDataTable(list); + } } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsMobileController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsMobileController.java index d809239b..6f134126 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsMobileController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsMobileController.java @@ -450,7 +450,7 @@ public class WmsMobileController extends BaseController { @GetMapping(value = "/getMoveList") public TableDataInfo getMoveList(WmsMove wmsMove) { startPage(); - wmsMove.setMoveWay(WmsConstants.WMS_MOVEMERGE_WAY_MANUAL); +// wmsMove.setMoveWay(WmsConstants.WMS_MOVEMERGE_WAY_MANUAL); wmsMove.setExecuteStatusStr(WmsConstants.WMS_EXECUTE_STATUS_TOEXECUTE + "," + WmsConstants.WMS_MOVE_EXECUTE_STATUS_EXECUTING + "," + WmsConstants.WMS_MOVE_EXECUTE_STATUS_OUTSTOCK_FINISH); List wmsMoves = wmsMoveService.selectWmsMoveJoinList(wmsMove); return getDataTable(wmsMoves); diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsProductOutstockController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsProductOutstockController.java index 0f0a0cd7..aa1b3b8f 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsProductOutstockController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsProductOutstockController.java @@ -4,6 +4,7 @@ import java.util.List; import java.io.IOException; import javax.servlet.http.HttpServletResponse; +import com.hw.common.core.constant.WmsConstants; import com.hw.common.security.annotation.InnerAuth; import com.hw.wms.api.domain.vo.WmsProductStockVo; import com.hw.wms.domain.vo.WmsProductOutstockAuditVo; @@ -48,6 +49,8 @@ public class WmsProductOutstockController extends BaseController public TableDataInfo list(WmsProductOutstock wmsProductOutstock) { startPage(); + wmsProductOutstock.setOperationTypeStr(WmsConstants.WMS_OPERATION_TYPE_AUTO+","+WmsConstants.WMS_OPERATION_TYPE_MANUAL+"," + +WmsConstants.WMS_OPERATION_TYPE_FORCED+","+WmsConstants.MWS_OPERATION_TYPE_DISPATCHD); List list = wmsProductOutstockService.selectWmsProductOutstockJoinList(wmsProductOutstock); return getDataTable(list); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawReturnController.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawReturnController.java index 258711da..ba91125c 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawReturnController.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/controller/WmsRawReturnController.java @@ -76,7 +76,7 @@ public class WmsRawReturnController extends BaseController @GetMapping(value = "/{rawReturnId}") public AjaxResult getInfo(@PathVariable("rawReturnId") Long rawReturnId) { - return success(wmsRawReturnService.selectWmsRawReturnByRawReturnId(rawReturnId)); + return success(wmsRawReturnService.selectWmsRawReturnJoinMaterialByRawReturnId(rawReturnId)); } @@ -101,8 +101,8 @@ public class WmsRawReturnController extends BaseController public TableDataInfo auditList(WmsRawReturn wmsRawReturn) { startPage(); -// List list = wmsRawReturnService.selectWmsRawReturnJoinList(wmsRawReturn); //旧版不group by - List list = wmsRawReturnService.selectWmsAuditList(wmsRawReturn); + List list = wmsRawReturnService.selectWmsRawReturnJoinList(wmsRawReturn); //旧版不group by +// List list = wmsRawReturnService.selectWmsAuditList(wmsRawReturn); return getDataTable(list); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductOutstock.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductOutstock.java index 00ddbe83..4744978d 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductOutstock.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsProductOutstock.java @@ -163,6 +163,9 @@ public class WmsProductOutstock extends BaseEntity { private String executeIncompleteFlag;//执行未完成标识 + private String operationTypeStr; + + private String materialClassfication; /** * 成品出库记录明细信息 @@ -489,6 +492,22 @@ public class WmsProductOutstock extends BaseEntity { this.executeIncompleteFlag = executeIncompleteFlag; } + public String getOperationTypeStr() { + return operationTypeStr; + } + + public void setOperationTypeStr(String operationTypeStr) { + this.operationTypeStr = operationTypeStr; + } + + public String getMaterialClassfication() { + return materialClassfication; + } + + public void setMaterialClassfication(String materialClassfication) { + this.materialClassfication = materialClassfication; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawOutstock.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawOutstock.java index a0767865..689d908c 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawOutstock.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawOutstock.java @@ -101,6 +101,9 @@ public class WmsRawOutstock extends BaseEntity { @Excel(name = "已出库数量") private BigDecimal realOutstockAmount; + /**已分摊使用的数量*/ + private BigDecimal usedAmount; + /** 出库目的地 */ @Excel(name = "出库目的地") private String endStationCode; @@ -205,6 +208,8 @@ public class WmsRawOutstock extends BaseEntity { private String materialName; + private String materialSpec; + private BigDecimal planAmount; /** @@ -384,6 +389,14 @@ public class WmsRawOutstock extends BaseEntity { this.realOutstockAmount = realOutstockAmount; } + public BigDecimal getUsedAmount() { + return usedAmount; + } + + public void setUsedAmount(BigDecimal usedAmount) { + this.usedAmount = usedAmount; + } + public String getEndStationCode() { return endStationCode; } @@ -552,6 +565,14 @@ public class WmsRawOutstock extends BaseEntity { this.materialName = materialName; } + public String getMaterialSpec() { + return materialSpec; + } + + public void setMaterialSpec(String materialSpec) { + this.materialSpec = materialSpec; + } + public BigDecimal getPlanAmount() { return planAmount; } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java index cae33352..61963bc4 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturn.java @@ -93,7 +93,7 @@ public class WmsRawReturn extends BaseEntity private String applyBy; /** 申请时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd") private Date applyDate; @@ -102,7 +102,7 @@ public class WmsRawReturn extends BaseEntity private String auditBy; /** 审核时间 */ - @JsonFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd") private Date auditDate; diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturnDetail.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturnDetail.java index e28a9ac7..edc6cd7c 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturnDetail.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/domain/WmsRawReturnDetail.java @@ -62,6 +62,8 @@ public class WmsRawReturnDetail extends BaseEntity @Excel(name = "同步ERP状态(0:失败,1成功)") private String erpStatus; + private BigDecimal erpAmount; + /** 退库人 */ @Excel(name = "退库人") private String returnPerson; @@ -101,6 +103,8 @@ public class WmsRawReturnDetail extends BaseEntity private String materialName; + private String materialSpec; + private String applyBy; private String taskType; @@ -198,6 +202,15 @@ public class WmsRawReturnDetail extends BaseEntity { return executeStatus; } + + public BigDecimal getErpAmount() { + return erpAmount; + } + + public void setErpAmount(BigDecimal erpAmount) { + this.erpAmount = erpAmount; + } + public void setErpStatus(String erpStatus) { this.erpStatus = erpStatus; @@ -296,6 +309,14 @@ public class WmsRawReturnDetail extends BaseEntity this.materialName = materialName; } + public String getMaterialSpec() { + return materialSpec; + } + + public void setMaterialSpec(String materialSpec) { + this.materialSpec = materialSpec; + } + public String getApplyBy() { return applyBy; } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnDetailMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnDetailMapper.java index 66a340ad..177403f0 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnDetailMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnDetailMapper.java @@ -1,6 +1,7 @@ package com.hw.wms.mapper; import java.util.List; + import com.hw.wms.domain.WmsRawReturnDetail; /** @@ -9,8 +10,7 @@ import com.hw.wms.domain.WmsRawReturnDetail; * @author xins * @date 2023-12-22 */ -public interface WmsRawReturnDetailMapper -{ +public interface WmsRawReturnDetailMapper { /** * 查询原材料退库记录明细 * @@ -60,8 +60,6 @@ public interface WmsRawReturnDetailMapper public int deleteWmsRawReturnDetailByRawReturnDetailIds(Long[] rawReturnDetailIds); - - /** * 查询原材料退库记录明细列表(供手持出库使用) * @@ -71,4 +69,11 @@ public interface WmsRawReturnDetailMapper public List selectAuditPassRawReturnDetails(WmsRawReturnDetail wmsRawReturnDetail); + /** + * 查询原材料退库记录明细列表,join material + * + * @param wmsRawReturnDetail 原材料退库记录明细 + * @return 原材料退库记录明细集合 + */ + public List selectWmsRawReturnDetailJoinMaterialList(WmsRawReturnDetail wmsRawReturnDetail); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java index 6b6cc3af..537c83bc 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/mapper/WmsRawReturnMapper.java @@ -127,4 +127,13 @@ public interface WmsRawReturnMapper * @return 原材料退库记录审核返回VO对象 */ List selectGetRawReturnByTaskCode(WmsRawReturn queryRawReturn); + + /** + * 查询原材料退库记录,在明细中join material + * + * @param rawReturnId 原材料退库记录主键 + * @return 原材料退库记录 + */ + public WmsRawReturn selectWmsRawReturnJoinMaterialByRawReturnId(Long rawReturnId); + } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java index f68fcddd..3d6e4808 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawOutstockService.java @@ -162,5 +162,12 @@ public interface IWmsRawOutstockService * @return */ public int returnOutstock(WmsReturnOutstockVo wmsReturnOutstockVo); + + /** + * 获取原材料出库信息,join material和warehouse + * @param wmsRawOutstock + * @return + */ + public List selectWmsRawOutstockJoinMaterialList(WmsRawOutstock wmsRawOutstock); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java index 60c5e362..3e5ddbe2 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/IWmsRawReturnService.java @@ -136,4 +136,12 @@ public interface IWmsRawReturnService * @return 原材料退库记录 */ List selectWmsAuditList(WmsRawReturn wmsRawReturn); + + /** + * 查询原材料退库记录,在明细中join material + * + * @param rawReturnId 原材料退库记录主键 + * @return 原材料退库记录 + */ + public WmsRawReturn selectWmsRawReturnJoinMaterialByRawReturnId(Long rawReturnId); } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveServiceImpl.java index 76ce69d2..b3f09ed1 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsMoveServiceImpl.java @@ -186,7 +186,7 @@ public class WmsMoveServiceImpl implements IWmsMoveService { selectWmsBaseWarehouseByWarehouseId(oriLocation.getWarehouseId()); String warehouseType = baseWareHouse.getWarehouseType(); Date currentDate = new Date(); - String userName = SecurityUtils.getUsername(); + String userName = SecurityUtils.getLoginUser().getNickname(); String warehouseInstockType = baseWareHouse.getWarehouseInstockType(); String moveWay = "", operationType = ""; BigDecimal planAmount = null; @@ -487,7 +487,7 @@ public class WmsMoveServiceImpl implements IWmsMoveService { R baseBarcodeInfoR = remoteMesService.getBarcode(materialBarcode, SecurityConstants.INNER); MesBaseBarcodeInfo baseBarcodeInfo = baseBarcodeInfoR.getData(); if (baseBarcodeInfo == null) { - throw new ServiceException("物料编码有误"); + throw new ServiceException("物料条码有误"); } String batchFlag = baseBarcodeInfo.getBatchFlag(); @@ -502,7 +502,7 @@ public class WmsMoveServiceImpl implements IWmsMoveService { throw new ServiceException("库位编码有误"); } - String userName = SecurityUtils.getUsername(); + String userName = SecurityUtils.getLoginUser().getNickname(); Date currentDate = new Date(); @@ -515,6 +515,10 @@ public class WmsMoveServiceImpl implements IWmsMoveService { throw new ServiceException("没有此移库信息"); } + if(!wmsMove.getOperationType().equals(WmsConstants.WMS_OPERATION_TYPE_MANUAL)){ + throw new ServiceException("只能针对仓库类型为普通仓库的进行移库"); + } + String executeStatus = wmsMove.getExecuteStatus(); if (executeStatus.equals(WmsConstants.WMS_MOVE_EXECUTE_STATUS_OUTSTOCK_FINISH)) { @@ -777,10 +781,9 @@ public class WmsMoveServiceImpl implements IWmsMoveService { throw new ServiceException("库位编码有误"); } - String userName = SecurityUtils.getUsername(); + String userName = SecurityUtils.getLoginUser().getNickname(); Date currentDate = new Date(); - WmsMove wmsMove = wmsMoveMapper.selectWmsMoveByTaskCode(taskCode); if (wmsMove == null) { throw new ServiceException("没有此移库信息"); @@ -790,6 +793,10 @@ public class WmsMoveServiceImpl implements IWmsMoveService { throw new ServiceException("没有此移库信息"); } + if(!wmsMove.getOperationType().equals(WmsConstants.WMS_OPERATION_TYPE_MANUAL)){ + throw new ServiceException("只能针对仓库类型为普通仓库的进行移库"); + } + String executeStatus = wmsMove.getExecuteStatus(); if (executeStatus.equals(WmsConstants.WMS_MOVE_EXECUTE_STATUS_INSTOCK_FINISH)) { throw new ServiceException("此条码已移库入库完成,不能再入库"); diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java index e9f6a3bc..792b505d 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawOutstockServiceImpl.java @@ -1435,4 +1435,15 @@ public class WmsRawOutstockServiceImpl implements IWmsRawOutstockService { return wmsRawOutstockMapper.insertWmsRawOutstock(wmsRawOutstock); } + + + /** + * 获取原材料出库信息,join material和warehouse + * @param wmsRawOutstock + * @return + */ + @Override + public List selectWmsRawOutstockJoinMaterialList(WmsRawOutstock wmsRawOutstock){ + return wmsRawOutstockMapper.selectWmsRawOutstockJoinMaterialList(wmsRawOutstock); + } } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java index e2714f59..115a0db7 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsRawReturnServiceImpl.java @@ -254,10 +254,11 @@ public class WmsRawReturnServiceImpl implements IWmsRawReturnService { throw new ServiceException("请输入审核意见"); } - WmsRawReturn wmsRawReturn = wmsRawReturnMapper.selectOnlyWmsRawReturnByRawReturnId(wmsRawReturnAuditVo.getRawReturnId()); + WmsRawReturn wmsRawReturn = new WmsRawReturn(); + wmsRawReturn.setRawReturnId(wmsRawReturnAuditVo.getRawReturnId()); wmsRawReturn.setAuditStatus(auditStatus); wmsRawReturn.setAuditReason(auditReason); - wmsRawReturn.setAuditBy(SecurityUtils.getUsername()); + wmsRawReturn.setAuditBy(SecurityUtils.getLoginUser().getNickname()); wmsRawReturn.setAuditDate(new Date()); return wmsRawReturnMapper.updateWmsRawReturn(wmsRawReturn); } @@ -683,4 +684,20 @@ public class WmsRawReturnServiceImpl implements IWmsRawReturnService { return wmsRawReturnAuditReturnVo; } + + /** + * 查询原材料退库记录,在明细中join material + * + * @param rawReturnId 原材料退库记录主键 + * @return 原材料退库记录 + */ + @Override + public WmsRawReturn selectWmsRawReturnJoinMaterialByRawReturnId(Long rawReturnId) { + WmsRawReturn wmsRawReturn = wmsRawReturnMapper.selectOnlyWmsRawReturnByRawReturnId(rawReturnId); + WmsRawReturnDetail queryRawReturnDetail = new WmsRawReturnDetail(); + queryRawReturnDetail.setRawReturnId(rawReturnId); + List wmsRawReturnDetailList = wmsRawReturnDetailMapper.selectWmsRawReturnDetailJoinMaterialList(queryRawReturnDetail); + wmsRawReturn.setWmsRawReturnDetailList(wmsRawReturnDetailList); + return wmsRawReturn; + } } diff --git a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsTransferServiceImpl.java b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsTransferServiceImpl.java index a1df3801..f36927c5 100644 --- a/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsTransferServiceImpl.java +++ b/hw-modules/hw-wms/src/main/java/com/hw/wms/service/impl/WmsTransferServiceImpl.java @@ -226,6 +226,10 @@ public class WmsTransferServiceImpl implements IWmsTransferService { throw new ServiceException("库位不存在"); } + if(!oriLocation.getLocationStatus().equals(WmsConstants.WMS_BASE_LOCATION_STATUS_NORMAL)){ + throw new ServiceException("库位状态为" + WmsConstants.LOCATION_STATUS_PROMPT_MAP.get(oriLocation.getLocationStatus())+",不能出库"); + } + WmsBaseWarehouse baseWarehouse = wmsBaseWarehouseMapper.selectWmsBaseWarehouseByWarehouseId(oriLocation.getWarehouseId()); if(!baseWarehouse.getWarehouseInstockType().equals(WmsConstants.WMS_WAREHOUSE_INSTOCK_TYPE_SEMI)){ throw new ServiceException("请从半成品库出库"); @@ -313,6 +317,10 @@ public class WmsTransferServiceImpl implements IWmsTransferService { throw new ServiceException("库位不存在"); } + if(!targetLocation.getLocationStatus().equals(WmsConstants.WMS_BASE_LOCATION_STATUS_NORMAL)){ + throw new ServiceException("库位状态为" + WmsConstants.LOCATION_STATUS_PROMPT_MAP.get(targetLocation.getLocationStatus())+",不能入库"); + } + WmsBaseWarehouse baseWarehouse = wmsBaseWarehouseMapper.selectWmsBaseWarehouseByWarehouseId(targetLocation.getWarehouseId()); if(!baseWarehouse.getWarehouseInstockType().equals(WmsConstants.WMS_WAREHOUSE_INSTOCK_TYPE_PRODUCT)){ throw new ServiceException("请入成品库"); diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml index 42e29d5e..9d6b89fd 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsProductOutstockMapper.xml @@ -45,6 +45,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -254,7 +256,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml index f13d01e5..89ddbb88 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawOutstockMapper.xml @@ -42,6 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -300,7 +301,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select wro.raw_outstock_id as raw_outstock_detail_id, wro.task_code,wro.location_code,wro.material_batch as instock_batch,wro.outstock_amount as plan_amount,wro.real_outstock_amount as outstock_amount, wro.apply_by,wro.apply_date,wro.apply_reason,wro.audit_by,wro.audit_date,wro.audit_reason,wro.plan_code,wro.plan_detail_code,wro.audit_status,wro.task_type, wro.execute_status,wro.erp_status,wro.erp_amount, - mbmi.material_code,mbmi.material_name, + mbmi.material_code,mbmi.material_name,mbmi.material_spec, mbr.warehouse_name from wms_raw_outstock wro left join mes_base_material_info mbmi on wro.material_id = mbmi.material_id left join wms_base_warehouse mbr on wro.warehouse_id = mbr.warehouse_id @@ -310,6 +311,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and wro.apply_by like concat('%', #{applyBy}, '%') and execute_status in (${executeStatusStr}) and operation_type = #{operationType} + and plan_detail_code = #{planDetailCode} order by wro.raw_outstock_id desc diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnDetailMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnDetailMapper.xml index 8a4002d5..5ef8e559 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnDetailMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnDetailMapper.xml @@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -26,6 +27,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -165,4 +169,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + + select wrrd.raw_return_detail_id, wrrd.raw_return_id, wrrd.location_code, + wrrd.material_barcode, wrrd.material_id, wrrd.instock_batch, + wrrd.plan_amount, wrrd.return_amount, + wrrd.execute_status, wrrd.erp_status,wrrd.erp_amount, wrrd.return_person, wrrd.return_time, + wrrd.return_way, wrrd.machine_name, wrrd.quality_status, + wrrd.create_by, wrrd.create_date,mbmi.material_code,mbmi.material_name,mbmi.material_spec from wms_raw_return_detail wrrd + left join mes_base_material_info mbmi on wrrd.material_id= mbmi.material_id + + + diff --git a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml index 0ba066ce..0b2d542d 100644 --- a/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml +++ b/hw-modules/hw-wms/src/main/resources/mapper/wms/WmsRawReturnMapper.xml @@ -67,6 +67,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -246,8 +249,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" wrr.material_id,wrr.plan_amount,wrr.return_amount,wrr.product_id,wrr.material_barcode, wrr.operation_type, wrr.task_type, wrr.apply_reason, wrr.audit_reason, wrr.audit_status, wrr.execute_status, wrr.apply_by, wrr.apply_date, wrr.audit_by, wrr.audit_date,wrr.begin_time, wrr.end_time, - wbw.warehouse_name + wbw.warehouse_name,mbmi.material_code,mbmi.material_name,mbmi.material_spec from wms_raw_return wrr left join wms_base_warehouse wbw on wrr.warehouse_id = wbw.warehouse_id + left join mes_base_material_info mbmi on wrr.material_id=mbmi.material_id and wrr.task_code like concat('%', #{taskCode}, '%') @@ -265,6 +269,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and wrr.apply_by like concat('%', #{applyBy}, '%') and wrr.audit_status = #{auditStatus} + order by wrr.apply_date desc @@ -273,8 +278,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" wrr.material_id,wrr.plan_amount,wrr.return_amount,wrr.product_id,wrr.material_barcode,wrr.batch_code, wrr.operation_type, wrr.task_type, wrr.apply_reason, wrr.audit_reason, wrr.audit_status, wrr.execute_status, wrr.apply_by, wrr.apply_date, wrr.audit_by, wrr.audit_date,wrr.begin_time, wrr.end_time, - wbw.warehouse_name + wbw.warehouse_name,mbmi.material_code,mbmi.material_name,mbmi.material_spec from wms_raw_return wrr left join wms_base_warehouse wbw on wrr.warehouse_id = wbw.warehouse_id + left join mes_base_material_info mbmi on wrr.material_id=mbmi.material_id where wrr.raw_return_id = #{rawReturnId} diff --git a/hw-ui/src/api/board/index.js b/hw-ui/src/api/board/index.js index 7074bdc9..db0ce08b 100644 --- a/hw-ui/src/api/board/index.js +++ b/hw-ui/src/api/board/index.js @@ -394,3 +394,23 @@ export function productPlanDetailContinue(data) { data: data }) } + + + +// 获取绑定销售订单的采购订单信息 +export function selectBindPurchaseOrders(query) { + return request({ + url: '/mes/api/selectBindPurchaseOrders', + method: 'get', + params: query + }) +} + +// 获取申请的物料信息 +export function getRawOutstocks(query) { + return request({ + url: '/wms/api/getRawOutstocks', + method: 'get', + params: query + }) +} diff --git a/hw-ui/src/api/mes/alarmInfo.js b/hw-ui/src/api/mes/alarmInfo.js new file mode 100644 index 00000000..ebee501e --- /dev/null +++ b/hw-ui/src/api/mes/alarmInfo.js @@ -0,0 +1,54 @@ +import request from '@/utils/request' + +// 查询生产告警信息列表 +export function listAlarmInfo(query) { + return request({ + url: '/mes/alarmInfo/list', + method: 'get', + params: query + }) +} + +// 查询生产告警信息详细 +export function getAlarmInfo(alarmInfoId) { + return request({ + url: '/mes/alarmInfo/' + alarmInfoId, + method: 'get' + }) +} + +// 新增生产告警信息 +export function addAlarmInfo(data) { + return request({ + url: '/mes/alarmInfo', + method: 'post', + data: data + }) +} + +// 修改生产告警信息 +export function updateAlarmInfo(data) { + return request({ + url: '/mes/alarmInfo', + method: 'put', + data: data + }) +} + +// 删除生产告警信息 +export function delAlarmInfo(alarmInfoId) { + return request({ + url: '/mes/alarmInfo/' + alarmInfoId, + method: 'delete' + }) +} + + +// 查询生产告警信息列表 +export function listStockAlarmDetail(query) { + return request({ + url: '/mes/alarmInfo/listStockAlarmDetail', + method: 'get', + params: query + }) +} diff --git a/hw-ui/src/views/board/common/applyRawReturn.vue b/hw-ui/src/views/board/common/applyRawReturn.vue index ba7fd3a3..519994ba 100644 --- a/hw-ui/src/views/board/common/applyRawReturn.vue +++ b/hw-ui/src/views/board/common/applyRawReturn.vue @@ -226,6 +226,8 @@ export default { if (this.form.warehouseFloor === 5) { this.materialVisible = false; + }else{ + this.materialVisible = true; } } if (this.defineData.maxPlanAmount) { @@ -285,7 +287,8 @@ export default { }, handleDeleteMaterial(row) { - + let index = this.wmsRawReturnList.indexOf(row); + this.wmsRawReturnList.splice(index,1); }, diff --git a/hw-ui/src/views/board/fifthFloor/index.vue b/hw-ui/src/views/board/fifthFloor/index.vue index e2960f34..6c9a38aa 100644 --- a/hw-ui/src/views/board/fifthFloor/index.vue +++ b/hw-ui/src/views/board/fifthFloor/index.vue @@ -141,9 +141,51 @@
-
库存统计
+
物料到货信息
- +
+ + + + + + + + + + + + + + +
@@ -300,9 +342,60 @@
-
每周产量
+
申请物料信息
- +
+ + + + + + + + + + + + + + + + + +
@@ -532,8 +625,8 @@ import { applyRawBack, assignTask, scanMaterial2Confirm, getNewestOutstockCabinet, updateBarcodePlan, completeCollectMaterials, completeReturnMaterials, continueRawInstock, - productPlanDetailPause,productPlanDetailContinue - + productPlanDetailPause,productPlanDetailContinue, + selectBindPurchaseOrders,getRawOutstocks } from "@/api/board"; import applyRawOutstock from '@//views/board/common/applyRawOutstock.vue'; import applyRawReturn from '@//views/board/common/applyRawReturn.vue'; @@ -571,7 +664,7 @@ export default { WorkshopNotice, ViewFile }, - dicts: ['wms_raw_return_task_type', 'mes_safe_flag'], + dicts: ['wms_raw_return_task_type', 'mes_safe_flag','wms_audit_status'], provide() { return { closeDialog: this.closeDialog, @@ -757,6 +850,9 @@ export default { INTERNAL: "2",//对内生产 }, + rawOutstockData:[], + purchaseOrderData:[] + } }, async mounted() { @@ -1013,6 +1109,9 @@ export default { this.form.cabinetChannel = val.cabinetChannel; this.form.planDetailStatus = setState(data.data.planDetailStatus) this.getInfo(val) + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); + }, closePopover() { document.body.click() @@ -1057,7 +1156,9 @@ export default { this.form.planDetailStatus = setState(data.planDetailStatus) } - this.getInfo(val) + this.getInfo(val); + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); }, stationChange(val) { this.nowStation = val @@ -1879,6 +1980,30 @@ export default { }, + selectBindPurchaseOrders(){ + this.purchaseOrderData = []; + if(this.form.saleOrderId && this.form.saleOrderId!=''){ + selectBindPurchaseOrders({saleOrderId:this.form.saleOrderId}).then(response => { + this.purchaseOrderData = response.rows; + // this.detailTotal = response.total; + // this.loading = false; + }); + } + + }, + + + selectRawOutstocks(){ + this.rawOutstockData = []; + if(this.form.planDetailCode && this.form.planDetailCode!=''){ + getRawOutstocks({planDetailCode:this.form.planDetailCode}).then(response => { + this.rawOutstockData = response.rows; + // this.detailTotal = response.total; + // this.loading = false; + }); + } + + } } } diff --git a/hw-ui/src/views/board/firstFloor/index.vue b/hw-ui/src/views/board/firstFloor/index.vue index 76fe9427..9e3f8dd2 100644 --- a/hw-ui/src/views/board/firstFloor/index.vue +++ b/hw-ui/src/views/board/firstFloor/index.vue @@ -107,12 +107,12 @@
-
物料安装情况(已完成)
+
物料到货信息
+ + + + @@ -281,12 +292,12 @@
-
物料安装情况(未完成)
+
申请物料信息
+ + + + + + +
@@ -470,7 +501,7 @@ import { firstFloorProduceOutstock, scanMaterial2Confirm, selectMaterialInstallationCircumstance, - productPlanDetailPause,productPlanDetailContinue + productPlanDetailPause, productPlanDetailContinue, selectBindPurchaseOrders, getRawOutstocks } from '@/api/board' import {getToken} from "@/utils/auth"; import applyRawOutstock from "@/views/board/common/applyRawOutstock.vue"; @@ -482,7 +513,7 @@ import {getDispatchSOPAttachList} from "@/api/mes/productplan"; const vw = (document.documentElement.clientWidth || document.body.clientWidth) / 100 export default { name: 'Board1', - dicts: ['mes_plan_detail_status', 'wms_raw_return_task_type', "mes_safe_flag"], + dicts: ['mes_plan_detail_status', 'wms_raw_return_task_type', "mes_safe_flag",'wms_audit_status'], provide(){ return{ closeDialog : this.closeDialog, @@ -597,6 +628,8 @@ export default { thisTitle: "查看SOP附件", //预览文件数据列表 fileListData: [], + rawOutstockData:[], + purchaseOrderData:[] } }, mounted() { @@ -741,6 +774,9 @@ export default { this.$modal.msgSuccess("开始成功"); e.realBeginTime = getNowDateTime(); e.planDetailStatus = this.PLAN_DETAIL_STATUS.STARTED; + this.planDetailCode = e.planDetailCode; + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); }) }) .catch(() => { @@ -803,6 +839,8 @@ export default { this.tableData1 = res.rows this.totalNum3 = Math.ceil(res.total / 5) this.$refs.table.setCurrentRow(res.rows[0]); + this.planDetailCode = res.rows[0].planDetailCode + }) }) @@ -810,9 +848,13 @@ export default { this.tableData1 = res.rows this.$refs.table.setCurrentRow(res.rows[0]); this.totalNum3 = Math.ceil(res.total / 5) + this.planDetailCode = res.rows[0].planDetailCode } - }) + }); + + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); }, @@ -1164,6 +1206,30 @@ export default { }); }, + selectBindPurchaseOrders(){ + this.purchaseOrderData = []; + if(this.saleOrderId && this.saleOrderId!=''){ + selectBindPurchaseOrders({saleOrderId:this.saleOrderId}).then(response => { + this.purchaseOrderData = response.rows; + // this.detailTotal = response.total; + // this.loading = false; + }); + } + + }, + + + selectRawOutstocks() { + this.rawOutstockData = []; + if (this.planDetailCode && this.planDetailCode!=''){ + getRawOutstocks({planDetailCode: this.planDetailCode}).then(response => { + this.rawOutstockData = response.rows; + // this.detailTotal = response.total; + // this.loading = false; + }); + } + } + } } diff --git a/hw-ui/src/views/board/fourthFloor/assemble.vue b/hw-ui/src/views/board/fourthFloor/assemble.vue index 5ee53d9d..2e01dd12 100644 --- a/hw-ui/src/views/board/fourthFloor/assemble.vue +++ b/hw-ui/src/views/board/fourthFloor/assemble.vue @@ -96,9 +96,51 @@
-
库存统计
+
物料到货信息
- +
+ + + + + + + + + + + + + + +
@@ -238,9 +280,60 @@
-
每周产量
+
申请物料信息
- +
+ + + + + + + + + + + + + + + + + +
@@ -386,7 +479,7 @@ import { check4thFloorProduceOutstock, fourthFloorProduceOutstock, scanMaterial2Confirm, - productPlanDetailPause,productPlanDetailContinue + productPlanDetailPause, productPlanDetailContinue, selectBindPurchaseOrders, getRawOutstocks } from "@/api/board"; import {monitorSerialData} from "@/utils/serial"; import applyRawOutstock from '@//views/board/common/applyRawOutstock.vue'; @@ -400,7 +493,7 @@ import {getDispatchSOPAttachList} from "@/api/mes/productplan"; const vw = (document.documentElement.clientWidth || document.body.clientWidth) / 100 export default { name: 'Board1', - dicts: ['mes_plan_detail_status', 'wms_raw_return_task_type', 'mes_safe_flag'], + dicts: ['mes_plan_detail_status', 'wms_raw_return_task_type', 'mes_safe_flag','wms_audit_status'], provide(){ return{ closeDialog : this.closeDialog, @@ -512,6 +605,8 @@ export default { thisTitle: "查看SOP附件", //预览文件数据列表 fileListData: [], + rawOutstockData:[], + purchaseOrderData:[] } }, created() { @@ -838,6 +933,9 @@ export default { e.realBeginTime = getNowDateTime(); e.planDetailStatus = this.PLAN_DETAIL_STATUS.STARTED; + this.planDetailCode = e.planDetailCode; + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); // this.getDetail(queryRow); // getProductPlans({pageNum: this.nowNum1, pageSize: 5}).then(e => { // this.tableData = e.rows @@ -905,6 +1003,7 @@ export default { this.tableData1 = res.rows this.totalNum3 = Math.ceil(res.total / 5) this.$refs.table.setCurrentRow(res.rows[0]); + this.planDetailCode = res.rows[0].planDetailCode }) }) @@ -912,9 +1011,13 @@ export default { this.tableData1 = res.rows this.$refs.table.setCurrentRow(res.rows[0]); this.totalNum3 = Math.ceil(res.total / 5) + this.planDetailCode = res.rows[0].planDetailCode } - }) + }); + + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); }, // 领料页面 getMaterials(val) { @@ -1256,6 +1359,30 @@ export default { }); }, + + selectBindPurchaseOrders(){ + this.purchaseOrderData = []; + if(this.saleOrderId && this.saleOrderId!=''){ + selectBindPurchaseOrders({saleOrderId:this.saleOrderId}).then(response => { + this.purchaseOrderData = response.rows; + // this.detailTotal = response.total; + // this.loading = false; + }); + } + + }, + + + selectRawOutstocks(){ + this.rawOutstockData = []; + if (this.planDetailCode && this.planDetailCode!='') { + getRawOutstocks({planDetailCode: this.planDetailCode}).then(response => { + this.rawOutstockData = response.rows; + // this.detailTotal = response.total; + // this.loading = false; + }); + } + } } } diff --git a/hw-ui/src/views/board/fourthFloor/laserLight.vue b/hw-ui/src/views/board/fourthFloor/laserLight.vue index ef3fd56a..d38b5f74 100644 --- a/hw-ui/src/views/board/fourthFloor/laserLight.vue +++ b/hw-ui/src/views/board/fourthFloor/laserLight.vue @@ -70,9 +70,51 @@
-
库存统计
+
物料到货信息
- +
+ + + + + + + + + + + + + + +
@@ -196,9 +238,60 @@
-
每周产量
+
申请物料信息
- +
+ + + + + + + + + + + + + + + + + +
@@ -267,7 +360,7 @@ import { directRawOutstock, directRawReturn, get4thFloorRegularBarcode, - productPlanDetailPause,productPlanDetailContinue + productPlanDetailPause, productPlanDetailContinue, selectBindPurchaseOrders, getRawOutstocks } from "@/api/board"; import {monitorSerialData} from "@/utils/serial" @@ -294,6 +387,7 @@ const setState = (e) => { const vw = (document.documentElement.clientWidth || document.body.clientWidth) / 100 export default { name: 'Board1', + dicts: ['wms_audit_status'], mixins: [monitorSerialData, noticeData], components: { Chart, @@ -371,6 +465,8 @@ export default { thisTitle: "查看SOP附件", //预览文件数据列表 fileListData: [], + rawOutstockData:[], + purchaseOrderData:[] } }, async mounted() { @@ -398,7 +494,8 @@ export default { if (val.data) { this.form.planDetailStatus = setState(val.data.planDetailStatus) } - + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); }) }) this.$refs.chart2.setData({ @@ -604,6 +701,9 @@ export default { this.form.materialName = e.materialName this.form.saleOrderId = e.saleOrderId this.form.planDetailStatus = setState(val.data.planDetailStatus) + + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); } }) @@ -965,7 +1065,9 @@ export default { planId: val.planId + '-' + i } }) || [] - }) + }); + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); }, // 完成 accomplishPlan() { @@ -1158,7 +1260,7 @@ export default { } }); - + }, directRawOutstock() { @@ -1279,6 +1381,32 @@ export default { }); }, + + selectBindPurchaseOrders(){ + this.purchaseOrderData = []; + if(this.form.saleOrderId && this.form.saleOrderId!=''){ + selectBindPurchaseOrders({saleOrderId:this.form.saleOrderId}).then(response => { + this.purchaseOrderData = response.rows; + // this.detailTotal = response.total; + // this.loading = false; + }); + } + + }, + + + selectRawOutstocks(){ + this.rawOutstockData = []; + if(this.form.planDetailCode && this.form.planDetailCode!='') { + getRawOutstocks({planDetailCode: this.form.planDetailCode}).then(response => { + this.rawOutstockData = response.rows; + // this.detailTotal = response.total; + // this.loading = false; + }); + } + } + + }, } diff --git a/hw-ui/src/views/board/fourthFloor/weld.vue b/hw-ui/src/views/board/fourthFloor/weld.vue index feb5de10..ba795222 100644 --- a/hw-ui/src/views/board/fourthFloor/weld.vue +++ b/hw-ui/src/views/board/fourthFloor/weld.vue @@ -24,13 +24,17 @@
- 完成 - - 暂停 + 完成 - 暂停 + + + 继续 @@ -53,9 +57,51 @@
-
库存统计
+
物料到货信息
- +
+ + + + + + + + + + + + + + +
@@ -159,9 +205,60 @@
-
每周产量
+
申请物料信息
- +
+ + + + + + + + + + + + + + + + + +
@@ -249,7 +346,7 @@ import { getNewestProductPlanDetail, getProductPlans, startNextProductPlanDetail, - productPlanDetailPause,productPlanDetailContinue + productPlanDetailPause, productPlanDetailContinue, selectBindPurchaseOrders, getRawOutstocks } from '@/api/board' import WorkshopNotice from "@/components/workshopNotice/index.vue"; import {noticeData} from "@/utils/notice" @@ -273,6 +370,7 @@ const setState = (e) => { const vw = (document.documentElement.clientWidth || document.body.clientWidth) / 100 export default { name: 'Board1', + dicts: ['wms_audit_status'], components: { Chart, WorkshopNotice, @@ -288,7 +386,7 @@ export default { nowNum1: 1, totalNum1: 0, form: {}, - submitLoading:false, + submitLoading: false, tableData: [], vw: (document.documentElement.clientWidth || document.body.clientWidth) / 100, //显示预览文件 @@ -297,6 +395,8 @@ export default { thisTitle: "查看SOP附件", //预览文件数据列表 fileListData: [], + rawOutstockData: [], + purchaseOrderData: [] } }, mounted() { @@ -308,168 +408,168 @@ export default { // duration: 0 // }); // }, 60 * 1000) - this.$refs.chart2.setData({ - tooltip: { - trigger: 'axis', - axisPointer: { - // 坐标轴指示器,坐标轴触发有效 - type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' - } - }, - grid: { - left: '0', - right: '4%', - bottom: '0', - top: 20, - containLabel: true - }, - xAxis: { - type: 'category', - data: [1, 2, 3, 4, 5, 6], - axisLine: { - lineStyle: { - color: 'white' - } - }, - axisLabel: { - // interval: 0, - // rotate: 40, - textStyle: { - fontFamily: 'Microsoft YaHei' - } - } - }, - - yAxis: { - type: 'value', - axisLine: { - show: false, - lineStyle: { - color: 'white' - } - }, - splitLine: { - show: false - }, - axisLabel: {} - }, - series: [ - { - name: '数量', - label: { - normal: { - show: true, - position: 'top', - textStyle: { - color: '#a8aab0', - fontStyle: 'normal', - fontFamily: '微软雅黑', - fontSize: 0.75 * vw - } - } - }, - type: 'bar', - barWidth: '30%', - barMaxWidth: 50, - itemStyle: { - normal: { - color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ - { - offset: 0, - color: '#39ffff' - }, - { - offset: 1, - color: '#5affa6' - } - ]) - } - }, - data: [1, 2, 3, 4, 5, 6] - } - ] - }) - this.$refs.chart4.setData({ - tooltip: { - trigger: 'axis', - axisPointer: { - // 坐标轴指示器,坐标轴触发有效 - type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' - } - }, - grid: { - left: '0', - right: '4%', - bottom: '0', - top: 20, - containLabel: true - }, - xAxis: { - type: 'category', - data: [1, 2, 3, 4, 5, 6], - axisLine: { - lineStyle: { - color: 'white' - } - }, - axisLabel: { - // interval: 0, - // rotate: 40, - textStyle: { - fontFamily: 'Microsoft YaHei' - } - } - }, - - yAxis: { - type: 'value', - axisLine: { - show: false, - lineStyle: { - color: 'white' - } - }, - splitLine: { - show: false - }, - axisLabel: {} - }, - series: [ - { - name: '数量', - label: { - normal: { - show: true, - position: 'top', - textStyle: { - color: '#a8aab0', - fontStyle: 'normal', - fontFamily: '微软雅黑', - fontSize: 0.75 * vw - } - } - }, - type: 'bar', - barWidth: '30%', - barMaxWidth: 50, - itemStyle: { - normal: { - color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ - { - offset: 0, - color: '#39ffff' - }, - { - offset: 1, - color: '#5affa6' - } - ]) - } - }, - data: [1, 2, 3, 4, 5, 6] - } - ] - }) + // this.$refs.chart2.setData({ + // tooltip: { + // trigger: 'axis', + // axisPointer: { + // // 坐标轴指示器,坐标轴触发有效 + // type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' + // } + // }, + // grid: { + // left: '0', + // right: '4%', + // bottom: '0', + // top: 20, + // containLabel: true + // }, + // xAxis: { + // type: 'category', + // data: [1, 2, 3, 4, 5, 6], + // axisLine: { + // lineStyle: { + // color: 'white' + // } + // }, + // axisLabel: { + // // interval: 0, + // // rotate: 40, + // textStyle: { + // fontFamily: 'Microsoft YaHei' + // } + // } + // }, + // + // yAxis: { + // type: 'value', + // axisLine: { + // show: false, + // lineStyle: { + // color: 'white' + // } + // }, + // splitLine: { + // show: false + // }, + // axisLabel: {} + // }, + // series: [ + // { + // name: '数量', + // label: { + // normal: { + // show: true, + // position: 'top', + // textStyle: { + // color: '#a8aab0', + // fontStyle: 'normal', + // fontFamily: '微软雅黑', + // fontSize: 0.75 * vw + // } + // } + // }, + // type: 'bar', + // barWidth: '30%', + // barMaxWidth: 50, + // itemStyle: { + // normal: { + // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + // { + // offset: 0, + // color: '#39ffff' + // }, + // { + // offset: 1, + // color: '#5affa6' + // } + // ]) + // } + // }, + // data: [1, 2, 3, 4, 5, 6] + // } + // ] + // }) + // this.$refs.chart4.setData({ + // tooltip: { + // trigger: 'axis', + // axisPointer: { + // // 坐标轴指示器,坐标轴触发有效 + // type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' + // } + // }, + // grid: { + // left: '0', + // right: '4%', + // bottom: '0', + // top: 20, + // containLabel: true + // }, + // xAxis: { + // type: 'category', + // data: [1, 2, 3, 4, 5, 6], + // axisLine: { + // lineStyle: { + // color: 'white' + // } + // }, + // axisLabel: { + // // interval: 0, + // // rotate: 40, + // textStyle: { + // fontFamily: 'Microsoft YaHei' + // } + // } + // }, + // + // yAxis: { + // type: 'value', + // axisLine: { + // show: false, + // lineStyle: { + // color: 'white' + // } + // }, + // splitLine: { + // show: false + // }, + // axisLabel: {} + // }, + // series: [ + // { + // name: '数量', + // label: { + // normal: { + // show: true, + // position: 'top', + // textStyle: { + // color: '#a8aab0', + // fontStyle: 'normal', + // fontFamily: '微软雅黑', + // fontSize: 0.75 * vw + // } + // } + // }, + // type: 'bar', + // barWidth: '30%', + // barMaxWidth: 50, + // itemStyle: { + // normal: { + // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ + // { + // offset: 0, + // color: '#39ffff' + // }, + // { + // offset: 1, + // color: '#5affa6' + // } + // ]) + // } + // }, + // data: [1, 2, 3, 4, 5, 6] + // } + // ] + // }) getProductPlans({pageNum: this.nowNum1, pageSize: 5}).then(e => { this.tableData = e.rows this.totalNum1 = Math.ceil(e.total / 5) @@ -518,6 +618,8 @@ export default { this.form.materialName = val.materialName this.form.planDetailStatus = setState(data.data.planDetailStatus) this.getInfo(val) + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); }, async tableClick(val) { if (!val) return @@ -526,8 +628,11 @@ export default { this.form.materialId = val.materialId this.form.materialCode = val.materialCode this.form.materialName = val.materialName + this.form.saleOrderId = val.saleOrderId this.form.planDetailStatus = setState(data?.planDetailStatus) this.getInfo(val) + this.selectBindPurchaseOrders(); + this.selectRawOutstocks(); }, getInfo(e) { this.$refs.chart1_1.setData({ @@ -879,7 +984,7 @@ export default { }, /** SOP预览*/ - handleViewSOP(e){ + handleViewSOP(e) { this.fileListData = []; getDispatchSOPAttachList(e.dispatchCode, e.processId).then(res => { let attachList = res.data; @@ -891,7 +996,7 @@ export default { thisFileList.push(previewFile); }) console.log("thisFileList:", thisFileList) - if (thisFileList.length > 0){ + if (thisFileList.length > 0) { this.fileListData = thisFileList; this.showFileDialog = true; } else { @@ -904,7 +1009,7 @@ export default { /** 提交暂停按钮 */ submitProductPlanDetailPause() { this.submitLoading = true; - let pauseForm = {planDetailId:this.form.planDetailId}; + let pauseForm = {planDetailId: this.form.planDetailId}; this.$modal.confirm('确认要暂停么?').then(function () { return productPlanDetailPause(pauseForm); }).then(() => { @@ -920,7 +1025,7 @@ export default { /** 提交继续按钮 */ submitProductPlanDetailContinue() { this.submitLoading = true; - let continueForm = {planDetailId:this.form.planDetailId}; + let continueForm = {planDetailId: this.form.planDetailId}; this.$modal.confirm('确认要继续么?').then(function () { return productPlanDetailContinue(continueForm); }).then(() => { @@ -931,6 +1036,31 @@ export default { this.submitLoading = false; }); }, + + + selectBindPurchaseOrders() { + this.purchaseOrderData = []; + if (this.form.saleOrderId && this.form.saleOrderId != '') { + selectBindPurchaseOrders({saleOrderId: this.form.saleOrderId}).then(response => { + this.purchaseOrderData = response.rows; + // this.detailTotal = response.total; + // this.loading = false; + }); + } + + }, + + + selectRawOutstocks() { + this.rawOutstockData = []; + if (this.form.planDetailCode && this.form.planDetailCode !== '') { + getRawOutstocks({planDetailCode: this.form.planDetailCode}).then(response => { + this.rawOutstockData = response.rows; + // this.detailTotal = response.total; + // this.loading = false; + }); + } + } } } diff --git a/hw-ui/src/views/mes/alarmInfo/index.vue b/hw-ui/src/views/mes/alarmInfo/index.vue new file mode 100644 index 00000000..3c01a562 --- /dev/null +++ b/hw-ui/src/views/mes/alarmInfo/index.vue @@ -0,0 +1,272 @@ + + + diff --git a/hw-ui/src/views/wms/info/productoutstock/index.vue b/hw-ui/src/views/wms/info/productoutstock/index.vue index 7a2df2ad..4d6a8ee5 100644 --- a/hw-ui/src/views/wms/info/productoutstock/index.vue +++ b/hw-ui/src/views/wms/info/productoutstock/index.vue @@ -180,10 +180,17 @@ 物料明细 + 明细 + >出库明细 @@ -303,16 +310,32 @@ 关 闭 + + + + + + diff --git a/hw-ui/src/views/wms/info/rawreturn/index.vue b/hw-ui/src/views/wms/info/rawreturn/index.vue index 5af46927..558e0a32 100644 --- a/hw-ui/src/views/wms/info/rawreturn/index.vue +++ b/hw-ui/src/views/wms/info/rawreturn/index.vue @@ -243,7 +243,7 @@ export default { const taskCode = row.taskCode const warehouseName = row.warehouseName; const params = {pageNum: this.queryParams.pageNum}; - this.$tab.openPage("退库详情[" + taskCode + "]", '/wms/raw-return/detail/' + rawReturnId + '/1/' + warehouseName, params); + this.$tab.openPage("退库详情[" + taskCode + "]", '/wms/raw-return/audit/' + rawReturnId+'/1/'+warehouseName, params); }, /** 导出按钮操作 */ diff --git a/hw-ui/src/views/wms/info/rawreturn/rawReturnDetail.vue b/hw-ui/src/views/wms/info/rawreturn/rawReturnDetail.vue index ed3d675e..c9b326b1 100644 --- a/hw-ui/src/views/wms/info/rawreturn/rawReturnDetail.vue +++ b/hw-ui/src/views/wms/info/rawreturn/rawReturnDetail.vue @@ -139,6 +139,107 @@ + 原材料退库记录明细 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +