Compare commits

..

No commits in common. 'master' and 'liweidong' have entirely different histories.

  1. 33
      blade-ops/blade-job/src/main/java/org/springblade/job/processor/oem/OemStatementTaskProcessor.java
  2. 18
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/feign/IOemStatementClient.java
  3. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStatementEntity.java
  4. 30
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/entity/OemStatementTaskLogEntity.java
  5. 15
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/StatementVO.java
  6. 11
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IOrderClient.java
  7. 3
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ProduceMonitorPlanDataVO.java
  8. 11
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/util/PriceMatcher.java
  9. 2
      blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/YieldOrderEntity.java
  10. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/device/service/impl/IMeasurementRecordsServiceImpl.java
  11. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/feign/OemStatementClient.java
  12. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.java
  13. 80
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementMapper.xml
  14. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementTaskLogMapper.java
  15. 23
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemStatementTaskLogMapper.xml
  16. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementService.java
  17. 24
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemStatementTaskLogService.java
  18. 901
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementServiceImpl.java
  19. 26
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemStatementTaskLogServiceImpl.java
  20. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldOrderController.java
  21. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/OrderClient.java
  22. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
  23. 60
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  24. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java
  25. 3
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java
  26. 5
      blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java
  27. 3
      blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGlassCakeOutMapper.java
  28. 6
      blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGlassCakeOutMapper.xml
  29. 11
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StExpireRecordServiceImpl.java
  30. 6
      blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StGlassCakeOutServiceImpl.java

@ -1,33 +0,0 @@
package org.springblade.job.processor.oem;
import jakarta.annotation.Resource;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springblade.desk.oem.feign.IOemStatementClient;
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;
/**
* 外协结算单生成定时任务
*
* @author BladeX
* @since 2026-05-08
*/
@Component
@Data
@Slf4j
public class OemStatementTaskProcessor implements BasicProcessor {
@Resource
private IOemStatementClient oemStatementClient;
@Override
public ProcessResult process(TaskContext taskContext) throws Exception {
log.info("========== 开始外协结算单生成定时任务 ==========");
oemStatementClient.generateSettlement();
log.info("========== 结束外协结算单生成定时任务 ==========");
return new ProcessResult(true);
}
}

@ -1,18 +0,0 @@
package org.springblade.desk.oem.feign;
import org.springblade.core.launch.constant.AppConstant;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
@FeignClient(
value = AppConstant.APPLICATION_DESK_NAME
)
public interface IOemStatementClient {
String API_PREFIX = "/feign/client/oem-statement";
String GENERATE_SETTLEMENT = API_PREFIX + "/generate-settlement";
@GetMapping(GENERATE_SETTLEMENT)
void generateSettlement();
}

@ -134,7 +134,4 @@ public class OemStatementEntity extends BaseEntity {
@Schema(description = "备注")
private String memo;
@Schema(description = "标准工序代码")
private String standardProcessCode;
}

@ -1,30 +0,0 @@
package org.springblade.desk.oem.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
import java.util.Date;
/**
* 外协结算任务日志 实体类
*
* @author maxg
* @since 2026-05-08
*/
@Data
@TableName("MES_OEM_STATEMENT_TASK_LOG")
@Schema(description = "OemStatementTaskLog对象")
@EqualsAndHashCode(callSuper = true)
public class OemStatementTaskLogEntity extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "镀后入库时间")
private Date putStoreTime;
}

@ -107,19 +107,4 @@ public class StatementVO extends OemStatementEntity {
* 同外协厂家下有效期内的全部该工序报价
*/
private List<PriceSheetVO> priceSheetList;
@Schema(description = "需结算工艺能力")
private String craftIds;
@Schema(description = "返工单号")
private String reworkCode;
@Schema(description = "返工顺序")
private String reworkNo;
@Schema(description = "计划部门")
private String planDeptcode;
@Schema(description = "工艺能力类型")
private String wxLimit;
}

