Commit 3de93391 authored by chicheng's avatar chicheng

Merge remote-tracking branch 'origin/dev' into dev

parents 50606a71 3e703a3a
......@@ -10,6 +10,7 @@ import com.ximai.common.enums.BusinessType;
import com.ximai.common.utils.SecurityUtils;
import com.ximai.common.utils.data.ExceptionUtil;
import com.ximai.common.utils.data.StringUtils;
import com.ximai.common.utils.poi.ExcelUtil;
import com.ximai.mes.constant.TaskWorkunitStatusEnum;
import com.ximai.mes.md.domain.MdWorkunit;
import com.ximai.mes.md.domain.MdWorkunitWorker;
......@@ -25,6 +26,9 @@ import com.ximai.mes.pro.mapper.ProFeedbackMapper;
import com.ximai.mes.pro.mapper.task.ProTaskAssistProcessMapper;
import com.ximai.mes.pro.service.IProFeedbackService;
import com.ximai.mes.pro.service.proWorkOrder.IProWorkOrderSoSizeItemService;
import com.ximai.mes.report.response.FeedbackResponseExportByList;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
......@@ -42,6 +46,7 @@ import java.util.stream.Collectors;
* @date 2022-07-10
*/
@RestController
@Api(tags = "生产报工记录")
@RequestMapping("/mes/pro/feedback")
public class ProFeedbackController extends BaseController {
@Autowired
......@@ -114,7 +119,70 @@ public class ProFeedbackController extends BaseController {
return getDataTable(proFeedbackVoList);
}
/**
* 查询生产报工记录列表
*/
@PostMapping("/list/export")
@ApiOperation("查询生产报工记录列表导出")
public void listExport(HttpServletResponse response,@RequestBody ProFeedbackCheckListDto proFeedbackCheckListDto) {
ProFeedback proFeedback = new ProFeedback();
BeanUtils.copyProperties(proFeedbackCheckListDto,proFeedback);
QueryWrapper<ProFeedback> query = new QueryWrapper<>();
query.eq(StringUtils.isNotEmpty(proFeedback.getFeedbackType()), "f.feedback_type", proFeedback.getFeedbackType());
query.eq(StringUtils.isNotEmpty(proFeedback.getStatus()), "f.status", proFeedback.getStatus());
query.eq(StringUtils.isNotEmpty(proFeedback.getAssistProcessCode()), "ap.assist_process_code", proFeedback.getAssistProcessCode());
query.eq(StringUtils.isNotEmpty(proFeedback.getWorkstationName()), "f.workstation_name", proFeedback.getWorkstationName());
query.eq(StringUtils.isNotEmpty(proFeedback.getItemName()), "it.item_name", proFeedback.getItemName());
query.eq(StringUtils.isNotEmpty(proFeedback.getWorkorderCode()), "f.workorder_code", proFeedback.getWorkorderCode());
query.eq(StringUtils.isNotEmpty(proFeedback.getSapItemCode()), "it.sap_item_code", proFeedback.getSapItemCode());
query.like(StringUtils.isNotEmpty(proFeedback.getOrderCode()), "workorder.order_code",
proFeedback.getOrderCode());
query.like(StringUtils.isNotEmpty(proFeedback.getOrderSerial()), "workorder.order_serial",
proFeedback.getOrderSerial());
query.like(StringUtils.isNotEmpty(proFeedback.getCustomerDrawingNo()), "workorder.Customer_Drawing_No",
proFeedback.getCustomerDrawingNo());
query.eq(proFeedback.getLastFeedback() != null , "f.Last_Feedback", proFeedback.getLastFeedback());
// query.eq(StringUtils.isNotEmpty(proFeedback.getUserId()), "pww.user_id", proFeedback.getUserId());
query.eq(StringUtils.isNotEmpty(proFeedback.getWorkunitId()), "tw.workunit_id", proFeedback.getWorkunitId());
if(proFeedbackCheckListDto.getIsCheckUser() && StringUtils.isEmpty(proFeedback.getWorkunitId())){
List<MdWorkunitVo> mdWorkunitVolist = mdWorkunitService.selectMdWorkunitListByUser(new QueryWrapper<MdWorkunit>().eq("user_name", SecurityUtils.getUsername()));
if(mdWorkunitVolist.size() < 1){
ExcelUtil<ProFeedbackVo> util = new ExcelUtil<>(ProFeedbackVo.class);
util.exportExcel(response, new ArrayList<>(), "生产报工记录列表","生产报工记录列表");
}
query.in(mdWorkunitVolist.size() > 0 , "tw.workunit_id", mdWorkunitVolist.stream().map(mdWorkunitVo -> mdWorkunitVo.getWorkunitId()).collect(Collectors.toList()));
}
query.eq(StringUtils.isNotEmpty(proFeedback.getTaskWorkunitId()), "tw.task_workunit_id", proFeedback.getTaskWorkunitId());
query.between(StringUtils.isNotEmpty(proFeedback.getCreateStartTime()) && StringUtils.isNotEmpty(proFeedback.getCreateEndTime()), "f.update_time", proFeedback.getCreateStartTime(), proFeedback.getCreateEndTime());
query.like(StringUtils.isNotEmpty(proFeedback.getNickName()), "f.nick_name", proFeedback.getNickName());
query.notIn("tw.status", TaskWorkunitStatusEnum.CLOSE.getStatus());
query.orderByAsc("f.feedback_time");
List<ProFeedbackVo> list = proFeedbackService.queryProFeedbackListJoinTaskWorkUnit(query);
List<ProFeedbackVo> proFeedbackVoList = new ArrayList<>();
if (proFeedback.getUserId() != null) {
List<MdWorkunitWorker> mdWorkunitWorkers = mdWorkunitWorkerMapper.selectListByQw(new QueryWrapper<MdWorkunitWorker>().eq("user_id", proFeedback.getUserId()));
Set<Long> collect = mdWorkunitWorkers.stream().map(MdWorkunitWorker::getWorkunitId).collect(Collectors.toSet());
// objects = list.stream().filter(x -> !collect.add(x.getWorkunitId())).sorted(Comparator.comparing(ProFeedbackVo::getFeedbackTime).reversed()).collect(Collectors.toList());
proFeedbackVoList = list.stream().filter(x -> !collect.add(x.getWorkunitId())).sorted(Comparator.comparing(ProFeedbackVo::getUpdateTime).reversed()).collect(Collectors.toList());
}
proFeedbackVoList = proFeedbackVoList.isEmpty() ? list : proFeedbackVoList;
proFeedbackVoList.forEach(s->{
if(IMdWorkstationService.OUTSOURCE_WORKSTATION_ID.equals(s.getWorkstationId())){
s.setAssistProcessCode(s.getTaskCode());
}
if(s.getFeedbackType().equals("SELF")){
s.setFeedbackType("自行报工");
}else{
s.setFeedbackType("外协报工");
}
});
ExcelUtil<ProFeedbackVo> util = new ExcelUtil<>(ProFeedbackVo.class);
util.exportExcel(response, list, "生产报工记录列表","生产报工记录列表");
}
/**
* 查询生产报工记录列表
*/
......
......@@ -9,14 +9,17 @@ import com.ximai.common.enums.BusinessType;
import com.ximai.common.utils.SecurityUtils;
import com.ximai.common.utils.data.ExceptionUtil;
import com.ximai.common.utils.data.StringUtils;
import com.ximai.common.utils.poi.ExcelUtil;
import com.ximai.mes.pro.domain.proWorkOrder.ProWorkorder;
import com.ximai.mes.pro.domain.task.ProTaskWorkunit;
import com.ximai.mes.pro.domain.vo.ProFeedbackVo;
import com.ximai.mes.pro.domain.vo.ProTaskVo;
import com.ximai.mes.pro.domain.vo.task.ProTaskWorkunitQuery;
import com.ximai.mes.pro.domain.vo.task.TaskWorkunitOutsourceSplitParam;
import com.ximai.mes.pro.domain.vo.task.TaskWorkunitToOutsourceParam;
import com.ximai.mes.pro.domain.vo.task.TaskWorkunitToSelfMadeParam;
import com.ximai.mes.pro.service.task.IProTaskWorkunitService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -38,6 +41,7 @@ import java.util.Objects;
*/
@RestController
@RequestMapping("/mes/pro/taskWorkunit")
@Api(tags = "任务工作单元")
public class ProTaskWorkunitController extends BaseController {
@Autowired
private IProTaskWorkunitService proTaskWorkunitService;
......@@ -53,7 +57,25 @@ public class ProTaskWorkunitController extends BaseController {
List<ProTaskWorkunit> lists = proTaskWorkunitService.schedulingList(proTaskWorkunit);
return getDataTable(lists);
}
/**
* 任务工作单元列表
*/
@PreAuthorize("@ss.hasPermi('mes:pro:taskWorkunit:list')")
@PostMapping("/list/export")
@ApiOperation("任务工作单元列表导出")
public void listExport(HttpServletResponse response,@RequestBody ProTaskWorkunitQuery proTaskWorkunit) {
List<ProTaskWorkunit> lists = proTaskWorkunitService.schedulingList(proTaskWorkunit);
lists.stream().forEach(proTaskWorkunit1 -> {
if(StringUtils.isNotEmpty(proTaskWorkunit1.getTaskBatch())){
String[] spli = proTaskWorkunit1.getTaskBatch().split("-");
if(spli.length > 1){
proTaskWorkunit1.setTaskBatch(spli[1]);
}
}
});
ExcelUtil<ProTaskWorkunit> util = new ExcelUtil<>(ProTaskWorkunit.class);
util.exportExcel(response, lists, "任务工作单元列表","任务工作单元列表");
}
@ApiOperation("查询任务工作单元列表")
@PostMapping("/workorderList")
public List<ProWorkorder> listWorkorder(@RequestBody ProTaskWorkunitQuery proTaskWorkunit) {
......
......@@ -110,12 +110,16 @@ public class ProTaskWorkunit extends BaseEntity {
*/
@ApiModelProperty("计划开始时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "计划开始时间")
private Date scheduleStartDate;
/**
* 预计结束时间
*/
@ApiModelProperty("计划结束时间")
@Excel(name = "计划结束时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date scheduleEndDate;
......@@ -135,18 +139,24 @@ public class ProTaskWorkunit extends BaseEntity {
@ApiModelProperty("工序名")
@TableField(exist = false)
@Excel(name = "工序名")
private String processName;
@TableField(exist = false)
@ApiModelProperty("作业单元编码")
@Excel(name = "作业单元编码")
private String workunitCode;
@TableField(exist = false)
@ApiModelProperty("作业单元名称")
@Excel(name = "作业单元名称")
private String workunitName;
@TableField(exist = false)
@ApiModelProperty("任务编码")
@Excel(name = "任务编码")
private String taskCode;
//
// @TableField(exist = false)
......@@ -198,23 +208,29 @@ public class ProTaskWorkunit extends BaseEntity {
@TableField(exist = false)
@ApiModelProperty("工单编号")
@Excel(name = "工单编号")
private String workorderCode;
@TableField(exist = false)
@ApiModelProperty("待生产数量")
@Excel(name = "可加工数量")
private BigDecimal quantityWait;
private int percent;
@ApiModelProperty("客户图号")
@TableField(exist = false)
@Excel(name = "产品图号")
private String customerDrawingNo;
@ApiModelProperty("订单单号")
@Excel(name = "订单单号")
private String orderCode;
@ApiModelProperty("项目号")
@Excel(name = "项目号")
private String customerProjectNo;
@ApiModelProperty("任务批号")
@Excel(name = "排产次数")
private String taskBatch;
@ApiModelProperty("标准工时")
......
......@@ -26,12 +26,14 @@ public class ProFeedbackVo {
/**
* 报工单编号
*/
private String feedbackCode;
private String assistProcessCode;
/**
* 报工类型
*/
@Excel(name = "报工类型")
private String feedbackType;
/**
......@@ -151,7 +153,7 @@ public class ProFeedbackVo {
/**
* 本次报工数量
*/
@Excel(name = "本次报工数量")
@Excel(name = "报工数量")
private BigDecimal quantityFeedback;
/**
......@@ -266,6 +268,7 @@ public class ProFeedbackVo {
@ApiModelProperty("作业单元id")
private Long workunitId;
@ApiModelProperty("作业单元名称")
@Excel(name = "作业单元名称")
private String workunitName;
@ApiModelProperty("创建人")
......@@ -294,13 +297,16 @@ public class ProFeedbackVo {
@ApiModelProperty("产品图号")
@TableField(exist = false)
@Excel(name = "产品图号")
private String customerDrawingNo;
/** 异常类型 */
/** 销售订单号 */
@Excel(name = "销售订单号")
private String orderCode;
/** 异常类型 */
@Excel(name = "销售序号")
private String orderSerial;
}
......@@ -699,7 +699,8 @@ public class ProTaskWorkunitServiceImpl implements IProTaskWorkunitService {
}
taskProWorkorderPrintData.setSize(i++);
taskProWorkorderPrintData.setDate(simpleDateFormat1.format(new Date()));
taskProWorkorderPrintData.setQuantity(taskBatchTasks.get(0).getQuantity());
BigDecimal quantity = taskBatchTasks.stream().filter(proTask -> proTask.getIdx().equals("0010")).map(proTask -> proTask.getQuantity()).reduce(BigDecimal.ZERO,BigDecimal::add);
taskProWorkorderPrintData.setQuantity(quantity);
//}
}
return printData;
......
......@@ -112,11 +112,11 @@ public class FeedbackRequest {
private String nickName;
@ApiModelProperty("报工开始")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startDate;
@ApiModelProperty("报工结束")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endDate;
@ApiModelProperty("是否筛查不良")
......
......@@ -48,5 +48,8 @@ public class WorkOrderProgressRequest {
@ApiModelProperty( "产线")
private String lineName;
@ApiModelProperty("订单序号")
private String orderSerial;
@ApiModelProperty("排产次数")
private String taskBatch;
}
......@@ -195,4 +195,10 @@ public class FeedbackResponse extends ProFeedback {
@ApiModelProperty("车间名称")
@Excel(name = "车间名称")
private String workshopName;
@ApiModelProperty("订单序号")
@Excel(name = "订单序号")
private String orderSerial;
@ApiModelProperty("排产次数")
@Excel(name = "排产次数")
private String taskBatch;
}
......@@ -76,5 +76,12 @@ public class WorkOrderProgressListResponse {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "需求时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date requestDate;
@ApiModelProperty("订单序号")
@Excel(name = "订单序号")
private String orderSerial;
@ApiModelProperty("排产次数")
@Excel(name = "排产次数")
private String taskBatch;
}
......@@ -173,6 +173,7 @@
workorder.workorder_Type,
workorder.customer_Project_No,
workorder.order_Code,
workorder.order_serial,
workorder.workorder_Code,
workorder.product_Code,
workorder.product_Name,
......@@ -193,7 +194,9 @@
f.machine_time,
f.feedback_time,
workunit.std_working_time,
workunit.schedule_end_date
workunit.schedule_end_date,
SUBSTRING_INDEX(pt.task_batch, '-', -1) task_batch
from pro_feedback f
left join pro_task_workunit workunit on workunit.task_id = f.task_id
left join pro_task pt on f.task_id = pt.task_id
......@@ -542,7 +545,7 @@
workunit.std_working_time ,
pro_task.task_batch
order by
pro_task.idx
pro_task.task_batch
</select>
<select id="getListByDefect" resultType="com.ximai.mes.report.response.FeedbackResponse">
select
......
......@@ -266,6 +266,7 @@
pw.erp_create_time,
pw.erp_update_time ,
item.line_name,
SUBSTRING_INDEX(task.task_batch, '-', -1) task_batch,
sum(case task.is_last_process when 0 THEN 0 ELSE fe.quantity_qualify + fe.quantity_unqualify END) as quantity_produced
FROM
pro_workorder pw
......@@ -286,6 +287,8 @@
</if>
<if test="lineName != null and lineName !=''">and item.line_name = #{lineName} </if>
<if test="orderSerial != null and orderSerial !=''">and pw.order_serial = #{orderSerial} </if>
<if test="taskBatch != null and taskBatch !=''">and SUBSTRING_INDEX(task.task_batch, '-', -1) = #{taskBatch} </if>
</where>
GROUP BY
pw.workorder_id,
......@@ -363,6 +366,7 @@
pw.in_drawing_no,
pw.erp_create_time,
pw.erp_update_time,
SUBSTRING_INDEX(task.task_batch, '-', -1) ,
item.line_name
</select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment