Browse Source

新品流程ok

master
常熟吴彦祖 2 weeks ago
parent
commit
f95e4cb5b7
  1. 6
      src/main/java/com/xujie/modules/inspection/controller/InspectionController.java
  2. 5
      src/main/java/com/xujie/modules/inspection/data/InspectionScheduleViewVO.java
  3. 5
      src/main/java/com/xujie/modules/inspection/entity/QcPersonList.java
  4. 5
      src/main/java/com/xujie/modules/inspection/mapper/InspectionRequestHeaderMapper.java
  5. 2
      src/main/java/com/xujie/modules/inspection/service/InspectionRequestService.java
  6. 33
      src/main/java/com/xujie/modules/inspection/service/impl/InspectionRequestServiceImpl.java
  7. 41
      src/main/resources/mapper/inspection/InspectionRequestHeaderMapper.xml

6
src/main/java/com/xujie/modules/inspection/controller/InspectionController.java

@ -193,10 +193,12 @@ public class InspectionController {
* 排程视图查询
*/
@GetMapping("/scheduleView")
public R scheduleView(@RequestParam String qcOperator){
public R scheduleView(@RequestParam String qcOperator,
@RequestParam(required = false) String site,
@RequestParam(required = false) String startDate){
List<InspectionScheduleViewVO> list =
inspectionRequestService.queryScheduleView(qcOperator);
inspectionRequestService.queryScheduleView(qcOperator, site, startDate);
return R.ok().put("list", list);
}

5
src/main/java/com/xujie/modules/inspection/data/InspectionScheduleViewVO.java

@ -18,6 +18,11 @@ public class InspectionScheduleViewVO {
*/
private String supplierName;
/**
* PO单号order_ref1
*/
private String poNo;
/**
* 验货地址
*/

5
src/main/java/com/xujie/modules/inspection/entity/QcPersonList.java

@ -6,6 +6,11 @@ import lombok.Data;
@Data
public class QcPersonList extends QueryPage {
/**
* 当前工厂
*/
private String site;
private String userName;
private String userDisplay;

5
src/main/java/com/xujie/modules/inspection/mapper/InspectionRequestHeaderMapper.java

@ -52,7 +52,10 @@ public interface InspectionRequestHeaderMapper extends BaseMapper<InspectionRequ
@Param("remark") String remark
);
List<InspectionScheduleViewVO> queryScheduleView(String qcOperator);
List<InspectionScheduleViewVO> queryScheduleView(@Param("qcOperator") String qcOperator,
@Param("site") String site,
@Param("startDate") Date startDate,
@Param("endDate") Date endDate);
/**
* 开始验货 - 更新头表状态

2
src/main/java/com/xujie/modules/inspection/service/InspectionRequestService.java

@ -57,7 +57,7 @@ public interface InspectionRequestService extends IService<InspectionRequestHead
void schedule(InspectionScheduleVO vo);
List<InspectionScheduleViewVO> queryScheduleView(String qcOperator);
List<InspectionScheduleViewVO> queryScheduleView(String qcOperator, String site, String startDate);
void updateRequest(InspectionRequestHeader header);

33
src/main/java/com/xujie/modules/inspection/service/impl/InspectionRequestServiceImpl.java

@ -642,6 +642,10 @@ public class InspectionRequestServiceImpl extends ServiceImpl<InspectionRequestH
@Override
public PageUtils getQcPersonList(QcPersonList qc) {
// 业务查询必须以前端显式传入的 site 为准避免跨工厂串数
if (qc == null || !StringUtils.hasText(qc.getSite())) {
throw new RuntimeException("请前端传site");
}
IPage<QcPersonList> page = baseMapper.getQcPersonList(new Page<>(qc.getPage(), qc.getLimit()), qc);
return new PageUtils(page);
}
@ -717,13 +721,34 @@ public class InspectionRequestServiceImpl extends ServiceImpl<InspectionRequestH
}
@Override
public List<InspectionScheduleViewVO> queryScheduleView(String qcOperator) {
if (qcOperator == null || qcOperator.trim().isEmpty()) {
public List<InspectionScheduleViewVO> queryScheduleView(String qcOperator, String site, String startDate) {
if (!StringUtils.hasText(qcOperator)) {
throw new RuntimeException("QC人员不能为空");
}
if (!StringUtils.hasText(site)) {
throw new RuntimeException("请前端传site");
}
return baseMapper.queryScheduleView(qcOperator);
Date queryStartDate = resolveScheduleViewStartDate(startDate);
Calendar calendar = Calendar.getInstance();
calendar.setTime(queryStartDate);
calendar.add(Calendar.DAY_OF_MONTH, 9);
Date queryEndDate = calendar.getTime();
return baseMapper.queryScheduleView(qcOperator, site, queryStartDate, queryEndDate);
}
private Date resolveScheduleViewStartDate(String startDate) {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
formatter.setLenient(false);
try {
if (StringUtils.hasText(startDate)) {
return formatter.parse(startDate);
}
return formatter.parse(formatter.format(new Date()));
} catch (Exception e) {
throw new RuntimeException("起始日期格式错误,请使用yyyy-MM-dd");
}
}
@Transactional(rollbackFor = Exception.class)

41
src/main/resources/mapper/inspection/InspectionRequestHeaderMapper.xml

@ -230,17 +230,28 @@
AND h.request_no = #{requestNo}
</select>
<select id="getQcPersonList" resultType="com.xujie.modules.inspection.entity.QcPersonList">
SELECT username, user_display
FROM sys_user
SELECT DISTINCT
a.username AS userName,
a.user_display AS userDisplay
FROM sys_user a
INNER JOIN access_role ar
ON ar.username = a.username
AND ar.site = #{qc.site}
AND ar.role_no = 'QC'
INNER JOIN business_role br
ON br.site = ar.site
AND br.role_no = ar.role_no
AND ISNULL(br.active, 'Y') = 'Y'
<where>
a.status = 1
<if test="qc.userName != null and qc.userName != ''">
AND username LIKE CONCAT('%', #{qc.userName}, '%')
AND a.username LIKE CONCAT('%', #{qc.userName}, '%')
</if>
<if test="qc.userDisplay != null and qc.userDisplay != ''">
AND user_display LIKE CONCAT('%', #{qc.userDisplay}, '%')
AND a.user_display LIKE CONCAT('%', #{qc.userDisplay}, '%')
</if>
</where>
ORDER BY username
ORDER BY a.username
</select>
<delete id="deleteByRequestNo">
@ -292,17 +303,31 @@
SELECT
h.request_no AS requestNo,
s.supplier_name AS supplierName,
d.poNo AS poNo,
h.inspect_address AS inspectAddress,
h.plan_start_date AS planStartDate,
h.plan_end_date AS planEndDate
FROM srm_inspection_request_header h
LEFT JOIN srm_supplier s
ON h.supplier_no = s.supplier_no
WHERE h.qc_operator = #{qcOperator}
ON h.supplier_no = s.supplier_no
AND h.site = s.site
LEFT JOIN (
SELECT
site,
request_no,
MIN(order_ref1) AS poNo
FROM srm_inspect_request_detail
GROUP BY site, request_no
) d
ON d.site = h.site
AND d.request_no = h.request_no
WHERE h.site = #{site}
AND h.qc_operator = #{qcOperator}
AND h.status_db = 'Scheduled'
AND h.plan_start_date IS NOT NULL
AND h.plan_end_date IS NOT NULL
AND h.plan_end_date >= GETDATE()
AND CAST(h.plan_end_date AS DATE) >= CAST(#{startDate} AS DATE)
AND CAST(#{endDate} AS DATE) >= CAST(h.plan_start_date AS DATE)
ORDER BY h.plan_start_date ASC
</select>

Loading…
Cancel
Save