@ -4,7 +4,6 @@ import org.springblade.core.launch.constant.AppConstant;
import org.springblade.desk.order.pojo.entity.YieldPlan;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* 模具计划接口声明
@ -23,7 +22,6 @@ public interface IOrderClient {
String INIT_YIELD_ORDER_DAILY_ASSIGN = API_PREFIX + "/initYieldOrderDailyAssign";
String DATA_VERIFY = API_PREFIX + "/dataVerify";
String CREATE_BLB_YIELD_ORDER = API_PREFIX + "/createBlbYieldOrder";
/**
* 生成玻璃饼烧结计划并下达
@ -54,13 +52,4 @@ public interface IOrderClient {
@GetMapping(DATA_VERIFY)
void dataVerify();
/**
* 生成玻璃饼烧结计划并下达
*
* @param yieldPlan
* @return
*/
@GetMapping(CREATE_BLB_YIELD_ORDER)
Boolean createBlbYieldOrder(@RequestParam("partCode")String partCode, @RequestParam("qty")Double qty, @RequestParam("memo")String memo);
}

@ -19,9 +19,6 @@ public class ProduceMonitorPlanDataVO {
@Schema(description = "接收数量")
private Double qualifiedQty;
@Schema(description = "接收人")
private String receiveName;
@Schema(description = "试验数量")
private Double testQty;

@ -97,15 +97,4 @@ public class PriceMatcher {
.filter(remark -> containsPrice(remark, targetPrice))
.collect(Collectors.toSet());
}
/**
* 判断价格是否匹配
*
* @param remark
* @param targetPrice
* @return
*/
public static boolean isContainsPrice(String remark, BigDecimal targetPrice) {
return containsPrice(remark, targetPrice);
}
}

@ -176,7 +176,7 @@ public class YieldOrderEntity extends TenantEntity {
* 优先级-erp中订单优先级
*/
@TableField(value = "PRIORITY_ERP")
private Integer priorityErp;
private Long priorityErp;
/**
* 保管员

@ -51,8 +51,7 @@ public class IMeasurementRecordsServiceImpl extends BaseServiceImpl<MeasurementR
// 2. 动态添加条件(核心!)
// 根据实体对象 entity 中字段是否为空,来动态拼接WHERE条件
wrapper.like(Objects.nonNull(mesMeasurementRecords.getMcCode()), MeasurementRecordsEntity::getMcCode, mesMeasurementRecords.getMcCode())
.like(Objects.nonNull(mesMeasurementRecords.getMcName()), MeasurementRecordsEntity::getMcName, mesMeasurementRecords.getMcName());
wrapper.eq(Objects.nonNull(mesMeasurementRecords.getMcCode()), MeasurementRecordsEntity::getMcCode, mesMeasurementRecords.getMcCode());
// 3. 执行分页查询
IPage<MeasurementRecordsEntity> measurementRecordsEntityIPage = baseMapper.selectPage(page, wrapper);

@ -1,19 +0,0 @@
package org.springblade.desk.oem.feign;
import io.swagger.v3.oas.annotations.Hidden;
import jakarta.annotation.Resource;
import org.springblade.desk.oem.service.IOemStatementService;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Hidden
public class OemStatementClient implements IOemStatementClient {
@Resource
private IOemStatementService oemStatementService;
@Override
public void generateSettlement() {
oemStatementService.generateSettlement();
}
}

@ -37,12 +37,4 @@ public interface OemStatementMapper extends BaseMapper<OemStatementEntity> {
*/
List<OemStatementExcel> exportOemStatement(@Param("ew") Wrapper<OemStatementEntity> queryWrapper);
/**
* 获取未结算计划订单
*
* @param query
* @return
*/
List<StatementVO> selectUnsettled(StatementQuery query);
}

