仓库管理修改

liweidong
wusiyu 4 weeks ago
parent 3d10787ee0
commit 72bb608170
  1. 43
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/wms/AutoCheckMeasuringToolProcessor.java
  2. 30
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/feign/ErpMeaToolTaskClient.java
  3. 62
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasuringUpkeepEntity.java
  4. 38
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClient.java
  5. 26
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClientFallback.java
  6. 26
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/vo/MeasuringToolMaintainVO.java
  7. 49
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/vo/PurchaseTrackVO.java
  8. 41
      blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StBuyOrder.java
  9. 27
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/feign/ErpMeaToolTaskClientImpl.java
  10. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeasuringUpkeepMapper.java
  11. 34
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/mapper/MeasuringUpkeepMapper.xml
  12. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/IMeasuringUpkeepService.java
  13. 53
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/MeasuringUpkeepServiceImpl.java
  14. 23
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataWmsClient.java
  15. 7
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataWmsMapper.java
  16. 25
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataWmsMapper.xml
  17. 10
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataWmsService.java
  18. 100
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataWmsServiceImpl.java
  19. 7
      blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StBuyOrderController.java
  20. 1
      blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StMoldApplyForController.java
  21. 22
      blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StWmsRequestController.java
  22. 2
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStBuyOrderService.java
  23. 4
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStWmsRequestService.java
  24. 25
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StBuyOrderServiceImpl.java
  25. 69
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StWmsRequestServiceImpl.java

@ -0,0 +1,43 @@
package org.springblade.job.processor.wms;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.device.feign.ErpMeaToolTaskClient;
import org.springblade.wms.feign.WmsTaskClient;
import org.springframework.stereotype.Component;
import tech.powerjob.worker.core.processor.ProcessResult;
import tech.powerjob.worker.core.processor.TaskContext;
import tech.powerjob.worker.core.processor.sdk.BasicProcessor;
/**
* @version 1.0
* @program: jonhon-mes-svr
* @ClassName AutoCheckMeasuringToolProcessor
* @description:
* @autor: WuSiYu
* @create 2026-05-27 10:27
**/
@Component
@Data
@Slf4j
public class AutoCheckMeasuringToolProcessor implements BasicProcessor {
@Resource
ErpMeaToolTaskClient erpMeaToolTaskClient;
@Override
public ProcessResult process(TaskContext context) throws Exception {
log.info("开始执行量具自动检定");
try {
// 调用远程服务执行量具检定逻辑
erpMeaToolTaskClient.autoCheckMeasuringTool();
log.info("===== 量具自动检定完成 =====");
return new ProcessResult(result);
} catch (Exception e) {
log.error("===== 量具自动检定异常 =====", e);
return new ProcessResult(false, e.getMessage());
}
}
}

@ -0,0 +1,30 @@
package org.springblade.desk.device.feign;
import org.springblade.core.launch.constant.AppConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
/**
* @version 1.0
* @program: jonhon-mes-svr
* @ClassName ErpMeaToolTaskClient
* @description:
* @autor: WuSiYu
* @create 2026-05-28 14:38
**/
@FeignClient(
value = AppConstant.APPLICATION_DESK_NAME
)
public interface ErpMeaToolTaskClient {
String API_PREFIX = "/feign/client/erp-task";
String AUTO_CHECK_MEASURING_TOOL = API_PREFIX + "/autoCheckMeasuringTool";
/**
* 同步量具数据
*/
@GetMapping(AUTO_CHECK_MEASURING_TOOL)
void autoCheckMeasuringTool();
}

