外协导出:外协工序维护、外协生产管理

liweidong
maxiangong 3 days ago
parent 086b658d77
commit 54b734f047
  1. 82
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemApprovalExcel.java
  2. 25
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemOrderExcel.java
  3. 16
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/excel/OemProcessExcel.java
  4. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/oem/pojo/vo/OemApprovalVO.java
  5. 22
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemOrderController.java
  6. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/controller/OemProcessController.java
  7. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemProcessMapper.java
  8. 51
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/mapper/OemProcessMapper.xml
  9. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/IOemProcessService.java
  10. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemProcessServiceImpl.java
  11. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.java
  12. 266
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkOrderRunMapper.xml
  13. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java
  14. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java

@ -0,0 +1,82 @@
package org.springblade.desk.oem.pojo.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
/**
* 转外协/转厂内审核Excel实体类
*/
@Data
@ColumnWidth(25)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class OemApprovalExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@ExcelProperty("车间订单号")
@ColumnWidth(20)
private String woCode;
@ExcelProperty("零件号")
@ColumnWidth(20)
private String partCode;
@ExcelProperty("批次号")
@ColumnWidth(20)
private String batchNo;
@ExcelProperty("产品名称")
@ColumnWidth(20)
private String partName;
@ExcelProperty("生产标识")
@ColumnWidth(20)
private String productIdent;
@ExcelProperty("生产数量")
@ColumnWidth(20)
private Long makeQty;
@ExcelProperty("面积(dm²)")
@ColumnWidth(20)
private String area;
@ExcelProperty("建立时间")
@ColumnWidth(20)
private String createDate;
@ExcelProperty("备注")
@ColumnWidth(20)
private String memo;
@ExcelProperty("审核状态")
@ColumnWidth(20)
private String approvalName;
@ExcelProperty("申请人")
@ColumnWidth(20)
private String proposer;
@ExcelProperty("审批人")
@ColumnWidth(20)
private String approver;
@ExcelProperty("审批时间")
@ColumnWidth(20)
private String approvalDate;
@ExcelProperty("处理意见")
@ColumnWidth(20)
private String approvalMemo;
}