@ -86,12 +86,6 @@
<result column="tsb_num" property="tsbNum"/>
<result column="tsd_num" property="tsdNum"/>
<result column="tjt_num" property="tjtNum"/>
<result column="CRAFT_IDS" property="craftIds"/>
<result column="REWORK_CODE" property="reworkCode"/>
<result column="REWORK_NO" property="reworkNo"/>
<result column="PLAN_DEPTCODE" property="planDeptcode"/>
<result column="WX_LIMIT" property="wxLimit"/>
</resultMap>
<select id="selectOemStatementPage" resultMap="StatementVOResultMap">
@ -224,78 +218,4 @@
FROM MES_OEM_STATEMENT ${ew.customSqlSegment}
</select>
<select id="selectUnsettled" resultMap="StatementVOResultMap">
SELECT
a.id AS WP_ID,
a.wo_id,
a.ca_id,
a.OC_ID,
a.pps_id as ps_id,
b.name as ps_name,
c.code as OC_CODE,
d.REWORK_CODE,
d.REWORK_NO,
d.wo_code,
to_char(d.PUT_STORE_TIME, 'yyyy-MM-dd') AS PUT_STORE_TIME,
d.MAKE_QTY,
e.PLATE_THICKNESS1 as ROS_THICKNESS,
e.PLATE_THICKNESS1 as PLATE_THICKNESS,
e.PLAN_DEPTCODE,
e.plate,
e.PART_CODE,
e.PRODUCT_IDENT as PROD_IDENT,
e.tsb_num AS tsb_num,
e.tsd_num AS tsd_num,
e.tjt_num AS tjt_num,
e.YP_AREA AS YP_AREA,
d.MAKE_QTY * e.YP_AREA AS total_area,
g.manual,
g.CRAFT_IDS,
i.WX_LIMIT,
p.part_name
FROM
MES_WORK_PLAN a
INNER JOIN BS_PROCESS_SET b ON a.PPS_ID = b.ID AND b.IS_DELETED = 0
INNER JOIN BS_OEM c ON a.OC_ID = c.ID AND c.IS_DELETED = 0
INNER JOIN MES_WORK_ORDER d ON a.WO_ID = d.ID AND d.IS_DELETED = 0
INNER JOIN MES_YIELD_ORDER e ON d.YO_ID = e.ID AND e.IS_DELETED = 0
INNER JOIN MES_OEM_PROCESS g ON b.ID = g.PROCESS_ID AND g.IS_DELETED = 0
LEFT JOIN MES_OEM_STATEMENT h ON h.WP_ID = a.ID AND h.IS_DELETED = 0
INNER JOIN BS_CRAFT_ABILITY i ON i.ID = a.CA_ID AND i.IS_DELETED = 0
INNER JOIN DS_PART_VERSION pv ON e.part_code = pv.part_code AND e.part_version = pv.part_version AND pv.IS_DELETED = 0
INNER JOIN DS_PART p ON pv.PART_ID = p.ID AND p.IS_DELETED = 0
<where>
d.PUT_STORE_TIME IS NOT NULL AND ( a.ID NOT IN ( SELECT WP_ID FROM MES_OEM_STATEMENT ) OR d.PUT_STORE_TIME &gt; h.CREATE_TIME )
<if test="postPlatingStorageTimeStart != null">
AND d.PUT_STORE_TIME &gt;= #{postPlatingStorageTimeStart}
</if>
</where>
GROUP BY
a.id,
a.wo_id,
a.OC_ID,
a.pps_id,
a.ca_id,
b.name,
c.code,
d.REWORK_CODE,
d.REWORK_NO,
d.wo_code,
d.PUT_STORE_TIME,
d.MAKE_QTY,
e.PLATE_THICKNESS1,
e.PLAN_DEPTCODE,
e.plate,
e.PART_CODE,
e.PRODUCT_IDENT,
e.tsb_num,
e.tsd_num,
e.tjt_num,
e.YP_AREA,
g.manual,
g.CRAFT_IDS,
i.WX_LIMIT,
p.part_name
</select>
</mapper>

@ -1,18 +0,0 @@
package org.springblade.desk.oem.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.oem.pojo.entity.OemStatementTaskLogEntity;
import java.util.Date;
/**
* 外协结算任务日志 Mapper 接口
*
* @author maxg
* @since 2026-05-08
*/
public interface OemStatementTaskLogMapper extends BaseMapper<OemStatementTaskLogEntity> {
Date getLastMaxPutStoreTime();
}

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.desk.oem.mapper.OemStatementTaskLogMapper">
<!-- 通用查询映射结果 -->
<resultMap id="mesOemStatementTaskLogResultMap" type="org.springblade.desk.oem.pojo.entity.OemStatementTaskLogEntity">
<result column="ID" property="id"/>
<result column="PUT_STORE_TIME" property="putStoreTime"/>
<result column="CREATE_USER" property="createUser"/>
<result column="CREATE_TIME" property="createTime"/>
<result column="CREATE_DEPT" property="createDept"/>
<result column="UPDATE_USER" property="updateUser"/>
<result column="UPDATE_TIME" property="updateTime"/>
<result column="STATUS" property="status"/>
<result column="IS_DELETED" property="isDeleted"/>
</resultMap>
<select id="getLastMaxPutStoreTime" resultType="java.util.Date">
SELECT MAX(PUT_STORE_TIME) FROM MES_OEM_STATEMENT_TASK_LOG WHERE IS_DELETED = 0
</select>
</mapper>