@ -1,17 +1,13 @@
package org.springblade.desk.device.pojo.entity; package org.springblade.desk.device.pojo.entity;
import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal; import lombok.Data;
import java.util.Date;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial; import java.io.Serial;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -54,7 +50,42 @@ public class MeasuringUpkeepEntity extends BaseEntity {
* 审批状态;-1 * 审批状态;-1
*/ */
@Schema(description = "审批状态;-1") @Schema(description = "审批状态;-1")
private Short approvalStatus; private Short approvalStaus;
/**
* 物料编号
*/
@Schema(description = "物料编号")
private String goodsCode;
/**
* 库房编号
*/
@Schema(description = "库房编号")
private String shCode;
/**
* 库位号
*/
@Schema(description = "库位号")
private String location;
/**
* 生产标识
*/
@Schema(description = "生产标识")
private String quantityLevel;
/**
* 检定数量
*/
@Schema(description = "检定数量")
private Double checkQty;
/**
* 检定确认时间
*/
@Schema(description = "检定确认时间")
private Date checkTime;
/**
* 检定标记
*/
@Schema(description = "检定标记")
private Integer checkFlag;
/** /**
* 库存物料 * 库存物料
*/ */
@ -69,6 +100,21 @@ public class MeasuringUpkeepEntity extends BaseEntity {
*/ */
public static Integer CURSTATUS_YSQ = 1; public static Integer CURSTATUS_YSQ = 1;
/**
* 检定标记 - 未检查
*/
public static Integer CHECK_FLAG_UNCHECKED = 0;
/**
* 检定标记 - 检验合格
*/
public static Integer CHECK_FLAG_PASS = 1;
/**
* 检定标记 - 检验不合格
*/
public static Integer CHECK_FLAG_FAIL = 2;
public static Map<Integer, String> curStatusMap = new HashMap<>(3); public static Map<Integer, String> curStatusMap = new HashMap<>(3);
static { static {

@ -3,6 +3,8 @@ package org.springblade.erpdata.feign;
import org.springblade.common.constant.LauncherConstant; import org.springblade.common.constant.LauncherConstant;
import org.springblade.common.exception.BusinessException; import org.springblade.common.exception.BusinessException;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springblade.wms.pojo.entity.StRealtimeStock;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
@ -32,12 +34,20 @@ public interface IErpDataWmsClient {
String SEND_ERP_BUY_REQUEST = API_PREFIX + "/sendErpBuyRequest"; String SEND_ERP_BUY_REQUEST = API_PREFIX + "/sendErpBuyRequest";
String CREATE_OR_REPLACE = API_PREFIX + "/createOrReplace";
String CREATE_MOLD_PLAN = API_PREFIX + "/createMoldPlan"; String CREATE_MOLD_PLAN = API_PREFIX + "/createMoldPlan";
String DELETE_MOLD_PLAN = API_PREFIX + "/deleteMoldPlan"; String DELETE_MOLD_PLAN = API_PREFIX + "/deleteMoldPlan";
String SEND_ERP_MAINTENANCE = API_PREFIX + "/sendErpMaintenance";
String GET_GOODS_EXT_STATUS = API_PREFIX + "/getGoodsExtStatus"; String GET_GOODS_EXT_STATUS = API_PREFIX + "/getGoodsExtStatus";
String GET_BUY_ORDER_STATUS = API_PREFIX + "/getBuyOrderStatus";
String GET_MAINTEN_STATUS = API_PREFIX + "/getMaintenStatus";
/** /**
* 到期送检发送erp * 到期送检发送erp
*/ */
@ -50,6 +60,14 @@ public interface IErpDataWmsClient {
@PostMapping(SEND_ERP_BUY_REQUEST) @PostMapping(SEND_ERP_BUY_REQUEST)
R<String> sendErpBuyRequest(@RequestParam("extraBill")String extraBill, @RequestParam("qty")Double qty, @RequestParam("ldapName")String ldapName) throws BusinessException; R<String> sendErpBuyRequest(@RequestParam("extraBill")String extraBill, @RequestParam("qty")Double qty, @RequestParam("ldapName")String ldapName) throws BusinessException;
/**
* 仓库提请修改erp
*/
@PostMapping(CREATE_OR_REPLACE)
R<String> createOrReplace(@RequestParam("extraBill")String extraBill, @RequestParam("goodsCode")String goodsCode, @RequestParam("flag")String flag,
@RequestParam("qty")Double qty, @RequestParam("amount")Double amount) throws BusinessException;
/** /**
* 工装计划申报发送erp * 工装计划申报发送erp
*/ */
@ -64,10 +82,30 @@ public interface IErpDataWmsClient {
@PostMapping(DELETE_MOLD_PLAN) @PostMapping(DELETE_MOLD_PLAN)
R<String> deleteMoldPlan(@RequestParam("erpWoCode")String erpWoCode) throws BusinessException; R<String> deleteMoldPlan(@RequestParam("erpWoCode")String erpWoCode) throws BusinessException;
/**
* 量具保养发送erp
*/
@PostMapping(SEND_ERP_MAINTENANCE)
R<String> sendErpMaintenance(@RequestParam("goodsCode")String goodsCode, @RequestParam("shCode")String shCode, @RequestParam("location")String location,
@RequestParam("needDate") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date needDate,
@RequestParam("flag")String flag ,@RequestParam("checkQty")Double checkQty, @RequestParam("quantityLevel")String quantityLevel) throws BusinessException;
/** /**
* 物料状态监控同步 * 物料状态监控同步
*/ */
@PostMapping(GET_GOODS_EXT_STATUS) @PostMapping(GET_GOODS_EXT_STATUS)
R<StGoodsExtStatusVO> getGoodsExtStatus(@RequestParam("goodsCode")String goodsCode); R<StGoodsExtStatusVO> getGoodsExtStatus(@RequestParam("goodsCode")String goodsCode);
/**
* 采购跟踪
*/
@PostMapping(GET_BUY_ORDER_STATUS)
R<PurchaseTrackVO> getBuyOrderStatus(@RequestParam("extraBill")String extraBill);
/**
* 量具检定
*/
@PostMapping(GET_MAINTEN_STATUS)
R<MeasuringToolMaintainVO> getMaintenStatus(@RequestParam("goodsCode")String goodsCode, @RequestParam("shCode")String shCode,
@RequestParam("location")String location, @RequestParam("createTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date createTime);
} }

@ -1,6 +1,8 @@
package org.springblade.erpdata.feign; package org.springblade.erpdata.feign;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springblade.wms.pojo.entity.StRealtimeStock;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
@ -30,6 +32,12 @@ public class IErpDataWmsClientFallback implements IErpDataWmsClient{
return R.fail("获取数据失败"); return R.fail("获取数据失败");
} }
@Override
public R<String> createOrReplace(@RequestParam("extraBill")String extraBill, @RequestParam("goodsCode")String goodsCode, @RequestParam("flag")String flag,
@RequestParam("qty")Double qty, @RequestParam("amount")Double amount) {
return R.fail("获取数据失败");
}
@Override @Override
public R<String> createMoldPlan(@RequestParam(value = "partCode", required = false)String partCode, @RequestParam("moCode")String moCode, @RequestParam("plantype")String plantype, @RequestParam("quantity")Double quantity, public R<String> createMoldPlan(@RequestParam(value = "partCode", required = false)String partCode, @RequestParam("moCode")String moCode, @RequestParam("plantype")String plantype, @RequestParam("quantity")Double quantity,
@RequestParam("needDate") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date needDate, @RequestParam("level")String level, @RequestParam("keeper")String keeper, @RequestParam("createMan")String createMan, @RequestParam("needDate") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date needDate, @RequestParam("level")String level, @RequestParam("keeper")String keeper, @RequestParam("createMan")String createMan,
@ -42,9 +50,27 @@ public class IErpDataWmsClientFallback implements IErpDataWmsClient{
return R.fail("获取数据失败"); return R.fail("获取数据失败");
} }
@Override
public R<String> sendErpMaintenance(@RequestParam("goodsCode")String goodsCode, @RequestParam("shCode")String shCode, @RequestParam("location")String location,
@RequestParam("needDate") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date needDate,
@RequestParam("flag")String flag ,@RequestParam("checkQty")Double checkQty, @RequestParam("quantityLevel")String quantityLevel) {
return R.fail("获取数据失败");
}
@Override @Override
public R<StGoodsExtStatusVO> getGoodsExtStatus(@RequestParam("goodsCode")String goodsCode) { public R<StGoodsExtStatusVO> getGoodsExtStatus(@RequestParam("goodsCode")String goodsCode) {
return R.fail("获取数据失败"); return R.fail("获取数据失败");
} }
@Override
public R<PurchaseTrackVO> getBuyOrderStatus(@RequestParam("extraBill")String extraBill) {
return R.fail("获取数据失败");
}
@Override
public R<MeasuringToolMaintainVO> getMaintenStatus(@RequestParam("goodsCode")String goodsCode, @RequestParam("shCode")String shCode,
@RequestParam("location")String location, @RequestParam("createTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date createTime) {
return R.fail("获取数据失败");
}
} }

@ -0,0 +1,26 @@
package org.springblade.erpdata.pojo.vo;
import lombok.Data;
import java.util.Date;
/**
* @version 1.0
* @program: jonhon-mes-svr
* @ClassName MeasuringToolMaintainVO
* @description:
* @autor: WuSiYu
* @create 2026-05-26 21:24
**/
@Data
public class MeasuringToolMaintainVO {
/**
* 检定标记
*/
private String chkflag;
/**
* 检定标记检定日期
*/
private Date chkdate;
}

@ -0,0 +1,49 @@
package org.springblade.erpdata.pojo.vo;
import lombok.Data;
/**
* @version 1.0
* @program: jonhon-mes-svr
* @ClassName PurchaseTrackVO
* @description:
* @autor: WuSiYu
* @create 2026-05-25 16:15
**/
@Data
public class PurchaseTrackVO {
/**
* 额外号
*/
private String orderno;
/**
* 负责人账号
*/
private String relctrler;
/**
* 负责人名称
*/
private String relctrlerName;
/**
* 需求状态
*/
private Short reqstat;
/**
* 采购申请单号RPNO
*/
private String rpno;
/**
* 采购人账号
*/
private String purcode;
/**
* 采购人名称
*/
private String purcodeName;
}

@ -165,6 +165,33 @@ public class StBuyOrder extends TenantEntity {
@Schema(description = "二级审批时间") @Schema(description = "二级审批时间")
private Date approvalTime2; private Date approvalTime2;
/**
* 采购部计划员ID
*/
@Schema(description = "采购部计划员ID")
private Long planBuyMan;
/**
* 采购部计划员名称
*/
@Schema(description = "采购部计划员名称")
private String planBuyManName;
/**
* 需求状态
*/
@Schema(description = "需求状态")
private Short needStatus;
/**
* erp采购单号
*/
@Schema(description = "erp采购单号")
private String erpBuyCode;
@TableField(exist = false)
private String buyManName;
@TableField(exist = false) @TableField(exist = false)
private String declareManName; private String declareManName;
@ -237,5 +264,19 @@ public class StBuyOrder extends TenantEntity {
*/ */
public static final short APPROVAL_STATUS_SECOND_UNPASS = 4; public static final short APPROVAL_STATUS_SECOND_UNPASS = 4;
/**
* 需求状态 0等候;1计划确认;2已生成定单;4未生成定单;5已做批料;6未批准;7需求取消;8车间取消;9车间批准;10车间未批
*/
public static Short NEED_STATUS_WAIT = 0; // 等候
public static Short NEED_STATUS_PLAN_CONFIRM = 1; // 计划确认
public static Short NEED_STATUS_ORDER_GENERATED = 2; // 已生成定单
public static Short NEED_STATUS_ORDER_NOT_GENERATED = 4; // 未生成定单
public static Short NEED_STATUS_BATCH_MADE = 5; // 已做批料
public static Short NEED_STATUS_NOT_APPROVED = 6; // 未批准
public static Short NEED_STATUS_REQUIRE_CANCEL = 7; // 需求取消
public static Short NEED_STATUS_WORKSHOP_CANCEL = 8; // 车间取消
public static Short NEED_STATUS_WORKSHOP_APPROVE = 9; // 车间批准
public static Short NEED_STATUS_WORKSHOP_NOT_APPROVE = 10;// 车间未批
} }

@ -0,0 +1,27 @@
package org.springblade.desk.device.feign;
import io.swagger.v3.oas.annotations.Hidden;
import jakarta.annotation.Resource;
import org.springblade.desk.device.service.IMeasuringUpkeepService;
import org.springframework.web.bind.annotation.RestController;
/**
* @version 1.0
* @program: jonhon-mes-svr
* @ClassName ErpMeaToolTaskClientImpl
* @description:
* @autor: WuSiYu
* @create 2026-05-28 14:33
**/
@RestController
@Hidden
public class ErpMeaToolTaskClientImpl implements ErpMeaToolTaskClient {
@Resource
private IMeasuringUpkeepService measuringUpkeepService;
@Override
public void autoCheckMeasuringTool() {
measuringUpkeepService.autoCheckMeasuringTool();
}
}

@ -1,14 +1,15 @@
package org.springblade.desk.device.mapper; package org.springblade.desk.device.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.desk.device.pojo.entity.MeasuringUpkeepEntity; import org.springblade.desk.device.pojo.entity.MeasuringUpkeepEntity;
import org.springblade.desk.device.pojo.excel.MeasuringUpkeepExcel; import org.springblade.desk.device.pojo.excel.MeasuringUpkeepExcel;
import org.springblade.desk.device.pojo.request.MeasuringUpkeepQuery; import org.springblade.desk.device.pojo.request.MeasuringUpkeepQuery;
import org.springblade.desk.device.pojo.vo.MeasuringUpkeepVO; import org.springblade.desk.device.pojo.vo.MeasuringUpkeepVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.desk.device.pojo.vo.ToolingLibraryVO; import org.springblade.desk.device.pojo.vo.ToolingLibraryVO;
import org.springblade.wms.pojo.vo.StRealtimeStockVO;
import java.util.List; import java.util.List;
@ -46,4 +47,9 @@ public interface MeasuringUpkeepMapper extends BaseMapper<MeasuringUpkeepEntity>
*/ */
List<MeasuringUpkeepExcel> exportMeasuringUpkeep(@Param("ew") Wrapper<MeasuringUpkeepEntity> queryWrapper); List<MeasuringUpkeepExcel> exportMeasuringUpkeep(@Param("ew") Wrapper<MeasuringUpkeepEntity> queryWrapper);
StRealtimeStockVO getStockById(Long id);
void updateStock(Long id, Double checkQty);
void updateStockById(Long miId, Double checkQty);
} }

@ -92,6 +92,7 @@
<result column="quantity_level" property="quantityLevel"/> <result column="quantity_level" property="quantityLevel"/>
<result column="balance_money" property="balanceMoney"/> <result column="balance_money" property="balanceMoney"/>
<result column="sum_num" property="sumNum"/> <result column="sum_num" property="sumNum"/>
<result column="stay_maintain_num" property="stayMaintainNum"/>
</resultMap> </resultMap>
<!-- 多表联合查询SQL --> <!-- 多表联合查询SQL -->
@ -176,7 +177,7 @@
and (toolingLibrary.muStatus == null or toolingLibrary.muStatus == '') and (toolingLibrary.muStatus == null or toolingLibrary.muStatus == '')
and (toolingLibrary.goodsName == null or toolingLibrary.goodsName == '') and (toolingLibrary.goodsName == null or toolingLibrary.goodsName == '')
and (toolingLibrary.piNo == null or toolingLibrary.piNo == '')"> and (toolingLibrary.piNo == null or toolingLibrary.piNo == '')">
AND st.sum_num >= 270 AND st.stay_maintain_num >= 270
</if> </if>
<!-- 库房 --> <!-- 库房 -->
@ -210,4 +211,35 @@
FROM MES_MEASURING_UPKEEP ${ew.customSqlSegment} FROM MES_MEASURING_UPKEEP ${ew.customSqlSegment}
</select> </select>
<select id="getStockById" resultType="org.springblade.wms.pojo.vo.StRealtimeStockVO">
SELECT
s.*,
m.goods_code , -- 物料编号
w.sh_code , -- 库房编号
ws.location -- 库位号
FROM st_realtime_stock s
LEFT JOIN ST_GOODS m ON s.goods_id = m.id
LEFT JOIN ST_STOREHOUSE w ON s.sh_id = w.id
LEFT JOIN ST_STORAGE_LOCATION ws ON s.sl_id = ws.id
WHERE s.id = #{id}
AND s.is_deleted = 0
AND s.stop_use = 0
</select>
<update id="updateStock">
UPDATE st_realtime_stock
SET occupy_quantity = occupy_quantity + #{checkQty},
is_measure_maintenance = 1,
update_time = NOW()
WHERE id = #{id}
</update>
<update id="updateStockById">
UPDATE st_realtime_stock
SET STAY_MAINTAIN_NUM = 0,
is_measure_maintenance = 0,
occupy_quantity = occupy_quantity - #{checkQty},
update_time = NOW()
WHERE id = #{id}
</update>
</mapper> </mapper>

@ -58,4 +58,6 @@ public interface IMeasuringUpkeepService extends BaseService<MeasuringUpkeepEnti
* @param ids * @param ids
*/ */
R addMaintenance(List<Long> ids); R addMaintenance(List<Long> ids);
void autoCheckMeasuringTool();
} }

@ -2,9 +2,12 @@ package org.springblade.desk.device.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springblade.common.exception.BusinessException;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
@ -16,6 +19,9 @@ import org.springblade.desk.device.pojo.request.MeasuringUpkeepQuery;
import org.springblade.desk.device.pojo.vo.MeasuringUpkeepVO; import org.springblade.desk.device.pojo.vo.MeasuringUpkeepVO;
import org.springblade.desk.device.pojo.vo.ToolingLibraryVO; import org.springblade.desk.device.pojo.vo.ToolingLibraryVO;
import org.springblade.desk.device.service.IMeasuringUpkeepService; import org.springblade.desk.device.service.IMeasuringUpkeepService;
import org.springblade.erpdata.feign.IErpDataWmsClient;
import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.wms.pojo.vo.StRealtimeStockVO;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -51,6 +57,9 @@ public class MeasuringUpkeepServiceImpl extends BaseServiceImpl<MeasuringUpkeepM
@Value("${request.lims.url}") @Value("${request.lims.url}")
private String limsUrl; private String limsUrl;
@Resource
IErpDataWmsClient erpDataWmsClient;
@Override @Override
public IPage<MeasuringUpkeepVO> selectMeasuringUpkeepPage(IPage<MeasuringUpkeepVO> page, MeasuringUpkeepQuery measuringUpkeep) { public IPage<MeasuringUpkeepVO> selectMeasuringUpkeepPage(IPage<MeasuringUpkeepVO> page, MeasuringUpkeepQuery measuringUpkeep) {
// return page.setRecords(baseMapper.selectMeasuringUpkeepPage(page, measuringUpkeep)); // return page.setRecords(baseMapper.selectMeasuringUpkeepPage(page, measuringUpkeep));
@ -135,15 +144,57 @@ public class MeasuringUpkeepServiceImpl extends BaseServiceImpl<MeasuringUpkeepM
ids.forEach(id -> { ids.forEach(id -> {
MeasuringUpkeepEntity entity = new MeasuringUpkeepEntity(); MeasuringUpkeepEntity entity = new MeasuringUpkeepEntity();
entity.setMiId(id); entity.setMiId(id);
entity.setStatus(MeasuringUpkeepEntity.CURSTATUS_NEW); StRealtimeStockVO stock = baseMapper.getStockById(id);
entity.setCheckFlag(0);
entity.setMmCode(nextCode(1)); entity.setMmCode(nextCode(1));
entity.setGoodsCode(stock.getGoodsCode());
entity.setShCode(stock.getShCode());
entity.setLocation(stock.getLocation());
entity.setCheckQty(stock.getQuantity());
entity.setQuantityLevel("0");
entity.setCreateMan(AuthUtil.getUser() != null ? AuthUtil.getUser().getUserId() : 1); entity.setCreateMan(AuthUtil.getUser() != null ? AuthUtil.getUser().getUserId() : 1);
list.add(entity); list.add(entity);
try {
erpDataWmsClient.sendErpMaintenance(entity.getGoodsCode(),entity.getShCode(),entity.getLocation(),
new Date(),"0",entity.getCheckQty(), "0");
} catch (BusinessException e) {
throw new RuntimeException("量具保养发送ERP失败:" + e.getMessage());
}
baseMapper.updateStock(id, entity.getCheckQty());
}); });
return R.status(this.saveBatch(list)); return R.status(this.saveBatch(list));
} }
@Override
public void autoCheckMeasuringTool() {
try {
QueryWrapper<MeasuringUpkeepEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_deleted", 0);
queryWrapper.eq("check_flag", MeasuringUpkeepEntity.CHECK_FLAG_UNCHECKED);
queryWrapper.orderByDesc("create_time");
List<MeasuringUpkeepEntity> list = baseMapper.selectList(queryWrapper);
for (MeasuringUpkeepEntity entity : list) {
MeasuringToolMaintainVO maintainVO = erpDataWmsClient.getMaintenStatus(entity.getGoodsCode(),entity.getShCode(),
entity.getLocation(),entity.getCreateTime()).getData();
entity.setCheckFlag(Integer.valueOf(maintainVO.getChkflag()));
entity.setCheckTime(maintainVO.getChkdate());
if (entity.getCheckFlag() == 1) {
baseMapper.updateStockById(entity.getMiId(), entity.getCheckQty());
}
}
log.info("===== 量具保养检验状态定时更新完成 =====", list.size());
} catch (Exception e) {
log.info("===== 量具保养检验状态定时更新异常 =====", e);
}
}
/** /**
* 构建请求体 * 构建请求体
*/ */

@ -5,6 +5,8 @@ import lombok.AllArgsConstructor;
import org.springblade.common.exception.BusinessException; import org.springblade.common.exception.BusinessException;
import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import org.springblade.erpdata.service.IErpDataWmsService; import org.springblade.erpdata.service.IErpDataWmsService;
import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springblade.wms.pojo.entity.StRealtimeStock;
@ -37,6 +39,11 @@ public class ErpDataWmsClient implements IErpDataWmsClient{
return R.data(erpDataWmsService.sendErpBuyRequest(extraBill, qty, ldapName)); return R.data(erpDataWmsService.sendErpBuyRequest(extraBill, qty, ldapName));
} }
@Override
public R<String> createOrReplace(String extraBill, String goodsCode, String flag, Double qty, Double amount) throws BusinessException {
return R.data(erpDataWmsService.createOrReplace(extraBill, goodsCode, flag, qty, amount));
}
@Override @Override
public R<String> createMoldPlan(String partCode, String moCode, String plantype, Double quantity, Date needDate, String level, public R<String> createMoldPlan(String partCode, String moCode, String plantype, Double quantity, Date needDate, String level,
String keeper, String createMan, String memo, String urgentType, String erpWoCode) throws BusinessException { String keeper, String createMan, String memo, String urgentType, String erpWoCode) throws BusinessException {
@ -49,8 +56,24 @@ public class ErpDataWmsClient implements IErpDataWmsClient{
return R.data(erpDataWmsService.deleteMoldPlan(erpWoCode)); return R.data(erpDataWmsService.deleteMoldPlan(erpWoCode));
} }
@Override
public R<String> sendErpMaintenance(String goodsCode, String shCode, String location, Date needDate,
String flag ,Double checkQty, String quantityLevel) throws BusinessException {
return R.data(erpDataWmsService.sendErpMaintenance(goodsCode, shCode, location, needDate, flag, checkQty, quantityLevel));
}
@Override @Override
public R<StGoodsExtStatusVO> getGoodsExtStatus(String goodsCode) { public R<StGoodsExtStatusVO> getGoodsExtStatus(String goodsCode) {
return R.data(erpDataWmsService.getGoodsExtStatus(goodsCode)); return R.data(erpDataWmsService.getGoodsExtStatus(goodsCode));
} }
@Override
public R<PurchaseTrackVO> getBuyOrderStatus(String extraBill) {
return R.data(erpDataWmsService.getBuyOrderStatus(extraBill));
}
@Override
public R<MeasuringToolMaintainVO> getMaintenStatus(String goodsCode, String shCode, String location, Date createTime) {
return R.data(erpDataWmsService.getMaintenStatus(goodsCode, shCode, location, createTime));
}
} }

