diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/OemSettleAccountsApproval.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/OemSettleAccountsApproval.java index 044d59f7..23ba8440 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/OemSettleAccountsApproval.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/OemSettleAccountsApproval.java @@ -15,9 +15,9 @@ public class OemSettleAccountsApproval { /** * 结算单IDList */ - @Schema(description = "结算单IDList", required = true) + @Schema(description = "结算单IDStrList", required = true) @NotNull(message = "结算单ID不能为空") - private List ids; + private String ids; /** * 审批意见 */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/OemSettleAccountsSave.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/OemSettleAccountsSave.java index f9e36d9d..2fc813c8 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/OemSettleAccountsSave.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/OemSettleAccountsSave.java @@ -18,7 +18,7 @@ public class OemSettleAccountsSave { @DateTimeFormat(pattern = "yyyy-MM-dd") @Schema(description = "镀后入库时间") - @NotNull(message = "镀后入库时间不能为空") +// @NotNull(message = "镀后入库时间不能为空") private LocalDate putStoreDate; @Schema(description = "现执行价格") diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/StatementQuery.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/StatementQuery.java index cc2f8956..1ebfe4e4 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/StatementQuery.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/request/StatementQuery.java @@ -54,7 +54,7 @@ public class StatementQuery { * 工序IDS */ @Schema(description = "工序IDs(传字符串1,2,3,4)") - private String ppsIds; + private String psCode; /** * 外协厂商IDS */ diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ErpQueryRequest.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ErpQueryRequest.java new file mode 100644 index 00000000..b12b99b8 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ErpQueryRequest.java @@ -0,0 +1,23 @@ +package org.springblade.desk.quality.pojo.dto; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.Data; +import org.springblade.desk.quality.pojo.request.ReviewSheetErpSearch; + +@Data +public class ErpQueryRequest { + /** + * 当前页 + */ + private Integer current; + + /** + * 每页大小 + */ + private Integer size; + + /** + * 搜索条件 + */ + private ReviewSheetErpSearch search; +} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java index 3c26a7a4..ddcc24fe 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java @@ -1,13 +1,21 @@ package org.springblade.erpdata.feign; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; import org.springblade.common.constant.LauncherConstant; import org.springblade.core.tool.api.R; +import org.springblade.desk.quality.pojo.dto.ErpQueryRequest; +import org.springblade.desk.quality.pojo.dto.PpmReportDetailDTO; +import org.springblade.desk.quality.pojo.request.ReviewSheetErpSearch; import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; +import java.util.List; + /** * Feign接口类 * @@ -19,8 +27,9 @@ import org.springframework.web.bind.annotation.RequestParam; ) public interface IErpMesRbPkpqryClient { - String API_PREFIX = "/feign/erpdata/mesRbPkpqry/"; + String API_PREFIX = "/feign/client/mesRbPkpqry/"; String SELECT_PAGE = API_PREFIX + "selectPage"; + String LIST_ERP = API_PREFIX + "listerp"; /** * 查询配置结果 @@ -40,4 +49,7 @@ public interface IErpMesRbPkpqryClient { @RequestParam(value = "prtmdept", required = false) String prtmdept, @RequestParam(value = "subpkdateStart", required = false) String subpkdateStart, @RequestParam(value = "subpkdateEnd", required = false) String subpkdateEnd); + + @PostMapping(LIST_ERP) + List listErpNew(@RequestBody ErpQueryRequest erpQueryRequest); } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java index ef37d763..39774058 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java @@ -3,7 +3,13 @@ package org.springblade.erpdata.feign; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.tool.api.R; +import org.springblade.desk.quality.pojo.dto.ErpQueryRequest; +import org.springblade.desk.quality.pojo.dto.PpmReportDetailDTO; +import org.springblade.desk.quality.pojo.request.ReviewSheetErpSearch; import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; /** * Feign接口类 @@ -16,4 +22,11 @@ public class IErpMesRbPkpqryClientFallback implements IErpMesRbPkpqryClient { public R> selectPage(Integer current, Integer size, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { return R.fail("获取数据失败"); } + + @Override + public List listErpNew(@RequestBody ErpQueryRequest erpQueryRequest) { + return List.of(); + } + + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java index 3115eb9e..63f52255 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java @@ -1017,13 +1017,17 @@ public class IOrderBoxServiceImpl implements IOrderBoxService { return stationR; } Station station = (Station) stationR.getData(); + StationNameBoxBarcodeVO stationNameBoxBarcodeVO = new StationNameBoxBarcodeVO(); + stationNameBoxBarcodeVO.setStation(station); List taskList = taskService.list(new LambdaQueryWrapper().eq(Task::getStationId, station.getId()).orderByDesc(Task::getUpdateTime)); + if (taskList==null||taskList.size()==0) { + return R.data(stationNameBoxBarcodeVO); + } R boxbarcodeDetailsR = getBoxbarcodeDetails(taskList.get(0).getBoxBarcode()); if (!boxbarcodeDetailsR.isSuccess()) { return boxbarcodeDetailsR; } - StationNameBoxBarcodeVO stationNameBoxBarcodeVO = new StationNameBoxBarcodeVO(); - stationNameBoxBarcodeVO.setStation(station); + stationNameBoxBarcodeVO.setBoxbarcodeDetailsVO((BoxbarcodeDetailsVO) boxbarcodeDetailsR.getData()); return R.data(stationNameBoxBarcodeVO); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemProcessController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemProcessController.java index f4853bcd..c6ebad31 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemProcessController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemProcessController.java @@ -15,7 +15,10 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.basic.pojo.entity.Oem; +import org.springblade.desk.basic.pojo.vo.OemVO; import org.springblade.desk.basic.util.ExcelExtUtil; +import org.springblade.desk.basic.wrapper.OemWrapper; import org.springblade.desk.device.pojo.entity.MeasurementRecordsEntity; import org.springblade.desk.oem.pojo.excel.OemAndAbilityImport; import org.springblade.desk.oem.pojo.excel.OemMeritsExcel; @@ -69,6 +72,20 @@ public class OemProcessController extends BladeController { return R.data(OemProcessWrapper.build().entityVO(detail)); } + /** + * 外协工序下拉选择 + * + * @return + */ + @GetMapping("/listForSelect") + @ApiOperationSupport(order = 2) + @Operation(summary = "list下拉选择", description = "") + public R> listForSelect() { + List list = mesOemProcessService.list(); + List listVO = OemProcessWrapper.build().listVO(list); + return R.data(listVO); + } + /** * 外协工序 自定义分页 */ diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStatementController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStatementController.java index 387124a4..bacda0c8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStatementController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemStatementController.java @@ -123,8 +123,8 @@ public class OemStatementController extends BladeController { @ApiOperationSupport(order = 8) @Operation(summary = "外协手动结算", description = "") @ApiLog("外协手动结算") - public R oemSettleAccounts(@Valid @RequestBody OemSettleAccountsSave oemSettleAccountsSave) { - return mesOemStatementService.oemSettleAccounts(oemSettleAccountsSave.getStatementList(), oemSettleAccountsSave.getPrice(), oemSettleAccountsSave.getPutStoreDate()); + public R oemManualSettlement(@Valid @RequestBody OemSettleAccountsSave oemSettleAccountsSave) { + return mesOemStatementService.oemManualSettlement(oemSettleAccountsSave.getStatementList(), oemSettleAccountsSave.getPrice()); } /** diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml index bb03b721..47831eb6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml @@ -194,9 +194,9 @@ #{id} - - AND g.ID IN - + AND g.oem_process_code IN + #{id} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java index 45485a51..467f4815 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java @@ -48,7 +48,7 @@ public interface IOemStatementService extends BaseService { * @param putStoreDate 镀后入库时间 * @return */ - R oemSettleAccounts(List statementVOS, BigDecimal price, LocalDate putStoreDate); + R oemManualSettlement(List statementVOS, BigDecimal price); /** * 外协自动结算 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java index 64579f2f..5bf9343d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.annotation.Resource; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.Func; import org.springblade.desk.oem.mapper.PlatingTypeRulesMapper; import org.springblade.desk.oem.pojo.entity.OemStatementEntity; import org.springblade.desk.oem.pojo.entity.PlatingTypeRulesEntity; @@ -68,6 +69,44 @@ public class OemStatementServiceImpl extends BaseServiceImpl statementVOS, BigDecimal price) { + // 初始化成功和失败计数器 + AtomicInteger totalSuccess = new AtomicInteger(0); + AtomicInteger totalError = new AtomicInteger(0); + //按照镀后入库日期分组后,调用结算方法 + Map> groupedMap = statementVOS.stream() + .filter(vo -> vo.getPutStoreTime() != null && !vo.getPutStoreTime().trim().isEmpty()) + .collect(Collectors.groupingBy(StatementVO::getPutStoreTime)); + groupedMap.entrySet().forEach(stringListEntry -> { + R result = oemSettleAccounts(stringListEntry.getValue(), price, LocalDate.parse(stringListEntry.getKey())); + + if (result != null && result.isSuccess()) { + Map data = (Map) result.getData(); + if (data != null) { + Object successObj = data.get("success"); + Object errorObj = data.get("error"); + + if (successObj instanceof Integer) { + totalSuccess.addAndGet((Integer) successObj); + } else if (successObj instanceof Number) { + totalSuccess.addAndGet(((Number) successObj).intValue()); + } + + if (errorObj instanceof Integer) { + totalError.addAndGet((Integer) errorObj); + } else if (errorObj instanceof Number) { + totalError.addAndGet(((Number) errorObj).intValue()); + } + } + } + }); + + return R.data(Map.of( + "success", totalSuccess.get(), + "error", totalError.get() + )); + } + public R oemSettleAccounts(List statementVOS, BigDecimal price, LocalDate putStoreDate) { // 定义计数器 AtomicInteger countSuccess = new AtomicInteger(0); @@ -110,7 +149,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl { statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】匹配无报价记录", oemName)); + statementVO.setMemo(String.format("外协厂商【%s】-未找到报价", oemName)); }); } else { //工序分组Map<工序, 报价列表> @@ -209,13 +248,83 @@ public class OemStatementServiceImpl extends BaseServiceImpl priceSheetAllList = getPriceSheets(oemName); +// List priceSheetAllList = getPriceSheets(oemName); + //假数据测试用 + List priceSheetAllList = new ArrayList<>(); + PriceSheetVO priceSheet1 = new PriceSheetVO(); + priceSheet1.setPrice("60"); + priceSheet1.setSplyname(oemName); + priceSheet1.setPrtum("件"); + priceSheet1.setWono("WO-N2510424439-R002"); + priceSheet1.setSeqid("GXJG-20250228018"); + priceSheet1.setGxinfo("玻璃封接电化学抛光"); + priceSheet1.setStartdat("2026-01-15"); + priceSheetAllList.add(priceSheet1); + PriceSheetVO priceSheet2 = new PriceSheetVO(); + priceSheet2.setPrice("26"); + priceSheet2.setSplyname(oemName); + priceSheet2.setPrtum("件"); + priceSheet2.setSeqid("GXJG-20250228012"); + priceSheet2.setGxinfo("玻璃封接电镀去氧化皮"); + priceSheet2.setPrtlotno("JI和JHT"); + priceSheet2.setStairflag("单批阶梯价(按单件面积)"); + priceSheet2.setLower("5"); + priceSheet2.setUpper("0"); + priceSheet2.setPrtno("21E6-575-10724-%螺母"); + priceSheet2.setStartdat("2026-01-15"); + priceSheetAllList.add(priceSheet2); + PriceSheetVO priceSheet3 = new PriceSheetVO(); + priceSheet3.setPrice("34"); + priceSheet3.setSplyname(oemName); + priceSheet3.setPrtum("件"); + priceSheet3.setSeqid("GXJG-20250228012"); + priceSheet3.setGxinfo("玻璃封接电镀去氧化皮"); + priceSheet3.setPrtlotno("JI和JHT"); + priceSheet3.setStairflag("单批阶梯价(按单件面积)"); + priceSheet3.setLower("10"); + priceSheet3.setUpper("5.00001"); + priceSheet3.setPrtno("21E6-575-10724-%螺母"); + priceSheet3.setStartdat("2026-01-15"); + priceSheetAllList.add(priceSheet3); + PriceSheetVO priceSheet4 = new PriceSheetVO(); + priceSheet4.setPrice("15"); + priceSheet4.setSplyname(oemName); + priceSheet4.setPrtum("件"); + priceSheet4.setSeqid("GXJG-20250228012"); + priceSheet4.setGxinfo("玻璃封接电镀去氧化皮"); + priceSheet4.setPrtlotno("JHT"); + priceSheet4.setStairflag("非阶梯价"); + priceSheet4.setPrtno("21E6-575-10724-%螺母"); + priceSheet4.setStartdat("2026-01-15"); + priceSheetAllList.add(priceSheet4); + PriceSheetVO priceSheet5 = new PriceSheetVO(); + priceSheet5.setPrice("99"); + priceSheet5.setSplyname(oemName); + priceSheet5.setPrtum("件"); + priceSheet5.setSeqid("GXJG-20250228012"); + priceSheet5.setGxinfo("玻璃封接电镀去氧化皮"); + priceSheet5.setStairflag("非阶梯价"); + priceSheet5.setPrtno("21E6-575-10724-%螺母"); + priceSheet5.setRemark("氰化亚金钾380.01-400元/克(未税)"); + priceSheet5.setStartdat("2026-01-15"); + priceSheetAllList.add(priceSheet5); + PriceSheetVO priceSheet6 = new PriceSheetVO(); + priceSheet6.setPrice("200"); + priceSheet6.setSplyname(oemName); + priceSheet6.setPrtum("件"); + priceSheet6.setSeqid("GXJG-20250228012"); + priceSheet6.setGxinfo("玻璃封接电镀去氧化皮"); + priceSheet6.setStairflag("非阶梯价"); + priceSheet6.setPrtno("21E6-575-10724-%螺母"); + priceSheet6.setRemark("氰化亚金钾400.01-500元/克(未税)"); + priceSheet6.setStartdat("2026-01-16"); + priceSheetAllList.add(priceSheet6); if (priceSheetAllList.isEmpty()) { //【结算异常】 statementVOList.forEach(statementVO -> { statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】匹配无报价记录", oemName)); + statementVO.setMemo(String.format("外协厂商【%s】-未找到报价", oemName)); }); } else { //工序分组Map<工序, 报价列表> @@ -292,76 +401,76 @@ public class OemStatementServiceImpl extends BaseServiceImpl priceSheetAllList = getPriceSheets(oemName, putStoreDate); +// List priceSheetAllList = getPriceSheets(oemName, putStoreDate); //假数据测试用 -// List priceSheetAllList = new ArrayList<>(); -// PriceSheetVO priceSheet1 = new PriceSheetVO(); -// priceSheet1.setPrice("60"); -// priceSheet1.setSplyname(oemName); -// priceSheet1.setPrtum("件"); -// priceSheet1.setWono("WO-N2510424439-R002"); -// priceSheet1.setSeqid("GXJG-20250228018"); -// priceSheet1.setGxinfo("玻璃封接电化学抛光"); -// priceSheetAllList.add(priceSheet1); -// PriceSheetVO priceSheet2 = new PriceSheetVO(); -// priceSheet2.setPrice("26"); -// priceSheet2.setSplyname(oemName); -// priceSheet2.setPrtum("件"); -// priceSheet2.setSeqid("GXJG-20250228012"); -// priceSheet2.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet2.setPrtlotno("JI和JHT"); -// priceSheet2.setStairflag("单批阶梯价(按单件面积)"); -// priceSheet2.setLower("5"); -// priceSheet2.setUpper("0"); -// priceSheet2.setPrtno("21E6-575-10724-%螺母"); -// priceSheetAllList.add(priceSheet2); -// PriceSheetVO priceSheet3 = new PriceSheetVO(); -// priceSheet3.setPrice("34"); -// priceSheet3.setSplyname(oemName); -// priceSheet3.setPrtum("件"); -// priceSheet3.setSeqid("GXJG-20250228012"); -// priceSheet3.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet3.setPrtlotno("JI和JHT"); -// priceSheet3.setStairflag("单批阶梯价(按单件面积)"); -// priceSheet3.setLower("10"); -// priceSheet3.setUpper("5.00001"); -// priceSheet3.setPrtno("21E6-575-10724-%螺母"); -// priceSheetAllList.add(priceSheet3); -// PriceSheetVO priceSheet4 = new PriceSheetVO(); -// priceSheet4.setPrice("15"); -// priceSheet4.setSplyname(oemName); -// priceSheet4.setPrtum("件"); -// priceSheet4.setSeqid("GXJG-20250228012"); -// priceSheet4.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet4.setPrtlotno("JHT"); -// priceSheet4.setStairflag("非阶梯价"); -// priceSheet4.setPrtno("21E6-575-10724-%螺母"); -// priceSheetAllList.add(priceSheet4); -// PriceSheetVO priceSheet5 = new PriceSheetVO(); -// priceSheet5.setPrice("99"); -// priceSheet5.setSplyname(oemName); -// priceSheet5.setPrtum("件"); -// priceSheet5.setSeqid("GXJG-20250228012"); -// priceSheet5.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet5.setStairflag("非阶梯价"); -// priceSheet5.setPrtno("21E6-575-10724-%螺母"); -// priceSheet5.setRemark("氰化亚金钾380.01-400元/克(未税)"); -// priceSheetAllList.add(priceSheet5); -// PriceSheetVO priceSheet6 = new PriceSheetVO(); -// priceSheet6.setPrice("200"); -// priceSheet6.setSplyname(oemName); -// priceSheet6.setPrtum("件"); -// priceSheet6.setSeqid("GXJG-20250228012"); -// priceSheet6.setGxinfo("玻璃封接电镀去氧化皮"); -// priceSheet6.setStairflag("非阶梯价"); -// priceSheet6.setPrtno("21E6-575-10724-%螺母"); -// priceSheet6.setRemark("氰化亚金钾400.01-500元/克(未税)"); -// priceSheetAllList.add(priceSheet6); + List priceSheetAllList = new ArrayList<>(); + PriceSheetVO priceSheet1 = new PriceSheetVO(); + priceSheet1.setPrice("60"); + priceSheet1.setSplyname(oemName); + priceSheet1.setPrtum("件"); + priceSheet1.setWono("WO-N2510424439-R002"); + priceSheet1.setSeqid("GXJG-20250228018"); + priceSheet1.setGxinfo("玻璃封接电化学抛光"); + priceSheetAllList.add(priceSheet1); + PriceSheetVO priceSheet2 = new PriceSheetVO(); + priceSheet2.setPrice("26"); + priceSheet2.setSplyname(oemName); + priceSheet2.setPrtum("件"); + priceSheet2.setSeqid("GXJG-20250228012"); + priceSheet2.setGxinfo("玻璃封接电镀去氧化皮"); + priceSheet2.setPrtlotno("JI和JHT"); + priceSheet2.setStairflag("单批阶梯价(按单件面积)"); + priceSheet2.setLower("5"); + priceSheet2.setUpper("0"); + priceSheet2.setPrtno("21E6-575-10724-%螺母"); + priceSheetAllList.add(priceSheet2); + PriceSheetVO priceSheet3 = new PriceSheetVO(); + priceSheet3.setPrice("34"); + priceSheet3.setSplyname(oemName); + priceSheet3.setPrtum("件"); + priceSheet3.setSeqid("GXJG-20250228012"); + priceSheet3.setGxinfo("玻璃封接电镀去氧化皮"); + priceSheet3.setPrtlotno("JI和JHT"); + priceSheet3.setStairflag("单批阶梯价(按单件面积)"); + priceSheet3.setLower("10"); + priceSheet3.setUpper("5.00001"); + priceSheet3.setPrtno("21E6-575-10724-%螺母"); + priceSheetAllList.add(priceSheet3); + PriceSheetVO priceSheet4 = new PriceSheetVO(); + priceSheet4.setPrice("15"); + priceSheet4.setSplyname(oemName); + priceSheet4.setPrtum("件"); + priceSheet4.setSeqid("GXJG-20250228012"); + priceSheet4.setGxinfo("玻璃封接电镀去氧化皮"); + priceSheet4.setPrtlotno("JHT"); + priceSheet4.setStairflag("非阶梯价"); + priceSheet4.setPrtno("21E6-575-10724-%螺母"); + priceSheetAllList.add(priceSheet4); + PriceSheetVO priceSheet5 = new PriceSheetVO(); + priceSheet5.setPrice("99"); + priceSheet5.setSplyname(oemName); + priceSheet5.setPrtum("件"); + priceSheet5.setSeqid("GXJG-20250228012"); + priceSheet5.setGxinfo("玻璃封接电镀去氧化皮"); + priceSheet5.setStairflag("非阶梯价"); + priceSheet5.setPrtno("21E6-575-10724-%螺母"); + priceSheet5.setRemark("氰化亚金钾380.01-400元/克(未税)"); + priceSheetAllList.add(priceSheet5); + PriceSheetVO priceSheet6 = new PriceSheetVO(); + priceSheet6.setPrice("200"); + priceSheet6.setSplyname(oemName); + priceSheet6.setPrtum("件"); + priceSheet6.setSeqid("GXJG-20250228012"); + priceSheet6.setGxinfo("玻璃封接电镀去氧化皮"); + priceSheet6.setStairflag("非阶梯价"); + priceSheet6.setPrtno("21E6-575-10724-%螺母"); + priceSheet6.setRemark("氰化亚金钾400.01-500元/克(未税)"); + priceSheetAllList.add(priceSheet6); if (priceSheetAllList.isEmpty()) { // 【结算异常】 statementVOList.forEach(statementVO -> { statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】匹配无报价记录", oemName)); + statementVO.setMemo(String.format("外协厂商【%s】-未找到报价", oemName)); }); } else { // 2. 工序分组Map<工序, 报价列表> @@ -435,7 +544,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl ids = oemSettleAccountsApproval.getIds(); + List ids = Func.toLongList(oemSettleAccountsApproval.getIds()); if (CollectionUtils.isEmpty(ids)) { return R.fail("未选取结算单"); } @@ -568,7 +677,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl 1 && flag) { statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,工作订单号【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), statementVO.getWoCode())); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,工作订单号【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), statementVO.getWoCode())); //结算异常:多条报价记录结算结果 return true; } @@ -621,7 +730,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl 1 && flag) { //结算异常:多条报价记录结算结果 statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂箭头数量【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), tjtNum)); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂箭头数量【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), tjtNum)); return true; } //唯一使用此报价单**结算** @@ -758,7 +867,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl 1 && flag) { //结算异常:多条报价记录结算结果 statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂色带数量【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), tsdNum)); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂色带数量【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), tsdNum)); return true; } //唯一使用此报价单**结算** @@ -772,7 +881,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl 1 && flag) { //结算异常:多条报价记录结算结果 statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂色标数量【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), tsbNum)); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,涂色标数量【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), tsbNum)); return true; } //唯一使用此报价单**结算** @@ -792,7 +901,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl 1) { //结算异常:多条报价记录结算结果 statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,物料号匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName())); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,物料号-报价不唯一", statementVO.getOcName(), statementVO.getPartName())); return true; } else { //结算异常:无报价记录结算结果 statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,物料号匹配无报价记录", statementVO.getOcName(), statementVO.getPartName())); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,物料号-未找到报价", statementVO.getOcName(), statementVO.getPartName())); return true; } } @@ -951,7 +1060,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl 1) { statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价类型【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), String.join(", ", StairPriceSheetMap.keySet()))); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价类型【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), String.join(", ", StairPriceSheetMap.keySet()))); return true; } else if (StairPriceSheetMap.keySet().size() < 1) { statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价匹配无报价记录", statementVO.getOcName(), statementVO.getPartName())); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价-未找到报价", statementVO.getOcName(), statementVO.getPartName())); return true; } if (StairPriceSheetMap.keySet().contains("非阶梯价")) { @@ -990,11 +1099,11 @@ public class OemStatementServiceImpl extends BaseServiceImpl priceSheetVOS = StairPriceSheetMap.get("非阶梯价"); if (null == priceSheetVOS || priceSheetVOS.isEmpty()) { statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】匹配无报价记录", statementVO.getOcName(), statementVO.getPartName(), "非阶梯价")); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】-未找到报价", statementVO.getOcName(), statementVO.getPartName(), "非阶梯价")); return true; } else if (null != priceSheetVOS && priceSheetVOS.size() > 1 && flag) { statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), "非阶梯价")); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), "非阶梯价")); return true; } //唯一使用此报价单**结算** @@ -1028,7 +1137,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl 1 && flag) { statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单件面积)")); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单件面积)")); return true; } else if ((null != priceSheetVOList && priceSheetVOList.size() == 1) || (!flag && null != priceSheetVOList && priceSheetVOList.size() > 1)) { //唯一使用此报价单**结算** @@ -1045,7 +1154,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl 1 && flag) { statementVO.setRosStatus(StatementVO.ERR_SETTLEMENT); - statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】匹配多条报价记录", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单批面积)")); + statementVO.setMemo(String.format("外协厂商【%s】,工序内容【%s】,阶梯价【%s】-报价不唯一", statementVO.getOcName(), statementVO.getPartName(), "单批阶梯价(按单批面积)")); return true; } else if (null != priceSheetVOList && priceSheetVOList.size() == 1 || (!flag && null != priceSheetVOList && priceSheetVOList.size() > 1)) { //唯一使用此报价单**结算** @@ -1085,14 +1194,14 @@ public class OemStatementServiceImpl extends BaseServiceImpl implements IReviewSheetService { - + @Value("${request.newErp.url}") + private String newErpUrl; @Resource private IInspectionTaskService taskService; @Resource @@ -91,6 +96,8 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl selectReviewSheetPage(IPage page, ReviewSheetDetailVO reviewSheet) { @@ -427,7 +434,10 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl responseEntity; JSONObject responseBody; try { - responseEntity = httpClientTemplate.postForEntity("http://192.168.119.68:10113" + +// responseEntity = httpClientTemplate.postForEntity("http://192.168.119.68:10113" + +// "/api/mms/qms/qmsrepairapply/qmsRepairApplyRest/saveQmsRepairApply/v1", entity, JSONObject.class); + + responseEntity = httpClientTemplate.postForEntity(newErpUrl + "/api/mms/qms/qmsrepairapply/qmsRepairApplyRest/saveQmsRepairApply/v1", entity, JSONObject.class); JSONObject result = responseEntity.getBody(); @@ -545,7 +555,12 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl listErp(IPage page, ReviewSheetErpSearch search) { - List listVO = baseMapper.listErpNew(page, search); +// List listVO = baseMapper.listErpNew(page, search); + ErpQueryRequest erpQueryRequest = new ErpQueryRequest(); + erpQueryRequest.setCurrent(Integer.parseInt(page.getCurrent()+"")); + erpQueryRequest.setSize(Integer.parseInt(page.getSize()+"")); + erpQueryRequest.setSearch(search); + List listVO = erpMesRbPkpqryClient.listErpNew(erpQueryRequest); for (PpmReportDetailDTO oneVO : listVO) { oneVO.setSheetNo(oneVO.getCode()); oneVO.setP5layer1(oneVO.getP5layer1()); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/JobExtUtil.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/JobExtUtil.java index 57b75e83..92b391e8 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/JobExtUtil.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/quality/util/JobExtUtil.java @@ -159,31 +159,32 @@ public class JobExtUtil { } else if (type == YEAR) { String config = je.getJobTypeYearValue(); - // 获取当月最后一天 - LocalDate lastLD = LocalDate.of(today.getYear(), today.getMonth(), 1) - .with(TemporalAdjusters.lastDayOfMonth()); - log.info("当月最后一天:{}", lastLD); - // 当月最多多少天 - Integer maxDay = lastLD.getDayOfMonth(); - - - //如果超了就设置为最后一天 - List list = Arrays.asList(config.split(",")); - String str = ""; - for(String one : list){ - - String m = one.substring(0, 2); - String d = one.substring(2); - - int month = Integer.parseInt(one.substring(0, 2)); - int day = Integer.parseInt(one.substring(2)); - if(day>maxDay){ - day = maxDay; - d = day+""; - } - str = str+m+""+d+","; - } - str = str.substring(0,str.length()-1); +// // 获取当月最后一天 +// LocalDate lastLD = LocalDate.of(today.getYear(), today.getMonth(), 1) +// .with(TemporalAdjusters.lastDayOfMonth()); +// log.info("当月最后一天:{}", lastLD); +// // 当月最多多少天 +// Integer maxDay = lastLD.getDayOfMonth(); +// +// +// //如果超了就设置为最后一天 +// List list = Arrays.asList(config.split(",")); +// String str = ""; +// for(String one : list){ +// +// String m = one.substring(0, 2); +// String d = one.substring(2); +// +// int month = Integer.parseInt(one.substring(0, 2)); +// int day = Integer.parseInt(one.substring(2)); +// if(day>maxDay){ +// day = maxDay; +// d = day+""; +// } +// str = str+m+""+d+","; +// } +// str = str.substring(0,str.length()-1); + String str = config; // 解析配置为年度目标日期(MonthDay 仅存月+日,不关联年份) Set targetMonthDays = Arrays.stream(str.split(",")) .map(String::trim) diff --git a/blade-service/blade-desk/src/main/resources/application-dev.yml b/blade-service/blade-desk/src/main/resources/application-dev.yml index f15508f6..67407e76 100644 --- a/blade-service/blade-desk/src/main/resources/application-dev.yml +++ b/blade-service/blade-desk/src/main/resources/application-dev.yml @@ -47,6 +47,8 @@ role-config: sj-checker-alias: "rb_checker" request: + newErp: + url: "http://192.168.119.68:10113" #用水用电接口请求地址(iot) iot: #热表分厂组织id(部门id) diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java index 223b7828..3f7ed11b 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java @@ -2,17 +2,26 @@ package org.springblade.erpdata.feign; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.v3.oas.annotations.Hidden; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; +import org.springblade.desk.quality.pojo.dto.ErpQueryRequest; +import org.springblade.desk.quality.pojo.dto.PpmReportDetailDTO; +import org.springblade.desk.quality.pojo.request.ReviewSheetErpSearch; +import org.springblade.erpdata.mapper.ErpMesRbPkpqryMapper; import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; import org.springblade.erpdata.service.IErpMesRbPkpqryService; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + /** * 字典服务Feign实现类 @@ -27,6 +36,8 @@ public class ErpMesRbPkpqryClient implements IErpMesRbPkpqryClient { private final IErpMesRbPkpqryService mesRbPkpqryService; + private final ErpMesRbPkpqryMapper erpMesRbPkpqryMapper; + @GetMapping(SELECT_PAGE) @Override public R> selectPage(Integer current, Integer size, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { @@ -35,4 +46,15 @@ public class ErpMesRbPkpqryClient implements IErpMesRbPkpqryClient { query.setSize(size); return R.data(mesRbPkpqryService.page(Condition.getPage(query), pkno, prtmdept, subpkdateStart, subpkdateEnd)); } + + @Override + public List listErpNew(ErpQueryRequest erpQueryRequest) { + + IPage page = new Page<>(erpQueryRequest.getCurrent(), erpQueryRequest.getSize()); + List result = erpMesRbPkpqryMapper.listErpNew(page, erpQueryRequest.getSearch()); + + return result; + } + + } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.java index c5512a9a..abe48127 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.java @@ -2,6 +2,9 @@ package org.springblade.erpdata.mapper; import com.baomidou.mybatisplus.core.mapper.Mapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.desk.quality.pojo.dto.PpmReportDetailDTO; +import org.springblade.desk.quality.pojo.request.ReviewSheetErpSearch; import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; import java.util.List; @@ -24,4 +27,7 @@ public interface ErpMesRbPkpqryMapper extends Mapper { * @return */ List selectPage(IPage page, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd); + + List listErpNew(IPage page, + @Param("q") ReviewSheetErpSearch search); } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.xml index cb5cb242..ccffb33e 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.xml +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.xml @@ -19,4 +19,23 @@ + + + +