@ -84,9 +84,4 @@ public interface IOemStatementService extends BaseService<OemStatementEntity> {
*/
R notNeedSettlement(List<StatementVO> list);
/**
* 生成结算数据
*/
void generateSettlement();
}

@ -1,24 +0,0 @@
package org.springblade.desk.oem.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.oem.pojo.entity.OemStatementTaskLogEntity;
import java.util.Date;
public interface IOemStatementTaskLogService extends BaseService<OemStatementTaskLogEntity> {
/**
* 获取最大镀后入库时间
*
* @return
*/
Date getLastMaxPutStoreTime();
/**
* 保存最大镀后入库时间
*
* @param putStoreTime
*/
void saveMaxPutStoreTime(Date putStoreTime);
}

@ -1,26 +0,0 @@
package org.springblade.desk.oem.service.impl;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.oem.mapper.OemStatementTaskLogMapper;
import org.springblade.desk.oem.pojo.entity.OemStatementTaskLogEntity;
import org.springblade.desk.oem.service.IOemStatementTaskLogService;
import org.springframework.stereotype.Service;
import java.util.Date;
@Service
public class OemStatementTaskLogServiceImpl extends BaseServiceImpl<OemStatementTaskLogMapper, OemStatementTaskLogEntity> implements IOemStatementTaskLogService {
@Override
public Date getLastMaxPutStoreTime() {
return baseMapper.getLastMaxPutStoreTime();
}
@Override
public void saveMaxPutStoreTime(Date putStoreTime) {
OemStatementTaskLogEntity entity = new OemStatementTaskLogEntity();
entity.setPutStoreTime(putStoreTime);
this.save(entity);
}
}

@ -352,12 +352,4 @@ public class YieldOrderController extends BladeController {
String code = yieldOrderService.generateMdCode();
return R.data(code);
}
/**
* 根据零件号获取工装
*/
@GetMapping("/createBlbYieldOrder")
public R createBlbYieldOrder(@RequestParam String partCode,@RequestParam Double qty,@RequestParam String memo) {
return R.data(yieldOrderService.createBlbYieldOrder(partCode,qty,memo));
}
}

@ -80,9 +80,4 @@ public class OrderClient implements IOrderClient {
orderService.dataVerify(idList);
}
}
@Override
public Boolean createBlbYieldOrder(String partCode, Double qty, String memo) {
return orderService.createBlbYieldOrder(partCode,qty,memo);
}
}

@ -293,6 +293,4 @@ public interface IYieldOrderService extends BaseService<YieldOrder> {
List<YieldOrderCraft> confirm(String cardNo,String mark);
String generateMdCode();
boolean createBlbYieldOrder(String partCode,Double qty,String memo);
}

@ -1357,7 +1357,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
subYield.setPlate(dsPart.getPlate());
subYield.setUseDept("热表分厂");
subYield.setYpArea(dsPart.getArea() == null ? 0d : dsPart.getArea());
subYield.setDemandDate(DateUtil.plusDays(DateUtil.now(), 2));
subYield.setDemandDate(DateUtil.minusDays(DateUtil.now(), 2));
subYield.setReleaseDate(DateUtil.now());
subYield.setCardNo(nextCardNo());
subYield.setBatchNo(nextBatchNo());
@ -1581,62 +1581,4 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len);
}
public boolean createBlbYieldOrder(String partCode,Double qty,String memo){
DsPartEntity dsPart = dsPartService.selectDsPartByPatCodeAndVersion(partCode,null);
String roamNo = yieldOrderClient.getChildRoamNoByPartCode(partCode);
YieldOrder order = new YieldOrder();
order.setId(null);
order.setYoCode(nextBlbCode2(0));
order.setPartCode(partCode);
order.setProductType(dsPart.getProductType());
order.setPartName(dsPart.getPartName());
order.setPlate(dsPart.getPlate());
order.setUseDept("热表分厂");
order.setYpArea(dsPart.getArea() == null ? 0d : dsPart.getArea());
order.setDemandDate(DateUtil.plusDays(DateUtil.now(), 5));
order.setReleaseDate(DateUtil.now());
order.setCardNo(nextBlbCode2(1));
order.setBatchNo(nextBlbCode2(2));
order.setSiteWork(Boolean.TRUE);
order.setYpQty(qty);
order.setPrimaryCraft(dsPart.getCraftWay());
order.setRoamNo(roamNo);
order.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode());
order.setYieldType(YieldOrderEnum.YIELD_TYPE_3.getCode());
order.setPriorityAps(5);
order.setEntrustDept("热表分厂");
order.setBusinessType(-1);
order.setPlanDeptCode("3400");
order.setReceiveTime(DateUtil.now());
order.setProduceBool(Boolean.FALSE);
order.setMemo(memo);
order.setProductIdent("JI");
return this.save(order);
}
/**
* @param codeType 0:订单号1流程卡号2批次号
* @return String
* @Description: 用于给玻璃饼产生对应的订单号 流程卡号批次号
* @Author dxl
* @CreateTime 2023/10/12 16:03
*/
private String nextBlbCode2(int codeType) {
// 自增总长度
int len = 5;
// 编码模式
String codePattern = "RB" + DateUtil.today().substring(2);
int num = this.getMaxCodeByPattern(codePattern, len);
// 下个编码
if (codeType == 0) {
codePattern = "WO-B" + DateUtil.today().substring(2);
}else if(codeType == 2){
codePattern = "Y" + DateUtil.today().substring(2);
}
return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len);
}
}