@ -1,8 +1,12 @@
package org.springblade.erpdata.mapper; package org.springblade.erpdata.mapper;
import com.baomidou.mybatisplus.core.mapper.Mapper; import com.baomidou.mybatisplus.core.mapper.Mapper;
import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import java.util.Date;
/** /**
* @version 1.0 * @version 1.0
* @program: jonhon-mes-svr * @program: jonhon-mes-svr
@ -16,4 +20,7 @@ public interface ErpDataWmsMapper extends Mapper {
StGoodsExtStatusVO getGoodsExtStatus(String goodsCode); StGoodsExtStatusVO getGoodsExtStatus(String goodsCode);
PurchaseTrackVO getBuyOrderStatus(String extraBill);
MeasuringToolMaintainVO getMaintenStatus(String goodsCode, String shCode, String location, Date createTime);
} }

@ -11,4 +11,29 @@
WHERE prtno = #{goodsCode} WHERE prtno = #{goodsCode}
</select> </select>
<select id="getBuyOrderStatus" resultType="org.springblade.erpdata.pojo.vo.PurchaseTrackVO">
SELECT
a.orderno,
a.relctrler,
a.reqstat
c.userdesc AS relctrler_name,
a.rpno,
d.purcode,
e.userdesc AS purcode_name
FROM dba_mgr.t_purotherrp a
LEFT JOIN aepcs_system.t_sysuser c ON a.relctrler = c.username
LEFT JOIN dba_mgr.t_poitem d ON a.rpno = d.rpno
LEFT JOIN aepcs_system.t_sysuser e ON d.purcode = e.username
WHERE a.orderno = #{extraBill}
</select>
<select id="getMaintenStatus" resultType="org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO">
SELECT chkflag,
chkdate
FROM dba_mgr.t_toochkinf
WHERE prtno = #{goodsCode}
AND warno = #{shCode}
AND warlocno = #{location}
AND applydate= #{createTime}
</select>
</mapper> </mapper>

@ -1,6 +1,8 @@
package org.springblade.erpdata.service; package org.springblade.erpdata.service;
import org.springblade.common.exception.BusinessException; import org.springblade.common.exception.BusinessException;
import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springblade.wms.pojo.entity.StRealtimeStock;
@ -26,4 +28,12 @@ public interface IErpDataWmsService {
String deleteMoldPlan(String erpWoCode) throws BusinessException; String deleteMoldPlan(String erpWoCode) throws BusinessException;
StGoodsExtStatusVO getGoodsExtStatus(String goodsCode); StGoodsExtStatusVO getGoodsExtStatus(String goodsCode);
String createOrReplace(String extraBill, String goodsCode, String flag, Double qty, Double amount) throws BusinessException;
PurchaseTrackVO getBuyOrderStatus(String extraBill);
String sendErpMaintenance(String goodsCode, String shCode, String location, Date needDate, String flag, Double checkQty, String quantityLevel) throws BusinessException;
MeasuringToolMaintainVO getMaintenStatus(String goodsCode, String shCode, String location, Date createTime);
} }

@ -6,6 +6,8 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springblade.common.exception.BusinessException; import org.springblade.common.exception.BusinessException;
import org.springblade.erpdata.mapper.ErpDataWmsMapper; import org.springblade.erpdata.mapper.ErpDataWmsMapper;
import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO;
import org.springblade.erpdata.service.IErpDataWmsService; import org.springblade.erpdata.service.IErpDataWmsService;
import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springblade.wms.pojo.entity.StRealtimeStock;
@ -125,6 +127,47 @@ public class ErpDataWmsServiceImpl implements IErpDataWmsService {
return excflag; return excflag;
} }
@Override
public String createOrReplace(String extraBill, String goodsCode, String flag, Double qty, Double amount) throws BusinessException {
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
// 指定存储过程名(包含 DB Link)
.withProcedureName("dba_mgr.pro_rbmesinvdeptoutchg")
// 关闭元数据访问(DBLink 必须加)
.withoutProcedureColumnMetaDataAccess()
// 显式声明参数(顺序必须和存储过程一致)
.declareParameters(
new SqlParameter("v_wono", Types.VARCHAR), // IN
new SqlParameter("v_prtno", Types.VARCHAR), // IN
new SqlParameter("v_flag", Types.VARCHAR), // IN
new SqlParameter("v_reqqty", Types.DOUBLE), // IN
new SqlParameter("v_amount", Types.DOUBLE), // IN
new SqlOutParameter("v_excnote", Types.VARCHAR),// OUT
new SqlOutParameter("v_excflag", Types.VARCHAR) // OUT
);
// 2. 封装输入参数
Map<String, Object> inParams = new HashMap<>();
inParams.put("v_wono", extraBill == null ? "" : extraBill);
inParams.put("v_prtno", goodsCode == null ? "" : goodsCode);
inParams.put("v_flag", flag == null ? "" : flag);
inParams.put("v_reqqty", qty == null ? 0D : qty);
inParams.put("v_amount", amount == null ? 0D : amount);
// 3. 执行并获取结果 Map
Map<String, Object> resultMap = jdbcCall.execute(inParams);
// 4. 提取输出参数
String excflag = (String) resultMap.get("v_excflag");
String excnote = (String) resultMap.get("v_excnote");
// 5. 业务判断
if ("0".equals(excflag)) {
throw new BusinessException("申报信息修改或删除erp失败!" + excnote);
}
return excflag;
}
@Override @Override
public String createMoldPlan(String partCode, String moCode, String plantype, Double quantity, Date needDate, String level, public String createMoldPlan(String partCode, String moCode, String plantype, Double quantity, Date needDate, String level,
String keeper, String createMan, String memo, String urgentType, String erpWoCode) throws BusinessException{ String keeper, String createMan, String memo, String urgentType, String erpWoCode) throws BusinessException{
@ -215,9 +258,66 @@ public class ErpDataWmsServiceImpl implements IErpDataWmsService {
return excflag; return excflag;
} }
@Override
public String sendErpMaintenance(String goodsCode, String shCode, String location, Date needDate,
String flag ,Double checkQty, String quantityLevel) throws BusinessException {
// 1. 创建存储过程调用
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
// 存储过程名 + DBLink
.withProcedureName("dba_mgr.pro_rbmestoolchkmtn")
// 关闭元数据(DBLink必须加)
.withoutProcedureColumnMetaDataAccess()
// 声明参数:顺序必须和存储过程一致!
.declareParameters(
new SqlParameter("v_prtno", Types.VARCHAR),
new SqlParameter("v_warno", Types.VARCHAR),
new SqlParameter("v_warlocno", Types.VARCHAR),
new SqlParameter("v_applydate", Types.DATE),
new SqlParameter("v_typeflag", Types.VARCHAR),
new SqlParameter("v_chkqty", Types.DOUBLE),
new SqlParameter("v_prtlotno", Types.VARCHAR),
new SqlOutParameter("v_excnote", Types.VARCHAR),
new SqlOutParameter("v_excflag", Types.VARCHAR)
);
// 2. 封装输入参数
Map<String, Object> inParams = new HashMap<>();
inParams.put("v_prtno", goodsCode);
inParams.put("v_warno", shCode);
inParams.put("v_warlocno", location);
inParams.put("v_applydate", needDate);
inParams.put("v_typeflag", flag);
inParams.put("v_chkqty", checkQty);
inParams.put("v_prtlotno", quantityLevel);
// 3. 执行存储过程
Map<String, Object> resultMap = jdbcCall.execute(inParams);
// 4. 获取输出参数
String excflag = (String) resultMap.get("v_excflag");
String excnote = (String) resultMap.get("v_excnote");
// 5. 业务判断
if ("0".equals(excflag)) {
throw new BusinessException("量具保养发送失败! " + excnote);
}
return excflag;
}
@Override @Override
public StGoodsExtStatusVO getGoodsExtStatus(String goodsCode){ public StGoodsExtStatusVO getGoodsExtStatus(String goodsCode){
return erpDataWmsMapper.getGoodsExtStatus(goodsCode); return erpDataWmsMapper.getGoodsExtStatus(goodsCode);
} }
@Override
public PurchaseTrackVO getBuyOrderStatus(String extraBill) {
return erpDataWmsMapper.getBuyOrderStatus(extraBill);
}
@Override
public MeasuringToolMaintainVO getMaintenStatus(String goodsCode, String shCode, String location, Date createTime) {
return erpDataWmsMapper.getMaintenStatus(goodsCode, shCode, location, createTime);
}
} }

@ -56,9 +56,10 @@ public class StBuyOrderController extends BladeController {
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@ApiLog("采购申请单 详情") @ApiLog("采购申请单 详情")
@Operation(summary = "详情", description = "传入stBuyOrder") @Operation(summary = "详情", description = "传入stBuyOrder")
public R<StBuyOrderVO> detail(StBuyOrder stBuyOrder) { public R<StBuyOrder> detail(StBuyOrder stBuyOrder) {
StBuyOrder detail = stBuyOrderService.getOne(Condition.getQueryWrapper(stBuyOrder)); // StBuyOrder detail = stBuyOrderService.getOne(Condition.getQueryWrapper(stBuyOrder));
return R.data(StBuyOrderWrapper.build().entityVO(detail)); StBuyOrder detail = stBuyOrderService.getDetail(stBuyOrder.getId());
return R.data(detail);
} }
/** /**
* 采购申请单 分页 * 采购申请单 分页

@ -22,7 +22,6 @@ import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.wms.excel.StMoldApplyForExcel; import org.springblade.wms.excel.StMoldApplyForExcel;
import org.springblade.wms.pojo.dto.StMoldApplyForDTO; import org.springblade.wms.pojo.dto.StMoldApplyForDTO;
import org.springblade.wms.pojo.entity.StBuyOrder;
import org.springblade.wms.pojo.entity.StMoldApplyFor; import org.springblade.wms.pojo.entity.StMoldApplyFor;
import org.springblade.wms.pojo.vo.StMoldApplyForVO; import org.springblade.wms.pojo.vo.StMoldApplyForVO;
import org.springblade.wms.service.IStMoldApplyForService; import org.springblade.wms.service.IStMoldApplyForService;

@ -100,16 +100,16 @@ public class StWmsRequestController extends BladeController {
return R.status(stWmsRequestService.save(stWmsRequest)); return R.status(stWmsRequestService.save(stWmsRequest));
} }
// /** /**
// * 仓库提请记录 修改 * 仓库提请记录 修改
// */ */
// @PostMapping("/update") @PostMapping("/update")
// @ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
// @ApiLog("仓库提请记录 修改") @ApiLog("仓库提请记录 修改")
// @Operation(summary = "修改", description = "传入stWmsRequest") @Operation(summary = "修改", description = "传入stWmsRequest")
// public R update(@Valid @RequestBody StWmsRequest stWmsRequest) { public R update(@Valid @RequestBody StWmsRequest stWmsRequest) {
// return R.status(stWmsRequestService.updateByErp(stWmsRequest)); return R.status(stWmsRequestService.updateByErp(stWmsRequest));
// } }
/** /**
* 仓库提请提交 * 仓库提请提交
@ -158,7 +158,7 @@ public class StWmsRequestController extends BladeController {
@ApiLog("仓库提请记录 删除") @ApiLog("仓库提请记录 删除")
@Operation(summary = "逻辑删除", description = "传入ids") @Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(stWmsRequestService.deleteLogic(Func.toLongList(ids))); return R.status(stWmsRequestService.deleteByErp(Func.toLongList(ids)));
} }
/** /**

@ -60,6 +60,8 @@ public interface IStBuyOrderService extends BaseService<StBuyOrder> {
Long buyOrderApplyFor(String goodsCode, Double buyQty, Long userId, Date buyDate, Long checkUserId, Date checkDate) throws Exception; Long buyOrderApplyFor(String goodsCode, Double buyQty, Long userId, Date buyDate, Long checkUserId, Date checkDate) throws Exception;
StBuyOrder getDetail(Long id);
// JSONObject otherPlanDetail(Long id, String prtno); // JSONObject otherPlanDetail(Long id, String prtno);
} }

@ -45,5 +45,9 @@ public interface IStWmsRequestService extends BaseService<StWmsRequest> {
void approvalRequest(Long id, Short approvalResult, BladeUser user); void approvalRequest(Long id, Short approvalResult, BladeUser user);
void batchSaveOrEdit(List<StWmsRequest> stWmsRequestList, BladeUser user); void batchSaveOrEdit(List<StWmsRequest> stWmsRequestList, BladeUser user);
boolean updateByErp(StWmsRequest stWmsRequest);
boolean deleteByErp(List<Long> longList);
} }

@ -13,6 +13,8 @@ import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.common.feign.IMesApprovalRecordClient; import org.springblade.desk.common.feign.IMesApprovalRecordClient;
import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity; import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity;
import org.springblade.erpdata.feign.IErpDataWmsClient;
import org.springblade.erpdata.pojo.vo.PurchaseTrackVO;
import org.springblade.system.feign.ISysClient; import org.springblade.system.feign.ISysClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User; import org.springblade.system.pojo.entity.User;
@ -54,6 +56,8 @@ public class StBuyOrderServiceImpl extends BaseServiceImpl<StBuyOrderMapper, StB
private IUserClient userClient; private IUserClient userClient;
@Resource @Resource
private ISysClient sysClient; private ISysClient sysClient;
@Resource
private IErpDataWmsClient erpDataWmsClient;
@Override @Override
public IPage<StBuyOrderVO> selectStBuyOrderPage(IPage<StBuyOrderVO> page, StBuyOrderVO stBuyOrder) { public IPage<StBuyOrderVO> selectStBuyOrderPage(IPage<StBuyOrderVO> page, StBuyOrderVO stBuyOrder) {
@ -374,6 +378,27 @@ public class StBuyOrderServiceImpl extends BaseServiceImpl<StBuyOrderMapper, StB
return baseMapper.getByExtraBill(extraBill); return baseMapper.getByExtraBill(extraBill);
} }
@Override
public StBuyOrder getDetail(Long id) {
StBuyOrder buyOrder = this.getById(id);
PurchaseTrackVO purchaseTrackVO = erpDataWmsClient.getBuyOrderStatus(buyOrder.getExtraBill()).getData();
if (purchaseTrackVO == null) {
System.out.println("ERP未查到数据");
}
buyOrder.setErpBuyCode(purchaseTrackVO.getRpno());
buyOrder.setNeedStatus(purchaseTrackVO.getReqstat());
List<User> userList = userClient.listByNameNolike(purchaseTrackVO.getRelctrlerName());
buyOrder.setPlanBuyMan(userList.get(0).getId());
buyOrder.setPlanBuyManName(purchaseTrackVO.getRelctrlerName());
List<User> users = userClient.listByNameNolike(purchaseTrackVO.getPurcodeName());
buyOrder.setBuyMan(users.get(0).getId());
buyOrder.setBuyManName(purchaseTrackVO.getPurcodeName());
this.updateById(buyOrder);
return buyOrder;
}
// @Override // @Override
// public JSONObject otherPlanDetail(Long boId, String goodsCode) { // public JSONObject otherPlanDetail(Long boId, String goodsCode) {
//// JSONObject o = (JSONObject) prPlateGoodsRecordWebService.listByRecordDetail(boId,goodsCode); //// JSONObject o = (JSONObject) prPlateGoodsRecordWebService.listByRecordDetail(boId,goodsCode);

@ -1,5 +1,6 @@
package org.springblade.wms.service.impl; package org.springblade.wms.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
@ -24,7 +25,6 @@ import org.springblade.wms.pojo.entity.StGoods;
import org.springblade.wms.pojo.entity.StWmsRequest; import org.springblade.wms.pojo.entity.StWmsRequest;
import org.springblade.wms.pojo.vo.StWmsRequestVO; import org.springblade.wms.pojo.vo.StWmsRequestVO;
import org.springblade.wms.service.IStBuyOrderService; import org.springblade.wms.service.IStBuyOrderService;
import org.springblade.wms.service.IStGoodsService;
import org.springblade.wms.service.IStWmsRequestService; import org.springblade.wms.service.IStWmsRequestService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -225,19 +225,60 @@ public class StWmsRequestServiceImpl extends BaseServiceImpl<StWmsRequestMapper,
String excNote = (String) param.get("v_excnote"); String excNote = (String) param.get("v_excnote");
} }
// @Override @Override
// public boolean updateByErp(StWmsRequest stWmsRequest){ public boolean updateByErp(StWmsRequest stWmsRequest){
//// StBuyOrder stBuyOrder = stBuyOrderService.getById(stWmsRequest.getBoId()); StBuyOrder stBuyOrder = stBuyOrderService.getById(stWmsRequest.getBoId());
//// StGoods goods = stGoodsMapper.selectById(stBuyOrder.getGoodsId()); StGoods goods = stGoodsMapper.selectById(stBuyOrder.getGoodsId());
//// erpDataWmsClient.createOrReplace( StWmsRequest oldRequest = this.getById(stWmsRequest);
//// stBuyOrder.getExtraBill(), try {
//// goods.getGoodsCode(), erpDataWmsClient.createOrReplace(
//// "0", stBuyOrder.getExtraBill(),
//// stWmsRequest.getRequestQty(), goods.getGoodsCode(),
//// stWmsRequest.getRequestQty() "0",
//// ); oldRequest.getRequestQty(),
// return false; stWmsRequest.getRequestQty());
// } } catch (BusinessException e) {
throw new RuntimeException("仓库提请修改ERP失败:" + e.getMessage());
}
Double afterQty = stBuyOrder.getDrawQuantity() - oldRequest.getRequestQty() + stWmsRequest.getRequestQty();
stBuyOrder.setDrawQuantity(afterQty);
stBuyOrder.setSurDrawQty(stBuyOrder.getBuyQty() - afterQty);
stBuyOrderService.updateById(stBuyOrder);
this.updateById(stWmsRequest);
return true;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean deleteByErp(List<Long> deleteIds){
if (CollUtil.isNotEmpty(deleteIds)) {
for (Long id : deleteIds) {
StWmsRequest stWmsRequest = this.getById(id);
StBuyOrder stBuyOrder = stBuyOrderService.getById(stWmsRequest.getBoId());
StGoods goods = stGoodsMapper.selectById(stBuyOrder.getGoodsId());
if (stWmsRequest == null) continue;
try {
erpDataWmsClient.createOrReplace(
stBuyOrder.getExtraBill(),
goods.getGoodsCode(),
"1",
stWmsRequest.getRequestQty(),
0.0);
} catch (BusinessException e) {
throw new RuntimeException("删除模具计划失败:" + e.getMessage());
}
Double afterQty = stBuyOrder.getDrawQuantity() - stWmsRequest.getRequestQty();
stBuyOrder.setDrawQuantity(afterQty);
stBuyOrder.setSurDrawQty(stBuyOrder.getBuyQty() - afterQty);
stBuyOrderService.updateById(stBuyOrder);
}
}
return this.deleteLogic(deleteIds);
}
@Override @Override
public List<StWmsRequestExcel> exportStWmsRequest(Wrapper<StWmsRequest> queryWrapper) { public List<StWmsRequestExcel> exportStWmsRequest(Wrapper<StWmsRequest> queryWrapper) {

Loading…
Cancel
Save