二级库sql调整为5版本,报废申请提交
This commit is contained in:
parent
99f09396e8
commit
30120ca3c2
|
|
@ -107,7 +107,6 @@ public class SecondaryWarehouseController extends BaseController {
|
||||||
@PostMapping("/exportList")
|
@PostMapping("/exportList")
|
||||||
public void exportList(HttpServletResponse response, @RequestBody SecondaryWarehouse bean) {
|
public void exportList(HttpServletResponse response, @RequestBody SecondaryWarehouse bean) {
|
||||||
if (bean.getLeaseType().equals(0)) {
|
if (bean.getLeaseType().equals(0)) {
|
||||||
|
|
||||||
SecondaryWarehouseVo bean1 = new SecondaryWarehouseVo();
|
SecondaryWarehouseVo bean1 = new SecondaryWarehouseVo();
|
||||||
BeanUtils.copyProperties(bean, bean1);
|
BeanUtils.copyProperties(bean, bean1);
|
||||||
List<SecondaryWarehouseVo> list = service.getList1(bean1);
|
List<SecondaryWarehouseVo> list = service.getList1(bean1);
|
||||||
|
|
@ -131,6 +130,37 @@ public class SecondaryWarehouseController extends BaseController {
|
||||||
return toAjax(i);
|
return toAjax(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取二级库报废申请列表")
|
||||||
|
@GetMapping("/getSecondScrapList")
|
||||||
|
public TableDataInfo getSecondScrapList(SecondCcrapApplyDetails bean) {
|
||||||
|
startPage();
|
||||||
|
List<SecondCcrapApplyDetails> list = service.getSecondScrapList(bean);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "获取二级库报废申请列表详情(查看)")
|
||||||
|
@GetMapping("/getSecondScrapListDetails")
|
||||||
|
public TableDataInfo getSecondScrapListDetails(SecondCcrapApplyDetails bean) {
|
||||||
|
startPage();
|
||||||
|
List<SecondCcrapApplyDetails> list = service.getSecondScrapListDetails(bean);
|
||||||
|
return getDataTable(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "二级库报废申请")
|
||||||
|
@PostMapping("/seconfScrap")
|
||||||
|
public AjaxResult seconfScrap(SecondCcrapApplyDetails bean) {
|
||||||
|
Integer i = service.seconfScrap(bean);
|
||||||
|
return toAjax(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "二级库报废审核(通过/驳回)")
|
||||||
|
@PostMapping("/auditSeconfScrap")
|
||||||
|
public AjaxResult auditSeconfScrap(SecondCcrapApplyDetails bean) {
|
||||||
|
Integer i = service.auditSeconfScrap(bean);
|
||||||
|
return toAjax(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取操作记录
|
* 获取操作记录
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.bonus.sgzb.material.domain;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:liang.chao
|
||||||
|
* @Date:2025/1/16 - 13:29
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class SecondCcrapApplyDetails {
|
||||||
|
private Integer id;
|
||||||
|
// 报废单号
|
||||||
|
private String code;
|
||||||
|
// 机具ID
|
||||||
|
private String maId;
|
||||||
|
// 规格ID
|
||||||
|
private String typeId;
|
||||||
|
// 报废数量,默认值为0
|
||||||
|
private Integer scrapNum;
|
||||||
|
// 状态(0进行中,1已审核,2驳回)
|
||||||
|
private Integer status;
|
||||||
|
// 审核人
|
||||||
|
private Integer auditBy;
|
||||||
|
// 审核时间
|
||||||
|
private Date auditTime;
|
||||||
|
// 报废申请备注
|
||||||
|
private String auditRemark;
|
||||||
|
// 创建者
|
||||||
|
private String createBy;
|
||||||
|
// 创建时间
|
||||||
|
private Date createTime;
|
||||||
|
// 更新者
|
||||||
|
private String updateBy;
|
||||||
|
// 更新时间
|
||||||
|
private Date updateTime;
|
||||||
|
// 所属二级库
|
||||||
|
private Integer unitId;
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
private List<TeamLeaseInfo> teamLeaseInfos;
|
||||||
|
|
||||||
|
private String unitName;
|
||||||
|
private String modelName;
|
||||||
|
private String typeName;
|
||||||
|
}
|
||||||
|
|
@ -79,4 +79,18 @@ public interface SecondaryWarehouseMapper {
|
||||||
Integer selectParentId(TeamLeaseInfo teamLeaseInfo);
|
Integer selectParentId(TeamLeaseInfo teamLeaseInfo);
|
||||||
|
|
||||||
List<MaMachine> getDevStockCount(SecondaryWarehouse bean);
|
List<MaMachine> getDevStockCount(SecondaryWarehouse bean);
|
||||||
|
|
||||||
|
List<SecondCcrapApplyDetails> getSecondScrapList(SecondCcrapApplyDetails bean);
|
||||||
|
|
||||||
|
Integer secondScrapApplyDetails(SecondCcrapApplyDetails teamLeaseInfo);
|
||||||
|
|
||||||
|
Integer auditSeconfScrap(SecondCcrapApplyDetails bean);
|
||||||
|
|
||||||
|
List<SecondCcrapApplyDetails> getSeconfScrapByCode(SecondCcrapApplyDetails bean);
|
||||||
|
|
||||||
|
Integer updateMaMachineStatus(String maId);
|
||||||
|
|
||||||
|
Integer updateDevNum(SecondCcrapApplyDetails secondCcrapApplyDetails);
|
||||||
|
|
||||||
|
List<SecondCcrapApplyDetails> getSecondScrapListDetails(SecondCcrapApplyDetails bean);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,4 +42,12 @@ public interface SecondaryWarehouseService {
|
||||||
Integer getDevCount(SecondaryWarehouse bean);
|
Integer getDevCount(SecondaryWarehouse bean);
|
||||||
|
|
||||||
List<MaMachine> getDevStockCount(SecondaryWarehouse bean);
|
List<MaMachine> getDevStockCount(SecondaryWarehouse bean);
|
||||||
|
|
||||||
|
List<SecondCcrapApplyDetails> getSecondScrapList(SecondCcrapApplyDetails bean);
|
||||||
|
|
||||||
|
Integer seconfScrap(SecondCcrapApplyDetails bean);
|
||||||
|
|
||||||
|
Integer auditSeconfScrap(SecondCcrapApplyDetails bean);
|
||||||
|
|
||||||
|
List<SecondCcrapApplyDetails> getSecondScrapListDetails(SecondCcrapApplyDetails bean);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -152,6 +152,74 @@ public class SecondaryWarehouseServiceImpl implements SecondaryWarehouseService
|
||||||
return mapper.getDevStockCount(bean);
|
return mapper.getDevStockCount(bean);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SecondCcrapApplyDetails> getSecondScrapList(SecondCcrapApplyDetails bean) {
|
||||||
|
return mapper.getSecondScrapList(bean);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer seconfScrap(SecondCcrapApplyDetails teamLeaseInfo) {
|
||||||
|
teamLeaseInfo.setCreateBy(String.valueOf(SecurityUtils.getLoginUser().getUserid()));
|
||||||
|
Integer num = 0;
|
||||||
|
String code = "BF" + System.currentTimeMillis();
|
||||||
|
if (teamLeaseInfo.getTeamLeaseInfos().size() > 0) {
|
||||||
|
num = 0;
|
||||||
|
for (TeamLeaseInfo bean : teamLeaseInfo.getTeamLeaseInfos()) {
|
||||||
|
// 编码设备
|
||||||
|
if (StringUtils.isNotBlank(bean.getMaIds())) {
|
||||||
|
for (String maId : bean.getMaIds().split(",")) {
|
||||||
|
// 出库
|
||||||
|
teamLeaseInfo.setMaId(maId);
|
||||||
|
teamLeaseInfo.setTypeId(bean.getTypeId());
|
||||||
|
teamLeaseInfo.setScrapNum(1);
|
||||||
|
teamLeaseInfo.setCode(code);
|
||||||
|
teamLeaseInfo.setStatus(0);
|
||||||
|
num = mapper.secondScrapApplyDetails(teamLeaseInfo);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 数量设备
|
||||||
|
teamLeaseInfo.setScrapNum(bean.getOutNum());
|
||||||
|
teamLeaseInfo.setTypeId(bean.getTypeId());
|
||||||
|
teamLeaseInfo.setMaId(null);
|
||||||
|
teamLeaseInfo.setCode(code);
|
||||||
|
teamLeaseInfo.setStatus(0);
|
||||||
|
num = mapper.secondScrapApplyDetails(teamLeaseInfo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer auditSeconfScrap(SecondCcrapApplyDetails bean) {
|
||||||
|
// 目前先做成统一审核,后续如果需要对不同机具单独审核在做修改
|
||||||
|
int num = 0;
|
||||||
|
if (bean.getStatus() == 1) {
|
||||||
|
//同意
|
||||||
|
num = mapper.auditSeconfScrap(bean);
|
||||||
|
if (num > 0) {
|
||||||
|
// 更新设备状态
|
||||||
|
List<SecondCcrapApplyDetails> list = mapper.getSeconfScrapByCode(bean);
|
||||||
|
for (SecondCcrapApplyDetails secondCcrapApplyDetails : list) {
|
||||||
|
if (StringUtils.isNotBlank(secondCcrapApplyDetails.getMaId())) {
|
||||||
|
mapper.updateMaMachineStatus(secondCcrapApplyDetails.getMaId());
|
||||||
|
} else {
|
||||||
|
mapper.updateDevNum(secondCcrapApplyDetails);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (bean.getStatus() == 2) {
|
||||||
|
//驳回
|
||||||
|
num = mapper.auditSeconfScrap(bean);
|
||||||
|
}
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SecondCcrapApplyDetails> getSecondScrapListDetails(SecondCcrapApplyDetails bean) {
|
||||||
|
return mapper.getSecondScrapListDetails(bean);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SecondaryWarehouse> getList(SecondaryWarehouse bean) {
|
public List<SecondaryWarehouse> getList(SecondaryWarehouse bean) {
|
||||||
bean.setLeaseType(1);
|
bean.setLeaseType(1);
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
WHERE
|
WHERE
|
||||||
id = #{id}
|
id = #{id}
|
||||||
</update>
|
</update>
|
||||||
|
<update id="auditSeconfScrap">
|
||||||
|
UPDATE second_ccrap_apply_details
|
||||||
|
SET
|
||||||
|
audit_by = #{auditBy},
|
||||||
|
audit_time = now(),
|
||||||
|
status = #{status}
|
||||||
|
WHERE
|
||||||
|
code = #{code}
|
||||||
|
</update>
|
||||||
|
<update id="updateMaMachineStatus">
|
||||||
|
UPDATE ma_machine
|
||||||
|
SET
|
||||||
|
ma_status = 22
|
||||||
|
WHERE
|
||||||
|
ma_id = #{maId}
|
||||||
|
</update>
|
||||||
|
<update id="updateDevNum">
|
||||||
|
UPDATE ma_type
|
||||||
|
SET
|
||||||
|
num = num - #{scrapNum}
|
||||||
|
WHERE
|
||||||
|
type_id = #{typeId}
|
||||||
|
</update>
|
||||||
<delete id="delConfig">
|
<delete id="delConfig">
|
||||||
DELETE FROM second_lot_config
|
DELETE FROM second_lot_config
|
||||||
WHERE
|
WHERE
|
||||||
|
|
@ -388,35 +411,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
where ma_id = #{maId}
|
where ma_id = #{maId}
|
||||||
</select>
|
</select>
|
||||||
<select id="getUseMaStatusByMaId" resultType="com.bonus.sgzb.base.api.domain.MaMachine">
|
<select id="getUseMaStatusByMaId" resultType="com.bonus.sgzb.base.api.domain.MaMachine">
|
||||||
WITH type_counts AS (
|
|
||||||
SELECT
|
|
||||||
rd.ma_id,
|
|
||||||
SUM(CASE WHEN rd.type = '1' THEN 1 ELSE 0 END) as type1_count,
|
|
||||||
SUM(CASE WHEN rd.type = '2' THEN 1 ELSE 0 END) as type2_count
|
|
||||||
FROM
|
|
||||||
receive_detail rd
|
|
||||||
WHERE
|
|
||||||
rd.type IN ('1', '2')
|
|
||||||
AND rd.team_group_id = #{teamGroupId}
|
|
||||||
AND rd.unit_id = #{unitId}
|
|
||||||
GROUP BY
|
|
||||||
rd.ma_id
|
|
||||||
),
|
|
||||||
ranked_details AS (
|
|
||||||
SELECT
|
|
||||||
rd.*,
|
|
||||||
tc.type1_count,
|
|
||||||
tc.type2_count,
|
|
||||||
ROW_NUMBER() OVER (PARTITION BY rd.ma_id, rd.type ORDER BY rd.out_num DESC) as rn
|
|
||||||
FROM
|
|
||||||
receive_detail rd
|
|
||||||
JOIN
|
|
||||||
type_counts tc ON rd.ma_id = tc.ma_id
|
|
||||||
WHERE
|
|
||||||
rd.type IN ('1', '2')
|
|
||||||
AND rd.team_group_id = #{teamGroupId}
|
|
||||||
AND rd.unit_id = #{unitId}
|
|
||||||
)
|
|
||||||
SELECT DISTINCT
|
SELECT DISTINCT
|
||||||
mt.type_name modelName,
|
mt.type_name modelName,
|
||||||
mt.manage_type manageType,
|
mt.manage_type manageType,
|
||||||
|
|
@ -426,77 +420,82 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
mt.unit_name AS nuitName,
|
mt.unit_name AS nuitName,
|
||||||
SUM(rd.out_num) receiveNum,
|
SUM(rd.out_num) receiveNum,
|
||||||
GROUP_CONCAT(rd.ma_id) maIds
|
GROUP_CONCAT(rd.ma_id) maIds
|
||||||
FROM
|
FROM (
|
||||||
ranked_details rd
|
SELECT
|
||||||
LEFT JOIN
|
rd.*,
|
||||||
ma_machine mm ON rd.ma_id = mm.ma_id
|
tc.type1_count,
|
||||||
LEFT JOIN
|
tc.type2_count,
|
||||||
ma_type mt ON mt.type_id = mm.type_id
|
@rn := IF(@prev_ma_id = rd.ma_id AND @prev_type = rd.type, @rn + 1, 1) AS rn,
|
||||||
LEFT JOIN
|
@prev_ma_id := rd.ma_id,
|
||||||
ma_type mt2 ON mt2.type_id = mt.parent_id
|
@prev_type := rd.type
|
||||||
WHERE
|
FROM receive_detail rd,
|
||||||
mm.ma_status = 132
|
(SELECT
|
||||||
|
rd.ma_id,
|
||||||
|
SUM(CASE WHEN rd.type = '1' THEN 1 ELSE 0 END) as type1_count,
|
||||||
|
SUM(CASE WHEN rd.type = '2' THEN 1 ELSE 0 END) as type2_count
|
||||||
|
FROM receive_detail rd
|
||||||
|
WHERE rd.type IN ('1', '2')
|
||||||
|
AND rd.team_group_id = #{teamGroupId}
|
||||||
|
AND rd.unit_id = #{unitId}
|
||||||
|
GROUP BY rd.ma_id) tc,
|
||||||
|
(SELECT @prev_ma_id := NULL, @prev_type := NULL, @rn := 0) vars
|
||||||
|
WHERE rd.type IN ('1', '2')
|
||||||
|
AND rd.team_group_id = #{teamGroupId}
|
||||||
|
AND rd.unit_id = #{unitId}
|
||||||
|
AND rd.ma_id = tc.ma_id
|
||||||
|
ORDER BY rd.ma_id, rd.type, rd.out_num DESC
|
||||||
|
) rd
|
||||||
|
LEFT JOIN ma_machine mm ON rd.ma_id = mm.ma_id
|
||||||
|
LEFT JOIN ma_type mt ON mt.type_id = mm.type_id
|
||||||
|
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
|
||||||
|
WHERE mm.ma_status = 132
|
||||||
AND ((rd.type = '1' AND rd.rn <= GREATEST(0, rd.type1_count - rd.type2_count))
|
AND ((rd.type = '1' AND rd.rn <= GREATEST(0, rd.type1_count - rd.type2_count))
|
||||||
OR (rd.type = '2' AND rd.rn <= GREATEST(0, rd.type2_count - rd.type1_count)))
|
OR (rd.type = '2' AND rd.rn <= GREATEST(0, rd.type2_count - rd.type1_count)))
|
||||||
GROUP BY
|
GROUP BY rd.type_id, rd.parent_id
|
||||||
rd.type_id, rd.parent_id UNION
|
|
||||||
|
UNION
|
||||||
|
|
||||||
SELECT DISTINCT
|
SELECT DISTINCT
|
||||||
mt.type_name modelName,
|
mt.type_name modelName,
|
||||||
mt.manage_type manageType,
|
mt.manage_type manageType,
|
||||||
mt2.type_name typeName,
|
mt2.type_name typeName,
|
||||||
rd.type_id typeId,
|
rd.type_id typeId,
|
||||||
rd.parent_id as id,
|
rd.parent_id as id,
|
||||||
mt.unit_name AS nuitName,
|
mt.unit_name AS nuitName,
|
||||||
(SUM(CASE WHEN rd.type = '1' THEN rd.out_num ELSE 0 END)
|
(SUM(CASE WHEN rd.type = '1' THEN rd.out_num ELSE 0 END)
|
||||||
- SUM(CASE WHEN rd.type = '2' THEN rd.out_num ELSE 0 END)) AS receiveNum,
|
- SUM(CASE WHEN rd.type = '2' THEN rd.out_num ELSE 0 END)) AS receiveNum,
|
||||||
GROUP_CONCAT( rd.ma_id ) maIds
|
GROUP_CONCAT(rd.ma_id) maIds
|
||||||
FROM
|
FROM receive_detail rd
|
||||||
receive_detail rd
|
LEFT JOIN ma_type mt ON mt.type_id = rd.type_id
|
||||||
LEFT JOIN ma_type mt ON mt.type_id = rd.type_id
|
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
|
||||||
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
|
WHERE rd.type IN ('1', '2')
|
||||||
WHERE
|
AND rd.team_group_id = #{teamGroupId}
|
||||||
rd.type IN ( '1', '2' )
|
AND rd.ma_id IS NULL
|
||||||
AND rd.team_group_id = #{teamGroupId}
|
AND rd.unit_id = #{unitId}
|
||||||
AND rd.ma_id IS NULL
|
AND NOT EXISTS (
|
||||||
AND rd.unit_id = #{unitId}
|
SELECT 1
|
||||||
AND NOT EXISTS (
|
FROM receive_detail rd2
|
||||||
SELECT
|
WHERE rd2.ma_id = rd.ma_id
|
||||||
1
|
AND ((rd2.type = '1'
|
||||||
FROM
|
AND EXISTS (
|
||||||
receive_detail rd2
|
SELECT 1
|
||||||
WHERE
|
FROM receive_detail rd3
|
||||||
rd2.ma_id = rd.ma_id
|
WHERE rd3.ma_id = rd.ma_id
|
||||||
AND ((
|
AND rd3.type = '2'
|
||||||
rd2.type = '1'
|
AND rd3.type_id = rd2.type_id
|
||||||
AND EXISTS (
|
AND rd3.team_group_id = rd2.team_group_id
|
||||||
SELECT
|
AND rd3.unit_id = rd2.unit_id))
|
||||||
1
|
OR (rd2.type = '2'
|
||||||
FROM
|
AND EXISTS (
|
||||||
receive_detail rd3
|
SELECT 1
|
||||||
WHERE
|
FROM receive_detail rd4
|
||||||
rd3.ma_id = rd.ma_id
|
WHERE rd4.ma_id = rd.ma_id
|
||||||
AND rd3.type = '2'
|
AND rd4.type = '1'
|
||||||
AND rd3.type_id = rd2.type_id
|
AND rd4.type_id = rd2.type_id
|
||||||
AND rd3.team_group_id = rd2.team_group_id
|
AND rd4.team_group_id = rd2.team_group_id
|
||||||
AND rd3.unit_id = rd2.unit_id
|
AND rd4.unit_id = rd2.unit_id)))
|
||||||
))
|
|
||||||
OR (
|
|
||||||
rd2.type = '2'
|
|
||||||
AND EXISTS (
|
|
||||||
SELECT
|
|
||||||
1
|
|
||||||
FROM
|
|
||||||
receive_detail rd4
|
|
||||||
WHERE
|
|
||||||
rd4.ma_id = rd.ma_id
|
|
||||||
AND rd4.type = '1'
|
|
||||||
AND rd4.type_id = rd2.type_id
|
|
||||||
AND rd4.team_group_id = rd2.team_group_id
|
|
||||||
AND rd4.unit_id = rd2.unit_id
|
|
||||||
)))
|
|
||||||
)
|
)
|
||||||
GROUP BY
|
GROUP BY rd.type_id, rd.parent_id
|
||||||
rd.type_id, rd.parent_id
|
|
||||||
</select>
|
</select>
|
||||||
<select id="getDevCount" resultType="java.lang.Integer">
|
<select id="getDevCount" resultType="java.lang.Integer">
|
||||||
SELECT
|
SELECT
|
||||||
|
|
@ -512,37 +511,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
WHERE id = #{id}
|
WHERE id = #{id}
|
||||||
</select>
|
</select>
|
||||||
<select id="getDevStockCount" resultType="com.bonus.sgzb.base.api.domain.MaMachine">
|
<select id="getDevStockCount" resultType="com.bonus.sgzb.base.api.domain.MaMachine">
|
||||||
WITH type_counts AS (
|
|
||||||
SELECT
|
|
||||||
rd.ma_id,
|
|
||||||
SUM( CASE WHEN rd.type = '1' THEN 1 ELSE 0 END ) AS type1_count,
|
|
||||||
SUM( CASE WHEN rd.type = '2' THEN 1 ELSE 0 END ) AS type2_count
|
|
||||||
FROM
|
|
||||||
receive_detail rd
|
|
||||||
WHERE
|
|
||||||
rd.type IN ( '1', '2' )
|
|
||||||
<if test="unitId != null">
|
|
||||||
AND rd.unit_id = #{unitId}
|
|
||||||
</if>
|
|
||||||
GROUP BY
|
|
||||||
rd.ma_id
|
|
||||||
),
|
|
||||||
ranked_details AS (
|
|
||||||
SELECT
|
|
||||||
rd.*,
|
|
||||||
tc.type1_count,
|
|
||||||
tc.type2_count,
|
|
||||||
ROW_NUMBER() OVER ( PARTITION BY rd.ma_id, rd.type ORDER BY rd.out_num DESC ) AS rn
|
|
||||||
|
|
||||||
FROM
|
SELECT DISTINCT
|
||||||
receive_detail rd
|
|
||||||
JOIN type_counts tc ON rd.ma_id = tc.ma_id
|
|
||||||
WHERE
|
|
||||||
rd.type IN ( '1', '2' )
|
|
||||||
<if test="unitId != null">
|
|
||||||
AND rd.unit_id = #{unitId}
|
|
||||||
</if>
|
|
||||||
) SELECT DISTINCT
|
|
||||||
mt.type_name modelName,
|
mt.type_name modelName,
|
||||||
mt.manage_type manageType,
|
mt.manage_type manageType,
|
||||||
mt2.type_name typeName,
|
mt2.type_name typeName,
|
||||||
|
|
@ -551,33 +521,53 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
rd.parent_id AS id,
|
rd.parent_id AS id,
|
||||||
slc.name as name,
|
slc.name as name,
|
||||||
mt.unit_name AS unitName,
|
mt.unit_name AS unitName,
|
||||||
SUM( rd.out_num ) receiveNum,
|
SUM(rd.out_num) receiveNum,
|
||||||
GROUP_CONCAT( rd.ma_id ) maIds
|
GROUP_CONCAT(rd.ma_id) maIds
|
||||||
FROM
|
FROM (
|
||||||
ranked_details rd
|
SELECT rd.*,
|
||||||
|
(SELECT type1_count FROM (SELECT tc.ma_id, tc.type1_count FROM (SELECT rd.ma_id,
|
||||||
|
SUM(CASE WHEN rd.type = '1' THEN 1 ELSE 0 END) AS type1_count,
|
||||||
|
SUM(CASE WHEN rd.type = '2' THEN 1 ELSE 0 END) AS type2_count
|
||||||
|
FROM receive_detail rd
|
||||||
|
WHERE rd.type IN ('1', '2')
|
||||||
|
<if test="unitId != null">
|
||||||
|
AND rd.unit_id = #{unitId}
|
||||||
|
</if>
|
||||||
|
GROUP BY rd.ma_id) tc WHERE tc.ma_id = rd.ma_id) ttc) AS type1_count,
|
||||||
|
(SELECT type2_count FROM (SELECT tc.ma_id, tc.type2_count FROM (SELECT rd.ma_id,
|
||||||
|
SUM(CASE WHEN rd.type = '1' THEN 1 ELSE 0 END) AS type1_count,
|
||||||
|
SUM(CASE WHEN rd.type = '2' THEN 1 ELSE 0 END) AS type2_count
|
||||||
|
FROM receive_detail rd
|
||||||
|
WHERE rd.type IN ('1', '2')
|
||||||
|
<if test="unitId != null">
|
||||||
|
AND rd.unit_id = #{unitId}
|
||||||
|
</if>
|
||||||
|
GROUP BY rd.ma_id) tc WHERE tc.ma_id = rd.ma_id) ttc) AS type2_count,
|
||||||
|
@rn := IF(@prev_ma_id = rd.ma_id AND @prev_type = rd.type, @rn + 1, 1) AS rn,
|
||||||
|
@prev_ma_id := rd.ma_id,
|
||||||
|
@prev_type := rd.type
|
||||||
|
FROM receive_detail rd,
|
||||||
|
(SELECT @prev_ma_id := NULL, @prev_type := NULL, @rn := 0) vars
|
||||||
|
WHERE rd.type IN ('1', '2')
|
||||||
|
<if test="unitId != null">
|
||||||
|
AND rd.unit_id = #{unitId}
|
||||||
|
</if>
|
||||||
|
ORDER BY rd.ma_id, rd.type, rd.out_num DESC
|
||||||
|
) rd
|
||||||
LEFT JOIN team_group tg ON rd.team_group_id = tg.id
|
LEFT JOIN team_group tg ON rd.team_group_id = tg.id
|
||||||
left join second_lot_config slc on rd.unit_id = slc.unit_id
|
LEFT JOIN second_lot_config slc ON rd.unit_id = slc.unit_id
|
||||||
LEFT JOIN ma_machine mm ON rd.ma_id = mm.ma_id
|
LEFT JOIN ma_machine mm ON rd.ma_id = mm.ma_id
|
||||||
LEFT JOIN ma_type mt ON mt.type_id = mm.type_id
|
LEFT JOIN ma_type mt ON mt.type_id = mm.type_id
|
||||||
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
|
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
|
||||||
WHERE
|
WHERE mm.ma_status = 132
|
||||||
mm.ma_status = 132
|
|
||||||
<if test="keyword != null and keyword != ''">
|
<if test="keyword != null and keyword != ''">
|
||||||
AND tg.NAME like concat('%', #{keyword}, '%')
|
AND tg.NAME LIKE CONCAT('%', #{keyword}, '%')
|
||||||
</if>
|
</if>
|
||||||
AND ((
|
AND ((rd.type = '1' AND rd.rn <= GREATEST(0, rd.type1_count - rd.type2_count))
|
||||||
rd.type = '1'
|
OR (rd.type = '2' AND rd.rn <= GREATEST(0, rd.type2_count - rd.type1_count)))
|
||||||
AND rd.rn <= GREATEST( 0, rd.type1_count - rd.type2_count ))
|
GROUP BY rd.type_id, rd.parent_id
|
||||||
|
|
||||||
OR (
|
UNION
|
||||||
rd.type = '2'
|
|
||||||
AND rd.rn <= GREATEST( 0, rd.type2_count - rd.type1_count )))
|
|
||||||
|
|
||||||
GROUP BY
|
|
||||||
rd.type_id,
|
|
||||||
rd.parent_id
|
|
||||||
|
|
||||||
union
|
|
||||||
|
|
||||||
SELECT DISTINCT
|
SELECT DISTINCT
|
||||||
mt.type_name modelName,
|
mt.type_name modelName,
|
||||||
|
|
@ -590,38 +580,30 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
mt.unit_name AS nuitName,
|
mt.unit_name AS nuitName,
|
||||||
(SUM(CASE WHEN rd.type = '1' THEN rd.out_num ELSE 0 END)
|
(SUM(CASE WHEN rd.type = '1' THEN rd.out_num ELSE 0 END)
|
||||||
- SUM(CASE WHEN rd.type = '2' THEN rd.out_num ELSE 0 END)) AS receiveNum,
|
- SUM(CASE WHEN rd.type = '2' THEN rd.out_num ELSE 0 END)) AS receiveNum,
|
||||||
GROUP_CONCAT( rd.ma_id ) maIds
|
GROUP_CONCAT(rd.ma_id) maIds
|
||||||
FROM
|
FROM receive_detail rd
|
||||||
receive_detail rd
|
|
||||||
LEFT JOIN team_group tg ON rd.team_group_id = tg.id
|
LEFT JOIN team_group tg ON rd.team_group_id = tg.id
|
||||||
left join second_lot_config slc on rd.unit_id = slc.unit_id
|
LEFT JOIN second_lot_config slc ON rd.unit_id = slc.unit_id
|
||||||
LEFT JOIN ma_type mt ON mt.type_id = rd.type_id
|
LEFT JOIN ma_type mt ON mt.type_id = rd.type_id
|
||||||
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
|
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
|
||||||
WHERE
|
WHERE rd.type IN ('1', '2')
|
||||||
rd.type IN ( '1', '2' )
|
|
||||||
AND rd.ma_id IS NULL
|
AND rd.ma_id IS NULL
|
||||||
<if test="keyword != null and keyword != ''">
|
<if test="keyword != null and keyword != ''">
|
||||||
AND tg.NAME like concat('%', #{keyword}, '%')
|
AND tg.NAME LIKE CONCAT('%', #{keyword}, '%')
|
||||||
</if>
|
</if>
|
||||||
<if test="unitId != null">
|
<if test="unitId != null">
|
||||||
AND rd.unit_id = #{unitId}
|
AND rd.unit_id = #{unitId}
|
||||||
</if>
|
</if>
|
||||||
AND NOT EXISTS (
|
AND NOT EXISTS (
|
||||||
SELECT
|
SELECT 1
|
||||||
1
|
FROM receive_detail rd2
|
||||||
FROM
|
WHERE rd2.ma_id = rd.ma_id
|
||||||
receive_detail rd2
|
|
||||||
WHERE
|
|
||||||
rd2.ma_id = rd.ma_id
|
|
||||||
AND ((
|
AND ((
|
||||||
rd2.type = '1'
|
rd2.type = '1'
|
||||||
AND EXISTS (
|
AND EXISTS (
|
||||||
SELECT
|
SELECT 1
|
||||||
1
|
FROM receive_detail rd3
|
||||||
FROM
|
WHERE rd3.ma_id = rd.ma_id
|
||||||
receive_detail rd3
|
|
||||||
WHERE
|
|
||||||
rd3.ma_id = rd.ma_id
|
|
||||||
AND rd3.type = '2'
|
AND rd3.type = '2'
|
||||||
AND rd3.type_id = rd2.type_id
|
AND rd3.type_id = rd2.type_id
|
||||||
AND rd3.team_group_id = rd2.team_group_id
|
AND rd3.team_group_id = rd2.team_group_id
|
||||||
|
|
@ -630,20 +612,48 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
OR (
|
OR (
|
||||||
rd2.type = '2'
|
rd2.type = '2'
|
||||||
AND EXISTS (
|
AND EXISTS (
|
||||||
SELECT
|
SELECT 1
|
||||||
1
|
FROM receive_detail rd4
|
||||||
FROM
|
WHERE rd4.ma_id = rd.ma_id
|
||||||
receive_detail rd4
|
|
||||||
WHERE
|
|
||||||
rd4.ma_id = rd.ma_id
|
|
||||||
AND rd4.type = '1'
|
AND rd4.type = '1'
|
||||||
AND rd4.type_id = rd2.type_id
|
AND rd4.type_id = rd2.type_id
|
||||||
AND rd4.team_group_id = rd2.team_group_id
|
AND rd4.team_group_id = rd2.team_group_id
|
||||||
AND rd4.unit_id = rd2.unit_id
|
AND rd4.unit_id = rd2.unit_id
|
||||||
)))
|
)))
|
||||||
)
|
)
|
||||||
|
GROUP BY rd.type_id, rd.parent_id
|
||||||
|
</select>
|
||||||
|
<select id="getSecondScrapList" resultType="com.bonus.sgzb.material.domain.SecondCcrapApplyDetails">
|
||||||
|
SELECT
|
||||||
|
ssd.*,
|
||||||
|
slc.NAME AS unitName
|
||||||
|
FROM
|
||||||
|
second_scrap_apply_details ssd
|
||||||
|
LEFT JOIN second_lot_config slc ON ssd.unit_id = slc.unit_id
|
||||||
|
where 1=1
|
||||||
|
<if test="unitId != null">
|
||||||
|
AND ssd.unit_id = #{unitId}
|
||||||
|
</if>
|
||||||
|
<if test="code != null and code !=''">
|
||||||
|
AND ssd.code like concat('%', #{code}, '%')
|
||||||
|
</if>
|
||||||
GROUP BY
|
GROUP BY
|
||||||
rd.type_id, rd.parent_id
|
ssd.CODE
|
||||||
|
</select>
|
||||||
|
<select id="getSeconfScrapByCode" resultType="com.bonus.sgzb.material.domain.SecondCcrapApplyDetails">
|
||||||
|
select * from second_scrap_apply_details where code = #{code}
|
||||||
|
</select>
|
||||||
|
<select id="getSecondScrapListDetails" resultType="com.bonus.sgzb.material.domain.SecondCcrapApplyDetails">
|
||||||
|
select
|
||||||
|
ssd.*,
|
||||||
|
mt.type_name AS modelName,
|
||||||
|
mt2.type_name AS typeName
|
||||||
|
from
|
||||||
|
second_scrap_apply_details ssd
|
||||||
|
left join ma_type mt on ssd.type_id = mt.type_id
|
||||||
|
left join ma_type mt2 on mt.parent_id = mt2.type_id
|
||||||
|
where
|
||||||
|
ssd.code = #{code}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="addConfig">
|
<insert id="addConfig">
|
||||||
|
|
@ -661,4 +671,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<insert id="addNum">
|
<insert id="addNum">
|
||||||
update ma_type set num = num + #{outNum} where type_id = #{typeId}
|
update ma_type set num = num + #{outNum} where type_id = #{typeId}
|
||||||
</insert>
|
</insert>
|
||||||
|
<insert id="secondScrapApplyDetails">
|
||||||
|
insert into second_scrap_apply_details (code,ma_id,type_id,scrap_num,create_by,create_time,unit_id,status,audit_remark)
|
||||||
|
values (#{code},#{maId},#{typeId},#{scrapNum},#{createBy},now(),#{unitId},#{status},#{auditRemark});
|
||||||
|
</insert>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue