PDA任务修改 B2字段添加

This commit is contained in:
秦鸿展
2026-06-04 16:59:16 +08:00
parent 299a9fb91e
commit 1c72ce2ba5
11 changed files with 255 additions and 71 deletions
@@ -96,4 +96,35 @@ public class SettlementCustomersPO extends BaseVOEntity{
@ApiModelProperty(name = "结算币种")
private String settlementCurrency;
@ApiModelProperty("业务单据id")
private Long businessDocumentId;
@ApiModelProperty("业务流水号")
private String businessFlow;
@ApiModelProperty("业务单号")
private String originalBusinessNum;
@ApiModelProperty("费用类别")
private String serviceItemsName;
@ApiModelProperty("一级费用科目")
private String firstSubjectName;
@ApiModelProperty("二级费用科目")
private String secondSubjectName;
@ApiModelProperty("业务状态(1-未生效,2-已生效,3-已计费,4-已驳回,5-已作废)")
private Integer businessState;
@ApiModelProperty("单据类型")
private String documentType;
@ApiModelProperty("单据类型编码")
private String documentTypeCode;
@ApiModelProperty("业务单据创建时间")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
private Date businessCreateTime;
}
@@ -105,4 +105,28 @@ public class SettlementCustomersDO extends BaseVOEntity{
@ApiModelProperty(name = "nc编码")
private String ncCode;
@ApiModelProperty("业务流水号")
private String businessFlow;
@ApiModelProperty("业务单号")
private String originalBusinessNum;
@ApiModelProperty("费用类别")
private String serviceItemsName;
@ApiModelProperty("一级费用科目")
private String firstSubjectName;
@ApiModelProperty("二级费用科目")
private String secondSubjectName;
@ApiModelProperty("业务状态(1-未生效,2-已生效,3-已计费,4-已驳回,5-已作废)")
private Integer businessState;
@ApiModelProperty("单据类型")
private String documentType;
@ApiModelProperty("单据类型编码")
private String documentTypeCode;
}
@@ -103,4 +103,28 @@ public class SettlementCustomersDTO extends BaseVOEntity{
private String projectName;
@ApiModelProperty(name = "nc编码")
private String ncCode;
@ApiModelProperty("业务流水号")
private String businessFlow;
@ApiModelProperty("业务单号")
private String originalBusinessNum;
@ApiModelProperty("费用类别")
private String serviceItemsName;
@ApiModelProperty("一级费用科目")
private String firstSubjectName;
@ApiModelProperty("二级费用科目")
private String secondSubjectName;
@ApiModelProperty("业务状态(1-未生效,2-已生效,3-已计费,4-已驳回,5-已作废)")
private Integer businessState;
@ApiModelProperty("单据类型")
private String documentType;
@ApiModelProperty("单据类型编码")
private String documentTypeCode;
}
@@ -41,9 +41,8 @@ public class SettlementCustomersApi extends BaseController{
@GetMapping("/list")
public TableDataInfo list(SettlementCustomersDTO settlementCustomersDTO)
{
//转换实体
SettlementCustomersDO settlementCustomersDO = new SettlementCustomersDO();
BeanUtils.copyProperties(settlementCustomersDTO,settlementCustomersDO);
BeanUtils.copyProperties(settlementCustomersDTO, settlementCustomersDO);
startPage();
List<SettlementCustomersPO> list = settlementCustomersApplicationService.queryList(settlementCustomersDO);
return getDataTable(list);
@@ -116,9 +116,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="billingStatementDO.billingFlow != null and billingStatementDO.billingFlow != ''">
AND billing_flow like concat('%', #{billingStatementDO.billingFlow}, '%')
</if>
<if test="billingStatementDO.businessFlow != null and billingStatementDO.businessFlow != ''">
AND business_flow like concat('%', #{billingStatementDO.businessFlow}, '%')
</if>
<if test="billingStatementDO.settlementEntity != null and billingStatementDO.settlementEntity != ''">
AND settlement_entity like concat('%', #{billingStatementDO.settlementEntity}, '%')
</if>
<if test="billingStatementDO.settlementCustomersCode != null and billingStatementDO.settlementCustomersCode != ''">
AND settlement_customers_code like concat('%', #{billingStatementDO.settlementCustomersCode}, '%')
</if>
<if test="billingStatementDO.firstSubjectName != null and billingStatementDO.firstSubjectName != ''">
AND first_subject_name like concat('%', #{billingStatementDO.firstSubjectName}, '%')
</if>
<if test="billingStatementDO.secondSubjectName != null and billingStatementDO.secondSubjectName != ''">
AND( first_subject_name like concat('%', #{billingStatementDO.secondSubjectName}, '%')
OR second_subject_name like concat('%', #{billingStatementDO.secondSubjectName}, '%') )
@@ -129,9 +138,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="billingStatementDO.accountExpenseType != null">
AND account_expense_type = #{billingStatementDO.accountExpenseType}
</if>
<if test="billingStatementDO.settlementCustomersCode != null">
AND settlement_customers_code = #{billingStatementDO.settlementCustomersCode}
</if>
<if test="billingStatementDO.belongModuleCode != null">
AND belong_module_code = #{billingStatementDO.belongModuleCode}
</if>
@@ -151,6 +157,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="billingStatementDO.documentType != null and billingStatementDO.documentType != ''">
AND document_type like concat('%', #{billingStatementDO.documentType}, '%')
</if>
<if test="billingStatementDO.documentTypeCode != null and billingStatementDO.documentTypeCode != ''">
AND document_type_code = #{billingStatementDO.documentTypeCode}
</if>
<if test="billingStatementDO.serviceItemsCode != null and billingStatementDO.serviceItemsCode != ''">
AND service_items_code = #{billingStatementDO.serviceItemsCode}
</if>
<if test="billingStatementDO.originalBusinessNum != null and billingStatementDO.originalBusinessNum != ''">
AND original_business_num like concat('%', #{billingStatementDO.originalBusinessNum}, '%')
</if>
@@ -181,6 +181,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="businessDocumentDO.settlementEntity != null and businessDocumentDO.settlementEntity != ''">
AND settlement_entity like concat('%', #{businessDocumentDO.settlementEntity}, '%')
</if>
<if test="businessDocumentDO.settlementCustomersCode != null and businessDocumentDO.settlementCustomersCode != ''">
AND settlement_customers_code like concat('%', #{businessDocumentDO.settlementCustomersCode}, '%')
</if>
<if test="businessDocumentDO.serviceItemsName != null and businessDocumentDO.serviceItemsName != ''">
AND service_items_name like concat('%', #{businessDocumentDO.serviceItemsName}, '%')
</if>
<if test="businessDocumentDO.serviceItemsCode != null and businessDocumentDO.serviceItemsCode != ''">
AND service_items_code = #{businessDocumentDO.serviceItemsCode}
</if>
<if test="businessDocumentDO.documentTypeCode != null and businessDocumentDO.documentTypeCode != ''">
AND document_type_code = #{businessDocumentDO.documentTypeCode}
</if>
<if test="businessDocumentDO.businessDocumentIdSet != null">
and business_document_id in
<foreach item="id" collection="businessDocumentDO.businessDocumentIdSet" open="(" separator="," close=")">
@@ -32,71 +32,85 @@
<result property="updateByName" column="update_by_name" />
<result property="delFlag" column="del_flag" />
<result property="settlementCurrency" column="settlement_currency" />
<result property="businessDocumentId" column="business_document_id" />
<result property="businessFlow" column="business_flow" />
<result property="originalBusinessNum" column="original_business_num" />
<result property="serviceItemsName" column="service_items_name" />
<result property="firstSubjectName" column="first_subject_name" />
<result property="secondSubjectName" column="second_subject_name" />
<result property="businessState" column="business_state" />
<result property="documentType" column="document_type" />
<result property="documentTypeCode" column="document_type_code" />
<result property="businessCreateTime" column="business_create_time" />
</resultMap>
<sql id="selectSettlementCustomersPo">
select * from settlement_customers
</sql>
<sql id="selectSettlementCustomersPo1">
<where>
<if test="createByName != null and createByName != ''">
and create_by_name like concat('%', #{createByName}, '%')
</if>
<if test="updateByName != null and updateByName != ''">
and update_by_name like concat('%', #{updateByName}, '%')
</if>
<if test="topOrganizationId != null ">
and top_organization_id = #{topOrganizationId}
</if>
<if test="organizationId != null ">
and organization_id = #{organizationId}
</if>
<if test="organizationName != null and organizationName != ''">
and organization_name like concat('%', #{organizationName}, '%')
</if>
<if test="settlementCustomersCode != null and settlementCustomersCode != ''">
and settlement_customers_code = #{settlementCustomersCode}
</if>
<if test="settlementEntityId != null ">
and settlement_entity_id = #{settlementEntityId}
</if>
<if test="settlementEntity != null and settlementEntity != ''">
and settlement_entity = #{settlementEntity}
</if>
<if test="settlementMethod != null and settlementMethod != ''">
and settlement_method = #{settlementMethod}
</if>
<if test="settlementMethodCode != null and settlementMethodCode != ''">
and settlement_method_code = #{settlementMethodCode}
</if>
<if test="settlementDirection != null and settlementDirection != ''">
and settlement_direction = #{settlementDirection}
</if>
<if test="settlementDirectionCode != null and settlementDirectionCode != ''">
and settlement_direction_code = #{settlementDirectionCode}
</if>
<if test="bankName != null and bankName != ''">
and bank_name like concat('%', #{bankName}, '%')
</if>
<if test="bankCardNumber != null and bankCardNumber != ''">
and bank_card_number = #{bankCardNumber}
</if>
<if test="bankBindingName != null and bankBindingName != ''">
and bank_binding_name like concat('%', #{bankBindingName}, '%')
</if>
</where>
<sql id="business_document_where">
<if test="settlementCustomersDO.businessFlow != null and settlementCustomersDO.businessFlow != ''">
and bd.business_flow like concat('%', #{settlementCustomersDO.businessFlow}, '%')
</if>
<if test="settlementCustomersDO.originalBusinessNum != null and settlementCustomersDO.originalBusinessNum != ''">
and bd.original_business_num like concat('%', #{settlementCustomersDO.originalBusinessNum}, '%')
</if>
<if test="settlementCustomersDO.serviceItemsName != null and settlementCustomersDO.serviceItemsName != ''">
and bd.service_items_name like concat('%', #{settlementCustomersDO.serviceItemsName}, '%')
</if>
<if test="settlementCustomersDO.firstSubjectName != null and settlementCustomersDO.firstSubjectName != ''">
and bd.first_subject_name like concat('%', #{settlementCustomersDO.firstSubjectName}, '%')
</if>
<if test="settlementCustomersDO.secondSubjectName != null and settlementCustomersDO.secondSubjectName != ''">
and bd.second_subject_name like concat('%', #{settlementCustomersDO.secondSubjectName}, '%')
</if>
<if test="settlementCustomersDO.businessState != null">
and bd.business_state = #{settlementCustomersDO.businessState}
</if>
<if test="settlementCustomersDO.documentType != null and settlementCustomersDO.documentType != ''">
and bd.document_type like concat('%', #{settlementCustomersDO.documentType}, '%')
</if>
<if test="settlementCustomersDO.documentTypeCode != null and settlementCustomersDO.documentTypeCode != ''">
and bd.document_type_code = #{settlementCustomersDO.documentTypeCode}
</if>
</sql>
<select id="queryList" parameterType="com.mhd.bms.domain.settlementCustomers.repository.todo.SettlementCustomersDO"
resultMap="SettlementCustomersResult">
select
a.*,b.SETTLEMENT_CURRENCY
from settlement_customers a left join "NGWL_TEST_USER"."USER_SHIPPER" b on a.settlement_entity_id = b.user_id
a.*,
b.SETTLEMENT_CURRENCY as settlement_currency,
bd.business_document_id,
bd.business_flow,
bd.original_business_num,
bd.service_items_name,
bd.first_subject_name,
bd.second_subject_name,
bd.business_state,
bd.document_type,
bd.document_type_code,
bd.create_time as business_create_time
from settlement_customers a
left join "NGWL_TEST_USER"."USER_SHIPPER" b on a.settlement_entity_id = b.user_id
<choose>
<when test="(settlementCustomersDO.businessFlow != null and settlementCustomersDO.businessFlow != '')
or (settlementCustomersDO.originalBusinessNum != null and settlementCustomersDO.originalBusinessNum != '')
or (settlementCustomersDO.serviceItemsName != null and settlementCustomersDO.serviceItemsName != '')
or (settlementCustomersDO.firstSubjectName != null and settlementCustomersDO.firstSubjectName != '')
or (settlementCustomersDO.secondSubjectName != null and settlementCustomersDO.secondSubjectName != '')
or settlementCustomersDO.businessState != null
or (settlementCustomersDO.documentType != null and settlementCustomersDO.documentType != '')
or (settlementCustomersDO.documentTypeCode != null and settlementCustomersDO.documentTypeCode != '')">
inner join business_document bd on bd.settlement_customers_code = a.settlement_customers_code and bd.del_flag = 1
</when>
<otherwise>
left join business_document bd on bd.business_document_id = (
select max(business_document_id) from business_document
where settlement_customers_code = a.settlement_customers_code and del_flag = 1
)
</otherwise>
</choose>
where a.del_flag = 1
<include refid="common_where"/>
ORDER BY create_time IS NULL, create_time DESC
ORDER BY a.create_time IS NULL, a.create_time DESC, bd.create_time DESC
</select>
<select id="querySettlementObjects"
resultType="com.mhd.bms.domain.settlementCustomers.repository.po.SettlementCustomersPO">
select
@@ -115,15 +129,38 @@
<if test="settlementCustomersDO.settlementMethod != null and settlementCustomersDO.settlementMethod != ''">
and a.settlement_method like concat('%', #{settlementCustomersDO.settlementMethod}, '%')
</if>
<if test="settlementCustomersDO.settlementMethodCode != null and settlementCustomersDO.settlementMethodCode != ''">
and a.settlement_method_code = #{settlementCustomersDO.settlementMethodCode}
</if>
<if test="settlementCustomersDO.remark != null and settlementCustomersDO.remark != ''">
and a.remark like concat('%', #{settlementCustomersDO.remark}, '%')
</if>
<if test="settlementCustomersDO.createTimeStart != null and settlementCustomersDO.createTimeStart != ''">
AND date_format(a.create_time,'%Y-%m-%d') <![CDATA[>=]]> #{settlementCustomersDO.createTimeStart}
</if>
<if test="settlementCustomersDO.createTimeEnd != null and settlementCustomersDO.createTimeEnd != ''">
AND date_format(a.create_time,'%Y-%m-%d') <![CDATA[<=]]> #{settlementCustomersDO.createTimeEnd}
</if>
<choose>
<when test="(settlementCustomersDO.businessFlow != null and settlementCustomersDO.businessFlow != '')
or (settlementCustomersDO.originalBusinessNum != null and settlementCustomersDO.originalBusinessNum != '')
or (settlementCustomersDO.serviceItemsName != null and settlementCustomersDO.serviceItemsName != '')
or (settlementCustomersDO.firstSubjectName != null and settlementCustomersDO.firstSubjectName != '')
or (settlementCustomersDO.secondSubjectName != null and settlementCustomersDO.secondSubjectName != '')
or settlementCustomersDO.businessState != null
or (settlementCustomersDO.documentType != null and settlementCustomersDO.documentType != '')
or (settlementCustomersDO.documentTypeCode != null and settlementCustomersDO.documentTypeCode != '')">
<include refid="business_document_where"/>
<if test="settlementCustomersDO.createTimeStart != null and settlementCustomersDO.createTimeStart != ''">
and date_format(bd.create_time,'%Y-%m-%d') <![CDATA[>=]]> #{settlementCustomersDO.createTimeStart}
</if>
<if test="settlementCustomersDO.createTimeEnd != null and settlementCustomersDO.createTimeEnd != ''">
and date_format(bd.create_time,'%Y-%m-%d') <![CDATA[<=]]> #{settlementCustomersDO.createTimeEnd}
</if>
</when>
<otherwise>
<if test="settlementCustomersDO.createTimeStart != null and settlementCustomersDO.createTimeStart != ''">
AND date_format(a.create_time,'%Y-%m-%d') <![CDATA[>=]]> #{settlementCustomersDO.createTimeStart}
</if>
<if test="settlementCustomersDO.createTimeEnd != null and settlementCustomersDO.createTimeEnd != ''">
AND date_format(a.create_time,'%Y-%m-%d') <![CDATA[<=]]> #{settlementCustomersDO.createTimeEnd}
</if>
</otherwise>
</choose>
<if test="settlementCustomersDO.createByName != null and settlementCustomersDO.createByName != ''">
and a.create_by_name like concat('%', #{settlementCustomersDO.createByName}, '%')
</if>
@@ -143,4 +180,4 @@
and a.customer_type_code = #{settlementCustomersDO.customerTypeCode}
</if>
</sql>
</mapper>
</mapper>
@@ -64,7 +64,7 @@ public class DeliveTaskApplicationService {
// 指派给我的:已接收(operators_by = 当前用户)
deliveTaskDO.setOperatorsBy(loginUser.getUserid());
} else if (!handoverList && (tabType == null || tabType == 2L)) {
// 任务大厅:未领取任务池(含入库审核收货、出库生成拣货单等自动下发的任务),不按下发人过滤
// 任务大厅:未领取且 PC 未处理的任务池(含入库审核收货、出库生成拣货单等自动下发的任务),不按下发人过滤
if (tabType == null) {
deliveTaskDO.setTabType(2L);
}
@@ -99,7 +99,7 @@ public class DeliveTaskImpl extends ServiceImpl<DeliveTaskMapper, DeliveTask> im
@Override
public List<DeliveTaskPO> queryListApp(DeliveTaskDO deliveTaskDO)
{
// App 列表条件见 DeliveTaskMapper.queryListApp / selectDeliveTaskPoApp1tabType=2 任务大厅 / tabType=1 指派给我)
// App 列表条件见 DeliveTaskMapper.queryListApp / selectDeliveTaskPoApp1tabType=2 任务大厅且排除 PC 已处理 / tabType=1 指派给我)
List<DeliveTaskPO> deliveTaskPOS = deliveTaskMapper.queryListApp(deliveTaskDO);
if (deliveTaskDO.getTaskType() == 7){
statistics(deliveTaskPOS);
@@ -32,7 +32,7 @@ public class DeliveTaskAppApi extends BaseController {
/**
* 分页查询下发任务列表。条件:del_flag=1、当前用户 organization_id、绑定仓库(未传 warehouseId 时取用户仓库绑定)、
* {@code tabType=2} 任务大厅(operators_name 为空,含收货/上架/拣货等自动下发任务)、
* {@code tabType=2} 任务大厅(operators_name 为空,且关联业务单未在 PC 端处理/指派,含收货/上架/拣货等自动下发任务)、
* {@code tabType=1} 指派给我的(operators_by=当前用户);
* {@code taskType=7} 出库交接列表(按 handoverQueryType 过滤,不限制 operators_name 为空);不按 task_status 默认过滤。
*/
@@ -69,6 +69,49 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
and (operators_name IS NULL OR operators_name = '')
</sql>
<!-- 任务大厅 tabType=2:排除 PC 端已处理/已指派的关联业务单(delive_task 作业人仍为空时,业务单可能已在 PC 作业) -->
<sql id="deliveTaskHallExcludePcProcessedFilter">
and NOT (
(task_type = 1 AND EXISTS (
SELECT 1 FROM stock_receipt_order biz
WHERE biz.receipt_order_number = delive_task.tracking_number AND biz.del_flag = 1
AND (biz.status >= 2 OR (biz.operators_by IS NOT NULL AND biz.operators_by != 0))
))
OR (task_type = 2 AND EXISTS (
SELECT 1 FROM stock_shelf_order biz
WHERE biz.shelf_order_number = delive_task.tracking_number AND biz.del_flag = 1
AND (biz.status >= 2 OR (biz.operators_by IS NOT NULL AND biz.operators_by != 0))
))
OR (task_type = 3 AND EXISTS (
SELECT 1 FROM stock_out_task_order biz
WHERE biz.task_number = delive_task.tracking_number AND biz.del_flag = 1
AND (biz.status >= 2 OR (biz.operators_by IS NOT NULL AND biz.operators_by != 0))
))
OR (task_type = 4 AND (
EXISTS (
SELECT 1 FROM review_order biz
WHERE biz.review_order_number = delive_task.tracking_number AND biz.del_flag = 1
AND biz.review_status >= 2
)
OR EXISTS (
SELECT 1 FROM stock_out_order biz
WHERE biz.out_order_number = delive_task.tracking_number AND biz.del_flag = 1
AND (biz.check_status >= 2 OR (biz.check_operators_by IS NOT NULL AND biz.check_operators_by != 0))
)
))
OR (task_type = 5 AND EXISTS (
SELECT 1 FROM shift_manage biz
WHERE biz.shift_number = delive_task.tracking_number AND biz.del_flag = 1
AND (biz.shift_status >= 3 OR (biz.operators_by IS NOT NULL AND biz.operators_by != 0))
))
OR (task_type = 6 AND EXISTS (
SELECT 1 FROM investigation_manage biz
WHERE biz.investigation_number = delive_task.tracking_number AND biz.del_flag = 1
AND (biz.investigation_status >= 3 OR (biz.operators_by IS NOT NULL AND biz.operators_by != 0))
))
)
</sql>
<sql id="selectDeliveTaskPo1">
<where>
del_flag = 1
@@ -210,10 +253,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="tabType != null and tabType==1">
and operators_by = #{operatorsBy}
</if>
<!-- 任务大厅 tabType=2:未领取;出库交接 taskType=7 不按 operators_name 过滤 -->
<!-- 任务大厅 tabType=2:未领取;出库交接 taskType=7 不按 operators_name / PC已处理 过滤 -->
<if test="tabType != null and tabType==2">
<if test="taskType == null or taskType != 7">
<include refid="deliveTaskHallUnassignedFilter"/>
<include refid="deliveTaskHallExcludePcProcessedFilter"/>
</if>
</if>
<if test="operatorsName != null and operatorsName != ''">
@@ -399,6 +443,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
WHERE
del_flag = 1
<include refid="deliveTaskHallUnassignedFilter"/>
<include refid="deliveTaskHallExcludePcProcessedFilter"/>
<include refid="selectDeliveTaskPo2"/>
) taskSum