blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/controller/DispatchController.java
@@ -36,7 +36,7 @@ */ @PostMapping("/start") @Operation(summary = "ä»»å¡è®¡å(派工æµç¨)", description = "å¯å¨æ´¾å·¥æµç¨") public R<Boolean> save(@RequestBody TaskAssignVO startVO) { public R<Boolean> start(@RequestBody TaskAssignVO startVO) { dispatcher.start(startVO); return R.status(true); } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/excution/StartDispatcher.java
@@ -16,6 +16,7 @@ import org.springframework.stereotype.Service; import org.flowable.engine.RuntimeService; import java.util.HashMap; import java.util.List; import java.util.Map; @Service("startDispatcher") @@ -46,19 +47,19 @@ vars.put("craftEdition",startVO.getCraftEdition()); vars.put("planStartTime",startVO.getPlanStartTime()); vars.put("drawingNo",startVO.getDrawingNo()); vars.put("drawingNoEdition",startVO.getDrawingNoEdition()); vars.put("partNo",startVO.getPartNo()); vars.put("partNoEdition",startVO.getPartNoEdition()); vars.put("planLockDays",startVO.getPlanLockDays()); //é¶ç»ä»¶ä»£ç String partNo = generatePartNo(startVO); vars.put("partNo",partNo); NcProgram curedNcProgram = ncProgramService.getCuredNcProgram(partNo,startVO.getMachineCode()); vars.put("curedNcProgram",curedNcProgram); List<NcProgram> curedNcProgram = ncProgramService.getCuredNcProgram(partNo,startVO.getMachineCode()); //vars.put("curedNcProgram",curedNcProgram); //设置æ¯å¦æåºåç¨åºæ è®° vars.put("hasCuredProgram",curedNcProgram != null ? "Y":"N"); vars.put("hasCuredProgram",!curedNcProgram.isEmpty() ? "Y":"N"); String businessKey = "0";//ä¸å¡è¡¨key @@ -78,8 +79,8 @@ String generatePartNo(TaskAssignVO startVO){ //TODO è¿ä¸ªæ ¼å¼æªç¡®å®ï¼éè¦ç¡®è®¤ return String.format("%s-%s-%s-%s-%s-%s", startVO.getDrawingNo(), startVO.getDrawingNoEdition(), startVO.getPartNo(), startVO.getPartNoEdition(), startVO.getProcessNo(), startVO.getProcessName(), startVO.getCraftEdition(), blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/CureFlowService.java
@@ -67,20 +67,4 @@ //log.info() } /** * çæé¶ç»ä»¶ç¼å· * å¾å·ãå¾å·ç次ãå·¥åºå·ãå·¥åºåç§°ãå·¥èºç次ãå·¥åºç次 ç»åèµ·æ¥è·å¾é¶ç»ä»¶å· * @param startVO * @return */ String generatePartNo(TaskAssignVO startVO){ //TODO è¿ä¸ªæ ¼å¼æªç¡®å®ï¼éè¦ç¡®è®¤ return String.format("%s-%s-%s-%s-%s-%s", startVO.getDrawingNo(), startVO.getDrawingNoEdition(), startVO.getProcessNo(), startVO.getProcessName(), startVO.getCraftEdition(), startVO.getProcessEdition()); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/task/dispatch/ProgramEmptyUpgradeProcessEdtionTask.java
ÎļþÒÑɾ³ý blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/vo/TaskAssignVO.java
@@ -9,10 +9,10 @@ @Data @Schema(description = "ä»»å¡è®¡å") public class TaskAssignVO { @Schema(description = "å¾å·") private String drawingNo; @Schema(description = "å¾å·ç次") private String drawingNoEdition; @Schema(description = "é¶ç»ä»¶/å¾å·") private String partNo; @Schema(description = "å¾å·ç次/è®¾è®¡çæ¬¡") private String partNoEdition; @Schema(description = "å·¥åºå·") private String processNo; @Schema(description = "å·¥åºåç§°") blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcNodeController.java
@@ -78,4 +78,6 @@ IPage<NcNodeProgramVO> pages = ncNodeService.programPageQuery(query); return R.data(pages); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/controller/NcProgramController.java
@@ -69,4 +69,11 @@ public R<List<NcProgramVO>> listByNode(@Parameter(description="æå±èç¹ID")@RequestParam Long nodeId) { return R.data(ncProgramService.listByNode(nodeId)); } @PostMapping("/upgrade-process-edition") @Operation(summary = "åç", description = "å级工åºç次") public R<Boolean> upgradeProcessEdition(Long id,String newProcessEdition ) { ncProgramService.upgradeProcessEdition(id,newProcessEdition); return R.<Boolean>status(true); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcNode.java
@@ -23,14 +23,8 @@ * 设å¤ç¼å· */ private String machineCode; /** * å¾å· */ private String drawingNo; /** * å¾å·ç次 */ private String drawingNoEdition; /** * å·¥åºï¼å¦âç²¾é£â @@ -47,9 +41,13 @@ */ private String craftEdition; /** * é¶ç»ä»¶å· * é¶ç»ä»¶å·/å¾å· */ private String partNo; /** * å¾å·ç次 */ private String partNoEdition; /** * æ¯å¦åºå blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/entity/NcProgram.java
@@ -25,10 +25,7 @@ * æå±èç¹idï¼å¿ é¡»æªâç¨åºå å"çèç¹ */ private long ncNodeId; /** * ç¨åºå å */ //private String packageName; /** * æä»¶å°å */ @@ -42,10 +39,7 @@ * æ¯å¦ä¸ºææ¬ç±»å */ private Boolean isTextFile; /** * å¾å· */ private String drawingNo; /** * å·¥åºï¼å¦âç²¾é£â */ @@ -59,9 +53,9 @@ */ private String machineCode; /** * é¶ç»ä»¶å· * é¶ç»ä»¶å·/å¾å· */ //private String partNo; private String partNo; /** * æ¯å¦åºå @@ -74,11 +68,11 @@ /** * å·¥åºç次 */ //private String processEdition; private String processEdition; /** * æ¯å¦ææ°ç次ï¼1ï¼ææ°ç次ï¼0:åå²ç次 */ //private Integer isLastEdition; private Integer isLastEdition; /** * æ¯å¦éå® */ blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramMapper.java
@@ -9,6 +9,8 @@ import org.springblade.mdm.basesetting.machine.vo.MachineVO; import org.springblade.mdm.program.entity.NcProgram; import java.util.List; public interface NcProgramMapper extends BladeMapper<NcProgram> { /** @@ -17,7 +19,7 @@ * @param machineGroupCode æºåºç»ä»£ç * @return */ NcProgram getCuredNcProgram(@Param("partNo")String partNo,@Param("machineGroupCode")String machineGroupCode); List<NcProgram> getCuredNcProgram( @Param("partNo")String partNo,@Param("machineGroupCode")String machineGroupCode); /** * æ ¹æ®ç¨åºåç§°ï¼è·åææ°çç¨åºå®ä½ blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/mapper/NcProgramMapper.xml
@@ -41,7 +41,6 @@ where is_deleted=0 and is_cured=1 and part_no=#{partNo} and is_last_edition=1 and machine_code in (select code from mdm_machine where machine_group_code=#{machineGroupCode}) order by create_time desc limit 1 </select> <!-- <select id="getLastNcProgram" resultType="org.springblade.mdm.program.entity.NcProgram"> blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcNodeService.java
@@ -100,4 +100,6 @@ public NcNode getLastProgramNode(String name) { return this.getBaseMapper().getLastProgramNode(name); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/service/NcProgramService.java
@@ -73,7 +73,7 @@ * @param machineCode * @return */ public NcProgram getCuredNcProgram(String partNo,String machineCode) { public List<NcProgram> getCuredNcProgram(String partNo,String machineCode) { Machine machine = machineService.getByCode(machineCode); return this.getBaseMapper().getCuredNcProgram(partNo,machine.getMachineGroupCode()); } @@ -81,9 +81,7 @@ /** * ä¸ä¼ ç¨åºæä»¶å°æå®èç¹ * @param file * @param nodeId * @param category æä»¶åç±»ï¼ç¨åºæä»¶/å ¶ä»æä»¶ï¼ * @param uploadVO ä¸ä¼ æä»¶è¡¨åæ°æ® */ public void uploadProgramFile(NcProgramUploadVO uploadVO) { MultipartFile file = uploadVO.getFile(); @@ -94,7 +92,8 @@ prog.setName(file.getOriginalFilename()); prog.setNcNodeId(uploadVO.getNodeId()); prog.setOssName(bfile.getName()); prog.setDrawingNo(uploadVO.getDrawingNo()); prog.setPartNo(uploadVO.getPartNo()); prog.setProcessEdition(uploadVO.getProcessEdition()); boolean isTextFile = false; try { isTextFile = FileContentUtil.isTextFile(file.getInputStream()); @@ -136,7 +135,7 @@ public List<NcProgramVO> listByNode(Long nodeId) { NcNode node = nodeService.getById(nodeId); List<NcProgram> pList = this.list(Wrappers.lambdaQuery(NcProgram.class).eq(NcProgram::getNcNodeId, nodeId).orderByDesc(NcProgram::getCreateTime)); List<NcProgram> pList = this.list(Wrappers.lambdaQuery(NcProgram.class).eq(NcProgram::getNcNodeId, nodeId).eq(NcProgram::getIsLastEdition,1).orderByDesc(NcProgram::getCreateTime)); List<NcProgramVO> result = new ArrayList<>(); @@ -149,4 +148,23 @@ return result; } /** * åç(å级工åºç次),å级工åºçæ¬ï¼å æ¬ç¨åºåå ¶ä»éä»¶ï¼ * @param id ç¨åºæä»¶id * @param newProcessEdition æ°ç次 */ public void upgradeProcessEdition(long id,String newProcessEdition) { NcProgram prog = this.getById(id); //å°ç°æç¨åºæ´æ°ä¸ºéææ°çæ¬ this.update(Wrappers.lambdaUpdate(NcProgram.class).eq(NcProgram::getId,id).set(NcProgram::getIsLastEdition,0)); NcProgram newVerProg = new NcProgram(); BeanUtils.copyProperties(prog, newVerProg); newVerProg.setId(null); newVerProg.setIsLastEdition(1); newVerProg.setProcessEdition(newProcessEdition); this.save(newVerProg); } } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcNodeProgramVO.java
@@ -24,10 +24,6 @@ @Schema(description = "夿³¨") private String remark; @Schema(description = "å¾å·") private String drawingNo; @Schema(description = "å¾å·ç次") private String drawingNoEdition; @@ -37,6 +33,6 @@ @Schema(description = "å·¥èºç次") private String craftEdition; @Schema(description = "é¶ç»ä»¶å·") @Schema(description = "é¶ç»ä»¶å·/å¾å·") private String partNo; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramUploadVO.java
@@ -20,13 +20,15 @@ @Schema(description = "设å¤ç¼å·") private MultipartFile file; @Schema(description = "å¾å·") private String drawingNo; @Schema(description = "é¶ç»ä»¶å·/å¾å·") private String partNo; @Schema(description = "å·¥åºï¼å¦âç²¾é£â") private String processName; @Schema(description = "æä»¶åç±»ï¼ä½¿ç¨åå ¸(node_file_type)") private String category; @Schema(description = "å·¥åºçæ¬") private String processEdition; } blade-service/blade-mdm/src/main/java/org/springblade/mdm/program/vo/NcProgramVO.java
@@ -21,8 +21,6 @@ @Schema(description = "夿³¨") private String remark; @Schema(description = "å¾å·") private String drawingNo; @Schema(description = "å¾å·ç次") private String drawingNoEdition; @@ -33,6 +31,6 @@ @Schema(description = "å·¥èºç次") private String craftEdition; @Schema(description = "é¶ç»ä»¶å·") @Schema(description = "é¶ç»ä»¶å·/å¾å·") private String partNo; } blade-service/blade-mdm/src/main/resources/processesbpmn/dispatch.bpmn20.xml
@@ -32,24 +32,15 @@ <conditionExpression xsi:type="tFormalExpression">${approve=='Y' && hasCuredProgram=='Y'}</conditionExpression> </sequenceFlow> <sequenceFlow id="sid-353381d5-35c7-47b0-bf5b-2bafe865ab5e" sourceRef="cureCheckServiceTask" targetRef="confirmIsUseableTask"/> <sequenceFlow id="sid-d144dad0-dc94-4a2b-96d6-9d8451b05ec1" sourceRef="confirmIsUseableTask" targetRef="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" name="åºåç¨åºå¯ç¨"> <sequenceFlow id="sid-d144dad0-dc94-4a2b-96d6-9d8451b05ec1" sourceRef="confirmIsUseableTask" targetRef="check" name="åºåç¨åºå¯ç¨"> <conditionExpression>${approve=='Y'}</conditionExpression> </sequenceFlow> <sequenceFlow id="sid-d4133565-1a45-4bb6-b603-9b9e4db1cdbb" sourceRef="approveTask" targetRef="check"> <conditionExpression>${approve=='N'}</conditionExpression> </sequenceFlow> <exclusiveGateway id="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" name="å¯ç¨ç¨åºæµè½¬ç½å ³"/> <sequenceFlow id="sid-b15dcf6a-a48c-4e01-b6bc-5c2a74ca817e" sourceRef="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" targetRef="check" name="å·¥åºç次ä¸è´å¹¶ä¸å¯ç¨"> <conditionExpression xsi:type="tFormalExpression">${processEditionEqual=='Y'}</conditionExpression> </sequenceFlow> <sequenceFlow id="sid-6249886b-7c4a-4904-9b0b-cf743932be9f" sourceRef="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398" targetRef="emptyUpgradeProcessEdtionServiceTask"> <conditionExpression xsi:type="tFormalExpression">${processEditionEqual=='N'}</conditionExpression> </sequenceFlow> <sequenceFlow id="sid-598e1dbe-85b3-40d0-89c8-bd2580ecbfc5" sourceRef="emptyUpgradeProcessEdtionServiceTask" targetRef="check"/> <sequenceFlow id="sid-80b50f96-7601-4ba2-8c32-968923170d25" sourceRef="confirmIsUseableTask" targetRef="programmingTask"> <conditionExpression>${approve=='N'}</conditionExpression> </sequenceFlow> <serviceTask id="emptyUpgradeProcessEdtionServiceTask" flowable:exclusive="true" name="空åç" flowable:expression="programEmptyUpgradeProcessEdtionTask.execute(execution)"/> </process> <bpmndi:BPMNDiagram id="BPMNDiagram_dispatch"> <bpmndi:BPMNPlane bpmnElement="dispatch" id="BPMNPlane_dispatch"> @@ -70,10 +61,10 @@ <omgdc:Bounds x="130.0" y="-135.0" width="60.0" height="55.0"/> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="shape-a42e90ff-9c82-4d5b-8f5b-0804754e89a6" bpmnElement="approveTask"> <omgdc:Bounds x="220.0" y="-14.0" width="50.0" height="45.0"/> <omgdc:Bounds x="130.0" y="-4.0" width="50.0" height="45.0"/> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="shape-f14acaf6-9747-4d52-87a1-d4c5b8f3d166" bpmnElement="approveEnd"> <omgdc:Bounds x="245.0" y="51.0" width="30.0" height="30.0"/> <omgdc:Bounds x="295.0" y="-6.5" width="30.0" height="30.0"/> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="edge-6f05f47f-7804-4dd0-b6d2-e435b9efaa3c" bpmnElement="programingToCheck"> <omgdi:waypoint x="12.5" y="-92.5"/> @@ -89,20 +80,21 @@ </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="edge-d05b5f9f-9108-4a41-9e48-4db1e1b1e325" bpmnElement="flowToSeriorTask"> <omgdi:waypoint x="190.0" y="-93.75"/> <omgdi:waypoint x="270.0" y="-2.75"/> <omgdi:waypoint x="180.0" y="7.25"/> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="edge-715efa53-6c03-407b-87ec-640f99c481a0" bpmnElement="sid-c0b195e7-17e5-44bf-8115-8b7126cb3ab3"> <omgdi:waypoint x="270.0" y="19.749996"/> <omgdi:waypoint x="245.0" y="58.5"/> <omgdi:waypoint x="180.0" y="29.749996"/> <omgdi:waypoint x="295.0" y="1.0"/> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="shape-8455618d-c1b9-4e6a-bca4-de965cc81633" bpmnElement="cureCheckServiceTask"> <omgdc:Bounds x="-275.0" y="37.500004" width="65.0" height="39.999996"/> </bpmndi:BPMNShape> <bpmndi:BPMNShape id="shape-8f7064fc-4838-44cc-bf6d-ca15932a1e2e" bpmnElement="confirmIsUseableTask"> <omgdc:Bounds x="-165.0" y="37.5" width="55.0" height="40.0"/> <omgdc:Bounds x="-135.0" y="37.5" width="55.0" height="40.0"/> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="edge-0408fc3c-c133-40e3-9006-c315b12e9790" bpmnElement="sid-46ccac64-2d48-4933-88a6-f2941ae131dd"> <omgdi:waypoint x="-192.5" y="-92.500015"/> <omgdi:waypoint x="-132.5" y="-100.0"/> <omgdi:waypoint x="-72.49999" y="-107.50001"/> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="edge-d8883eca-269a-42cd-b2d4-134da6596afb" bpmnElement="sid-af92e6ab-bc80-43ed-8b09-1d3ec54cc9e7"> @@ -111,38 +103,20 @@ </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="edge-44016aa6-bf48-4c73-8aaa-4cedf795d68b" bpmnElement="sid-353381d5-35c7-47b0-bf5b-2bafe865ab5e"> <omgdi:waypoint x="-210.0" y="57.5"/> <omgdi:waypoint x="-165.0" y="57.5"/> <omgdi:waypoint x="-135.0" y="57.5"/> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="edge-64e64024-1ffd-4cdf-be8f-4c5e4911a5bb" bpmnElement="sid-d144dad0-dc94-4a2b-96d6-9d8451b05ec1"> <omgdi:waypoint x="-110.0" y="47.5"/> <omgdi:waypoint x="-60.0" y="0.0"/> <omgdi:waypoint x="-80.0" y="47.5"/> <omgdi:waypoint x="145.0" y="-80.00001"/> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="edge-7a5135fe-5eb1-425c-b920-3e2b5bf18454" bpmnElement="sid-d4133565-1a45-4bb6-b603-9b9e4db1cdbb"> <omgdi:waypoint x="257.5" y="-14.0"/> <omgdi:waypoint x="167.5" y="-4.0"/> <omgdi:waypoint x="175.0" y="-80.0"/> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="shape-50f64465-52e3-4ba9-b36d-ebac41ab8b22" bpmnElement="sid-82237034-5cb2-45c7-9a74-e2d5abb3b398"> <omgdc:Bounds x="-60.0" y="-20.0" width="40.0" height="40.0"/> </bpmndi:BPMNShape> <bpmndi:BPMNEdge id="edge-4b95c6df-601d-48e8-a9a4-98499ae5ddf3" bpmnElement="sid-b15dcf6a-a48c-4e01-b6bc-5c2a74ca817e"> <omgdi:waypoint x="-20.0" y="0.0"/> <omgdi:waypoint x="130.0" y="-93.75"/> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="edge-dbb7a807-e493-42fe-b229-b9f2ec25b5ee" bpmnElement="sid-6249886b-7c4a-4904-9b0b-cf743932be9f"> <omgdi:waypoint x="-40.0" y="20.0"/> <omgdi:waypoint x="30.0" y="57.5"/> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="edge-092f7d8d-2467-4794-af93-fdc9ad503923" bpmnElement="sid-598e1dbe-85b3-40d0-89c8-bd2580ecbfc5"> <omgdi:waypoint x="86.25" y="30.0"/> <omgdi:waypoint x="145.0" y="-79.99999"/> </bpmndi:BPMNEdge> <bpmndi:BPMNEdge id="edge-223da197-47f2-44ef-847e-40d1fae1009b" bpmnElement="sid-80b50f96-7601-4ba2-8c32-968923170d25"> <omgdi:waypoint x="-123.75" y="37.5"/> <omgdi:waypoint x="-93.75" y="37.5"/> <omgdi:waypoint x="-51.25" y="-77.5"/> </bpmndi:BPMNEdge> <bpmndi:BPMNShape id="shape-0fe942f6-dea9-427c-aef6-0db9c3e3707b" bpmnElement="emptyUpgradeProcessEdtionServiceTask"> <omgdc:Bounds x="30.0" y="30.0" width="75.0" height="55.0"/> </bpmndi:BPMNShape> </bpmndi:BPMNPlane> </bpmndi:BPMNDiagram> </definitions> doc/sql/mdm/mdm.mysql.all.create.sql
@@ -65,10 +65,9 @@ `id` bigint NOT NULL, `tenant_id` varchar(6) DEFAULT NULL COMMENT 'æå±ç§æ·', `name` varchar(100) NOT NULL COMMENT 'èç¹åç§°', `drawing_no` varchar(40) NULL COMMENT 'å¾å·', `process_name` varchar(20) NULL COMMENT 'å·¥åºåç§°', `machine_code` varchar(100) DEFAULT NULL COMMENT '设å¤ç¼å·/æºåºç¼å·', `part_no` varchar(100) NULL COMMENT 'é¶ç»ä»¶ç¼å·', `part_no` varchar(100) NULL COMMENT 'é¶ç»ä»¶ç¼å·/å¾å·', `is_cured` int DEFAULT NULL COMMENT 'æ¯å¦åºå,1æ¯;0å¦', `expire_date` date DEFAULT NULL COMMENT 'å°ææ¶é´,æ ¹æ®ææææ¶é¿è®¡ç®èæ¥', `process_edition` varchar(40) DEFAULT NULL COMMENT 'å·¥åºç次ï¼åçå°±æ¯åæ´æ¹è¯¥å段ï¼éè¦ä¿çåå²è®°å½', @@ -104,8 +103,6 @@ PRIMARY KEY (`id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='æµç¨å®ä¾ä¸èç¹å ³è表'; DROP TABLE IF EXISTS `mdm_nc_program`; CREATE TABLE `mdm_nc_program` ( `id` bigint NOT NULL, @@ -115,14 +112,12 @@ `name` varchar(100) NOT NULL COMMENT 'ç¨åºåç§°', `oss_name` varchar(100) NULL COMMENT 'ossä¸çæä»¶å', `category` varchar(2) NULL COMMENT 'æä»¶åç±»', `drawing_no` varchar(40) NULL COMMENT 'å¾å·', `process_name` varchar(20) NULL COMMENT 'å·¥åºåç§°', `remark` varchar(100) NULL COMMENT '夿³¨', `is_text_file` int DEFAULT NULL COMMENT 'æ¯å¦ææ¬æä»¶', `url` varchar(400) NOT NULL COMMENT 'æä»¶å°å', `machine_code` varchar(100) DEFAULT NULL COMMENT '设å¤ç¼å·/æºåºç¼å·', `part_no` varchar(100) NULL COMMENT 'é¶ç»ä»¶ç¼å·', `part_no` varchar(100) NULL COMMENT 'é¶ç»ä»¶ç¼å·/å¾å·', `is_cured` int DEFAULT NULL COMMENT 'æ¯å¦åºå,1æ¯;0å¦', `expire_date` date DEFAULT NULL COMMENT 'å°ææ¶é´,æ ¹æ®ææææ¶é¿è®¡ç®èæ¥', `process_edition` varchar(40) DEFAULT NULL COMMENT 'å·¥åºç次ï¼åçå°±æ¯åæ´æ¹è¯¥å段ï¼éè¦ä¿çåå²è®°å½',