@ -32,6 +32,14 @@ public class OemOrderExcel implements Serializable {
@ColumnWidth(20) @ColumnWidth(20)
private String planNumber; private String planNumber;
@ExcelProperty("订单单号")
@ColumnWidth(20)
private String woCode;
@ExcelProperty("零件号")
@ColumnWidth(20)
private String partCode;
@ExcelProperty("计划下达时间") @ExcelProperty("计划下达时间")
@ColumnWidth(20) @ColumnWidth(20)
private Date planIssuanceTime; private Date planIssuanceTime;
@ -40,18 +48,14 @@ public class OemOrderExcel implements Serializable {
@ColumnWidth(20) @ColumnWidth(20)
private LocalDateTime postPlatingStorageTime; private LocalDateTime postPlatingStorageTime;
@ExcelProperty("车间订单状态") @ExcelProperty("外协状态")
@ColumnWidth(20) @ColumnWidth(20)
private Integer workOrderStatus; private String oemStatusTitle;
@ExcelProperty("批次号") @ExcelProperty("批次号")
@ColumnWidth(20) @ColumnWidth(20)
private String batchNo; private String batchNo;
@ExcelProperty("零件号")
@ColumnWidth(20)
private String partCode;
@ExcelProperty("产品名称") @ExcelProperty("产品名称")
@ColumnWidth(20) @ColumnWidth(20)
private String partName; private String partName;
@ -74,9 +78,9 @@ public class OemOrderExcel implements Serializable {
@ExcelProperty("优先级") @ExcelProperty("优先级")
@ColumnWidth(20) @ColumnWidth(20)
private String priority; private String priorityName;
@ExcelProperty("使用部门") @ExcelProperty("用部门")
@ColumnWidth(20) @ColumnWidth(20)
private String deptName; private String deptName;
@ -119,9 +123,4 @@ public class OemOrderExcel implements Serializable {
@ExcelProperty("工艺路线") @ExcelProperty("工艺路线")
@ColumnWidth(20) @ColumnWidth(20)
private String craftWay; private String craftWay;
@ExcelProperty("外协订单分类")
@ColumnWidth(20)
private String oemOrderType;
} }

@ -42,10 +42,22 @@ public class OemProcessExcel implements Serializable {
@ExcelProperty("工序") @ExcelProperty("工序")
private String paName; private String paName;
/** /**
* 工艺能力 * 需结算工艺能力
*/ */
@ColumnWidth(20) @ColumnWidth(20)
@ExcelProperty("工艺能力") @ExcelProperty("需结算工艺能力")
private String caNames; private String caNames;
/**
* 工序大类
*/
@ColumnWidth(20)
@ExcelProperty("工序大类")
private String statementCategory;
/**
* 手动结算
*/
@ColumnWidth(20)
@ExcelProperty("手动结算")
private String manualName;
} }

@ -41,10 +41,11 @@ public class OemApprovalVO extends WorkOrderRun {
static { static {
approvalStatusMap.put(APPROVAL_STATUS_NORMAL, "正常"); approvalStatusMap.put(APPROVAL_STATUS_NORMAL, "正常");
approvalStatusMap.put(APPROVAL_STATUS_UNDER, "审批中"); approvalStatusMap.put(APPROVAL_STATUS_UNDER, "待审核");
approvalStatusMap.put(APPROVAL_STATUS_FAIL, "审不通过"); approvalStatusMap.put(APPROVAL_STATUS_FAIL, "审不通过");
approvalStatusMap.put(APPROVAL_STATUS_VIA, "审通过"); approvalStatusMap.put(APPROVAL_STATUS_VIA, "审通过");
} }
@Schema(description = "车间订单ID") @Schema(description = "车间订单ID")
private Long woId; private Long woId;
@ -89,6 +90,12 @@ public class OemApprovalVO extends WorkOrderRun {
@Schema(description = "审批状态名称") @Schema(description = "审批状态名称")
private String approvalName; private String approvalName;
@Schema(description = "审核时间")
private String approvalDate;
@Schema(description = "建立时间")
private String createDate;
public String getApprovalName() { public String getApprovalName() {
return approvalStatusMap.get(approvalStatus); return approvalStatusMap.get(approvalStatus);
} }

@ -24,6 +24,7 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.desk.basic.pojo.entity.Oem; import org.springblade.desk.basic.pojo.entity.Oem;
import org.springblade.desk.basic.service.IOemService; import org.springblade.desk.basic.service.IOemService;
import org.springblade.desk.oem.pojo.excel.OemApprovalExcel;
import org.springblade.desk.oem.pojo.excel.OemOrderExcel; import org.springblade.desk.oem.pojo.excel.OemOrderExcel;
import org.springblade.desk.oem.pojo.excel.PriceSheetExcel; import org.springblade.desk.oem.pojo.excel.PriceSheetExcel;
import org.springblade.desk.oem.pojo.request.*; import org.springblade.desk.oem.pojo.request.*;
@ -104,6 +105,21 @@ public class OemOrderController extends BladeController {
IPage<OemApprovalVO> pages = workOrderRunService.queryOemApproval(Condition.getPage(query), approvalQuery); IPage<OemApprovalVO> pages = workOrderRunService.queryOemApproval(Condition.getPage(query), approvalQuery);
return R.data(pages); return R.data(pages);
} }
@GetMapping("/export-oemApproval")
@ApiOperationSupport(order = 11)
@Operation(summary = "外协订单导出数据", description = "")
public void exportOemApproval(OemApprovalQuery approvalQuery, Query query, HttpServletResponse response) {
List<OemApprovalVO> vos = workOrderRunService.exportOemApproval(approvalQuery);
List<OemApprovalExcel> excels = new ArrayList<>();
for (OemApprovalVO oemApprovalVO : vos) {
OemApprovalExcel excel = new OemApprovalExcel();
BeanUtils.copyProperties(oemApprovalVO, excel);
excels.add(excel);
}
ExcelUtil.export(response, "外协订单" + DateUtil.time(), "外协订单", excels, OemApprovalExcel.class);
}
/** /**
* 批量审批 * 批量审批
*/ */
@ -205,11 +221,9 @@ public class OemOrderController extends BladeController {
@ApiOperationSupport(order = 11) @ApiOperationSupport(order = 11)
@Operation(summary = "外协订单导出数据", description = "") @Operation(summary = "外协订单导出数据", description = "")
public void exportPostHandle(OemOrderQuery oemOrderQuery, Query query, HttpServletResponse response) { public void exportPostHandle(OemOrderQuery oemOrderQuery, Query query, HttpServletResponse response) {
query.setSize(99999); List<OemOrderVO> vos = workOrderRunService.exportOemOrder(oemOrderQuery);
IPage<OemOrderVO> pages = workOrderRunService.queryOemOrder(Condition.getPage(query), oemOrderQuery);
List<OemOrderVO> list = pages.getRecords();
List<OemOrderExcel> excels = new ArrayList<>(); List<OemOrderExcel> excels = new ArrayList<>();
for (OemOrderVO oemOrderVO : list) { for (OemOrderVO oemOrderVO : vos) {
OemOrderExcel excel = new OemOrderExcel(); OemOrderExcel excel = new OemOrderExcel();
BeanUtils.copyProperties(oemOrderVO, excel); BeanUtils.copyProperties(oemOrderVO, excel);
excels.add(excel); excels.add(excel);

@ -157,20 +157,12 @@ public class OemProcessController extends BladeController {
/** /**
* 导出数据 * 导出数据
*/ */
@GetMapping("/export-mesOemProcess") @GetMapping("/export-excel")
@ApiOperationSupport(order = 9) @ApiOperationSupport(order = 9)
@Operation(summary = "导出数据", description = "传入mesOemProcess") @Operation(summary = "导出数据", description = "传入mesOemProcess")
public void exportOemProcess(OemProcessVO mesOemProcess, Query query, BladeUser bladeUser, HttpServletResponse response) { public void exportOemProcess(OemProcessVO mesOemProcess, Query query, BladeUser bladeUser, HttpServletResponse response) {
query.setSize(99999); List<OemProcessExcel> oemProcessExcels = mesOemProcessService.exportOemProcess(mesOemProcess);
IPage<OemProcessVO> pages = mesOemProcessService.selectOemProcessPage(Condition.getPage(query), mesOemProcess); ExcelUtil.export(response, "外协工序数据" + DateUtil.time(), "外协工序数据表", oemProcessExcels, OemProcessExcel.class);
List<OemProcessVO> list = pages.getRecords();
List<OemProcessExcel> excels = new ArrayList<>();
for (OemProcessVO oemProcessVO : list) {
OemProcessExcel excel = new OemProcessExcel();
BeanUtils.copyProperties(oemProcessVO, excel);
excels.add(excel);
}
ExcelUtil.export(response, "外协工序数据" + DateUtil.time(), "外协工序数据表", excels, OemProcessExcel.class);
} }
/** /**

@ -31,9 +31,9 @@ public interface OemProcessMapper extends BaseMapper<OemProcessEntity> {
/** /**
* 获取导出数据 * 获取导出数据
* *
* @param queryWrapper 查询条件 * @param mesOemProcess 查询条件
* @return List<OemProcessExcel> * @return List<OemProcessExcel>
*/ */
List<OemProcessExcel> exportOemProcess(@Param("ew") Wrapper<OemProcessEntity> queryWrapper); List<OemProcessExcel> exportOemProcess(OemProcessVO mesOemProcess);
} }

@ -21,10 +21,17 @@
<!-- VO 扩展字段 --> <!-- VO 扩展字段 -->
<result column="pa_name" property="paName"/> <result column="pa_name" property="paName"/>
<result column="ca_names" property="caNames"/> <result column="ca_names" property="caNames"/>
<result column="STATEMENT_CATEGORY" property="statementCategory"/>
<result column="UPDATE_USER_NAME" property="updateUserName"/> <result column="UPDATE_USER_NAME" property="updateUserName"/>
</resultMap> </resultMap>
<resultMap id="mesOemPrecessExcelResultMap" type="org.springblade.desk.oem.pojo.excel.OemProcessExcel">
<result column="OEM_PROCESS_CODE" property="oemProcessCode"/>
<result column="PA_NAME" property="paName"/>
<result column="CA_NAMES" property="caNames"/>
<result column="STATEMENT_CATEGORY" property="statementCategory"/>
<result column="MANUAL_NAME" property="manualName"/>
</resultMap>
<select id="selectOemProcessPage" resultMap="mesOemProcessResultMap"> <select id="selectOemProcessPage" resultMap="mesOemProcessResultMap">
SELECT SELECT
@ -70,8 +77,46 @@
<select id="exportOemProcess" resultType="org.springblade.desk.oem.pojo.excel.OemProcessExcel"> <select id="exportOemProcess" resultType="org.springblade.desk.oem.pojo.excel.OemProcessExcel">
SELECT * SELECT
FROM MES_OEM_PROCESS ${ew.customSqlSegment} mop.*,
bps.NAME AS pa_name,
(SELECT LISTAGG(
UTL_I18N.RAW_TO_CHAR(
UTL_RAW.CAST_TO_RAW(bca2.CA_NAME),
'AL16UTF16' -- 或 'UTF8'、'AL32UTF8'
),
', ' ) WITHIN GROUP (ORDER BY bca2.ID)
FROM BS_CRAFT_ABILITY bca2
WHERE bca2.ID IN (
SELECT TO_NUMBER(TRIM(COLUMN_VALUE))
FROM XMLTABLE(('"' || REPLACE(mop.CRAFT_IDS, ',', '","') || '"'))
)
) AS ca_names,
mosc.STATEMENT_CATEGORY,
bu.REAL_NAME as UPDATE_USER_NAME,
CASE WHEN mop.manual = '0' THEN '否' WHEN mop.manual = '1' THEN '是' ELSE '' END as manual_name
FROM MES_OEM_PROCESS mop
LEFT JOIN BS_PROCESS_SET bps ON mop.PROCESS_ID = bps.ID
LEFT JOIN MES_OEM_STATEMENT_CATEGORY mosc ON mop.STATEMENT_CATEGORY_ID = mosc.ID
LEFT JOIN BLADE_USER bu ON mop.update_user = bu.id
WHERE mop.IS_DELETED = 0
<if test="oemProcessCode != null and oemProcessCode != ''">
AND mop.OEM_PROCESS_CODE LIKE CONCAT('%', CONCAT(#{oemProcessCode}, '%'))
</if>
<if test="manual != null and manual != ''">
AND mop.MANUAL = #{manual}
</if>
<if test="paName != null and paName != ''">
AND bps.NAME LIKE CONCAT('%', CONCAT(#{paName}, '%'))
</if>
<if test="statementCategory != null and statementCategory != ''">
AND mosc.STATEMENT_CATEGORY LIKE CONCAT('%', CONCAT(#{statementCategory}, '%'))
</if>
<if test="statementCategoryId != null">
AND mop.STATEMENT_CATEGORY_ID = #{statementCategoryId}
</if>
ORDER BY bps.CODE ASC
</select> </select>
</mapper> </mapper>

@ -31,10 +31,10 @@ public interface IOemProcessService extends BaseService<OemProcessEntity> {
/** /**
* 导出数据 * 导出数据
* *
* @param queryWrapper 查询条件 * @param mesOemProcess 查询条件
* @return List<OemProcessExcel> * @return List<OemProcessExcel>
*/ */
List<OemProcessExcel> exportOemProcess(Wrapper<OemProcessEntity> queryWrapper); List<OemProcessExcel> exportOemProcess(OemProcessVO mesOemProcess);
/** /**
* 导入 * 导入

@ -54,11 +54,8 @@ public class OemProcessServiceImpl extends BaseServiceImpl<OemProcessMapper, Oem
@Override @Override
public List<OemProcessExcel> exportOemProcess(Wrapper<OemProcessEntity> queryWrapper) { public List<OemProcessExcel> exportOemProcess(OemProcessVO mesOemProcess) {
List<OemProcessExcel> mesOemProcessList = baseMapper.exportOemProcess(queryWrapper); List<OemProcessExcel> mesOemProcessList = baseMapper.exportOemProcess(mesOemProcess);
//mesOemProcessList.forEach(mesOemProcess -> {
// mesOemProcess.setTypeName(DictCache.getValue(DictEnum.YES_NO, OemProcess.getType()));
//});
return mesOemProcessList; return mesOemProcessList;
} }

@ -30,6 +30,8 @@ public interface WorkOrderRunMapper extends BaseMapper<WorkOrderRun> {
*/ */
List<OemOrderVO> selectOemOrderPage(IPage page, @Param("query") OemOrderQuery query); List<OemOrderVO> selectOemOrderPage(IPage page, @Param("query") OemOrderQuery query);
List<OemOrderVO> exportOemOrder(OemOrderQuery query);
/** /**
* 外协领料单打印 * 外协领料单打印
* *
@ -48,6 +50,8 @@ public interface WorkOrderRunMapper extends BaseMapper<WorkOrderRun> {
*/ */
List<OemApprovalVO> selectOemApproval(IPage page, @Param("query") OemApprovalQuery query); List<OemApprovalVO> selectOemApproval(IPage page, @Param("query") OemApprovalQuery query);
List<OemApprovalVO> exportOemApproval(OemApprovalQuery query);
Map<String, String> selectRoamAndCraftNoByCraftId(Long craftId); Map<String, String> selectRoamAndCraftNoByCraftId(Long craftId);
Map<String, String> selectRoamAndCraftNoByPartCode(String partCode); Map<String, String> selectRoamAndCraftNoByPartCode(String partCode);

@ -215,6 +215,170 @@
ORDER BY mwor.create_time DESC ORDER BY mwor.create_time DESC
</select> </select>
<select id="exportOemOrder" resultMap="simpleOemOrderVOResultMap">
SELECT
-- 主表字段
mwor.id,
mwor.create_time,
mwor.create_user,
mwor.wo_id,
mwor.run_type,
mwor.out_team,
mwor.in_team,
mwor.approval_man,
mwor.approval_memo,
mwor.print_flag,
mwor.deliver_key,
mwor.run_status,
mwor.approval_time,
mwor.batch_reason,
mwor.oem_status,
mwor.wo_code,
-- 车间订单表字段
two.card_no,
two.batch_no,
two.priority,
two.demand_date,
two.mes_card_no,
two.memo,
two.run_status AS work_run_status,
two.inventory_qty,
two.send_down_time,
two.put_store_time,
two.approval_status,
tyo.yp_code,
tyo.part_code,
tyo.part_name,
tyo.release_date,
tyo.plate,
tyo.product_ident,
tyo.use_dept,
tyo.yp_qty,
tyo.yp_area,
NVL(tyo.yp_qty, 0) - NVL(two.inventory_qty, 0) AS unsubmitted_num,
NVL(oem.code, 'N/A') || '/' || NVL(oem.oc_name, 'Unknown') AS oem_ode,
-- 转出班组名称
-- out_team.ts_name as out_ts_name,
-- 转入班组名称
-- in_team.ts_name as in_ts_name,
-- 审批人员名称
-- approval_user.name as approval_user_name,
-- 计划员名称
-- planner_user.real_name as planner_name,
-- 调度员名称
tyo.plan_user as planner_name,
dispatcher_user.real_name as dispatcher_name,
case
when two.run_status = 17 then '已交接'
when two.run_status = 15 then '订单完工'
when mwor.oem_status = 3 then '外协完工'
when mwor.oem_status = 2 then '外协中'
else '未知' end AS oem_status_title
FROM MES_WORK_ORDER_RUN mwor
-- 关联车间订单表
INNER JOIN MES_WORK_ORDER two ON mwor.wo_id = two.id
-- 关联生产订单表
INNER JOIN MES_YIELD_ORDER tyo ON two.yo_id = tyo.id
-- 关联转出班组(只取名称)
LEFT JOIN BS_TEAM_SET out_team ON mwor.out_team = out_team.id
-- 关联转入班组(只取名称)
LEFT JOIN BS_TEAM_SET in_team ON mwor.in_team = in_team.id
-- 关联审批人员(只取名称)
LEFT JOIN blade_user approval_user ON mwor.approval_man = approval_user.id
-- 关联计划员
-- LEFT JOIN blade_user planner_user ON two.planner = planner_user.id
-- 关联调度员
LEFT JOIN blade_user dispatcher_user ON two.dispatcher = dispatcher_user.id
-- 关联外协厂商
LEFT JOIN BS_OEM oem ON mwor.in_customer = oem.id
where
mwor.IS_DELETED = 0
AND two.IS_DELETED = 0
<!-- 查询条件 -->
<if test="runStatus != null">
AND mwor.run_status &gt; #{runStatus}
</if>
<if test="runType != null">
AND mwor.run_type = #{runType}
</if>
<if test="orderCode != null and orderCode != ''">
AND two.wo_code LIKE CONCAT('%', CONCAT(#{orderCode}, '%'))
</if>
<if test="partCode != null and partCode != ''">
AND tyo.part_code LIKE CONCAT('%', CONCAT(#{partCode}, '%'))
</if>
<if test="partName != null and partName != ''">
AND tyo.part_name LIKE CONCAT('%', CONCAT(#{partName}, '%'))
</if>
<if test="plate != null and plate != ''">
AND tyo.plate LIKE CONCAT('%', CONCAT(#{plate}, '%'))
</if>
<if test="productIdent != null and productIdent != ''">
AND tyo.product_ident LIKE CONCAT('%', CONCAT(#{productIdent}, '%'))
</if>
<if test="batchNo != null and batchNo != ''">
AND two.batch_no LIKE CONCAT('%', CONCAT(#{batchNo}, '%'))
</if>
<if test="cardNo != null and cardNo != ''">
AND two.card_no LIKE CONCAT('%', CONCAT(#{cardNo}, '%'))
</if>
<if test="deptName != null and deptName != ''">
AND tyo.use_dept LIKE CONCAT('%', CONCAT(#{deptName}, '%'))
</if>
<if test="planner != null and planner != ''">
AND tyo.plan_user LIKE CONCAT('%', CONCAT(#{planner}, '%'))
</if>
<if test="dispatcher != null and dispatcher != ''">
AND dispatcher_user.real_name LIKE CONCAT('%', CONCAT(#{dispatcher}, '%'))
</if>
<if test="oemCode != null and oemCode != ''">
AND (oem.code LIKE CONCAT('%', CONCAT(#{oemCode}, '%'))
OR oem.oc_name LIKE CONCAT('%', CONCAT(#{oemCode}, '%')))
</if>
<if test="priority != null">
AND two.priority = #{priority}
</if>
<if test="planIssuanceTimeStart != null">
AND tyo.release_date &gt;= #{planIssuanceTimeStart}
</if>
<if test="planIssuanceTimeEnd != null">
AND tyo.release_date &lt; #{planIssuanceTimeEnd} + 1
</if>
<if test="postPlatingStorageTimeStart != null">
AND two.put_store_time &gt;= #{postPlatingStorageTimeStart}
</if>
<if test="postPlatingStorageTimeEnd != null">
AND two.put_store_time &lt; #{postPlatingStorageTimeEnd}+ 1
</if>
<if test="demandDateStart != null">
AND two.demand_date &gt;= #{demandDateStart}
</if>
<if test="demandDateEnd != null">
AND two.demand_date &lt; #{demandDateEnd}+ 1
</if>
<if test="oemStatus != null and oemStatus != ''">
<choose>
<when test='oemStatus == "1"'>
AND mwor.oem_status = 2
</when>
<when test='oemStatus == "2"'>
AND mwor.oem_status = 3
</when>
<when test='oemStatus == "3"'>
AND two.run_status = 15
</when>
<otherwise>
AND two.run_status = 17
</otherwise>
</choose>
</if>
ORDER BY mwor.create_time DESC
</select>
<!-- 结果映射配置 --> <!-- 结果映射配置 -->
<resultMap id="oemApprovalVOResultMap" type="org.springblade.desk.oem.pojo.vo.OemApprovalVO"> <resultMap id="oemApprovalVOResultMap" type="org.springblade.desk.oem.pojo.vo.OemApprovalVO">
<!-- 继承自WorkOrderRun的字段 --> <!-- 继承自WorkOrderRun的字段 -->
@ -246,6 +410,8 @@
<!-- 人员信息字段 --> <!-- 人员信息字段 -->
<result column="proposer_name" property="proposer"/> <result column="proposer_name" property="proposer"/>
<result column="approver_name" property="approver"/> <result column="approver_name" property="approver"/>
<result column="APPROVAL_DATE" property="approvalDate"/>
<result column="CREATE_DATE" property="createDate"/>
</resultMap> </resultMap>
<select id="selectOemApproval" resultMap="oemApprovalVOResultMap"> <select id="selectOemApproval" resultMap="oemApprovalVOResultMap">
@ -346,6 +512,106 @@
ORDER BY mwor.create_time DESC ORDER BY mwor.create_time DESC
</select> </select>
<select id="exportOemApproval" resultMap="oemApprovalVOResultMap">
SELECT
-- 主表字段
mwor.id,
mwor.create_time,
mwor.create_user,
mwor.wo_id,
mwor.run_type,
mwor.out_team,
mwor.in_team,
mwor.approval_man,
mwor.approval_memo,
mwor.print_flag,
mwor.deliver_key,
mwor.run_status,
mwor.approval_time,
mwor.batch_reason,
-- 车间订单表字段
two.wo_code,
two.batch_no,
two.inventory_qty,
two.approval_status,
tyo.part_code,
tyo.part_name,
tyo.product_ident,
tyo.yp_qty,
tyo.yp_area,
approval_user.name as approver_name,
proposer_user.real_name as proposer_name,
to_char(mwor.approval_time, 'yyyy-MM-dd') as APPROVAL_DATE,
to_char(mwor.create_time, 'yyyy-MM-dd') as CREATE_DATE
FROM MES_WORK_ORDER_RUN mwor
-- 关联车间订单表
LEFT JOIN MES_WORK_ORDER two ON mwor.wo_id = two.id
-- 关联生产订单表
LEFT JOIN MES_YIELD_ORDER tyo ON two.yo_id = tyo.id
-- 关联审批人员(只取名称)
LEFT JOIN blade_user approval_user ON mwor.approval_man = approval_user.id
-- 关联计划员
-- LEFT JOIN blade_user planner_user ON two.planner = planner_user.id
-- 关联调度员
LEFT JOIN blade_user proposer_user ON mwor.create_user = proposer_user.id
--关联外协厂商
LEFT JOIN BS_OEM oem ON mwor.in_customer = oem.id
where
mwor.IS_DELETED = 0
AND two.IS_DELETED = 0
<!-- 查询条件 -->
<if test="runType != null">
AND mwor.run_type = #{runType}
</if>
<if test="systemData != null and systemData != ''">
AND mwor.system_data = #{systemData}
</if>
<if test="woCode != null and woCode != ''">
AND two.wo_code LIKE CONCAT('%', CONCAT(#{woCode}, '%'))
</if>
<if test="partCode != null and partCode != ''">
AND tyo.part_code LIKE CONCAT('%', CONCAT(#{partCode}, '%'))
</if>
<if test="batchNo != null and batchNo != ''">
AND two.batch_no LIKE CONCAT('%', CONCAT(#{batchNo}, '%'))
</if>
<if test="proposer != null and proposer != ''">
AND mwor.create_user LIKE CONCAT('%', CONCAT(#{proposer}, '%'))
</if>
<!-- 时间范围查询 -->
<if test="startTime != null">
AND mwor.create_time &gt;= #{startTime}
</if>
<if test="endTime != null">
AND mwor.create_time &lt; #{endTime} + 1
</if>
<choose>
<when test='approvalStatus != null and approvalStatus != ""'>
<choose>
<when test='approvalStatus.contains("4")'>
AND (
mwor.approval_time IS NOT NULL
AND mwor.run_status NOT IN (2, 3)
)
</when>
<otherwise>
AND mwor.run_status IN
<foreach collection="approvalStatus.split(',')" item="status"
open="(" separator="," close=")" index="index">
#{status}
</foreach>
</otherwise>
</choose>
</when>
<otherwise>
AND mwor.run_status = 2
</otherwise>
</choose>
ORDER BY mwor.create_time DESC
</select>
<!-- 结果映射配置 --> <!-- 结果映射配置 -->
<resultMap id="oemMaterialRequisitionMap" type="org.springblade.desk.oem.pojo.vo.MaterialRequisitionVO"> <resultMap id="oemMaterialRequisitionMap" type="org.springblade.desk.oem.pojo.vo.MaterialRequisitionVO">
<id column="id" property="id"/> <id column="id" property="id"/>

@ -29,6 +29,9 @@ public interface IWorkOrderRunService extends BaseService<WorkOrderRun> {
*/ */
IPage<OemOrderVO> queryOemOrder(IPage<OemOrderVO> page, OemOrderQuery oemOrderQuery); IPage<OemOrderVO> queryOemOrder(IPage<OemOrderVO> page, OemOrderQuery oemOrderQuery);
List<OemOrderVO> exportOemOrder(OemOrderQuery oemOrderQuery);
/** /**
* 外协审批分页查询 * 外协审批分页查询
* *
@ -38,6 +41,8 @@ public interface IWorkOrderRunService extends BaseService<WorkOrderRun> {
*/ */
IPage<OemApprovalVO> queryOemApproval(IPage<OemApprovalVO> page, OemApprovalQuery approvalQuery); IPage<OemApprovalVO> queryOemApproval(IPage<OemApprovalVO> page, OemApprovalQuery approvalQuery);
List<OemApprovalVO> exportOemApproval(OemApprovalQuery approvalQuery);
/** /**
* 外协订单收回 * 外协订单收回
* *

@ -828,12 +828,26 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
return page.setRecords(oemOrderVOS); return page.setRecords(oemOrderVOS);
} }
@Override
public List<OemOrderVO> exportOemOrder(OemOrderQuery oemOrderQuery) {
oemOrderQuery.setRunType(WorkOrderRun.RUN_TYPE_1);
oemOrderQuery.setRunStatus(WorkOrderRun.RUN_STATUS_FAIL);
List<OemOrderVO> oemOrderVOS = baseMapper.exportOemOrder(oemOrderQuery);
return oemOrderVOS;
}
@Override @Override
public IPage<OemApprovalVO> queryOemApproval(IPage<OemApprovalVO> page, OemApprovalQuery approvalQuery) { public IPage<OemApprovalVO> queryOemApproval(IPage<OemApprovalVO> page, OemApprovalQuery approvalQuery) {
List<OemApprovalVO> approvals = baseMapper.selectOemApproval(page, approvalQuery); List<OemApprovalVO> approvals = baseMapper.selectOemApproval(page, approvalQuery);
return page.setRecords(approvals); return page.setRecords(approvals);
} }
@Override
public List<OemApprovalVO> exportOemApproval(OemApprovalQuery approvalQuery) {
List<OemApprovalVO> approvals = baseMapper.exportOemApproval(approvalQuery);
return approvals;
}
/** /**
* 查找可交件的最后一道外协工序 * 查找可交件的最后一道外协工序
* 取第一个非外协未开工序的 front_wp_id * 取第一个非外协未开工序的 front_wp_id

Loading…
Cancel
Save