diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasurementRecordsEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasurementRecordsEntity.java index fee9d1d9..7c17d09f 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasurementRecordsEntity.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/device/pojo/entity/MeasurementRecordsEntity.java @@ -19,122 +19,122 @@ import java.util.Date; @EqualsAndHashCode(callSuper = true) public class MeasurementRecordsEntity extends BaseEntity { @Schema(name = "名称(设备名称)") - //@Column(name = "mc_name") + //@Column(name = "MC_NAME") private String mcName; @Schema(name = "规格") - //@Column(name = "norms") + //@Column(name = "NORMS") private String norms; @Schema(name = "类别(管理类别)") - //@Column(name = "mc_class") + //@Column(name = "MC_CLASS") private String mcClass; @Schema(name = "计量类型") - //@Column(name = "label_no") + //@Column(name = "LABEL_NO") private String labelNo; @Schema(name = "计量子类型") - //@Column(name = "str2") + //@Column(name = "STR2") private String str2; @Schema(name = "编号(测量设备编码)") - //@Column(name = "mc_code") + //@Column(name = "MC_CODE") private String mcCode; @Schema(name = "使用单位(试用部门)") - //@Column(name = "use_unit") + //@Column(name = "USE_UNIT") private String useUnit; @Schema(name = "精度(精度等级)") - //@Column(name = "accuracy") + //@Column(name = "ACCURACY") private String accuracy; @Schema(name = "出厂编号") - //@Column(name = "oem_code") + //@Column(name = "OEM_CODE") private String oemCode; @Schema(name = "生产厂家(制造厂商)") - //@Column(name = "mc_oem") + //@Column(name = "MC_OEM") private String mcOem; @Schema(name = "启用日期") - //@Column(name = "enable_date") + //@Column(name = "ENABLE_DATE") private Date enableDate; @Schema(name = "检定日期") - //@Column(name = "when_dccept") + //@Column(name = "WHEN_DCCEPT") private String whenDccept; @Schema(name = "型号(型号)") - //@Column(name = "mc_type") + //@Column(name = "MC_TYPE") private String mcType; @Schema(name = "检定周期(检定周期)") - //@Column(name = "test_cycle") + //@Column(name = "TEST_CYCLE") private Integer testCycle; @Schema(name = "到期日期(有效日期)") - //@Column(name = "due_date") + //@Column(name = "DUE_DATE") private Date dueDate; @Schema(name = "报废日期") - //@Column(name = "date2") + //@Column(name = "DATE2") private Date date2; @Schema(name = "状态") - //@Column(name = "belong") + //@Column(name = "BELONG") private String belong; @Schema(name = "停用日期") - //@Column(name = "when_buy") + //@Column(name = "WHEN_BUY") private Date whenBuy; @Schema(name = "检定部门") - //@Column(name = "test_dept") + //@Column(name = "TEST_DEPT") private String testDept; @Schema(name = "检定/校验方法(检定校准方法)") - //@Column(name = "test_method") + //@Column(name = "TEST_METHOD") private String testMethod; @Schema(name = "备注") - //@Column(name = "str9") + //@Column(name = "STR9") private String str9; @Schema(name = "备注2") - //@Column(name = "str10") + //@Column(name = "STR10") private String str10; @Schema(name = "使用人工号") - //@Column(name = "assets_no") + //@Column(name = "ASSETS_NO") private String assetsNo; @Schema(name = "责任人") - //@Column(name = "str6") + //@Column(name = "STR6") private String str6; @Schema(name = "用途分类") - //@Column(name = "purpose_class") + //@Column(name = "PURPOSE_CLASS") private String purposeClass; @Schema(name = "超期情况") - //@Column(name = "is_over_str") + //@Column(name = "IS_OVER_STR") private String isOverStr; @Schema(name = "类型", title = "1、仪表计量;2、设备计量") - //@Column(name = "cm_type") + //@Column(name = "CM_TYPE") private Short cmType; @Schema(name = "是否送检", title = "1:是,0:否") - //@Column(name = "censorship") + //@Column(name = "CENSORSHIP") private Boolean censorship; @Schema(name = "检验状态", title = "1:在检,0:未检") - //@Column(name = "check_status") + //@Column(name = "CHECK_STATUS") private Boolean checkStatus; @Schema(name = "检验结果", title = "1:合格,0:不合格") - //@Column(name = "check_result") + //@Column(name = "CHECK_RESULT") private Boolean checkResult; } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/enums/ProcessCycleEnum.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/enums/ProcessCycleEnum.java new file mode 100644 index 00000000..726860e8 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/enums/ProcessCycleEnum.java @@ -0,0 +1,48 @@ +package org.springblade.desk.produce.pojo.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 加工周期枚举 + * + * @author qyl + * @serial 2026年2月28日 + */ +@Getter +@AllArgsConstructor +public enum ProcessCycleEnum { + + /** + * 加工周期(外协)+ + */ + BC_TYPE_CYCLE_OEM(5), + /** + * 加工周期(协作)+ + */ + BC_TYPE_CYCLE_HELP(5), + /** + * 加工周期(热表)+ + */ + BC_TYPE_CYCLE_HEAT(5), + /** + * 加工周期(烧结)+ + */ + BC_TYPE_CYCLE_SIN_TER(5), + /** + * 加工周期(玻璃饼)+ + */ + BC_TYPE_CYCLE_SIN_BL(5), + /** + * 加工周期(模具)+ + */ + BC_TYPE_CYCLE_SIN_MJ(5), + /** + * 加工周期(金属件)+ + */ + BC_TYPE_CYCLE_SIN_JS(5), + ; + + final Integer value; + +} \ No newline at end of file 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 d27d7f48..eab68e01 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 @@ -119,8 +119,8 @@ LEFT JOIN MES_OEM_STATEMENT h ON h.WP_ID = a.ID INNER JOIN BS_CRAFT_ABILITY I on I.ID = a.CA_ID WHERE d.PUT_STORE_TIME is not null - AND (g.craft_ids like '%'||i.ID||'%' or g.craft_ids is null) - /*and ((g.bop_name in ('浸保护剂','除镀层','清洗(返修)') and e.po_code not like 'W%') OR g.bop_name not in + /*AND (g.craft_ids like '%'||i.ID||'%' or g.craft_ids is null) + and ((g.bop_name in ('浸保护剂','除镀层','清洗(返修)') and e.po_code not like 'W%') OR g.bop_name not in ('浸保护剂','除镀层','清洗(返修)'))*/ AND ((h.ROS_STATUS IS NOT NULL) OR ( a.ID NOT IN ( SELECT WP_ID FROM MES_OEM_STATEMENT))) 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 c74d3109..a1a44e4b 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 @@ -1,6 +1,7 @@ package org.springblade.desk.oem.service; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.springblade.core.tool.api.R; import org.springblade.desk.oem.pojo.entity.OemStatementEntity; import org.springblade.desk.oem.pojo.excel.OemStatementExcel; import org.springblade.desk.oem.pojo.request.StatementQuery; @@ -9,6 +10,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; import org.springblade.desk.oem.pojo.vo.StatementVO; +import java.math.BigDecimal; +import java.time.LocalDate; import java.util.List; /** @@ -36,4 +39,13 @@ public interface IOemStatementService extends BaseService { */ List exportOemStatement(Wrapper queryWrapper); + /** + * 外协结算 + * + * @param statementVOS 结算单(以车间执行计划为主表) + * @param price 金价 + * @param putStoreDate 镀后入库时间 + * @return + */ + R oemSettleAccounts(List statementVOS, BigDecimal price, LocalDate putStoreDate); } 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 434dae97..5098ce2c 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 @@ -1,18 +1,30 @@ package org.springblade.desk.oem.service.impl; +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.desk.dashboard.utils.DateUtils; import org.springblade.desk.oem.pojo.entity.OemStatementEntity; import org.springblade.desk.oem.pojo.excel.OemStatementExcel; +import org.springblade.desk.oem.pojo.request.PriceSheetQuery; import org.springblade.desk.oem.pojo.request.StatementQuery; import org.springblade.desk.oem.pojo.vo.OemStatementVO; import org.springblade.desk.oem.mapper.OemStatementMapper; +import org.springblade.desk.oem.pojo.vo.PriceSheetVO; import org.springblade.desk.oem.pojo.vo.StatementVO; import org.springblade.desk.oem.service.IOemStatementService; +import org.springblade.erpdata.feign.IErpDataOemClient; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseServiceImpl; +import java.math.BigDecimal; +import java.time.LocalDate; import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; /** * 外协结算单 服务实现类 @@ -23,6 +35,9 @@ import java.util.List; @Service public class OemStatementServiceImpl extends BaseServiceImpl implements IOemStatementService { + @Resource + private IErpDataOemClient erpDataOemClient; + @Override public IPage selectOemStatementPage(IPage page, StatementQuery mesOemStatement) { return page.setRecords(baseMapper.selectOemStatementPage(page, mesOemStatement)); @@ -38,4 +53,33 @@ public class OemStatementServiceImpl extends BaseServiceImpl statementVOS, BigDecimal price, LocalDate putStoreDate) { + //以外协厂商分组的Map<厂家代码, 待结算工序结算单列表> + Map> oemAndStatementMap = statementVOS.stream().collect(Collectors.groupingBy(StatementVO::getOemCode)); + for (Map.Entry> listEntry : oemAndStatementMap.entrySet()) { + //外协厂商下全部需要结算的结算单 + List statementVOList = listEntry.getValue(); + + //以外协代码,日期查出的全部报价单 + String oemCode = listEntry.getKey(); + PriceSheetQuery query = new PriceSheetQuery(); + query.setOcCode(oemCode); + query.setInDateStart(putStoreDate); + query.setInDateEnd(putStoreDate); + R> pageR = erpDataOemClient.priceSheetData(query, new Query() {{ + setSize(99999); + }}); + //外协厂商下规定日期内的全部报价单 + List priceSheetVOList = null; + if (pageR != null && pageR.getData() != null && pageR.getData().getRecords() != null && pageR.getData().getRecords().size() > 0) { + priceSheetVOList = pageR.getData().getRecords(); + } + statementVOList.forEach(statementVO -> { + + }); + } + return null; + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java index 9c93ce23..df875dc7 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java @@ -28,9 +28,11 @@ import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.pojo.enums.YieldOrderEnum; import org.springblade.desk.produce.mapper.*; import org.springblade.desk.produce.pojo.entity.*; +import org.springblade.desk.produce.pojo.enums.ProcessCycleEnum; import org.springblade.desk.produce.service.IPlateAroundService; import org.springblade.desk.produce.service.IWorkOrderRunService; import org.springblade.desk.produce.service.IWorkOrderService; +import org.springblade.erpdata.feign.IErpDataOemClient; import org.springblade.system.cache.DictCache; import org.springblade.system.pojo.enums.DictEnum; import org.springframework.context.annotation.Lazy; @@ -79,6 +81,8 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl workPlans = workPlanMapper.selectList(new LambdaQueryWrapper() @@ -366,9 +370,9 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl - AND a.startdat, = ]]> to_date(#{query.inDateStart},'YYYY-MM-DD HH24:MI:SS') + AND to_date(#{query.inDateStart},'YYYY-MM-DD HH24:MI:SS'), = ]]> a.startdat - AND a.startdat, to_date(#{query.inDateEnd},'YYYY-MM-DD HH24:MI:SS') + AND to_date(#{query.inDateEnd},'YYYY-MM-DD HH24:MI:SS'), a.validdat -- ORDER BY a.reqdate DESC