|
@ -1,25 +1,35 @@ |
|
|
package com.qs.serve.modules.pms.controller; |
|
|
package com.qs.serve.modules.pms.controller; |
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
|
import com.qs.serve.common.framework.mybatis.join.JoinUtil; |
|
|
import com.qs.serve.common.model.annotation.SysLog; |
|
|
import com.qs.serve.common.model.annotation.SysLog; |
|
|
import com.qs.serve.common.model.dto.PageVo; |
|
|
import com.qs.serve.common.model.dto.PageVo; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.model.dto.R; |
|
|
import com.qs.serve.common.model.enums.BizType; |
|
|
import com.qs.serve.common.model.enums.BizType; |
|
|
import com.qs.serve.common.model.enums.SystemModule; |
|
|
import com.qs.serve.common.model.enums.SystemModule; |
|
|
import com.qs.serve.common.util.PageUtil; |
|
|
import com.qs.serve.common.util.PageUtil; |
|
|
|
|
|
import com.qs.serve.modules.pms.entity.PmsProcess; |
|
|
|
|
|
import com.qs.serve.modules.pms.entity.PmsProduct; |
|
|
|
|
|
import com.qs.serve.modules.pms.entity.dto.PmsProcessReaBatch; |
|
|
|
|
|
import com.qs.serve.modules.pms.entity.dto.PmsProductReaBatch; |
|
|
|
|
|
import com.qs.serve.modules.pms.service.PmsProcessService; |
|
|
|
|
|
import com.qs.serve.modules.pms.service.PmsProductService; |
|
|
import lombok.AllArgsConstructor; |
|
|
import lombok.AllArgsConstructor; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
import org.springframework.security.access.prepost.PreAuthorize; |
|
|
import org.springframework.security.access.prepost.PreAuthorize; |
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
import org.springframework.web.bind.annotation.*; |
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
|
import com.qs.serve.modules.pms.entity.PmsProductProcess; |
|
|
import com.qs.serve.modules.pms.entity.PmsProductProcess; |
|
|
import com.qs.serve.modules.pms.service.PmsProductProcessService; |
|
|
import com.qs.serve.modules.pms.service.PmsProductProcessService; |
|
|
|
|
|
|
|
|
import javax.validation.Valid; |
|
|
import javax.validation.Valid; |
|
|
|
|
|
import java.util.ArrayList; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
|
|
|
|
import java.util.stream.Collectors; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 生产计件 产品工序 |
|
|
* 生产计件 产品工序关联 |
|
|
* @author YenHex |
|
|
* @author YenHex |
|
|
* @since 2022-08-05 |
|
|
* @since 2022-08-05 |
|
|
*/ |
|
|
*/ |
|
@ -30,6 +40,8 @@ import java.util.List; |
|
|
public class PmsProductProcessController { |
|
|
public class PmsProductProcessController { |
|
|
|
|
|
|
|
|
private PmsProductProcessService pmsProductProcessService; |
|
|
private PmsProductProcessService pmsProductProcessService; |
|
|
|
|
|
private PmsProductService pmsProductService; |
|
|
|
|
|
private PmsProcessService pmsProcessService; |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 翻页查询 |
|
|
* 翻页查询 |
|
@ -42,35 +54,94 @@ public class PmsProductProcessController { |
|
|
PageUtil.startPage(); |
|
|
PageUtil.startPage(); |
|
|
LambdaQueryWrapper<PmsProductProcess> productProcessWrapper = new LambdaQueryWrapper<>(param); |
|
|
LambdaQueryWrapper<PmsProductProcess> productProcessWrapper = new LambdaQueryWrapper<>(param); |
|
|
List<PmsProductProcess> list = pmsProductProcessService.list(productProcessWrapper); |
|
|
List<PmsProductProcess> list = pmsProductProcessService.list(productProcessWrapper); |
|
|
|
|
|
JoinUtil.relate(list); |
|
|
return R.byPageHelperList(list); |
|
|
return R.byPageHelperList(list); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 根据ID查询 |
|
|
* 翻页查询 |
|
|
* @param id |
|
|
* @param param |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@GetMapping("/getById/{id}") |
|
|
@GetMapping("/list") |
|
|
@SysLog(module = SystemModule.PIECE, title = "产品工序", biz = BizType.QUERY) |
|
|
|
|
|
@PreAuthorize("hasRole('pms:productProcess:query')") |
|
|
@PreAuthorize("hasRole('pms:productProcess:query')") |
|
|
public R<PmsProductProcess> getById(@PathVariable("id") String id){ |
|
|
public R<List<PmsProductProcess>> getList(PmsProductProcess param){ |
|
|
PmsProductProcess pmsProductProcess = pmsProductProcessService.getById(id); |
|
|
LambdaQueryWrapper<PmsProductProcess> productProcessWrapper = new LambdaQueryWrapper<>(param); |
|
|
return R.ok(pmsProductProcess); |
|
|
List<PmsProductProcess> list = pmsProductProcessService.list(productProcessWrapper); |
|
|
|
|
|
JoinUtil.relate(list); |
|
|
|
|
|
return R.ok(list); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 产品批量关联工序 |
|
|
|
|
|
* @param param |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
@PostMapping("/editBatchProductRea") |
|
|
|
|
|
@SysLog(module = SystemModule.PIECE, title = "产品工序关联",desc = "产品批量关联工序", biz = BizType.UPDATE) |
|
|
|
|
|
@PreAuthorize("hasRole('pms:productProcess:edit')") |
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
|
public R<?> editBatchProductRea(@RequestBody @Valid PmsProductReaBatch param){ |
|
|
|
|
|
String productId = param.getProductId(); |
|
|
|
|
|
List<String> paramProcessIdList = param.getProcessIdList(); |
|
|
|
|
|
LambdaQueryWrapper<PmsProductProcess> lqw = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqw.eq(PmsProductProcess::getProductId,productId); |
|
|
|
|
|
if(param.getProcessIdList().size() < 1){ |
|
|
|
|
|
pmsProductProcessService.remove(lqw); |
|
|
|
|
|
return R.ok(); |
|
|
|
|
|
} |
|
|
|
|
|
List<PmsProductProcess> list = pmsProductProcessService.list(lqw); |
|
|
|
|
|
List<String> dbProcessIds = list.stream().map(PmsProductProcess::getProcessId).collect(Collectors.toList()); |
|
|
|
|
|
List<String> nwProcessIds = paramProcessIdList.stream().filter(pid->!dbProcessIds.contains(pid)).collect(Collectors.toList()); |
|
|
|
|
|
List<String> rmProcessIds = dbProcessIds.stream().filter(pid->!paramProcessIdList.contains(pid)).collect(Collectors.toList()); |
|
|
|
|
|
LambdaQueryWrapper<PmsProductProcess> rmlqw = new LambdaQueryWrapper<>(); |
|
|
|
|
|
rmlqw.eq(PmsProductProcess::getProductId,productId); |
|
|
|
|
|
rmlqw.in(PmsProductProcess::getProcessId,rmProcessIds); |
|
|
|
|
|
pmsProductProcessService.remove(rmlqw); |
|
|
|
|
|
List<PmsProductProcess> newList = nwProcessIds.stream().map(procId->{ |
|
|
|
|
|
PmsProductProcess ppp = new PmsProductProcess(); |
|
|
|
|
|
ppp.setProductId(productId); |
|
|
|
|
|
ppp.setProcessId(procId); |
|
|
|
|
|
return ppp; |
|
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
|
pmsProductProcessService.saveBatch(newList); |
|
|
|
|
|
return R.error(); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 根据ID更新 |
|
|
* 产品批量关联工序 |
|
|
* @param param |
|
|
* @param param |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@PostMapping("/updateById") |
|
|
@PostMapping("/editBatchProcessRea") |
|
|
@SysLog(module = SystemModule.PIECE, title = "产品工序", biz = BizType.UPDATE) |
|
|
@SysLog(module = SystemModule.PIECE, title = "产品工序关联",desc = "产品批量关联工序", biz = BizType.UPDATE) |
|
|
@PreAuthorize("hasRole('pms:productProcess:update')") |
|
|
@PreAuthorize("hasRole('pms:productProcess:edit')") |
|
|
public R<?> updateById(@RequestBody @Valid PmsProductProcess param){ |
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
boolean result = pmsProductProcessService.updateById(param); |
|
|
public R<?> editBatchProcessRea(@RequestBody @Valid PmsProcessReaBatch param){ |
|
|
return R.isTrue(result); |
|
|
String processId = param.getProcessId(); |
|
|
|
|
|
List<String> paramProductIdList = param.getProductIdList(); |
|
|
|
|
|
LambdaQueryWrapper<PmsProductProcess> lqw = new LambdaQueryWrapper<>(); |
|
|
|
|
|
lqw.eq(PmsProductProcess::getProcessId,processId); |
|
|
|
|
|
if(param.getProductIdList().size() < 1){ |
|
|
|
|
|
pmsProductProcessService.remove(lqw); |
|
|
|
|
|
return R.ok(); |
|
|
|
|
|
} |
|
|
|
|
|
List<PmsProductProcess> list = pmsProductProcessService.list(lqw); |
|
|
|
|
|
List<String> dbProductIds = list.stream().map(PmsProductProcess::getProductId).collect(Collectors.toList()); |
|
|
|
|
|
List<String> nwProductIds = paramProductIdList.stream().filter(pid->!dbProductIds.contains(pid)).collect(Collectors.toList()); |
|
|
|
|
|
List<String> rmProductIds = dbProductIds.stream().filter(pid->!paramProductIdList.contains(pid)).collect(Collectors.toList()); |
|
|
|
|
|
LambdaQueryWrapper<PmsProductProcess> rmlqw = new LambdaQueryWrapper<>(); |
|
|
|
|
|
rmlqw.eq(PmsProductProcess::getProcessId,processId); |
|
|
|
|
|
rmlqw.in(PmsProductProcess::getProductId,rmProductIds); |
|
|
|
|
|
pmsProductProcessService.remove(rmlqw); |
|
|
|
|
|
List<PmsProductProcess> newList = nwProductIds.stream().map(prodId->{ |
|
|
|
|
|
PmsProductProcess ppp = new PmsProductProcess(); |
|
|
|
|
|
ppp.setProductId(prodId); |
|
|
|
|
|
ppp.setProcessId(processId); |
|
|
|
|
|
return ppp; |
|
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
|
pmsProductProcessService.saveBatch(newList); |
|
|
|
|
|
return R.error(); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
@ -79,21 +150,34 @@ public class PmsProductProcessController { |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@PostMapping("/save") |
|
|
@PostMapping("/save") |
|
|
@SysLog(module = SystemModule.PIECE, title = "产品工序", biz = BizType.INSERT) |
|
|
@SysLog(module = SystemModule.PIECE, title = "产品工序关联", biz = BizType.UPDATE) |
|
|
@PreAuthorize("hasRole('pms:productProcess:insert')") |
|
|
@PreAuthorize("hasRole('pms:productProcess:edit')") |
|
|
public R<?> save(@RequestBody @Valid PmsProductProcess param){ |
|
|
public R<?> save(@RequestBody @Valid PmsProductProcess param){ |
|
|
boolean result = pmsProductProcessService.save(param); |
|
|
boolean result = pmsProductProcessService.save(param); |
|
|
return R.isTrue(result); |
|
|
return R.isTrue(result); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 删除产品工序 |
|
|
* 根据ID更新 |
|
|
|
|
|
* @param param |
|
|
|
|
|
* @return |
|
|
|
|
|
*/ |
|
|
|
|
|
@PostMapping("/updateById") |
|
|
|
|
|
@SysLog(module = SystemModule.PIECE, title = "产品工序关联", biz = BizType.UPDATE) |
|
|
|
|
|
@PreAuthorize("hasRole('pms:productProcess:edit')") |
|
|
|
|
|
public R<?> updateById(@RequestBody @Valid PmsProductProcess param){ |
|
|
|
|
|
boolean result = pmsProductProcessService.updateById(param); |
|
|
|
|
|
return R.isTrue(result); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
* 删除产品工序关联 |
|
|
* @param id |
|
|
* @param id |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@DeleteMapping("/deleteById/{id}") |
|
|
@DeleteMapping("/deleteById/{id}") |
|
|
@SysLog(module = SystemModule.PIECE, title = "产品工序", biz = BizType.DELETE) |
|
|
@SysLog(module = SystemModule.PIECE, title = "产品工序关联", biz = BizType.DELETE) |
|
|
@PreAuthorize("hasRole('pms:productProcess:delete')") |
|
|
@PreAuthorize("hasRole('pms:productProcess:edit')") |
|
|
public R<?> deleteById(@PathVariable("id") String id){ |
|
|
public R<?> deleteById(@PathVariable("id") String id){ |
|
|
boolean result = pmsProductProcessService.removeById(id); |
|
|
boolean result = pmsProductProcessService.removeById(id); |
|
|
return R.isTrue(result); |
|
|
return R.isTrue(result); |
|
|