@ -1393,8 +1393,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// 工序信息
WorkPlan workPlan = workPlanService.getById(wpId);
BeanUtils.copyProperties(workPlan, planDataVO);
User receiveMan = UserCache.getUser(workPlan.getReceiveMan());
planDataVO.setReceiveName(receiveMan != null ? receiveMan.getRealName() : "");
// 加工记录
List<MakeRec> makeRecs = makeRecService.list(Wrappers.lambdaQuery(MakeRec.class).eq(MakeRec::getWpId, wpId));
if (CollectionUtils.isNotEmpty(makeRecs)) {
@ -1689,9 +1688,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
inspectionTask.setWpId(workPlan.getId());
inspectionTask.setCheckUserId(userId);
inspectionTask.setCheckDate(LocalDateTime.now());
inspectionTask.setScrapQty(0d);
inspectionTask.setCheckQty(0d);
inspectionTask.setLossQty(0d);
inspectionTaskMapper.insertOrUpdate(inspectionTask);
// 保存检验项目

@ -895,7 +895,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrder.setRunStatus(2);
workOrder.setPickingStatus(0);
workOrder.setOem("0");
workOrder.setPriority(order.getPriorityErp());
workOrder.setPriority(order.getPriorityAps());
workOrder.setApprovalStatus(1);
workOrder.setScrapQty(0);
workOrder.setOemOut("0");
@ -906,7 +906,6 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrder.setReInStore("0");
workOrder.setPartCode(order.getPartCode());
workOrder.setDemandDate(order.getDemandDate());
workOrder.setSendDownTime(new Date());
//调度员是主工序加工班组的调度员
if (workPlanList.get(0).getMakeTeam() != null) {
TeamSetEntity teamSet = teamSetService.getById(workPlanList.get(0).getMakeTeam());

@ -28,7 +28,6 @@ package org.springblade.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -530,10 +529,6 @@ public class UserController {
@Operation(summary = "根据角色别名查询所有用户", description = "传入roleAlias")
public R<List<UserVO>> listAllByRole(@Parameter(description = "角色别名") String roleAlias) {
List<User> list = userExtService.listAllByRole(roleAlias);
if(ObjectUtils.isEmpty(list)){
List<UserVO> list1 = new ArrayList<>();
return R.data(list1);
}
return R.data(UserWrapper.build().listVO(list));
}

@ -4,7 +4,6 @@ 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.produce.pojo.entity.WorkOrder;
import org.springblade.wms.excel.StGlassCakeOutExcel;
import org.springblade.wms.pojo.entity.StGlassCakeOut;
import org.springblade.wms.pojo.vo.StGlassCakeOutVO;
@ -44,7 +43,5 @@ public interface StGlassCakeOutMapper extends BaseMapper<StGlassCakeOut> {
List<StGlassCakeOutExcel> exportStGlassCakeOut(@Param("ew") Wrapper<StGlassCakeOut> queryWrapper);
StGlassCakeOut getBySirId(Long sirId);
WorkOrder getByWoCode(String cardNo);
}

@ -198,10 +198,4 @@
SELECT * FROM ST_GLASS_CAKE_OUT ${ew.customSqlSegment}
</select>
<select id="getByWoCode" resultType="org.springblade.desk.produce.pojo.entity.WorkOrder">
SELECT *
FROM MES_WORK_ORDER
WHERE card_no = #{cardNo}
</select>
</mapper>

@ -107,6 +107,7 @@ public class StExpireRecordServiceImpl extends BaseServiceImpl<StExpireRecordMap
} else {
stock.setOutQuantity(stock.getQuantity());
}
stock.setIsScrap(1L);
stRealtimeStockService.updateById(stock);
List<StRealtimeStock> stockList = Collections.singletonList(stock);
@ -118,17 +119,15 @@ public class StExpireRecordServiceImpl extends BaseServiceImpl<StExpireRecordMap
record.setBfCode(bfCode);
if (bfType == 1) {
stock.setIsScrap(1L);
stRealtimeStockService.updateById(stock);
// 到期维护报废:无需审批,直接设为「已审批」状态
record.setApprovalStatus(StOtherOutRecord.APPROVAL_STATUS_CHECKED);
record.setApprovalTime(new Date());
record.setApprover(user.getUserId());
record.setApprovalStatus(StOtherOutRecord.APPROVAL_STATUS_CHECKED); // 审批字段在该表
record.setApprovalTime(new Date()); // 可选:补充审批时间(已审批则赋值当前时间)
record.setApprover(user.getUserId()); // 可选:补充审批人(当前用户)
record.setBfType(bfType);
stOtherOutRecordService.addOtherOutRecord(record, stockList, user);
} else {
// 玻璃饼/归还报废:需要审批,设为「待审批」状态
record.setApprovalStatus(StOtherOutRecord.APPROVAL_STATUS_CHECKING);
record.setApprovalStatus(StOtherOutRecord.APPROVAL_STATUS_CHECKING); // 审批字段在该表
// 待审批状态:审批时间/审批人暂为空,审批通过后再赋值
if(bfType == 2){
StReturnRecord stReturnRecord = stReturnRecordMapper.selectById(rrId);

@ -123,7 +123,7 @@ public class StGlassCakeOutServiceImpl extends BaseServiceImpl<StGlassCakeOutMap
// 步骤3:筛选出IS_CLASS_CAKE为"玻璃饼"的记录(核心过滤)
if (!CollectionUtils.isEmpty(allChildPartList)) {
glassCakePartList = allChildPartList.stream()
.filter(part -> "1".equals(part.getIsGlassCake()))
.filter(part -> Boolean.TRUE.equals(part.getIsGlassCake()))
.collect(Collectors.toList());
}
}
@ -362,11 +362,7 @@ public class StGlassCakeOutServiceImpl extends BaseServiceImpl<StGlassCakeOutMap
// ============ 第三步:无数据 → 新增一条待出库数据 ============
StGlassCakeOutDTO dto = new StGlassCakeOutDTO();
dto.setCardNo(cardNo);
WorkOrder workOrder = baseMapper.getByWoCode(dto.getCardNo());
dto.setWoCode(workOrder.getWoCode());
List<StGlassCakeOut> stGlassCakeOutList = this.generatePreOutOrder(dto);
if (!CollectionUtils.isEmpty(stGlassCakeOutList)) {
for (StGlassCakeOut waitOut : stGlassCakeOutList) {

Loading…
Cancel
Save