| | |
| | | |
| | | }) |
| | | request.post("/MaterialInventory/saveMaterialOutbound", flowData.value).then((res) => { |
| | | if(res.code==200){ |
| | | if(res.code==200 && res.data==="true"){ |
| | | ElMessage.success(t('basicData.msg.saveSuccess')) |
| | | router.push({path: '/main/ingredientsStock/MaterialOutbound', query:{random:Math.random()}}) |
| | | }else if(res.data==="false1"){ |
| | | ElMessage.warning("数量错误,请刷新再保存") |
| | | }else{ |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | ElMessage.warning(t('basicData.msg.saveFail')) |
| | | } |
| | | }).catch((err)=>{ |
| | | ElMessage.error(t('basicData.msg.ServerConnectionError')) |
| | | router.push("/login") |
| | | }) |
| | | break |
| | | } |
| | |
| | | const type = route.query.type |
| | | const faceOrientation = route.query.faceOrientation |
| | | const lableType = route.query.lableType |
| | | const printType=route.query.printType |
| | | |
| | | onMounted(() => { |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count= list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++){ |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | console.log(printType) |
| | | if(printType==1){ |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count= list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++){ |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | }else if(printType==2){ |
| | | request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | console.log(switchType) |
| | | if (switchType===true){ |
| | | labelList = props.titleList |
| | | }else { |
| | | labelList = dataList[0] |
| | | } |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count = list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++) { |
| | | props.lastList.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | } |
| | | |
| | | ) |
| | | }) |
| | | |
| | | |
| | | // 打印方法 |
| | |
| | | const type = route.query.type |
| | | const faceOrientation = route.query.faceOrientation |
| | | const lableType = route.query.lableType |
| | | const printType=route.query.printType |
| | | |
| | | onMounted(() => { |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count= list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++){ |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | if (printType == 1) { |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count = list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++) { |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | |
| | | } |
| | | }else if(printType==2){ |
| | | request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | console.log(switchType) |
| | | if (switchType===true){ |
| | | labelList = props.titleList |
| | | }else { |
| | | labelList = dataList[0] |
| | | } |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count = list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++) { |
| | | props.lastList.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | ) |
| | | }) |
| | | |
| | | |
| | | // 打印方法 |
| | |
| | | const type = route.query.type |
| | | const faceOrientation = route.query.faceOrientation |
| | | const lableType = route.query.lableType |
| | | const printType=route.query.printType |
| | | |
| | | onMounted(() => { |
| | | request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count= produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++){ |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | if (printType == 1) { |
| | | request.post(`/processCard/getSelectPrintLabel1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count = produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++) { |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | } |
| | | |
| | | } |
| | | |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | }) |
| | | |
| | | } |
| | | }else if(printType==2){ |
| | | request.post(`/processCard/getSelectPrintLabelDetails`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count = produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++) { |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | } |
| | | |
| | | ) |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | |
| | | |
| | | // 打印方法 |
| | |
| | | id += selectRecords[i].id + "|" |
| | | } |
| | | } |
| | | router.push({path: '/main/processCard/PrintLabel', query: {printList: JSON.stringify(selectRecords)}}) |
| | | router.push({ |
| | | path: '/main/processCard/PrintLabel', |
| | | query: {printList: JSON.stringify(selectRecords),printType:1} |
| | | }) |
| | | |
| | | break |
| | | } |
| | |
| | | } |
| | | router.push({ |
| | | path: '/main/processCard/PrintCustomLabelSemi2', |
| | | query: {printList: JSON.stringify(selectRecords)} |
| | | query: {printList: JSON.stringify(selectRecords),printType:1} |
| | | }) |
| | | |
| | | break |
| | |
| | | type: type, |
| | | faceOrientation: faceOrientation, |
| | | lableType: lableTypes, |
| | | printList: JSON.stringify(selectRecords) |
| | | printList: JSON.stringify(selectRecords), |
| | | printType:1 |
| | | } |
| | | }) |
| | | } |
| | |
| | | type: type, |
| | | faceOrientation: faceOrientation, |
| | | lableType: lableTypes, |
| | | printList: JSON.stringify(selectRecords) |
| | | printList: JSON.stringify(selectRecords), |
| | | printType:1 |
| | | } |
| | | }) |
| | | } |
| | |
| | | type: type, |
| | | faceOrientation: faceOrientation, |
| | | lableType: lableTypes, |
| | | printList: JSON.stringify(selectRecords) |
| | | printList: JSON.stringify(selectRecords), |
| | | printType:1 |
| | | } |
| | | }) |
| | | |
| | |
| | | |
| | | const {currentRoute} = useRouter() |
| | | const route = currentRoute.value |
| | | const printType=route.query.printType |
| | | projectNo.value = route.query.projectNo |
| | | type.value = route.query.type |
| | | |
| | | onMounted(() => { |
| | | if(projectNo.value!=null){ |
| | | request.post(`/processCard/getSelectPrintLabel/${projectNo.value}/${type.value}`).then((res) => { |
| | |
| | | } |
| | | }) |
| | | }else{ |
| | | data.value.printList = JSON.parse(route.query.printList) |
| | | request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count= produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++){ |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | |
| | | if (printType == 1) { |
| | | data.value.printList = JSON.parse(route.query.printList) |
| | | request.post(`/processCard/getSelectPrintLabel1`,data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count= produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++){ |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | }) |
| | | }else if(printType==2){ |
| | | request.post(`/processCard/getSelectPrintLabelDetails`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.data) |
| | | for (let i = 0; i < produceList.value.length; i++) { |
| | | let count = produceList.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < produceList.value[i].data[j].quantity; k++) { |
| | | labelList.value.push(produceList.value[i].data[j]) |
| | | } |
| | | |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | const type = route.query.type |
| | | const faceOrientation = route.query.faceOrientation |
| | | const lableType = route.query.lableType |
| | | const printType=route.query.printType |
| | | |
| | | onMounted(() => { |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count= list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++){ |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | if (printType == 1) { |
| | | request.post(`/processCard/getSelectPrintCustomLabel/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | labelList = dataList[0] |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count = list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++) { |
| | | lastList.value.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | router.push("/login") |
| | | } |
| | | }) |
| | | |
| | | } |
| | | }else if(printType==2){ |
| | | request.post(`/processCard/getSelectPrintCustomLabelDetails/${type}/1`, data.value).then((res) => { |
| | | if (res.code == 200) { |
| | | produceList.value = deepClone(res.data.title) |
| | | list.value = deepClone(res.data.data) |
| | | const data = produceList.value[0].value |
| | | dataList = JSON.parse(`[${data}]`); |
| | | console.log(switchType) |
| | | if (switchType===true){ |
| | | labelList = props.titleList |
| | | }else { |
| | | labelList = dataList[0] |
| | | } |
| | | for (let i = 0; i < list.value.length; i++) { |
| | | let count = list.value[i].data.length |
| | | for (let j = 0; j < count; j++) { |
| | | for (let k = 0; k < list.value[i].data[j].quantity; k++) { |
| | | props.lastList.push(list.value[i].data[j]) |
| | | } |
| | | } |
| | | } |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | ) |
| | | }) |
| | | |
| | | |
| | | // 打印方法 |
| | |
| | | @SaCheckPermission("CreateOutbound.add") |
| | | @PostMapping("/saveMaterialOutbound") |
| | | public Result saveMaterialOutbound( @RequestBody Map<String,Object> object){ |
| | | if(materialInventoryService.saveMaterialOutbound(object)){ |
| | | return Result.seccess(); |
| | | }else { |
| | | throw new ServiceException(Constants.Code_500,"保存失败"); |
| | | |
| | | } |
| | | return Result.seccess(materialInventoryService.saveMaterialOutbound(object)); |
| | | |
| | | } |
| | | |
| | | @ApiOperation("物料新增接口") |
| | |
| | | return Result.seccess(flowCardService.getSelectPrintLabelSv1(object)); |
| | | } |
| | | |
| | | @ApiOperation("打印标签明细查询接口") |
| | | @PostMapping("/getSelectPrintLabelDetails") |
| | | public Result getSelectPrintLabelDetails(@RequestBody Map<String, Object> object) { |
| | | return Result.seccess(flowCardService.getSelectPrintLabelDetails(object)); |
| | | } |
| | | |
| | | @ApiOperation("打印自定义标签数据查询接口") |
| | | @PostMapping("/getSelectPrintCustomLabel/{type}/{lableType}") |
| | | public Result getSelectPrintCustomLabel( @PathVariable String type, |
| | |
| | | |
| | | List<Map<String,Object>> getPrintCreateOutboundDetail(String materialOutboundId); |
| | | |
| | | MaterialInventory getMaterialInventoryById(@Param("id") Long id); |
| | | |
| | | } |
| | |
| | | |
| | | List<Map<String, String>> getPrintLabel1(String processId,Integer technologyNumber); |
| | | |
| | | List<Map<String, String>> getPrintLabelDetail(String processId,Integer orderNumber); |
| | | |
| | | List<Map<String, String>> printFlowCardDetailsMp(String processId, String technologyNumber, String process, FlowCard flowCard); |
| | | |
| | | Boolean printSortMp(String processId, Integer orderNumber, Integer technologyNumber, Integer sort); |
| | |
| | | @Autowired |
| | | LogService logService; |
| | | |
| | | public Boolean saveMaterialOutbound(Map<String,Object> object) { |
| | | boolean saveState = true; |
| | | public String saveMaterialOutbound(Map<String,Object> object) { |
| | | String saveState = "true"; |
| | | //设置回滚点 |
| | | Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint(); |
| | | String materialOutboundId = ""; |
| | |
| | | if (!materialOutboundDetailLists.isEmpty()) { |
| | | for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailLists) { |
| | | //还原物料库存数 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity()); |
| | | materialInventoryMapper.updateMaterialInventoryAvailableInt(materialOutboundDetail.getInventoryId(), materialOutboundDetail.getOutboundQuantity()); |
| | | /*if(materialOutboundDetail.getUseId()!=null){ |
| | | //还原优化工程库存数 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableOptInt(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity()); |
| | |
| | | |
| | | if (!materialOutboundDetailList.isEmpty()) { |
| | | for (MaterialOutboundDetail materialOutboundDetail : materialOutboundDetailList) { |
| | | |
| | | Integer materialOutboundDetailMaximum = materialInventoryMapper.getMaterialOutboundDetailMaximum(oddNumber); |
| | | //新增材料出库明细数据 |
| | | materialInventoryMapper.insertMaterialOutboundDetail(materialOutboundDetail, oddNumber, materialOutboundDetailMaximum + 1); |
| | | //修改物料库存表出库数量 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity()); |
| | | MaterialInventory materialInventory = materialInventoryMapper.getMaterialInventoryById(materialOutboundDetail.getId()); |
| | | if(materialInventory.getAvailableQuantity()>=materialOutboundDetail.getOutboundQuantity()){ |
| | | Integer materialOutboundDetailMaximum = materialInventoryMapper.getMaterialOutboundDetailMaximum(oddNumber); |
| | | //新增材料出库明细数据 |
| | | materialInventoryMapper.insertMaterialOutboundDetail(materialOutboundDetail, oddNumber, materialOutboundDetailMaximum + 1); |
| | | //修改物料库存表出库数量 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity()); |
| | | /*if(materialOutboundDetail.getUseId()!=null){ |
| | | //修改优化工程表出库数量 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableOptOut(materialOutboundDetail.getUseId(), materialOutboundDetail.getOutboundQuantity()); |
| | |
| | | //修改物料库存表出库数量 |
| | | materialInventoryMapper.updateMaterialInventoryAvailableOut(materialOutboundDetail.getId(), materialOutboundDetail.getOutboundQuantity()); |
| | | }*/ |
| | | }else{ |
| | | TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint); |
| | | return "false1"; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | sysError.setError(e+Arrays.toString(e.getStackTrace())); |
| | | sysError.setFunc("saveMaterialOutbound"); |
| | | sysErrorService.insert(sysError); |
| | | saveState = false; |
| | | saveState = "false1"; |
| | | |
| | | } |
| | | return saveState; |
| | |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> getSelectPrintLabelDetails(Map<String, Object> object) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | |
| | | List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();//最终结果 |
| | | List<FlowCard> flowCardList = JSONArray.parseArray(JSONObject.toJSONString(object.get("printList")), FlowCard.class); |
| | | if (!flowCardList.isEmpty()) { |
| | | for (FlowCard flowCard : flowCardList) { |
| | | // Integer count=flowCardMapper.getPrintLabelCount(flowCard.getProcessId(), flowCard.getTechnologyNumber()); |
| | | Map<String, Object> itemmap = new HashMap<>(); |
| | | // for (int i = 0; i < count; i++) { |
| | | itemmap.put("data", flowCardMapper.getPrintLabelDetail(flowCard.getProcessId(), flowCard.getOrderNumber())); |
| | | list.add(itemmap); |
| | | //} |
| | | |
| | | } |
| | | } |
| | | map.put("data", list); |
| | | |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> printFlowCardDetailsSv(String processId, String technologyNumber, String process, FlowCard flowCard) { |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("data", flowCardMapper.printFlowCardDetailsMp(processId, technologyNumber,process, flowCard)); |
| | |
| | | where modd.material_outbound_id = #{materialOutboundId} |
| | | </select> |
| | | |
| | | <select id="getMaterialInventoryById" > |
| | | select |
| | | * |
| | | from mm.material_inventory mi |
| | | where mi.id = #{id} |
| | | </select> |
| | | |
| | | |
| | | </mapper> |
| | |
| | | group by od.order_number, od.width, od.height |
| | | </select> |
| | | |
| | | <select id="getPrintLabelDetail"> |
| | | select o.order_id, |
| | | o.project, |
| | | o.customer_id, |
| | | ogd.child_width as width, |
| | | ogd.child_height as height, |
| | | fc.quantity, |
| | | od.order_number as orderNumber, |
| | | fc.technology_number as technologyNumber, |
| | | ogd.glass_child, |
| | | ogd.process, |
| | | c.customer_abbreviation as customer_name, |
| | | ifnull(od.processing_note, '') as processing_note, |
| | | bgt.type_name, |
| | | od.other_columns, |
| | | od.building_number, |
| | | od.bend_radius |
| | | from sd.order as o |
| | | left join sd.order_detail as od on o.order_id = od.order_id |
| | | left join sd.order_glass_detail as ogd |
| | | on ogd.order_id = od.order_id and ogd.order_number = od.order_number |
| | | left join pp.flow_card as fc on o.order_id = fc.order_id and |
| | | od.order_number = fc.order_number and |
| | | fc.technology_number = ogd.technology_number |
| | | left join sd.product pt on pt.id = od.product_id |
| | | left join sd.customer c on c.id = o.customer_id |
| | | left join sd.basic_glass_type bgt on bgt.type_id = pt.type_id |
| | | where fc.process_id = #{processId} |
| | | and fc.order_number = #{orderNumber} |
| | | group by od.order_number, od.width, od.height |
| | | </select> |
| | | |
| | | <select id="printFlowCardDetailsMp"> |
| | | SELECT fc.process_id, |
| | | fc.order_number, |